diff --git a/lib/libesp32/berry_animation/README.md b/lib/libesp32/berry_animation/README.md
index 617719f74..a6c6dc3d8 100644
--- a/lib/libesp32/berry_animation/README.md
+++ b/lib/libesp32/berry_animation/README.md
@@ -10,7 +10,7 @@ Writing LED animations in pure Berry code requires understanding the animation e
- **Declarative, not imperative** - Just specify *what* you want and *how long* it should take; the framework handles all intermediate states and timing
- **No state machines** - Forget about tracking animation phases, transitions, and timing manually
-- **Readable syntax** - Write `animation pulse = pulsating_animation(color=red, period=2s)` instead of dozens of lines of Berry code
+- **Readable syntax** - Write `animation pulse = breathe(color=red, period=2s)` instead of dozens of lines of Berry code
- **Automatic engine management** - No need to create engines, manage frame buffers, or handle timing
- **Built-in effects** - Access to pulse, breathe, fire, comet, sparkle, wave, and many more effects
- **Dynamic parameters** - Oscillating values (sine, triangle, smooth) without manual math
@@ -49,22 +49,22 @@ Without `USE_BERRY_ANIMATION_DSL`, use the online emulator to create animations
### Simple Breathing Animation
```berry
-animation pulse = breathe_animation(color=red, period=2s)
+animation pulse = breathe(color=red, period=2s)
run pulse
```
### Rainbow Smooth Color Cycling
```berry
-animation rainbow = rich_palette_animation(colors=PALETTE_RAINBOW)
+animation rainbow = rich_palette(colors=PALETTE_RAINBOW)
run rainbow
```
### Animation Sequence
```berry
-animation red_pulse = breathe_animation(color=red, period=2s)
-animation blue_pulse = breathe_animation(color=blue, period=1.5s)
+animation red_pulse = breathe(color=red, period=2s)
+animation blue_pulse = breathe(color=blue, period=1.5s)
sequence show repeat forever {
play red_pulse for 4s
@@ -136,7 +136,7 @@ template animation pulse_effect {
param pulse_color type color
param speed
- animation pulse = pulsating_animation(color=pulse_color, period=speed)
+ animation pulse = breathe(color=pulse_color, period=speed)
run pulse
}
@@ -155,19 +155,17 @@ run show
Animation|Description
:---|:---
`solid`|Solid color fill
-`pulsating_animation`|Breathing/pulsing effect with smooth transitions
-`breathe_animation`|Natural breathing effect with customizable curve
-`beacon_animation`|Pulse/highlight at specific position with optional slew
-`crenel_animation`|Crenel/square wave pattern
-`comet_animation`|Moving comet with fading tail
+`breathe`|Natural breathing effect with customizable curve
+`beacon`|Pulse/highlight at specific position with optional slew
+`crenel`|Crenel/square wave pattern
+`comet`|Moving comet with fading tail
`twinkle`|Twinkling stars effect
-`fire_animation`|Realistic fire simulation
+`fire`|Realistic fire simulation
`rich_palette_color`|Smooth palette color transitions
-`gradient_animation`|Linear or radial color gradients
-`palette_gradient_animation`|Gradient patterns with palette colors
-`palette_meter_animation`|Meter/bar patterns
-`gradient_meter_animation`|VU meter with gradient and peak hold
-`wave_animation`|Wave motion effects
+`gradient`|Linear or radial color gradients
+`palette_gradient`|Gradient patterns with palette colors
+`palette_meter`|VU meter with gradient and peak hold
+`wave`|Wave motion effects
## Documentation
diff --git a/lib/libesp32/berry_animation/anim_examples/breathing_colors.anim b/lib/libesp32/berry_animation/anim_examples/breathing_colors.anim
index 9d3835a31..a74ef1151 100644
--- a/lib/libesp32/berry_animation/anim_examples/breathing_colors.anim
+++ b/lib/libesp32/berry_animation/anim_examples/breathing_colors.anim
@@ -27,7 +27,7 @@ color palette_pattern = rich_palette_color(
)
# Create breathing animation using the palette
-animation breathing = breathe_animation(
+animation breathing = breathe(
color=palette_pattern # base animation
min_brightness=100 # min brightness
max_brightness=255 # max brightness
diff --git a/lib/libesp32/berry_animation/anim_examples/candy_cane.anim b/lib/libesp32/berry_animation/anim_examples/candy_cane.anim
index f80b9279c..a449652cc 100644
--- a/lib/libesp32/berry_animation/anim_examples/candy_cane.anim
+++ b/lib/libesp32/berry_animation/anim_examples/candy_cane.anim
@@ -9,16 +9,16 @@ color candy_white = 0xFFFFFF
# Create alternating red and white animation
# Using multiple pulse positions to create stripes
-animation stripe1 = beacon_animation(color=candy_red, pos=3, beacon_size=4, slew_size=1)
-animation stripe2 = beacon_animation(color=candy_white, pos=9, beacon_size=4, slew_size=1)
-animation stripe3 = beacon_animation(color=candy_red, pos=15, beacon_size=4, slew_size=1)
-animation stripe4 = beacon_animation(color=candy_white, pos=21, beacon_size=4, slew_size=1)
-animation stripe5 = beacon_animation(color=candy_red, pos=27, beacon_size=4, slew_size=1)
-animation stripe6 = beacon_animation(color=candy_white, pos=33, beacon_size=4, slew_size=1)
-animation stripe7 = beacon_animation(color=candy_red, pos=39, beacon_size=4, slew_size=1)
-animation stripe8 = beacon_animation(color=candy_white, pos=45, beacon_size=4, slew_size=1)
-animation stripe9 = beacon_animation(color=candy_red, pos=51, beacon_size=4, slew_size=1)
-animation stripe10 = beacon_animation(color=candy_white, pos=57, beacon_size=4, slew_size=1)
+animation stripe1 = beacon(color=candy_red, pos=3, beacon_size=4, slew_size=1)
+animation stripe2 = beacon(color=candy_white, pos=9, beacon_size=4, slew_size=1)
+animation stripe3 = beacon(color=candy_red, pos=15, beacon_size=4, slew_size=1)
+animation stripe4 = beacon(color=candy_white, pos=21, beacon_size=4, slew_size=1)
+animation stripe5 = beacon(color=candy_red, pos=27, beacon_size=4, slew_size=1)
+animation stripe6 = beacon(color=candy_white, pos=33, beacon_size=4, slew_size=1)
+animation stripe7 = beacon(color=candy_red, pos=39, beacon_size=4, slew_size=1)
+animation stripe8 = beacon(color=candy_white, pos=45, beacon_size=4, slew_size=1)
+animation stripe9 = beacon(color=candy_red, pos=51, beacon_size=4, slew_size=1)
+animation stripe10 = beacon(color=candy_white, pos=57, beacon_size=4, slew_size=1)
# Add gentle movement to make it more dynamic
set move_speed = 8s
diff --git a/lib/libesp32/berry_animation/anim_examples/christmas_tree.anim b/lib/libesp32/berry_animation/anim_examples/christmas_tree.anim
index 572cd35c2..469f11080 100644
--- a/lib/libesp32/berry_animation/anim_examples/christmas_tree.anim
+++ b/lib/libesp32/berry_animation/anim_examples/christmas_tree.anim
@@ -26,7 +26,7 @@ animation ornaments = twinkle(
ornaments.priority = 10
# Star on top (bright yellow pulse)
-animation tree_star = beacon_animation(
+animation tree_star = beacon(
color=0xFFFF00 # Bright yellow
pos=58 # position (near the top)
beacon_size=3 # star size
@@ -45,7 +45,7 @@ snow_sparkles.priority = 15
# Garland effect - moving colored lights
color garland_pattern = rich_palette_color(colors=ornament_colors, period=2s, transition_type=LINEAR, brightness=200)
-animation garland = comet_animation(
+animation garland = comet(
color=garland_pattern # color source
tail_length=6 # garland length (tail length)
speed=4s # slow movement (speed)
diff --git a/lib/libesp32/berry_animation/anim_examples/comet_chase.anim b/lib/libesp32/berry_animation/anim_examples/comet_chase.anim
index 57bf6995f..84495adb4 100644
--- a/lib/libesp32/berry_animation/anim_examples/comet_chase.anim
+++ b/lib/libesp32/berry_animation/anim_examples/comet_chase.anim
@@ -8,7 +8,7 @@ color space_blue = 0x000066 # Note: opaque 0xFF alpha channel is implicitly a
animation background = solid(color=space_blue)
# Main comet with bright white head
-animation comet_main = comet_animation(
+animation comet_main = comet(
color=0xFFFFFF # White head
tail_length=10 # tail length
speed=2s # speed
@@ -16,7 +16,7 @@ animation comet_main = comet_animation(
)
# Secondary comet in different color, opposite direction
-animation comet_secondary = comet_animation(
+animation comet_secondary = comet(
color=0xFF4500 # Orange head
tail_length=8 # shorter tail
speed=3s # slower speed
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/breathing_colors.be b/lib/libesp32/berry_animation/anim_examples/compiled/breathing_colors.be
index c245d57c7..0d6df1dbd 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/breathing_colors.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/breathing_colors.be
@@ -32,7 +32,7 @@ var palette_pattern_ = animation.rich_palette_color(engine)
palette_pattern_.colors = breathe_palette_ # palette
palette_pattern_.period = 15000 # cycle period (defaults: smooth transition, 255 brightness)
# Create breathing animation using the palette
-var breathing_ = animation.breathe_animation(engine)
+var breathing_ = animation.breathe(engine)
breathing_.color = palette_pattern_ # base animation
breathing_.min_brightness = 100 # min brightness
breathing_.max_brightness = 255 # max brightness
@@ -80,7 +80,7 @@ color palette_pattern = rich_palette_color(
)
# Create breathing animation using the palette
-animation breathing = breathe_animation(
+animation breathing = breathe(
color=palette_pattern # base animation
min_brightness=100 # min brightness
max_brightness=255 # max brightness
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/candy_cane.be b/lib/libesp32/berry_animation/anim_examples/compiled/candy_cane.be
index d5032dbb8..8278bc43e 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/candy_cane.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/candy_cane.be
@@ -17,52 +17,52 @@ var candy_red_ = 0xFFFF0000
var candy_white_ = 0xFFFFFFFF
# Create alternating red and white animation
# Using multiple pulse positions to create stripes
-var stripe1_ = animation.beacon_animation(engine)
+var stripe1_ = animation.beacon(engine)
stripe1_.color = candy_red_
stripe1_.pos = 3
stripe1_.beacon_size = 4
stripe1_.slew_size = 1
-var stripe2_ = animation.beacon_animation(engine)
+var stripe2_ = animation.beacon(engine)
stripe2_.color = candy_white_
stripe2_.pos = 9
stripe2_.beacon_size = 4
stripe2_.slew_size = 1
-var stripe3_ = animation.beacon_animation(engine)
+var stripe3_ = animation.beacon(engine)
stripe3_.color = candy_red_
stripe3_.pos = 15
stripe3_.beacon_size = 4
stripe3_.slew_size = 1
-var stripe4_ = animation.beacon_animation(engine)
+var stripe4_ = animation.beacon(engine)
stripe4_.color = candy_white_
stripe4_.pos = 21
stripe4_.beacon_size = 4
stripe4_.slew_size = 1
-var stripe5_ = animation.beacon_animation(engine)
+var stripe5_ = animation.beacon(engine)
stripe5_.color = candy_red_
stripe5_.pos = 27
stripe5_.beacon_size = 4
stripe5_.slew_size = 1
-var stripe6_ = animation.beacon_animation(engine)
+var stripe6_ = animation.beacon(engine)
stripe6_.color = candy_white_
stripe6_.pos = 33
stripe6_.beacon_size = 4
stripe6_.slew_size = 1
-var stripe7_ = animation.beacon_animation(engine)
+var stripe7_ = animation.beacon(engine)
stripe7_.color = candy_red_
stripe7_.pos = 39
stripe7_.beacon_size = 4
stripe7_.slew_size = 1
-var stripe8_ = animation.beacon_animation(engine)
+var stripe8_ = animation.beacon(engine)
stripe8_.color = candy_white_
stripe8_.pos = 45
stripe8_.beacon_size = 4
stripe8_.slew_size = 1
-var stripe9_ = animation.beacon_animation(engine)
+var stripe9_ = animation.beacon(engine)
stripe9_.color = candy_red_
stripe9_.pos = 51
stripe9_.beacon_size = 4
stripe9_.slew_size = 1
-var stripe10_ = animation.beacon_animation(engine)
+var stripe10_ = animation.beacon(engine)
stripe10_.color = candy_white_
stripe10_.pos = 57
stripe10_.beacon_size = 4
@@ -165,16 +165,16 @@ color candy_white = 0xFFFFFF
# Create alternating red and white animation
# Using multiple pulse positions to create stripes
-animation stripe1 = beacon_animation(color=candy_red, pos=3, beacon_size=4, slew_size=1)
-animation stripe2 = beacon_animation(color=candy_white, pos=9, beacon_size=4, slew_size=1)
-animation stripe3 = beacon_animation(color=candy_red, pos=15, beacon_size=4, slew_size=1)
-animation stripe4 = beacon_animation(color=candy_white, pos=21, beacon_size=4, slew_size=1)
-animation stripe5 = beacon_animation(color=candy_red, pos=27, beacon_size=4, slew_size=1)
-animation stripe6 = beacon_animation(color=candy_white, pos=33, beacon_size=4, slew_size=1)
-animation stripe7 = beacon_animation(color=candy_red, pos=39, beacon_size=4, slew_size=1)
-animation stripe8 = beacon_animation(color=candy_white, pos=45, beacon_size=4, slew_size=1)
-animation stripe9 = beacon_animation(color=candy_red, pos=51, beacon_size=4, slew_size=1)
-animation stripe10 = beacon_animation(color=candy_white, pos=57, beacon_size=4, slew_size=1)
+animation stripe1 = beacon(color=candy_red, pos=3, beacon_size=4, slew_size=1)
+animation stripe2 = beacon(color=candy_white, pos=9, beacon_size=4, slew_size=1)
+animation stripe3 = beacon(color=candy_red, pos=15, beacon_size=4, slew_size=1)
+animation stripe4 = beacon(color=candy_white, pos=21, beacon_size=4, slew_size=1)
+animation stripe5 = beacon(color=candy_red, pos=27, beacon_size=4, slew_size=1)
+animation stripe6 = beacon(color=candy_white, pos=33, beacon_size=4, slew_size=1)
+animation stripe7 = beacon(color=candy_red, pos=39, beacon_size=4, slew_size=1)
+animation stripe8 = beacon(color=candy_white, pos=45, beacon_size=4, slew_size=1)
+animation stripe9 = beacon(color=candy_red, pos=51, beacon_size=4, slew_size=1)
+animation stripe10 = beacon(color=candy_white, pos=57, beacon_size=4, slew_size=1)
# Add gentle movement to make it more dynamic
set move_speed = 8s
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/christmas_tree.be b/lib/libesp32/berry_animation/anim_examples/compiled/christmas_tree.be
index 1c1a08362..d69bb4535 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/christmas_tree.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/christmas_tree.be
@@ -36,7 +36,7 @@ ornaments_.density = 15 # density (many ornaments)
ornaments_.twinkle_speed = 800 # twinkle speed (slow twinkle)
ornaments_.priority = 10
# Star on top (bright yellow pulse)
-var tree_star_ = animation.beacon_animation(engine)
+var tree_star_ = animation.beacon(engine)
tree_star_.color = 0xFFFFFF00 # Bright yellow
tree_star_.pos = 58 # position (near the top)
tree_star_.beacon_size = 3 # star size
@@ -61,7 +61,7 @@ garland_pattern_.colors = ornament_colors_
garland_pattern_.period = 2000
garland_pattern_.transition_type = animation.LINEAR
garland_pattern_.brightness = 200
-var garland_ = animation.comet_animation(engine)
+var garland_ = animation.comet(engine)
garland_.color = garland_pattern_ # color source
garland_.tail_length = 6 # garland length (tail length)
garland_.speed = 4000 # slow movement (speed)
@@ -104,7 +104,7 @@ animation ornaments = twinkle(
ornaments.priority = 10
# Star on top (bright yellow pulse)
-animation tree_star = beacon_animation(
+animation tree_star = beacon(
color=0xFFFF00 # Bright yellow
pos=58 # position (near the top)
beacon_size=3 # star size
@@ -123,7 +123,7 @@ snow_sparkles.priority = 15
# Garland effect - moving colored lights
color garland_pattern = rich_palette_color(colors=ornament_colors, period=2s, transition_type=LINEAR, brightness=200)
-animation garland = comet_animation(
+animation garland = comet(
color=garland_pattern # color source
tail_length=6 # garland length (tail length)
speed=4s # slow movement (speed)
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/comet_chase.be b/lib/libesp32/berry_animation/anim_examples/compiled/comet_chase.be
index cab815ba8..0aae47064 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/comet_chase.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/comet_chase.be
@@ -17,13 +17,13 @@ var space_blue_ = 0xFF000066 # Note: opaque 0xFF alpha channel is implicitly ad
var background_ = animation.solid(engine)
background_.color = space_blue_
# Main comet with bright white head
-var comet_main_ = animation.comet_animation(engine)
+var comet_main_ = animation.comet(engine)
comet_main_.color = 0xFFFFFFFF # White head
comet_main_.tail_length = 10 # tail length
comet_main_.speed = 2000 # speed
comet_main_.priority = 7
# Secondary comet in different color, opposite direction
-var comet_secondary_ = animation.comet_animation(engine)
+var comet_secondary_ = animation.comet(engine)
comet_secondary_.color = 0xFFFF4500 # Orange head
comet_secondary_.tail_length = 8 # shorter tail
comet_secondary_.speed = 3000 # slower speed
@@ -54,7 +54,7 @@ color space_blue = 0x000066 # Note: opaque 0xFF alpha channel is implicitly a
animation background = solid(color=space_blue)
# Main comet with bright white head
-animation comet_main = comet_animation(
+animation comet_main = comet(
color=0xFFFFFF # White head
tail_length=10 # tail length
speed=2s # speed
@@ -62,7 +62,7 @@ animation comet_main = comet_animation(
)
# Secondary comet in different color, opposite direction
-animation comet_secondary = comet_animation(
+animation comet_secondary = comet(
color=0xFF4500 # Orange head
tail_length=8 # shorter tail
speed=3s # slower speed
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/compilation_summary.md b/lib/libesp32/berry_animation/anim_examples/compiled/compilation_summary.md
index 4b1c3fe4b..3771cc2bd 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/compilation_summary.md
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/compilation_summary.md
@@ -12,13 +12,13 @@ This document contains a summary of the DSL compilation process, including symbo
| Symbol | Type | Builtin | Dangerous | Takes Args |
|----------------------|----------------------------|---------|-----------|------------|
-| `breathe_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
| `breathe_blue` | color | | | |
| `breathe_green` | color | | | |
| `breathe_orange` | color | | | |
| `breathe_palette` | palette | | | |
| `breathe_purple` | color | | | |
| `breathe_red` | color | | | |
+| `breathe` | animation_constructor | ✓ | ⚠️ | ✓ |
| `breathing` | animation | | | |
| `palette_pattern` | color | | | |
| `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ |
@@ -36,24 +36,24 @@ SUCCESS
## Symbol Table
-| Symbol | Type | Builtin | Dangerous | Takes Args |
-|--------------------|----------------------------|---------|-----------|------------|
-| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `candy_red` | color | | | |
-| `candy_white` | color | | | |
-| `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ |
-| `move_speed` | variable | | | |
-| `sawtooth` | value_provider_constructor | ✓ | ⚠️ | ✓ |
-| `stripe10` | animation | | | |
-| `stripe1` | animation | | | |
-| `stripe2` | animation | | | |
-| `stripe3` | animation | | | |
-| `stripe4` | animation | | | |
-| `stripe5` | animation | | | |
-| `stripe6` | animation | | | |
-| `stripe7` | animation | | | |
-| `stripe8` | animation | | | |
-| `stripe9` | animation | | | |
+| Symbol | Type | Builtin | Dangerous | Takes Args |
+|-----------------|----------------------------|---------|-----------|------------|
+| `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `candy_red` | color | | | |
+| `candy_white` | color | | | |
+| `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ |
+| `move_speed` | variable | | | |
+| `sawtooth` | value_provider_constructor | ✓ | ⚠️ | ✓ |
+| `stripe10` | animation | | | |
+| `stripe1` | animation | | | |
+| `stripe2` | animation | | | |
+| `stripe3` | animation | | | |
+| `stripe4` | animation | | | |
+| `stripe5` | animation | | | |
+| `stripe6` | animation | | | |
+| `stripe7` | animation | | | |
+| `stripe8` | animation | | | |
+| `stripe9` | animation | | | |
### Compilation Output
@@ -70,8 +70,8 @@ SUCCESS
| Symbol | Type | Builtin | Dangerous | Takes Args |
|----------------------|----------------------------|---------|-----------|------------|
| `LINEAR` | constant | ✓ | | |
-| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `comet_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `comet` | animation_constructor | ✓ | ⚠️ | ✓ |
| `garland_pattern` | color | | | |
| `garland` | animation | | | |
| `ornament_colors` | palette | | | |
@@ -101,10 +101,10 @@ SUCCESS
| Symbol | Type | Builtin | Dangerous | Takes Args |
|-------------------|-----------------------|---------|-----------|------------|
| `background` | animation | | | |
-| `comet_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
| `comet_main` | animation | | | |
| `comet_secondary` | animation | | | |
| `comet_sparkles` | animation | | | |
+| `comet` | animation_constructor | ✓ | ⚠️ | ✓ |
| `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
| `space_blue` | color | | | |
| `twinkle` | animation_constructor | ✓ | ⚠️ | ✓ |
@@ -121,18 +121,18 @@ SUCCESS
## Symbol Table
-| Symbol | Type | Builtin | Dangerous | Takes Args |
-|-------------------|----------------------------|---------|-----------|------------|
-| `abs` | math_function | ✓ | | ✓ |
-| `base_speed` | variable | | | |
-| `blue` | color | ✓ | | |
-| `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ |
-| `comet_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `red` | color | ✓ | | |
-| `stream1` | animation | | | |
-| `stream2` | animation | | | |
-| `strip_len` | value_provider | | | |
-| `strip_length` | value_provider_constructor | ✓ | ⚠️ | ✓ |
+| Symbol | Type | Builtin | Dangerous | Takes Args |
+|-----------------|----------------------------|---------|-----------|------------|
+| `abs` | math_function | ✓ | | ✓ |
+| `base_speed` | variable | | | |
+| `blue` | color | ✓ | | |
+| `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ |
+| `comet` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `red` | color | ✓ | | |
+| `stream1` | animation | | | |
+| `stream2` | animation | | | |
+| `strip_len` | value_provider | | | |
+| `strip_length` | value_provider_constructor | ✓ | ⚠️ | ✓ |
### Compilation Output
@@ -165,26 +165,26 @@ SUCCESS
## Symbol Table
-| Symbol | Type | Builtin | Dangerous | Takes Args |
-|--------------------|----------------------------|---------|-----------|------------|
-| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ |
-| `color_cycle` | color_constructor | ✓ | ⚠️ | ✓ |
-| `cosine_osc` | value_provider_constructor | ✓ | ⚠️ | ✓ |
-| `cosine_val` | value_provider | | | |
-| `cylon_eye` | sequence | | | |
-| `eye_color` | color | | | |
-| `eye_duration` | variable | | | |
-| `eye_palette` | palette | | | |
-| `green` | color | ✓ | | |
-| `red_eye` | animation | | | |
-| `red` | color | ✓ | | |
-| `strip_len` | value_provider | | | |
-| `strip_length` | value_provider_constructor | ✓ | ⚠️ | ✓ |
-| `triangle_val` | value_provider | | | |
-| `triangle` | value_provider_constructor | ✓ | ⚠️ | ✓ |
-| `violet` | color | ✓ | | |
-| `yellow` | color | ✓ | | |
+| Symbol | Type | Builtin | Dangerous | Takes Args |
+|-----------------|----------------------------|---------|-----------|------------|
+| `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ |
+| `color_cycle` | color_constructor | ✓ | ⚠️ | ✓ |
+| `cosine_osc` | value_provider_constructor | ✓ | ⚠️ | ✓ |
+| `cosine_val` | value_provider | | | |
+| `cylon_eye` | sequence | | | |
+| `eye_color` | color | | | |
+| `eye_duration` | variable | | | |
+| `eye_palette` | palette | | | |
+| `green` | color | ✓ | | |
+| `red_eye` | animation | | | |
+| `red` | color | ✓ | | |
+| `strip_len` | value_provider | | | |
+| `strip_length` | value_provider_constructor | ✓ | ⚠️ | ✓ |
+| `triangle_val` | value_provider | | | |
+| `triangle` | value_provider_constructor | ✓ | ⚠️ | ✓ |
+| `violet` | color | ✓ | | |
+| `yellow` | color | ✓ | | |
### Compilation Output
@@ -198,15 +198,15 @@ SUCCESS
## Symbol Table
-| Symbol | Type | Builtin | Dangerous | Takes Args |
-|--------------------|----------------------------|---------|-----------|------------|
-| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ |
-| `cosine_osc` | value_provider_constructor | ✓ | ⚠️ | ✓ |
-| `red_eye` | animation | | | |
-| `red` | color | ✓ | | |
-| `strip_len` | value_provider | | | |
-| `strip_length` | value_provider_constructor | ✓ | ⚠️ | ✓ |
+| Symbol | Type | Builtin | Dangerous | Takes Args |
+|-----------------|----------------------------|---------|-----------|------------|
+| `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ |
+| `cosine_osc` | value_provider_constructor | ✓ | ⚠️ | ✓ |
+| `red_eye` | animation | | | |
+| `red` | color | ✓ | | |
+| `strip_len` | value_provider | | | |
+| `strip_length` | value_provider_constructor | ✓ | ⚠️ | ✓ |
### Compilation Output
@@ -220,24 +220,24 @@ SUCCESS
## Symbol Table
-| Symbol | Type | Builtin | Dangerous | Takes Args |
-|------------------------------|----------------------------|---------|-----------|------------|
-| `background` | animation | | | |
-| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ |
-| `cosine_osc` | value_provider_constructor | ✓ | ⚠️ | ✓ |
-| `eye_mask` | animation | | | |
-| `eye_pos` | value_provider | | | |
-| `fire_color` | color | | | |
-| `fire_colors` | palette | | | |
-| `fire_pattern` | animation | | | |
-| `palette_gradient_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ |
-| `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `strip_len` | value_provider | | | |
-| `strip_length` | value_provider_constructor | ✓ | ⚠️ | ✓ |
-| `transparent` | color | ✓ | | |
-| `white` | color | ✓ | | |
+| Symbol | Type | Builtin | Dangerous | Takes Args |
+|----------------------|----------------------------|---------|-----------|------------|
+| `background` | animation | | | |
+| `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ |
+| `cosine_osc` | value_provider_constructor | ✓ | ⚠️ | ✓ |
+| `eye_mask` | animation | | | |
+| `eye_pos` | value_provider | | | |
+| `fire_color` | color | | | |
+| `fire_colors` | palette | | | |
+| `fire_pattern` | animation | | | |
+| `palette_gradient` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ |
+| `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `strip_len` | value_provider | | | |
+| `strip_length` | value_provider_constructor | ✓ | ⚠️ | ✓ |
+| `transparent` | color | ✓ | | |
+| `white` | color | ✓ | | |
### Compilation Output
@@ -322,7 +322,7 @@ SUCCESS
| Symbol | Type | Builtin | Dangerous | Takes Args |
|---------------------|----------------------------|---------|-----------|------------|
| `PALETTE_RAINBOW` | palette_constant | ✓ | | |
-| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
| `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ |
| `col1` | color | | | |
| `col2` | color | | | |
@@ -347,13 +347,13 @@ SUCCESS
## Symbol Table
-| Symbol | Type | Builtin | Dangerous | Takes Args |
-|---------------------------|----------------------------|---------|-----------|------------|
-| `back_pattern` | animation | | | |
-| `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ |
-| `palette_meter_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `rainbow_with_white` | palette | | | |
-| `rand_meter` | user_function | | | ✓ |
+| Symbol | Type | Builtin | Dangerous | Takes Args |
+|----------------------|----------------------------|---------|-----------|------------|
+| `back_pattern` | animation | | | |
+| `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ |
+| `palette_meter` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `rainbow_with_white` | palette | | | |
+| `rand_meter` | user_function | | | ✓ |
### Compilation Output
@@ -370,7 +370,7 @@ SUCCESS
| Symbol | Type | Builtin | Dangerous | Takes Args |
|----------------------|----------------------------|---------|-----------|------------|
| `LINEAR` | constant | ✓ | | |
-| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
| `disco_base` | animation | | | |
| `disco_colors` | palette | | | |
| `disco_pulse` | animation | | | |
@@ -466,18 +466,18 @@ SUCCESS
## Symbol Table
-| Symbol | Type | Builtin | Dangerous | Takes Args |
-|--------------------|----------------------------|---------|-----------|------------|
-| `background` | animation | | | |
-| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `center_pulse` | animation | | | |
-| `heart_bg` | color | | | |
-| `heart_glow` | animation | | | |
-| `heartbeat1` | animation | | | |
-| `heartbeat2` | animation | | | |
-| `smooth` | value_provider_constructor | ✓ | ⚠️ | ✓ |
-| `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `square` | value_provider_constructor | ✓ | ⚠️ | ✓ |
+| Symbol | Type | Builtin | Dangerous | Takes Args |
+|----------------|----------------------------|---------|-----------|------------|
+| `background` | animation | | | |
+| `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `center_pulse` | animation | | | |
+| `heart_bg` | color | | | |
+| `heart_glow` | animation | | | |
+| `heartbeat1` | animation | | | |
+| `heartbeat2` | animation | | | |
+| `smooth` | value_provider_constructor | ✓ | ⚠️ | ✓ |
+| `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `square` | value_provider_constructor | ✓ | ⚠️ | ✓ |
### Compilation Output
@@ -519,24 +519,24 @@ SUCCESS
## Symbol Table
-| Symbol | Type | Builtin | Dangerous | Takes Args |
-|--------------------------|----------------------------|---------|-----------|------------|
-| `SINE` | constant | ✓ | | |
-| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `blob1_pattern` | color | | | |
-| `blob2_pattern` | color | | | |
-| `blob3_pattern` | color | | | |
-| `heat_shimmer` | animation | | | |
-| `lava_base` | animation | | | |
-| `lava_blob1` | animation | | | |
-| `lava_blob2` | animation | | | |
-| `lava_blob3` | animation | | | |
-| `lava_colors` | palette | | | |
-| `rich_palette_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ |
-| `shimmer_pattern` | color | | | |
-| `smooth` | value_provider_constructor | ✓ | ⚠️ | ✓ |
-| `twinkle` | animation_constructor | ✓ | ⚠️ | ✓ |
+| Symbol | Type | Builtin | Dangerous | Takes Args |
+|----------------------|----------------------------|---------|-----------|------------|
+| `SINE` | constant | ✓ | | |
+| `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `blob1_pattern` | color | | | |
+| `blob2_pattern` | color | | | |
+| `blob3_pattern` | color | | | |
+| `heat_shimmer` | animation | | | |
+| `lava_base` | animation | | | |
+| `lava_blob1` | animation | | | |
+| `lava_blob2` | animation | | | |
+| `lava_blob3` | animation | | | |
+| `lava_colors` | palette | | | |
+| `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ |
+| `rich_palette` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `shimmer_pattern` | color | | | |
+| `smooth` | value_provider_constructor | ✓ | ⚠️ | ✓ |
+| `twinkle` | animation_constructor | ✓ | ⚠️ | ✓ |
### Compilation Output
@@ -550,20 +550,20 @@ SUCCESS
## Symbol Table
-| Symbol | Type | Builtin | Dangerous | Takes Args |
-|--------------------------|----------------------------|---------|-----------|------------|
-| `SINE` | constant | ✓ | | |
-| `afterglow` | animation | | | |
-| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `distant_flash` | animation | | | |
-| `lightning_main` | animation | | | |
-| `lightning_partial` | animation | | | |
-| `rich_palette_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `square` | value_provider_constructor | ✓ | ⚠️ | ✓ |
-| `storm_bg` | animation | | | |
-| `storm_colors` | palette | | | |
-| `twinkle` | animation_constructor | ✓ | ⚠️ | ✓ |
+| Symbol | Type | Builtin | Dangerous | Takes Args |
+|---------------------|----------------------------|---------|-----------|------------|
+| `SINE` | constant | ✓ | | |
+| `afterglow` | animation | | | |
+| `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `distant_flash` | animation | | | |
+| `lightning_main` | animation | | | |
+| `lightning_partial` | animation | | | |
+| `rich_palette` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `square` | value_provider_constructor | ✓ | ⚠️ | ✓ |
+| `storm_bg` | animation | | | |
+| `storm_colors` | palette | | | |
+| `twinkle` | animation_constructor | ✓ | ⚠️ | ✓ |
### Compilation Output
@@ -582,7 +582,7 @@ SUCCESS
| `LINEAR` | constant | ✓ | | |
| `background` | animation | | | |
| `code_flash` | animation | | | |
-| `comet_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `comet` | animation_constructor | ✓ | ⚠️ | ✓ |
| `matrix_bg` | color | | | |
| `matrix_greens` | palette | | | |
| `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ |
@@ -607,19 +607,19 @@ SUCCESS
## Symbol Table
-| Symbol | Type | Builtin | Dangerous | Takes Args |
-|-------------------|-----------------------|---------|-----------|------------|
-| `background` | animation | | | |
-| `comet_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `meteor1` | animation | | | |
-| `meteor2` | animation | | | |
-| `meteor3` | animation | | | |
-| `meteor4` | animation | | | |
-| `meteor_flash` | animation | | | |
-| `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `space_bg` | color | | | |
-| `stars` | animation | | | |
-| `twinkle` | animation_constructor | ✓ | ⚠️ | ✓ |
+| Symbol | Type | Builtin | Dangerous | Takes Args |
+|----------------|-----------------------|---------|-----------|------------|
+| `background` | animation | | | |
+| `comet` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `meteor1` | animation | | | |
+| `meteor2` | animation | | | |
+| `meteor3` | animation | | | |
+| `meteor4` | animation | | | |
+| `meteor_flash` | animation | | | |
+| `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `space_bg` | color | | | |
+| `stars` | animation | | | |
+| `twinkle` | animation_constructor | ✓ | ⚠️ | ✓ |
### Compilation Output
@@ -633,24 +633,24 @@ SUCCESS
## Symbol Table
-| Symbol | Type | Builtin | Dangerous | Takes Args |
-|--------------------------|----------------------------|---------|-----------|------------|
-| `LINEAR` | constant | ✓ | | |
-| `arc_sparkles` | animation | | | |
-| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `neon_colors` | palette | | | |
-| `neon_main` | animation | | | |
-| `neon_surge` | animation | | | |
-| `rich_palette_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ |
-| `segment1` | animation | | | |
-| `segment2` | animation | | | |
-| `segment3` | animation | | | |
-| `segment_pattern` | color | | | |
-| `smooth` | value_provider_constructor | ✓ | ⚠️ | ✓ |
-| `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `square` | value_provider_constructor | ✓ | ⚠️ | ✓ |
-| `twinkle` | animation_constructor | ✓ | ⚠️ | ✓ |
+| Symbol | Type | Builtin | Dangerous | Takes Args |
+|----------------------|----------------------------|---------|-----------|------------|
+| `LINEAR` | constant | ✓ | | |
+| `arc_sparkles` | animation | | | |
+| `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `neon_colors` | palette | | | |
+| `neon_main` | animation | | | |
+| `neon_surge` | animation | | | |
+| `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ |
+| `rich_palette` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `segment1` | animation | | | |
+| `segment2` | animation | | | |
+| `segment3` | animation | | | |
+| `segment_pattern` | color | | | |
+| `smooth` | value_provider_constructor | ✓ | ⚠️ | ✓ |
+| `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `square` | value_provider_constructor | ✓ | ⚠️ | ✓ |
+| `twinkle` | animation_constructor | ✓ | ⚠️ | ✓ |
### Compilation Output
@@ -664,21 +664,21 @@ SUCCESS
## Symbol Table
-| Symbol | Type | Builtin | Dangerous | Takes Args |
-|--------------------------|----------------------------|---------|-----------|------------|
-| `SINE` | constant | ✓ | | |
-| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `foam` | animation | | | |
-| `ocean_base` | animation | | | |
-| `ocean_colors` | palette | | | |
-| `rich_palette_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ |
-| `sawtooth` | value_provider_constructor | ✓ | ⚠️ | ✓ |
-| `twinkle` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `wave1_pattern` | color | | | |
-| `wave1` | animation | | | |
-| `wave2_pattern` | color | | | |
-| `wave2` | animation | | | |
+| Symbol | Type | Builtin | Dangerous | Takes Args |
+|----------------------|----------------------------|---------|-----------|------------|
+| `SINE` | constant | ✓ | | |
+| `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `foam` | animation | | | |
+| `ocean_base` | animation | | | |
+| `ocean_colors` | palette | | | |
+| `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ |
+| `rich_palette` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `sawtooth` | value_provider_constructor | ✓ | ⚠️ | ✓ |
+| `twinkle` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `wave1_pattern` | color | | | |
+| `wave1` | animation | | | |
+| `wave2_pattern` | color | | | |
+| `wave2` | animation | | | |
### Compilation Output
@@ -692,14 +692,14 @@ SUCCESS
## Symbol Table
-| Symbol | Type | Builtin | Dangerous | Takes Args |
-|--------------------------|-----------------------|---------|-----------|------------|
-| `fire_anim` | animation | | | |
-| `fire_colors` | palette | | | |
-| `ocean_anim` | animation | | | |
-| `ocean_colors` | palette | | | |
-| `palette_demo` | sequence | | | |
-| `rich_palette_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
+| Symbol | Type | Builtin | Dangerous | Takes Args |
+|----------------|-----------------------|---------|-----------|------------|
+| `fire_anim` | animation | | | |
+| `fire_colors` | palette | | | |
+| `ocean_anim` | animation | | | |
+| `ocean_colors` | palette | | | |
+| `palette_demo` | sequence | | | |
+| `rich_palette` | animation_constructor | ✓ | ⚠️ | ✓ |
### Compilation Output
@@ -713,29 +713,29 @@ SUCCESS
## Symbol Table
-| Symbol | Type | Builtin | Dangerous | Takes Args |
-|--------------------------|-----------------------|---------|-----------|------------|
-| `SINE` | constant | ✓ | | |
-| `aurora_borealis` | palette | | | |
-| `aurora_lights` | animation | | | |
-| `black` | color | ✓ | | |
-| `blue` | color | ✓ | | |
-| `cyan` | color | ✓ | | |
-| `fire_effect` | animation | | | |
-| `fire_gradient` | palette | | | |
-| `navy` | color | ✓ | | |
-| `ocean_depths` | palette | | | |
-| `ocean_waves` | animation | | | |
-| `orange` | color | ✓ | | |
-| `palette_showcase` | sequence | | | |
-| `purple` | color | ✓ | | |
-| `rich_palette_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ |
-| `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `sunset_glow` | animation | | | |
-| `sunset_sky` | palette | | | |
-| `white` | color | ✓ | | |
-| `yellow` | color | ✓ | | |
+| Symbol | Type | Builtin | Dangerous | Takes Args |
+|----------------------|-----------------------|---------|-----------|------------|
+| `SINE` | constant | ✓ | | |
+| `aurora_borealis` | palette | | | |
+| `aurora_lights` | animation | | | |
+| `black` | color | ✓ | | |
+| `blue` | color | ✓ | | |
+| `cyan` | color | ✓ | | |
+| `fire_effect` | animation | | | |
+| `fire_gradient` | palette | | | |
+| `navy` | color | ✓ | | |
+| `ocean_depths` | palette | | | |
+| `ocean_waves` | animation | | | |
+| `orange` | color | ✓ | | |
+| `palette_showcase` | sequence | | | |
+| `purple` | color | ✓ | | |
+| `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ |
+| `rich_palette` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `sunset_glow` | animation | | | |
+| `sunset_sky` | palette | | | |
+| `white` | color | ✓ | | |
+| `yellow` | color | ✓ | | |
### Compilation Output
@@ -749,21 +749,21 @@ SUCCESS
## Symbol Table
-| Symbol | Type | Builtin | Dangerous | Takes Args |
-|--------------------------|----------------------------|---------|-----------|------------|
-| `SINE` | constant | ✓ | | |
-| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `plasma_base` | animation | | | |
-| `plasma_colors` | palette | | | |
-| `plasma_wave1` | animation | | | |
-| `plasma_wave2` | animation | | | |
-| `plasma_wave3` | animation | | | |
-| `rich_palette_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ |
-| `smooth` | value_provider_constructor | ✓ | ⚠️ | ✓ |
-| `wave1_pattern` | color | | | |
-| `wave2_pattern` | color | | | |
-| `wave3_pattern` | color | | | |
+| Symbol | Type | Builtin | Dangerous | Takes Args |
+|----------------------|----------------------------|---------|-----------|------------|
+| `SINE` | constant | ✓ | | |
+| `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `plasma_base` | animation | | | |
+| `plasma_colors` | palette | | | |
+| `plasma_wave1` | animation | | | |
+| `plasma_wave2` | animation | | | |
+| `plasma_wave3` | animation | | | |
+| `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ |
+| `rich_palette` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `smooth` | value_provider_constructor | ✓ | ⚠️ | ✓ |
+| `wave1_pattern` | color | | | |
+| `wave2_pattern` | color | | | |
+| `wave3_pattern` | color | | | |
### Compilation Output
@@ -777,15 +777,15 @@ SUCCESS
## Symbol Table
-| Symbol | Type | Builtin | Dangerous | Takes Args |
-|--------------------|----------------------------|---------|-----------|------------|
-| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `half_length` | variable | | | |
-| `left_red` | animation | | | |
-| `right_blue` | animation | | | |
-| `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `square` | value_provider_constructor | ✓ | ⚠️ | ✓ |
-| `white_strobe` | animation | | | |
+| Symbol | Type | Builtin | Dangerous | Takes Args |
+|----------------|----------------------------|---------|-----------|------------|
+| `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `half_length` | variable | | | |
+| `left_red` | animation | | | |
+| `right_blue` | animation | | | |
+| `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `square` | value_provider_constructor | ✓ | ⚠️ | ✓ |
+| `white_strobe` | animation | | | |
### Compilation Output
@@ -799,16 +799,16 @@ SUCCESS
## Symbol Table
-| Symbol | Type | Builtin | Dangerous | Takes Args |
-|--------------------|-----------------------|---------|-----------|------------|
-| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `blue_custom` | color | | | |
-| `center_pulse` | animation | | | |
-| `demo` | sequence | | | |
-| `green_custom` | color | | | |
-| `left_pulse` | animation | | | |
-| `red_custom` | color | | | |
-| `right_pulse` | animation | | | |
+| Symbol | Type | Builtin | Dangerous | Takes Args |
+|----------------|-----------------------|---------|-----------|------------|
+| `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `blue_custom` | color | | | |
+| `center_pulse` | animation | | | |
+| `demo` | sequence | | | |
+| `green_custom` | color | | | |
+| `left_pulse` | animation | | | |
+| `red_custom` | color | | | |
+| `right_pulse` | animation | | | |
### Compilation Output
@@ -842,17 +842,17 @@ SUCCESS
## Symbol Table
-| Symbol | Type | Builtin | Dangerous | Takes Args |
-|--------------------|----------------------------|---------|-----------|------------|
-| `background` | animation | | | |
-| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ |
-| `pos_test` | value_provider | | | |
-| `scanner_bg` | color | | | |
-| `scanner_trail` | animation | | | |
-| `scanner` | animation | | | |
-| `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `triangle` | value_provider_constructor | ✓ | ⚠️ | ✓ |
+| Symbol | Type | Builtin | Dangerous | Takes Args |
+|-----------------|----------------------------|---------|-----------|------------|
+| `background` | animation | | | |
+| `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ |
+| `pos_test` | value_provider | | | |
+| `scanner_bg` | color | | | |
+| `scanner_trail` | animation | | | |
+| `scanner` | animation | | | |
+| `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `triangle` | value_provider_constructor | ✓ | ⚠️ | ✓ |
### Compilation Output
@@ -866,34 +866,34 @@ SUCCESS
## Symbol Table
-| Symbol | Type | Builtin | Dangerous | Takes Args |
-|-----------------------|----------------------------|---------|-----------|------------|
-| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `blue` | color | ✓ | | |
-| `brightness_demo` | sequence | | | |
-| `brightness_high` | variable | | | |
-| `brightness_low` | variable | | | |
-| `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ |
-| `color_cycle` | color_constructor | ✓ | ⚠️ | ✓ |
-| `cosine_osc` | value_provider_constructor | ✓ | ⚠️ | ✓ |
-| `cosine_val` | value_provider | | | |
-| `cylon_eye` | sequence | | | |
-| `eye_color` | color | | | |
-| `eye_palette` | palette | | | |
-| `green` | color | ✓ | | |
-| `main_demo` | sequence | | | |
-| `multi_change` | sequence | | | |
-| `pulsating_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `pulse_demo` | animation | | | |
-| `red_eye` | animation | | | |
-| `red` | color | ✓ | | |
-| `repeat_demo` | sequence | | | |
-| `strip_len` | value_provider | | | |
-| `strip_length` | value_provider_constructor | ✓ | ⚠️ | ✓ |
-| `triangle_val` | value_provider | | | |
-| `triangle` | value_provider_constructor | ✓ | ⚠️ | ✓ |
-| `violet` | color | ✓ | | |
-| `yellow` | color | ✓ | | |
+| Symbol | Type | Builtin | Dangerous | Takes Args |
+|-------------------|----------------------------|---------|-----------|------------|
+| `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `blue` | color | ✓ | | |
+| `breathe` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `brightness_demo` | sequence | | | |
+| `brightness_high` | variable | | | |
+| `brightness_low` | variable | | | |
+| `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ |
+| `color_cycle` | color_constructor | ✓ | ⚠️ | ✓ |
+| `cosine_osc` | value_provider_constructor | ✓ | ⚠️ | ✓ |
+| `cosine_val` | value_provider | | | |
+| `cylon_eye` | sequence | | | |
+| `eye_color` | color | | | |
+| `eye_palette` | palette | | | |
+| `green` | color | ✓ | | |
+| `main_demo` | sequence | | | |
+| `multi_change` | sequence | | | |
+| `pulse_demo` | animation | | | |
+| `red_eye` | animation | | | |
+| `red` | color | ✓ | | |
+| `repeat_demo` | sequence | | | |
+| `strip_len` | value_provider | | | |
+| `strip_length` | value_provider_constructor | ✓ | ⚠️ | ✓ |
+| `triangle_val` | value_provider | | | |
+| `triangle` | value_provider_constructor | ✓ | ⚠️ | ✓ |
+| `violet` | color | ✓ | | |
+| `yellow` | color | ✓ | | |
### Compilation Output
@@ -907,17 +907,17 @@ SUCCESS
## Symbol Table
-| Symbol | Type | Builtin | Dangerous | Takes Args |
-|--------------------------|-----------------------|---------|-----------|------------|
-| `blue` | color | ✓ | | |
-| `demo` | sequence | | | |
-| `green` | color | ✓ | | |
-| `orange` | color | ✓ | | |
-| `rainbow_cycle` | animation | | | |
-| `rainbow` | palette | | | |
-| `red` | color | ✓ | | |
-| `rich_palette_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `yellow` | color | ✓ | | |
+| Symbol | Type | Builtin | Dangerous | Takes Args |
+|-----------------|-----------------------|---------|-----------|------------|
+| `blue` | color | ✓ | | |
+| `demo` | sequence | | | |
+| `green` | color | ✓ | | |
+| `orange` | color | ✓ | | |
+| `rainbow_cycle` | animation | | | |
+| `rainbow` | palette | | | |
+| `red` | color | ✓ | | |
+| `rich_palette` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `yellow` | color | ✓ | | |
### Compilation Output
@@ -931,17 +931,17 @@ SUCCESS
## Symbol Table
-| Symbol | Type | Builtin | Dangerous | Takes Args |
-|--------------------------|----------------------------|---------|-----------|------------|
-| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `daylight_colors` | palette | | | |
-| `daylight_cycle` | animation | | | |
-| `rich_palette_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
-| `smooth` | value_provider_constructor | ✓ | ⚠️ | ✓ |
-| `stars` | animation | | | |
-| `sun_glow` | animation | | | |
-| `sun_position` | animation | | | |
-| `twinkle` | animation_constructor | ✓ | ⚠️ | ✓ |
+| Symbol | Type | Builtin | Dangerous | Takes Args |
+|-------------------|----------------------------|---------|-----------|------------|
+| `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `daylight_colors` | palette | | | |
+| `daylight_cycle` | animation | | | |
+| `rich_palette` | animation_constructor | ✓ | ⚠️ | ✓ |
+| `smooth` | value_provider_constructor | ✓ | ⚠️ | ✓ |
+| `stars` | animation | | | |
+| `sun_glow` | animation | | | |
+| `sun_position` | animation | | | |
+| `twinkle` | animation_constructor | ✓ | ⚠️ | ✓ |
### Compilation Output
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/computed_values_demo.be b/lib/libesp32/berry_animation/anim_examples/compiled/computed_values_demo.be
index 10b4d026c..4320e0fe0 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/computed_values_demo.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/computed_values_demo.be
@@ -14,14 +14,14 @@ var engine = animation.init_strip()
var strip_len_ = animation.strip_length(engine)
# Create animation with computed values
-var stream1_ = animation.comet_animation(engine)
+var stream1_ = animation.comet(engine)
stream1_.color = 0xFFFF0000
stream1_.tail_length = animation.create_closure_value(engine, def (engine) return animation._math.abs(animation.resolve(strip_len_) / 4) end) # computed value
stream1_.speed = 1.5
stream1_.priority = 10
# More complex computed values
var base_speed_ = 2.0
-var stream2_ = animation.comet_animation(engine)
+var stream2_ = animation.comet(engine)
stream2_.color = 0xFF0000FF
stream2_.tail_length = animation.create_closure_value(engine, def (engine) return animation.resolve(strip_len_) / 8 + (2 * animation.resolve(strip_len_)) - 10 end) # computed with addition
stream2_.speed = animation.create_closure_value(engine, def (engine) return animation.resolve(base_speed_) * 1.5 end) # computed with multiplication
@@ -44,7 +44,7 @@ engine.run()
set strip_len = strip_length()
# Create animation with computed values
-animation stream1 = comet_animation(
+animation stream1 = comet(
color=red
tail_length=abs(strip_len / 4) # computed value
speed=1.5
@@ -53,7 +53,7 @@ animation stream1 = comet_animation(
# More complex computed values
set base_speed = 2.0
-animation stream2 = comet_animation(
+animation stream2 = comet(
color=blue
tail_length=strip_len / 8 + (2 * strip_len) -10 # computed with addition
speed=base_speed * 1.5 # computed with multiplication
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/cylon_generic.be b/lib/libesp32/berry_animation/anim_examples/compiled/cylon_generic.be
index 48939cd5a..6cde0cc0d 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/cylon_generic.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/cylon_generic.be
@@ -21,7 +21,7 @@ class cylon_animation : animation.engine_proxy
var engine = self # using 'self' as a proxy to engine object (instead of 'self.engine')
var strip_len_ = animation.strip_length(engine)
- var eye_animation_ = animation.beacon_animation(engine)
+ var eye_animation_ = animation.beacon(engine)
eye_animation_.color = animation.create_closure_value(engine, def (engine) return self.eye_color end)
eye_animation_.back_color = animation.create_closure_value(engine, def (engine) return self.back_color end)
eye_animation_.pos = (def (engine)
@@ -60,7 +60,7 @@ template animation cylon {
set strip_len = strip_length()
- animation eye_animation = beacon_animation(
+ animation eye_animation = beacon(
color = eye_color
back_color = back_color
pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = period)
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/cylon_rainbow.be b/lib/libesp32/berry_animation/anim_examples/compiled/cylon_rainbow.be
index bd6b66c5e..0f7f58a2d 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/cylon_rainbow.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/cylon_rainbow.be
@@ -31,7 +31,7 @@ var triangle_val_ = (def (engine)
provider.duration = eye_duration_
return provider
end)(engine)
-var red_eye_ = animation.beacon_animation(engine)
+var red_eye_ = animation.beacon(engine)
red_eye_.color = eye_color_ # palette that will advance when we do `eye_color.next = 1`
red_eye_.pos = cosine_val_ # oscillator for position
red_eye_.beacon_size = 3 # small 3 pixels eye
@@ -63,7 +63,7 @@ color eye_color = color_cycle(colors=eye_palette, period=0)
set cosine_val = cosine_osc(min_value = 0, max_value = strip_len - 2, duration = eye_duration)
set triangle_val = triangle(min_value = 0, max_value = strip_len - 2, duration = eye_duration)
-animation red_eye = beacon_animation(
+animation red_eye = beacon(
color = eye_color # palette that will advance when we do `eye_color.next = 1`
pos = cosine_val # oscillator for position
beacon_size = 3 # small 3 pixels eye
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/cylon_red_eye.be b/lib/libesp32/berry_animation/anim_examples/compiled/cylon_red_eye.be
index 8fb7b5e96..834741d50 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/cylon_red_eye.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/cylon_red_eye.be
@@ -13,7 +13,7 @@ var engine = animation.init_strip()
var strip_len_ = animation.strip_length(engine)
# Base aurora animation with slow flowing colors
-var red_eye_ = animation.beacon_animation(engine)
+var red_eye_ = animation.beacon(engine)
red_eye_.color = 0xFFFF0000
red_eye_.pos = (def (engine)
var provider = animation.cosine_osc(engine)
@@ -35,7 +35,7 @@ engine.run()
set strip_len = strip_length()
# Base aurora animation with slow flowing colors
-animation red_eye = beacon_animation(
+animation red_eye = beacon(
color = red
pos = cosine_osc(min_value = 0, max_value = strip_len - 2, duration = 5s)
beacon_size = 3 # small 3 pixels eye
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/demo_pattern_fire_opacity.be b/lib/libesp32/berry_animation/anim_examples/compiled/demo_pattern_fire_opacity.be
index 576a3fbdd..24eebda54 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/demo_pattern_fire_opacity.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/demo_pattern_fire_opacity.be
@@ -30,14 +30,14 @@ var eye_pos_ = (def (engine)
provider.duration = 6000
return provider
end)(engine)
-var eye_mask_ = animation.beacon_animation(engine)
+var eye_mask_ = animation.beacon(engine)
eye_mask_.color = 0xFFFFFFFF
eye_mask_.back_color = 0x00000000
eye_mask_.pos = eye_pos_
eye_mask_.beacon_size = 4 # small 3 pixels eye
eye_mask_.slew_size = 2 # with 2 pixel shading around
eye_mask_.priority = 5
-var fire_pattern_ = animation.palette_gradient_animation(engine)
+var fire_pattern_ = animation.palette_gradient(engine)
fire_pattern_.color_source = fire_color_
fire_pattern_.spatial_period = animation.create_closure_value(engine, def (engine) return animation.resolve(strip_len_) / 4 end)
fire_pattern_.opacity = eye_mask_
@@ -64,7 +64,7 @@ animation background = solid(color=0x000088, priority=20)
run background
set eye_pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = 6s)
-animation eye_mask = beacon_animation(
+animation eye_mask = beacon(
color = white
back_color = transparent
pos = eye_pos
@@ -73,7 +73,7 @@ animation eye_mask = beacon_animation(
priority = 5
)
-animation fire_pattern = palette_gradient_animation(
+animation fire_pattern = palette_gradient(
color_source = fire_color
spatial_period = strip_len / 4
opacity = eye_mask
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow2.be b/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow2.be
index 1a8523dc2..93be970e1 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow2.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow2.be
@@ -28,7 +28,7 @@ var col2_ = animation.color_cycle(engine)
col2_.colors = animation.PALETTE_RAINBOW
col2_.period = 0
col2_.next = 1
-var shutter_animation_ = animation.beacon_animation(engine)
+var shutter_animation_ = animation.beacon(engine)
shutter_animation_.color = col1_
shutter_animation_.back_color = col2_
shutter_animation_.pos = 0
@@ -61,7 +61,7 @@ set duration = 3s
color col2 = color_cycle(colors=PALETTE_RAINBOW, period=0)
col2.next = 1
- animation shutter_animation = beacon_animation(
+ animation shutter_animation = beacon(
color = col1
back_color = col2
pos = 0
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow_bidir.be b/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow_bidir.be
index 020c3fd62..b67813ee4 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow_bidir.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow_bidir.be
@@ -36,7 +36,7 @@ class shutter_bidir_animation : animation.engine_proxy
col2_.period = 0
col2_.next = 1
# shutter moving from left to right
- var shutter_lr_animation_ = animation.beacon_animation(engine)
+ var shutter_lr_animation_ = animation.beacon(engine)
shutter_lr_animation_.color = col2_
shutter_lr_animation_.back_color = col1_
shutter_lr_animation_.pos = 0
@@ -44,7 +44,7 @@ class shutter_bidir_animation : animation.engine_proxy
shutter_lr_animation_.slew_size = 0
shutter_lr_animation_.priority = 5
# shutter moving from right to left
- var shutter_rl_animation_ = animation.beacon_animation(engine)
+ var shutter_rl_animation_ = animation.beacon(engine)
shutter_rl_animation_.color = col1_
shutter_rl_animation_.back_color = col2_
shutter_rl_animation_.pos = 0
@@ -105,7 +105,7 @@ template animation shutter_bidir {
col2.next = 1
# shutter moving from left to right
- animation shutter_lr_animation = beacon_animation(
+ animation shutter_lr_animation = beacon(
color = col2
back_color = col1
pos = 0
@@ -115,7 +115,7 @@ template animation shutter_bidir {
)
# shutter moving from right to left
- animation shutter_rl_animation = beacon_animation(
+ animation shutter_rl_animation = beacon(
color = col1
back_color = col2
pos = 0
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow_central.be b/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow_central.be
index b33f6c1a6..be2954533 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow_central.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow_central.be
@@ -37,7 +37,7 @@ class shutter_central_animation : animation.engine_proxy
col2_.period = 0
col2_.next = 1
# shutter moving in to out
- var shutter_inout_animation_ = animation.beacon_animation(engine)
+ var shutter_inout_animation_ = animation.beacon(engine)
shutter_inout_animation_.color = col2_
shutter_inout_animation_.back_color = col1_
shutter_inout_animation_.pos = animation.create_closure_value(engine, def (engine) return animation.resolve(strip_len2_) - (animation.resolve(shutter_size_) + 1) / 2 end)
@@ -45,7 +45,7 @@ class shutter_central_animation : animation.engine_proxy
shutter_inout_animation_.slew_size = 0
shutter_inout_animation_.priority = 5
# shutter moving out to in
- var shutter_outin_animation_ = animation.beacon_animation(engine)
+ var shutter_outin_animation_ = animation.beacon(engine)
shutter_outin_animation_.color = col1_
shutter_outin_animation_.back_color = col2_
shutter_outin_animation_.pos = animation.create_closure_value(engine, def (engine) return animation.resolve(strip_len2_) - (animation.resolve(strip_len_) - animation.resolve(shutter_size_) + 1) / 2 end)
@@ -106,7 +106,7 @@ template animation shutter_central {
col2.next = 1
# shutter moving in to out
- animation shutter_inout_animation = beacon_animation(
+ animation shutter_inout_animation = beacon(
color = col2
back_color = col1
pos = strip_len2 - (shutter_size + 1) / 2
@@ -116,7 +116,7 @@ template animation shutter_central {
)
# shutter moving out to in
- animation shutter_outin_animation = beacon_animation(
+ animation shutter_outin_animation = beacon(
color = col1
back_color = col2
pos = strip_len2 - (strip_len - shutter_size + 1) / 2
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow_leftright.be b/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow_leftright.be
index 0d340aca9..91723aee1 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow_leftright.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/demo_shutter_rainbow_leftright.be
@@ -36,7 +36,7 @@ class shutter_lr_animation : animation.engine_proxy
col2_.period = 0
col2_.next = 1
# shutter moving from left to right
- var shutter_lr_animation_ = animation.beacon_animation(engine)
+ var shutter_lr_animation_ = animation.beacon(engine)
shutter_lr_animation_.color = col2_
shutter_lr_animation_.back_color = col1_
shutter_lr_animation_.pos = 0
@@ -88,7 +88,7 @@ template animation shutter_lr {
col2.next = 1
# shutter moving from left to right
- animation shutter_lr_animation = beacon_animation(
+ animation shutter_lr_animation = beacon(
color = col2
back_color = col1
pos = 0
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/demo_value_meter.be b/lib/libesp32/berry_animation/anim_examples/compiled/demo_value_meter.be
index 8b51d8490..74b5d50eb 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/demo_value_meter.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/demo_value_meter.be
@@ -34,7 +34,7 @@ var rainbow_with_white_ = bytes(
"FFFC0000" # Red - need to add the first color at last position to ensure roll-over
)
# define a gradient across the whole strip
-var back_pattern_ = animation.palette_meter_animation(engine)
+var back_pattern_ = animation.palette_meter(engine)
back_pattern_.level = animation.create_closure_value(engine, def (engine) return animation.get_user_function('rand_meter')(engine) end)
engine.add(back_pattern_)
engine.run()
@@ -67,7 +67,7 @@ palette rainbow_with_white = [
]
# define a gradient across the whole strip
-animation back_pattern = palette_meter_animation(level = rand_meter())
+animation back_pattern = palette_meter(level = rand_meter())
run back_pattern
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/disco_strobe.be b/lib/libesp32/berry_animation/anim_examples/compiled/disco_strobe.be
index c1e6b9c4f..d1c27556d 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/disco_strobe.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/disco_strobe.be
@@ -68,7 +68,7 @@ pulse_pattern_.colors = disco_colors_
pulse_pattern_.period = 800
pulse_pattern_.transition_type = animation.LINEAR
pulse_pattern_.brightness = 255
-var disco_pulse_ = animation.beacon_animation(engine)
+var disco_pulse_ = animation.beacon(engine)
disco_pulse_.color = pulse_pattern_ # color source
disco_pulse_.pos = 4 # initial position
disco_pulse_.beacon_size = 8 # pulse width
@@ -129,7 +129,7 @@ disco_sparkles.priority = 15
# Add moving pulse for extra effect
color pulse_pattern = rich_palette_color(colors=disco_colors, period=800ms, transition_type=LINEAR, brightness=255)
-animation disco_pulse = beacon_animation(
+animation disco_pulse = beacon(
color=pulse_pattern # color source
pos=4 # initial position
beacon_size=8 # pulse width
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/heartbeat_pulse.be b/lib/libesp32/berry_animation/anim_examples/compiled/heartbeat_pulse.be
index cab6b44f8..e2cf5bf17 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/heartbeat_pulse.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/heartbeat_pulse.be
@@ -57,7 +57,7 @@ heart_glow_.opacity = (def (engine)
end)(engine) # Gentle breathing glow
heart_glow_.priority = 5
# Add center pulse for emphasis
-var center_pulse_ = animation.beacon_animation(engine)
+var center_pulse_ = animation.beacon(engine)
center_pulse_.color = 0xFFFFFFFF # White center
center_pulse_.pos = 30 # center of strip
center_pulse_.beacon_size = 4 # small center
@@ -108,7 +108,7 @@ heart_glow.opacity = smooth(min_value=30, max_value=100, duration=1s) # Gentle
heart_glow.priority = 5
# Add center pulse for emphasis
-animation center_pulse = beacon_animation(
+animation center_pulse = beacon(
color=0xFFFFFF # White center
pos=30 # center of strip
beacon_size=4 # small center
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/lava_lamp.be b/lib/libesp32/berry_animation/anim_examples/compiled/lava_lamp.be
index 1c417b6bc..1bbfa550f 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/lava_lamp.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/lava_lamp.be
@@ -21,7 +21,7 @@ var lava_colors_ = bytes(
"FFFFAA00" # Yellow-orange
)
# Base lava animation - very slow color changes
-var lava_base_ = animation.rich_palette_animation(engine)
+var lava_base_ = animation.rich_palette(engine)
lava_base_.colors = lava_colors_
lava_base_.period = 15000
lava_base_.transition_type = animation.SINE
@@ -32,7 +32,7 @@ blob1_pattern_.colors = lava_colors_
blob1_pattern_.period = 12000
blob1_pattern_.transition_type = animation.SINE
blob1_pattern_.brightness = 255
-var lava_blob1_ = animation.beacon_animation(engine)
+var lava_blob1_ = animation.beacon(engine)
lava_blob1_.color = blob1_pattern_ # color source
lava_blob1_.pos = 9 # initial position
lava_blob1_.beacon_size = 18 # large blob
@@ -50,7 +50,7 @@ blob2_pattern_.colors = lava_colors_
blob2_pattern_.period = 10000
blob2_pattern_.transition_type = animation.SINE
blob2_pattern_.brightness = 220
-var lava_blob2_ = animation.beacon_animation(engine)
+var lava_blob2_ = animation.beacon(engine)
lava_blob2_.color = blob2_pattern_ # color source
lava_blob2_.pos = 46 # initial position
lava_blob2_.beacon_size = 14 # medium blob
@@ -68,7 +68,7 @@ blob3_pattern_.colors = lava_colors_
blob3_pattern_.period = 8000
blob3_pattern_.transition_type = animation.SINE
blob3_pattern_.brightness = 200
-var lava_blob3_ = animation.beacon_animation(engine)
+var lava_blob3_ = animation.beacon(engine)
lava_blob3_.color = blob3_pattern_ # color source
lava_blob3_.pos = 25 # initial position
lava_blob3_.beacon_size = 10 # smaller blob
@@ -117,11 +117,11 @@ palette lava_colors = [
]
# Base lava animation - very slow color changes
-animation lava_base = rich_palette_animation(colors=lava_colors, period=15s, transition_type=SINE, brightness=180)
+animation lava_base = rich_palette(colors=lava_colors, period=15s, transition_type=SINE, brightness=180)
# Add slow-moving lava blobs
color blob1_pattern = rich_palette_color(colors=lava_colors, period=12s, transition_type=SINE, brightness=255)
-animation lava_blob1 = beacon_animation(
+animation lava_blob1 = beacon(
color=blob1_pattern # color source
pos=9 # initial position
beacon_size=18 # large blob
@@ -131,7 +131,7 @@ lava_blob1.priority = 10
lava_blob1.pos = smooth(min_value=9, max_value=51, duration=20s) # Very slow movement
color blob2_pattern = rich_palette_color(colors=lava_colors, period=10s, transition_type=SINE, brightness=220)
-animation lava_blob2 = beacon_animation(
+animation lava_blob2 = beacon(
color=blob2_pattern # color source
pos=46 # initial position
beacon_size=14 # medium blob
@@ -141,7 +141,7 @@ lava_blob2.priority = 8
lava_blob2.pos = smooth(min_value=46, max_value=14, duration=25s) # Opposite direction, slower
color blob3_pattern = rich_palette_color(colors=lava_colors, period=8s, transition_type=SINE, brightness=200)
-animation lava_blob3 = beacon_animation(
+animation lava_blob3 = beacon(
color=blob3_pattern # color source
pos=25 # initial position
beacon_size=10 # smaller blob
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/lightning_storm.be b/lib/libesp32/berry_animation/anim_examples/compiled/lightning_storm.be
index 864982d92..b0dd80482 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/lightning_storm.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/lightning_storm.be
@@ -18,7 +18,7 @@ var storm_colors_ = bytes(
"80110022" # Dark purple
"FF220033" # Slightly lighter purple
)
-var storm_bg_ = animation.rich_palette_animation(engine)
+var storm_bg_ = animation.rich_palette(engine)
storm_bg_.colors = storm_colors_
storm_bg_.period = 12000
storm_bg_.transition_type = animation.SINE
@@ -37,7 +37,7 @@ lightning_main_.opacity = (def (engine)
end)(engine) # Quick bright flashes
lightning_main_.priority = 20
# Secondary lightning - partial strip
-var lightning_partial_ = animation.beacon_animation(engine)
+var lightning_partial_ = animation.beacon(engine)
lightning_partial_.color = 0xFFFFFFAA # Slightly yellow white
lightning_partial_.pos = 30 # center position
lightning_partial_.beacon_size = 20 # covers part of strip
@@ -92,7 +92,7 @@ palette storm_colors = [
(255, 0x220033) # Slightly lighter purple
]
-animation storm_bg = rich_palette_animation(colors=storm_colors, period=12s, transition_type=SINE, brightness=100)
+animation storm_bg = rich_palette(colors=storm_colors, period=12s, transition_type=SINE, brightness=100)
# Random lightning flashes - full strip
animation lightning_main = solid(color=0xFFFFFF) # Bright white
@@ -100,7 +100,7 @@ lightning_main.opacity = square(min_value=0, max_value=255, duration=80ms, duty_
lightning_main.priority = 20
# Secondary lightning - partial strip
-animation lightning_partial = beacon_animation(
+animation lightning_partial = beacon(
color=0xFFFFAA # Slightly yellow white
pos=30 # center position
beacon_size=20 # covers part of strip
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/matrix_rain.be b/lib/libesp32/berry_animation/anim_examples/compiled/matrix_rain.be
index f4b243dd4..5f244e6d5 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/matrix_rain.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/matrix_rain.be
@@ -31,7 +31,7 @@ stream1_pattern_.colors = matrix_greens_
stream1_pattern_.period = 2000
stream1_pattern_.transition_type = animation.LINEAR
stream1_pattern_.brightness = 255
-var stream1_ = animation.comet_animation(engine)
+var stream1_ = animation.comet(engine)
stream1_.color = stream1_pattern_ # color source
stream1_.tail_length = 15 # long tail
stream1_.speed = 1500 # speed
@@ -41,7 +41,7 @@ stream2_pattern_.colors = matrix_greens_
stream2_pattern_.period = 1800
stream2_pattern_.transition_type = animation.LINEAR
stream2_pattern_.brightness = 200
-var stream2_ = animation.comet_animation(engine)
+var stream2_ = animation.comet(engine)
stream2_.color = stream2_pattern_ # color source
stream2_.tail_length = 12 # medium tail
stream2_.speed = 2200 # different speed
@@ -51,7 +51,7 @@ stream3_pattern_.colors = matrix_greens_
stream3_pattern_.period = 2500
stream3_pattern_.transition_type = animation.LINEAR
stream3_pattern_.brightness = 180
-var stream3_ = animation.comet_animation(engine)
+var stream3_ = animation.comet(engine)
stream3_.color = stream3_pattern_ # color source
stream3_.tail_length = 10 # shorter tail
stream3_.speed = 1800 # another speed
@@ -92,7 +92,7 @@ palette matrix_greens = [
# Create multiple cascading streams
color stream1_pattern = rich_palette_color(colors=matrix_greens, period=2s, transition_type=LINEAR, brightness=255)
-animation stream1 = comet_animation(
+animation stream1 = comet(
color=stream1_pattern # color source
tail_length=15 # long tail
speed=1.5s # speed
@@ -101,7 +101,7 @@ animation stream1 = comet_animation(
color stream2_pattern = rich_palette_color(colors=matrix_greens, period=1.8s, transition_type=LINEAR, brightness=200)
-animation stream2 = comet_animation(
+animation stream2 = comet(
color=stream2_pattern # color source
tail_length=12 # medium tail
speed=2.2s # different speed
@@ -109,7 +109,7 @@ animation stream2 = comet_animation(
)
color stream3_pattern = rich_palette_color(colors=matrix_greens, period=2.5s, transition_type=LINEAR, brightness=180)
-animation stream3 = comet_animation(
+animation stream3 = comet(
color=stream3_pattern # color source
tail_length=10 # shorter tail
speed=1.8s # another speed
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/meteor_shower.be b/lib/libesp32/berry_animation/anim_examples/compiled/meteor_shower.be
index b361fac3e..fd7ded584 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/meteor_shower.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/meteor_shower.be
@@ -17,22 +17,22 @@ var space_bg_ = 0xFF000011
var background_ = animation.solid(engine)
background_.color = space_bg_
# Multiple meteors with different speeds and colors
-var meteor1_ = animation.comet_animation(engine)
+var meteor1_ = animation.comet(engine)
meteor1_.color = 0xFFFFFFFF # Bright white
meteor1_.tail_length = 12 # long trail
meteor1_.speed = 1500 # fast speed
meteor1_.priority = 15
-var meteor2_ = animation.comet_animation(engine)
+var meteor2_ = animation.comet(engine)
meteor2_.color = 0xFFFFAA00 # Orange
meteor2_.tail_length = 10 # medium trail
meteor2_.speed = 2000 # medium speed
meteor2_.priority = 12
-var meteor3_ = animation.comet_animation(engine)
+var meteor3_ = animation.comet(engine)
meteor3_.color = 0xFFAAAAFF # Blue-white
meteor3_.tail_length = 8 # shorter trail
meteor3_.speed = 1800 # fast speed
meteor3_.priority = 10
-var meteor4_ = animation.comet_animation(engine)
+var meteor4_ = animation.comet(engine)
meteor4_.color = 0xFFFFAAAA # Pink-white
meteor4_.tail_length = 14 # long trail
meteor4_.speed = 2500 # slower speed
@@ -71,28 +71,28 @@ color space_bg = 0x000011
animation background = solid(color=space_bg)
# Multiple meteors with different speeds and colors
-animation meteor1 = comet_animation(
+animation meteor1 = comet(
color=0xFFFFFF # Bright white
tail_length=12 # long trail
speed=1.5s # fast speed
)
meteor1.priority = 15
-animation meteor2 = comet_animation(
+animation meteor2 = comet(
color=0xFFAA00 # Orange
tail_length=10 # medium trail
speed=2s # medium speed
)
meteor2.priority = 12
-animation meteor3 = comet_animation(
+animation meteor3 = comet(
color=0xAAAAFF # Blue-white
tail_length=8 # shorter trail
speed=1.8s # fast speed
)
meteor3.priority = 10
-animation meteor4 = comet_animation(
+animation meteor4 = comet(
color=0xFFAAAA # Pink-white
tail_length=14 # long trail
speed=2.5s # slower speed
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/neon_glow.be b/lib/libesp32/berry_animation/anim_examples/compiled/neon_glow.be
index b41918924..702d4b83a 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/neon_glow.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/neon_glow.be
@@ -20,7 +20,7 @@ var neon_colors_ = bytes(
"FFFF8000" # Neon orange
)
# Main neon glow with color cycling
-var neon_main_ = animation.rich_palette_animation(engine)
+var neon_main_ = animation.rich_palette(engine)
neon_main_.colors = neon_colors_
neon_main_.period = 4000
neon_main_.transition_type = animation.LINEAR
@@ -52,19 +52,19 @@ segment_pattern_.colors = neon_colors_
segment_pattern_.period = 4000
segment_pattern_.transition_type = animation.LINEAR
segment_pattern_.brightness = 255
-var segment1_ = animation.beacon_animation(engine)
+var segment1_ = animation.beacon(engine)
segment1_.color = segment_pattern_ # color source
segment1_.pos = 6 # position
segment1_.beacon_size = 12 # segment length
segment1_.slew_size = 1 # sharp edges
segment1_.priority = 10
-var segment2_ = animation.beacon_animation(engine)
+var segment2_ = animation.beacon(engine)
segment2_.color = segment_pattern_ # color source
segment2_.pos = 24 # position
segment2_.beacon_size = 12 # segment length
segment2_.slew_size = 1 # sharp edges
segment2_.priority = 10
-var segment3_ = animation.beacon_animation(engine)
+var segment3_ = animation.beacon(engine)
segment3_.color = segment_pattern_ # color source
segment3_.pos = 42 # position
segment3_.beacon_size = 12 # segment length
@@ -101,7 +101,7 @@ palette neon_colors = [
]
# Main neon glow with color cycling
-animation neon_main = rich_palette_animation(colors=neon_colors, period=4s, transition_type=LINEAR, brightness=255)
+animation neon_main = rich_palette(colors=neon_colors, period=4s, transition_type=LINEAR, brightness=255)
# Add electrical flickering
neon_main.opacity = smooth(min_value=220, max_value=255, duration=200ms)
@@ -113,7 +113,7 @@ neon_surge.priority = 20
# Add neon tube segments with gaps
color segment_pattern = rich_palette_color(colors=neon_colors, period=4s, transition_type=LINEAR, brightness=255)
-animation segment1 = beacon_animation(
+animation segment1 = beacon(
color=segment_pattern # color source
pos=6 # position
beacon_size=12 # segment length
@@ -121,7 +121,7 @@ animation segment1 = beacon_animation(
)
segment1.priority = 10
-animation segment2 = beacon_animation(
+animation segment2 = beacon(
color=segment_pattern # color source
pos=24 # position
beacon_size=12 # segment length
@@ -129,7 +129,7 @@ animation segment2 = beacon_animation(
)
segment2.priority = 10
-animation segment3 = beacon_animation(
+animation segment3 = beacon(
color=segment_pattern # color source
pos=42 # position
beacon_size=12 # segment length
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/ocean_waves.be b/lib/libesp32/berry_animation/anim_examples/compiled/ocean_waves.be
index cdda8415e..28e343eef 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/ocean_waves.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/ocean_waves.be
@@ -21,7 +21,7 @@ var ocean_colors_ = bytes(
"FF80FFFF" # Light cyan
)
# Base ocean animation with slow color cycling
-var ocean_base_ = animation.rich_palette_animation(engine)
+var ocean_base_ = animation.rich_palette(engine)
ocean_base_.colors = ocean_colors_
ocean_base_.period = 8000
ocean_base_.transition_type = animation.SINE
@@ -32,7 +32,7 @@ wave1_pattern_.colors = ocean_colors_
wave1_pattern_.period = 6000
wave1_pattern_.transition_type = animation.SINE
wave1_pattern_.brightness = 255
-var wave1_ = animation.beacon_animation(engine)
+var wave1_ = animation.beacon(engine)
wave1_.color = wave1_pattern_ # color source
wave1_.pos = 0 # initial position
wave1_.beacon_size = 12 # wave width
@@ -50,7 +50,7 @@ wave2_pattern_.colors = ocean_colors_
wave2_pattern_.period = 4000
wave2_pattern_.transition_type = animation.SINE
wave2_pattern_.brightness = 180
-var wave2_ = animation.beacon_animation(engine)
+var wave2_ = animation.beacon(engine)
wave2_.color = wave2_pattern_ # color source
wave2_.pos = 52 # initial position
wave2_.beacon_size = 8 # smaller wave
@@ -93,11 +93,11 @@ palette ocean_colors = [
]
# Base ocean animation with slow color cycling
-animation ocean_base = rich_palette_animation(colors=ocean_colors, period=8s, transition_type=SINE, brightness=200)
+animation ocean_base = rich_palette(colors=ocean_colors, period=8s, transition_type=SINE, brightness=200)
# Add wave motion with moving pulses
color wave1_pattern = rich_palette_color(colors=ocean_colors, period=6s, transition_type=SINE, brightness=255)
-animation wave1 = beacon_animation(
+animation wave1 = beacon(
color=wave1_pattern # color source
pos=0 # initial position
beacon_size=12 # wave width
@@ -107,7 +107,7 @@ wave1.priority = 10
wave1.pos = sawtooth(min_value=0, max_value=48, duration=5s) # 60-12 = 48
color wave2_pattern = rich_palette_color(colors=ocean_colors, period=4s, transition_type=SINE, brightness=180)
-animation wave2 = beacon_animation(
+animation wave2 = beacon(
color=wave2_pattern # color source
pos=52 # initial position
beacon_size=8 # smaller wave
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/palette_demo.be b/lib/libesp32/berry_animation/anim_examples/compiled/palette_demo.be
index 3e604a47c..c32c6d716 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/palette_demo.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/palette_demo.be
@@ -23,10 +23,10 @@ var ocean_colors_ = bytes(
"FF008000" # Green
)
# Create animations using the palettes
-var fire_anim_ = animation.rich_palette_animation(engine)
+var fire_anim_ = animation.rich_palette(engine)
fire_anim_.colors = fire_colors_
fire_anim_.period = 5000
-var ocean_anim_ = animation.rich_palette_animation(engine)
+var ocean_anim_ = animation.rich_palette(engine)
ocean_anim_.colors = ocean_colors_
ocean_anim_.period = 8000
# Sequence to show both palettes
@@ -62,9 +62,9 @@ palette ocean_colors = [
]
# Create animations using the palettes
-animation fire_anim = rich_palette_animation(colors=fire_colors, period=5s)
+animation fire_anim = rich_palette(colors=fire_colors, period=5s)
-animation ocean_anim = rich_palette_animation(colors=ocean_colors, period=8s)
+animation ocean_anim = rich_palette(colors=ocean_colors, period=8s)
# Sequence to show both palettes
sequence palette_demo {
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/palette_showcase.be b/lib/libesp32/berry_animation/anim_examples/compiled/palette_showcase.be
index 8b6decf21..1fad8b5a2 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/palette_showcase.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/palette_showcase.be
@@ -56,17 +56,17 @@ fire_effect_.color = (def (engine)
provider.period = 3000
return provider
end)(engine)
-var ocean_waves_ = animation.rich_palette_animation(engine)
+var ocean_waves_ = animation.rich_palette(engine)
ocean_waves_.colors = ocean_depths_
ocean_waves_.period = 8000
ocean_waves_.transition_type = animation.SINE
ocean_waves_.brightness = 200
-var aurora_lights_ = animation.rich_palette_animation(engine)
+var aurora_lights_ = animation.rich_palette(engine)
aurora_lights_.colors = aurora_borealis_
aurora_lights_.period = 12000
aurora_lights_.transition_type = animation.SINE
aurora_lights_.brightness = 180
-var sunset_glow_ = animation.rich_palette_animation(engine)
+var sunset_glow_ = animation.rich_palette(engine)
sunset_glow_.colors = sunset_sky_
sunset_glow_.period = 6000
sunset_glow_.transition_type = animation.SINE
@@ -145,11 +145,11 @@ palette sunset_sky = [
# Create animations using each palette
animation fire_effect = solid(color=rich_palette_color(colors=fire_gradient, period=3s))
-animation ocean_waves = rich_palette_animation(colors=ocean_depths, period=8s, transition_type=SINE, brightness=200)
+animation ocean_waves = rich_palette(colors=ocean_depths, period=8s, transition_type=SINE, brightness=200)
-animation aurora_lights = rich_palette_animation(colors=aurora_borealis, period=12s, transition_type=SINE, brightness=180)
+animation aurora_lights = rich_palette(colors=aurora_borealis, period=12s, transition_type=SINE, brightness=180)
-animation sunset_glow = rich_palette_animation(colors=sunset_sky, period=6s, transition_type=SINE, brightness=220)
+animation sunset_glow = rich_palette(colors=sunset_sky, period=6s, transition_type=SINE, brightness=220)
# Sequence to showcase all palettes
sequence palette_showcase {
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/plasma_wave.be b/lib/libesp32/berry_animation/anim_examples/compiled/plasma_wave.be
index 525c51de7..02ce9062e 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/plasma_wave.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/plasma_wave.be
@@ -22,7 +22,7 @@ var plasma_colors_ = bytes(
"FF0080FF" # Blue
)
# Base plasma animation with medium speed
-var plasma_base_ = animation.rich_palette_animation(engine)
+var plasma_base_ = animation.rich_palette(engine)
plasma_base_.colors = plasma_colors_
plasma_base_.period = 6000
plasma_base_.transition_type = animation.SINE
@@ -33,7 +33,7 @@ wave1_pattern_.colors = plasma_colors_
wave1_pattern_.period = 4000
wave1_pattern_.transition_type = animation.SINE
wave1_pattern_.brightness = 255
-var plasma_wave1_ = animation.beacon_animation(engine)
+var plasma_wave1_ = animation.beacon(engine)
plasma_wave1_.color = wave1_pattern_ # color source
plasma_wave1_.pos = 0 # initial position
plasma_wave1_.beacon_size = 20 # wide wave
@@ -51,7 +51,7 @@ wave2_pattern_.colors = plasma_colors_
wave2_pattern_.period = 5000
wave2_pattern_.transition_type = animation.SINE
wave2_pattern_.brightness = 180
-var plasma_wave2_ = animation.beacon_animation(engine)
+var plasma_wave2_ = animation.beacon(engine)
plasma_wave2_.color = wave2_pattern_ # color source
plasma_wave2_.pos = 45 # initial position
plasma_wave2_.beacon_size = 15 # medium wave
@@ -69,7 +69,7 @@ wave3_pattern_.colors = plasma_colors_
wave3_pattern_.period = 3000
wave3_pattern_.transition_type = animation.SINE
wave3_pattern_.brightness = 220
-var plasma_wave3_ = animation.beacon_animation(engine)
+var plasma_wave3_ = animation.beacon(engine)
plasma_wave3_.color = wave3_pattern_ # color source
plasma_wave3_.pos = 20 # initial position
plasma_wave3_.beacon_size = 12 # smaller wave
@@ -115,11 +115,11 @@ palette plasma_colors = [
]
# Base plasma animation with medium speed
-animation plasma_base = rich_palette_animation(colors=plasma_colors, period=6s, transition_type=SINE, brightness=200)
+animation plasma_base = rich_palette(colors=plasma_colors, period=6s, transition_type=SINE, brightness=200)
# Add multiple wave layers for complexity
color wave1_pattern = rich_palette_color(colors=plasma_colors, period=4s, transition_type=SINE, brightness=255)
-animation plasma_wave1 = beacon_animation(
+animation plasma_wave1 = beacon(
color=wave1_pattern # color source
pos=0 # initial position
beacon_size=20 # wide wave
@@ -129,7 +129,7 @@ plasma_wave1.priority = 10
plasma_wave1.pos = smooth(min_value=0, max_value=40, duration=8s)
color wave2_pattern = rich_palette_color(colors=plasma_colors, period=5s, transition_type=SINE, brightness=180)
-animation plasma_wave2 = beacon_animation(
+animation plasma_wave2 = beacon(
color=wave2_pattern # color source
pos=45 # initial position
beacon_size=15 # medium wave
@@ -139,7 +139,7 @@ plasma_wave2.priority = 8
plasma_wave2.pos = smooth(min_value=45, max_value=15, duration=10s) # Opposite direction
color wave3_pattern = rich_palette_color(colors=plasma_colors, period=3s, transition_type=SINE, brightness=220)
-animation plasma_wave3 = beacon_animation(
+animation plasma_wave3 = beacon(
color=wave3_pattern # color source
pos=20 # initial position
beacon_size=12 # smaller wave
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/police_lights.be b/lib/libesp32/berry_animation/anim_examples/compiled/police_lights.be
index 8b69eaa45..af84cea68 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/police_lights.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/police_lights.be
@@ -15,7 +15,7 @@ var engine = animation.init_strip()
var half_length_ = 30
# Left side red flashing
-var left_red_ = animation.beacon_animation(engine)
+var left_red_ = animation.beacon(engine)
left_red_.color = 0xFFFF0000 # Bright red
left_red_.pos = 15 # center of left half
left_red_.beacon_size = 15 # half the strip
@@ -30,7 +30,7 @@ left_red_.opacity = (def (engine)
return provider
end)(engine) # 50% duty cycle
# Right side blue flashing (opposite phase)
-var right_blue_ = animation.beacon_animation(engine)
+var right_blue_ = animation.beacon(engine)
right_blue_.color = 0xFF0000FF # Bright blue
right_blue_.pos = 45 # center of right half
right_blue_.beacon_size = 15 # half the strip
@@ -73,7 +73,7 @@ engine.run()
set half_length = 30
# Left side red flashing
-animation left_red = beacon_animation(
+animation left_red = beacon(
color=0xFF0000 # Bright red
pos=15 # center of left half
beacon_size=15 # half the strip
@@ -83,7 +83,7 @@ left_red.priority = 10
left_red.opacity = square(min_value=0, max_value=255, duration=400ms, duty_cycle=50) # 50% duty cycle
# Right side blue flashing (opposite phase)
-animation right_blue = beacon_animation(
+animation right_blue = beacon(
color=0x0000FF # Bright blue
pos=45 # center of right half
beacon_size=15 # half the strip
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/property_assignment_demo.be b/lib/libesp32/berry_animation/anim_examples/compiled/property_assignment_demo.be
index acb8e9de0..92bacaba4 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/property_assignment_demo.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/property_assignment_demo.be
@@ -17,17 +17,17 @@ var red_custom_ = 0xFFFF0000
var blue_custom_ = 0xFF0000FF
var green_custom_ = 0xFF00FF00
# Create animations
-var left_pulse_ = animation.beacon_animation(engine)
+var left_pulse_ = animation.beacon(engine)
left_pulse_.color = red_custom_
left_pulse_.pos = 15
left_pulse_.beacon_size = 15
left_pulse_.slew_size = 3
-var center_pulse_ = animation.beacon_animation(engine)
+var center_pulse_ = animation.beacon(engine)
center_pulse_.color = blue_custom_
center_pulse_.pos = 30
center_pulse_.beacon_size = 15
center_pulse_.slew_size = 3
-var right_pulse_ = animation.beacon_animation(engine)
+var right_pulse_ = animation.beacon(engine)
right_pulse_.color = green_custom_
right_pulse_.pos = 45
right_pulse_.beacon_size = 15
@@ -71,9 +71,9 @@ color blue_custom = 0x0000FF
color green_custom = 0x00FF00
# Create animations
-animation left_pulse = beacon_animation(color=red_custom, pos=15, beacon_size=15, slew_size=3)
-animation center_pulse = beacon_animation(color=blue_custom, pos=30, beacon_size=15, slew_size=3)
-animation right_pulse = beacon_animation(color=green_custom, pos=45, beacon_size=15, slew_size=3)
+animation left_pulse = beacon(color=red_custom, pos=15, beacon_size=15, slew_size=3)
+animation center_pulse = beacon(color=blue_custom, pos=30, beacon_size=15, slew_size=3)
+animation right_pulse = beacon(color=green_custom, pos=45, beacon_size=15, slew_size=3)
# Set different opacities
left_pulse.opacity = 255 # Full slew_size
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/scanner_larson.be b/lib/libesp32/berry_animation/anim_examples/compiled/scanner_larson.be
index 5ae224df6..f37e89dff 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/scanner_larson.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/scanner_larson.be
@@ -17,7 +17,7 @@ var scanner_bg_ = 0xFF110000
var background_ = animation.solid(engine)
background_.color = scanner_bg_
# Main scanner pulse that bounces
-var scanner_ = animation.beacon_animation(engine)
+var scanner_ = animation.beacon(engine)
scanner_.color = 0xFFFF0000 # Bright red
scanner_.pos = 2 # initial position
scanner_.beacon_size = 3 # pulse width
@@ -32,7 +32,7 @@ scanner_.pos = (def (engine)
return provider
end)(engine)
# Add trailing glow effect
-var scanner_trail_ = animation.beacon_animation(engine)
+var scanner_trail_ = animation.beacon(engine)
scanner_trail_.color = 0xFF660000 # Dim red trail
scanner_trail_.pos = 2 # initial position
scanner_trail_.beacon_size = 6 # wider trail
@@ -65,7 +65,7 @@ color scanner_bg = 0x110000
animation background = solid(color=scanner_bg)
# Main scanner pulse that bounces
-animation scanner = beacon_animation(
+animation scanner = beacon(
color=0xFF0000 # Bright red
pos=2 # initial position
beacon_size=3 # pulse width
@@ -77,7 +77,7 @@ scanner.priority = 10
scanner.pos = triangle(min_value=2, max_value=57, duration=2s)
# Add trailing glow effect
-animation scanner_trail = beacon_animation(
+animation scanner_trail = beacon(
color=0x660000 # Dim red trail
pos=2 # initial position
beacon_size=6 # wider trail
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/sequence_assignments_demo.be b/lib/libesp32/berry_animation/anim_examples/compiled/sequence_assignments_demo.be
index 0a902bd1e..da21282ec 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/sequence_assignments_demo.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/sequence_assignments_demo.be
@@ -35,13 +35,13 @@ var eye_color_ = animation.color_cycle(engine)
eye_color_.colors = eye_palette_
eye_color_.period = 0
# Create animations
-var red_eye_ = animation.beacon_animation(engine)
+var red_eye_ = animation.beacon(engine)
red_eye_.color = eye_color_
red_eye_.pos = cosine_val_
red_eye_.beacon_size = 3
red_eye_.slew_size = 2
red_eye_.priority = 10
-var pulse_demo_ = animation.pulsating_animation(engine)
+var pulse_demo_ = animation.breathe(engine)
pulse_demo_.color = 0xFF0000FF
pulse_demo_.period = 2000
pulse_demo_.priority = 5
@@ -129,7 +129,7 @@ palette eye_palette = [red, yellow, green, violet]
color eye_color = color_cycle(colors=eye_palette, period=0)
# Create animations
-animation red_eye = beacon_animation(
+animation red_eye = beacon(
color=eye_color
pos=cosine_val
beacon_size=3
@@ -137,7 +137,7 @@ animation red_eye = beacon_animation(
priority=10
)
-animation pulse_demo = pulsating_animation(
+animation pulse_demo = breathe(
color=blue
period=2s
priority=5
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/simple_palette.be b/lib/libesp32/berry_animation/anim_examples/compiled/simple_palette.be
index 6997b4a79..e88bdf9e9 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/simple_palette.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/simple_palette.be
@@ -15,7 +15,7 @@ var engine = animation.init_strip()
var rainbow_ = bytes("00FF0000" "40FFA500" "80FFFF00" "C0008000" "FF0000FF")
# Create an animation using the palette
-var rainbow_cycle_ = animation.rich_palette_animation(engine)
+var rainbow_cycle_ = animation.rich_palette(engine)
rainbow_cycle_.colors = rainbow_
rainbow_cycle_.period = 3000
# Simple sequence
@@ -41,7 +41,7 @@ palette rainbow = [
]
# Create an animation using the palette
-animation rainbow_cycle = rich_palette_animation(colors=rainbow, period=3s)
+animation rainbow_cycle = rich_palette(colors=rainbow, period=3s)
# Simple sequence
sequence demo {
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/sunrise_sunset.be b/lib/libesp32/berry_animation/anim_examples/compiled/sunrise_sunset.be
index 0c6fbb5f7..3bad94695 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/sunrise_sunset.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/sunrise_sunset.be
@@ -25,11 +25,11 @@ var daylight_colors_ = bytes(
"FF220011" # Night - dark red
)
# Main daylight cycle - very slow transition
-var daylight_cycle_ = animation.rich_palette_animation(engine)
+var daylight_cycle_ = animation.rich_palette(engine)
daylight_cycle_.colors = daylight_colors_
daylight_cycle_.period = 60000
# Add sun position effect - bright spot that moves
-var sun_position_ = animation.beacon_animation(engine)
+var sun_position_ = animation.beacon(engine)
sun_position_.color = 0xFFFFFFAA # Bright yellow sun
sun_position_.pos = 5 # initial position
sun_position_.beacon_size = 8 # sun size
@@ -50,7 +50,7 @@ sun_position_.opacity = (def (engine)
return provider
end)(engine) # Fade in and out
# Add atmospheric glow around sun
-var sun_glow_ = animation.beacon_animation(engine)
+var sun_glow_ = animation.beacon(engine)
sun_glow_.color = 0xFFFFCC88 # Warm glow
sun_glow_.pos = 5 # initial position
sun_glow_.beacon_size = 16 # larger glow
@@ -111,10 +111,10 @@ palette daylight_colors = [
]
# Main daylight cycle - very slow transition
-animation daylight_cycle = rich_palette_animation(colors=daylight_colors, period=60s)
+animation daylight_cycle = rich_palette(colors=daylight_colors, period=60s)
# Add sun position effect - bright spot that moves
-animation sun_position = beacon_animation(
+animation sun_position = beacon(
color=0xFFFFAA # Bright yellow sun
pos=5 # initial position
beacon_size=8 # sun size
@@ -125,7 +125,7 @@ sun_position.pos = smooth(min_value=5, max_value=55, duration=30s) # Sun arc ac
sun_position.opacity = smooth(min_value=0, max_value=255, duration=30s) # Fade in and out
# Add atmospheric glow around sun
-animation sun_glow = beacon_animation(
+animation sun_glow = beacon(
color=0xFFCC88 # Warm glow
pos=5 # initial position
beacon_size=16 # larger glow
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/template_cylon_generic.be b/lib/libesp32/berry_animation/anim_examples/compiled/template_cylon_generic.be
index 3dd9a05cf..aa3438510 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/template_cylon_generic.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/template_cylon_generic.be
@@ -21,7 +21,7 @@ class cylon_effect_animation : animation.engine_proxy
var engine = self # using 'self' as a proxy to engine object (instead of 'self.engine')
var strip_len_ = animation.strip_length(engine)
- var eye_animation_ = animation.beacon_animation(engine)
+ var eye_animation_ = animation.beacon(engine)
eye_animation_.color = animation.create_closure_value(engine, def (engine) return self.eye_color end)
eye_animation_.back_color = animation.create_closure_value(engine, def (engine) return self.back_color end)
eye_animation_.pos = (def (engine)
@@ -51,7 +51,7 @@ template animation cylon_effect {
set strip_len = strip_length()
- animation eye_animation = beacon_animation(
+ animation eye_animation = beacon(
color = eye_color
back_color = back_color
pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = period)
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/test_complex_template.be b/lib/libesp32/berry_animation/anim_examples/compiled/test_complex_template.be
index c996b8a4b..14c1fd1c6 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/test_complex_template.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/test_complex_template.be
@@ -24,7 +24,7 @@ class rainbow_pulse_animation : animation.engine_proxy
cycle_color_.colors = animation.create_closure_value(engine, def (engine) return self.pal1 end)
cycle_color_.period = animation.create_closure_value(engine, def (engine) return self.period end)
# Create pulsing animation
- var pulse_ = animation.pulsating_animation(engine)
+ var pulse_ = animation.breathe(engine)
pulse_.color = cycle_color_
pulse_.period = animation.create_closure_value(engine, def (engine) return self.period end)
# Create background
@@ -71,7 +71,7 @@ template animation rainbow_pulse {
color cycle_color = color_cycle(colors=pal1, period=period)
# Create pulsing animation
- animation pulse = pulsating_animation(
+ animation pulse = breathe(
color=cycle_color
period=period
)
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/test_shutter_rainbow_bidir.be b/lib/libesp32/berry_animation/anim_examples/compiled/test_shutter_rainbow_bidir.be
index 9fbb8b74d..61745de02 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/test_shutter_rainbow_bidir.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/test_shutter_rainbow_bidir.be
@@ -36,7 +36,7 @@ class shutter_bidir_animation : animation.engine_proxy
col2_.period = 0
col2_.next = 1
# shutter moving from left to right
- var shutter_lr_animation_ = animation.beacon_animation(engine)
+ var shutter_lr_animation_ = animation.beacon(engine)
shutter_lr_animation_.color = col2_
shutter_lr_animation_.back_color = col1_
shutter_lr_animation_.pos = 0
@@ -44,7 +44,7 @@ class shutter_bidir_animation : animation.engine_proxy
shutter_lr_animation_.slew_size = 0
shutter_lr_animation_.priority = 5
# shutter moving from right to left
- var shutter_rl_animation_ = animation.beacon_animation(engine)
+ var shutter_rl_animation_ = animation.beacon(engine)
shutter_rl_animation_.color = col1_
shutter_rl_animation_.back_color = col2_
shutter_rl_animation_.pos = 0
@@ -106,7 +106,7 @@ template animation shutter_bidir {
col2.next = 1
# shutter moving from left to right
- animation shutter_lr_animation = beacon_animation(
+ animation shutter_lr_animation = beacon(
color = col2
back_color = col1
pos = 0
@@ -116,7 +116,7 @@ template animation shutter_bidir {
)
# shutter moving from right to left
- animation shutter_rl_animation = beacon_animation(
+ animation shutter_rl_animation = beacon(
color = col1
back_color = col2
pos = 0
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/test_shutter_rainbow_central.be b/lib/libesp32/berry_animation/anim_examples/compiled/test_shutter_rainbow_central.be
index 415cafa54..60049e29a 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/test_shutter_rainbow_central.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/test_shutter_rainbow_central.be
@@ -36,7 +36,7 @@ class shutter_central_animation : animation.engine_proxy
col2_.period = 0
col2_.next = 1
# shutter moving from left to right
- var shutter_central_animation_ = animation.beacon_animation(engine)
+ var shutter_central_animation_ = animation.beacon(engine)
shutter_central_animation_.color = col2_
shutter_central_animation_.back_color = col1_
shutter_central_animation_.pos = animation.create_closure_value(engine, def (engine) return animation.resolve(strip_len_) - animation.resolve(shutter_size_) / 2 end)
@@ -88,7 +88,7 @@ template animation shutter_central {
col2.next = 1
# shutter moving from left to right
- animation shutter_central_animation = beacon_animation(
+ animation shutter_central_animation = beacon(
color = col2
back_color = col1
pos = strip_len - shutter_size / 2
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/test_template_animation.be b/lib/libesp32/berry_animation/anim_examples/compiled/test_template_animation.be
index 9d3f5c7b9..a850c0308 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/test_template_animation.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/test_template_animation.be
@@ -36,7 +36,7 @@ class shutter_central_animation : animation.engine_proxy
col2_.period = 0
col2_.next = 1
# shutter moving in to out
- var shutter_inout_animation_ = animation.beacon_animation(engine)
+ var shutter_inout_animation_ = animation.beacon(engine)
shutter_inout_animation_.color = col2_
shutter_inout_animation_.back_color = col1_
shutter_inout_animation_.pos = animation.create_closure_value(engine, def (engine) return animation.resolve(strip_len2_) - (animation.resolve(shutter_size_) + 1) / 2 end)
@@ -44,7 +44,7 @@ class shutter_central_animation : animation.engine_proxy
shutter_inout_animation_.slew_size = 0
shutter_inout_animation_.priority = 5
# shutter moving out to in
- var shutter_outin_animation_ = animation.beacon_animation(engine)
+ var shutter_outin_animation_ = animation.beacon(engine)
shutter_outin_animation_.color = col1_
shutter_outin_animation_.back_color = col2_
shutter_outin_animation_.pos = animation.create_closure_value(engine, def (engine) return animation.resolve(strip_len2_) - (animation.resolve(strip_len_) - animation.resolve(shutter_size_) + 1) / 2 end)
@@ -96,7 +96,7 @@ template animation shutter_central {
col2.next = 1
# shutter moving in to out
- animation shutter_inout_animation = beacon_animation(
+ animation shutter_inout_animation = beacon(
color = col2
back_color = col1
pos = strip_len2 - (shutter_size + 1) / 2
@@ -106,7 +106,7 @@ template animation shutter_central {
)
# shutter moving out to in
- animation shutter_outin_animation = beacon_animation(
+ animation shutter_outin_animation = beacon(
color = col1
back_color = col2
pos = strip_len2 - (strip_len - shutter_size + 1) / 2
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/test_template_simple.be b/lib/libesp32/berry_animation/anim_examples/compiled/test_template_simple.be
index 9f296363e..ddc0a1bc3 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/test_template_simple.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/test_template_simple.be
@@ -20,7 +20,7 @@ class pulse_effect_animation : animation.engine_proxy
def setup_template()
var engine = self # using 'self' as a proxy to engine object (instead of 'self.engine')
- var pulse_ = animation.pulsating_animation(engine)
+ var pulse_ = animation.breathe(engine)
pulse_.color = animation.create_closure_value(engine, def (engine) return self.base_color end)
pulse_.period = animation.create_closure_value(engine, def (engine) return self.period end)
pulse_.opacity = animation.create_closure_value(engine, def (engine) return self.brightness end)
@@ -49,7 +49,7 @@ template animation pulse_effect {
param period type time
param brightness type percentage
- animation pulse = pulsating_animation(
+ animation pulse = breathe(
color=base_color
period=period
)
diff --git a/lib/libesp32/berry_animation/anim_examples/compiled/test_template_simple_reusable.be b/lib/libesp32/berry_animation/anim_examples/compiled/test_template_simple_reusable.be
index 873a09ba6..006aa31e7 100644
--- a/lib/libesp32/berry_animation/anim_examples/compiled/test_template_simple_reusable.be
+++ b/lib/libesp32/berry_animation/anim_examples/compiled/test_template_simple_reusable.be
@@ -20,7 +20,7 @@ class pulse_effect_animation : animation.engine_proxy
def setup_template()
var engine = self # using 'self' as a proxy to engine object (instead of 'self.engine')
- var pulse_ = animation.pulsating_animation(engine)
+ var pulse_ = animation.breathe(engine)
pulse_.color = animation.create_closure_value(engine, def (engine) return self.base_color end)
pulse_.period = animation.create_closure_value(engine, def (engine) return self.period end)
pulse_.opacity = animation.create_closure_value(engine, def (engine) return self.brightness end)
@@ -49,7 +49,7 @@ template animation pulse_effect {
param period type time
param brightness type percentage
- animation pulse = pulsating_animation(
+ animation pulse = breathe(
color=base_color
period=period
)
diff --git a/lib/libesp32/berry_animation/anim_examples/computed_values_demo.anim b/lib/libesp32/berry_animation/anim_examples/computed_values_demo.anim
index c1daedea9..1eb1f83fc 100644
--- a/lib/libesp32/berry_animation/anim_examples/computed_values_demo.anim
+++ b/lib/libesp32/berry_animation/anim_examples/computed_values_demo.anim
@@ -5,7 +5,7 @@
set strip_len = strip_length()
# Create animation with computed values
-animation stream1 = comet_animation(
+animation stream1 = comet(
color=red
tail_length=abs(strip_len / 4) # computed value
speed=1.5
@@ -14,7 +14,7 @@ animation stream1 = comet_animation(
# More complex computed values
set base_speed = 2.0
-animation stream2 = comet_animation(
+animation stream2 = comet(
color=blue
tail_length=strip_len / 8 + (2 * strip_len) -10 # computed with addition
speed=base_speed * 1.5 # computed with multiplication
diff --git a/lib/libesp32/berry_animation/anim_examples/cylon_generic.anim b/lib/libesp32/berry_animation/anim_examples/cylon_generic.anim
index 83875c765..f072912ec 100644
--- a/lib/libesp32/berry_animation/anim_examples/cylon_generic.anim
+++ b/lib/libesp32/berry_animation/anim_examples/cylon_generic.anim
@@ -8,7 +8,7 @@ template animation cylon {
set strip_len = strip_length()
- animation eye_animation = beacon_animation(
+ animation eye_animation = beacon(
color = eye_color
back_color = back_color
pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = period)
diff --git a/lib/libesp32/berry_animation/anim_examples/cylon_rainbow.anim b/lib/libesp32/berry_animation/anim_examples/cylon_rainbow.anim
index b7204ab32..0b97b17e6 100644
--- a/lib/libesp32/berry_animation/anim_examples/cylon_rainbow.anim
+++ b/lib/libesp32/berry_animation/anim_examples/cylon_rainbow.anim
@@ -12,7 +12,7 @@ color eye_color = color_cycle(colors=eye_palette, period=0)
set cosine_val = cosine_osc(min_value = 0, max_value = strip_len - 2, duration = eye_duration)
set triangle_val = triangle(min_value = 0, max_value = strip_len - 2, duration = eye_duration)
-animation red_eye = beacon_animation(
+animation red_eye = beacon(
color = eye_color # palette that will advance when we do `eye_color.next = 1`
pos = cosine_val # oscillator for position
beacon_size = 3 # small 3 pixels eye
diff --git a/lib/libesp32/berry_animation/anim_examples/cylon_red_eye.anim b/lib/libesp32/berry_animation/anim_examples/cylon_red_eye.anim
index 2c6c24063..0f2e86cf1 100644
--- a/lib/libesp32/berry_animation/anim_examples/cylon_red_eye.anim
+++ b/lib/libesp32/berry_animation/anim_examples/cylon_red_eye.anim
@@ -4,7 +4,7 @@
set strip_len = strip_length()
# Base aurora animation with slow flowing colors
-animation red_eye = beacon_animation(
+animation red_eye = beacon(
color = red
pos = cosine_osc(min_value = 0, max_value = strip_len - 2, duration = 5s)
beacon_size = 3 # small 3 pixels eye
diff --git a/lib/libesp32/berry_animation/anim_examples/demo_pattern_fire_opacity.anim b/lib/libesp32/berry_animation/anim_examples/demo_pattern_fire_opacity.anim
index cad001bb6..345fa8c12 100644
--- a/lib/libesp32/berry_animation/anim_examples/demo_pattern_fire_opacity.anim
+++ b/lib/libesp32/berry_animation/anim_examples/demo_pattern_fire_opacity.anim
@@ -15,7 +15,7 @@ animation background = solid(color=0x000088, priority=20)
run background
set eye_pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = 6s)
-animation eye_mask = beacon_animation(
+animation eye_mask = beacon(
color = white
back_color = transparent
pos = eye_pos
@@ -24,7 +24,7 @@ animation eye_mask = beacon_animation(
priority = 5
)
-animation fire_pattern = palette_gradient_animation(
+animation fire_pattern = palette_gradient(
color_source = fire_color
spatial_period = strip_len / 4
opacity = eye_mask
diff --git a/lib/libesp32/berry_animation/anim_examples/demo_shutter_rainbow2.anim b/lib/libesp32/berry_animation/anim_examples/demo_shutter_rainbow2.anim
index fde841f26..ce650798c 100644
--- a/lib/libesp32/berry_animation/anim_examples/demo_shutter_rainbow2.anim
+++ b/lib/libesp32/berry_animation/anim_examples/demo_shutter_rainbow2.anim
@@ -11,7 +11,7 @@ set duration = 3s
color col2 = color_cycle(colors=PALETTE_RAINBOW, period=0)
col2.next = 1
- animation shutter_animation = beacon_animation(
+ animation shutter_animation = beacon(
color = col1
back_color = col2
pos = 0
diff --git a/lib/libesp32/berry_animation/anim_examples/demo_shutter_rainbow_bidir.anim b/lib/libesp32/berry_animation/anim_examples/demo_shutter_rainbow_bidir.anim
index 6b4ae9fe9..eb2651674 100644
--- a/lib/libesp32/berry_animation/anim_examples/demo_shutter_rainbow_bidir.anim
+++ b/lib/libesp32/berry_animation/anim_examples/demo_shutter_rainbow_bidir.anim
@@ -14,7 +14,7 @@ template animation shutter_bidir {
col2.next = 1
# shutter moving from left to right
- animation shutter_lr_animation = beacon_animation(
+ animation shutter_lr_animation = beacon(
color = col2
back_color = col1
pos = 0
@@ -24,7 +24,7 @@ template animation shutter_bidir {
)
# shutter moving from right to left
- animation shutter_rl_animation = beacon_animation(
+ animation shutter_rl_animation = beacon(
color = col1
back_color = col2
pos = 0
diff --git a/lib/libesp32/berry_animation/anim_examples/demo_shutter_rainbow_central.anim b/lib/libesp32/berry_animation/anim_examples/demo_shutter_rainbow_central.anim
index b77e93618..af20a5327 100644
--- a/lib/libesp32/berry_animation/anim_examples/demo_shutter_rainbow_central.anim
+++ b/lib/libesp32/berry_animation/anim_examples/demo_shutter_rainbow_central.anim
@@ -15,7 +15,7 @@ template animation shutter_central {
col2.next = 1
# shutter moving in to out
- animation shutter_inout_animation = beacon_animation(
+ animation shutter_inout_animation = beacon(
color = col2
back_color = col1
pos = strip_len2 - (shutter_size + 1) / 2
@@ -25,7 +25,7 @@ template animation shutter_central {
)
# shutter moving out to in
- animation shutter_outin_animation = beacon_animation(
+ animation shutter_outin_animation = beacon(
color = col1
back_color = col2
pos = strip_len2 - (strip_len - shutter_size + 1) / 2
diff --git a/lib/libesp32/berry_animation/anim_examples/demo_shutter_rainbow_leftright.anim b/lib/libesp32/berry_animation/anim_examples/demo_shutter_rainbow_leftright.anim
index eba39e945..06e285e2e 100644
--- a/lib/libesp32/berry_animation/anim_examples/demo_shutter_rainbow_leftright.anim
+++ b/lib/libesp32/berry_animation/anim_examples/demo_shutter_rainbow_leftright.anim
@@ -14,7 +14,7 @@ template animation shutter_lr {
col2.next = 1
# shutter moving from left to right
- animation shutter_lr_animation = beacon_animation(
+ animation shutter_lr_animation = beacon(
color = col2
back_color = col1
pos = 0
diff --git a/lib/libesp32/berry_animation/anim_examples/demo_value_meter.anim b/lib/libesp32/berry_animation/anim_examples/demo_value_meter.anim
index 200b8333d..289c3b28d 100644
--- a/lib/libesp32/berry_animation/anim_examples/demo_value_meter.anim
+++ b/lib/libesp32/berry_animation/anim_examples/demo_value_meter.anim
@@ -24,6 +24,6 @@ palette rainbow_with_white = [
]
# define a gradient across the whole strip
-animation back_pattern = palette_meter_animation(level = rand_meter())
+animation back_pattern = palette_meter(level = rand_meter())
run back_pattern
diff --git a/lib/libesp32/berry_animation/anim_examples/disco_strobe.anim b/lib/libesp32/berry_animation/anim_examples/disco_strobe.anim
index 3f0a6b1e9..9ef905515 100644
--- a/lib/libesp32/berry_animation/anim_examples/disco_strobe.anim
+++ b/lib/libesp32/berry_animation/anim_examples/disco_strobe.anim
@@ -37,7 +37,7 @@ disco_sparkles.priority = 15
# Add moving pulse for extra effect
color pulse_pattern = rich_palette_color(colors=disco_colors, period=800ms, transition_type=LINEAR, brightness=255)
-animation disco_pulse = beacon_animation(
+animation disco_pulse = beacon(
color=pulse_pattern # color source
pos=4 # initial position
beacon_size=8 # pulse width
diff --git a/lib/libesp32/berry_animation/anim_examples/heartbeat_pulse.anim b/lib/libesp32/berry_animation/anim_examples/heartbeat_pulse.anim
index fc2763b02..eb31a24bb 100644
--- a/lib/libesp32/berry_animation/anim_examples/heartbeat_pulse.anim
+++ b/lib/libesp32/berry_animation/anim_examples/heartbeat_pulse.anim
@@ -25,7 +25,7 @@ heart_glow.opacity = smooth(min_value=30, max_value=100, duration=1s) # Gentle
heart_glow.priority = 5
# Add center pulse for emphasis
-animation center_pulse = beacon_animation(
+animation center_pulse = beacon(
color=0xFFFFFF # White center
pos=30 # center of strip
beacon_size=4 # small center
diff --git a/lib/libesp32/berry_animation/anim_examples/lava_lamp.anim b/lib/libesp32/berry_animation/anim_examples/lava_lamp.anim
index 2326fd031..d7885de58 100644
--- a/lib/libesp32/berry_animation/anim_examples/lava_lamp.anim
+++ b/lib/libesp32/berry_animation/anim_examples/lava_lamp.anim
@@ -13,11 +13,11 @@ palette lava_colors = [
]
# Base lava animation - very slow color changes
-animation lava_base = rich_palette_animation(colors=lava_colors, period=15s, transition_type=SINE, brightness=180)
+animation lava_base = rich_palette(colors=lava_colors, period=15s, transition_type=SINE, brightness=180)
# Add slow-moving lava blobs
color blob1_pattern = rich_palette_color(colors=lava_colors, period=12s, transition_type=SINE, brightness=255)
-animation lava_blob1 = beacon_animation(
+animation lava_blob1 = beacon(
color=blob1_pattern # color source
pos=9 # initial position
beacon_size=18 # large blob
@@ -27,7 +27,7 @@ lava_blob1.priority = 10
lava_blob1.pos = smooth(min_value=9, max_value=51, duration=20s) # Very slow movement
color blob2_pattern = rich_palette_color(colors=lava_colors, period=10s, transition_type=SINE, brightness=220)
-animation lava_blob2 = beacon_animation(
+animation lava_blob2 = beacon(
color=blob2_pattern # color source
pos=46 # initial position
beacon_size=14 # medium blob
@@ -37,7 +37,7 @@ lava_blob2.priority = 8
lava_blob2.pos = smooth(min_value=46, max_value=14, duration=25s) # Opposite direction, slower
color blob3_pattern = rich_palette_color(colors=lava_colors, period=8s, transition_type=SINE, brightness=200)
-animation lava_blob3 = beacon_animation(
+animation lava_blob3 = beacon(
color=blob3_pattern # color source
pos=25 # initial position
beacon_size=10 # smaller blob
diff --git a/lib/libesp32/berry_animation/anim_examples/lightning_storm.anim b/lib/libesp32/berry_animation/anim_examples/lightning_storm.anim
index a51607b86..2062de968 100644
--- a/lib/libesp32/berry_animation/anim_examples/lightning_storm.anim
+++ b/lib/libesp32/berry_animation/anim_examples/lightning_storm.anim
@@ -10,7 +10,7 @@ palette storm_colors = [
(255, 0x220033) # Slightly lighter purple
]
-animation storm_bg = rich_palette_animation(colors=storm_colors, period=12s, transition_type=SINE, brightness=100)
+animation storm_bg = rich_palette(colors=storm_colors, period=12s, transition_type=SINE, brightness=100)
# Random lightning flashes - full strip
animation lightning_main = solid(color=0xFFFFFF) # Bright white
@@ -18,7 +18,7 @@ lightning_main.opacity = square(min_value=0, max_value=255, duration=80ms, duty_
lightning_main.priority = 20
# Secondary lightning - partial strip
-animation lightning_partial = beacon_animation(
+animation lightning_partial = beacon(
color=0xFFFFAA # Slightly yellow white
pos=30 # center position
beacon_size=20 # covers part of strip
diff --git a/lib/libesp32/berry_animation/anim_examples/matrix_rain.anim b/lib/libesp32/berry_animation/anim_examples/matrix_rain.anim
index 8731d4ffb..097f3317e 100644
--- a/lib/libesp32/berry_animation/anim_examples/matrix_rain.anim
+++ b/lib/libesp32/berry_animation/anim_examples/matrix_rain.anim
@@ -18,7 +18,7 @@ palette matrix_greens = [
# Create multiple cascading streams
color stream1_pattern = rich_palette_color(colors=matrix_greens, period=2s, transition_type=LINEAR, brightness=255)
-animation stream1 = comet_animation(
+animation stream1 = comet(
color=stream1_pattern # color source
tail_length=15 # long tail
speed=1.5s # speed
@@ -27,7 +27,7 @@ animation stream1 = comet_animation(
color stream2_pattern = rich_palette_color(colors=matrix_greens, period=1.8s, transition_type=LINEAR, brightness=200)
-animation stream2 = comet_animation(
+animation stream2 = comet(
color=stream2_pattern # color source
tail_length=12 # medium tail
speed=2.2s # different speed
@@ -35,7 +35,7 @@ animation stream2 = comet_animation(
)
color stream3_pattern = rich_palette_color(colors=matrix_greens, period=2.5s, transition_type=LINEAR, brightness=180)
-animation stream3 = comet_animation(
+animation stream3 = comet(
color=stream3_pattern # color source
tail_length=10 # shorter tail
speed=1.8s # another speed
diff --git a/lib/libesp32/berry_animation/anim_examples/meteor_shower.anim b/lib/libesp32/berry_animation/anim_examples/meteor_shower.anim
index f68e58d3c..ba89e3908 100644
--- a/lib/libesp32/berry_animation/anim_examples/meteor_shower.anim
+++ b/lib/libesp32/berry_animation/anim_examples/meteor_shower.anim
@@ -8,28 +8,28 @@ color space_bg = 0x000011
animation background = solid(color=space_bg)
# Multiple meteors with different speeds and colors
-animation meteor1 = comet_animation(
+animation meteor1 = comet(
color=0xFFFFFF # Bright white
tail_length=12 # long trail
speed=1.5s # fast speed
)
meteor1.priority = 15
-animation meteor2 = comet_animation(
+animation meteor2 = comet(
color=0xFFAA00 # Orange
tail_length=10 # medium trail
speed=2s # medium speed
)
meteor2.priority = 12
-animation meteor3 = comet_animation(
+animation meteor3 = comet(
color=0xAAAAFF # Blue-white
tail_length=8 # shorter trail
speed=1.8s # fast speed
)
meteor3.priority = 10
-animation meteor4 = comet_animation(
+animation meteor4 = comet(
color=0xFFAAAA # Pink-white
tail_length=14 # long trail
speed=2.5s # slower speed
diff --git a/lib/libesp32/berry_animation/anim_examples/neon_glow.anim b/lib/libesp32/berry_animation/anim_examples/neon_glow.anim
index 6780706e1..7694988e1 100644
--- a/lib/libesp32/berry_animation/anim_examples/neon_glow.anim
+++ b/lib/libesp32/berry_animation/anim_examples/neon_glow.anim
@@ -12,7 +12,7 @@ palette neon_colors = [
]
# Main neon glow with color cycling
-animation neon_main = rich_palette_animation(colors=neon_colors, period=4s, transition_type=LINEAR, brightness=255)
+animation neon_main = rich_palette(colors=neon_colors, period=4s, transition_type=LINEAR, brightness=255)
# Add electrical flickering
neon_main.opacity = smooth(min_value=220, max_value=255, duration=200ms)
@@ -24,7 +24,7 @@ neon_surge.priority = 20
# Add neon tube segments with gaps
color segment_pattern = rich_palette_color(colors=neon_colors, period=4s, transition_type=LINEAR, brightness=255)
-animation segment1 = beacon_animation(
+animation segment1 = beacon(
color=segment_pattern # color source
pos=6 # position
beacon_size=12 # segment length
@@ -32,7 +32,7 @@ animation segment1 = beacon_animation(
)
segment1.priority = 10
-animation segment2 = beacon_animation(
+animation segment2 = beacon(
color=segment_pattern # color source
pos=24 # position
beacon_size=12 # segment length
@@ -40,7 +40,7 @@ animation segment2 = beacon_animation(
)
segment2.priority = 10
-animation segment3 = beacon_animation(
+animation segment3 = beacon(
color=segment_pattern # color source
pos=42 # position
beacon_size=12 # segment length
diff --git a/lib/libesp32/berry_animation/anim_examples/ocean_waves.anim b/lib/libesp32/berry_animation/anim_examples/ocean_waves.anim
index 9cf94ec1e..db3da76cf 100644
--- a/lib/libesp32/berry_animation/anim_examples/ocean_waves.anim
+++ b/lib/libesp32/berry_animation/anim_examples/ocean_waves.anim
@@ -13,11 +13,11 @@ palette ocean_colors = [
]
# Base ocean animation with slow color cycling
-animation ocean_base = rich_palette_animation(colors=ocean_colors, period=8s, transition_type=SINE, brightness=200)
+animation ocean_base = rich_palette(colors=ocean_colors, period=8s, transition_type=SINE, brightness=200)
# Add wave motion with moving pulses
color wave1_pattern = rich_palette_color(colors=ocean_colors, period=6s, transition_type=SINE, brightness=255)
-animation wave1 = beacon_animation(
+animation wave1 = beacon(
color=wave1_pattern # color source
pos=0 # initial position
beacon_size=12 # wave width
@@ -27,7 +27,7 @@ wave1.priority = 10
wave1.pos = sawtooth(min_value=0, max_value=48, duration=5s) # 60-12 = 48
color wave2_pattern = rich_palette_color(colors=ocean_colors, period=4s, transition_type=SINE, brightness=180)
-animation wave2 = beacon_animation(
+animation wave2 = beacon(
color=wave2_pattern # color source
pos=52 # initial position
beacon_size=8 # smaller wave
diff --git a/lib/libesp32/berry_animation/anim_examples/palette_demo.anim b/lib/libesp32/berry_animation/anim_examples/palette_demo.anim
index e0f29af69..87e1b54d2 100644
--- a/lib/libesp32/berry_animation/anim_examples/palette_demo.anim
+++ b/lib/libesp32/berry_animation/anim_examples/palette_demo.anim
@@ -16,9 +16,9 @@ palette ocean_colors = [
]
# Create animations using the palettes
-animation fire_anim = rich_palette_animation(colors=fire_colors, period=5s)
+animation fire_anim = rich_palette(colors=fire_colors, period=5s)
-animation ocean_anim = rich_palette_animation(colors=ocean_colors, period=8s)
+animation ocean_anim = rich_palette(colors=ocean_colors, period=8s)
# Sequence to show both palettes
sequence palette_demo {
diff --git a/lib/libesp32/berry_animation/anim_examples/palette_showcase.anim b/lib/libesp32/berry_animation/anim_examples/palette_showcase.anim
index 1f8e6d4b5..765be80b9 100644
--- a/lib/libesp32/berry_animation/anim_examples/palette_showcase.anim
+++ b/lib/libesp32/berry_animation/anim_examples/palette_showcase.anim
@@ -46,11 +46,11 @@ palette sunset_sky = [
# Create animations using each palette
animation fire_effect = solid(color=rich_palette_color(colors=fire_gradient, period=3s))
-animation ocean_waves = rich_palette_animation(colors=ocean_depths, period=8s, transition_type=SINE, brightness=200)
+animation ocean_waves = rich_palette(colors=ocean_depths, period=8s, transition_type=SINE, brightness=200)
-animation aurora_lights = rich_palette_animation(colors=aurora_borealis, period=12s, transition_type=SINE, brightness=180)
+animation aurora_lights = rich_palette(colors=aurora_borealis, period=12s, transition_type=SINE, brightness=180)
-animation sunset_glow = rich_palette_animation(colors=sunset_sky, period=6s, transition_type=SINE, brightness=220)
+animation sunset_glow = rich_palette(colors=sunset_sky, period=6s, transition_type=SINE, brightness=220)
# Sequence to showcase all palettes
sequence palette_showcase {
diff --git a/lib/libesp32/berry_animation/anim_examples/plasma_wave.anim b/lib/libesp32/berry_animation/anim_examples/plasma_wave.anim
index 6880457a6..944e1cd44 100644
--- a/lib/libesp32/berry_animation/anim_examples/plasma_wave.anim
+++ b/lib/libesp32/berry_animation/anim_examples/plasma_wave.anim
@@ -14,11 +14,11 @@ palette plasma_colors = [
]
# Base plasma animation with medium speed
-animation plasma_base = rich_palette_animation(colors=plasma_colors, period=6s, transition_type=SINE, brightness=200)
+animation plasma_base = rich_palette(colors=plasma_colors, period=6s, transition_type=SINE, brightness=200)
# Add multiple wave layers for complexity
color wave1_pattern = rich_palette_color(colors=plasma_colors, period=4s, transition_type=SINE, brightness=255)
-animation plasma_wave1 = beacon_animation(
+animation plasma_wave1 = beacon(
color=wave1_pattern # color source
pos=0 # initial position
beacon_size=20 # wide wave
@@ -28,7 +28,7 @@ plasma_wave1.priority = 10
plasma_wave1.pos = smooth(min_value=0, max_value=40, duration=8s)
color wave2_pattern = rich_palette_color(colors=plasma_colors, period=5s, transition_type=SINE, brightness=180)
-animation plasma_wave2 = beacon_animation(
+animation plasma_wave2 = beacon(
color=wave2_pattern # color source
pos=45 # initial position
beacon_size=15 # medium wave
@@ -38,7 +38,7 @@ plasma_wave2.priority = 8
plasma_wave2.pos = smooth(min_value=45, max_value=15, duration=10s) # Opposite direction
color wave3_pattern = rich_palette_color(colors=plasma_colors, period=3s, transition_type=SINE, brightness=220)
-animation plasma_wave3 = beacon_animation(
+animation plasma_wave3 = beacon(
color=wave3_pattern # color source
pos=20 # initial position
beacon_size=12 # smaller wave
diff --git a/lib/libesp32/berry_animation/anim_examples/police_lights.anim b/lib/libesp32/berry_animation/anim_examples/police_lights.anim
index 420a6d1dc..481bc3680 100644
--- a/lib/libesp32/berry_animation/anim_examples/police_lights.anim
+++ b/lib/libesp32/berry_animation/anim_examples/police_lights.anim
@@ -7,7 +7,7 @@
set half_length = 30
# Left side red flashing
-animation left_red = beacon_animation(
+animation left_red = beacon(
color=0xFF0000 # Bright red
pos=15 # center of left half
beacon_size=15 # half the strip
@@ -17,7 +17,7 @@ left_red.priority = 10
left_red.opacity = square(min_value=0, max_value=255, duration=400ms, duty_cycle=50) # 50% duty cycle
# Right side blue flashing (opposite phase)
-animation right_blue = beacon_animation(
+animation right_blue = beacon(
color=0x0000FF # Bright blue
pos=45 # center of right half
beacon_size=15 # half the strip
diff --git a/lib/libesp32/berry_animation/anim_examples/property_assignment_demo.anim b/lib/libesp32/berry_animation/anim_examples/property_assignment_demo.anim
index b7e312292..ab7cbadfd 100644
--- a/lib/libesp32/berry_animation/anim_examples/property_assignment_demo.anim
+++ b/lib/libesp32/berry_animation/anim_examples/property_assignment_demo.anim
@@ -9,9 +9,9 @@ color blue_custom = 0x0000FF
color green_custom = 0x00FF00
# Create animations
-animation left_pulse = beacon_animation(color=red_custom, pos=15, beacon_size=15, slew_size=3)
-animation center_pulse = beacon_animation(color=blue_custom, pos=30, beacon_size=15, slew_size=3)
-animation right_pulse = beacon_animation(color=green_custom, pos=45, beacon_size=15, slew_size=3)
+animation left_pulse = beacon(color=red_custom, pos=15, beacon_size=15, slew_size=3)
+animation center_pulse = beacon(color=blue_custom, pos=30, beacon_size=15, slew_size=3)
+animation right_pulse = beacon(color=green_custom, pos=45, beacon_size=15, slew_size=3)
# Set different opacities
left_pulse.opacity = 255 # Full slew_size
diff --git a/lib/libesp32/berry_animation/anim_examples/scanner_larson.anim b/lib/libesp32/berry_animation/anim_examples/scanner_larson.anim
index c024bf6b3..13144faec 100644
--- a/lib/libesp32/berry_animation/anim_examples/scanner_larson.anim
+++ b/lib/libesp32/berry_animation/anim_examples/scanner_larson.anim
@@ -8,7 +8,7 @@ color scanner_bg = 0x110000
animation background = solid(color=scanner_bg)
# Main scanner pulse that bounces
-animation scanner = beacon_animation(
+animation scanner = beacon(
color=0xFF0000 # Bright red
pos=2 # initial position
beacon_size=3 # pulse width
@@ -20,7 +20,7 @@ scanner.priority = 10
scanner.pos = triangle(min_value=2, max_value=57, duration=2s)
# Add trailing glow effect
-animation scanner_trail = beacon_animation(
+animation scanner_trail = beacon(
color=0x660000 # Dim red trail
pos=2 # initial position
beacon_size=6 # wider trail
diff --git a/lib/libesp32/berry_animation/anim_examples/sequence_assignments_demo.anim b/lib/libesp32/berry_animation/anim_examples/sequence_assignments_demo.anim
index dc0c0f5d6..5502483f6 100644
--- a/lib/libesp32/berry_animation/anim_examples/sequence_assignments_demo.anim
+++ b/lib/libesp32/berry_animation/anim_examples/sequence_assignments_demo.anim
@@ -13,7 +13,7 @@ palette eye_palette = [red, yellow, green, violet]
color eye_color = color_cycle(colors=eye_palette, period=0)
# Create animations
-animation red_eye = beacon_animation(
+animation red_eye = beacon(
color=eye_color
pos=cosine_val
beacon_size=3
@@ -21,7 +21,7 @@ animation red_eye = beacon_animation(
priority=10
)
-animation pulse_demo = pulsating_animation(
+animation pulse_demo = breathe(
color=blue
period=2s
priority=5
diff --git a/lib/libesp32/berry_animation/anim_examples/simple_palette.anim b/lib/libesp32/berry_animation/anim_examples/simple_palette.anim
index a299dfb39..77d508465 100644
--- a/lib/libesp32/berry_animation/anim_examples/simple_palette.anim
+++ b/lib/libesp32/berry_animation/anim_examples/simple_palette.anim
@@ -13,7 +13,7 @@ palette rainbow = [
]
# Create an animation using the palette
-animation rainbow_cycle = rich_palette_animation(colors=rainbow, period=3s)
+animation rainbow_cycle = rich_palette(colors=rainbow, period=3s)
# Simple sequence
sequence demo {
diff --git a/lib/libesp32/berry_animation/anim_examples/sunrise_sunset.anim b/lib/libesp32/berry_animation/anim_examples/sunrise_sunset.anim
index db3e4b59a..7ded1473a 100644
--- a/lib/libesp32/berry_animation/anim_examples/sunrise_sunset.anim
+++ b/lib/libesp32/berry_animation/anim_examples/sunrise_sunset.anim
@@ -17,10 +17,10 @@ palette daylight_colors = [
]
# Main daylight cycle - very slow transition
-animation daylight_cycle = rich_palette_animation(colors=daylight_colors, period=60s)
+animation daylight_cycle = rich_palette(colors=daylight_colors, period=60s)
# Add sun position effect - bright spot that moves
-animation sun_position = beacon_animation(
+animation sun_position = beacon(
color=0xFFFFAA # Bright yellow sun
pos=5 # initial position
beacon_size=8 # sun size
@@ -31,7 +31,7 @@ sun_position.pos = smooth(min_value=5, max_value=55, duration=30s) # Sun arc ac
sun_position.opacity = smooth(min_value=0, max_value=255, duration=30s) # Fade in and out
# Add atmospheric glow around sun
-animation sun_glow = beacon_animation(
+animation sun_glow = beacon(
color=0xFFCC88 # Warm glow
pos=5 # initial position
beacon_size=16 # larger glow
diff --git a/lib/libesp32/berry_animation/anim_examples/template_cylon_generic.anim b/lib/libesp32/berry_animation/anim_examples/template_cylon_generic.anim
index 1356a7aa2..e5c9fd3db 100644
--- a/lib/libesp32/berry_animation/anim_examples/template_cylon_generic.anim
+++ b/lib/libesp32/berry_animation/anim_examples/template_cylon_generic.anim
@@ -8,7 +8,7 @@ template animation cylon_effect {
set strip_len = strip_length()
- animation eye_animation = beacon_animation(
+ animation eye_animation = beacon(
color = eye_color
back_color = back_color
pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = period)
diff --git a/lib/libesp32/berry_animation/anim_examples/test_complex_template.anim b/lib/libesp32/berry_animation/anim_examples/test_complex_template.anim
index 5da5d8ad9..f4d7280b8 100644
--- a/lib/libesp32/berry_animation/anim_examples/test_complex_template.anim
+++ b/lib/libesp32/berry_animation/anim_examples/test_complex_template.anim
@@ -10,7 +10,7 @@ template animation rainbow_pulse {
color cycle_color = color_cycle(colors=pal1, period=period)
# Create pulsing animation
- animation pulse = pulsating_animation(
+ animation pulse = breathe(
color=cycle_color
period=period
)
diff --git a/lib/libesp32/berry_animation/anim_examples/test_shutter_rainbow_bidir.anim b/lib/libesp32/berry_animation/anim_examples/test_shutter_rainbow_bidir.anim
index cb369d662..6365ca0a0 100644
--- a/lib/libesp32/berry_animation/anim_examples/test_shutter_rainbow_bidir.anim
+++ b/lib/libesp32/berry_animation/anim_examples/test_shutter_rainbow_bidir.anim
@@ -14,7 +14,7 @@ template animation shutter_bidir {
col2.next = 1
# shutter moving from left to right
- animation shutter_lr_animation = beacon_animation(
+ animation shutter_lr_animation = beacon(
color = col2
back_color = col1
pos = 0
@@ -24,7 +24,7 @@ template animation shutter_bidir {
)
# shutter moving from right to left
- animation shutter_rl_animation = beacon_animation(
+ animation shutter_rl_animation = beacon(
color = col1
back_color = col2
pos = 0
diff --git a/lib/libesp32/berry_animation/anim_examples/test_shutter_rainbow_central.anim b/lib/libesp32/berry_animation/anim_examples/test_shutter_rainbow_central.anim
index b17487698..c9fba43ac 100644
--- a/lib/libesp32/berry_animation/anim_examples/test_shutter_rainbow_central.anim
+++ b/lib/libesp32/berry_animation/anim_examples/test_shutter_rainbow_central.anim
@@ -14,7 +14,7 @@ template animation shutter_central {
col2.next = 1
# shutter moving from left to right
- animation shutter_central_animation = beacon_animation(
+ animation shutter_central_animation = beacon(
color = col2
back_color = col1
pos = strip_len - shutter_size / 2
diff --git a/lib/libesp32/berry_animation/anim_examples/test_template_animation.anim b/lib/libesp32/berry_animation/anim_examples/test_template_animation.anim
index a0b20e828..ce636c41b 100644
--- a/lib/libesp32/berry_animation/anim_examples/test_template_animation.anim
+++ b/lib/libesp32/berry_animation/anim_examples/test_template_animation.anim
@@ -14,7 +14,7 @@ template animation shutter_central {
col2.next = 1
# shutter moving in to out
- animation shutter_inout_animation = beacon_animation(
+ animation shutter_inout_animation = beacon(
color = col2
back_color = col1
pos = strip_len2 - (shutter_size + 1) / 2
@@ -24,7 +24,7 @@ template animation shutter_central {
)
# shutter moving out to in
- animation shutter_outin_animation = beacon_animation(
+ animation shutter_outin_animation = beacon(
color = col1
back_color = col2
pos = strip_len2 - (strip_len - shutter_size + 1) / 2
diff --git a/lib/libesp32/berry_animation/anim_examples/test_template_simple.anim b/lib/libesp32/berry_animation/anim_examples/test_template_simple.anim
index a84bbda26..c47c216bb 100644
--- a/lib/libesp32/berry_animation/anim_examples/test_template_simple.anim
+++ b/lib/libesp32/berry_animation/anim_examples/test_template_simple.anim
@@ -6,7 +6,7 @@ template animation pulse_effect {
param period type time
param brightness type percentage
- animation pulse = pulsating_animation(
+ animation pulse = breathe(
color=base_color
period=period
)
diff --git a/lib/libesp32/berry_animation/anim_examples/test_template_simple_reusable.anim b/lib/libesp32/berry_animation/anim_examples/test_template_simple_reusable.anim
index a84bbda26..c47c216bb 100644
--- a/lib/libesp32/berry_animation/anim_examples/test_template_simple_reusable.anim
+++ b/lib/libesp32/berry_animation/anim_examples/test_template_simple_reusable.anim
@@ -6,7 +6,7 @@ template animation pulse_effect {
param period type time
param brightness type percentage
- animation pulse = pulsating_animation(
+ animation pulse = breathe(
color=base_color
period=period
)
diff --git a/lib/libesp32/berry_animation/anim_tutorials/chap_3_10_color_transition.anim b/lib/libesp32/berry_animation/anim_tutorials/chap_3_10_color_transition.anim
index 99ddffe40..30d6ab462 100644
--- a/lib/libesp32/berry_animation/anim_tutorials/chap_3_10_color_transition.anim
+++ b/lib/libesp32/berry_animation/anim_tutorials/chap_3_10_color_transition.anim
@@ -1,7 +1,7 @@
# @desc Smooth cycling through rainbow colors with custom palette
-animation back = rich_palette_animation()
+animation back = rich_palette()
# Equivalent to
-# animation back = rich_palette_animation(colors=PALETTE_PALETTE_RAINBOW, period=5s,
+# animation back = rich_palette(colors=PALETTE_PALETTE_RAINBOW, period=5s,
# transition_type=SINE, brightness=100%)
run back
\ No newline at end of file
diff --git a/lib/libesp32/berry_animation/anim_tutorials/chap_4_10_color_pattern.anim b/lib/libesp32/berry_animation/anim_tutorials/chap_4_10_color_pattern.anim
index e563292e6..3428fdf0a 100644
--- a/lib/libesp32/berry_animation/anim_tutorials/chap_4_10_color_pattern.anim
+++ b/lib/libesp32/berry_animation/anim_tutorials/chap_4_10_color_pattern.anim
@@ -5,5 +5,5 @@
color rainbow_rich_color = rich_palette_color(colors=PALETTE_RAINBOW_W, period=0)
# Define a gradient across the whole strip
-animation back_pattern = palette_gradient_animation(color_source = rainbow_rich_color)
+animation back_pattern = palette_gradient(color_source = rainbow_rich_color)
run back_pattern
\ No newline at end of file
diff --git a/lib/libesp32/berry_animation/anim_tutorials/chap_4_12_color_pattern_spatial_2.anim b/lib/libesp32/berry_animation/anim_tutorials/chap_4_12_color_pattern_spatial_2.anim
index 0c2627ca1..0796d776c 100644
--- a/lib/libesp32/berry_animation/anim_tutorials/chap_4_12_color_pattern_spatial_2.anim
+++ b/lib/libesp32/berry_animation/anim_tutorials/chap_4_12_color_pattern_spatial_2.anim
@@ -9,6 +9,6 @@ color rainbow_rich_color = rich_palette_color(colors=PALETTE_RAINBOW_W, period=0
set strip_len = strip_length()
# define a gradient across the whole strip
-animation back_pattern = palette_gradient_animation(color_source = rainbow_rich_color,
+animation back_pattern = palette_gradient(color_source = rainbow_rich_color,
spatial_period = strip_len / 2)
run back_pattern
\ No newline at end of file
diff --git a/lib/libesp32/berry_animation/anim_tutorials/chap_4_15_color_pattern_spatial_osc.anim b/lib/libesp32/berry_animation/anim_tutorials/chap_4_15_color_pattern_spatial_osc.anim
index 60b41f874..c0be5e781 100644
--- a/lib/libesp32/berry_animation/anim_tutorials/chap_4_15_color_pattern_spatial_osc.anim
+++ b/lib/libesp32/berry_animation/anim_tutorials/chap_4_15_color_pattern_spatial_osc.anim
@@ -11,5 +11,5 @@ set strip_len = strip_length()
set period = sine_osc(min_value = (strip_len - 1) / 2, max_value = (3 * strip_len) / 2, duration = 5s)
# Define a gradient across the whole strip with variable spatial_period
-animation back = palette_gradient_animation(color_source = rainbow_rich_color, spatial_period = period)
+animation back = palette_gradient(color_source = rainbow_rich_color, spatial_period = period)
run back
\ No newline at end of file
diff --git a/lib/libesp32/berry_animation/anim_tutorials/chap_4_18_color_pattern_spatial_rotate.anim b/lib/libesp32/berry_animation/anim_tutorials/chap_4_18_color_pattern_spatial_rotate.anim
index a0374065e..dde0a53c5 100644
--- a/lib/libesp32/berry_animation/anim_tutorials/chap_4_18_color_pattern_spatial_rotate.anim
+++ b/lib/libesp32/berry_animation/anim_tutorials/chap_4_18_color_pattern_spatial_rotate.anim
@@ -5,5 +5,5 @@
color rainbow_rich_color = rich_palette_color(colors=PALETTE_RAINBOW_W, period=0)
# define a gradient across the whole strip
-animation back = palette_gradient_animation(color_source = rainbow_rich_color, shift_period = 5s)
+animation back = palette_gradient(color_source = rainbow_rich_color, shift_period = 5s)
run back
\ No newline at end of file
diff --git a/lib/libesp32/berry_animation/anim_tutorials/chap_4_30_color_pattern_meter.anim b/lib/libesp32/berry_animation/anim_tutorials/chap_4_30_color_pattern_meter.anim
index 9f901beea..597c9a9f5 100644
--- a/lib/libesp32/berry_animation/anim_tutorials/chap_4_30_color_pattern_meter.anim
+++ b/lib/libesp32/berry_animation/anim_tutorials/chap_4_30_color_pattern_meter.anim
@@ -19,5 +19,5 @@ color rainbow_rich_color = rich_palette_color(colors=vue_meter_palette, period=0
set level = sawtooth(min_value = 0%, max_value=100%, duration = 2s)
# Define a vue-meter based on all elements above
-animation back = palette_meter_animation(color_source = rainbow_rich_color, level = level)
+animation back = palette_meter(color_source = rainbow_rich_color, level = level)
run back
\ No newline at end of file
diff --git a/lib/libesp32/berry_animation/anim_tutorials/chap_4_35_color_pattern_meter_random.anim b/lib/libesp32/berry_animation/anim_tutorials/chap_4_35_color_pattern_meter_random.anim
index 36f93546d..674c24ed6 100644
--- a/lib/libesp32/berry_animation/anim_tutorials/chap_4_35_color_pattern_meter_random.anim
+++ b/lib/libesp32/berry_animation/anim_tutorials/chap_4_35_color_pattern_meter_random.anim
@@ -27,5 +27,5 @@ palette vue_meter_palette = [
color rainbow_rich_color = rich_palette_color(colors=vue_meter_palette, period=0, transition_type=LINEAR)
# Define a vue-meter based on all elements above
-animation back = palette_meter_animation(color_source = rainbow_rich_color, level = rand_meter())
+animation back = palette_meter(color_source = rainbow_rich_color, level = rand_meter())
run back
\ No newline at end of file
diff --git a/lib/libesp32/berry_animation/anim_tutorials/chap_5_10_beacon.anim b/lib/libesp32/berry_animation/anim_tutorials/chap_5_10_beacon.anim
index 8076f6a09..dad531731 100644
--- a/lib/libesp32/berry_animation/anim_tutorials/chap_5_10_beacon.anim
+++ b/lib/libesp32/berry_animation/anim_tutorials/chap_5_10_beacon.anim
@@ -1,6 +1,6 @@
# @desc Static beacon
# Simple beacon starting at pixel 6 with size of 7 pixels, no border
-animation back = beacon_animation(back_color = blue, color = red,
+animation back = beacon(back_color = blue, color = red,
pos = 5, beacon_size = 7)
run back
\ No newline at end of file
diff --git a/lib/libesp32/berry_animation/anim_tutorials/chap_5_15_beacon_slew.anim b/lib/libesp32/berry_animation/anim_tutorials/chap_5_15_beacon_slew.anim
index 0f093cd24..69ece68e3 100644
--- a/lib/libesp32/berry_animation/anim_tutorials/chap_5_15_beacon_slew.anim
+++ b/lib/libesp32/berry_animation/anim_tutorials/chap_5_15_beacon_slew.anim
@@ -1,6 +1,6 @@
# @desc Static beacon with slew
# Simple beacon starting at pixel 6 with size of 7 pixels, no border
-animation back = beacon_animation(back_color = blue, color = red,
+animation back = beacon(back_color = blue, color = red,
pos = 5, beacon_size = 7, slew_size = 3)
run back
\ No newline at end of file
diff --git a/lib/libesp32/berry_animation/anim_tutorials/chap_5_20_beacon_slew_osc.anim b/lib/libesp32/berry_animation/anim_tutorials/chap_5_20_beacon_slew_osc.anim
index 42d23c930..d46382eb5 100644
--- a/lib/libesp32/berry_animation/anim_tutorials/chap_5_20_beacon_slew_osc.anim
+++ b/lib/libesp32/berry_animation/anim_tutorials/chap_5_20_beacon_slew_osc.anim
@@ -4,6 +4,6 @@
set slew = cosine_osc(min_value = 0, max_value = 4, duration = 2s)
# Simple beacon starting at pixel 6 with size of 7 pixels, no border
-animation back = beacon_animation(back_color = blue, color = red,
+animation back = beacon(back_color = blue, color = red,
pos = 5, beacon_size = 7, slew_size = slew)
run back
\ No newline at end of file
diff --git a/lib/libesp32/berry_animation/anim_tutorials/chap_5_30_cylon.anim b/lib/libesp32/berry_animation/anim_tutorials/chap_5_30_cylon.anim
index bf074707f..ca21e96e4 100644
--- a/lib/libesp32/berry_animation/anim_tutorials/chap_5_30_cylon.anim
+++ b/lib/libesp32/berry_animation/anim_tutorials/chap_5_30_cylon.anim
@@ -4,7 +4,7 @@
set strip_len = strip_length()
# In this example, the 'cosine_osc' is created within the call
-animation back = beacon_animation(
+animation back = beacon(
color = red
pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = 5s)
beacon_size = 3 # small 3 pixels eye
diff --git a/lib/libesp32/berry_animation/anim_tutorials/chap_5_40_cylon_rainbow.anim b/lib/libesp32/berry_animation/anim_tutorials/chap_5_40_cylon_rainbow.anim
index f445a8d32..83b8e92fe 100644
--- a/lib/libesp32/berry_animation/anim_tutorials/chap_5_40_cylon_rainbow.anim
+++ b/lib/libesp32/berry_animation/anim_tutorials/chap_5_40_cylon_rainbow.anim
@@ -15,7 +15,7 @@ animation stars = twinkle(
run stars
# We can combine a dynamic 'pos' value with a dynamic 'color'
-animation back = beacon_animation(
+animation back = beacon(
color = rich_palette_color(colors=PALETTE_RAINBOW_W2, period=5s)
pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = 5s)
beacon_size = 3 # small 3 pixels eye
diff --git a/lib/libesp32/berry_animation/anim_tutorials/chap_5_50_cylon_as_opacity.anim b/lib/libesp32/berry_animation/anim_tutorials/chap_5_50_cylon_as_opacity.anim
index 5b2fdb896..c93a39e8c 100644
--- a/lib/libesp32/berry_animation/anim_tutorials/chap_5_50_cylon_as_opacity.anim
+++ b/lib/libesp32/berry_animation/anim_tutorials/chap_5_50_cylon_as_opacity.anim
@@ -11,7 +11,7 @@ palette red_blue_red_palette = [ red, 0x3333FF, red ]
color red_blue_red_color = rich_palette_color(colors=red_blue_red_palette)
# Define a moving beacon to be used as an opacity mask
-animation moving_eye = beacon_animation(
+animation moving_eye = beacon(
color = white # the color is not important, only the opacity counts here
pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = 5s)
beacon_size = 3 # small 3 pixels eye
@@ -19,7 +19,7 @@ animation moving_eye = beacon_animation(
)
# The palette gradient animation is used with an animation as opacity
-animation eye_pattern = palette_gradient_animation(
+animation eye_pattern = palette_gradient(
color_source = red_blue_red_color # the beacon animation used as opacity
# spatial_period = strip_len # implicit
opacity = moving_eye
diff --git a/lib/libesp32/berry_animation/anim_tutorials/chap_6_10_shutter.anim b/lib/libesp32/berry_animation/anim_tutorials/chap_6_10_shutter.anim
index a1f0cef25..51e7d2b1a 100644
--- a/lib/libesp32/berry_animation/anim_tutorials/chap_6_10_shutter.anim
+++ b/lib/libesp32/berry_animation/anim_tutorials/chap_6_10_shutter.anim
@@ -7,8 +7,8 @@ set strip_len = strip_length()
set shutter_size = sawtooth(min_value = 0, max_value = strip_len,
duration = 1.5s)
-# Using beacon_animation to move a shutter from left to right
- animation shutter_lr_animation = beacon_animation(
+# Using beacon to move a shutter from left to right
+ animation shutter_lr_animation = beacon(
color = red
back_color = blue
pos = 0 # Start from position 0 (left)
diff --git a/lib/libesp32/berry_animation/anim_tutorials/chap_6_20_shutter_rotating_colors.anim b/lib/libesp32/berry_animation/anim_tutorials/chap_6_20_shutter_rotating_colors.anim
index d51e87ca9..6edd4274b 100644
--- a/lib/libesp32/berry_animation/anim_tutorials/chap_6_20_shutter_rotating_colors.anim
+++ b/lib/libesp32/berry_animation/anim_tutorials/chap_6_20_shutter_rotating_colors.anim
@@ -16,8 +16,8 @@ color col1 = color_cycle(colors=PALETTE_RAINBOW_W, period=0)
color col2 = color_cycle(colors=PALETTE_RAINBOW_W, period=0)
col2.next = 1 # Writing 1 to 'next' actually advances the color
-# Using beacon_animation to move a shutter from left to right
-animation shutter_lr_animation = beacon_animation(
+# Using beacon to move a shutter from left to right
+animation shutter_lr_animation = beacon(
color = col2 # Use two rotating colors
back_color = col1 # Use two rotating colors
pos = 0 # Start from position 0 (left)
diff --git a/lib/libesp32/berry_animation/anim_tutorials/chap_6_30_shutter_central_rotating_colors.anim b/lib/libesp32/berry_animation/anim_tutorials/chap_6_30_shutter_central_rotating_colors.anim
index 9f23ca636..587142ac3 100644
--- a/lib/libesp32/berry_animation/anim_tutorials/chap_6_30_shutter_central_rotating_colors.anim
+++ b/lib/libesp32/berry_animation/anim_tutorials/chap_6_30_shutter_central_rotating_colors.anim
@@ -17,8 +17,8 @@ color col1 = color_cycle(colors=PALETTE_RAINBOW_W, period=0)
color col2 = color_cycle(colors=PALETTE_RAINBOW_W, period=0)
col2.next = 1 # Writing 1 to 'next' actually advances the color
-# Using beacon_animation to move a shutter from in to out
-animation shutter_inout_animation = beacon_animation(
+# Using beacon to move a shutter from in to out
+animation shutter_inout_animation = beacon(
color = col2 # Use two rotating colors
back_color = col1 # Use two rotating colors
pos = strip_len_2 - (shutter_size + 1) / 2
diff --git a/lib/libesp32/berry_animation/anim_tutorials/chap_6_40_shutter_central_inoutin.anim b/lib/libesp32/berry_animation/anim_tutorials/chap_6_40_shutter_central_inoutin.anim
index 99a487c37..29201d043 100644
--- a/lib/libesp32/berry_animation/anim_tutorials/chap_6_40_shutter_central_inoutin.anim
+++ b/lib/libesp32/berry_animation/anim_tutorials/chap_6_40_shutter_central_inoutin.anim
@@ -17,8 +17,8 @@ color col1 = color_cycle(colors=PALETTE_RAINBOW_W, period=0)
color col2 = color_cycle(colors=PALETTE_RAINBOW_W, period=0)
col2.next = 1 # Writing 1 to 'next' actually advances the color
-# Using beacon_animation to move a shutter from in to out
-animation shutter_inout_animation = beacon_animation(
+# Using beacon to move a shutter from in to out
+animation shutter_inout_animation = beacon(
color = col2 # Use two rotating colors
back_color = col1 # Use two rotating colors
pos = strip_len_2 - (shutter_size + 1) / 2
@@ -26,7 +26,7 @@ animation shutter_inout_animation = beacon_animation(
)
# Similar but out to in
-animation shutter_outin_animation = beacon_animation(
+animation shutter_outin_animation = beacon(
color = col1
back_color = col2
pos = strip_len_2 - (strip_len - shutter_size + 1) / 2
diff --git a/lib/libesp32/berry_animation/anim_tutorials/chap_7_10_crenel.anim b/lib/libesp32/berry_animation/anim_tutorials/chap_7_10_crenel.anim
index fde8e3741..5eb78caec 100644
--- a/lib/libesp32/berry_animation/anim_tutorials/chap_7_10_crenel.anim
+++ b/lib/libesp32/berry_animation/anim_tutorials/chap_7_10_crenel.anim
@@ -1,7 +1,7 @@
# @desc Crenel static
# Define a simple crenel 2+2 red/blue
-animation back = crenel_animation(
+animation back = crenel(
color = red
back_color = blue
pulse_size = 2
diff --git a/lib/libesp32/berry_animation/anim_tutorials/chap_7_20_crenel_nb_pulses.anim b/lib/libesp32/berry_animation/anim_tutorials/chap_7_20_crenel_nb_pulses.anim
index 7fbffced7..5aaae9a61 100644
--- a/lib/libesp32/berry_animation/anim_tutorials/chap_7_20_crenel_nb_pulses.anim
+++ b/lib/libesp32/berry_animation/anim_tutorials/chap_7_20_crenel_nb_pulses.anim
@@ -6,7 +6,7 @@ set max_pulses = (strip_len + period - 1) / period
set nb_pulse = triangle(min_value = 0, max_value = max_pulses, duration = 2s)
-animation back = crenel_animation(
+animation back = crenel(
color = red
back_color = blue
pulse_size = 2
diff --git a/lib/libesp32/berry_animation/anim_tutorials/chap_7_30_crenel_size.anim b/lib/libesp32/berry_animation/anim_tutorials/chap_7_30_crenel_size.anim
index f0d141c3a..118ded913 100644
--- a/lib/libesp32/berry_animation/anim_tutorials/chap_7_30_crenel_size.anim
+++ b/lib/libesp32/berry_animation/anim_tutorials/chap_7_30_crenel_size.anim
@@ -4,7 +4,7 @@
set pulse_size = triangle(min_value = 0, max_value = 4, duration = 2s)
# Define a simple crenel 2+2 red/blue
-animation back = crenel_animation(
+animation back = crenel(
color = red
back_color = blue
pulse_size = pulse_size
diff --git a/lib/libesp32/berry_animation/anim_tutorials/chap_7_40_crenel_colors.anim b/lib/libesp32/berry_animation/anim_tutorials/chap_7_40_crenel_colors.anim
index 9a17afa34..bb6374c23 100644
--- a/lib/libesp32/berry_animation/anim_tutorials/chap_7_40_crenel_colors.anim
+++ b/lib/libesp32/berry_animation/anim_tutorials/chap_7_40_crenel_colors.anim
@@ -4,7 +4,7 @@
color rainbow_color = rich_palette_color(colors=PALETTE_RAINBOW_W2, period=5s)
# Define a simple crenel 2+2
-animation back = crenel_animation(
+animation back = crenel(
color = rainbow_color
back_color = blue
pulse_size = 2
diff --git a/lib/libesp32/berry_animation/anim_tutorials/chap_7_50_crenel_opacity.anim b/lib/libesp32/berry_animation/anim_tutorials/chap_7_50_crenel_opacity.anim
index 78c7bf4fd..af9f34fa6 100644
--- a/lib/libesp32/berry_animation/anim_tutorials/chap_7_50_crenel_opacity.anim
+++ b/lib/libesp32/berry_animation/anim_tutorials/chap_7_50_crenel_opacity.anim
@@ -5,7 +5,7 @@ animation back = solid(color = blue, priority = 20)
run back
# Define a simple crenel 2+2 opaque/transparent
-animation mask = crenel_animation(
+animation mask = crenel(
color = white # plain color since it's used as opacity mask
back_color = transparent # background is transparent
pulse_size = 2
@@ -15,7 +15,7 @@ animation mask = crenel_animation(
# Define a smooth palette using PALETTE_RAINBOW_W (7 colors + white)
color rainbow_rich_color = rich_palette_color(colors=PALETTE_RAINBOW_W, period=0)
# Define a gradient across the whole strip and use crenel as opacity mask
-animation pattern = palette_gradient_animation(
+animation pattern = palette_gradient(
color_source = rainbow_rich_color # use the rainow pattern
shift_period = 2s # shifting over 2s
opacity = mask # mask it with crenel pattern
diff --git a/lib/libesp32/berry_animation/anim_tutorials/chap_8_10_template_cylon_simple.anim b/lib/libesp32/berry_animation/anim_tutorials/chap_8_10_template_cylon_simple.anim
index e7c6e68e8..ba6499b5d 100644
--- a/lib/libesp32/berry_animation/anim_tutorials/chap_8_10_template_cylon_simple.anim
+++ b/lib/libesp32/berry_animation/anim_tutorials/chap_8_10_template_cylon_simple.anim
@@ -9,7 +9,7 @@ template animation cylon_eye {
set strip_len = strip_length()
- animation eye_animation = beacon_animation(
+ animation eye_animation = beacon(
color = eye_color
back_color = back_color
pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = period)
diff --git a/lib/libesp32/berry_animation/anim_tutorials/chap_8_30_template_shutter_bidir_flags.anim b/lib/libesp32/berry_animation/anim_tutorials/chap_8_30_template_shutter_bidir_flags.anim
index b4055be91..dff3a4dd3 100644
--- a/lib/libesp32/berry_animation/anim_tutorials/chap_8_30_template_shutter_bidir_flags.anim
+++ b/lib/libesp32/berry_animation/anim_tutorials/chap_8_30_template_shutter_bidir_flags.anim
@@ -21,7 +21,7 @@ template animation shutter_bidir {
col2.next = 1 # move 'col2' to the next color so it's shifte by one compared to 'col1'
# Shutter moving in in-out
- animation shutter_inout_animation = beacon_animation(
+ animation shutter_inout_animation = beacon(
color = col2 # Use two rotating colors
back_color = col1 # Use two rotating colors
pos = strip_len_2 - (shutter_size + 1) / 2
@@ -29,7 +29,7 @@ template animation shutter_bidir {
)
# shutter moving in out-in
- animation shutter_outin_animation = beacon_animation(
+ animation shutter_outin_animation = beacon(
color = col1
back_color = col2
pos = strip_len_2 - (strip_len - shutter_size + 1) / 2
diff --git a/lib/libesp32/berry_animation/animation_docs/Animation_Class_Hierarchy.md b/lib/libesp32/berry_animation/animation_docs/Animation_Class_Hierarchy.md
index 7e82b4541..3a308ee31 100644
--- a/lib/libesp32/berry_animation/animation_docs/Animation_Class_Hierarchy.md
+++ b/lib/libesp32/berry_animation/animation_docs/Animation_Class_Hierarchy.md
@@ -18,20 +18,18 @@ parameterized_object (base class with parameter management and playable interfac
├── Animation (unified base class for all visual elements)
│ ├── engine_proxy (combines rendering and orchestration)
│ │ └── (user-defined template animations)
-│ ├── SolidAnimation (solid color fill)
-│ ├── BeaconAnimation (pulse at specific position)
-│ ├── CrenelPositionAnimation (crenel/square wave pattern)
-│ ├── BreatheAnimation (breathing effect)
-│ ├── BeaconAnimation (pulse at specific position)
-│ │ └── GradientAnimation (linear/radial color gradients)
-│ ├── PaletteGradientAnimation (gradient patterns with palette colors)
-│ │ ├── PaletteMeterAnimation (meter/bar patterns)
-│ │ └── GradientMeterAnimation (VU meter with gradient colors and peak hold)
-│ ├── CometAnimation (moving comet with tail)
-│ ├── FireAnimation (realistic fire effect)
+│ ├── solid (solid color fill)
+│ ├── crenel (crenel/square wave pattern)
+│ ├── breathe (breathing effect)
+│ ├── beacon (pulse at specific position)
+│ │ └── gradient (linear/radial color gradients)
+│ ├── palette_gradient (gradient patterns with palette colors)
+│ │ └── palette_meter (VU meter with gradient colors and peak hold)
+│ ├── comet (moving comet with tail)
+│ ├── fire (realistic fire effect)
│ ├── twinkle (twinkling stars effect)
-│ ├── WaveAnimation (wave motion effects)
-│ └── RichPaletteAnimation (smooth palette transitions)
+│ ├── wave (wave motion effects)
+│ └── rich_palette (smooth palette transitions)
├── sequence_manager (orchestrates animation sequences)
└── value_provider (dynamic value generation)
├── static_value (wraps static values)
@@ -41,7 +39,7 @@ parameterized_object (base class with parameter management and playable interfac
├── closure_value (computed values, internal use only)
└── color_provider (dynamic color generation)
├── static_color (solid color)
- ├── ColorCycleColorProvider (cycles through palette)
+ ├── color_cycle (cycles through palette)
├── rich_palette_color (smooth palette transitions)
└── breathe_color (breathing color effect)
```
@@ -323,7 +321,7 @@ These methods are automatically available in DSL computed expressions:
```berry
# Example: Dynamic brightness based on strip position
set strip_len = strip_length()
-animation pulse = pulsating_animation(
+animation pulse = breathe(
color=red
brightness=strip_len / 4 + 50 # Uses built-in arithmetic
)
@@ -379,7 +377,7 @@ color static_accent = solid(color=accent)
**Note**: The `solid()` function is the recommended shorthand for `static_color()`.
-### ColorCycleColorProvider
+### color_cycle
Cycles through a palette of colors with brutal switching. Inherits from `color_provider`.
@@ -524,7 +522,7 @@ color breathing_rainbow = breathe_color(
All animation classes extend the base `Animation` class and inherit its parameters.
-### BreatheAnimation
+### breathe
Creates a smooth breathing effect with natural breathing curves. Inherits from `Animation`.
@@ -537,9 +535,9 @@ Creates a smooth breathing effect with natural breathing curves. Inherits from `
| `curve_factor` | int | 2 | 1-5 | Breathing curve shape (higher = sharper) |
| *(inherits all Animation parameters)* | | | | |
-**Factory**: `animation.breathe_animation(engine)`
+**Factory**: `animation.breathe(engine)`
-### CometAnimation
+### comet
Creates a comet effect with a bright head and fading tail. Inherits from `Animation`.
@@ -553,12 +551,12 @@ Creates a comet effect with a bright head and fading tail. Inherits from `Animat
| `fade_factor` | int | 179 | 0-255 | How quickly the tail fades |
| *(inherits all Animation parameters)* | | | | |
-**Factory**: `animation.comet_animation(engine)`
+**Factory**: `animation.comet(engine)`
-### FireAnimation
+### fire
Creates a realistic fire effect with flickering flames. Inherits from `Animation`.
@@ -572,11 +570,11 @@ Creates a realistic fire effect with flickering flames. Inherits from `Animation
| `sparking_rate` | int | 120 | 0-255 | Rate of new spark generation |
| *(inherits all Animation parameters)* | | | | |
-**Factory**: `animation.fire_animation(engine)`
+**Factory**: `animation.fire(engine)`
-### GradientAnimation
+### gradient
-Creates smooth two-color gradients. Subclass of `BeaconAnimation` that uses beacon slew regions to create gradient effects.
+Creates smooth two-color gradients. Subclass of `beacon` that uses beacon slew regions to create gradient effects.
| Parameter | Type | Default | Constraints | Description |
|-----------|------|---------|-------------|-------------|
@@ -584,7 +582,7 @@ Creates smooth two-color gradients. Subclass of `BeaconAnimation` that uses beac
| `color2` | int | 0xFF0000FF | - | Second color (default blue) |
| `direction` | int | 0 | enum: [0, 1] | 0=forward (color1→color2), 1=reverse (color2→color1) |
| `gradient_type` | int | 0 | enum: [0, 1] | 0=linear, 1=radial |
-| *(inherits all BeaconAnimation parameters)* | | | | |
+| *(inherits all beacon parameters)* | | | | |
**Gradient Types:**
- **Linear (0)**: Creates a 2-color gradient from `color1` to `color2` (or reversed if `direction=1`). Implemented as the left slew of a large beacon positioned at the right edge.
@@ -594,17 +592,17 @@ Creates smooth two-color gradients. Subclass of `BeaconAnimation` that uses beac
- Linear gradient uses a beacon with `beacon_size=1000` (off-screen) and `slew_size=strip_length`
- Radial gradient uses a centered beacon with `beacon_size=1` and `slew_size=strip_length/2`
-**Factory**: `animation.gradient_animation(engine)`
+**Factory**: `animation.gradient(engine)`
-### GradientMeterAnimation
+### palette_meter
-VU meter style animation that displays a gradient-colored bar from the start of the strip up to a configurable level. Includes optional peak hold indicator. Inherits from `PaletteGradientAnimation`.
+VU meter style animation that displays a gradient-colored bar from the start of the strip up to a configurable level. Includes optional peak hold indicator. Inherits from `palette_gradient`.
| Parameter | Type | Default | Constraints | Description |
|-----------|------|---------|-------------|-------------|
| `level` | int | 255 | 0-255 | Current meter level (0=empty, 255=full) |
| `peak_hold` | int | 1000 | min: 0 | Peak hold time in ms (0=disabled) |
-| *(inherits all PaletteGradientAnimation parameters)* | | | | |
+| *(inherits all palette_gradient parameters)* | | | | |
#### Visual Representation
@@ -651,9 +649,9 @@ Creates a pulsing effect oscillating between min and max brightness. Inherits fr
| `period` | int | 1000 | min: 100 | Pulse period in milliseconds |
| *(inherits all Animation parameters)* | | | | |
-**Factory**: `animation.pulsating_animation(engine)`
+**Factory**: `animation.breathe(engine)`
-### BeaconAnimation
+### beacon
Creates a pulse effect at a specific position with optional fade regions. Inherits from `Animation`.
@@ -726,7 +724,7 @@ The effective left position is calculated as:
```berry
# Sharp pulse at left edge (right_edge=0, default)
-animation left_pulse = beacon_animation(
+animation left_pulse = beacon(
color=red,
pos=0,
beacon_size=3,
@@ -736,7 +734,7 @@ animation left_pulse = beacon_animation(
# Shows 3 red pixels at positions 0, 1, 2
# Pulse from right edge
-animation right_pulse = beacon_animation(
+animation right_pulse = beacon(
color=blue,
pos=0,
beacon_size=3,
@@ -747,7 +745,7 @@ animation right_pulse = beacon_animation(
# (positions strip_length-3, strip_length-2, strip_length-1)
# Soft pulse with fade regions
-animation soft_pulse = beacon_animation(
+animation soft_pulse = beacon(
color=green,
pos=5,
beacon_size=2,
@@ -757,7 +755,7 @@ animation soft_pulse = beacon_animation(
# Spotlight effect
color dark_blue = 0xFF000040
-animation spotlight = beacon_animation(
+animation spotlight = beacon(
color=white,
back_color=dark_blue,
pos=15,
@@ -773,7 +771,7 @@ run spotlight
**Spotlight Effects:**
```berry
# Moving spotlight with soft edges
-animation moving_spotlight = beacon_animation(
+animation moving_spotlight = beacon(
color=white,
back_color=0xFF000040,
beacon_size=1,
@@ -785,7 +783,7 @@ moving_spotlight.pos = triangle(min_value=0, max_value=29, period=3s)
**Position Markers:**
```berry
# Sharp position marker
-animation position_marker = beacon_animation(
+animation position_marker = beacon(
color=red,
pos=15,
beacon_size=1,
@@ -796,7 +794,7 @@ animation position_marker = beacon_animation(
**Breathing Spots:**
```berry
# Breathing effect at specific position
-animation breathing_spot = beacon_animation(
+animation breathing_spot = beacon(
color=blue,
pos=10,
beacon_size=3,
@@ -811,14 +809,14 @@ breathing_spot.opacity = smooth(min_value=50, max_value=255, period=2s)
set strip_len = strip_length()
set sweep = triangle(min_value=0, max_value=strip_len/2, period=2s)
-animation left_beacon = beacon_animation(
+animation left_beacon = beacon(
color=red,
beacon_size=2,
right_edge=0
)
left_beacon.pos = sweep
-animation right_beacon = beacon_animation(
+animation right_beacon = beacon(
color=blue,
beacon_size=2,
right_edge=1
@@ -829,9 +827,9 @@ run left_beacon
run right_beacon
```
-**Factory**: `animation.beacon_animation(engine)`
+**Factory**: `animation.beacon(engine)`
-### CrenelPositionAnimation
+### crenel
Creates a crenel (square wave) pattern with repeating rectangular pulses. Inherits from `Animation`.
@@ -888,7 +886,7 @@ The full period of the pattern is `pulse_size + low_size` pixels.
**Status Indicators:**
```berry
# Slow blinking pattern for status indication
-animation status_indicator = crenel_animation(
+animation status_indicator = crenel(
color=green,
pulse_size=1,
low_size=9
@@ -898,7 +896,7 @@ animation status_indicator = crenel_animation(
**Rhythmic Effects:**
```berry
# Fast rhythmic pattern
-animation rhythm_pattern = crenel_animation(
+animation rhythm_pattern = crenel(
color=red,
pulse_size=2,
low_size=2
@@ -909,7 +907,7 @@ animation rhythm_pattern = crenel_animation(
```berry
# Decorative border pattern
color gold = 0xFFFFD700
-animation border_pattern = crenel_animation(
+animation border_pattern = crenel(
color=gold,
pulse_size=3,
low_size=1,
@@ -920,7 +918,7 @@ animation border_pattern = crenel_animation(
**Progress Indicators:**
```berry
# Progress bar with limited pulses
-animation progress_bar = crenel_animation(
+animation progress_bar = crenel(
color=0xFF0080FF,
pulse_size=2,
low_size=1,
@@ -936,9 +934,9 @@ animation progress_bar = crenel_animation(
- **Framework Integration**: Seamless integration with animation engine
- **Testing**: Comprehensive test suite covering edge cases and performance
-**Factory**: `animation.crenel_animation(engine)`
+**Factory**: `animation.crenel(engine)`
-### RichPaletteAnimation
+### rich_palette
Creates smooth color transitions using rich palette data with direct parameter access. Inherits from `Animation`.
@@ -955,7 +953,7 @@ Creates smooth color transitions using rich palette data with direct parameter a
- Parameters are automatically forwarded to internal `rich_palette_color`
- Access to specialized methods via `anim.color_provider.method_name()`
-**Factory**: `animation.rich_palette_animation(engine)`
+**Factory**: `animation.rich_palette(engine)`
### twinkle
@@ -973,7 +971,7 @@ Creates a twinkling stars effect with random lights appearing and fading. Inheri
**Factories**: `animation.twinkle(engine)`
-### WaveAnimation
+### wave
Creates mathematical waveforms that can move along the LED strip. Perfect for rhythmic patterns, breathing effects, or mathematical visualizations. Inherits from `Animation`.
@@ -1023,7 +1021,7 @@ Creates mathematical waveforms that can move along the LED strip. Perfect for rh
```berry
# Rainbow sine wave
-animation rainbow_wave = wave_animation(
+animation rainbow_wave = wave(
wave_type=0,
frequency=40,
wave_speed=80,
@@ -1031,7 +1029,7 @@ animation rainbow_wave = wave_animation(
)
# Green breathing effect
-animation breathing = wave_animation(
+animation breathing = wave(
color=green,
wave_type=0,
amplitude=150,
@@ -1040,7 +1038,7 @@ animation breathing = wave_animation(
)
# Fast square wave strobe
-animation strobe = wave_animation(
+animation strobe = wave(
color=white,
wave_type=2,
frequency=80,
@@ -1058,7 +1056,7 @@ animation strobe = wave_animation(
-### PaletteGradientAnimation
+### palette_gradient
Creates shifting gradient patterns with palette colors. Inherits from `Animation`.
@@ -1087,16 +1085,16 @@ Creates shifting gradient patterns with palette colors. Inherits from `Animation
- **phase_shift**: Shifts the gradient pattern spatially by a percentage of the spatial period
- Each pixel's value calculated using optimized fixed-point arithmetic
-**Factory**: `animation.palette_gradient_animation(engine)`
+**Factory**: `animation.palette_gradient(engine)`
### PaletteMeterAnimation
-Creates meter/bar patterns based on a value function. Inherits from `PaletteGradientAnimation`.
+Creates meter/bar patterns based on a value function. Inherits from `palette_gradient`.
| Parameter | Type | Default | Constraints | Description |
|-----------|------|---------|-------------|-------------|
| `value_func` | function | nil | - | Function that provides meter values (0-255 range) |
-| *(inherits all PaletteGradientAnimation parameters)* | | | | |
+| *(inherits all palette_gradient parameters)* | | | | |
**Pattern Generation:**
- Value function signature: `value_func(engine, time_ms, self)` where:
@@ -1107,7 +1105,7 @@ Creates meter/bar patterns based on a value function. Inherits from `PaletteGrad
- Pixels within meter range get value 255, others get value 0
- Meter position calculated as: `position = tasmota.scale_uint(value, 0, 255, 0, strip_length)`
-**Factory**: `animation.palette_meter_animation(engine)`
+**Factory**: `animation.palette_meter(engine)`
## Motion Effects
@@ -1119,16 +1117,16 @@ Motion effects can be chained to create sophisticated transformations:
```berry
# Base animation
-animation base_pulse = pulsating_animation(color=blue, period=3s)
+animation base_pulse = breathe(color=blue, period=3s)
# Simple animation composition
-animation fire_effect = fire_animation(
+animation fire_effect = fire(
color=fire_colors,
intensity=180,
flicker_speed=8
)
-animation gradient_wave = gradient_animation(
+animation gradient_wave = gradient(
color=rainbow_cycle,
gradient_type=0,
movement_speed=50
diff --git a/lib/libesp32/berry_animation/animation_docs/Animation_Development.md b/lib/libesp32/berry_animation/animation_docs/Animation_Development.md
index 9603e35a8..eda425e51 100644
--- a/lib/libesp32/berry_animation/animation_docs/Animation_Development.md
+++ b/lib/libesp32/berry_animation/animation_docs/Animation_Development.md
@@ -445,13 +445,13 @@ for i: 0..(frame.width-1)
end
```
-## Complete Example: BeaconAnimation
+## Complete Example: beacon
Here's a complete example showing all concepts:
```berry
-#@ solidify:BeaconAnimation,weak
-class BeaconAnimation : animation.animation
+#@ solidify:beacon,weak
+class beacon : animation.animation
# NO instance variables for parameters - they are handled by the virtual parameter system
# Parameter definitions following the new specification
@@ -575,12 +575,12 @@ class BeaconAnimation : animation.animation
# String representation of the animation
def tostring()
- return f"BeaconAnimation(color=0x{self.color :08x}, pos={self.pos}, beacon_size={self.beacon_size}, slew_size={self.slew_size})"
+ return f"beacon(color=0x{self.color :08x}, pos={self.pos}, beacon_size={self.beacon_size}, slew_size={self.slew_size})"
end
end
# Export class directly - no redundant factory function needed
-return {'beacon_animation': BeaconAnimation}
+return {'beacon': beacon}
```
## Testing Your Animation
diff --git a/lib/libesp32/berry_animation/animation_docs/Animation_Tutorial.md b/lib/libesp32/berry_animation/animation_docs/Animation_Tutorial.md
index b2aa75579..6348ba77a 100644
--- a/lib/libesp32/berry_animation/animation_docs/Animation_Tutorial.md
+++ b/lib/libesp32/berry_animation/animation_docs/Animation_Tutorial.md
@@ -31,7 +31,7 @@ Traditional LED programming requires managing frame buffers, timing loops, and c
- **No timing code** - Just specify durations like `period=2s` and the framework handles the rest
- **No state machines** - Animations automatically manage their internal state
- **Composable** - Layer multiple animations, use one as an opacity mask for another
-- **Readable** - Code reads almost like English: "animation pulse = breathe_animation(color=red, period=2s)"
+- **Readable** - Code reads almost like English: "animation pulse = breathe(color=red, period=2s)"
### Key Concepts
@@ -39,7 +39,7 @@ Before diving into code, let's understand the building blocks:
| Concept | What It Does | Example |
|---------|--------------|---------|
-| **Animation** | A visual effect on the LED strip | `solid`, `twinkle`, `beacon_animation` |
+| **Animation** | A visual effect on the LED strip | `solid`, `twinkle`, `beacon` |
| **Color** | Either a static value or a dynamic provider that changes over time | `red`, `0xFF0000`, `color_cycle(...)` |
| **Palette** | A collection of colors for gradients or cycling | `PALETTE_RAINBOW`, custom arrays |
| **Value Provider** | A number that changes over time (oscillates) | `sine_osc`, `triangle`, `sawtooth` |
@@ -265,14 +265,14 @@ Chapter 2 showed `color_cycle`, which steps discretely between colors. This chap
-The `rich_palette_animation` is a complete animation that handles both the color transitions and rendering. It's the easiest way to get smooth rainbow effects.
+The `rich_palette` is a complete animation that handles both the color transitions and rendering. It's the easiest way to get smooth rainbow effects.
```berry
# Smooth cycling through rainbow colors
-animation back = rich_palette_animation()
+animation back = rich_palette()
# Equivalent to:
-# animation back = rich_palette_animation(colors=PALETTE_RAINBOW, period=5s,
+# animation back = rich_palette(colors=PALETTE_RAINBOW, period=5s,
# transition_type=SINE, brightness=100%)
run back
```
@@ -327,7 +327,7 @@ The key insight is that color providers can work in two dimensions:
-A gradient maps colors to positions along the strip. The `palette_gradient_animation` does exactly this.
+A gradient maps colors to positions along the strip. The `palette_gradient` does exactly this.
```berry
# Rainbow pattern across the strip
@@ -336,7 +336,7 @@ A gradient maps colors to positions along the strip. The `palette_gradient_anima
color rainbow_rich_color = rich_palette_color(colors=PALETTE_RAINBOW_W, period=0)
# Create a gradient across the whole strip
-animation back_pattern = palette_gradient_animation(color_source = rainbow_rich_color)
+animation back_pattern = palette_gradient(color_source = rainbow_rich_color)
run back_pattern
```
@@ -357,7 +357,7 @@ color rainbow_rich_color = rich_palette_color(colors=PALETTE_RAINBOW_W, period=0
set strip_len = strip_length()
# Create gradient with half the strip length as spatial period
-animation back_pattern = palette_gradient_animation(
+animation back_pattern = palette_gradient(
color_source = rainbow_rich_color
spatial_period = strip_len / 2
)
@@ -385,7 +385,7 @@ set strip_len = strip_length()
# Oscillate spatial period between 1/2 and 3/2 of strip length
set period = sine_osc(min_value = (strip_len - 1) / 2, max_value = (3 * strip_len) / 2, duration = 5s)
-animation back = palette_gradient_animation(color_source = rainbow_rich_color, spatial_period = period)
+animation back = palette_gradient(color_source = rainbow_rich_color, spatial_period = period)
run back
```
@@ -413,7 +413,7 @@ Make the gradient rotate along the strip:
color rainbow_rich_color = rich_palette_color(colors=PALETTE_RAINBOW_W, period=0)
-animation back = palette_gradient_animation(
+animation back = palette_gradient(
color_source = rainbow_rich_color
shift_period = 5s # Complete rotation in 5 seconds
)
@@ -449,7 +449,7 @@ color rainbow_rich_color = rich_palette_color(colors=vue_meter_palette, period=0
set level = sawtooth(min_value = 0%, max_value=100%, duration = 2s)
# Create the meter animation
-animation back = palette_meter_animation(color_source = rainbow_rich_color, level = level)
+animation back = palette_meter(color_source = rainbow_rich_color, level = level)
run back
```
@@ -499,7 +499,7 @@ color rainbow_rich_color = rich_palette_color(colors=vue_meter_palette, period=0
# Step 3: Use the custom function as a parameter
# Call it with () - the engine parameter is passed automatically
-animation back = palette_meter_animation(color_source = rainbow_rich_color, level = rand_meter())
+animation back = palette_meter(color_source = rainbow_rich_color, level = rand_meter())
run back
```
@@ -530,7 +530,7 @@ Let's start with a stationary beacon - a red highlight on a blue background.
```berry
# Static beacon
-animation back = beacon_animation(
+animation back = beacon(
back_color = blue
color = red
pos = 5 # Start at pixel 5
@@ -557,7 +557,7 @@ Hard edges can look harsh. The `slew_size` parameter adds a gradual fade on each
```berry
# Static beacon with slew
-animation back = beacon_animation(
+animation back = beacon(
back_color = blue
color = red
pos = 5
@@ -578,7 +578,7 @@ Remember: any numeric parameter can be replaced with a value provider. Here we m
set slew = cosine_osc(min_value = 0, max_value = 4, duration = 2s)
-animation back = beacon_animation(
+animation back = beacon(
back_color = blue
color = red
pos = 5
@@ -599,7 +599,7 @@ Now for the classic effect: a beacon that moves back and forth across the strip.
set strip_len = strip_length()
-animation back = beacon_animation(
+animation back = beacon(
color = red
pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = 5s)
beacon_size = 3 # small 3 pixels eye
@@ -647,7 +647,7 @@ run stars
# Moving beacon with dynamic color
# back_color defaults to transparent, so stars show through
-animation back = beacon_animation(
+animation back = beacon(
color = rich_palette_color(colors=PALETTE_RAINBOW_W2, period=5s)
pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = 5s)
beacon_size = 3
@@ -690,7 +690,7 @@ color red_blue_red_color = rich_palette_color(colors=red_blue_red_palette)
# Moving beacon as opacity mask
# The color is white but it doesn't matter - only brightness counts
-animation moving_eye = beacon_animation(
+animation moving_eye = beacon(
color = white # Color doesn't matter, only brightness/alpha
pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = 5s)
beacon_size = 3
@@ -699,7 +699,7 @@ animation moving_eye = beacon_animation(
# Apply the mask to a gradient
# The gradient exists everywhere, but only shows where the beacon is
-animation eye_pattern = palette_gradient_animation(
+animation eye_pattern = palette_gradient(
color_source = red_blue_red_color
opacity = moving_eye # Use beacon as opacity mask
)
@@ -734,7 +734,7 @@ set strip_len = strip_length()
# Sawtooth from 0 to strip_len - grows linearly, then resets
set shutter_size = sawtooth(min_value = 0, max_value = strip_len, duration = 1.5s)
-animation shutter_lr_animation = beacon_animation(
+animation shutter_lr_animation = beacon(
color = red
back_color = blue
pos = 0 # Start from left
@@ -770,7 +770,7 @@ color col1 = color_cycle(colors=PALETTE_RAINBOW_W, period=0)
color col2 = color_cycle(colors=PALETTE_RAINBOW_W, period=0)
col2.next = 1 # Shift col2 by one color at startup
-animation shutter_lr_animation = beacon_animation(
+animation shutter_lr_animation = beacon(
color = col2
back_color = col1
pos = 0
@@ -840,7 +840,7 @@ color col2 = color_cycle(colors=PALETTE_RAINBOW_W, period=0)
col2.next = 1
# Position calculated to center the beacon as it grows
-animation shutter_inout_animation = beacon_animation(
+animation shutter_inout_animation = beacon(
color = col2
back_color = col1
pos = strip_len_2 - (shutter_size + 1) / 2
@@ -893,7 +893,7 @@ color col2 = color_cycle(colors=PALETTE_RAINBOW_W, period=0)
col2.next = 1
# In-out animation: beacon grows from center outward
-animation shutter_inout_animation = beacon_animation(
+animation shutter_inout_animation = beacon(
color = col2
back_color = col1
pos = strip_len_2 - (shutter_size + 1) / 2
@@ -902,7 +902,7 @@ animation shutter_inout_animation = beacon_animation(
# Out-in animation: beacon shrinks from edges toward center
# Uses inverted size (strip_len - shutter_size) and swapped colors
-animation shutter_outin_animation = beacon_animation(
+animation shutter_outin_animation = beacon(
color = col1
back_color = col2
pos = strip_len_2 - (strip_len - shutter_size + 1) / 2
@@ -960,7 +960,7 @@ The pattern repeats with a period of `pulse_size + low_size` pixels.
```berry
# Static crenel pattern
-animation back = crenel_animation(
+animation back = crenel(
color = red
back_color = blue
pulse_size = 2 # 2 pixels of 'color'
@@ -988,7 +988,7 @@ set max_pulses = (strip_len + period - 1) / period
set nb_pulse = triangle(min_value = 0, max_value = max_pulses, duration = 2s)
-animation back = crenel_animation(
+animation back = crenel(
color = red
back_color = blue
pulse_size = 2
@@ -1009,7 +1009,7 @@ Instead of a fixed `pulse_size`, you can use a value provider to animate the pul
set pulse_size = triangle(min_value = 0, max_value = 4, duration = 2s)
-animation back = crenel_animation(
+animation back = crenel(
color = red
back_color = blue
pulse_size = pulse_size
@@ -1029,7 +1029,7 @@ The `color` parameter also accepts a color provider instead of a static color. T
color rainbow_color = rich_palette_color(colors=PALETTE_RAINBOW_W2, period=5s)
-animation back = crenel_animation(
+animation back = crenel(
color = rainbow_color
back_color = blue
pulse_size = 2
@@ -1066,7 +1066,7 @@ animation back = solid(color = blue, priority = 20)
run back
# Crenel mask (white = visible, transparent = hidden)
-animation mask = crenel_animation(
+animation mask = crenel(
color = white
back_color = transparent
pulse_size = 2
@@ -1075,7 +1075,7 @@ animation mask = crenel_animation(
# Rainbow gradient masked by crenel
color rainbow_rich_color = rich_palette_color(colors=PALETTE_RAINBOW_W, period=0)
-animation pattern = palette_gradient_animation(
+animation pattern = palette_gradient(
color_source = rainbow_rich_color
shift_period = 2s # Rotating gradient
opacity = mask # Apply crenel mask
@@ -1096,7 +1096,7 @@ Think of templates like functions in programming: define once, use many times wi
-The `template animation` keyword creates a new animation type that can be instantiated just like built-in animations (`solid`, `beacon_animation`, etc.). Once defined, you use it by calling `animation my_anim = template_name(param1=value1, ...)` - exactly like native animations.
+The `template animation` keyword creates a new animation type that can be instantiated just like built-in animations (`solid`, `beacon`, etc.). Once defined, you use it by calling `animation my_anim = template_name(param1=value1, ...)` - exactly like native animations.
**Defining parameters:**
@@ -1137,7 +1137,7 @@ template animation cylon_eye {
set strip_len = strip_length()
- animation eye_animation = beacon_animation(
+ animation eye_animation = beacon(
color = eye_color
back_color = back_color
pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = period)
@@ -1218,7 +1218,7 @@ template animation shutter_bidir {
col2.next = 1 # move 'col2' to the next color so it's shifte by one compared to 'col1'
# Shutter moving in in-out
- animation shutter_inout_animation = beacon_animation(
+ animation shutter_inout_animation = beacon(
color = col2 # Use two rotating colors
back_color = col1 # Use two rotating colors
pos = strip_len_2 - (shutter_size + 1) / 2
@@ -1226,7 +1226,7 @@ template animation shutter_bidir {
)
# shutter moving in out-in
- animation shutter_outin_animation = beacon_animation(
+ animation shutter_outin_animation = beacon(
color = col1
back_color = col2
pos = strip_len_2 - (strip_len - shutter_size + 1) / 2
@@ -1280,13 +1280,13 @@ run main
|-----------|-------------|----------------|
| `solid` | Solid color fill | `color` |
| `twinkle` | Twinkling stars effect | `color`, `density`, `twinkle_speed`, `fade_speed` |
-| `beacon_animation` | Positioned pulse/highlight | `color`, `pos`, `beacon_size`, `slew_size` |
-| `crenel_animation` | Square wave pattern | `color`, `back_color`, `pulse_size`, `low_size` |
-| `rich_palette_animation` | Smooth palette cycling | `colors`, `period`, `transition_type` |
-| `palette_gradient_animation` | Gradient across strip | `color_source`, `spatial_period`, `shift_period` |
-| `palette_meter_animation` | VU-meter style bar | `color_source`, `level` |
-| `breathe_animation` | Breathing/pulsing effect | `color`, `period` |
-| `comet_animation` | Moving comet with tail | `color`, `tail_length`, `speed` |
+| `beacon` | Positioned pulse/highlight | `color`, `pos`, `beacon_size`, `slew_size` |
+| `crenel` | Square wave pattern | `color`, `back_color`, `pulse_size`, `low_size` |
+| `rich_palette` | Smooth palette cycling | `colors`, `period`, `transition_type` |
+| `palette_gradient` | Gradient across strip | `color_source`, `spatial_period`, `shift_period` |
+| `palette_meter` | VU-meter style bar | `color_source`, `level` |
+| `breathe` | Breathing/pulsing effect | `color`, `period` |
+| `comet` | Moving comet with tail | `color`, `tail_length`, `speed` |
### Colors
diff --git a/lib/libesp32/berry_animation/animation_docs/Dsl_Reference.md b/lib/libesp32/berry_animation/animation_docs/Dsl_Reference.md
index f753f26ac..3029ef018 100644
--- a/lib/libesp32/berry_animation/animation_docs/Dsl_Reference.md
+++ b/lib/libesp32/berry_animation/animation_docs/Dsl_Reference.md
@@ -33,7 +33,7 @@ color bordeaux = 0x6F2C4F
color majorelle = 0x6050DC
# Animation definitions
-animation pulse_bordeaux = pulsating_animation(color=bordeaux, period=2s)
+animation pulse_bordeaux = breathe(color=bordeaux, period=2s)
# Property assignments
pulse_red.priority = 10
@@ -284,7 +284,7 @@ end
**Example with DSL Integration:**
```berry
-animation pulse = pulsating_animation(color=red, period=2s)
+animation pulse = breathe(color=red, period=2s)
berry """
# Modify animation using Berry code
@@ -322,7 +322,7 @@ extern function rand_meter
extern function breathing_effect
# Now they can be used in DSL expressions
-animation back_pattern = palette_meter_animation(value_func = rand_meter)
+animation back_pattern = palette_meter(value_func = rand_meter)
animation breathing_light = solid(color=blue)
breathing_light.opacity = breathing_effect
@@ -498,12 +498,12 @@ The `animation` keyword defines instances of animation classes (subclasses of An
```berry
animation red_solid = solid(color=red)
-animation pulse_effect = pulsating_animation(
+animation pulse_effect = breathe(
color=blue
period=2s
)
-animation comet_trail = comet_animation(
+animation comet_trail = comet(
color=white
tail_length=10
speed=1500
@@ -521,7 +521,7 @@ animation comet_trail = comet_animation(
Animation properties can be modified after creation:
```berry
-animation pulse_red = pulsating_animation(color=red, period=2s)
+animation pulse_red = breathe(color=red, period=2s)
# Set properties
pulse_red.priority = 10
@@ -538,7 +538,7 @@ pulse_red.position = strip_len / 2 # Center position
pulse_red.opacity = strip_len * 4 # Scale with strip size
# Animation opacity (using another animation as opacity mask)
-animation opacity_mask = pulsating_animation(period=2s)
+animation opacity_mask = breathe(period=2s)
pulse_red.opacity = opacity_mask # Dynamic opacity from animation
```
@@ -563,7 +563,7 @@ set strip_len = strip_length()
set strip_len2 = (strip_len + 1) / 2
# Use computed values in animation parameters
-animation stream1 = comet_animation(
+animation stream1 = comet(
color=red
tail_length=strip_len / 4 # Computed: quarter of strip length
speed=1.5
@@ -608,7 +608,7 @@ set strip_len3 = (strip_len + 1) / 2 # Computation with existing value
```berry
# Complex expressions with multiple operations
set base_speed = 2.0
-animation stream2 = comet_animation(
+animation stream2 = comet(
color=blue
tail_length=strip_len / 8 + 2 # Computed: eighth of strip + 2
speed=base_speed * 1.5 # Computed: base speed × 1.5
@@ -619,7 +619,7 @@ stream1.position = strip_len / 2 # Center of strip
stream2.opacity = strip_len * 4 # Scale opacity with strip size
# Using mathematical functions in computed values
-animation pulse = pulsating_animation(
+animation pulse = breathe(
color=red
period=2s
)
@@ -652,7 +652,7 @@ The following mathematical functions are available in computed parameters and ar
```berry
# Basic math functions
set strip_len = strip_length()
-animation test = pulsating_animation(color=red, period=2s)
+animation test = breathe(color=red, period=2s)
# Absolute value for ensuring positive results
test.opacity = abs(strip_len - 200)
@@ -1067,7 +1067,7 @@ template animation shutter_effect {
color col = color_cycle(colors=colors, period=0)
- animation shutter = beacon_animation(
+ animation shutter = beacon(
color = col
pos = strip_len / 2
beacon_size = shutter_size
@@ -1319,17 +1319,17 @@ function_name(
```berry
# Traditional single-line syntax
solid(color=red)
-pulsating_animation(color=blue, period=2s)
+breathe(color=blue, period=2s)
# New multi-line syntax (no commas needed)
-pulsating_animation(
+breathe(
color=blue
period=2s
brightness=255
)
# Mixed syntax
-comet_animation(
+comet(
color=stream_pattern, tail_length=15
speed=1.5s
priority=10
@@ -1338,7 +1338,7 @@ comet_animation(
**Nested Function Calls:**
```berry
-pulsating_animation(
+breathe(
color=solid(color=red)
period=smooth(
min_value=1000
@@ -1352,7 +1352,7 @@ pulsating_animation(
Mathematical functions can be used in computed parameter expressions and are automatically detected by the transpiler:
```berry
-animation wave = pulsating_animation(
+animation wave = breathe(
color=blue
period=2s
)
@@ -1432,19 +1432,18 @@ Animation classes create visual effects on LED strips:
| Function | Description |
|----------|-------------|
| `solid` | Solid color fill |
-| `pulsating_animation` | Pulsing brightness effect |
-| `beacon_animation` | Positioned pulse effect |
-| `crenel_animation` | Square wave pulse at specific position |
-| `breathe_animation` | Breathing/fading effect |
-| `comet_animation` | Moving comet with trailing tail |
-| `fire_animation` | Realistic fire simulation |
+| `breathe` | Pulsing brightness effect |
+| `gradient` | Gradient patterns using palettes |
+| `beacon` | Positioned pulse effect |
+| `crenel` | Square wave pulse at specific position |
+| `breathe` | Breathing/fading effect |
+| `comet` | Moving comet with trailing tail |
+| `fire` | Realistic fire simulation |
| `twinkle` | Twinkling stars effect |
-| `gradient_animation` | Color gradient effects |
-| `wave_animation` | Wave propagation effects |
-| `rich_palette_animation` | Palette-based color cycling |
-| `palette_wave_animation` | Wave patterns using palettes |
-| `palette_gradient_animation` | Gradient patterns using palettes |
-| `palette_meter_animation` | Meter/bar patterns using palettes |
+| `gradient` | Color gradient effects |
+| `wave` | Wave propagation effects |
+| `rich_palette` | Palette-based color cycling |
+| `meter` | Meter/bar patterns using palettes |
## Error Handling
@@ -1476,10 +1475,10 @@ The DSL validates class and parameter existence during compilation, catching err
color red = 0x800000 # Error: Cannot redefine 'red'
# Invalid: Unknown parameter in constructor
-animation bad = pulsating_animation(invalid_param=123) # Error: Unknown parameter
+animation bad = breathe(invalid_param=123) # Error: Unknown parameter
# Invalid: Unknown parameter in property assignment
-animation pulse = pulsating_animation(color=red, period=2s)
+animation pulse = breathe(color=red, period=2s)
pulse.wrong_arg = 15 # Error: Parameter 'wrong_arg' not valid for PulseAnimation
# Invalid: Undefined reference in color definition
@@ -1495,7 +1494,7 @@ sequence demo {
# Valid alternatives
color my_red = 0x800000 # OK: Different name
-animation good = pulsating_animation(color=red, period=2s) # OK: Valid parameters
+animation good = breathe(color=red, period=2s) # OK: Valid parameters
good.priority = 10 # OK: Valid parameter assignment
```
@@ -1621,12 +1620,12 @@ The DSL supports flexible parameter syntax that makes multi-line function calls
### Traditional Syntax (Commas Required)
```berry
-animation stream = comet_animation(color=red, tail_length=15, speed=1.5s, priority=10)
+animation stream = comet(color=red, tail_length=15, speed=1.5s, priority=10)
```
### New Multi-Line Syntax (Commas Optional)
```berry
-animation stream = comet_animation(
+animation stream = comet(
color=red
tail_length=15
speed=1.5s
@@ -1636,7 +1635,7 @@ animation stream = comet_animation(
### Mixed Syntax (Both Supported)
```berry
-animation stream = comet_animation(
+animation stream = comet(
color=red, tail_length=15
speed=1.5s
priority=10
diff --git a/lib/libesp32/berry_animation/animation_docs/Dsl_Transpilation.md b/lib/libesp32/berry_animation/animation_docs/Dsl_Transpilation.md
index 9b6a7d9fa..01a69c0ae 100644
--- a/lib/libesp32/berry_animation/animation_docs/Dsl_Transpilation.md
+++ b/lib/libesp32/berry_animation/animation_docs/Dsl_Transpilation.md
@@ -72,7 +72,7 @@ Loads DSL source from a file and executes it.
# Create a DSL file
var f = open("my_animation.dsl", "w")
f.write("color green = 0x00FF00\n"
- "animation pulse_green = pulsating_animation(color=green, period=2s)\n"
+ "animation pulse_green = breathe(color=green, period=2s)\n"
"run pulse_green")
f.close()
@@ -109,8 +109,8 @@ color red = 0xFF0000
color blue = 0x0000FF
# Animation definitions with named parameters
-animation pulse_red = pulsating_animation(color=red, period=2s)
-animation comet_blue = comet_animation(color=blue, tail_length=10, speed=1500)
+animation pulse_red = breathe(color=red, period=2s)
+animation comet_blue = comet(color=blue, tail_length=10, speed=1500)
# Property assignments with user functions
pulse_red.priority = 10
@@ -134,7 +134,7 @@ When the DSL encounters an identifier (like `SINE` or `red`), it checks at trans
```berry
# If SINE exists in animation module
-animation wave = wave_animation(waveform=SINE)
+animation wave = wave(waveform=SINE)
# Transpiles to: animation.SINE (direct access)
# If custom_color doesn't exist in animation module
@@ -153,7 +153,7 @@ animation solid_red = solid(color=custom_color)
### Symbol Categories
**Built-in Symbols** (resolved to `animation.`):
-- Animation factory functions: `solid`, `pulsating_animation`, `comet_animation`
+- Animation factory functions: `solid`, `breathe`, `comet`
- Value providers: `triangle`, `smooth`, `sine`, `static_value`
- Color providers: `color_cycle`, `breathe_color`, `rich_palette_color`
- Constants: `PALETTE_RAINBOW`, `SINE`, `TRIANGLE`, etc.
@@ -288,14 +288,14 @@ Berry code can interact with DSL-generated objects by using the underscore suffi
```berry
# DSL Code
-animation pulse = pulsating_animation(color=red, period=2s)
+animation pulse = breathe(color=red, period=2s)
berry """
pulse_.opacity = 200
pulse_.priority = 10
"""
# Transpiles to Berry Code
-var pulse_ = animation.pulsating_animation(engine)
+var pulse_ = animation.breathe(engine)
pulse_.color = animation.red
pulse_.period = 2000
# Berry code block
@@ -323,7 +323,7 @@ template animation shutter_effect {
set strip_len = strip_length()
color col = color_cycle(colors=colors, period=0)
- animation shutter = beacon_animation(
+ animation shutter = beacon(
color = col
beacon_size = strip_len / 2
)
@@ -354,7 +354,7 @@ class shutter_effect_animation : animation.engine_proxy
col_.colors = animation.create_closure_value(engine, def (engine) return self.colors end)
col_.period = 0
- var shutter_ = animation.beacon_animation(engine)
+ var shutter_ = animation.beacon(engine)
shutter_.color = col_
shutter_.beacon_size = animation.create_closure_value(engine, def (engine) return animation.resolve(strip_len_) / 2 end)
@@ -383,7 +383,7 @@ template pulse_effect {
param color type color
param speed
- animation pulse = pulsating_animation(color=color, period=speed)
+ animation pulse = breathe(color=color, period=speed)
run pulse
}
```
@@ -392,7 +392,7 @@ template pulse_effect {
```berry
def pulse_effect_template(engine, color_, speed_)
- var pulse_ = animation.pulsating_animation(engine)
+ var pulse_ = animation.breathe(engine)
pulse_.color = color_
pulse_.period = speed_
engine.add(pulse_)
@@ -456,7 +456,7 @@ color normal = 0x000080
color alert = 0xFF0000
animation normal_state = solid(color=normal)
-animation alert_state = pulsating_animation(color=alert, period=500ms)
+animation alert_state = breathe(color=alert, period=500ms)
# Event handlers
on button_press {
@@ -480,14 +480,14 @@ DSL supports nested function calls for complex compositions:
```berry
# Nested calls in animation definitions (now supported)
-animation complex = pulsating_animation(
+animation complex = breathe(
color=red,
period=2s
)
# Nested calls in run statements
sequence demo {
- play pulsating_animation(color=blue, period=1s) for 10s
+ play breathe(color=blue, period=1s) for 10s
}
```
@@ -498,7 +498,7 @@ The DSL compiler validates classes and parameters at transpilation time, catchin
```berry
var invalid_dsl = "color red = #INVALID_COLOR\n"
"animation bad = unknown_function(red)\n"
- "animation pulse = pulsating_animation(invalid_param=123)"
+ "animation pulse = breathe(invalid_param=123)"
try
animation_dsl.execute(invalid_dsl)
@@ -525,16 +525,16 @@ animation bad2 = math_function(value=10)
**Parameter Validation:**
```berry
# Error: Invalid parameter name in constructor
-animation pulse = pulsating_animation(invalid_param=123)
-# Transpiler error: "Parameter 'invalid_param' is not valid for pulsating_animation"
+animation pulse = breathe(invalid_param=123)
+# Transpiler error: "Parameter 'invalid_param' is not valid for breathe"
# Error: Invalid parameter name in property assignment
-animation pulse = pulsating_animation(color=red, period=2s)
+animation pulse = breathe(color=red, period=2s)
pulse.wrong_arg = 15
# Transpiler error: "Animation 'PulseAnimation' does not have parameter 'wrong_arg'"
# Error: Parameter constraint violation
-animation comet = comet_animation(tail_length=-5)
+animation comet = comet(tail_length=-5)
# Transpiler error: "Parameter 'tail_length' value -5 violates constraint: min=1"
```
@@ -545,14 +545,14 @@ color bad = nonexistent_color_provider(period=2s)
# Transpiler error: "Color provider factory 'nonexistent_color_provider' does not exist"
# Error: Function exists but doesn't create color provider
-color bad2 = pulsating_animation(color=red)
-# Transpiler error: "Function 'pulsating_animation' does not create a color provider instance"
+color bad2 = breathe(color=red)
+# Transpiler error: "Function 'breathe' does not create a color provider instance"
```
**Reference Validation:**
```berry
# Error: Undefined color reference
-animation pulse = pulsating_animation(color=undefined_color)
+animation pulse = breathe(color=undefined_color)
# Transpiler error: "Undefined reference: 'undefined_color'"
# Error: Undefined animation reference in run statement
@@ -697,11 +697,11 @@ import animation_dsl
def handle_rule_trigger(event)
if event == "motion"
animation_dsl.execute("color alert = 0xFF0000\n"
- "animation alert_anim = pulsating_animation(color=alert, period=500ms)\n"
+ "animation alert_anim = breathe(color=alert, period=500ms)\n"
"run alert_anim for 5s")
elif event == "door"
animation_dsl.execute("color welcome = 0x00FF00\n"
- "animation welcome_anim = breathe_animation(color=welcome, period=2s)\n"
+ "animation welcome_anim = breathe(color=welcome, period=2s)\n"
"run welcome_anim for 8s")
end
end
@@ -746,7 +746,7 @@ webserver.on("/execute_dsl", web_execute_dsl)
# Animations with named parameters
animation red_solid = solid(color=red)
- animation pulse_red = pulsating_animation(color=red, period=2s)
+ animation pulse_red = breathe(color=red, period=2s)
# Property assignments
pulse_red.priority = 10
@@ -764,11 +764,11 @@ webserver.on("/execute_dsl", web_execute_dsl)
```berry
# Good
color warning_red = 0xFF0000
- animation door_alert = pulsating_animation(color=warning_red, period=500ms)
+ animation door_alert = breathe(color=warning_red, period=500ms)
# Avoid
color c1 = 0xFF0000
- animation a1 = pulsating_animation(color=c1, period=500ms)
+ animation a1 = breathe(color=c1, period=500ms)
```
3. **Comment your DSL**:
@@ -781,8 +781,8 @@ webserver.on("/execute_dsl", web_execute_dsl)
# Main security animation sequence
sequence security_demo {
play solid(color=normal_blue) for 10s # Normal operation
- play pulsating_animation(color=alert_red, period=500ms) for 3s # Alert
- play breathe_animation(color=success_green, period=2s) for 5s # Success confirmation
+ play breathe(color=alert_red, period=500ms) for 3s # Alert
+ play breathe(color=success_green, period=2s) for 5s # Success confirmation
}
```
diff --git a/lib/libesp32/berry_animation/animation_docs/Examples.md b/lib/libesp32/berry_animation/animation_docs/Examples.md
index 43968443b..600f528dd 100644
--- a/lib/libesp32/berry_animation/animation_docs/Examples.md
+++ b/lib/libesp32/berry_animation/animation_docs/Examples.md
@@ -14,14 +14,14 @@ run red_solid
### 2. Pulsing Effect
```berry
color blue = 0x0000FF
-animation blue_pulse = pulsating_animation(color=blue, period=2s)
+animation blue_pulse = breathe(color=blue, period=2s)
run blue_pulse
```
### 3. Moving Comet
```berry
color cyan = 0x00FFFF
-animation comet_trail = comet_animation(color=cyan, tail_length=8, speed=100ms, direction=1)
+animation comet_trail = comet(color=cyan, tail_length=8, speed=100ms, direction=1)
run comet_trail
```
@@ -85,7 +85,7 @@ color orange = 0xFFA500
color yellow = 0xFFFF00
animation night = solid(color=deep_blue)
-animation sunrise = pulsating_animation(color=orange, period=3s)
+animation sunrise = breathe(color=orange, period=3s)
animation day = solid(color=yellow)
sequence sunrise_show {
@@ -134,7 +134,7 @@ palette eye_palette = [red, yellow, green, violet]
color eye_color = color_cycle(colors=eye_palette, period=0)
# Create beacon animation
-animation red_eye = beacon_animation(
+animation red_eye = beacon(
color=eye_color
pos=cosine_val
beacon_size=3
@@ -177,7 +177,7 @@ run demo
```berry
# Create oscillator and animation
set wave_osc = triangle(min_value=0, max_value=29, period=4s)
-animation wave = beacon_animation(color=blue, pos=wave_osc, beacon_size=5)
+animation wave = beacon(color=blue, pos=wave_osc, beacon_size=5)
sequence sync_demo {
play wave for 3s
@@ -192,7 +192,7 @@ run sync_demo
### 12. Assignments in Repeat Blocks
```berry
set brightness = smooth(min_value=50, max_value=255, period=2s)
-animation pulse = pulsating_animation(color=white, period=1s)
+animation pulse = breathe(color=white, period=1s)
sequence breathing_cycle {
repeat 3 times {
@@ -291,7 +291,7 @@ set triangle_pos = triangle(min_value=0, max_value=29, period=3s)
set cosine_pos = cosine_osc(min_value=0, max_value=29, period=3s)
color eye_color = color_cycle(colors=[red, yellow, green, blue], period=0)
-animation moving_eye = beacon_animation(
+animation moving_eye = beacon(
color=eye_color
pos=triangle_pos
beacon_size=2
@@ -319,7 +319,7 @@ strip length 60
set moving_position = smooth(min_value=5, max_value=55, period=4s)
color purple = 0x8000FF
-animation moving_pulse = beacon_animation(
+animation moving_pulse = beacon(
color=purple,
position=moving_position,
beacon_size=3,
@@ -362,11 +362,11 @@ run simple
```berry
# Good - descriptive names
color sunset_orange = 0xFF8C00
-animation evening_glow = pulsating_animation(color=sunset_orange, period=4s)
+animation evening_glow = breathe(color=sunset_orange, period=4s)
# Avoid - unclear names
color c1 = 0xFF8C00
-animation a1 = pulsating_animation(color=c1, period=4s)
+animation a1 = breathe(color=c1, period=4s)
```
### Test Incrementally
@@ -393,7 +393,7 @@ template blink_effect {
param speed
param intensity
- animation blink = pulsating_animation(
+ animation blink = breathe(
color=color
period=speed
)
@@ -421,7 +421,7 @@ template comet_chase {
background.priority = 1
# Comet effect layer
- animation comet = comet_animation(
+ animation comet = comet(
color=trail_color
tail_length=tail_size
speed=chase_speed
@@ -457,7 +457,7 @@ template breathing_rainbow {
)
# Create breathing animation with rainbow colors
- animation breath = pulsating_animation(
+ animation breath = breathe(
color=rainbow_cycle
period=breath_time
)
diff --git a/lib/libesp32/berry_animation/animation_docs/Oscillation_Patterns.md b/lib/libesp32/berry_animation/animation_docs/Oscillation_Patterns.md
index 3b4a64e08..0dc9ee01c 100644
--- a/lib/libesp32/berry_animation/animation_docs/Oscillation_Patterns.md
+++ b/lib/libesp32/berry_animation/animation_docs/Oscillation_Patterns.md
@@ -195,7 +195,7 @@ strip length 60
color red = 0xFF0000
set sweeping_position = linear(min_value=0, max_value=59, duration=3000)
-animation position_sweep = beacon_animation(
+animation position_sweep = beacon(
color=red,
position=sweeping_position,
beacon_size=3,
@@ -219,7 +219,7 @@ run wave_effect
color green = 0x00FF00
set bounce_size = triangle(min_value=1, max_value=8, duration=1000)
-animation bouncing_pulse = beacon_animation(
+animation bouncing_pulse = beacon(
color=green,
position=30,
beacon_size=bounce_size,
diff --git a/lib/libesp32/berry_animation/animation_docs/Quick_Start.md b/lib/libesp32/berry_animation/animation_docs/Quick_Start.md
index a8e61d9bd..9e9da2c52 100644
--- a/lib/libesp32/berry_animation/animation_docs/Quick_Start.md
+++ b/lib/libesp32/berry_animation/animation_docs/Quick_Start.md
@@ -16,7 +16,7 @@ Create a simple pulsing red light:
color bordeaux = 0x6F2C4F
# Create pulsing animation
-animation pulse_bordeaux = pulsating_animation(color=bordeaux, period=3s)
+animation pulse_bordeaux = breathe(color=bordeaux, period=3s)
# Run it
run pulse_bordeaux
@@ -66,9 +66,9 @@ run sunset_glow
Create complex shows with sequences:
```berry
-animation red_pulse = pulsating_animation(color=red, period=2s)
-animation green_pulse = pulsating_animation(color=green, period=2s)
-animation blue_pulse = pulsating_animation(color=blue, period=2s)
+animation red_pulse = breathe(color=red, period=2s)
+animation green_pulse = breathe(color=green, period=2s)
+animation blue_pulse = breathe(color=blue, period=2s)
sequence rgb_show {
play red_pulse for 3s
@@ -109,7 +109,7 @@ Add movement and variation to your animations:
```berry
# Breathing effect with smooth oscillation
-animation breathing = pulsating_animation(
+animation breathing = breathe(
color=blue
min_brightness=20%
max_brightness=100%
@@ -117,7 +117,7 @@ animation breathing = pulsating_animation(
)
# Moving comet effect
-animation comet = comet_animation(
+animation comet = comet(
color=white
tail_length=8
speed=2000
@@ -172,7 +172,7 @@ template animation shutter_effect {
set strip_len = strip_length()
color col = color_cycle(colors=colors, period=0)
- animation shutter = beacon_animation(
+ animation shutter = beacon(
color = col
beacon_size = strip_len / 2
)
@@ -210,7 +210,7 @@ template pulse_effect {
param color type color
param speed
- animation pulse = pulsating_animation(color=color, period=speed)
+ animation pulse = breathe(color=color, period=speed)
run pulse
}
diff --git a/lib/libesp32/berry_animation/animation_docs/Transpiler_Architecture.md b/lib/libesp32/berry_animation/animation_docs/Transpiler_Architecture.md
index 2d6b427d4..20e12ead0 100644
--- a/lib/libesp32/berry_animation/animation_docs/Transpiler_Architecture.md
+++ b/lib/libesp32/berry_animation/animation_docs/Transpiler_Architecture.md
@@ -346,7 +346,7 @@ _detect_and_cache_symbol(name)
**Palette Detection:**
```berry
-# DSL: animation rainbow = rich_palette_animation(colors=PALETTE_RAINBOW)
+# DSL: animation rainbow = rich_palette(colors=PALETTE_RAINBOW)
# Detection: PALETTE_RAINBOW exists in animation module, isinstance(obj, bytes)
# Result: SymbolEntry("PALETTE_RAINBOW", "palette", bytes_instance, true)
# Reference: "animation.PALETTE_RAINBOW"
@@ -354,7 +354,7 @@ _detect_and_cache_symbol(name)
**Constant Detection:**
```berry
-# DSL: animation wave = wave_animation(waveform=LINEAR)
+# DSL: animation wave = wave(waveform=LINEAR)
# Detection: LINEAR exists in animation module, type(LINEAR) == "int"
# Result: SymbolEntry("LINEAR", "constant", 1, true)
# Reference: "animation.LINEAR"
@@ -532,12 +532,12 @@ _validate_value_provider_reference(object_name, context)
### Engine-First Pattern (Consistent)
All factory functions use the engine-first pattern with **automatic strip initialization**:
```berry
-# DSL: animation pulse = pulsating_animation(color=red, period=2s)
+# DSL: animation pulse = breathe(color=red, period=2s)
# Generated:
# Auto-generated strip initialization (using Tasmota configuration)
var engine = animation.init_strip()
-var pulse_ = animation.pulsating_animation(engine)
+var pulse_ = animation.breathe(engine)
pulse_.color = animation.red
pulse_.period = 2000
```
@@ -585,13 +585,13 @@ template pulse_effect {
param color type color
param speed
- animation pulse = pulsating_animation(color=color, period=speed)
+ animation pulse = breathe(color=color, period=speed)
run pulse
}
# Generated:
def pulse_effect_template(engine, color_, speed_)
- var pulse_ = animation.pulsating_animation(engine)
+ var pulse_ = animation.breathe(engine)
pulse_.color = color_
pulse_.period = speed_
engine.add(pulse_)
@@ -820,7 +820,7 @@ The transpiler has been significantly refactored to leverage the `symbol_table.b
- **Integer Constants**: `LINEAR`, `SINE`, `COSINE` → `animation.LINEAR`, `animation.SINE`, `animation.COSINE`
- **Math Functions**: `max`, `min` → `animation.max`, `animation.min` (transformed to `animation._math.*` in closures)
- **Value Providers**: `triangle`, `smooth` → `animation.triangle`, `animation.smooth`
-- **Animation Constructors**: `solid`, `pulsating_animation` → `animation.solid`, `animation.pulsating_animation`
+- **Animation Constructors**: `solid`, `breathe` → `animation.solid`, `animation.breathe`
- **User-defined Symbols**: `my_color`, `my_animation` → `my_color_`, `my_animation_`
**Validation Improvements:**
diff --git a/lib/libesp32/berry_animation/animation_docs/Troubleshooting.md b/lib/libesp32/berry_animation/animation_docs/Troubleshooting.md
index 21efae3c3..017452b09 100644
--- a/lib/libesp32/berry_animation/animation_docs/Troubleshooting.md
+++ b/lib/libesp32/berry_animation/animation_docs/Troubleshooting.md
@@ -144,7 +144,7 @@ The framework has updated timing behavior where:
animation red_anim = solid(color=red, opacity=255) # Full brightness
# Or assign after creation
- animation pulse_red = pulsating_animation(color=red, period=2s)
+ animation pulse_red = breathe(color=red, period=2s)
pulse_red.opacity = 200 # Adjust brightness
# Use value providers for dynamic brightness
@@ -162,17 +162,17 @@ The framework has updated timing behavior where:
1. **Check Time Units:**
```berry
# DSL uses time units (converted to milliseconds)
- animation pulse_anim = pulsating_animation(color=red, period=2s) # 2 seconds
- animation fast_pulse = pulsating_animation(color=blue, period=500ms) # 0.5 seconds
+ animation pulse_anim = breathe(color=red, period=2s) # 2 seconds
+ animation fast_pulse = breathe(color=blue, period=500ms) # 0.5 seconds
```
2. **Adjust Periods:**
```berry
# Too fast - increase period
- animation slow_pulse = pulsating_animation(color=red, period=5s) # 5 seconds
+ animation slow_pulse = breathe(color=red, period=5s) # 5 seconds
# Too slow - decrease period
- animation fast_pulse = pulsating_animation(color=red, period=500ms) # 0.5 seconds
+ animation fast_pulse = breathe(color=red, period=500ms) # 0.5 seconds
```
3. **Performance Limitations:**
@@ -231,10 +231,10 @@ end
3. **Missing Time Units:**
```berry
# Wrong - no time unit
- animation pulse_anim = pulsating_animation(color=red, period=2000)
+ animation pulse_anim = breathe(color=red, period=2000)
# Correct - with time unit
- animation pulse_anim = pulsating_animation(color=red, period=2s)
+ animation pulse_anim = breathe(color=red, period=2s)
```
4. **Reserved Name Conflicts:**
@@ -249,11 +249,11 @@ end
5. **Invalid Parameter Names:**
```berry
# Wrong - invalid parameter name
- animation pulse_anim = pulsating_animation(color=red, invalid_param=123)
- # Error: "Parameter 'invalid_param' is not valid for pulsating_animation"
+ animation pulse_anim = breathe(color=red, invalid_param=123)
+ # Error: "Parameter 'invalid_param' is not valid for breathe"
# Correct - use valid parameters (see Dsl_Reference.md for complete list)
- animation pulse_anim = pulsating_animation(color=red, period=2s)
+ animation pulse_anim = breathe(color=red, period=2s)
```
6. **Variable Duration Support:**
@@ -299,7 +299,7 @@ end
param color type color
param speed
- animation pulse = pulsating_animation(
+ animation pulse = breathe(
color=color
period=speed
)
@@ -328,7 +328,7 @@ end
param color type color
param speed
- animation pulse = pulsating_animation(color=color, period=speed)
+ animation pulse = breathe(color=color, period=speed)
run pulse
}
@@ -338,16 +338,16 @@ end
6. **Parameter Constraint Violations:**
```berry
# Wrong - negative period not allowed
- animation bad_pulse = pulsating_animation(color=red, period=-2s)
+ animation bad_pulse = breathe(color=red, period=-2s)
# Error: "Parameter 'period' value -2000 violates constraint: min=1"
# Wrong - invalid enum value
- animation bad_comet = comet_animation(color=red, direction=5)
+ animation bad_comet = comet(color=red, direction=5)
# Error: "Parameter 'direction' value 5 not in allowed values: [-1, 1]"
# Correct - valid parameters within constraints
- animation good_pulse = pulsating_animation(color=red, period=2s)
- animation good_comet = comet_animation(color=red, direction=1)
+ animation good_pulse = breathe(color=red, period=2s)
+ animation good_comet = comet(color=red, direction=1)
```
7. **Repeat Syntax Errors:**
@@ -406,7 +406,7 @@ end
param color type color
param speed
- animation pulse = pulsating_animation(color=color, period=speed)
+ animation pulse = breathe(color=color, period=speed)
run pulse
}
```
@@ -507,13 +507,13 @@ template pulse_effect {
param color type color
param speed
- animation pulse = pulsating_animation(color=color, period=speed)
+ animation pulse = breathe(color=color, period=speed)
run pulse
}
# User Function (Berry-native) - For complex logic
def create_pulse_effect(engine, color, speed)
- var pulse = animation.pulsating_animation(engine)
+ var pulse = animation.breathe(engine)
pulse.color = color
pulse.period = speed
return pulse
@@ -765,10 +765,10 @@ complex_anim.period = 2000 # 2 seconds instead of 100ms
2. **Increase Animation Periods:**
```berry
# Smooth - longer periods
- animation smooth_pulse = pulsating_animation(color=red, period=3s)
+ animation smooth_pulse = breathe(color=red, period=3s)
# Choppy - very short periods
- animation choppy_pulse = pulsating_animation(color=red, period=50ms)
+ animation choppy_pulse = breathe(color=red, period=50ms)
```
3. **Optimize Value Providers:**
@@ -779,10 +779,10 @@ complex_anim.period = 2000 # 2 seconds instead of 100ms
color red = 0xFF0000
color blue = 0x0000FF
- animation anim1 = pulsating_animation(color=red, period=2s)
+ animation anim1 = breathe(color=red, period=2s)
anim1.opacity = breathing
- animation anim2 = pulsating_animation(color=blue, period=2s)
+ animation anim2 = breathe(color=blue, period=2s)
anim2.opacity = breathing # Reuse same provider
```
@@ -1160,7 +1160,7 @@ template pulse_effect {
param base_color type color # Use descriptive names
param speed type time # Add type annotations for clarity
- animation pulse = pulsating_animation(color=base_color, period=speed)
+ animation pulse = breathe(color=base_color, period=speed)
run pulse
}
@@ -1197,7 +1197,7 @@ template unused_param_example {
### Animation with Parameters
```berry
color blue = 0x0000FF
-animation blue_pulse = pulsating_animation(color=blue, period=2s, opacity=200)
+animation blue_pulse = breathe(color=blue, period=2s, opacity=200)
run blue_pulse
```
diff --git a/lib/libesp32/berry_animation/animation_docs/User_Functions.md b/lib/libesp32/berry_animation/animation_docs/User_Functions.md
index 8b9f06e70..6653f81a4 100644
--- a/lib/libesp32/berry_animation/animation_docs/User_Functions.md
+++ b/lib/libesp32/berry_animation/animation_docs/User_Functions.md
@@ -11,7 +11,7 @@ Write a Berry function that creates and returns an animation:
```berry
# Define a custom breathing effect
def my_breathing(engine, color, speed)
- var anim = animation.pulsating_animation(engine)
+ var anim = animation.breathe(engine)
anim.color = color
anim.min_brightness = 50
anim.max_brightness = 255
@@ -210,7 +210,7 @@ fairy_dust.opacity = twinkles(8, 600ms)
```berry
def pulse_at(engine, color, position, width, speed)
- var anim = animation.beacon_animation(engine)
+ var anim = animation.beacon(engine)
anim.color = color
anim.position = position
anim.width = width
@@ -302,7 +302,7 @@ run gradient_effect
```berry
def police_lights(engine, flash_speed)
- var anim = animation.pulsating_animation(engine)
+ var anim = animation.breathe(engine)
anim.color = 0xFFFF0000 # Red
anim.min_brightness = 0
anim.max_brightness = 255
@@ -406,7 +406,7 @@ def flexible_pulse(engine, color, period, min_brightness, max_brightness)
if min_brightness == nil min_brightness = 50 end
if max_brightness == nil max_brightness = 255 end
- var anim = animation.pulsating_animation(engine)
+ var anim = animation.breathe(engine)
anim.color = color
anim.period = period
anim.min_brightness = min_brightness
@@ -424,7 +424,7 @@ def safe_comet(engine, color, tail_length, speed)
if tail_length > 20 tail_length = 20 end
if speed < 100 speed = 100 end
- var anim = animation.comet_animation(engine)
+ var anim = animation.comet(engine)
anim.color = color
anim.tail_length = tail_length
anim.speed = speed
diff --git a/lib/libesp32/berry_animation/src/animation.be b/lib/libesp32/berry_animation/src/animation.be
index 9d7c8c9ff..135ac516c 100644
--- a/lib/libesp32/berry_animation/src/animation.be
+++ b/lib/libesp32/berry_animation/src/animation.be
@@ -127,30 +127,30 @@ register_to_animation(breathe_color_provider)
# Import animations
import "animations/solid" as solid_impl
register_to_animation(solid_impl)
-import "animations/beacon" as beacon_animation
-register_to_animation(beacon_animation)
-import "animations/crenel_position" as crenel_animation
-register_to_animation(crenel_animation)
-import "animations/breathe" as breathe_animation
-register_to_animation(breathe_animation)
-import "animations/palette_pattern" as palette_pattern_animation
+import "animations/beacon" as beacon
+register_to_animation(beacon)
+import "animations/crenel" as crenel
+register_to_animation(crenel)
+import "animations/breathe" as breathe
+register_to_animation(breathe)
+import "animations/palette_gradient" as palette_pattern_animation
register_to_animation(palette_pattern_animation)
-import "animations/comet" as comet_animation
-register_to_animation(comet_animation)
-import "animations/fire" as fire_animation
-register_to_animation(fire_animation)
+import "animations/comet" as comet
+register_to_animation(comet)
+import "animations/fire" as fire
+register_to_animation(fire)
import "animations/twinkle" as twinkle
register_to_animation(twinkle)
-import "animations/gradient" as gradient_animation
-register_to_animation(gradient_animation)
-import "animations/palette_meter" as palette_meter_animation
-register_to_animation(palette_meter_animation)
+import "animations/gradient" as gradient
+register_to_animation(gradient)
+import "animations/palette_meter" as palette_meter
+register_to_animation(palette_meter)
# import "animations/plasma" as plasma_animation
# register_to_animation(plasma_animation)
# import "animations/sparkle" as sparkle_animation
# register_to_animation(sparkle_animation)
-import "animations/wave" as wave_animation
-register_to_animation(wave_animation)
+import "animations/wave" as wave
+register_to_animation(wave)
# import "animations/shift" as shift_animation
# register_to_animation(shift_animation)
# import "animations/bounce" as bounce_animation
@@ -165,8 +165,8 @@ import "animations/palettes" as palettes
register_to_animation(palettes)
# Import specialized animation classes
-import "animations/rich_palette_animation" as rich_palette_animation
-register_to_animation(rich_palette_animation)
+import "animations/rich_palette" as rich_palette
+register_to_animation(rich_palette)
# DSL components are now in separate animation_dsl module
diff --git a/lib/libesp32/berry_animation/src/animations/beacon.be b/lib/libesp32/berry_animation/src/animations/beacon.be
index ed532c7e4..5e2396a9f 100644
--- a/lib/libesp32/berry_animation/src/animations/beacon.be
+++ b/lib/libesp32/berry_animation/src/animations/beacon.be
@@ -30,8 +30,8 @@
import "./core/param_encoder" as encode_constraints
-#@ solidify:BeaconAnimation,weak
-class BeaconAnimation : animation.animation
+#@ solidify:beacon,weak
+class beacon : animation.animation
# NO instance variables for parameters - they are handled by the virtual parameter system
# Parameter definitions following the new specification
@@ -139,4 +139,4 @@ class BeaconAnimation : animation.animation
end
# Export class directly - no redundant factory function needed
-return {'beacon_animation': BeaconAnimation}
+return {'beacon': beacon}
diff --git a/lib/libesp32/berry_animation/src/animations/breathe.be b/lib/libesp32/berry_animation/src/animations/breathe.be
index abf39ab27..e40ca9b54 100644
--- a/lib/libesp32/berry_animation/src/animations/breathe.be
+++ b/lib/libesp32/berry_animation/src/animations/breathe.be
@@ -10,8 +10,8 @@
import "./core/param_encoder" as encode_constraints
-#@ solidify:BreatheAnimation,weak
-class BreatheAnimation : animation.animation
+#@ solidify:breathe,weak
+class breathe : animation.animation
# Non-parameter instance variables only
var breathe_provider # Internal breathe color provider
@@ -82,12 +82,4 @@ class BreatheAnimation : animation.animation
# The breathe_provider produces the breathing color effect
end
-# Factory method to create a pulsating animation (sine wave, equivalent to old pulse.be)
-def pulsating_animation(engine)
- var anim = animation.breathe_animation(engine)
- anim.curve_factor = 1 # Pure sine wave for pulsing effect
- anim.period = 1000 # Faster default period for pulsing
- return anim
-end
-
-return {'breathe_animation': BreatheAnimation, 'pulsating_animation': pulsating_animation}
+return {'breathe': breathe }
\ No newline at end of file
diff --git a/lib/libesp32/berry_animation/src/animations/comet.be b/lib/libesp32/berry_animation/src/animations/comet.be
index f8ff05698..4d310f0eb 100644
--- a/lib/libesp32/berry_animation/src/animations/comet.be
+++ b/lib/libesp32/berry_animation/src/animations/comet.be
@@ -8,8 +8,8 @@
import "./core/param_encoder" as encode_constraints
-#@ solidify:CometAnimation,weak
-class CometAnimation : animation.animation
+#@ solidify:comet,weak
+class comet : animation.animation
# Non-parameter instance variables only
var head_position # Current position of the comet head (in 1/256th pixels for smooth movement)
@@ -170,4 +170,4 @@ class CometAnimation : animation.animation
end
end
-return {'comet_animation': CometAnimation}
+return {'comet': comet}
diff --git a/lib/libesp32/berry_animation/src/animations/crenel_position.be b/lib/libesp32/berry_animation/src/animations/crenel.be
similarity index 96%
rename from lib/libesp32/berry_animation/src/animations/crenel_position.be
rename to lib/libesp32/berry_animation/src/animations/crenel.be
index 4023dea00..22d918031 100644
--- a/lib/libesp32/berry_animation/src/animations/crenel_position.be
+++ b/lib/libesp32/berry_animation/src/animations/crenel.be
@@ -20,8 +20,8 @@
import "./core/param_encoder" as encode_constraints
-#@ solidify:CrenelPositionAnimation,weak
-class CrenelPositionAnimation : animation.animation
+#@ solidify:crenel,weak
+class crenel : animation.animation
# NO instance variables for parameters - they are handled by the virtual parameter system
# Parameter definitions with constraints
@@ -109,4 +109,4 @@ class CrenelPositionAnimation : animation.animation
# obj.nb_pulse = value
end
-return {'crenel_animation': CrenelPositionAnimation}
+return {'crenel': crenel}
diff --git a/lib/libesp32/berry_animation/src/animations/fire.be b/lib/libesp32/berry_animation/src/animations/fire.be
index c0ff25048..7a23fcf58 100644
--- a/lib/libesp32/berry_animation/src/animations/fire.be
+++ b/lib/libesp32/berry_animation/src/animations/fire.be
@@ -5,8 +5,8 @@
import "./core/param_encoder" as encode_constraints
-#@ solidify:FireAnimation,weak
-class FireAnimation : animation.animation
+#@ solidify:fire,weak
+class fire : animation.animation
# Non-parameter instance variables only
var heat_map # bytes() buffer storing heat values for each pixel (0-255)
var current_colors # bytes() buffer storing ARGB colors (4 bytes per pixel)
@@ -27,6 +27,7 @@ class FireAnimation : animation.animation
#
# @param engine: AnimationEngine - The animation engine (required)
def init(engine)
+ log("ANI: `fire` animation is still in alpha and will be refactored")
# Call parent constructor with engine
super(self).init(engine)
@@ -252,4 +253,4 @@ class FireAnimation : animation.animation
end
end
-return {'fire_animation': FireAnimation}
\ No newline at end of file
+return {'fire': fire}
\ No newline at end of file
diff --git a/lib/libesp32/berry_animation/src/animations/gradient.be b/lib/libesp32/berry_animation/src/animations/gradient.be
index dbe7aab9f..c6e995fa6 100644
--- a/lib/libesp32/berry_animation/src/animations/gradient.be
+++ b/lib/libesp32/berry_animation/src/animations/gradient.be
@@ -1,7 +1,7 @@
# Gradient animation effect for Berry Animation Framework
#
# Creates smooth color gradients between two colors.
-# Reimplemented as a subclass of BeaconAnimation for simplicity.
+# Reimplemented as a subclass of beacon for simplicity.
#
# Parameters:
# - color1: First color (default: red 0xFFFF0000)
@@ -15,8 +15,8 @@
import "./core/param_encoder" as encode_constraints
-#@ solidify:GradientAnimation,weak
-class GradientAnimation : animation.beacon_animation
+#@ solidify:gradient,weak
+class gradient : animation.beacon
# Parameter definitions - gradient-specific parameters
static var PARAMS = animation.enc_params({
"color1": {"default": 0xFFFF0000}, # First color (default red)
@@ -58,6 +58,4 @@ class GradientAnimation : animation.beacon_animation
end
end
-return {
- 'gradient_animation': GradientAnimation
-}
+return { 'gradient': gradient }
\ No newline at end of file
diff --git a/lib/libesp32/berry_animation/src/animations/palette_pattern.be b/lib/libesp32/berry_animation/src/animations/palette_gradient.be
similarity index 97%
rename from lib/libesp32/berry_animation/src/animations/palette_pattern.be
rename to lib/libesp32/berry_animation/src/animations/palette_gradient.be
index 82da653bd..6f52081d0 100644
--- a/lib/libesp32/berry_animation/src/animations/palette_pattern.be
+++ b/lib/libesp32/berry_animation/src/animations/palette_gradient.be
@@ -6,8 +6,8 @@
import "./core/param_encoder" as encode_constraints
# Gradient pattern animation - creates shifting gradient patterns
-#@ solidify:PaletteGradientAnimation,weak
-class PaletteGradientAnimation : animation.animation
+#@ solidify:palette_gradient
+class palette_gradient : animation.animation
var value_buffer # Buffer to store values for each pixel (bytes object)
var _spatial_period # Cached spatial_period for static pattern optimization
var _phase_shift # Cached phase_shift for static pattern optimization
@@ -192,6 +192,4 @@ class PaletteGradientAnimation : animation.animation
end
end
-return {
- 'palette_gradient_animation': PaletteGradientAnimation
-}
\ No newline at end of file
+return { 'palette_gradient': palette_gradient }
\ No newline at end of file
diff --git a/lib/libesp32/berry_animation/src/animations/palette_meter.be b/lib/libesp32/berry_animation/src/animations/palette_meter.be
index d406e1444..6d7af28ab 100644
--- a/lib/libesp32/berry_animation/src/animations/palette_meter.be
+++ b/lib/libesp32/berry_animation/src/animations/palette_meter.be
@@ -1,4 +1,4 @@
-# GradientMeterAnimation - VU meter style animation with palette gradient colors
+# palette_meter - VU meter style animation with palette gradient colors
#
# Displays a gradient-colored bar from the start of the strip up to a level (0-255).
# Includes optional peak hold indicator that shows the maximum level for a configurable time.
@@ -12,22 +12,22 @@
import "./core/param_encoder" as encode_constraints
-#@ solidify:GradientMeterAnimation,weak
-class GradientMeterAnimation : animation.palette_gradient_animation
+#@ solidify:palette_meter,weak
+class palette_meter : animation.palette_gradient
# Instance variables for peak tracking
var peak_level # Current peak level (0-255)
var peak_time # Time when peak was set (ms)
var _level # Cached value for 'self.level'
- # Parameter definitions - extends PaletteGradientAnimation params
+ # Parameter definitions - extends palette_gradient params
static var PARAMS = animation.enc_params({
- # Inherited from PaletteGradientAnimation: color_source, shift_period, spatial_period, phase_shift
+ # Inherited from palette_gradient: color_source, shift_period, spatial_period, phase_shift
# New meter-specific parameters
"level": {"min": 0, "max": 255, "default": 255},
"peak_hold": {"min": 0, "default": 1000} # 0 = disabled, >0 = hold time in ms
})
- # Initialize a new GradientMeterAnimation
+ # Initialize a new palette_meter
def init(engine)
super(self).init(engine)
@@ -138,4 +138,4 @@ class GradientMeterAnimation : animation.palette_gradient_animation
end
end
-return {'palette_meter_animation': GradientMeterAnimation}
+return {'palette_meter': palette_meter}
diff --git a/lib/libesp32/berry_animation/src/animations/rich_palette_animation.be b/lib/libesp32/berry_animation/src/animations/rich_palette.be
similarity index 90%
rename from lib/libesp32/berry_animation/src/animations/rich_palette_animation.be
rename to lib/libesp32/berry_animation/src/animations/rich_palette.be
index 463957648..6efc3f4c9 100644
--- a/lib/libesp32/berry_animation/src/animations/rich_palette_animation.be
+++ b/lib/libesp32/berry_animation/src/animations/rich_palette.be
@@ -1,4 +1,4 @@
-# RichPaletteAnimation - Animation with integrated rich palette color provider
+# rich_palette - Animation with integrated rich palette color provider
#
# This animation class provides direct access to rich palette parameters,
# forwarding them to an internal rich_palette_colornce.
@@ -9,8 +9,8 @@
import "./core/param_encoder" as encode_constraints
-#@ solidify:RichPaletteAnimation,weak
-class RichPaletteAnimation : animation.animation
+#@ solidify:rich_palette,weak
+class rich_palette : animation.animation
# Non-parameter instance variables only
var color_provider # Internal rich_palette_color instance
@@ -23,7 +23,7 @@ class RichPaletteAnimation : animation.animation
"brightness": {"min": 0, "max": 255, "default": 255}
})
- # Initialize a new RichPaletteAnimation
+ # Initialize a new rich_palette
#
# @param engine: AnimationEngine - Reference to the animation engine (required)
def init(engine)
@@ -66,4 +66,4 @@ class RichPaletteAnimation : animation.animation
end
end
-return {'rich_palette_animation': RichPaletteAnimation}
\ No newline at end of file
+return {'rich_palette': rich_palette}
\ No newline at end of file
diff --git a/lib/libesp32/berry_animation/src/animations/wave.be b/lib/libesp32/berry_animation/src/animations/wave.be
index c5482d122..b63dec400 100644
--- a/lib/libesp32/berry_animation/src/animations/wave.be
+++ b/lib/libesp32/berry_animation/src/animations/wave.be
@@ -5,14 +5,14 @@
import "./core/param_encoder" as encode_constraints
-#@ solidify:WaveAnimation,weak
-class WaveAnimation : animation.animation
+#@ solidify:wave,weak
+class wave : animation.animation
# Non-parameter instance variables only
var current_colors # Array of current colors for each pixel
var time_offset # Current time offset for movement
var wave_table # Pre-computed wave table for performance
- # Parameter definitions for WaveAnimation
+ # Parameter definitions for wave
static var PARAMS = animation.enc_params({
"color": {"default": 0xFFFF0000},
"back_color": {"default": 0xFF000000},
@@ -28,6 +28,7 @@ class WaveAnimation : animation.animation
#
# @param engine: AnimationEngine - The animation engine (required)
def init(engine)
+ log("ANI: `wave` animation is still in alpha and will be refactored")
# Call parent constructor
super(self).init(engine)
@@ -206,51 +207,4 @@ class WaveAnimation : animation.animation
end
end
-# Factory functions
-
-# Create a rainbow sine wave animation
-#
-# @param engine: AnimationEngine - The animation engine
-# @return WaveAnimation - A new wave animation instance
-def wave_rainbow_sine(engine)
- var anim = animation.wave_animation(engine)
- # Set up rainbow color provider
- var rainbow_provider = animation.rich_palette_color(engine)
- rainbow_provider.colors = animation.PALETTE_RAINBOW
- rainbow_provider.period = 5000
- rainbow_provider.transition_type = 1 # sine transition
- rainbow_provider.brightness = 255
- anim.color = rainbow_provider
- anim.wave_type = 0 # sine wave
- anim.frequency = 32
- anim.wave_speed = 50
- return anim
-end
-
-# Create a single color sine wave animation
-#
-# @param engine: AnimationEngine - The animation engine
-# @return WaveAnimation - A new wave animation instance
-def wave_single_sine(engine)
- var anim = animation.wave_animation(engine)
- anim.color = 0xFFFF0000 # Default red color
- anim.wave_type = 0 # sine wave
- anim.frequency = 32
- anim.wave_speed = 50
- return anim
-end
-
-# Create a custom wave animation
-#
-# @param engine: AnimationEngine - The animation engine
-# @return WaveAnimation - A new wave animation instance
-def wave_custom(engine)
- var anim = animation.wave_animation(engine)
- anim.color = 0xFFFFFF00 # Default yellow color
- anim.wave_type = 2 # square wave
- anim.frequency = 40
- anim.wave_speed = 30
- return anim
-end
-
-return {'wave_animation': WaveAnimation, 'wave_rainbow_sine': wave_rainbow_sine, 'wave_single_sine': wave_single_sine, 'wave_custom': wave_custom}
\ No newline at end of file
+return {'wave': wave}
\ No newline at end of file
diff --git a/lib/libesp32/berry_animation/src/dsl/symbol_table.be b/lib/libesp32/berry_animation/src/dsl/symbol_table.be
index 91b6aff6f..cd11ff2fe 100644
--- a/lib/libesp32/berry_animation/src/dsl/symbol_table.be
+++ b/lib/libesp32/berry_animation/src/dsl/symbol_table.be
@@ -262,7 +262,7 @@ class SymbolEntry
return _class(name, _class.TYPE_VALUE_PROVIDER, instance, is_builtin)
end
- # Create a symbol entry for an animation constructor (built-in like solid, pulsating_animation)
+ # Create a symbol entry for an animation constructor (built-in like solid, breathe)
static def create_animation_constructor(name, instance, is_builtin)
return _class(name, _class.TYPE_ANIMATION_CONSTRUCTOR, instance, is_builtin)
end
diff --git a/lib/libesp32/berry_animation/src/providers/color_cycle_color_provider.be b/lib/libesp32/berry_animation/src/providers/color_cycle_color_provider.be
index 60627e2a6..ce1e4a3a9 100644
--- a/lib/libesp32/berry_animation/src/providers/color_cycle_color_provider.be
+++ b/lib/libesp32/berry_animation/src/providers/color_cycle_color_provider.be
@@ -1,4 +1,4 @@
-# ColorCycleColorProvider for Berry Animation Framework
+# color_cycle for Berry Animation Framework
#
# This color provider cycles through a list of colors with brutal switching.
# No transitions or interpolation - just instant color changes.
@@ -13,8 +13,8 @@
import "./core/param_encoder" as encode_constraints
-#@ solidify:ColorCycleColorProvider,weak
-class ColorCycleColorProvider : animation.color_provider
+#@ solidify:color_cycle,weak
+class color_cycle : animation.color_provider
# Non-parameter instance variables only
var current_index # Current color index for next functionality
@@ -26,7 +26,7 @@ class ColorCycleColorProvider : animation.color_provider
"palette_size": {"type": "int", "default": 3} # Read-only: number of colors in palette
})
- # Initialize a new ColorCycleColorProvider
+ # Initialize a new color_cycle
#
# @param engine: AnimationEngine - Reference to the animation engine (required)
def init(engine)
@@ -216,4 +216,4 @@ class ColorCycleColorProvider : animation.color_provider
end
end
-return {'color_cycle': ColorCycleColorProvider}
+return {'color_cycle': color_cycle}
diff --git a/lib/libesp32/berry_animation/src/providers/iteration_number_provider.be b/lib/libesp32/berry_animation/src/providers/iteration_number_provider.be
index 06f71e51d..f94e13151 100644
--- a/lib/libesp32/berry_animation/src/providers/iteration_number_provider.be
+++ b/lib/libesp32/berry_animation/src/providers/iteration_number_provider.be
@@ -8,7 +8,7 @@
#
# Usage:
# set iteration = iteration_number()
-# animation pulse = pulsating_animation(color=red, period=2s)
+# animation pulse = breathe(color=red, period=2s)
# pulse.opacity = iteration * 50 + 100 # Brightness increases with each iteration
#
# In sequences:
diff --git a/lib/libesp32/berry_animation/src/solidify/solidified_animation.h b/lib/libesp32/berry_animation/src/solidify/solidified_animation.h
index 297bf6329..ff82db53f 100644
--- a/lib/libesp32/berry_animation/src/solidify/solidified_animation.h
+++ b/lib/libesp32/berry_animation/src/solidify/solidified_animation.h
@@ -3,8 +3,8 @@
* Generated code, don't edit *
\********************************************************************/
#include "be_constobj.h"
-// compact class 'BreatheAnimation' ktab size: 17, total: 21 (saved 32 bytes)
-static const bvalue be_ktab_class_BreatheAnimation[17] = {
+// compact class 'breathe' ktab size: 17, total: 21 (saved 32 bytes)
+static const bvalue be_ktab_class_breathe[17] = {
/* K0 */ be_nested_str_weak(init),
/* K1 */ be_nested_str_weak(breathe_provider),
/* K2 */ be_nested_str_weak(animation),
@@ -25,12 +25,12 @@ static const bvalue be_ktab_class_BreatheAnimation[17] = {
};
-extern const bclass be_class_BreatheAnimation;
+extern const bclass be_class_breathe;
/********************************************************************
** Solidified function: init
********************************************************************/
-be_local_closure(class_BreatheAnimation_init, /* name */
+be_local_closure(class_breathe_init, /* name */
be_nested_proto(
5, /* nstack */
2, /* argc */
@@ -40,7 +40,7 @@ be_local_closure(class_BreatheAnimation_init, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- &be_ktab_class_BreatheAnimation, /* shared constants */
+ &be_ktab_class_breathe, /* shared constants */
be_str_weak(init),
&be_const_str_solidified,
( &(const binstruction[15]) { /* code */
@@ -68,7 +68,7 @@ be_local_closure(class_BreatheAnimation_init, /* name */
/********************************************************************
** Solidified function: start
********************************************************************/
-be_local_closure(class_BreatheAnimation_start, /* name */
+be_local_closure(class_breathe_start, /* name */
be_nested_proto(
6, /* nstack */
2, /* argc */
@@ -78,7 +78,7 @@ be_local_closure(class_BreatheAnimation_start, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- &be_ktab_class_BreatheAnimation, /* shared constants */
+ &be_ktab_class_breathe, /* shared constants */
be_str_weak(start),
&be_const_str_solidified,
( &(const binstruction[18]) { /* code */
@@ -109,7 +109,7 @@ be_local_closure(class_BreatheAnimation_start, /* name */
/********************************************************************
** Solidified function: on_param_changed
********************************************************************/
-be_local_closure(class_BreatheAnimation_on_param_changed, /* name */
+be_local_closure(class_breathe_on_param_changed, /* name */
be_nested_proto(
7, /* nstack */
3, /* argc */
@@ -119,7 +119,7 @@ be_local_closure(class_BreatheAnimation_on_param_changed, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- &be_ktab_class_BreatheAnimation, /* shared constants */
+ &be_ktab_class_breathe, /* shared constants */
be_str_weak(on_param_changed),
&be_const_str_solidified,
( &(const binstruction[40]) { /* code */
@@ -170,17 +170,17 @@ be_local_closure(class_BreatheAnimation_on_param_changed, /* name */
/********************************************************************
-** Solidified class: BreatheAnimation
+** Solidified class: breathe
********************************************************************/
extern const bclass be_class_Animation;
-be_local_class(BreatheAnimation,
+be_local_class(breathe,
1,
&be_class_Animation,
be_nested_map(5,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(init, -1), be_const_closure(class_BreatheAnimation_init_closure) },
- { be_const_key_weak(start, -1), be_const_closure(class_BreatheAnimation_start_closure) },
- { be_const_key_weak(on_param_changed, -1), be_const_closure(class_BreatheAnimation_on_param_changed_closure) },
+ { be_const_key_weak(init, -1), be_const_closure(class_breathe_init_closure) },
+ { be_const_key_weak(start, -1), be_const_closure(class_breathe_start_closure) },
+ { be_const_key_weak(on_param_changed, -1), be_const_closure(class_breathe_on_param_changed_closure) },
{ be_const_key_weak(PARAMS, 4), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(4,
( (struct bmapnode*) &(const bmapnode[]) {
@@ -191,317 +191,7 @@ be_local_class(BreatheAnimation,
})) ) } )) },
{ be_const_key_weak(breathe_provider, -1), be_const_var(0) },
})),
- be_str_weak(BreatheAnimation)
-);
-
-/********************************************************************
-** Solidified function: square
-********************************************************************/
-be_local_closure(square, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(animation),
- /* K1 */ be_nested_str_weak(oscillator_value),
- /* K2 */ be_nested_str_weak(form),
- /* K3 */ be_const_int(3),
- }),
- be_str_weak(square),
- &be_const_str_solidified,
- ( &(const binstruction[ 6]) { /* code */
- 0xB8060000, // 0000 GETNGBL R1 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x5C0C0000, // 0002 MOVE R3 R0
- 0x7C040400, // 0003 CALL R1 2
- 0x90060503, // 0004 SETMBR R1 K2 K3
- 0x80040200, // 0005 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-// compact class 'GradientMeterAnimation' ktab size: 26, total: 34 (saved 64 bytes)
-static const bvalue be_ktab_class_GradientMeterAnimation[26] = {
- /* K0 */ be_nested_str_weak(peak_hold),
- /* K1 */ be_const_int(0),
- /* K2 */ be_nested_str_weak(level),
- /* K3 */ be_nested_str_weak(_level),
- /* K4 */ be_nested_str_weak(peak_level),
- /* K5 */ be_nested_str_weak(peak_time),
- /* K6 */ be_nested_str_weak(update),
- /* K7 */ be_nested_str_weak(get_param),
- /* K8 */ be_nested_str_weak(color_source),
- /* K9 */ be_nested_str_weak(start_time),
- /* K10 */ be_nested_str_weak(tasmota),
- /* K11 */ be_nested_str_weak(scale_uint),
- /* K12 */ be_const_int(1),
- /* K13 */ be_nested_str_weak(animation),
- /* K14 */ be_nested_str_weak(color_provider),
- /* K15 */ be_nested_str_weak(get_lut),
- /* K16 */ be_nested_str_weak(LUT_FACTOR),
- /* K17 */ be_nested_str_weak(pixels),
- /* K18 */ be_nested_str_weak(_buffer),
- /* K19 */ be_nested_str_weak(value_buffer),
- /* K20 */ be_const_int(2),
- /* K21 */ be_const_int(3),
- /* K22 */ be_nested_str_weak(get_color_for_value),
- /* K23 */ be_nested_str_weak(set_pixel_color),
- /* K24 */ be_nested_str_weak(init),
- /* K25 */ be_nested_str_weak(shift_period),
-};
-
-
-extern const bclass be_class_GradientMeterAnimation;
-
-/********************************************************************
-** Solidified function: update
-********************************************************************/
-be_local_closure(class_GradientMeterAnimation_update, /* name */
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_GradientMeterAnimation, /* shared constants */
- be_str_weak(update),
- &be_const_str_solidified,
- ( &(const binstruction[26]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x240C0501, // 0001 GT R3 R2 K1
- 0x780E000F, // 0002 JMPF R3 #0013
- 0x880C0102, // 0003 GETMBR R3 R0 K2
- 0x90020603, // 0004 SETMBR R0 K3 R3
- 0x88100104, // 0005 GETMBR R4 R0 K4
- 0x28140604, // 0006 GE R5 R3 R4
- 0x78160002, // 0007 JMPF R5 #000B
- 0x90020803, // 0008 SETMBR R0 K4 R3
- 0x90020A01, // 0009 SETMBR R0 K5 R1
- 0x70020007, // 000A JMP #0013
- 0x24140901, // 000B GT R5 R4 K1
- 0x78160005, // 000C JMPF R5 #0013
- 0x88140105, // 000D GETMBR R5 R0 K5
- 0x04140205, // 000E SUB R5 R1 R5
- 0x24180A02, // 000F GT R6 R5 R2
- 0x781A0001, // 0010 JMPF R6 #0013
- 0x90020803, // 0011 SETMBR R0 K4 R3
- 0x90020A01, // 0012 SETMBR R0 K5 R1
- 0x600C0003, // 0013 GETGBL R3 G3
- 0x5C100000, // 0014 MOVE R4 R0
- 0x7C0C0200, // 0015 CALL R3 1
- 0x8C0C0706, // 0016 GETMET R3 R3 K6
- 0x5C140200, // 0017 MOVE R5 R1
- 0x7C0C0400, // 0018 CALL R3 2
- 0x80000000, // 0019 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: render
-********************************************************************/
-be_local_closure(class_GradientMeterAnimation_render, /* name */
- be_nested_proto(
- 21, /* nstack */
- 4, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_GradientMeterAnimation, /* shared constants */
- be_str_weak(render),
- &be_const_str_solidified,
- ( &(const binstruction[113]) { /* code */
- 0x8C100107, // 0000 GETMET R4 R0 K7
- 0x58180008, // 0001 LDCONST R6 K8
- 0x7C100400, // 0002 CALL R4 2
- 0x4C140000, // 0003 LDNIL R5
- 0x1C140805, // 0004 EQ R5 R4 R5
- 0x78160001, // 0005 JMPF R5 #0008
- 0x50140000, // 0006 LDBOOL R5 0 0
- 0x80040A00, // 0007 RET 1 R5
- 0x88140109, // 0008 GETMBR R5 R0 K9
- 0x04140405, // 0009 SUB R5 R2 R5
- 0x88180103, // 000A GETMBR R6 R0 K3
- 0x881C0100, // 000B GETMBR R7 R0 K0
- 0xB8221400, // 000C GETNGBL R8 K10
- 0x8C20110B, // 000D GETMET R8 R8 K11
- 0x5C280C00, // 000E MOVE R10 R6
- 0x582C0001, // 000F LDCONST R11 K1
- 0x543200FE, // 0010 LDINT R12 255
- 0x58340001, // 0011 LDCONST R13 K1
- 0x5C380600, // 0012 MOVE R14 R3
- 0x7C200C00, // 0013 CALL R8 6
- 0x5425FFFE, // 0014 LDINT R9 -1
- 0x24280F01, // 0015 GT R10 R7 K1
- 0x782A000C, // 0016 JMPF R10 #0024
- 0x88280104, // 0017 GETMBR R10 R0 K4
- 0x24281406, // 0018 GT R10 R10 R6
- 0x782A0009, // 0019 JMPF R10 #0024
- 0xB82A1400, // 001A GETNGBL R10 K10
- 0x8C28150B, // 001B GETMET R10 R10 K11
- 0x88300104, // 001C GETMBR R12 R0 K4
- 0x58340001, // 001D LDCONST R13 K1
- 0x543A00FE, // 001E LDINT R14 255
- 0x583C0001, // 001F LDCONST R15 K1
- 0x5C400600, // 0020 MOVE R16 R3
- 0x7C280C00, // 0021 CALL R10 6
- 0x0428150C, // 0022 SUB R10 R10 K12
- 0x5C241400, // 0023 MOVE R9 R10
- 0x4C280000, // 0024 LDNIL R10
- 0x602C000F, // 0025 GETGBL R11 G15
- 0x5C300800, // 0026 MOVE R12 R4
- 0xB8361A00, // 0027 GETNGBL R13 K13
- 0x88341B0E, // 0028 GETMBR R13 R13 K14
- 0x7C2C0400, // 0029 CALL R11 2
- 0x782E0028, // 002A JMPF R11 #0054
- 0x8C2C090F, // 002B GETMET R11 R4 K15
- 0x7C2C0200, // 002C CALL R11 1
- 0x5C281600, // 002D MOVE R10 R11
- 0x4C300000, // 002E LDNIL R12
- 0x202C160C, // 002F NE R11 R11 R12
- 0x782E0022, // 0030 JMPF R11 #0054
- 0x882C0910, // 0031 GETMBR R11 R4 K16
- 0x543200FF, // 0032 LDINT R12 256
- 0x3C30180B, // 0033 SHR R12 R12 R11
- 0x58340001, // 0034 LDCONST R13 K1
- 0x88380311, // 0035 GETMBR R14 R1 K17
- 0x8C381D12, // 0036 GETMET R14 R14 K18
- 0x7C380200, // 0037 CALL R14 1
- 0x8C3C1512, // 0038 GETMET R15 R10 K18
- 0x7C3C0200, // 0039 CALL R15 1
- 0x88400113, // 003A GETMBR R16 R0 K19
- 0x8C402112, // 003B GETMET R16 R16 K18
- 0x7C400200, // 003C CALL R16 1
- 0x14441A08, // 003D LT R17 R13 R8
- 0x78460013, // 003E JMPF R17 #0053
- 0x9444200D, // 003F GETIDX R17 R16 R13
- 0x3C48220B, // 0040 SHR R18 R17 R11
- 0x544E00FE, // 0041 LDINT R19 255
- 0x1C4C2213, // 0042 EQ R19 R17 R19
- 0x784E0000, // 0043 JMPF R19 #0045
- 0x5C481800, // 0044 MOVE R18 R12
- 0x384C2514, // 0045 SHL R19 R18 K20
- 0x004C1E13, // 0046 ADD R19 R15 R19
- 0x94502701, // 0047 GETIDX R20 R19 K1
- 0x983A0214, // 0048 SETIDX R14 K1 R20
- 0x9450270C, // 0049 GETIDX R20 R19 K12
- 0x983A1814, // 004A SETIDX R14 K12 R20
- 0x94502714, // 004B GETIDX R20 R19 K20
- 0x983A2814, // 004C SETIDX R14 K20 R20
- 0x94502715, // 004D GETIDX R20 R19 K21
- 0x983A2A14, // 004E SETIDX R14 K21 R20
- 0x00341B0C, // 004F ADD R13 R13 K12
- 0x54520003, // 0050 LDINT R20 4
- 0x00381C14, // 0051 ADD R14 R14 R20
- 0x7001FFE9, // 0052 JMP #003D
- 0x7002000E, // 0053 JMP #0063
- 0x582C0001, // 0054 LDCONST R11 K1
- 0x14301608, // 0055 LT R12 R11 R8
- 0x7832000B, // 0056 JMPF R12 #0063
- 0x88300113, // 0057 GETMBR R12 R0 K19
- 0x9430180B, // 0058 GETIDX R12 R12 R11
- 0x8C340916, // 0059 GETMET R13 R4 K22
- 0x5C3C1800, // 005A MOVE R15 R12
- 0x5C400A00, // 005B MOVE R16 R5
- 0x7C340600, // 005C CALL R13 3
- 0x8C380317, // 005D GETMET R14 R1 K23
- 0x5C401600, // 005E MOVE R16 R11
- 0x5C441A00, // 005F MOVE R17 R13
- 0x7C380600, // 0060 CALL R14 3
- 0x002C170C, // 0061 ADD R11 R11 K12
- 0x7001FFF1, // 0062 JMP #0055
- 0x282C1208, // 0063 GE R11 R9 R8
- 0x782E0009, // 0064 JMPF R11 #006F
- 0x882C0113, // 0065 GETMBR R11 R0 K19
- 0x942C1609, // 0066 GETIDX R11 R11 R9
- 0x8C300916, // 0067 GETMET R12 R4 K22
- 0x5C381600, // 0068 MOVE R14 R11
- 0x5C3C0A00, // 0069 MOVE R15 R5
- 0x7C300600, // 006A CALL R12 3
- 0x8C340317, // 006B GETMET R13 R1 K23
- 0x5C3C1200, // 006C MOVE R15 R9
- 0x5C401800, // 006D MOVE R16 R12
- 0x7C340600, // 006E CALL R13 3
- 0x502C0200, // 006F LDBOOL R11 1 0
- 0x80041600, // 0070 RET 1 R11
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(class_GradientMeterAnimation_init, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_GradientMeterAnimation, /* shared constants */
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[11]) { /* code */
- 0x60080003, // 0000 GETGBL R2 G3
- 0x5C0C0000, // 0001 MOVE R3 R0
- 0x7C080200, // 0002 CALL R2 1
- 0x8C080518, // 0003 GETMET R2 R2 K24
- 0x5C100200, // 0004 MOVE R4 R1
- 0x7C080400, // 0005 CALL R2 2
- 0x90020901, // 0006 SETMBR R0 K4 K1
- 0x90020B01, // 0007 SETMBR R0 K5 K1
- 0x90020701, // 0008 SETMBR R0 K3 K1
- 0x90023301, // 0009 SETMBR R0 K25 K1
- 0x80000000, // 000A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: GradientMeterAnimation
-********************************************************************/
-extern const bclass be_class_PaletteGradientAnimation;
-be_local_class(GradientMeterAnimation,
- 3,
- &be_class_PaletteGradientAnimation,
- be_nested_map(7,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(peak_time, -1), be_const_var(1) },
- { be_const_key_weak(_level, 6), be_const_var(2) },
- { be_const_key_weak(init, 3), be_const_closure(class_GradientMeterAnimation_init_closure) },
- { be_const_key_weak(PARAMS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(2,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(peak_hold, -1), be_const_bytes_instance(05000001E803) },
- { be_const_key_weak(level, -1), be_const_bytes_instance(07000001FF0001FF00) },
- })) ) } )) },
- { be_const_key_weak(peak_level, -1), be_const_var(0) },
- { be_const_key_weak(render, 2), be_const_closure(class_GradientMeterAnimation_render_closure) },
- { be_const_key_weak(update, -1), be_const_closure(class_GradientMeterAnimation_update_closure) },
- })),
- be_str_weak(GradientMeterAnimation)
+ be_str_weak(breathe)
);
/********************************************************************
@@ -1052,8 +742,8 @@ be_local_closure(unregister_event_handler, /* name */
);
/*******************************************************************/
-// compact class 'ColorCycleColorProvider' ktab size: 24, total: 48 (saved 192 bytes)
-static const bvalue be_ktab_class_ColorCycleColorProvider[24] = {
+// compact class 'color_cycle' ktab size: 24, total: 48 (saved 192 bytes)
+static const bvalue be_ktab_class_color_cycle[24] = {
/* K0 */ be_nested_str_weak(colors),
/* K1 */ be_const_int(0),
/* K2 */ be_nested_str_weak(get),
@@ -1081,12 +771,12 @@ static const bvalue be_ktab_class_ColorCycleColorProvider[24] = {
};
-extern const bclass be_class_ColorCycleColorProvider;
+extern const bclass be_class_color_cycle;
/********************************************************************
** Solidified function: _get_color_at_index
********************************************************************/
-be_local_closure(class_ColorCycleColorProvider__get_color_at_index, /* name */
+be_local_closure(class_color_cycle__get_color_at_index, /* name */
be_nested_proto(
8, /* nstack */
2, /* argc */
@@ -1096,7 +786,7 @@ be_local_closure(class_ColorCycleColorProvider__get_color_at_index, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- &be_ktab_class_ColorCycleColorProvider, /* shared constants */
+ &be_ktab_class_color_cycle, /* shared constants */
be_str_weak(_get_color_at_index),
&be_const_str_solidified,
( &(const binstruction[20]) { /* code */
@@ -1129,7 +819,7 @@ be_local_closure(class_ColorCycleColorProvider__get_color_at_index, /* name */
/********************************************************************
** Solidified function: member
********************************************************************/
-be_local_closure(class_ColorCycleColorProvider_member, /* name */
+be_local_closure(class_color_cycle_member, /* name */
be_nested_proto(
5, /* nstack */
2, /* argc */
@@ -1139,7 +829,7 @@ be_local_closure(class_ColorCycleColorProvider_member, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- &be_ktab_class_ColorCycleColorProvider, /* shared constants */
+ &be_ktab_class_color_cycle, /* shared constants */
be_str_weak(member),
&be_const_str_solidified,
( &(const binstruction[21]) { /* code */
@@ -1173,7 +863,7 @@ be_local_closure(class_ColorCycleColorProvider_member, /* name */
/********************************************************************
** Solidified function: produce_value
********************************************************************/
-be_local_closure(class_ColorCycleColorProvider_produce_value, /* name */
+be_local_closure(class_color_cycle_produce_value, /* name */
be_nested_proto(
13, /* nstack */
3, /* argc */
@@ -1183,7 +873,7 @@ be_local_closure(class_ColorCycleColorProvider_produce_value, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- &be_ktab_class_ColorCycleColorProvider, /* shared constants */
+ &be_ktab_class_color_cycle, /* shared constants */
be_str_weak(produce_value),
&be_const_str_solidified,
( &(const binstruction[56]) { /* code */
@@ -1252,7 +942,7 @@ be_local_closure(class_ColorCycleColorProvider_produce_value, /* name */
/********************************************************************
** Solidified function: _adjust_index
********************************************************************/
-be_local_closure(class_ColorCycleColorProvider__adjust_index, /* name */
+be_local_closure(class_color_cycle__adjust_index, /* name */
be_nested_proto(
4, /* nstack */
1, /* argc */
@@ -1262,7 +952,7 @@ be_local_closure(class_ColorCycleColorProvider__adjust_index, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- &be_ktab_class_ColorCycleColorProvider, /* shared constants */
+ &be_ktab_class_color_cycle, /* shared constants */
be_str_weak(_adjust_index),
&be_const_str_solidified,
( &(const binstruction[16]) { /* code */
@@ -1291,7 +981,7 @@ be_local_closure(class_ColorCycleColorProvider__adjust_index, /* name */
/********************************************************************
** Solidified function: init
********************************************************************/
-be_local_closure(class_ColorCycleColorProvider_init, /* name */
+be_local_closure(class_color_cycle_init, /* name */
be_nested_proto(
5, /* nstack */
2, /* argc */
@@ -1301,7 +991,7 @@ be_local_closure(class_ColorCycleColorProvider_init, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- &be_ktab_class_ColorCycleColorProvider, /* shared constants */
+ &be_ktab_class_color_cycle, /* shared constants */
be_str_weak(init),
&be_const_str_solidified,
( &(const binstruction[12]) { /* code */
@@ -1326,7 +1016,7 @@ be_local_closure(class_ColorCycleColorProvider_init, /* name */
/********************************************************************
** Solidified function: on_param_changed
********************************************************************/
-be_local_closure(class_ColorCycleColorProvider_on_param_changed, /* name */
+be_local_closure(class_color_cycle_on_param_changed, /* name */
be_nested_proto(
7, /* nstack */
3, /* argc */
@@ -1336,7 +1026,7 @@ be_local_closure(class_ColorCycleColorProvider_on_param_changed, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- &be_ktab_class_ColorCycleColorProvider, /* shared constants */
+ &be_ktab_class_color_cycle, /* shared constants */
be_str_weak(on_param_changed),
&be_const_str_solidified,
( &(const binstruction[27]) { /* code */
@@ -1376,7 +1066,7 @@ be_local_closure(class_ColorCycleColorProvider_on_param_changed, /* name */
/********************************************************************
** Solidified function: _get_palette_size
********************************************************************/
-be_local_closure(class_ColorCycleColorProvider__get_palette_size, /* name */
+be_local_closure(class_color_cycle__get_palette_size, /* name */
be_nested_proto(
3, /* nstack */
1, /* argc */
@@ -1386,7 +1076,7 @@ be_local_closure(class_ColorCycleColorProvider__get_palette_size, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- &be_ktab_class_ColorCycleColorProvider, /* shared constants */
+ &be_ktab_class_color_cycle, /* shared constants */
be_str_weak(_get_palette_size),
&be_const_str_solidified,
( &(const binstruction[ 6]) { /* code */
@@ -1405,7 +1095,7 @@ be_local_closure(class_ColorCycleColorProvider__get_palette_size, /* name */
/********************************************************************
** Solidified function: get_color_for_value
********************************************************************/
-be_local_closure(class_ColorCycleColorProvider_get_color_for_value, /* name */
+be_local_closure(class_color_cycle_get_color_for_value, /* name */
be_nested_proto(
11, /* nstack */
3, /* argc */
@@ -1415,7 +1105,7 @@ be_local_closure(class_ColorCycleColorProvider_get_color_for_value, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- &be_ktab_class_ColorCycleColorProvider, /* shared constants */
+ &be_ktab_class_color_cycle, /* shared constants */
be_str_weak(get_color_for_value),
&be_const_str_solidified,
( &(const binstruction[53]) { /* code */
@@ -1479,21 +1169,21 @@ be_local_closure(class_ColorCycleColorProvider_get_color_for_value, /* name */
/********************************************************************
-** Solidified class: ColorCycleColorProvider
+** Solidified class: color_cycle
********************************************************************/
extern const bclass be_class_color_provider;
-be_local_class(ColorCycleColorProvider,
+be_local_class(color_cycle,
1,
&be_class_color_provider,
be_nested_map(10,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(produce_value, -1), be_const_closure(class_ColorCycleColorProvider_produce_value_closure) },
- { be_const_key_weak(member, -1), be_const_closure(class_ColorCycleColorProvider_member_closure) },
- { be_const_key_weak(_get_palette_size, -1), be_const_closure(class_ColorCycleColorProvider__get_palette_size_closure) },
- { be_const_key_weak(_get_color_at_index, 8), be_const_closure(class_ColorCycleColorProvider__get_color_at_index_closure) },
- { be_const_key_weak(_adjust_index, 2), be_const_closure(class_ColorCycleColorProvider__adjust_index_closure) },
- { be_const_key_weak(init, -1), be_const_closure(class_ColorCycleColorProvider_init_closure) },
- { be_const_key_weak(on_param_changed, -1), be_const_closure(class_ColorCycleColorProvider_on_param_changed_closure) },
+ { be_const_key_weak(produce_value, -1), be_const_closure(class_color_cycle_produce_value_closure) },
+ { be_const_key_weak(member, -1), be_const_closure(class_color_cycle_member_closure) },
+ { be_const_key_weak(_get_palette_size, -1), be_const_closure(class_color_cycle__get_palette_size_closure) },
+ { be_const_key_weak(_get_color_at_index, 8), be_const_closure(class_color_cycle__get_color_at_index_closure) },
+ { be_const_key_weak(_adjust_index, 2), be_const_closure(class_color_cycle__adjust_index_closure) },
+ { be_const_key_weak(init, -1), be_const_closure(class_color_cycle_init_closure) },
+ { be_const_key_weak(on_param_changed, -1), be_const_closure(class_color_cycle_on_param_changed_closure) },
{ be_const_key_weak(current_index, 6), be_const_var(0) },
{ be_const_key_weak(PARAMS, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(4,
@@ -1503,9 +1193,9 @@ be_local_class(ColorCycleColorProvider,
{ be_const_key_weak(palette_size, 3), be_const_bytes_instance(0C000300) },
{ be_const_key_weak(next, -1), be_const_bytes_instance(040000) },
})) ) } )) },
- { be_const_key_weak(get_color_for_value, -1), be_const_closure(class_ColorCycleColorProvider_get_color_for_value_closure) },
+ { be_const_key_weak(get_color_for_value, -1), be_const_closure(class_color_cycle_get_color_for_value_closure) },
})),
- be_str_weak(ColorCycleColorProvider)
+ be_str_weak(color_cycle)
);
extern const bclass be_class_AnimationMath;
// compact class 'AnimationMath' ktab size: 13, total: 31 (saved 144 bytes)
@@ -2372,264 +2062,6 @@ be_local_class(color_provider,
})),
be_str_weak(color_provider)
);
-
-extern const bclass be_class_GradientAnimation;
-
-/********************************************************************
-** Solidified function: render
-********************************************************************/
-be_local_closure(class_GradientAnimation_render, /* name */
- be_nested_proto(
- 13, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[14]) { /* constants */
- /* K0 */ be_nested_str_weak(color1),
- /* K1 */ be_nested_str_weak(color2),
- /* K2 */ be_nested_str_weak(direction),
- /* K3 */ be_nested_str_weak(gradient_type),
- /* K4 */ be_nested_str_weak(color),
- /* K5 */ be_nested_str_weak(back_color),
- /* K6 */ be_const_int(1),
- /* K7 */ be_const_int(2),
- /* K8 */ be_nested_str_weak(pos),
- /* K9 */ be_nested_str_weak(beacon_size),
- /* K10 */ be_nested_str_weak(slew_size),
- /* K11 */ be_const_int(0),
- /* K12 */ be_nested_str_weak(right_edge),
- /* K13 */ be_nested_str_weak(render),
- }),
- be_str_weak(render),
- &be_const_str_solidified,
- ( &(const binstruction[45]) { /* code */
- 0x88100100, // 0000 GETMBR R4 R0 K0
- 0x88140101, // 0001 GETMBR R5 R0 K1
- 0x88180102, // 0002 GETMBR R6 R0 K2
- 0x881C0103, // 0003 GETMBR R7 R0 K3
- 0x781A0002, // 0004 JMPF R6 #0008
- 0x90020805, // 0005 SETMBR R0 K4 R5
- 0x90020A04, // 0006 SETMBR R0 K5 R4
- 0x70020001, // 0007 JMP #000A
- 0x90020804, // 0008 SETMBR R0 K4 R4
- 0x90020A05, // 0009 SETMBR R0 K5 R5
- 0x781E000E, // 000A JMPF R7 #001A
- 0x04200706, // 000B SUB R8 R3 K6
- 0x0C201107, // 000C DIV R8 R8 K7
- 0x90021008, // 000D SETMBR R0 K8 R8
- 0x04260C03, // 000E SUB R9 K6 R3
- 0x2C241306, // 000F AND R9 R9 K6
- 0x00260C09, // 0010 ADD R9 K6 R9
- 0x90021209, // 0011 SETMBR R0 K9 R9
- 0x2424110B, // 0012 GT R9 R8 K11
- 0x78260001, // 0013 JMPF R9 #0016
- 0x04241106, // 0014 SUB R9 R8 K6
- 0x70020000, // 0015 JMP #0017
- 0x5824000B, // 0016 LDCONST R9 K11
- 0x90021409, // 0017 SETMBR R0 K10 R9
- 0x9002190B, // 0018 SETMBR R0 K12 K11
- 0x70020009, // 0019 JMP #0024
- 0x9002110B, // 001A SETMBR R0 K8 K11
- 0x542203E7, // 001B LDINT R8 1000
- 0x90021208, // 001C SETMBR R0 K9 R8
- 0x24200706, // 001D GT R8 R3 K6
- 0x78220001, // 001E JMPF R8 #0021
- 0x04200707, // 001F SUB R8 R3 K7
- 0x70020000, // 0020 JMP #0022
- 0x5820000B, // 0021 LDCONST R8 K11
- 0x90021408, // 0022 SETMBR R0 K10 R8
- 0x90021906, // 0023 SETMBR R0 K12 K6
- 0x60200003, // 0024 GETGBL R8 G3
- 0x5C240000, // 0025 MOVE R9 R0
- 0x7C200200, // 0026 CALL R8 1
- 0x8C20110D, // 0027 GETMET R8 R8 K13
- 0x5C280200, // 0028 MOVE R10 R1
- 0x5C2C0400, // 0029 MOVE R11 R2
- 0x5C300600, // 002A MOVE R12 R3
- 0x7C200800, // 002B CALL R8 4
- 0x80041000, // 002C RET 1 R8
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: GradientAnimation
-********************************************************************/
-extern const bclass be_class_BeaconAnimation;
-be_local_class(GradientAnimation,
- 0,
- &be_class_BeaconAnimation,
- be_nested_map(2,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(render, -1), be_const_closure(class_GradientAnimation_render_closure) },
- { be_const_key_weak(PARAMS, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(4,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(color2, -1), be_const_bytes_instance(0402FF0000FF) },
- { be_const_key_weak(gradient_type, 0), be_const_bytes_instance(1400000200000001) },
- { be_const_key_weak(direction, 1), be_const_bytes_instance(1400000200000001) },
- { be_const_key_weak(color1, -1), be_const_bytes_instance(04020000FFFF) },
- })) ) } )) },
- })),
- be_str_weak(GradientAnimation)
-);
-// compact class 'EventHandler' ktab size: 7, total: 11 (saved 32 bytes)
-static const bvalue be_ktab_class_EventHandler[7] = {
- /* K0 */ be_nested_str_weak(is_active),
- /* K1 */ be_nested_str_weak(condition),
- /* K2 */ be_nested_str_weak(callback_func),
- /* K3 */ be_nested_str_weak(event_name),
- /* K4 */ be_nested_str_weak(priority),
- /* K5 */ be_const_int(0),
- /* K6 */ be_nested_str_weak(metadata),
-};
-
-
-extern const bclass be_class_EventHandler;
-
-/********************************************************************
-** Solidified function: set_active
-********************************************************************/
-be_local_closure(class_EventHandler_set_active, /* name */
- be_nested_proto(
- 2, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_EventHandler, /* shared constants */
- be_str_weak(set_active),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x90020001, // 0000 SETMBR R0 K0 R1
- 0x80000000, // 0001 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: execute
-********************************************************************/
-be_local_closure(class_EventHandler_execute, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_EventHandler, /* shared constants */
- be_str_weak(execute),
- &be_const_str_solidified,
- ( &(const binstruction[25]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x740A0001, // 0001 JMPT R2 #0004
- 0x50080000, // 0002 LDBOOL R2 0 0
- 0x80040400, // 0003 RET 1 R2
- 0x88080101, // 0004 GETMBR R2 R0 K1
- 0x4C0C0000, // 0005 LDNIL R3
- 0x20080403, // 0006 NE R2 R2 R3
- 0x780A0005, // 0007 JMPF R2 #000E
- 0x8C080101, // 0008 GETMET R2 R0 K1
- 0x5C100200, // 0009 MOVE R4 R1
- 0x7C080400, // 000A CALL R2 2
- 0x740A0001, // 000B JMPT R2 #000E
- 0x50080000, // 000C LDBOOL R2 0 0
- 0x80040400, // 000D RET 1 R2
- 0x88080102, // 000E GETMBR R2 R0 K2
- 0x4C0C0000, // 000F LDNIL R3
- 0x20080403, // 0010 NE R2 R2 R3
- 0x780A0004, // 0011 JMPF R2 #0017
- 0x8C080102, // 0012 GETMET R2 R0 K2
- 0x5C100200, // 0013 MOVE R4 R1
- 0x7C080400, // 0014 CALL R2 2
- 0x50080200, // 0015 LDBOOL R2 1 0
- 0x80040400, // 0016 RET 1 R2
- 0x50080000, // 0017 LDBOOL R2 0 0
- 0x80040400, // 0018 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(class_EventHandler_init, /* name */
- be_nested_proto(
- 7, /* nstack */
- 6, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_EventHandler, /* shared constants */
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[21]) { /* code */
- 0x90020601, // 0000 SETMBR R0 K3 R1
- 0x90020402, // 0001 SETMBR R0 K2 R2
- 0x4C180000, // 0002 LDNIL R6
- 0x20180606, // 0003 NE R6 R3 R6
- 0x781A0001, // 0004 JMPF R6 #0007
- 0x5C180600, // 0005 MOVE R6 R3
- 0x70020000, // 0006 JMP #0008
- 0x58180005, // 0007 LDCONST R6 K5
- 0x90020806, // 0008 SETMBR R0 K4 R6
- 0x90020204, // 0009 SETMBR R0 K1 R4
- 0x50180200, // 000A LDBOOL R6 1 0
- 0x90020006, // 000B SETMBR R0 K0 R6
- 0x4C180000, // 000C LDNIL R6
- 0x20180A06, // 000D NE R6 R5 R6
- 0x781A0001, // 000E JMPF R6 #0011
- 0x5C180A00, // 000F MOVE R6 R5
- 0x70020001, // 0010 JMP #0013
- 0x60180013, // 0011 GETGBL R6 G19
- 0x7C180000, // 0012 CALL R6 0
- 0x90020C06, // 0013 SETMBR R0 K6 R6
- 0x80000000, // 0014 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: EventHandler
-********************************************************************/
-be_local_class(EventHandler,
- 6,
- NULL,
- be_nested_map(9,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(set_active, -1), be_const_closure(class_EventHandler_set_active_closure) },
- { be_const_key_weak(execute, 2), be_const_closure(class_EventHandler_execute_closure) },
- { be_const_key_weak(callback_func, -1), be_const_var(1) },
- { be_const_key_weak(init, -1), be_const_closure(class_EventHandler_init_closure) },
- { be_const_key_weak(event_name, -1), be_const_var(0) },
- { be_const_key_weak(condition, -1), be_const_var(2) },
- { be_const_key_weak(priority, 3), be_const_var(3) },
- { be_const_key_weak(metadata, -1), be_const_var(5) },
- { be_const_key_weak(is_active, -1), be_const_var(4) },
- })),
- be_str_weak(EventHandler)
-);
// compact class 'rich_palette_color' ktab size: 55, total: 123 (saved 544 bytes)
static const bvalue be_ktab_class_rich_palette_color[55] = {
/* K0 */ be_nested_str_weak(_value_arr),
@@ -3821,148 +3253,129 @@ be_local_class(rich_palette_color,
})),
be_str_weak(rich_palette_color)
);
+// compact class 'twinkle' ktab size: 33, total: 54 (saved 168 bytes)
+static const bvalue be_ktab_class_twinkle[33] = {
+ /* K0 */ be_const_int(0),
+ /* K1 */ be_nested_str_weak(_random),
+ /* K2 */ be_nested_str_weak(current_colors),
+ /* K3 */ be_nested_str_weak(size),
+ /* K4 */ be_nested_str_weak(_initialize_arrays),
+ /* K5 */ be_nested_str_weak(width),
+ /* K6 */ be_nested_str_weak(get),
+ /* K7 */ be_nested_str_weak(set_pixel_color),
+ /* K8 */ be_const_int(1),
+ /* K9 */ be_nested_str_weak(twinkle_speed),
+ /* K10 */ be_nested_str_weak(last_update),
+ /* K11 */ be_nested_str_weak(_update_twinkle_simulation),
+ /* K12 */ be_nested_str_weak(random_seed),
+ /* K13 */ be_const_int(1103515245),
+ /* K14 */ be_const_int(2147483647),
+ /* K15 */ be_nested_str_weak(engine),
+ /* K16 */ be_nested_str_weak(strip_length),
+ /* K17 */ be_nested_str_weak(clear),
+ /* K18 */ be_nested_str_weak(resize),
+ /* K19 */ be_nested_str_weak(set),
+ /* K20 */ be_nested_str_weak(on_param_changed),
+ /* K21 */ be_nested_str_weak(set_param),
+ /* K22 */ be_nested_str_weak(init),
+ /* K23 */ be_nested_str_weak(time_ms),
+ /* K24 */ be_nested_str_weak(fade_speed),
+ /* K25 */ be_nested_str_weak(density),
+ /* K26 */ be_nested_str_weak(min_brightness),
+ /* K27 */ be_nested_str_weak(max_brightness),
+ /* K28 */ be_nested_str_weak(color),
+ /* K29 */ be_nested_str_weak(tasmota),
+ /* K30 */ be_nested_str_weak(scale_uint),
+ /* K31 */ be_const_int(16777215),
+ /* K32 */ be_nested_str_weak(_random_range),
+};
+
+
+extern const bclass be_class_twinkle;
+
+/********************************************************************
+** Solidified function: _random_range
+********************************************************************/
+be_local_closure(class_twinkle__random_range, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_twinkle, /* shared constants */
+ be_str_weak(_random_range),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0x18080300, // 0000 LE R2 R1 K0
+ 0x780A0000, // 0001 JMPF R2 #0003
+ 0x80060000, // 0002 RET 1 K0
+ 0x8C080101, // 0003 GETMET R2 R0 K1
+ 0x7C080200, // 0004 CALL R2 1
+ 0x10080401, // 0005 MOD R2 R2 R1
+ 0x80040400, // 0006 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
-extern const bclass be_class_BeaconAnimation;
/********************************************************************
** Solidified function: render
********************************************************************/
-be_local_closure(class_BeaconAnimation_render, /* name */
+be_local_closure(class_twinkle_render, /* name */
be_nested_proto(
- 25, /* nstack */
+ 11, /* nstack */
4, /* argc */
- 2, /* varg */
+ 10, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- ( &(const bvalue[15]) { /* constants */
- /* K0 */ be_nested_str_weak(back_color),
- /* K1 */ be_nested_str_weak(pos),
- /* K2 */ be_nested_str_weak(slew_size),
- /* K3 */ be_nested_str_weak(beacon_size),
- /* K4 */ be_nested_str_weak(color),
- /* K5 */ be_nested_str_weak(right_edge),
- /* K6 */ be_const_int(-16777216),
- /* K7 */ be_const_int(0),
- /* K8 */ be_nested_str_weak(fill_pixels),
- /* K9 */ be_nested_str_weak(pixels),
- /* K10 */ be_const_int(1),
- /* K11 */ be_nested_str_weak(tasmota),
- /* K12 */ be_nested_str_weak(scale_int),
- /* K13 */ be_nested_str_weak(blend_linear),
- /* K14 */ be_nested_str_weak(set_pixel_color),
- }),
+ &be_ktab_class_twinkle, /* shared constants */
be_str_weak(render),
&be_const_str_solidified,
- ( &(const binstruction[106]) { /* code */
- 0x88100100, // 0000 GETMBR R4 R0 K0
- 0x88140101, // 0001 GETMBR R5 R0 K1
- 0x88180102, // 0002 GETMBR R6 R0 K2
- 0x881C0103, // 0003 GETMBR R7 R0 K3
- 0x88200104, // 0004 GETMBR R8 R0 K4
- 0x88240105, // 0005 GETMBR R9 R0 K5
- 0x20280906, // 0006 NE R10 R4 K6
- 0x782A0006, // 0007 JMPF R10 #000F
- 0x2C280906, // 0008 AND R10 R4 K6
- 0x20281507, // 0009 NE R10 R10 K7
- 0x782A0003, // 000A JMPF R10 #000F
- 0x8C280308, // 000B GETMET R10 R1 K8
- 0x88300309, // 000C GETMBR R12 R1 K9
- 0x5C340800, // 000D MOVE R13 R4
- 0x7C280600, // 000E CALL R10 3
- 0x4C280000, // 000F LDNIL R10
- 0x1C2C130A, // 0010 EQ R11 R9 K10
- 0x782E0003, // 0011 JMPF R11 #0016
- 0x042C0A07, // 0012 SUB R11 R5 R7
- 0x002C170A, // 0013 ADD R11 R11 K10
- 0x5C281600, // 0014 MOVE R10 R11
- 0x70020000, // 0015 JMP #0017
- 0x5C280A00, // 0016 MOVE R10 R5
- 0x5C2C1400, // 0017 MOVE R11 R10
- 0x00301407, // 0018 ADD R12 R10 R7
- 0x14341707, // 0019 LT R13 R11 K7
- 0x78360000, // 001A JMPF R13 #001C
- 0x582C0007, // 001B LDCONST R11 K7
- 0x28341803, // 001C GE R13 R12 R3
- 0x78360000, // 001D JMPF R13 #001F
- 0x5C300600, // 001E MOVE R12 R3
- 0x8C340308, // 001F GETMET R13 R1 K8
- 0x883C0309, // 0020 GETMBR R15 R1 K9
- 0x5C401000, // 0021 MOVE R16 R8
- 0x5C441600, // 0022 MOVE R17 R11
- 0x5C481800, // 0023 MOVE R18 R12
- 0x7C340A00, // 0024 CALL R13 5
- 0x4C340000, // 0025 LDNIL R13
- 0x24380D07, // 0026 GT R14 R6 K7
- 0x783A003F, // 0027 JMPF R14 #0068
- 0x04381406, // 0028 SUB R14 R10 R6
- 0x5C3C1400, // 0029 MOVE R15 R10
- 0x14401D07, // 002A LT R16 R14 K7
- 0x78420000, // 002B JMPF R16 #002D
- 0x58380007, // 002C LDCONST R14 K7
- 0x28401E03, // 002D GE R16 R15 R3
- 0x78420000, // 002E JMPF R16 #0030
- 0x5C3C0600, // 002F MOVE R15 R3
- 0x5C341C00, // 0030 MOVE R13 R14
- 0x14401A0F, // 0031 LT R16 R13 R15
- 0x78420013, // 0032 JMPF R16 #0047
- 0xB8421600, // 0033 GETNGBL R16 K11
- 0x8C40210C, // 0034 GETMET R16 R16 K12
- 0x5C481A00, // 0035 MOVE R18 R13
- 0x044C1406, // 0036 SUB R19 R10 R6
- 0x044C270A, // 0037 SUB R19 R19 K10
- 0x5C501400, // 0038 MOVE R20 R10
- 0x545600FE, // 0039 LDINT R21 255
- 0x58580007, // 003A LDCONST R22 K7
- 0x7C400C00, // 003B CALL R16 6
- 0x8C44030D, // 003C GETMET R17 R1 K13
- 0x5C4C0800, // 003D MOVE R19 R4
- 0x5C501000, // 003E MOVE R20 R8
- 0x5C542000, // 003F MOVE R21 R16
- 0x7C440800, // 0040 CALL R17 4
- 0x8C48030E, // 0041 GETMET R18 R1 K14
- 0x5C501A00, // 0042 MOVE R20 R13
- 0x5C542200, // 0043 MOVE R21 R17
- 0x7C480600, // 0044 CALL R18 3
- 0x00341B0A, // 0045 ADD R13 R13 K10
- 0x7001FFE9, // 0046 JMP #0031
- 0x00401407, // 0047 ADD R16 R10 R7
- 0x00441407, // 0048 ADD R17 R10 R7
- 0x00442206, // 0049 ADD R17 R17 R6
- 0x14482107, // 004A LT R18 R16 K7
- 0x784A0000, // 004B JMPF R18 #004D
- 0x58400007, // 004C LDCONST R16 K7
- 0x28482203, // 004D GE R18 R17 R3
- 0x784A0000, // 004E JMPF R18 #0050
- 0x5C440600, // 004F MOVE R17 R3
- 0x5C342000, // 0050 MOVE R13 R16
- 0x14481A11, // 0051 LT R18 R13 R17
- 0x784A0014, // 0052 JMPF R18 #0068
- 0xB84A1600, // 0053 GETNGBL R18 K11
- 0x8C48250C, // 0054 GETMET R18 R18 K12
- 0x5C501A00, // 0055 MOVE R20 R13
- 0x00541407, // 0056 ADD R21 R10 R7
- 0x04542B0A, // 0057 SUB R21 R21 K10
- 0x00581407, // 0058 ADD R22 R10 R7
- 0x00582C06, // 0059 ADD R22 R22 R6
- 0x585C0007, // 005A LDCONST R23 K7
- 0x546200FE, // 005B LDINT R24 255
- 0x7C480C00, // 005C CALL R18 6
- 0x8C4C030D, // 005D GETMET R19 R1 K13
- 0x5C540800, // 005E MOVE R21 R4
- 0x5C581000, // 005F MOVE R22 R8
- 0x5C5C2400, // 0060 MOVE R23 R18
- 0x7C4C0800, // 0061 CALL R19 4
- 0x8C50030E, // 0062 GETMET R20 R1 K14
- 0x5C581A00, // 0063 MOVE R22 R13
- 0x5C5C2600, // 0064 MOVE R23 R19
- 0x7C500600, // 0065 CALL R20 3
- 0x00341B0A, // 0066 ADD R13 R13 K10
- 0x7001FFE8, // 0067 JMP #0051
- 0x50380200, // 0068 LDBOOL R14 1 0
- 0x80041C00, // 0069 RET 1 R14
+ ( &(const binstruction[36]) { /* code */
+ 0x88100102, // 0000 GETMBR R4 R0 K2
+ 0x8C100903, // 0001 GETMET R4 R4 K3
+ 0x7C100200, // 0002 CALL R4 1
+ 0x54160003, // 0003 LDINT R5 4
+ 0x08140605, // 0004 MUL R5 R3 R5
+ 0x20100805, // 0005 NE R4 R4 R5
+ 0x78120001, // 0006 JMPF R4 #0009
+ 0x8C100104, // 0007 GETMET R4 R0 K4
+ 0x7C100200, // 0008 CALL R4 1
+ 0x50100000, // 0009 LDBOOL R4 0 0
+ 0x58140000, // 000A LDCONST R5 K0
+ 0x14180A03, // 000B LT R6 R5 R3
+ 0x781A0015, // 000C JMPF R6 #0023
+ 0x88180305, // 000D GETMBR R6 R1 K5
+ 0x14180A06, // 000E LT R6 R5 R6
+ 0x781A0010, // 000F JMPF R6 #0021
+ 0x88180102, // 0010 GETMBR R6 R0 K2
+ 0x8C180D06, // 0011 GETMET R6 R6 K6
+ 0x54220003, // 0012 LDINT R8 4
+ 0x08200A08, // 0013 MUL R8 R5 R8
+ 0x5425FFFB, // 0014 LDINT R9 -4
+ 0x7C180600, // 0015 CALL R6 3
+ 0x541E0017, // 0016 LDINT R7 24
+ 0x3C1C0C07, // 0017 SHR R7 R6 R7
+ 0x542200FE, // 0018 LDINT R8 255
+ 0x2C1C0E08, // 0019 AND R7 R7 R8
+ 0x241C0F00, // 001A GT R7 R7 K0
+ 0x781E0004, // 001B JMPF R7 #0021
+ 0x8C1C0307, // 001C GETMET R7 R1 K7
+ 0x5C240A00, // 001D MOVE R9 R5
+ 0x5C280C00, // 001E MOVE R10 R6
+ 0x7C1C0600, // 001F CALL R7 3
+ 0x50100200, // 0020 LDBOOL R4 1 0
+ 0x00140B08, // 0021 ADD R5 R5 K8
+ 0x7001FFE7, // 0022 JMP #000B
+ 0x80040800, // 0023 RET 1 R4
})
)
);
@@ -3970,53 +3383,11 @@ be_local_closure(class_BeaconAnimation_render, /* name */
/********************************************************************
-** Solidified class: BeaconAnimation
+** Solidified function: update
********************************************************************/
-extern const bclass be_class_Animation;
-be_local_class(BeaconAnimation,
- 0,
- &be_class_Animation,
- be_nested_map(2,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(render, -1), be_const_closure(class_BeaconAnimation_render_closure) },
- { be_const_key_weak(PARAMS, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(5,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(pos, 1), be_const_bytes_instance(040000) },
- { be_const_key_weak(slew_size, 4), be_const_bytes_instance(0500000000) },
- { be_const_key_weak(back_color, 0), be_const_bytes_instance(0402000000FF) },
- { be_const_key_weak(beacon_size, -1), be_const_bytes_instance(0500000001) },
- { be_const_key_weak(right_edge, -1), be_const_bytes_instance(1400000200000001) },
- })) ) } )) },
- })),
- be_str_weak(BeaconAnimation)
-);
-// compact class 'RichPaletteAnimation' ktab size: 13, total: 15 (saved 16 bytes)
-static const bvalue be_ktab_class_RichPaletteAnimation[13] = {
- /* K0 */ be_nested_str_weak(init),
- /* K1 */ be_nested_str_weak(color_provider),
- /* K2 */ be_nested_str_weak(animation),
- /* K3 */ be_nested_str_weak(rich_palette_color),
- /* K4 */ be_nested_str_weak(values),
- /* K5 */ be_nested_str_weak(color),
- /* K6 */ be_nested_str_weak(start),
- /* K7 */ be_nested_str_weak(on_param_changed),
- /* K8 */ be_nested_str_weak(colors),
- /* K9 */ be_nested_str_weak(period),
- /* K10 */ be_nested_str_weak(transition_type),
- /* K11 */ be_nested_str_weak(brightness),
- /* K12 */ be_nested_str_weak(set_param),
-};
-
-
-extern const bclass be_class_RichPaletteAnimation;
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(class_RichPaletteAnimation_init, /* name */
+be_local_closure(class_twinkle_update, /* name */
be_nested_proto(
- 5, /* nstack */
+ 7, /* nstack */
2, /* argc */
10, /* varg */
0, /* has upvals */
@@ -4024,25 +3395,22 @@ be_local_closure(class_RichPaletteAnimation_init, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- &be_ktab_class_RichPaletteAnimation, /* shared constants */
- be_str_weak(init),
+ &be_ktab_class_twinkle, /* shared constants */
+ be_str_weak(update),
&be_const_str_solidified,
- ( &(const binstruction[15]) { /* code */
- 0x60080003, // 0000 GETGBL R2 G3
- 0x5C0C0000, // 0001 MOVE R3 R0
- 0x7C080200, // 0002 CALL R2 1
- 0x8C080500, // 0003 GETMET R2 R2 K0
- 0x5C100200, // 0004 MOVE R4 R1
- 0x7C080400, // 0005 CALL R2 2
- 0xB80A0400, // 0006 GETNGBL R2 K2
- 0x8C080503, // 0007 GETMET R2 R2 K3
- 0x5C100200, // 0008 MOVE R4 R1
- 0x7C080400, // 0009 CALL R2 2
- 0x90020202, // 000A SETMBR R0 K1 R2
- 0x88080104, // 000B GETMBR R2 R0 K4
- 0x880C0101, // 000C GETMBR R3 R0 K1
- 0x980A0A03, // 000D SETIDX R2 K5 R3
- 0x80000000, // 000E RET 0
+ ( &(const binstruction[12]) { /* code */
+ 0x88080109, // 0000 GETMBR R2 R0 K9
+ 0x540E03E7, // 0001 LDINT R3 1000
+ 0x0C0C0602, // 0002 DIV R3 R3 R2
+ 0x8810010A, // 0003 GETMBR R4 R0 K10
+ 0x04100204, // 0004 SUB R4 R1 R4
+ 0x28100803, // 0005 GE R4 R4 R3
+ 0x78120003, // 0006 JMPF R4 #000B
+ 0x90021401, // 0007 SETMBR R0 K10 R1
+ 0x8C10010B, // 0008 GETMET R4 R0 K11
+ 0x5C180200, // 0009 MOVE R6 R1
+ 0x7C100400, // 000A CALL R4 2
+ 0x80000000, // 000B RET 0
})
)
);
@@ -4050,33 +3418,76 @@ be_local_closure(class_RichPaletteAnimation_init, /* name */
/********************************************************************
-** Solidified function: start
+** Solidified function: _random
********************************************************************/
-be_local_closure(class_RichPaletteAnimation_start, /* name */
+be_local_closure(class_twinkle__random, /* name */
be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
+ 3, /* nstack */
+ 1, /* argc */
10, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- &be_ktab_class_RichPaletteAnimation, /* shared constants */
- be_str_weak(start),
+ &be_ktab_class_twinkle, /* shared constants */
+ be_str_weak(_random),
&be_const_str_solidified,
- ( &(const binstruction[11]) { /* code */
- 0x60080003, // 0000 GETGBL R2 G3
- 0x5C0C0000, // 0001 MOVE R3 R0
- 0x7C080200, // 0002 CALL R2 1
- 0x8C080506, // 0003 GETMET R2 R2 K6
- 0x5C100200, // 0004 MOVE R4 R1
- 0x7C080400, // 0005 CALL R2 2
- 0x88080101, // 0006 GETMBR R2 R0 K1
- 0x8C080506, // 0007 GETMET R2 R2 K6
- 0x5C100200, // 0008 MOVE R4 R1
+ ( &(const binstruction[ 8]) { /* code */
+ 0x8804010C, // 0000 GETMBR R1 R0 K12
+ 0x0804030D, // 0001 MUL R1 R1 K13
+ 0x540A3038, // 0002 LDINT R2 12345
+ 0x00040202, // 0003 ADD R1 R1 R2
+ 0x2C04030E, // 0004 AND R1 R1 K14
+ 0x90021801, // 0005 SETMBR R0 K12 R1
+ 0x8804010C, // 0006 GETMBR R1 R0 K12
+ 0x80040200, // 0007 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _initialize_arrays
+********************************************************************/
+be_local_closure(class_twinkle__initialize_arrays, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 1, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_twinkle, /* shared constants */
+ be_str_weak(_initialize_arrays),
+ &be_const_str_solidified,
+ ( &(const binstruction[23]) { /* code */
+ 0x8804010F, // 0000 GETMBR R1 R0 K15
+ 0x88040310, // 0001 GETMBR R1 R1 K16
+ 0x88080102, // 0002 GETMBR R2 R0 K2
+ 0x8C080511, // 0003 GETMET R2 R2 K17
+ 0x7C080200, // 0004 CALL R2 1
+ 0x88080102, // 0005 GETMBR R2 R0 K2
+ 0x8C080512, // 0006 GETMET R2 R2 K18
+ 0x54120003, // 0007 LDINT R4 4
+ 0x08100204, // 0008 MUL R4 R1 R4
0x7C080400, // 0009 CALL R2 2
- 0x80040000, // 000A RET 1 R0
+ 0x58080000, // 000A LDCONST R2 K0
+ 0x140C0401, // 000B LT R3 R2 R1
+ 0x780E0008, // 000C JMPF R3 #0016
+ 0x880C0102, // 000D GETMBR R3 R0 K2
+ 0x8C0C0713, // 000E GETMET R3 R3 K19
+ 0x54160003, // 000F LDINT R5 4
+ 0x08140405, // 0010 MUL R5 R2 R5
+ 0x58180000, // 0011 LDCONST R6 K0
+ 0x541DFFFB, // 0012 LDINT R7 -4
+ 0x7C0C0800, // 0013 CALL R3 4
+ 0x00080508, // 0014 ADD R2 R2 K8
+ 0x7001FFF4, // 0015 JMP #000B
+ 0x80000000, // 0016 RET 0
})
)
);
@@ -4086,9 +3497,9 @@ be_local_closure(class_RichPaletteAnimation_start, /* name */
/********************************************************************
** Solidified function: on_param_changed
********************************************************************/
-be_local_closure(class_RichPaletteAnimation_on_param_changed, /* name */
+be_local_closure(class_twinkle_on_param_changed, /* name */
be_nested_proto(
- 7, /* nstack */
+ 8, /* nstack */
3, /* argc */
10, /* varg */
0, /* has upvals */
@@ -4096,39 +3507,37 @@ be_local_closure(class_RichPaletteAnimation_on_param_changed, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- &be_ktab_class_RichPaletteAnimation, /* shared constants */
+ &be_ktab_class_twinkle, /* shared constants */
be_str_weak(on_param_changed),
&be_const_str_solidified,
- ( &(const binstruction[29]) { /* code */
+ ( &(const binstruction[27]) { /* code */
0x600C0003, // 0000 GETGBL R3 G3
0x5C100000, // 0001 MOVE R4 R0
0x7C0C0200, // 0002 CALL R3 1
- 0x8C0C0707, // 0003 GETMET R3 R3 K7
+ 0x8C0C0714, // 0003 GETMET R3 R3 K20
0x5C140200, // 0004 MOVE R5 R1
0x5C180400, // 0005 MOVE R6 R2
0x7C0C0600, // 0006 CALL R3 3
- 0x1C0C0308, // 0007 EQ R3 R1 K8
- 0x740E0005, // 0008 JMPT R3 #000F
- 0x1C0C0309, // 0009 EQ R3 R1 K9
- 0x740E0003, // 000A JMPT R3 #000F
- 0x1C0C030A, // 000B EQ R3 R1 K10
- 0x740E0001, // 000C JMPT R3 #000F
- 0x1C0C030B, // 000D EQ R3 R1 K11
- 0x780E0005, // 000E JMPF R3 #0015
- 0x880C0101, // 000F GETMBR R3 R0 K1
- 0x8C0C070C, // 0010 GETMET R3 R3 K12
- 0x5C140200, // 0011 MOVE R5 R1
- 0x5C180400, // 0012 MOVE R6 R2
- 0x7C0C0600, // 0013 CALL R3 3
- 0x70020006, // 0014 JMP #001C
- 0x600C0003, // 0015 GETGBL R3 G3
- 0x5C100000, // 0016 MOVE R4 R0
- 0x7C0C0200, // 0017 CALL R3 1
- 0x8C0C0707, // 0018 GETMET R3 R3 K7
- 0x5C140200, // 0019 MOVE R5 R1
- 0x5C180400, // 001A MOVE R6 R2
- 0x7C0C0600, // 001B CALL R3 3
- 0x80000000, // 001C RET 0
+ 0x1C0C0309, // 0007 EQ R3 R1 K9
+ 0x780E0010, // 0008 JMPF R3 #001A
+ 0x540E0031, // 0009 LDINT R3 50
+ 0x280C0403, // 000A GE R3 R2 R3
+ 0x780E000D, // 000B JMPF R3 #001A
+ 0x540E03E7, // 000C LDINT R3 1000
+ 0x0C0C0602, // 000D DIV R3 R3 R2
+ 0x14100708, // 000E LT R4 R3 K8
+ 0x78120001, // 000F JMPF R4 #0012
+ 0x580C0008, // 0010 LDCONST R3 K8
+ 0x70020003, // 0011 JMP #0016
+ 0x54120013, // 0012 LDINT R4 20
+ 0x24100604, // 0013 GT R4 R3 R4
+ 0x78120000, // 0014 JMPF R4 #0016
+ 0x540E0013, // 0015 LDINT R3 20
+ 0x8C100115, // 0016 GETMET R4 R0 K21
+ 0x58180009, // 0017 LDCONST R6 K9
+ 0x5C1C0600, // 0018 MOVE R7 R3
+ 0x7C100600, // 0019 CALL R4 3
+ 0x80000000, // 001A RET 0
})
)
);
@@ -4136,30 +3545,290 @@ be_local_closure(class_RichPaletteAnimation_on_param_changed, /* name */
/********************************************************************
-** Solidified class: RichPaletteAnimation
+** Solidified function: init
+********************************************************************/
+be_local_closure(class_twinkle_init, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_twinkle, /* shared constants */
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[18]) { /* code */
+ 0x60080003, // 0000 GETGBL R2 G3
+ 0x5C0C0000, // 0001 MOVE R3 R0
+ 0x7C080200, // 0002 CALL R2 1
+ 0x8C080516, // 0003 GETMET R2 R2 K22
+ 0x5C100200, // 0004 MOVE R4 R1
+ 0x7C080400, // 0005 CALL R2 2
+ 0x60080015, // 0006 GETGBL R2 G21
+ 0x7C080000, // 0007 CALL R2 0
+ 0x90020402, // 0008 SETMBR R0 K2 R2
+ 0x90021500, // 0009 SETMBR R0 K10 K0
+ 0x8808010F, // 000A GETMBR R2 R0 K15
+ 0x88080517, // 000B GETMBR R2 R2 K23
+ 0x540EFFFF, // 000C LDINT R3 65536
+ 0x10080403, // 000D MOD R2 R2 R3
+ 0x90021802, // 000E SETMBR R0 K12 R2
+ 0x8C080104, // 000F GETMET R2 R0 K4
+ 0x7C080200, // 0010 CALL R2 1
+ 0x80000000, // 0011 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _update_twinkle_simulation
+********************************************************************/
+be_local_closure(class_twinkle__update_twinkle_simulation, /* name */
+ be_nested_proto(
+ 22, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_twinkle, /* shared constants */
+ be_str_weak(_update_twinkle_simulation),
+ &be_const_str_solidified,
+ ( &(const binstruction[116]) { /* code */
+ 0x88080118, // 0000 GETMBR R2 R0 K24
+ 0x880C0119, // 0001 GETMBR R3 R0 K25
+ 0x8810011A, // 0002 GETMBR R4 R0 K26
+ 0x8814011B, // 0003 GETMBR R5 R0 K27
+ 0x8818011C, // 0004 GETMBR R6 R0 K28
+ 0x881C010F, // 0005 GETMBR R7 R0 K15
+ 0x881C0F10, // 0006 GETMBR R7 R7 K16
+ 0x88200102, // 0007 GETMBR R8 R0 K2
+ 0x8C201103, // 0008 GETMET R8 R8 K3
+ 0x7C200200, // 0009 CALL R8 1
+ 0x54260003, // 000A LDINT R9 4
+ 0x08240E09, // 000B MUL R9 R7 R9
+ 0x20201009, // 000C NE R8 R8 R9
+ 0x78220001, // 000D JMPF R8 #0010
+ 0x8C200104, // 000E GETMET R8 R0 K4
+ 0x7C200200, // 000F CALL R8 1
+ 0x58200000, // 0010 LDCONST R8 K0
+ 0x14241007, // 0011 LT R9 R8 R7
+ 0x7826002A, // 0012 JMPF R9 #003E
+ 0x88240102, // 0013 GETMBR R9 R0 K2
+ 0x8C241306, // 0014 GETMET R9 R9 K6
+ 0x542E0003, // 0015 LDINT R11 4
+ 0x082C100B, // 0016 MUL R11 R8 R11
+ 0x5431FFFB, // 0017 LDINT R12 -4
+ 0x7C240600, // 0018 CALL R9 3
+ 0x542A0017, // 0019 LDINT R10 24
+ 0x3C28120A, // 001A SHR R10 R9 R10
+ 0x542E00FE, // 001B LDINT R11 255
+ 0x2C28140B, // 001C AND R10 R10 R11
+ 0x242C1500, // 001D GT R11 R10 K0
+ 0x782E001C, // 001E JMPF R11 #003C
+ 0xB82E3A00, // 001F GETNGBL R11 K29
+ 0x8C2C171E, // 0020 GETMET R11 R11 K30
+ 0x5C340400, // 0021 MOVE R13 R2
+ 0x58380000, // 0022 LDCONST R14 K0
+ 0x543E00FE, // 0023 LDINT R15 255
+ 0x58400008, // 0024 LDCONST R16 K8
+ 0x54460013, // 0025 LDINT R17 20
+ 0x7C2C0C00, // 0026 CALL R11 6
+ 0x1830140B, // 0027 LE R12 R10 R11
+ 0x78320007, // 0028 JMPF R12 #0031
+ 0x88300102, // 0029 GETMBR R12 R0 K2
+ 0x8C301913, // 002A GETMET R12 R12 K19
+ 0x543A0003, // 002B LDINT R14 4
+ 0x0838100E, // 002C MUL R14 R8 R14
+ 0x583C0000, // 002D LDCONST R15 K0
+ 0x5441FFFB, // 002E LDINT R16 -4
+ 0x7C300800, // 002F CALL R12 4
+ 0x7002000A, // 0030 JMP #003C
+ 0x0430140B, // 0031 SUB R12 R10 R11
+ 0x2C34131F, // 0032 AND R13 R9 K31
+ 0x88380102, // 0033 GETMBR R14 R0 K2
+ 0x8C381D13, // 0034 GETMET R14 R14 K19
+ 0x54420003, // 0035 LDINT R16 4
+ 0x08401010, // 0036 MUL R16 R8 R16
+ 0x54460017, // 0037 LDINT R17 24
+ 0x38441811, // 0038 SHL R17 R12 R17
+ 0x3044220D, // 0039 OR R17 R17 R13
+ 0x5449FFFB, // 003A LDINT R18 -4
+ 0x7C380800, // 003B CALL R14 4
+ 0x00201108, // 003C ADD R8 R8 K8
+ 0x7001FFD2, // 003D JMP #0011
+ 0x58240000, // 003E LDCONST R9 K0
+ 0x14281207, // 003F LT R10 R9 R7
+ 0x782A0031, // 0040 JMPF R10 #0073
+ 0x88280102, // 0041 GETMBR R10 R0 K2
+ 0x8C281506, // 0042 GETMET R10 R10 K6
+ 0x54320003, // 0043 LDINT R12 4
+ 0x0830120C, // 0044 MUL R12 R9 R12
+ 0x5435FFFB, // 0045 LDINT R13 -4
+ 0x7C280600, // 0046 CALL R10 3
+ 0x542E0017, // 0047 LDINT R11 24
+ 0x3C2C140B, // 0048 SHR R11 R10 R11
+ 0x543200FE, // 0049 LDINT R12 255
+ 0x2C2C160C, // 004A AND R11 R11 R12
+ 0x1C301700, // 004B EQ R12 R11 K0
+ 0x78320023, // 004C JMPF R12 #0071
+ 0x8C300120, // 004D GETMET R12 R0 K32
+ 0x543A00FE, // 004E LDINT R14 255
+ 0x7C300400, // 004F CALL R12 2
+ 0x14301803, // 0050 LT R12 R12 R3
+ 0x7832001E, // 0051 JMPF R12 #0071
+ 0x8C300120, // 0052 GETMET R12 R0 K32
+ 0x04380A04, // 0053 SUB R14 R5 R4
+ 0x00381D08, // 0054 ADD R14 R14 K8
+ 0x7C300400, // 0055 CALL R12 2
+ 0x0030080C, // 0056 ADD R12 R4 R12
+ 0x5C340C00, // 0057 MOVE R13 R6
+ 0x543A000F, // 0058 LDINT R14 16
+ 0x3C381A0E, // 0059 SHR R14 R13 R14
+ 0x543E00FE, // 005A LDINT R15 255
+ 0x2C381C0F, // 005B AND R14 R14 R15
+ 0x543E0007, // 005C LDINT R15 8
+ 0x3C3C1A0F, // 005D SHR R15 R13 R15
+ 0x544200FE, // 005E LDINT R16 255
+ 0x2C3C1E10, // 005F AND R15 R15 R16
+ 0x544200FE, // 0060 LDINT R16 255
+ 0x2C401A10, // 0061 AND R16 R13 R16
+ 0x88440102, // 0062 GETMBR R17 R0 K2
+ 0x8C442313, // 0063 GETMET R17 R17 K19
+ 0x544E0003, // 0064 LDINT R19 4
+ 0x084C1213, // 0065 MUL R19 R9 R19
+ 0x54520017, // 0066 LDINT R20 24
+ 0x38501814, // 0067 SHL R20 R12 R20
+ 0x5456000F, // 0068 LDINT R21 16
+ 0x38541C15, // 0069 SHL R21 R14 R21
+ 0x30502815, // 006A OR R20 R20 R21
+ 0x54560007, // 006B LDINT R21 8
+ 0x38541E15, // 006C SHL R21 R15 R21
+ 0x30502815, // 006D OR R20 R20 R21
+ 0x30502810, // 006E OR R20 R20 R16
+ 0x5455FFFB, // 006F LDINT R21 -4
+ 0x7C440800, // 0070 CALL R17 4
+ 0x00241308, // 0071 ADD R9 R9 K8
+ 0x7001FFCB, // 0072 JMP #003F
+ 0x80000000, // 0073 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified class: twinkle
********************************************************************/
extern const bclass be_class_Animation;
-be_local_class(RichPaletteAnimation,
- 1,
+be_local_class(twinkle,
+ 3,
&be_class_Animation,
- be_nested_map(5,
+ be_nested_map(12,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(init, -1), be_const_closure(class_RichPaletteAnimation_init_closure) },
- { be_const_key_weak(start, -1), be_const_closure(class_RichPaletteAnimation_start_closure) },
- { be_const_key_weak(on_param_changed, 4), be_const_closure(class_RichPaletteAnimation_on_param_changed_closure) },
- { be_const_key_weak(PARAMS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(4,
+ { be_const_key_weak(last_update, -1), be_const_var(1) },
+ { be_const_key_weak(render, 8), be_const_closure(class_twinkle_render_closure) },
+ { be_const_key_weak(_update_twinkle_simulation, -1), be_const_closure(class_twinkle__update_twinkle_simulation_closure) },
+ { be_const_key_weak(PARAMS, 6), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(period, -1), be_const_bytes_instance(050000018813) },
- { be_const_key_weak(colors, -1), be_const_bytes_instance(0C0605) },
- { be_const_key_weak(brightness, -1), be_const_bytes_instance(07000001FF0001FF00) },
- { be_const_key_weak(transition_type, -1), be_const_bytes_instance(1400050200010005) },
+ { be_const_key_weak(twinkle_speed, 1), be_const_bytes_instance(0700010188130064) },
+ { be_const_key_weak(min_brightness, -1), be_const_bytes_instance(07000001FF000020) },
+ { be_const_key_weak(density, -1), be_const_bytes_instance(07000001FF000040) },
+ { be_const_key_weak(max_brightness, 2), be_const_bytes_instance(07000001FF0001FF00) },
+ { be_const_key_weak(color, -1), be_const_bytes_instance(0400BB) },
+ { be_const_key_weak(fade_speed, 0), be_const_bytes_instance(07000001FF0001B400) },
})) ) } )) },
- { be_const_key_weak(color_provider, -1), be_const_var(0) },
+ { be_const_key_weak(update, -1), be_const_closure(class_twinkle_update_closure) },
+ { be_const_key_weak(_random, -1), be_const_closure(class_twinkle__random_closure) },
+ { be_const_key_weak(init, 9), be_const_closure(class_twinkle_init_closure) },
+ { be_const_key_weak(_initialize_arrays, -1), be_const_closure(class_twinkle__initialize_arrays_closure) },
+ { be_const_key_weak(on_param_changed, -1), be_const_closure(class_twinkle_on_param_changed_closure) },
+ { be_const_key_weak(current_colors, -1), be_const_var(0) },
+ { be_const_key_weak(random_seed, 2), be_const_var(2) },
+ { be_const_key_weak(_random_range, 0), be_const_closure(class_twinkle__random_range_closure) },
})),
- be_str_weak(RichPaletteAnimation)
+ be_str_weak(twinkle)
);
+/********************************************************************
+** Solidified function: animation_init_strip
+********************************************************************/
+be_local_closure(animation_init_strip, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 1, /* argc */
+ 1, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[10]) { /* constants */
+ /* K0 */ be_nested_str_weak(global),
+ /* K1 */ be_nested_str_weak(animation),
+ /* K2 */ be_nested_str_weak(introspect),
+ /* K3 */ be_nested_str_weak(contains),
+ /* K4 */ be_nested_str_weak(_engines),
+ /* K5 */ be_nested_str_weak(find),
+ /* K6 */ be_nested_str_weak(stop),
+ /* K7 */ be_nested_str_weak(clear),
+ /* K8 */ be_nested_str_weak(Leds),
+ /* K9 */ be_nested_str_weak(create_engine),
+ }),
+ be_str_weak(animation_init_strip),
+ &be_const_str_solidified,
+ ( &(const binstruction[37]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0xA40A0200, // 0001 IMPORT R2 K1
+ 0xA40E0400, // 0002 IMPORT R3 K2
+ 0x8C100703, // 0003 GETMET R4 R3 K3
+ 0x5C180400, // 0004 MOVE R6 R2
+ 0x581C0004, // 0005 LDCONST R7 K4
+ 0x7C100600, // 0006 CALL R4 3
+ 0x74120002, // 0007 JMPT R4 #000B
+ 0x60100013, // 0008 GETGBL R4 G19
+ 0x7C100000, // 0009 CALL R4 0
+ 0x900A0804, // 000A SETMBR R2 K4 R4
+ 0x60100008, // 000B GETGBL R4 G8
+ 0x5C140000, // 000C MOVE R5 R0
+ 0x7C100200, // 000D CALL R4 1
+ 0x88140504, // 000E GETMBR R5 R2 K4
+ 0x8C140B05, // 000F GETMET R5 R5 K5
+ 0x5C1C0800, // 0010 MOVE R7 R4
+ 0x7C140400, // 0011 CALL R5 2
+ 0x4C180000, // 0012 LDNIL R6
+ 0x20180A06, // 0013 NE R6 R5 R6
+ 0x781A0004, // 0014 JMPF R6 #001A
+ 0x8C180B06, // 0015 GETMET R6 R5 K6
+ 0x7C180200, // 0016 CALL R6 1
+ 0x8C180B07, // 0017 GETMET R6 R5 K7
+ 0x7C180200, // 0018 CALL R6 1
+ 0x70020009, // 0019 JMP #0024
+ 0x60180016, // 001A GETGBL R6 G22
+ 0x881C0308, // 001B GETMBR R7 R1 K8
+ 0x5C200000, // 001C MOVE R8 R0
+ 0x7C180400, // 001D CALL R6 2
+ 0x8C1C0509, // 001E GETMET R7 R2 K9
+ 0x5C240C00, // 001F MOVE R9 R6
+ 0x7C1C0400, // 0020 CALL R7 2
+ 0x5C140E00, // 0021 MOVE R5 R7
+ 0x881C0504, // 0022 GETMBR R7 R2 K4
+ 0x981C0805, // 0023 SETIDX R7 R4 R5
+ 0x80040A00, // 0024 RET 1 R5
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: register_event_handler
********************************************************************/
@@ -4244,6 +3913,4084 @@ be_local_class(static_value,
})),
be_str_weak(static_value)
);
+// compact class 'rich_palette' ktab size: 13, total: 15 (saved 16 bytes)
+static const bvalue be_ktab_class_rich_palette[13] = {
+ /* K0 */ be_nested_str_weak(init),
+ /* K1 */ be_nested_str_weak(color_provider),
+ /* K2 */ be_nested_str_weak(animation),
+ /* K3 */ be_nested_str_weak(rich_palette_color),
+ /* K4 */ be_nested_str_weak(values),
+ /* K5 */ be_nested_str_weak(color),
+ /* K6 */ be_nested_str_weak(start),
+ /* K7 */ be_nested_str_weak(on_param_changed),
+ /* K8 */ be_nested_str_weak(colors),
+ /* K9 */ be_nested_str_weak(period),
+ /* K10 */ be_nested_str_weak(transition_type),
+ /* K11 */ be_nested_str_weak(brightness),
+ /* K12 */ be_nested_str_weak(set_param),
+};
+
+
+extern const bclass be_class_rich_palette;
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+be_local_closure(class_rich_palette_init, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_rich_palette, /* shared constants */
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[15]) { /* code */
+ 0x60080003, // 0000 GETGBL R2 G3
+ 0x5C0C0000, // 0001 MOVE R3 R0
+ 0x7C080200, // 0002 CALL R2 1
+ 0x8C080500, // 0003 GETMET R2 R2 K0
+ 0x5C100200, // 0004 MOVE R4 R1
+ 0x7C080400, // 0005 CALL R2 2
+ 0xB80A0400, // 0006 GETNGBL R2 K2
+ 0x8C080503, // 0007 GETMET R2 R2 K3
+ 0x5C100200, // 0008 MOVE R4 R1
+ 0x7C080400, // 0009 CALL R2 2
+ 0x90020202, // 000A SETMBR R0 K1 R2
+ 0x88080104, // 000B GETMBR R2 R0 K4
+ 0x880C0101, // 000C GETMBR R3 R0 K1
+ 0x980A0A03, // 000D SETIDX R2 K5 R3
+ 0x80000000, // 000E RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: start
+********************************************************************/
+be_local_closure(class_rich_palette_start, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_rich_palette, /* shared constants */
+ be_str_weak(start),
+ &be_const_str_solidified,
+ ( &(const binstruction[11]) { /* code */
+ 0x60080003, // 0000 GETGBL R2 G3
+ 0x5C0C0000, // 0001 MOVE R3 R0
+ 0x7C080200, // 0002 CALL R2 1
+ 0x8C080506, // 0003 GETMET R2 R2 K6
+ 0x5C100200, // 0004 MOVE R4 R1
+ 0x7C080400, // 0005 CALL R2 2
+ 0x88080101, // 0006 GETMBR R2 R0 K1
+ 0x8C080506, // 0007 GETMET R2 R2 K6
+ 0x5C100200, // 0008 MOVE R4 R1
+ 0x7C080400, // 0009 CALL R2 2
+ 0x80040000, // 000A RET 1 R0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: on_param_changed
+********************************************************************/
+be_local_closure(class_rich_palette_on_param_changed, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 3, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_rich_palette, /* shared constants */
+ be_str_weak(on_param_changed),
+ &be_const_str_solidified,
+ ( &(const binstruction[29]) { /* code */
+ 0x600C0003, // 0000 GETGBL R3 G3
+ 0x5C100000, // 0001 MOVE R4 R0
+ 0x7C0C0200, // 0002 CALL R3 1
+ 0x8C0C0707, // 0003 GETMET R3 R3 K7
+ 0x5C140200, // 0004 MOVE R5 R1
+ 0x5C180400, // 0005 MOVE R6 R2
+ 0x7C0C0600, // 0006 CALL R3 3
+ 0x1C0C0308, // 0007 EQ R3 R1 K8
+ 0x740E0005, // 0008 JMPT R3 #000F
+ 0x1C0C0309, // 0009 EQ R3 R1 K9
+ 0x740E0003, // 000A JMPT R3 #000F
+ 0x1C0C030A, // 000B EQ R3 R1 K10
+ 0x740E0001, // 000C JMPT R3 #000F
+ 0x1C0C030B, // 000D EQ R3 R1 K11
+ 0x780E0005, // 000E JMPF R3 #0015
+ 0x880C0101, // 000F GETMBR R3 R0 K1
+ 0x8C0C070C, // 0010 GETMET R3 R3 K12
+ 0x5C140200, // 0011 MOVE R5 R1
+ 0x5C180400, // 0012 MOVE R6 R2
+ 0x7C0C0600, // 0013 CALL R3 3
+ 0x70020006, // 0014 JMP #001C
+ 0x600C0003, // 0015 GETGBL R3 G3
+ 0x5C100000, // 0016 MOVE R4 R0
+ 0x7C0C0200, // 0017 CALL R3 1
+ 0x8C0C0707, // 0018 GETMET R3 R3 K7
+ 0x5C140200, // 0019 MOVE R5 R1
+ 0x5C180400, // 001A MOVE R6 R2
+ 0x7C0C0600, // 001B CALL R3 3
+ 0x80000000, // 001C RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified class: rich_palette
+********************************************************************/
+extern const bclass be_class_Animation;
+be_local_class(rich_palette,
+ 1,
+ &be_class_Animation,
+ be_nested_map(5,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(init, -1), be_const_closure(class_rich_palette_init_closure) },
+ { be_const_key_weak(start, -1), be_const_closure(class_rich_palette_start_closure) },
+ { be_const_key_weak(on_param_changed, 4), be_const_closure(class_rich_palette_on_param_changed_closure) },
+ { be_const_key_weak(PARAMS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(4,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(period, -1), be_const_bytes_instance(050000018813) },
+ { be_const_key_weak(colors, -1), be_const_bytes_instance(0C0605) },
+ { be_const_key_weak(brightness, -1), be_const_bytes_instance(07000001FF0001FF00) },
+ { be_const_key_weak(transition_type, -1), be_const_bytes_instance(1400050200010005) },
+ })) ) } )) },
+ { be_const_key_weak(color_provider, -1), be_const_var(0) },
+ })),
+ be_str_weak(rich_palette)
+);
+
+/********************************************************************
+** Solidified function: ramp
+********************************************************************/
+be_local_closure(ramp, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 0, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(animation),
+ /* K1 */ be_nested_str_weak(oscillator_value),
+ /* K2 */ be_nested_str_weak(form),
+ /* K3 */ be_const_int(1),
+ }),
+ be_str_weak(ramp),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 6]) { /* code */
+ 0xB8060000, // 0000 GETNGBL R1 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x5C0C0000, // 0002 MOVE R3 R0
+ 0x7C040400, // 0003 CALL R1 2
+ 0x90060503, // 0004 SETMBR R1 K2 K3
+ 0x80040200, // 0005 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: list_user_functions
+********************************************************************/
+be_local_closure(list_user_functions, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 0, /* argc */
+ 0, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(animation),
+ /* K1 */ be_nested_str_weak(user_functions),
+ /* K2 */ be_nested_str_weak(keys),
+ /* K3 */ be_nested_str_weak(push),
+ /* K4 */ be_nested_str_weak(stop_iteration),
+ }),
+ be_str_weak(list_user_functions),
+ &be_const_str_solidified,
+ ( &(const binstruction[19]) { /* code */
+ 0x60000012, // 0000 GETGBL R0 G18
+ 0x7C000000, // 0001 CALL R0 0
+ 0x60040010, // 0002 GETGBL R1 G16
+ 0xB80A0000, // 0003 GETNGBL R2 K0
+ 0x88080501, // 0004 GETMBR R2 R2 K1
+ 0x8C080502, // 0005 GETMET R2 R2 K2
+ 0x7C080200, // 0006 CALL R2 1
+ 0x7C040200, // 0007 CALL R1 1
+ 0xA8020005, // 0008 EXBLK 0 #000F
+ 0x5C080200, // 0009 MOVE R2 R1
+ 0x7C080000, // 000A CALL R2 0
+ 0x8C0C0103, // 000B GETMET R3 R0 K3
+ 0x5C140400, // 000C MOVE R5 R2
+ 0x7C0C0400, // 000D CALL R3 2
+ 0x7001FFF9, // 000E JMP #0009
+ 0x58040004, // 000F LDCONST R1 K4
+ 0xAC040200, // 0010 CATCH R1 1 0
+ 0xB0080000, // 0011 RAISE 2 R0 R0
+ 0x80040000, // 0012 RET 1 R0
+ })
+ )
+);
+/*******************************************************************/
+
+// compact class 'engine_proxy' ktab size: 40, total: 109 (saved 552 bytes)
+static const bvalue be_ktab_class_engine_proxy[40] = {
+ /* K0 */ be_nested_str_weak(engine),
+ /* K1 */ be_nested_str_weak(strip_length),
+ /* K2 */ be_nested_str_weak(animation),
+ /* K3 */ be_nested_str_weak(sequence_manager),
+ /* K4 */ be_nested_str_weak(_remove_sequence_manager),
+ /* K5 */ be_nested_str_weak(value_provider),
+ /* K6 */ be_nested_str_weak(_remove_value_provider),
+ /* K7 */ be_nested_str_weak(_remove_animation),
+ /* K8 */ be_nested_str_weak(animations),
+ /* K9 */ be_nested_str_weak(find),
+ /* K10 */ be_nested_str_weak(push),
+ /* K11 */ be_nested_str_weak(_sort_animations_by_priority),
+ /* K12 */ be_nested_str_weak(is_running),
+ /* K13 */ be_nested_str_weak(start),
+ /* K14 */ be_nested_str_weak(time_ms),
+ /* K15 */ be_const_int(0),
+ /* K16 */ be_nested_str_weak(sequences),
+ /* K17 */ be_const_int(1),
+ /* K18 */ be_nested_str_weak(value_providers),
+ /* K19 */ be_nested_str_weak(remove),
+ /* K20 */ be_nested_str_weak(iteration_stack),
+ /* K21 */ be_nested_str_weak(stop),
+ /* K22 */ be_nested_str_weak(_add_sequence_manager),
+ /* K23 */ be_nested_str_weak(_add_value_provider),
+ /* K24 */ be_nested_str_weak(_add_animation),
+ /* K25 */ be_nested_str_weak(type_error),
+ /* K26 */ be_nested_str_weak(only_X20Animation_X2C_X20sequence_manager_X2C_X20or_X20value_provider),
+ /* K27 */ be_nested_str_weak(update),
+ /* K28 */ be_nested_str_weak(start_time),
+ /* K29 */ be_nested_str_weak(pop),
+ /* K30 */ be_nested_str_weak(priority),
+ /* K31 */ be_nested_str_weak(temp_buffer),
+ /* K32 */ be_nested_str_weak(clear),
+ /* K33 */ be_nested_str_weak(render),
+ /* K34 */ be_nested_str_weak(post_render),
+ /* K35 */ be_nested_str_weak(blend_pixels),
+ /* K36 */ be_nested_str_weak(pixels),
+ /* K37 */ be_nested_str_weak(stop_iteration),
+ /* K38 */ be_nested_str_weak(init),
+ /* K39 */ be_nested_str_weak(setup_template),
+};
+
+
+extern const bclass be_class_engine_proxy;
+
+/********************************************************************
+** Solidified function: get_strip_length
+********************************************************************/
+be_local_closure(class_engine_proxy_get_strip_length, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_engine_proxy, /* shared constants */
+ be_str_weak(get_strip_length),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 3]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x88040301, // 0001 GETMBR R1 R1 K1
+ 0x80040200, // 0002 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: remove
+********************************************************************/
+be_local_closure(class_engine_proxy_remove, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_engine_proxy, /* shared constants */
+ be_str_weak(remove),
+ &be_const_str_solidified,
+ ( &(const binstruction[34]) { /* code */
+ 0x6008000F, // 0000 GETGBL R2 G15
+ 0x5C0C0200, // 0001 MOVE R3 R1
+ 0xB8120400, // 0002 GETNGBL R4 K2
+ 0x88100903, // 0003 GETMBR R4 R4 K3
+ 0x7C080400, // 0004 CALL R2 2
+ 0x780A0004, // 0005 JMPF R2 #000B
+ 0x8C080104, // 0006 GETMET R2 R0 K4
+ 0x5C100200, // 0007 MOVE R4 R1
+ 0x7C080400, // 0008 CALL R2 2
+ 0x80040400, // 0009 RET 1 R2
+ 0x70020015, // 000A JMP #0021
+ 0x6008000F, // 000B GETGBL R2 G15
+ 0x5C0C0200, // 000C MOVE R3 R1
+ 0xB8120400, // 000D GETNGBL R4 K2
+ 0x88100905, // 000E GETMBR R4 R4 K5
+ 0x7C080400, // 000F CALL R2 2
+ 0x780A0004, // 0010 JMPF R2 #0016
+ 0x8C080106, // 0011 GETMET R2 R0 K6
+ 0x5C100200, // 0012 MOVE R4 R1
+ 0x7C080400, // 0013 CALL R2 2
+ 0x80040400, // 0014 RET 1 R2
+ 0x7002000A, // 0015 JMP #0021
+ 0x6008000F, // 0016 GETGBL R2 G15
+ 0x5C0C0200, // 0017 MOVE R3 R1
+ 0xB8120400, // 0018 GETNGBL R4 K2
+ 0x88100902, // 0019 GETMBR R4 R4 K2
+ 0x7C080400, // 001A CALL R2 2
+ 0x780A0004, // 001B JMPF R2 #0021
+ 0x8C080107, // 001C GETMET R2 R0 K7
+ 0x5C100200, // 001D MOVE R4 R1
+ 0x7C080400, // 001E CALL R2 2
+ 0x80040400, // 001F RET 1 R2
+ 0x7001FFFF, // 0020 JMP #0021
+ 0x80000000, // 0021 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: size_animations
+********************************************************************/
+be_local_closure(class_engine_proxy_size_animations, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_engine_proxy, /* shared constants */
+ be_str_weak(size_animations),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 4]) { /* code */
+ 0x6004000C, // 0000 GETGBL R1 G12
+ 0x88080108, // 0001 GETMBR R2 R0 K8
+ 0x7C040200, // 0002 CALL R1 1
+ 0x80040200, // 0003 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _add_animation
+********************************************************************/
+be_local_closure(class_engine_proxy__add_animation, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_engine_proxy, /* shared constants */
+ be_str_weak(_add_animation),
+ &be_const_str_solidified,
+ ( &(const binstruction[25]) { /* code */
+ 0x88080108, // 0000 GETMBR R2 R0 K8
+ 0x8C080509, // 0001 GETMET R2 R2 K9
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x7C080400, // 0003 CALL R2 2
+ 0x4C0C0000, // 0004 LDNIL R3
+ 0x1C080403, // 0005 EQ R2 R2 R3
+ 0x780A000E, // 0006 JMPF R2 #0016
+ 0x88080108, // 0007 GETMBR R2 R0 K8
+ 0x8C08050A, // 0008 GETMET R2 R2 K10
+ 0x5C100200, // 0009 MOVE R4 R1
+ 0x7C080400, // 000A CALL R2 2
+ 0x8C08010B, // 000B GETMET R2 R0 K11
+ 0x7C080200, // 000C CALL R2 1
+ 0x8808010C, // 000D GETMBR R2 R0 K12
+ 0x780A0003, // 000E JMPF R2 #0013
+ 0x8C08030D, // 000F GETMET R2 R1 K13
+ 0x88100100, // 0010 GETMBR R4 R0 K0
+ 0x8810090E, // 0011 GETMBR R4 R4 K14
+ 0x7C080400, // 0012 CALL R2 2
+ 0x50080200, // 0013 LDBOOL R2 1 0
+ 0x80040400, // 0014 RET 1 R2
+ 0x70020001, // 0015 JMP #0018
+ 0x50080000, // 0016 LDBOOL R2 0 0
+ 0x80040400, // 0017 RET 1 R2
+ 0x80000000, // 0018 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: start
+********************************************************************/
+be_local_closure(class_engine_proxy_start, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_engine_proxy, /* shared constants */
+ be_str_weak(start),
+ &be_const_str_solidified,
+ ( &(const binstruction[46]) { /* code */
+ 0x60080003, // 0000 GETGBL R2 G3
+ 0x5C0C0000, // 0001 MOVE R3 R0
+ 0x7C080200, // 0002 CALL R2 1
+ 0x8C08050D, // 0003 GETMET R2 R2 K13
+ 0x5C100200, // 0004 MOVE R4 R1
+ 0x7C080400, // 0005 CALL R2 2
+ 0x5808000F, // 0006 LDCONST R2 K15
+ 0x600C000C, // 0007 GETGBL R3 G12
+ 0x88100110, // 0008 GETMBR R4 R0 K16
+ 0x7C0C0200, // 0009 CALL R3 1
+ 0x140C0403, // 000A LT R3 R2 R3
+ 0x780E0006, // 000B JMPF R3 #0013
+ 0x880C0110, // 000C GETMBR R3 R0 K16
+ 0x940C0602, // 000D GETIDX R3 R3 R2
+ 0x8C0C070D, // 000E GETMET R3 R3 K13
+ 0x5C140200, // 000F MOVE R5 R1
+ 0x7C0C0400, // 0010 CALL R3 2
+ 0x00080511, // 0011 ADD R2 R2 K17
+ 0x7001FFF3, // 0012 JMP #0007
+ 0x5808000F, // 0013 LDCONST R2 K15
+ 0x600C000C, // 0014 GETGBL R3 G12
+ 0x88100112, // 0015 GETMBR R4 R0 K18
+ 0x7C0C0200, // 0016 CALL R3 1
+ 0x140C0403, // 0017 LT R3 R2 R3
+ 0x780E0006, // 0018 JMPF R3 #0020
+ 0x880C0112, // 0019 GETMBR R3 R0 K18
+ 0x940C0602, // 001A GETIDX R3 R3 R2
+ 0x8C0C070D, // 001B GETMET R3 R3 K13
+ 0x5C140200, // 001C MOVE R5 R1
+ 0x7C0C0400, // 001D CALL R3 2
+ 0x00080511, // 001E ADD R2 R2 K17
+ 0x7001FFF3, // 001F JMP #0014
+ 0x5808000F, // 0020 LDCONST R2 K15
+ 0x600C000C, // 0021 GETGBL R3 G12
+ 0x88100108, // 0022 GETMBR R4 R0 K8
+ 0x7C0C0200, // 0023 CALL R3 1
+ 0x140C0403, // 0024 LT R3 R2 R3
+ 0x780E0006, // 0025 JMPF R3 #002D
+ 0x880C0108, // 0026 GETMBR R3 R0 K8
+ 0x940C0602, // 0027 GETIDX R3 R3 R2
+ 0x8C0C070D, // 0028 GETMET R3 R3 K13
+ 0x5C140200, // 0029 MOVE R5 R1
+ 0x7C0C0400, // 002A CALL R3 2
+ 0x00080511, // 002B ADD R2 R2 K17
+ 0x7001FFF3, // 002C JMP #0021
+ 0x80040000, // 002D RET 1 R0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _remove_value_provider
+********************************************************************/
+be_local_closure(class_engine_proxy__remove_value_provider, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_engine_proxy, /* shared constants */
+ be_str_weak(_remove_value_provider),
+ &be_const_str_solidified,
+ ( &(const binstruction[17]) { /* code */
+ 0x88080112, // 0000 GETMBR R2 R0 K18
+ 0x8C080509, // 0001 GETMET R2 R2 K9
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x7C080400, // 0003 CALL R2 2
+ 0x4C0C0000, // 0004 LDNIL R3
+ 0x200C0403, // 0005 NE R3 R2 R3
+ 0x780E0006, // 0006 JMPF R3 #000E
+ 0x880C0112, // 0007 GETMBR R3 R0 K18
+ 0x8C0C0713, // 0008 GETMET R3 R3 K19
+ 0x5C140400, // 0009 MOVE R5 R2
+ 0x7C0C0400, // 000A CALL R3 2
+ 0x500C0200, // 000B LDBOOL R3 1 0
+ 0x80040600, // 000C RET 1 R3
+ 0x70020001, // 000D JMP #0010
+ 0x500C0000, // 000E LDBOOL R3 0 0
+ 0x80040600, // 000F RET 1 R3
+ 0x80000000, // 0010 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _remove_animation
+********************************************************************/
+be_local_closure(class_engine_proxy__remove_animation, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_engine_proxy, /* shared constants */
+ be_str_weak(_remove_animation),
+ &be_const_str_solidified,
+ ( &(const binstruction[17]) { /* code */
+ 0x88080108, // 0000 GETMBR R2 R0 K8
+ 0x8C080509, // 0001 GETMET R2 R2 K9
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x7C080400, // 0003 CALL R2 2
+ 0x4C0C0000, // 0004 LDNIL R3
+ 0x200C0403, // 0005 NE R3 R2 R3
+ 0x780E0006, // 0006 JMPF R3 #000E
+ 0x880C0108, // 0007 GETMBR R3 R0 K8
+ 0x8C0C0713, // 0008 GETMET R3 R3 K19
+ 0x5C140400, // 0009 MOVE R5 R2
+ 0x7C0C0400, // 000A CALL R3 2
+ 0x500C0200, // 000B LDBOOL R3 1 0
+ 0x80040600, // 000C RET 1 R3
+ 0x70020001, // 000D JMP #0010
+ 0x500C0000, // 000E LDBOOL R3 0 0
+ 0x80040600, // 000F RET 1 R3
+ 0x80000000, // 0010 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: setup_template
+********************************************************************/
+be_local_closure(class_engine_proxy_setup_template, /* name */
+ be_nested_proto(
+ 1, /* nstack */
+ 1, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_engine_proxy, /* shared constants */
+ be_str_weak(setup_template),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 1]) { /* code */
+ 0x80000000, // 0000 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: update_current_iteration
+********************************************************************/
+be_local_closure(class_engine_proxy_update_current_iteration, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_engine_proxy, /* shared constants */
+ be_str_weak(update_current_iteration),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 9]) { /* code */
+ 0x6008000C, // 0000 GETGBL R2 G12
+ 0x880C0114, // 0001 GETMBR R3 R0 K20
+ 0x7C080200, // 0002 CALL R2 1
+ 0x2408050F, // 0003 GT R2 R2 K15
+ 0x780A0002, // 0004 JMPF R2 #0008
+ 0x88080114, // 0005 GETMBR R2 R0 K20
+ 0x540DFFFE, // 0006 LDINT R3 -1
+ 0x98080601, // 0007 SETIDX R2 R3 R1
+ 0x80000000, // 0008 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: clear
+********************************************************************/
+be_local_closure(class_engine_proxy_clear, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_engine_proxy, /* shared constants */
+ be_str_weak(clear),
+ &be_const_str_solidified,
+ ( &(const binstruction[12]) { /* code */
+ 0x8C040115, // 0000 GETMET R1 R0 K21
+ 0x7C040200, // 0001 CALL R1 1
+ 0x60040012, // 0002 GETGBL R1 G18
+ 0x7C040000, // 0003 CALL R1 0
+ 0x90021001, // 0004 SETMBR R0 K8 R1
+ 0x60040012, // 0005 GETGBL R1 G18
+ 0x7C040000, // 0006 CALL R1 0
+ 0x90022001, // 0007 SETMBR R0 K16 R1
+ 0x60040012, // 0008 GETGBL R1 G18
+ 0x7C040000, // 0009 CALL R1 0
+ 0x90022401, // 000A SETMBR R0 K18 R1
+ 0x80040000, // 000B RET 1 R0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _add_value_provider
+********************************************************************/
+be_local_closure(class_engine_proxy__add_value_provider, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_engine_proxy, /* shared constants */
+ be_str_weak(_add_value_provider),
+ &be_const_str_solidified,
+ ( &(const binstruction[17]) { /* code */
+ 0x88080112, // 0000 GETMBR R2 R0 K18
+ 0x8C080509, // 0001 GETMET R2 R2 K9
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x7C080400, // 0003 CALL R2 2
+ 0x4C0C0000, // 0004 LDNIL R3
+ 0x1C080403, // 0005 EQ R2 R2 R3
+ 0x780A0006, // 0006 JMPF R2 #000E
+ 0x88080112, // 0007 GETMBR R2 R0 K18
+ 0x8C08050A, // 0008 GETMET R2 R2 K10
+ 0x5C100200, // 0009 MOVE R4 R1
+ 0x7C080400, // 000A CALL R2 2
+ 0x50080200, // 000B LDBOOL R2 1 0
+ 0x80040400, // 000C RET 1 R2
+ 0x70020001, // 000D JMP #0010
+ 0x50080000, // 000E LDBOOL R2 0 0
+ 0x80040400, // 000F RET 1 R2
+ 0x80000000, // 0010 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _add_sequence_manager
+********************************************************************/
+be_local_closure(class_engine_proxy__add_sequence_manager, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_engine_proxy, /* shared constants */
+ be_str_weak(_add_sequence_manager),
+ &be_const_str_solidified,
+ ( &(const binstruction[17]) { /* code */
+ 0x88080110, // 0000 GETMBR R2 R0 K16
+ 0x8C080509, // 0001 GETMET R2 R2 K9
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x7C080400, // 0003 CALL R2 2
+ 0x4C0C0000, // 0004 LDNIL R3
+ 0x1C080403, // 0005 EQ R2 R2 R3
+ 0x780A0006, // 0006 JMPF R2 #000E
+ 0x88080110, // 0007 GETMBR R2 R0 K16
+ 0x8C08050A, // 0008 GETMET R2 R2 K10
+ 0x5C100200, // 0009 MOVE R4 R1
+ 0x7C080400, // 000A CALL R2 2
+ 0x50080200, // 000B LDBOOL R2 1 0
+ 0x80040400, // 000C RET 1 R2
+ 0x70020001, // 000D JMP #0010
+ 0x50080000, // 000E LDBOOL R2 0 0
+ 0x80040400, // 000F RET 1 R2
+ 0x80000000, // 0010 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: stop
+********************************************************************/
+be_local_closure(class_engine_proxy_stop, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_engine_proxy, /* shared constants */
+ be_str_weak(stop),
+ &be_const_str_solidified,
+ ( &(const binstruction[30]) { /* code */
+ 0x5804000F, // 0000 LDCONST R1 K15
+ 0x6008000C, // 0001 GETGBL R2 G12
+ 0x880C0108, // 0002 GETMBR R3 R0 K8
+ 0x7C080200, // 0003 CALL R2 1
+ 0x14080202, // 0004 LT R2 R1 R2
+ 0x780A0005, // 0005 JMPF R2 #000C
+ 0x88080108, // 0006 GETMBR R2 R0 K8
+ 0x94080401, // 0007 GETIDX R2 R2 R1
+ 0x8C080515, // 0008 GETMET R2 R2 K21
+ 0x7C080200, // 0009 CALL R2 1
+ 0x00040311, // 000A ADD R1 R1 K17
+ 0x7001FFF4, // 000B JMP #0001
+ 0x5804000F, // 000C LDCONST R1 K15
+ 0x6008000C, // 000D GETGBL R2 G12
+ 0x880C0110, // 000E GETMBR R3 R0 K16
+ 0x7C080200, // 000F CALL R2 1
+ 0x14080202, // 0010 LT R2 R1 R2
+ 0x780A0005, // 0011 JMPF R2 #0018
+ 0x88080110, // 0012 GETMBR R2 R0 K16
+ 0x94080401, // 0013 GETIDX R2 R2 R1
+ 0x8C080515, // 0014 GETMET R2 R2 K21
+ 0x7C080200, // 0015 CALL R2 1
+ 0x00040311, // 0016 ADD R1 R1 K17
+ 0x7001FFF4, // 0017 JMP #000D
+ 0x60080003, // 0018 GETGBL R2 G3
+ 0x5C0C0000, // 0019 MOVE R3 R0
+ 0x7C080200, // 001A CALL R2 1
+ 0x8C080515, // 001B GETMET R2 R2 K21
+ 0x7C080200, // 001C CALL R2 1
+ 0x80040000, // 001D RET 1 R0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: add
+********************************************************************/
+be_local_closure(class_engine_proxy_add, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_engine_proxy, /* shared constants */
+ be_str_weak(add),
+ &be_const_str_solidified,
+ ( &(const binstruction[35]) { /* code */
+ 0x6008000F, // 0000 GETGBL R2 G15
+ 0x5C0C0200, // 0001 MOVE R3 R1
+ 0xB8120400, // 0002 GETNGBL R4 K2
+ 0x88100903, // 0003 GETMBR R4 R4 K3
+ 0x7C080400, // 0004 CALL R2 2
+ 0x780A0004, // 0005 JMPF R2 #000B
+ 0x8C080116, // 0006 GETMET R2 R0 K22
+ 0x5C100200, // 0007 MOVE R4 R1
+ 0x7C080400, // 0008 CALL R2 2
+ 0x80040400, // 0009 RET 1 R2
+ 0x70020016, // 000A JMP #0022
+ 0x6008000F, // 000B GETGBL R2 G15
+ 0x5C0C0200, // 000C MOVE R3 R1
+ 0xB8120400, // 000D GETNGBL R4 K2
+ 0x88100905, // 000E GETMBR R4 R4 K5
+ 0x7C080400, // 000F CALL R2 2
+ 0x780A0004, // 0010 JMPF R2 #0016
+ 0x8C080117, // 0011 GETMET R2 R0 K23
+ 0x5C100200, // 0012 MOVE R4 R1
+ 0x7C080400, // 0013 CALL R2 2
+ 0x80040400, // 0014 RET 1 R2
+ 0x7002000B, // 0015 JMP #0022
+ 0x6008000F, // 0016 GETGBL R2 G15
+ 0x5C0C0200, // 0017 MOVE R3 R1
+ 0xB8120400, // 0018 GETNGBL R4 K2
+ 0x88100902, // 0019 GETMBR R4 R4 K2
+ 0x7C080400, // 001A CALL R2 2
+ 0x780A0004, // 001B JMPF R2 #0021
+ 0x8C080118, // 001C GETMET R2 R0 K24
+ 0x5C100200, // 001D MOVE R4 R1
+ 0x7C080400, // 001E CALL R2 2
+ 0x80040400, // 001F RET 1 R2
+ 0x70020000, // 0020 JMP #0022
+ 0xB006331A, // 0021 RAISE 1 K25 K26
+ 0x80000000, // 0022 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: update
+********************************************************************/
+be_local_closure(class_engine_proxy_update, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_engine_proxy, /* shared constants */
+ be_str_weak(update),
+ &be_const_str_solidified,
+ ( &(const binstruction[73]) { /* code */
+ 0x90021C01, // 0000 SETMBR R0 K14 R1
+ 0x88080100, // 0001 GETMBR R2 R0 K0
+ 0x88080501, // 0002 GETMBR R2 R2 K1
+ 0x90020202, // 0003 SETMBR R0 K1 R2
+ 0x60080003, // 0004 GETGBL R2 G3
+ 0x5C0C0000, // 0005 MOVE R3 R0
+ 0x7C080200, // 0006 CALL R2 1
+ 0x8C08051B, // 0007 GETMET R2 R2 K27
+ 0x5C100200, // 0008 MOVE R4 R1
+ 0x7C080400, // 0009 CALL R2 2
+ 0x5808000F, // 000A LDCONST R2 K15
+ 0x600C000C, // 000B GETGBL R3 G12
+ 0x88100112, // 000C GETMBR R4 R0 K18
+ 0x7C0C0200, // 000D CALL R3 1
+ 0x14100403, // 000E LT R4 R2 R3
+ 0x7812000D, // 000F JMPF R4 #001E
+ 0x88100112, // 0010 GETMBR R4 R0 K18
+ 0x94100802, // 0011 GETIDX R4 R4 R2
+ 0x8814090C, // 0012 GETMBR R5 R4 K12
+ 0x78160007, // 0013 JMPF R5 #001C
+ 0x8814091C, // 0014 GETMBR R5 R4 K28
+ 0x4C180000, // 0015 LDNIL R6
+ 0x1C140A06, // 0016 EQ R5 R5 R6
+ 0x78160000, // 0017 JMPF R5 #0019
+ 0x90123801, // 0018 SETMBR R4 K28 R1
+ 0x8C14091B, // 0019 GETMET R5 R4 K27
+ 0x5C1C0200, // 001A MOVE R7 R1
+ 0x7C140400, // 001B CALL R5 2
+ 0x00080511, // 001C ADD R2 R2 K17
+ 0x7001FFEF, // 001D JMP #000E
+ 0x5808000F, // 001E LDCONST R2 K15
+ 0x6010000C, // 001F GETGBL R4 G12
+ 0x88140110, // 0020 GETMBR R5 R0 K16
+ 0x7C100200, // 0021 CALL R4 1
+ 0x5C0C0800, // 0022 MOVE R3 R4
+ 0x14100403, // 0023 LT R4 R2 R3
+ 0x7812000D, // 0024 JMPF R4 #0033
+ 0x88100110, // 0025 GETMBR R4 R0 K16
+ 0x94100802, // 0026 GETIDX R4 R4 R2
+ 0x8814090C, // 0027 GETMBR R5 R4 K12
+ 0x78160007, // 0028 JMPF R5 #0031
+ 0x8814091C, // 0029 GETMBR R5 R4 K28
+ 0x4C180000, // 002A LDNIL R6
+ 0x1C140A06, // 002B EQ R5 R5 R6
+ 0x78160000, // 002C JMPF R5 #002E
+ 0x90123801, // 002D SETMBR R4 K28 R1
+ 0x8C14091B, // 002E GETMET R5 R4 K27
+ 0x5C1C0200, // 002F MOVE R7 R1
+ 0x7C140400, // 0030 CALL R5 2
+ 0x00080511, // 0031 ADD R2 R2 K17
+ 0x7001FFEF, // 0032 JMP #0023
+ 0x5808000F, // 0033 LDCONST R2 K15
+ 0x6010000C, // 0034 GETGBL R4 G12
+ 0x88140108, // 0035 GETMBR R5 R0 K8
+ 0x7C100200, // 0036 CALL R4 1
+ 0x5C0C0800, // 0037 MOVE R3 R4
+ 0x14100403, // 0038 LT R4 R2 R3
+ 0x7812000D, // 0039 JMPF R4 #0048
+ 0x88100108, // 003A GETMBR R4 R0 K8
+ 0x94100802, // 003B GETIDX R4 R4 R2
+ 0x8814090C, // 003C GETMBR R5 R4 K12
+ 0x78160007, // 003D JMPF R5 #0046
+ 0x8814091C, // 003E GETMBR R5 R4 K28
+ 0x4C180000, // 003F LDNIL R6
+ 0x1C140A06, // 0040 EQ R5 R5 R6
+ 0x78160000, // 0041 JMPF R5 #0043
+ 0x90123801, // 0042 SETMBR R4 K28 R1
+ 0x8C14091B, // 0043 GETMET R5 R4 K27
+ 0x5C1C0200, // 0044 MOVE R7 R1
+ 0x7C140400, // 0045 CALL R5 2
+ 0x00080511, // 0046 ADD R2 R2 K17
+ 0x7001FFEF, // 0047 JMP #0038
+ 0x80000000, // 0048 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: pop_iteration_context
+********************************************************************/
+be_local_closure(class_engine_proxy_pop_iteration_context, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_engine_proxy, /* shared constants */
+ be_str_weak(pop_iteration_context),
+ &be_const_str_solidified,
+ ( &(const binstruction[11]) { /* code */
+ 0x6004000C, // 0000 GETGBL R1 G12
+ 0x88080114, // 0001 GETMBR R2 R0 K20
+ 0x7C040200, // 0002 CALL R1 1
+ 0x2404030F, // 0003 GT R1 R1 K15
+ 0x78060003, // 0004 JMPF R1 #0009
+ 0x88040114, // 0005 GETMBR R1 R0 K20
+ 0x8C04031D, // 0006 GETMET R1 R1 K29
+ 0x7C040200, // 0007 CALL R1 1
+ 0x80040200, // 0008 RET 1 R1
+ 0x4C040000, // 0009 LDNIL R1
+ 0x80040200, // 000A RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _remove_sequence_manager
+********************************************************************/
+be_local_closure(class_engine_proxy__remove_sequence_manager, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_engine_proxy, /* shared constants */
+ be_str_weak(_remove_sequence_manager),
+ &be_const_str_solidified,
+ ( &(const binstruction[17]) { /* code */
+ 0x88080110, // 0000 GETMBR R2 R0 K16
+ 0x8C080509, // 0001 GETMET R2 R2 K9
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x7C080400, // 0003 CALL R2 2
+ 0x4C0C0000, // 0004 LDNIL R3
+ 0x200C0403, // 0005 NE R3 R2 R3
+ 0x780E0006, // 0006 JMPF R3 #000E
+ 0x880C0110, // 0007 GETMBR R3 R0 K16
+ 0x8C0C0713, // 0008 GETMET R3 R3 K19
+ 0x5C140400, // 0009 MOVE R5 R2
+ 0x7C0C0400, // 000A CALL R3 2
+ 0x500C0200, // 000B LDBOOL R3 1 0
+ 0x80040600, // 000C RET 1 R3
+ 0x70020001, // 000D JMP #0010
+ 0x500C0000, // 000E LDBOOL R3 0 0
+ 0x80040600, // 000F RET 1 R3
+ 0x80000000, // 0010 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: is_empty
+********************************************************************/
+be_local_closure(class_engine_proxy_is_empty, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_engine_proxy, /* shared constants */
+ be_str_weak(is_empty),
+ &be_const_str_solidified,
+ ( &(const binstruction[18]) { /* code */
+ 0x6004000C, // 0000 GETGBL R1 G12
+ 0x88080108, // 0001 GETMBR R2 R0 K8
+ 0x7C040200, // 0002 CALL R1 1
+ 0x1C04030F, // 0003 EQ R1 R1 K15
+ 0x78060009, // 0004 JMPF R1 #000F
+ 0x6004000C, // 0005 GETGBL R1 G12
+ 0x88080110, // 0006 GETMBR R2 R0 K16
+ 0x7C040200, // 0007 CALL R1 1
+ 0x1C04030F, // 0008 EQ R1 R1 K15
+ 0x78060004, // 0009 JMPF R1 #000F
+ 0x6004000C, // 000A GETGBL R1 G12
+ 0x88080112, // 000B GETMBR R2 R0 K18
+ 0x7C040200, // 000C CALL R1 1
+ 0x1C04030F, // 000D EQ R1 R1 K15
+ 0x74060000, // 000E JMPT R1 #0010
+ 0x50040001, // 000F LDBOOL R1 0 1
+ 0x50040200, // 0010 LDBOOL R1 1 0
+ 0x80040200, // 0011 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _sort_animations_by_priority
+********************************************************************/
+be_local_closure(class_engine_proxy__sort_animations_by_priority, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 1, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_engine_proxy, /* shared constants */
+ be_str_weak(_sort_animations_by_priority),
+ &be_const_str_solidified,
+ ( &(const binstruction[48]) { /* code */
+ 0x6004000C, // 0000 GETGBL R1 G12
+ 0x88080108, // 0001 GETMBR R2 R0 K8
+ 0x7C040200, // 0002 CALL R1 1
+ 0x18080311, // 0003 LE R2 R1 K17
+ 0x780A0000, // 0004 JMPF R2 #0006
+ 0x80000400, // 0005 RET 0
+ 0x58080011, // 0006 LDCONST R2 K17
+ 0x140C0401, // 0007 LT R3 R2 R1
+ 0x780E0025, // 0008 JMPF R3 #002F
+ 0x880C0108, // 0009 GETMBR R3 R0 K8
+ 0x940C0602, // 000A GETIDX R3 R3 R2
+ 0x6010000F, // 000B GETGBL R4 G15
+ 0x5C140600, // 000C MOVE R5 R3
+ 0xB81A0400, // 000D GETNGBL R6 K2
+ 0x88180D02, // 000E GETMBR R6 R6 K2
+ 0x7C100400, // 000F CALL R4 2
+ 0x74120001, // 0010 JMPT R4 #0013
+ 0x00080511, // 0011 ADD R2 R2 K17
+ 0x7001FFF3, // 0012 JMP #0007
+ 0x5C100400, // 0013 MOVE R4 R2
+ 0x2414090F, // 0014 GT R5 R4 K15
+ 0x78160014, // 0015 JMPF R5 #002B
+ 0x04140911, // 0016 SUB R5 R4 K17
+ 0x88180108, // 0017 GETMBR R6 R0 K8
+ 0x94140C05, // 0018 GETIDX R5 R6 R5
+ 0x6018000F, // 0019 GETGBL R6 G15
+ 0x5C1C0A00, // 001A MOVE R7 R5
+ 0xB8220400, // 001B GETNGBL R8 K2
+ 0x88201102, // 001C GETMBR R8 R8 K2
+ 0x7C180400, // 001D CALL R6 2
+ 0x781A0003, // 001E JMPF R6 #0023
+ 0x88180B1E, // 001F GETMBR R6 R5 K30
+ 0x881C071E, // 0020 GETMBR R7 R3 K30
+ 0x28180C07, // 0021 GE R6 R6 R7
+ 0x781A0000, // 0022 JMPF R6 #0024
+ 0x70020006, // 0023 JMP #002B
+ 0x88180108, // 0024 GETMBR R6 R0 K8
+ 0x041C0911, // 0025 SUB R7 R4 K17
+ 0x88200108, // 0026 GETMBR R8 R0 K8
+ 0x941C1007, // 0027 GETIDX R7 R8 R7
+ 0x98180807, // 0028 SETIDX R6 R4 R7
+ 0x04100911, // 0029 SUB R4 R4 K17
+ 0x7001FFE8, // 002A JMP #0014
+ 0x88140108, // 002B GETMBR R5 R0 K8
+ 0x98140803, // 002C SETIDX R5 R4 R3
+ 0x00080511, // 002D ADD R2 R2 K17
+ 0x7001FFD7, // 002E JMP #0007
+ 0x80000000, // 002F RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: render
+********************************************************************/
+be_local_closure(class_engine_proxy_render, /* name */
+ be_nested_proto(
+ 14, /* nstack */
+ 4, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_engine_proxy, /* shared constants */
+ be_str_weak(render),
+ &be_const_str_solidified,
+ ( &(const binstruction[45]) { /* code */
+ 0x8810010C, // 0000 GETMBR R4 R0 K12
+ 0x78120002, // 0001 JMPF R4 #0005
+ 0x4C100000, // 0002 LDNIL R4
+ 0x1C100204, // 0003 EQ R4 R1 R4
+ 0x78120001, // 0004 JMPF R4 #0007
+ 0x50100000, // 0005 LDBOOL R4 0 0
+ 0x80040800, // 0006 RET 1 R4
+ 0x4C100000, // 0007 LDNIL R4
+ 0x1C100604, // 0008 EQ R4 R3 R4
+ 0x78120000, // 0009 JMPF R4 #000B
+ 0x880C0101, // 000A GETMBR R3 R0 K1
+ 0x50100000, // 000B LDBOOL R4 0 0
+ 0x5814000F, // 000C LDCONST R5 K15
+ 0x6018000C, // 000D GETGBL R6 G12
+ 0x881C0108, // 000E GETMBR R7 R0 K8
+ 0x7C180200, // 000F CALL R6 1
+ 0x141C0A06, // 0010 LT R7 R5 R6
+ 0x781E0019, // 0011 JMPF R7 #002C
+ 0x881C0108, // 0012 GETMBR R7 R0 K8
+ 0x941C0E05, // 0013 GETIDX R7 R7 R5
+ 0x88200F0C, // 0014 GETMBR R8 R7 K12
+ 0x78220013, // 0015 JMPF R8 #002A
+ 0x8820011F, // 0016 GETMBR R8 R0 K31
+ 0x8C201120, // 0017 GETMET R8 R8 K32
+ 0x7C200200, // 0018 CALL R8 1
+ 0x8C200F21, // 0019 GETMET R8 R7 K33
+ 0x8828011F, // 001A GETMBR R10 R0 K31
+ 0x5C2C0400, // 001B MOVE R11 R2
+ 0x5C300600, // 001C MOVE R12 R3
+ 0x7C200800, // 001D CALL R8 4
+ 0x7822000A, // 001E JMPF R8 #002A
+ 0x8C240F22, // 001F GETMET R9 R7 K34
+ 0x882C011F, // 0020 GETMBR R11 R0 K31
+ 0x5C300400, // 0021 MOVE R12 R2
+ 0x5C340600, // 0022 MOVE R13 R3
+ 0x7C240800, // 0023 CALL R9 4
+ 0x8C240323, // 0024 GETMET R9 R1 K35
+ 0x882C0324, // 0025 GETMBR R11 R1 K36
+ 0x8830011F, // 0026 GETMBR R12 R0 K31
+ 0x88301924, // 0027 GETMBR R12 R12 K36
+ 0x7C240600, // 0028 CALL R9 3
+ 0x50100200, // 0029 LDBOOL R4 1 0
+ 0x00140B11, // 002A ADD R5 R5 K17
+ 0x7001FFE3, // 002B JMP #0010
+ 0x80040800, // 002C RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_current_iteration_number
+********************************************************************/
+be_local_closure(class_engine_proxy_get_current_iteration_number, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_engine_proxy, /* shared constants */
+ be_str_weak(get_current_iteration_number),
+ &be_const_str_solidified,
+ ( &(const binstruction[11]) { /* code */
+ 0x6004000C, // 0000 GETGBL R1 G12
+ 0x88080114, // 0001 GETMBR R2 R0 K20
+ 0x7C040200, // 0002 CALL R1 1
+ 0x2404030F, // 0003 GT R1 R1 K15
+ 0x78060003, // 0004 JMPF R1 #0009
+ 0x88040114, // 0005 GETMBR R1 R0 K20
+ 0x5409FFFE, // 0006 LDINT R2 -1
+ 0x94040202, // 0007 GETIDX R1 R1 R2
+ 0x80040200, // 0008 RET 1 R1
+ 0x4C040000, // 0009 LDNIL R1
+ 0x80040200, // 000A RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: push_iteration_context
+********************************************************************/
+be_local_closure(class_engine_proxy_push_iteration_context, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_engine_proxy, /* shared constants */
+ be_str_weak(push_iteration_context),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 5]) { /* code */
+ 0x88080114, // 0000 GETMBR R2 R0 K20
+ 0x8C08050A, // 0001 GETMET R2 R2 K10
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x7C080400, // 0003 CALL R2 2
+ 0x80000000, // 0004 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_animations
+********************************************************************/
+be_local_closure(class_engine_proxy_get_animations, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 1, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_engine_proxy, /* shared constants */
+ be_str_weak(get_animations),
+ &be_const_str_solidified,
+ ( &(const binstruction[22]) { /* code */
+ 0x60040012, // 0000 GETGBL R1 G18
+ 0x7C040000, // 0001 CALL R1 0
+ 0x60080010, // 0002 GETGBL R2 G16
+ 0x880C0108, // 0003 GETMBR R3 R0 K8
+ 0x7C080200, // 0004 CALL R2 1
+ 0xA802000B, // 0005 EXBLK 0 #0012
+ 0x5C0C0400, // 0006 MOVE R3 R2
+ 0x7C0C0000, // 0007 CALL R3 0
+ 0x6010000F, // 0008 GETGBL R4 G15
+ 0x5C140600, // 0009 MOVE R5 R3
+ 0xB81A0400, // 000A GETNGBL R6 K2
+ 0x88180D02, // 000B GETMBR R6 R6 K2
+ 0x7C100400, // 000C CALL R4 2
+ 0x78120002, // 000D JMPF R4 #0011
+ 0x8C10030A, // 000E GETMET R4 R1 K10
+ 0x5C180600, // 000F MOVE R6 R3
+ 0x7C100400, // 0010 CALL R4 2
+ 0x7001FFF3, // 0011 JMP #0006
+ 0x58080025, // 0012 LDCONST R2 K37
+ 0xAC080200, // 0013 CATCH R2 1 0
+ 0xB0080000, // 0014 RAISE 2 R0 R0
+ 0x80040200, // 0015 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+be_local_closure(class_engine_proxy_init, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_engine_proxy, /* shared constants */
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[25]) { /* code */
+ 0x60080003, // 0000 GETGBL R2 G3
+ 0x5C0C0000, // 0001 MOVE R3 R0
+ 0x7C080200, // 0002 CALL R2 1
+ 0x8C080526, // 0003 GETMET R2 R2 K38
+ 0x5C100200, // 0004 MOVE R4 R1
+ 0x7C080400, // 0005 CALL R2 2
+ 0x88080100, // 0006 GETMBR R2 R0 K0
+ 0x8808051F, // 0007 GETMBR R2 R2 K31
+ 0x90023E02, // 0008 SETMBR R0 K31 R2
+ 0x60080012, // 0009 GETGBL R2 G18
+ 0x7C080000, // 000A CALL R2 0
+ 0x90021002, // 000B SETMBR R0 K8 R2
+ 0x60080012, // 000C GETGBL R2 G18
+ 0x7C080000, // 000D CALL R2 0
+ 0x90022002, // 000E SETMBR R0 K16 R2
+ 0x60080012, // 000F GETGBL R2 G18
+ 0x7C080000, // 0010 CALL R2 0
+ 0x90022402, // 0011 SETMBR R0 K18 R2
+ 0x60080012, // 0012 GETGBL R2 G18
+ 0x7C080000, // 0013 CALL R2 0
+ 0x90022802, // 0014 SETMBR R0 K20 R2
+ 0x90021D0F, // 0015 SETMBR R0 K14 K15
+ 0x8C080127, // 0016 GETMET R2 R0 K39
+ 0x7C080200, // 0017 CALL R2 1
+ 0x80000000, // 0018 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified class: engine_proxy
+********************************************************************/
+extern const bclass be_class_Animation;
+be_local_class(engine_proxy,
+ 7,
+ &be_class_Animation,
+ be_nested_map(31,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(get_strip_length, -1), be_const_closure(class_engine_proxy_get_strip_length_closure) },
+ { be_const_key_weak(remove, -1), be_const_closure(class_engine_proxy_remove_closure) },
+ { be_const_key_weak(size_animations, 23), be_const_closure(class_engine_proxy_size_animations_closure) },
+ { be_const_key_weak(_add_animation, 24), be_const_closure(class_engine_proxy__add_animation_closure) },
+ { be_const_key_weak(start, -1), be_const_closure(class_engine_proxy_start_closure) },
+ { be_const_key_weak(value_providers, 19), be_const_var(2) },
+ { be_const_key_weak(setup_template, -1), be_const_closure(class_engine_proxy_setup_template_closure) },
+ { be_const_key_weak(_remove_animation, -1), be_const_closure(class_engine_proxy__remove_animation_closure) },
+ { be_const_key_weak(animations, 6), be_const_var(0) },
+ { be_const_key_weak(update_current_iteration, -1), be_const_closure(class_engine_proxy_update_current_iteration_closure) },
+ { be_const_key_weak(clear, -1), be_const_closure(class_engine_proxy_clear_closure) },
+ { be_const_key_weak(_add_value_provider, 12), be_const_closure(class_engine_proxy__add_value_provider_closure) },
+ { be_const_key_weak(stop, -1), be_const_closure(class_engine_proxy_stop_closure) },
+ { be_const_key_weak(strip_length, -1), be_const_var(3) },
+ { be_const_key_weak(_add_sequence_manager, -1), be_const_closure(class_engine_proxy__add_sequence_manager_closure) },
+ { be_const_key_weak(push_iteration_context, 22), be_const_closure(class_engine_proxy_push_iteration_context_closure) },
+ { be_const_key_weak(add, -1), be_const_closure(class_engine_proxy_add_closure) },
+ { be_const_key_weak(update, -1), be_const_closure(class_engine_proxy_update_closure) },
+ { be_const_key_weak(_remove_value_provider, 27), be_const_closure(class_engine_proxy__remove_value_provider_closure) },
+ { be_const_key_weak(pop_iteration_context, -1), be_const_closure(class_engine_proxy_pop_iteration_context_closure) },
+ { be_const_key_weak(_remove_sequence_manager, -1), be_const_closure(class_engine_proxy__remove_sequence_manager_closure) },
+ { be_const_key_weak(is_empty, -1), be_const_closure(class_engine_proxy_is_empty_closure) },
+ { be_const_key_weak(sequences, -1), be_const_var(1) },
+ { be_const_key_weak(time_ms, 8), be_const_var(6) },
+ { be_const_key_weak(_sort_animations_by_priority, -1), be_const_closure(class_engine_proxy__sort_animations_by_priority_closure) },
+ { be_const_key_weak(render, 15), be_const_closure(class_engine_proxy_render_closure) },
+ { be_const_key_weak(get_current_iteration_number, -1), be_const_closure(class_engine_proxy_get_current_iteration_number_closure) },
+ { be_const_key_weak(iteration_stack, -1), be_const_var(5) },
+ { be_const_key_weak(get_animations, -1), be_const_closure(class_engine_proxy_get_animations_closure) },
+ { be_const_key_weak(init, -1), be_const_closure(class_engine_proxy_init_closure) },
+ { be_const_key_weak(temp_buffer, -1), be_const_var(4) },
+ })),
+ be_str_weak(engine_proxy)
+);
+// compact class 'wave' ktab size: 34, total: 54 (saved 160 bytes)
+static const bvalue be_ktab_class_wave[34] = {
+ /* K0 */ be_nested_str_weak(update),
+ /* K1 */ be_nested_str_weak(wave_speed),
+ /* K2 */ be_const_int(0),
+ /* K3 */ be_nested_str_weak(start_time),
+ /* K4 */ be_nested_str_weak(tasmota),
+ /* K5 */ be_nested_str_weak(scale_uint),
+ /* K6 */ be_nested_str_weak(time_offset),
+ /* K7 */ be_nested_str_weak(_calculate_wave),
+ /* K8 */ be_nested_str_weak(log),
+ /* K9 */ be_nested_str_weak(ANI_X3A_X20_X60wave_X60_X20animation_X20is_X20still_X20in_X20alpha_X20and_X20will_X20be_X20refactored),
+ /* K10 */ be_nested_str_weak(init),
+ /* K11 */ be_nested_str_weak(current_colors),
+ /* K12 */ be_nested_str_weak(wave_table),
+ /* K13 */ be_nested_str_weak(_init_wave_table),
+ /* K14 */ be_nested_str_weak(engine),
+ /* K15 */ be_nested_str_weak(strip_length),
+ /* K16 */ be_nested_str_weak(frequency),
+ /* K17 */ be_nested_str_weak(phase),
+ /* K18 */ be_nested_str_weak(amplitude),
+ /* K19 */ be_nested_str_weak(center_level),
+ /* K20 */ be_nested_str_weak(back_color),
+ /* K21 */ be_nested_str_weak(color),
+ /* K22 */ be_nested_str_weak(size),
+ /* K23 */ be_nested_str_weak(resize),
+ /* K24 */ be_const_int(1),
+ /* K25 */ be_nested_str_weak(animation),
+ /* K26 */ be_nested_str_weak(is_color_provider),
+ /* K27 */ be_nested_str_weak(get_color_for_value),
+ /* K28 */ be_nested_str_weak(resolve_value),
+ /* K29 */ be_nested_str_weak(width),
+ /* K30 */ be_nested_str_weak(set_pixel_color),
+ /* K31 */ be_nested_str_weak(on_param_changed),
+ /* K32 */ be_nested_str_weak(wave_type),
+ /* K33 */ be_const_int(2),
+};
+
+
+extern const bclass be_class_wave;
+
+/********************************************************************
+** Solidified function: update
+********************************************************************/
+be_local_closure(class_wave_update, /* name */
+ be_nested_proto(
+ 11, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_wave, /* shared constants */
+ be_str_weak(update),
+ &be_const_str_solidified,
+ ( &(const binstruction[31]) { /* code */
+ 0x60080003, // 0000 GETGBL R2 G3
+ 0x5C0C0000, // 0001 MOVE R3 R0
+ 0x7C080200, // 0002 CALL R2 1
+ 0x8C080500, // 0003 GETMET R2 R2 K0
+ 0x5C100200, // 0004 MOVE R4 R1
+ 0x7C080400, // 0005 CALL R2 2
+ 0x88080101, // 0006 GETMBR R2 R0 K1
+ 0x240C0502, // 0007 GT R3 R2 K2
+ 0x780E0011, // 0008 JMPF R3 #001B
+ 0x880C0103, // 0009 GETMBR R3 R0 K3
+ 0x040C0203, // 000A SUB R3 R1 R3
+ 0xB8120800, // 000B GETNGBL R4 K4
+ 0x8C100905, // 000C GETMET R4 R4 K5
+ 0x5C180400, // 000D MOVE R6 R2
+ 0x581C0002, // 000E LDCONST R7 K2
+ 0x542200FE, // 000F LDINT R8 255
+ 0x58240002, // 0010 LDCONST R9 K2
+ 0x542A0009, // 0011 LDINT R10 10
+ 0x7C100C00, // 0012 CALL R4 6
+ 0x24140902, // 0013 GT R5 R4 K2
+ 0x78160005, // 0014 JMPF R5 #001B
+ 0x08140604, // 0015 MUL R5 R3 R4
+ 0x541A03E7, // 0016 LDINT R6 1000
+ 0x0C140A06, // 0017 DIV R5 R5 R6
+ 0x541A00FF, // 0018 LDINT R6 256
+ 0x10140A06, // 0019 MOD R5 R5 R6
+ 0x90020C05, // 001A SETMBR R0 K6 R5
+ 0x8C0C0107, // 001B GETMET R3 R0 K7
+ 0x5C140200, // 001C MOVE R5 R1
+ 0x7C0C0400, // 001D CALL R3 2
+ 0x80000000, // 001E RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+be_local_closure(class_wave_init, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_wave, /* shared constants */
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[19]) { /* code */
+ 0xB80A1000, // 0000 GETNGBL R2 K8
+ 0x580C0009, // 0001 LDCONST R3 K9
+ 0x7C080200, // 0002 CALL R2 1
+ 0x60080003, // 0003 GETGBL R2 G3
+ 0x5C0C0000, // 0004 MOVE R3 R0
+ 0x7C080200, // 0005 CALL R2 1
+ 0x8C08050A, // 0006 GETMET R2 R2 K10
+ 0x5C100200, // 0007 MOVE R4 R1
+ 0x7C080400, // 0008 CALL R2 2
+ 0x60080012, // 0009 GETGBL R2 G18
+ 0x7C080000, // 000A CALL R2 0
+ 0x90021602, // 000B SETMBR R0 K11 R2
+ 0x90020D02, // 000C SETMBR R0 K6 K2
+ 0x60080012, // 000D GETGBL R2 G18
+ 0x7C080000, // 000E CALL R2 0
+ 0x90021802, // 000F SETMBR R0 K12 R2
+ 0x8C08010D, // 0010 GETMET R2 R0 K13
+ 0x7C080200, // 0011 CALL R2 1
+ 0x80000000, // 0012 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _calculate_wave
+********************************************************************/
+be_local_closure(class_wave__calculate_wave, /* name */
+ be_nested_proto(
+ 27, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_wave, /* shared constants */
+ be_str_weak(_calculate_wave),
+ &be_const_str_solidified,
+ ( &(const binstruction[168]) { /* code */
+ 0x8808010E, // 0000 GETMBR R2 R0 K14
+ 0x8808050F, // 0001 GETMBR R2 R2 K15
+ 0x880C0110, // 0002 GETMBR R3 R0 K16
+ 0x88100111, // 0003 GETMBR R4 R0 K17
+ 0x88140112, // 0004 GETMBR R5 R0 K18
+ 0x88180113, // 0005 GETMBR R6 R0 K19
+ 0x881C0114, // 0006 GETMBR R7 R0 K20
+ 0x88200115, // 0007 GETMBR R8 R0 K21
+ 0x8824010B, // 0008 GETMBR R9 R0 K11
+ 0x8C241316, // 0009 GETMET R9 R9 K22
+ 0x7C240200, // 000A CALL R9 1
+ 0x20241202, // 000B NE R9 R9 R2
+ 0x78260003, // 000C JMPF R9 #0011
+ 0x8824010B, // 000D GETMBR R9 R0 K11
+ 0x8C241317, // 000E GETMET R9 R9 K23
+ 0x5C2C0400, // 000F MOVE R11 R2
+ 0x7C240400, // 0010 CALL R9 2
+ 0x58240002, // 0011 LDCONST R9 K2
+ 0x14281202, // 0012 LT R10 R9 R2
+ 0x782A0092, // 0013 JMPF R10 #00A7
+ 0xB82A0800, // 0014 GETNGBL R10 K4
+ 0x8C281505, // 0015 GETMET R10 R10 K5
+ 0x5C301200, // 0016 MOVE R12 R9
+ 0x58340002, // 0017 LDCONST R13 K2
+ 0x04380518, // 0018 SUB R14 R2 K24
+ 0x583C0002, // 0019 LDCONST R15 K2
+ 0x544200FE, // 001A LDINT R16 255
+ 0x7C280C00, // 001B CALL R10 6
+ 0x082C1403, // 001C MUL R11 R10 R3
+ 0x5432001F, // 001D LDINT R12 32
+ 0x0C2C160C, // 001E DIV R11 R11 R12
+ 0x002C1604, // 001F ADD R11 R11 R4
+ 0x88300106, // 0020 GETMBR R12 R0 K6
+ 0x002C160C, // 0021 ADD R11 R11 R12
+ 0x543200FE, // 0022 LDINT R12 255
+ 0x2C2C160C, // 0023 AND R11 R11 R12
+ 0x8830010C, // 0024 GETMBR R12 R0 K12
+ 0x9430180B, // 0025 GETIDX R12 R12 R11
+ 0xB8360800, // 0026 GETNGBL R13 K4
+ 0x8C341B05, // 0027 GETMET R13 R13 K5
+ 0x5C3C0A00, // 0028 MOVE R15 R5
+ 0x58400002, // 0029 LDCONST R16 K2
+ 0x544600FE, // 002A LDINT R17 255
+ 0x58480002, // 002B LDCONST R18 K2
+ 0x544E007F, // 002C LDINT R19 128
+ 0x7C340C00, // 002D CALL R13 6
+ 0x58380002, // 002E LDCONST R14 K2
+ 0x543E007F, // 002F LDINT R15 128
+ 0x283C180F, // 0030 GE R15 R12 R15
+ 0x783E000D, // 0031 JMPF R15 #0040
+ 0x543E007F, // 0032 LDINT R15 128
+ 0x043C180F, // 0033 SUB R15 R12 R15
+ 0xB8420800, // 0034 GETNGBL R16 K4
+ 0x8C402105, // 0035 GETMET R16 R16 K5
+ 0x5C481E00, // 0036 MOVE R18 R15
+ 0x584C0002, // 0037 LDCONST R19 K2
+ 0x5452007E, // 0038 LDINT R20 127
+ 0x58540002, // 0039 LDCONST R21 K2
+ 0x5C581A00, // 003A MOVE R22 R13
+ 0x7C400C00, // 003B CALL R16 6
+ 0x5C3C2000, // 003C MOVE R15 R16
+ 0x00400C0F, // 003D ADD R16 R6 R15
+ 0x5C382000, // 003E MOVE R14 R16
+ 0x7002000C, // 003F JMP #004D
+ 0x543E007F, // 0040 LDINT R15 128
+ 0x043C1E0C, // 0041 SUB R15 R15 R12
+ 0xB8420800, // 0042 GETNGBL R16 K4
+ 0x8C402105, // 0043 GETMET R16 R16 K5
+ 0x5C481E00, // 0044 MOVE R18 R15
+ 0x584C0002, // 0045 LDCONST R19 K2
+ 0x5452007F, // 0046 LDINT R20 128
+ 0x58540002, // 0047 LDCONST R21 K2
+ 0x5C581A00, // 0048 MOVE R22 R13
+ 0x7C400C00, // 0049 CALL R16 6
+ 0x5C3C2000, // 004A MOVE R15 R16
+ 0x04400C0F, // 004B SUB R16 R6 R15
+ 0x5C382000, // 004C MOVE R14 R16
+ 0x543E00FE, // 004D LDINT R15 255
+ 0x243C1C0F, // 004E GT R15 R14 R15
+ 0x783E0001, // 004F JMPF R15 #0052
+ 0x543A00FE, // 0050 LDINT R14 255
+ 0x70020002, // 0051 JMP #0055
+ 0x143C1D02, // 0052 LT R15 R14 K2
+ 0x783E0000, // 0053 JMPF R15 #0055
+ 0x58380002, // 0054 LDCONST R14 K2
+ 0x5C3C0E00, // 0055 MOVE R15 R7
+ 0x54420009, // 0056 LDINT R16 10
+ 0x24401C10, // 0057 GT R16 R14 R16
+ 0x78420049, // 0058 JMPF R16 #00A3
+ 0xB8423200, // 0059 GETNGBL R16 K25
+ 0x8C40211A, // 005A GETMET R16 R16 K26
+ 0x5C481000, // 005B MOVE R18 R8
+ 0x7C400400, // 005C CALL R16 2
+ 0x78420009, // 005D JMPF R16 #0068
+ 0x8840111B, // 005E GETMBR R16 R8 K27
+ 0x4C440000, // 005F LDNIL R17
+ 0x20402011, // 0060 NE R16 R16 R17
+ 0x78420005, // 0061 JMPF R16 #0068
+ 0x8C40111B, // 0062 GETMET R16 R8 K27
+ 0x5C481C00, // 0063 MOVE R18 R14
+ 0x584C0002, // 0064 LDCONST R19 K2
+ 0x7C400600, // 0065 CALL R16 3
+ 0x5C3C2000, // 0066 MOVE R15 R16
+ 0x7002003A, // 0067 JMP #00A3
+ 0x8C40011C, // 0068 GETMET R16 R0 K28
+ 0x5C481000, // 0069 MOVE R18 R8
+ 0x584C0015, // 006A LDCONST R19 K21
+ 0x54520009, // 006B LDINT R20 10
+ 0x08501C14, // 006C MUL R20 R14 R20
+ 0x00500214, // 006D ADD R20 R1 R20
+ 0x7C400800, // 006E CALL R16 4
+ 0x5C3C2000, // 006F MOVE R15 R16
+ 0x54420017, // 0070 LDINT R16 24
+ 0x3C401E10, // 0071 SHR R16 R15 R16
+ 0x544600FE, // 0072 LDINT R17 255
+ 0x2C402011, // 0073 AND R16 R16 R17
+ 0x5446000F, // 0074 LDINT R17 16
+ 0x3C441E11, // 0075 SHR R17 R15 R17
+ 0x544A00FE, // 0076 LDINT R18 255
+ 0x2C442212, // 0077 AND R17 R17 R18
+ 0x544A0007, // 0078 LDINT R18 8
+ 0x3C481E12, // 0079 SHR R18 R15 R18
+ 0x544E00FE, // 007A LDINT R19 255
+ 0x2C482413, // 007B AND R18 R18 R19
+ 0x544E00FE, // 007C LDINT R19 255
+ 0x2C4C1E13, // 007D AND R19 R15 R19
+ 0xB8520800, // 007E GETNGBL R20 K4
+ 0x8C502905, // 007F GETMET R20 R20 K5
+ 0x5C581C00, // 0080 MOVE R22 R14
+ 0x585C0002, // 0081 LDCONST R23 K2
+ 0x546200FE, // 0082 LDINT R24 255
+ 0x58640002, // 0083 LDCONST R25 K2
+ 0x5C682200, // 0084 MOVE R26 R17
+ 0x7C500C00, // 0085 CALL R20 6
+ 0x5C442800, // 0086 MOVE R17 R20
+ 0xB8520800, // 0087 GETNGBL R20 K4
+ 0x8C502905, // 0088 GETMET R20 R20 K5
+ 0x5C581C00, // 0089 MOVE R22 R14
+ 0x585C0002, // 008A LDCONST R23 K2
+ 0x546200FE, // 008B LDINT R24 255
+ 0x58640002, // 008C LDCONST R25 K2
+ 0x5C682400, // 008D MOVE R26 R18
+ 0x7C500C00, // 008E CALL R20 6
+ 0x5C482800, // 008F MOVE R18 R20
+ 0xB8520800, // 0090 GETNGBL R20 K4
+ 0x8C502905, // 0091 GETMET R20 R20 K5
+ 0x5C581C00, // 0092 MOVE R22 R14
+ 0x585C0002, // 0093 LDCONST R23 K2
+ 0x546200FE, // 0094 LDINT R24 255
+ 0x58640002, // 0095 LDCONST R25 K2
+ 0x5C682600, // 0096 MOVE R26 R19
+ 0x7C500C00, // 0097 CALL R20 6
+ 0x5C4C2800, // 0098 MOVE R19 R20
+ 0x54520017, // 0099 LDINT R20 24
+ 0x38502014, // 009A SHL R20 R16 R20
+ 0x5456000F, // 009B LDINT R21 16
+ 0x38542215, // 009C SHL R21 R17 R21
+ 0x30502815, // 009D OR R20 R20 R21
+ 0x54560007, // 009E LDINT R21 8
+ 0x38542415, // 009F SHL R21 R18 R21
+ 0x30502815, // 00A0 OR R20 R20 R21
+ 0x30502813, // 00A1 OR R20 R20 R19
+ 0x5C3C2800, // 00A2 MOVE R15 R20
+ 0x8840010B, // 00A3 GETMBR R16 R0 K11
+ 0x9840120F, // 00A4 SETIDX R16 R9 R15
+ 0x00241318, // 00A5 ADD R9 R9 K24
+ 0x7001FF6A, // 00A6 JMP #0012
+ 0x80000000, // 00A7 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: render
+********************************************************************/
+be_local_closure(class_wave_render, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 4, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_wave, /* shared constants */
+ be_str_weak(render),
+ &be_const_str_solidified,
+ ( &(const binstruction[20]) { /* code */
+ 0x58100002, // 0000 LDCONST R4 K2
+ 0x14140803, // 0001 LT R5 R4 R3
+ 0x7816000E, // 0002 JMPF R5 #0012
+ 0x8814031D, // 0003 GETMBR R5 R1 K29
+ 0x14140805, // 0004 LT R5 R4 R5
+ 0x78160009, // 0005 JMPF R5 #0010
+ 0x8814010B, // 0006 GETMBR R5 R0 K11
+ 0x8C140B16, // 0007 GETMET R5 R5 K22
+ 0x7C140200, // 0008 CALL R5 1
+ 0x14140805, // 0009 LT R5 R4 R5
+ 0x78160004, // 000A JMPF R5 #0010
+ 0x8C14031E, // 000B GETMET R5 R1 K30
+ 0x5C1C0800, // 000C MOVE R7 R4
+ 0x8820010B, // 000D GETMBR R8 R0 K11
+ 0x94201004, // 000E GETIDX R8 R8 R4
+ 0x7C140600, // 000F CALL R5 3
+ 0x00100918, // 0010 ADD R4 R4 K24
+ 0x7001FFEE, // 0011 JMP #0001
+ 0x50140200, // 0012 LDBOOL R5 1 0
+ 0x80040A00, // 0013 RET 1 R5
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: on_param_changed
+********************************************************************/
+be_local_closure(class_wave_on_param_changed, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 3, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_wave, /* shared constants */
+ be_str_weak(on_param_changed),
+ &be_const_str_solidified,
+ ( &(const binstruction[12]) { /* code */
+ 0x600C0003, // 0000 GETGBL R3 G3
+ 0x5C100000, // 0001 MOVE R4 R0
+ 0x7C0C0200, // 0002 CALL R3 1
+ 0x8C0C071F, // 0003 GETMET R3 R3 K31
+ 0x5C140200, // 0004 MOVE R5 R1
+ 0x5C180400, // 0005 MOVE R6 R2
+ 0x7C0C0600, // 0006 CALL R3 3
+ 0x1C0C0320, // 0007 EQ R3 R1 K32
+ 0x780E0001, // 0008 JMPF R3 #000B
+ 0x8C0C010D, // 0009 GETMET R3 R0 K13
+ 0x7C0C0200, // 000A CALL R3 1
+ 0x80000000, // 000B RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _init_wave_table
+********************************************************************/
+be_local_closure(class_wave__init_wave_table, /* name */
+ be_nested_proto(
+ 12, /* nstack */
+ 1, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_wave, /* shared constants */
+ be_str_weak(_init_wave_table),
+ &be_const_str_solidified,
+ ( &(const binstruction[108]) { /* code */
+ 0x8804010C, // 0000 GETMBR R1 R0 K12
+ 0x8C040317, // 0001 GETMET R1 R1 K23
+ 0x540E00FF, // 0002 LDINT R3 256
+ 0x7C040400, // 0003 CALL R1 2
+ 0x88040120, // 0004 GETMBR R1 R0 K32
+ 0x58080002, // 0005 LDCONST R2 K2
+ 0x540E00FF, // 0006 LDINT R3 256
+ 0x140C0403, // 0007 LT R3 R2 R3
+ 0x780E0061, // 0008 JMPF R3 #006B
+ 0x580C0002, // 0009 LDCONST R3 K2
+ 0x1C100302, // 000A EQ R4 R1 K2
+ 0x78120035, // 000B JMPF R4 #0042
+ 0x5412003F, // 000C LDINT R4 64
+ 0x10100404, // 000D MOD R4 R2 R4
+ 0x5416003F, // 000E LDINT R5 64
+ 0x14140405, // 000F LT R5 R2 R5
+ 0x78160009, // 0010 JMPF R5 #001B
+ 0xB8160800, // 0011 GETNGBL R5 K4
+ 0x8C140B05, // 0012 GETMET R5 R5 K5
+ 0x5C1C0800, // 0013 MOVE R7 R4
+ 0x58200002, // 0014 LDCONST R8 K2
+ 0x5426003F, // 0015 LDINT R9 64
+ 0x542A007F, // 0016 LDINT R10 128
+ 0x542E00FE, // 0017 LDINT R11 255
+ 0x7C140C00, // 0018 CALL R5 6
+ 0x5C0C0A00, // 0019 MOVE R3 R5
+ 0x70020025, // 001A JMP #0041
+ 0x5416007F, // 001B LDINT R5 128
+ 0x14140405, // 001C LT R5 R2 R5
+ 0x7816000A, // 001D JMPF R5 #0029
+ 0xB8160800, // 001E GETNGBL R5 K4
+ 0x8C140B05, // 001F GETMET R5 R5 K5
+ 0x541E007F, // 0020 LDINT R7 128
+ 0x041C0E02, // 0021 SUB R7 R7 R2
+ 0x58200002, // 0022 LDCONST R8 K2
+ 0x5426003F, // 0023 LDINT R9 64
+ 0x542A007F, // 0024 LDINT R10 128
+ 0x542E00FE, // 0025 LDINT R11 255
+ 0x7C140C00, // 0026 CALL R5 6
+ 0x5C0C0A00, // 0027 MOVE R3 R5
+ 0x70020017, // 0028 JMP #0041
+ 0x541600BF, // 0029 LDINT R5 192
+ 0x14140405, // 002A LT R5 R2 R5
+ 0x7816000A, // 002B JMPF R5 #0037
+ 0xB8160800, // 002C GETNGBL R5 K4
+ 0x8C140B05, // 002D GETMET R5 R5 K5
+ 0x541E007F, // 002E LDINT R7 128
+ 0x041C0407, // 002F SUB R7 R2 R7
+ 0x58200002, // 0030 LDCONST R8 K2
+ 0x5426003F, // 0031 LDINT R9 64
+ 0x542A007F, // 0032 LDINT R10 128
+ 0x582C0002, // 0033 LDCONST R11 K2
+ 0x7C140C00, // 0034 CALL R5 6
+ 0x5C0C0A00, // 0035 MOVE R3 R5
+ 0x70020009, // 0036 JMP #0041
+ 0xB8160800, // 0037 GETNGBL R5 K4
+ 0x8C140B05, // 0038 GETMET R5 R5 K5
+ 0x541E00FF, // 0039 LDINT R7 256
+ 0x041C0E02, // 003A SUB R7 R7 R2
+ 0x58200002, // 003B LDCONST R8 K2
+ 0x5426003F, // 003C LDINT R9 64
+ 0x542A007F, // 003D LDINT R10 128
+ 0x582C0002, // 003E LDCONST R11 K2
+ 0x7C140C00, // 003F CALL R5 6
+ 0x5C0C0A00, // 0040 MOVE R3 R5
+ 0x70020024, // 0041 JMP #0067
+ 0x1C100318, // 0042 EQ R4 R1 K24
+ 0x78120017, // 0043 JMPF R4 #005C
+ 0x5412007F, // 0044 LDINT R4 128
+ 0x14100404, // 0045 LT R4 R2 R4
+ 0x78120009, // 0046 JMPF R4 #0051
+ 0xB8120800, // 0047 GETNGBL R4 K4
+ 0x8C100905, // 0048 GETMET R4 R4 K5
+ 0x5C180400, // 0049 MOVE R6 R2
+ 0x581C0002, // 004A LDCONST R7 K2
+ 0x5422007F, // 004B LDINT R8 128
+ 0x58240002, // 004C LDCONST R9 K2
+ 0x542A00FE, // 004D LDINT R10 255
+ 0x7C100C00, // 004E CALL R4 6
+ 0x5C0C0800, // 004F MOVE R3 R4
+ 0x70020009, // 0050 JMP #005B
+ 0xB8120800, // 0051 GETNGBL R4 K4
+ 0x8C100905, // 0052 GETMET R4 R4 K5
+ 0x541A00FF, // 0053 LDINT R6 256
+ 0x04180C02, // 0054 SUB R6 R6 R2
+ 0x581C0002, // 0055 LDCONST R7 K2
+ 0x5422007F, // 0056 LDINT R8 128
+ 0x58240002, // 0057 LDCONST R9 K2
+ 0x542A00FE, // 0058 LDINT R10 255
+ 0x7C100C00, // 0059 CALL R4 6
+ 0x5C0C0800, // 005A MOVE R3 R4
+ 0x7002000A, // 005B JMP #0067
+ 0x1C100321, // 005C EQ R4 R1 K33
+ 0x78120007, // 005D JMPF R4 #0066
+ 0x5412007F, // 005E LDINT R4 128
+ 0x14100404, // 005F LT R4 R2 R4
+ 0x78120001, // 0060 JMPF R4 #0063
+ 0x541200FE, // 0061 LDINT R4 255
+ 0x70020000, // 0062 JMP #0064
+ 0x58100002, // 0063 LDCONST R4 K2
+ 0x5C0C0800, // 0064 MOVE R3 R4
+ 0x70020000, // 0065 JMP #0067
+ 0x5C0C0400, // 0066 MOVE R3 R2
+ 0x8810010C, // 0067 GETMBR R4 R0 K12
+ 0x98100403, // 0068 SETIDX R4 R2 R3
+ 0x00080518, // 0069 ADD R2 R2 K24
+ 0x7001FF9A, // 006A JMP #0006
+ 0x80000000, // 006B RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified class: wave
+********************************************************************/
+extern const bclass be_class_Animation;
+be_local_class(wave,
+ 3,
+ &be_class_Animation,
+ be_nested_map(10,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(time_offset, -1), be_const_var(1) },
+ { be_const_key_weak(current_colors, -1), be_const_var(0) },
+ { be_const_key_weak(on_param_changed, -1), be_const_closure(class_wave_on_param_changed_closure) },
+ { be_const_key_weak(PARAMS, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(8,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(phase, 7), be_const_bytes_instance(07000001FF000000) },
+ { be_const_key_weak(center_level, 3), be_const_bytes_instance(07000001FF00018000) },
+ { be_const_key_weak(amplitude, -1), be_const_bytes_instance(07000001FF00018000) },
+ { be_const_key_weak(frequency, 5), be_const_bytes_instance(07000001FF000020) },
+ { be_const_key_weak(wave_speed, -1), be_const_bytes_instance(07000001FF000032) },
+ { be_const_key_weak(wave_type, -1), be_const_bytes_instance(07000000030000) },
+ { be_const_key_weak(back_color, -1), be_const_bytes_instance(0402000000FF) },
+ { be_const_key_weak(color, -1), be_const_bytes_instance(04020000FFFF) },
+ })) ) } )) },
+ { be_const_key_weak(update, -1), be_const_closure(class_wave_update_closure) },
+ { be_const_key_weak(wave_table, 8), be_const_var(2) },
+ { be_const_key_weak(_calculate_wave, -1), be_const_closure(class_wave__calculate_wave_closure) },
+ { be_const_key_weak(render, 2), be_const_closure(class_wave_render_closure) },
+ { be_const_key_weak(init, -1), be_const_closure(class_wave_init_closure) },
+ { be_const_key_weak(_init_wave_table, -1), be_const_closure(class_wave__init_wave_table_closure) },
+ })),
+ be_str_weak(wave)
+);
+// compact class 'palette_meter' ktab size: 26, total: 34 (saved 64 bytes)
+static const bvalue be_ktab_class_palette_meter[26] = {
+ /* K0 */ be_nested_str_weak(peak_hold),
+ /* K1 */ be_const_int(0),
+ /* K2 */ be_nested_str_weak(level),
+ /* K3 */ be_nested_str_weak(_level),
+ /* K4 */ be_nested_str_weak(peak_level),
+ /* K5 */ be_nested_str_weak(peak_time),
+ /* K6 */ be_nested_str_weak(update),
+ /* K7 */ be_nested_str_weak(get_param),
+ /* K8 */ be_nested_str_weak(color_source),
+ /* K9 */ be_nested_str_weak(start_time),
+ /* K10 */ be_nested_str_weak(tasmota),
+ /* K11 */ be_nested_str_weak(scale_uint),
+ /* K12 */ be_const_int(1),
+ /* K13 */ be_nested_str_weak(animation),
+ /* K14 */ be_nested_str_weak(color_provider),
+ /* K15 */ be_nested_str_weak(get_lut),
+ /* K16 */ be_nested_str_weak(LUT_FACTOR),
+ /* K17 */ be_nested_str_weak(pixels),
+ /* K18 */ be_nested_str_weak(_buffer),
+ /* K19 */ be_nested_str_weak(value_buffer),
+ /* K20 */ be_const_int(2),
+ /* K21 */ be_const_int(3),
+ /* K22 */ be_nested_str_weak(get_color_for_value),
+ /* K23 */ be_nested_str_weak(set_pixel_color),
+ /* K24 */ be_nested_str_weak(init),
+ /* K25 */ be_nested_str_weak(shift_period),
+};
+
+
+extern const bclass be_class_palette_meter;
+
+/********************************************************************
+** Solidified function: update
+********************************************************************/
+be_local_closure(class_palette_meter_update, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_palette_meter, /* shared constants */
+ be_str_weak(update),
+ &be_const_str_solidified,
+ ( &(const binstruction[26]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x240C0501, // 0001 GT R3 R2 K1
+ 0x780E000F, // 0002 JMPF R3 #0013
+ 0x880C0102, // 0003 GETMBR R3 R0 K2
+ 0x90020603, // 0004 SETMBR R0 K3 R3
+ 0x88100104, // 0005 GETMBR R4 R0 K4
+ 0x28140604, // 0006 GE R5 R3 R4
+ 0x78160002, // 0007 JMPF R5 #000B
+ 0x90020803, // 0008 SETMBR R0 K4 R3
+ 0x90020A01, // 0009 SETMBR R0 K5 R1
+ 0x70020007, // 000A JMP #0013
+ 0x24140901, // 000B GT R5 R4 K1
+ 0x78160005, // 000C JMPF R5 #0013
+ 0x88140105, // 000D GETMBR R5 R0 K5
+ 0x04140205, // 000E SUB R5 R1 R5
+ 0x24180A02, // 000F GT R6 R5 R2
+ 0x781A0001, // 0010 JMPF R6 #0013
+ 0x90020803, // 0011 SETMBR R0 K4 R3
+ 0x90020A01, // 0012 SETMBR R0 K5 R1
+ 0x600C0003, // 0013 GETGBL R3 G3
+ 0x5C100000, // 0014 MOVE R4 R0
+ 0x7C0C0200, // 0015 CALL R3 1
+ 0x8C0C0706, // 0016 GETMET R3 R3 K6
+ 0x5C140200, // 0017 MOVE R5 R1
+ 0x7C0C0400, // 0018 CALL R3 2
+ 0x80000000, // 0019 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: render
+********************************************************************/
+be_local_closure(class_palette_meter_render, /* name */
+ be_nested_proto(
+ 21, /* nstack */
+ 4, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_palette_meter, /* shared constants */
+ be_str_weak(render),
+ &be_const_str_solidified,
+ ( &(const binstruction[113]) { /* code */
+ 0x8C100107, // 0000 GETMET R4 R0 K7
+ 0x58180008, // 0001 LDCONST R6 K8
+ 0x7C100400, // 0002 CALL R4 2
+ 0x4C140000, // 0003 LDNIL R5
+ 0x1C140805, // 0004 EQ R5 R4 R5
+ 0x78160001, // 0005 JMPF R5 #0008
+ 0x50140000, // 0006 LDBOOL R5 0 0
+ 0x80040A00, // 0007 RET 1 R5
+ 0x88140109, // 0008 GETMBR R5 R0 K9
+ 0x04140405, // 0009 SUB R5 R2 R5
+ 0x88180103, // 000A GETMBR R6 R0 K3
+ 0x881C0100, // 000B GETMBR R7 R0 K0
+ 0xB8221400, // 000C GETNGBL R8 K10
+ 0x8C20110B, // 000D GETMET R8 R8 K11
+ 0x5C280C00, // 000E MOVE R10 R6
+ 0x582C0001, // 000F LDCONST R11 K1
+ 0x543200FE, // 0010 LDINT R12 255
+ 0x58340001, // 0011 LDCONST R13 K1
+ 0x5C380600, // 0012 MOVE R14 R3
+ 0x7C200C00, // 0013 CALL R8 6
+ 0x5425FFFE, // 0014 LDINT R9 -1
+ 0x24280F01, // 0015 GT R10 R7 K1
+ 0x782A000C, // 0016 JMPF R10 #0024
+ 0x88280104, // 0017 GETMBR R10 R0 K4
+ 0x24281406, // 0018 GT R10 R10 R6
+ 0x782A0009, // 0019 JMPF R10 #0024
+ 0xB82A1400, // 001A GETNGBL R10 K10
+ 0x8C28150B, // 001B GETMET R10 R10 K11
+ 0x88300104, // 001C GETMBR R12 R0 K4
+ 0x58340001, // 001D LDCONST R13 K1
+ 0x543A00FE, // 001E LDINT R14 255
+ 0x583C0001, // 001F LDCONST R15 K1
+ 0x5C400600, // 0020 MOVE R16 R3
+ 0x7C280C00, // 0021 CALL R10 6
+ 0x0428150C, // 0022 SUB R10 R10 K12
+ 0x5C241400, // 0023 MOVE R9 R10
+ 0x4C280000, // 0024 LDNIL R10
+ 0x602C000F, // 0025 GETGBL R11 G15
+ 0x5C300800, // 0026 MOVE R12 R4
+ 0xB8361A00, // 0027 GETNGBL R13 K13
+ 0x88341B0E, // 0028 GETMBR R13 R13 K14
+ 0x7C2C0400, // 0029 CALL R11 2
+ 0x782E0028, // 002A JMPF R11 #0054
+ 0x8C2C090F, // 002B GETMET R11 R4 K15
+ 0x7C2C0200, // 002C CALL R11 1
+ 0x5C281600, // 002D MOVE R10 R11
+ 0x4C300000, // 002E LDNIL R12
+ 0x202C160C, // 002F NE R11 R11 R12
+ 0x782E0022, // 0030 JMPF R11 #0054
+ 0x882C0910, // 0031 GETMBR R11 R4 K16
+ 0x543200FF, // 0032 LDINT R12 256
+ 0x3C30180B, // 0033 SHR R12 R12 R11
+ 0x58340001, // 0034 LDCONST R13 K1
+ 0x88380311, // 0035 GETMBR R14 R1 K17
+ 0x8C381D12, // 0036 GETMET R14 R14 K18
+ 0x7C380200, // 0037 CALL R14 1
+ 0x8C3C1512, // 0038 GETMET R15 R10 K18
+ 0x7C3C0200, // 0039 CALL R15 1
+ 0x88400113, // 003A GETMBR R16 R0 K19
+ 0x8C402112, // 003B GETMET R16 R16 K18
+ 0x7C400200, // 003C CALL R16 1
+ 0x14441A08, // 003D LT R17 R13 R8
+ 0x78460013, // 003E JMPF R17 #0053
+ 0x9444200D, // 003F GETIDX R17 R16 R13
+ 0x3C48220B, // 0040 SHR R18 R17 R11
+ 0x544E00FE, // 0041 LDINT R19 255
+ 0x1C4C2213, // 0042 EQ R19 R17 R19
+ 0x784E0000, // 0043 JMPF R19 #0045
+ 0x5C481800, // 0044 MOVE R18 R12
+ 0x384C2514, // 0045 SHL R19 R18 K20
+ 0x004C1E13, // 0046 ADD R19 R15 R19
+ 0x94502701, // 0047 GETIDX R20 R19 K1
+ 0x983A0214, // 0048 SETIDX R14 K1 R20
+ 0x9450270C, // 0049 GETIDX R20 R19 K12
+ 0x983A1814, // 004A SETIDX R14 K12 R20
+ 0x94502714, // 004B GETIDX R20 R19 K20
+ 0x983A2814, // 004C SETIDX R14 K20 R20
+ 0x94502715, // 004D GETIDX R20 R19 K21
+ 0x983A2A14, // 004E SETIDX R14 K21 R20
+ 0x00341B0C, // 004F ADD R13 R13 K12
+ 0x54520003, // 0050 LDINT R20 4
+ 0x00381C14, // 0051 ADD R14 R14 R20
+ 0x7001FFE9, // 0052 JMP #003D
+ 0x7002000E, // 0053 JMP #0063
+ 0x582C0001, // 0054 LDCONST R11 K1
+ 0x14301608, // 0055 LT R12 R11 R8
+ 0x7832000B, // 0056 JMPF R12 #0063
+ 0x88300113, // 0057 GETMBR R12 R0 K19
+ 0x9430180B, // 0058 GETIDX R12 R12 R11
+ 0x8C340916, // 0059 GETMET R13 R4 K22
+ 0x5C3C1800, // 005A MOVE R15 R12
+ 0x5C400A00, // 005B MOVE R16 R5
+ 0x7C340600, // 005C CALL R13 3
+ 0x8C380317, // 005D GETMET R14 R1 K23
+ 0x5C401600, // 005E MOVE R16 R11
+ 0x5C441A00, // 005F MOVE R17 R13
+ 0x7C380600, // 0060 CALL R14 3
+ 0x002C170C, // 0061 ADD R11 R11 K12
+ 0x7001FFF1, // 0062 JMP #0055
+ 0x282C1208, // 0063 GE R11 R9 R8
+ 0x782E0009, // 0064 JMPF R11 #006F
+ 0x882C0113, // 0065 GETMBR R11 R0 K19
+ 0x942C1609, // 0066 GETIDX R11 R11 R9
+ 0x8C300916, // 0067 GETMET R12 R4 K22
+ 0x5C381600, // 0068 MOVE R14 R11
+ 0x5C3C0A00, // 0069 MOVE R15 R5
+ 0x7C300600, // 006A CALL R12 3
+ 0x8C340317, // 006B GETMET R13 R1 K23
+ 0x5C3C1200, // 006C MOVE R15 R9
+ 0x5C401800, // 006D MOVE R16 R12
+ 0x7C340600, // 006E CALL R13 3
+ 0x502C0200, // 006F LDBOOL R11 1 0
+ 0x80041600, // 0070 RET 1 R11
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+be_local_closure(class_palette_meter_init, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_palette_meter, /* shared constants */
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[11]) { /* code */
+ 0x60080003, // 0000 GETGBL R2 G3
+ 0x5C0C0000, // 0001 MOVE R3 R0
+ 0x7C080200, // 0002 CALL R2 1
+ 0x8C080518, // 0003 GETMET R2 R2 K24
+ 0x5C100200, // 0004 MOVE R4 R1
+ 0x7C080400, // 0005 CALL R2 2
+ 0x90020901, // 0006 SETMBR R0 K4 K1
+ 0x90020B01, // 0007 SETMBR R0 K5 K1
+ 0x90020701, // 0008 SETMBR R0 K3 K1
+ 0x90023301, // 0009 SETMBR R0 K25 K1
+ 0x80000000, // 000A RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified class: palette_meter
+********************************************************************/
+extern const bclass be_class_palette_gradient;
+be_local_class(palette_meter,
+ 3,
+ &be_class_palette_gradient,
+ be_nested_map(7,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(peak_time, -1), be_const_var(1) },
+ { be_const_key_weak(_level, 6), be_const_var(2) },
+ { be_const_key_weak(init, 3), be_const_closure(class_palette_meter_init_closure) },
+ { be_const_key_weak(PARAMS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(2,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(peak_hold, -1), be_const_bytes_instance(05000001E803) },
+ { be_const_key_weak(level, -1), be_const_bytes_instance(07000001FF0001FF00) },
+ })) ) } )) },
+ { be_const_key_weak(peak_level, -1), be_const_var(0) },
+ { be_const_key_weak(render, 2), be_const_closure(class_palette_meter_render_closure) },
+ { be_const_key_weak(update, -1), be_const_closure(class_palette_meter_update_closure) },
+ })),
+ be_str_weak(palette_meter)
+);
+
+/********************************************************************
+** Solidified function: create_closure_value
+********************************************************************/
+be_local_closure(create_closure_value, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 0, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(animation),
+ /* K1 */ be_nested_str_weak(closure_value),
+ /* K2 */ be_nested_str_weak(closure),
+ }),
+ be_str_weak(create_closure_value),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 6]) { /* code */
+ 0xB80A0000, // 0000 GETNGBL R2 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x5C100000, // 0002 MOVE R4 R0
+ 0x7C080400, // 0003 CALL R2 2
+ 0x900A0401, // 0004 SETMBR R2 K2 R1
+ 0x80040400, // 0005 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+extern const bclass be_class_gradient;
+
+/********************************************************************
+** Solidified function: render
+********************************************************************/
+be_local_closure(class_gradient_render, /* name */
+ be_nested_proto(
+ 13, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[14]) { /* constants */
+ /* K0 */ be_nested_str_weak(color1),
+ /* K1 */ be_nested_str_weak(color2),
+ /* K2 */ be_nested_str_weak(direction),
+ /* K3 */ be_nested_str_weak(gradient_type),
+ /* K4 */ be_nested_str_weak(color),
+ /* K5 */ be_nested_str_weak(back_color),
+ /* K6 */ be_const_int(1),
+ /* K7 */ be_const_int(2),
+ /* K8 */ be_nested_str_weak(pos),
+ /* K9 */ be_nested_str_weak(beacon_size),
+ /* K10 */ be_nested_str_weak(slew_size),
+ /* K11 */ be_const_int(0),
+ /* K12 */ be_nested_str_weak(right_edge),
+ /* K13 */ be_nested_str_weak(render),
+ }),
+ be_str_weak(render),
+ &be_const_str_solidified,
+ ( &(const binstruction[45]) { /* code */
+ 0x88100100, // 0000 GETMBR R4 R0 K0
+ 0x88140101, // 0001 GETMBR R5 R0 K1
+ 0x88180102, // 0002 GETMBR R6 R0 K2
+ 0x881C0103, // 0003 GETMBR R7 R0 K3
+ 0x781A0002, // 0004 JMPF R6 #0008
+ 0x90020805, // 0005 SETMBR R0 K4 R5
+ 0x90020A04, // 0006 SETMBR R0 K5 R4
+ 0x70020001, // 0007 JMP #000A
+ 0x90020804, // 0008 SETMBR R0 K4 R4
+ 0x90020A05, // 0009 SETMBR R0 K5 R5
+ 0x781E000E, // 000A JMPF R7 #001A
+ 0x04200706, // 000B SUB R8 R3 K6
+ 0x0C201107, // 000C DIV R8 R8 K7
+ 0x90021008, // 000D SETMBR R0 K8 R8
+ 0x04260C03, // 000E SUB R9 K6 R3
+ 0x2C241306, // 000F AND R9 R9 K6
+ 0x00260C09, // 0010 ADD R9 K6 R9
+ 0x90021209, // 0011 SETMBR R0 K9 R9
+ 0x2424110B, // 0012 GT R9 R8 K11
+ 0x78260001, // 0013 JMPF R9 #0016
+ 0x04241106, // 0014 SUB R9 R8 K6
+ 0x70020000, // 0015 JMP #0017
+ 0x5824000B, // 0016 LDCONST R9 K11
+ 0x90021409, // 0017 SETMBR R0 K10 R9
+ 0x9002190B, // 0018 SETMBR R0 K12 K11
+ 0x70020009, // 0019 JMP #0024
+ 0x9002110B, // 001A SETMBR R0 K8 K11
+ 0x542203E7, // 001B LDINT R8 1000
+ 0x90021208, // 001C SETMBR R0 K9 R8
+ 0x24200706, // 001D GT R8 R3 K6
+ 0x78220001, // 001E JMPF R8 #0021
+ 0x04200707, // 001F SUB R8 R3 K7
+ 0x70020000, // 0020 JMP #0022
+ 0x5820000B, // 0021 LDCONST R8 K11
+ 0x90021408, // 0022 SETMBR R0 K10 R8
+ 0x90021906, // 0023 SETMBR R0 K12 K6
+ 0x60200003, // 0024 GETGBL R8 G3
+ 0x5C240000, // 0025 MOVE R9 R0
+ 0x7C200200, // 0026 CALL R8 1
+ 0x8C20110D, // 0027 GETMET R8 R8 K13
+ 0x5C280200, // 0028 MOVE R10 R1
+ 0x5C2C0400, // 0029 MOVE R11 R2
+ 0x5C300600, // 002A MOVE R12 R3
+ 0x7C200800, // 002B CALL R8 4
+ 0x80041000, // 002C RET 1 R8
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified class: gradient
+********************************************************************/
+extern const bclass be_class_beacon;
+be_local_class(gradient,
+ 0,
+ &be_class_beacon,
+ be_nested_map(2,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(render, -1), be_const_closure(class_gradient_render_closure) },
+ { be_const_key_weak(PARAMS, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(4,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(color2, -1), be_const_bytes_instance(0402FF0000FF) },
+ { be_const_key_weak(gradient_type, 0), be_const_bytes_instance(1400000200000001) },
+ { be_const_key_weak(direction, 1), be_const_bytes_instance(1400000200000001) },
+ { be_const_key_weak(color1, -1), be_const_bytes_instance(04020000FFFF) },
+ })) ) } )) },
+ })),
+ be_str_weak(gradient)
+);
+
+/********************************************************************
+** Solidified function: animation_init
+********************************************************************/
+be_local_closure(animation_init, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 0, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 1, /* has sup protos */
+ ( &(const struct bproto*[ 1]) {
+ be_nested_proto(
+ 7, /* nstack */
+ 1, /* argc */
+ 0, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(animation),
+ /* K1 */ be_nested_str_weak(introspect),
+ /* K2 */ be_nested_str_weak(contains),
+ /* K3 */ be_nested_str_weak(_ntv),
+ /* K4 */ be_nested_str_weak(undefined),
+ }),
+ be_str_weak(_anonymous_),
+ &be_const_str_solidified,
+ ( &(const binstruction[16]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0xA40A0200, // 0001 IMPORT R2 K1
+ 0x8C0C0502, // 0002 GETMET R3 R2 K2
+ 0x88140303, // 0003 GETMBR R5 R1 K3
+ 0x5C180000, // 0004 MOVE R6 R0
+ 0x7C0C0600, // 0005 CALL R3 3
+ 0x780E0003, // 0006 JMPF R3 #000B
+ 0x880C0303, // 0007 GETMBR R3 R1 K3
+ 0x880C0600, // 0008 GETMBR R3 R3 R0
+ 0x80040600, // 0009 RET 1 R3
+ 0x70020003, // 000A JMP #000F
+ 0x600C000B, // 000B GETGBL R3 G11
+ 0x58100004, // 000C LDCONST R4 K4
+ 0x7C0C0200, // 000D CALL R3 1
+ 0x80040600, // 000E RET 1 R3
+ 0x80000000, // 000F RET 0
+ })
+ ),
+ }),
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(animation),
+ /* K1 */ be_nested_str_weak(_ntv),
+ /* K2 */ be_nested_str_weak(event_manager),
+ /* K3 */ be_nested_str_weak(EventManager),
+ /* K4 */ be_nested_str_weak(member),
+ /* K5 */ be_nested_str_weak(_user_functions),
+ }),
+ be_str_weak(animation_init),
+ &be_const_str_solidified,
+ ( &(const binstruction[13]) { /* code */
+ 0x6004000B, // 0000 GETGBL R1 G11
+ 0x58080000, // 0001 LDCONST R2 K0
+ 0x7C040200, // 0002 CALL R1 1
+ 0x90060200, // 0003 SETMBR R1 K1 R0
+ 0x8C080103, // 0004 GETMET R2 R0 K3
+ 0x7C080200, // 0005 CALL R2 1
+ 0x90060402, // 0006 SETMBR R1 K2 R2
+ 0x84080000, // 0007 CLOSURE R2 P0
+ 0x90060802, // 0008 SETMBR R1 K4 R2
+ 0x60080013, // 0009 GETGBL R2 G19
+ 0x7C080000, // 000A CALL R2 0
+ 0x90060A02, // 000B SETMBR R1 K5 R2
+ 0x80040200, // 000C RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: solid
+********************************************************************/
+be_local_closure(solid, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 0, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(animation),
+ }),
+ be_str_weak(solid),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 5]) { /* code */
+ 0xB8060000, // 0000 GETNGBL R1 K0
+ 0x8C040300, // 0001 GETMET R1 R1 K0
+ 0x5C0C0000, // 0002 MOVE R3 R0
+ 0x7C040400, // 0003 CALL R1 2
+ 0x80040200, // 0004 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+// compact class 'fire' ktab size: 46, total: 70 (saved 192 bytes)
+static const bvalue be_ktab_class_fire[46] = {
+ /* K0 */ be_const_int(0),
+ /* K1 */ be_nested_str_weak(_random),
+ /* K2 */ be_nested_str_weak(width),
+ /* K3 */ be_nested_str_weak(set_pixel_color),
+ /* K4 */ be_nested_str_weak(current_colors),
+ /* K5 */ be_nested_str_weak(get),
+ /* K6 */ be_const_int(1),
+ /* K7 */ be_nested_str_weak(random_seed),
+ /* K8 */ be_const_int(1103515245),
+ /* K9 */ be_const_int(2147483647),
+ /* K10 */ be_nested_str_weak(log),
+ /* K11 */ be_nested_str_weak(ANI_X3A_X20_X60fire_X60_X20animation_X20is_X20still_X20in_X20alpha_X20and_X20will_X20be_X20refactored),
+ /* K12 */ be_nested_str_weak(init),
+ /* K13 */ be_nested_str_weak(heat_map),
+ /* K14 */ be_nested_str_weak(last_update),
+ /* K15 */ be_nested_str_weak(engine),
+ /* K16 */ be_nested_str_weak(time_ms),
+ /* K17 */ be_nested_str_weak(cooling_rate),
+ /* K18 */ be_nested_str_weak(sparking_rate),
+ /* K19 */ be_nested_str_weak(intensity),
+ /* K20 */ be_nested_str_weak(flicker_amount),
+ /* K21 */ be_nested_str_weak(color),
+ /* K22 */ be_nested_str_weak(strip_length),
+ /* K23 */ be_nested_str_weak(size),
+ /* K24 */ be_nested_str_weak(_initialize_buffers),
+ /* K25 */ be_nested_str_weak(_random_range),
+ /* K26 */ be_nested_str_weak(tasmota),
+ /* K27 */ be_nested_str_weak(scale_uint),
+ /* K28 */ be_const_int(2),
+ /* K29 */ be_const_int(3),
+ /* K30 */ be_const_int(-16777216),
+ /* K31 */ be_nested_str_weak(animation),
+ /* K32 */ be_nested_str_weak(rich_palette_color),
+ /* K33 */ be_nested_str_weak(colors),
+ /* K34 */ be_nested_str_weak(PALETTE_FIRE),
+ /* K35 */ be_nested_str_weak(period),
+ /* K36 */ be_nested_str_weak(transition_type),
+ /* K37 */ be_nested_str_weak(brightness),
+ /* K38 */ be_nested_str_weak(is_color_provider),
+ /* K39 */ be_nested_str_weak(get_color_for_value),
+ /* K40 */ be_nested_str_weak(set),
+ /* K41 */ be_nested_str_weak(start),
+ /* K42 */ be_nested_str_weak(clear),
+ /* K43 */ be_nested_str_weak(resize),
+ /* K44 */ be_nested_str_weak(flicker_speed),
+ /* K45 */ be_nested_str_weak(_update_fire_simulation),
+};
+
+
+extern const bclass be_class_fire;
+
+/********************************************************************
+** Solidified function: _random_range
+********************************************************************/
+be_local_closure(class_fire__random_range, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_fire, /* shared constants */
+ be_str_weak(_random_range),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0x18080300, // 0000 LE R2 R1 K0
+ 0x780A0000, // 0001 JMPF R2 #0003
+ 0x80060000, // 0002 RET 1 K0
+ 0x8C080101, // 0003 GETMET R2 R0 K1
+ 0x7C080200, // 0004 CALL R2 1
+ 0x10080401, // 0005 MOD R2 R2 R1
+ 0x80040400, // 0006 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: render
+********************************************************************/
+be_local_closure(class_fire_render, /* name */
+ be_nested_proto(
+ 12, /* nstack */
+ 4, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_fire, /* shared constants */
+ be_str_weak(render),
+ &be_const_str_solidified,
+ ( &(const binstruction[19]) { /* code */
+ 0x58100000, // 0000 LDCONST R4 K0
+ 0x14140803, // 0001 LT R5 R4 R3
+ 0x7816000D, // 0002 JMPF R5 #0011
+ 0x88140302, // 0003 GETMBR R5 R1 K2
+ 0x14140805, // 0004 LT R5 R4 R5
+ 0x78160008, // 0005 JMPF R5 #000F
+ 0x8C140303, // 0006 GETMET R5 R1 K3
+ 0x5C1C0800, // 0007 MOVE R7 R4
+ 0x88200104, // 0008 GETMBR R8 R0 K4
+ 0x8C201105, // 0009 GETMET R8 R8 K5
+ 0x542A0003, // 000A LDINT R10 4
+ 0x0828080A, // 000B MUL R10 R4 R10
+ 0x542DFFFB, // 000C LDINT R11 -4
+ 0x7C200600, // 000D CALL R8 3
+ 0x7C140600, // 000E CALL R5 3
+ 0x00100906, // 000F ADD R4 R4 K6
+ 0x7001FFEF, // 0010 JMP #0001
+ 0x50140200, // 0011 LDBOOL R5 1 0
+ 0x80040A00, // 0012 RET 1 R5
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _random
+********************************************************************/
+be_local_closure(class_fire__random, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_fire, /* shared constants */
+ be_str_weak(_random),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 8]) { /* code */
+ 0x88040107, // 0000 GETMBR R1 R0 K7
+ 0x08040308, // 0001 MUL R1 R1 K8
+ 0x540A3038, // 0002 LDINT R2 12345
+ 0x00040202, // 0003 ADD R1 R1 R2
+ 0x2C040309, // 0004 AND R1 R1 K9
+ 0x90020E01, // 0005 SETMBR R0 K7 R1
+ 0x88040107, // 0006 GETMBR R1 R0 K7
+ 0x80040200, // 0007 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+be_local_closure(class_fire_init, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_fire, /* shared constants */
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[22]) { /* code */
+ 0xB80A1400, // 0000 GETNGBL R2 K10
+ 0x580C000B, // 0001 LDCONST R3 K11
+ 0x7C080200, // 0002 CALL R2 1
+ 0x60080003, // 0003 GETGBL R2 G3
+ 0x5C0C0000, // 0004 MOVE R3 R0
+ 0x7C080200, // 0005 CALL R2 1
+ 0x8C08050C, // 0006 GETMET R2 R2 K12
+ 0x5C100200, // 0007 MOVE R4 R1
+ 0x7C080400, // 0008 CALL R2 2
+ 0x60080015, // 0009 GETGBL R2 G21
+ 0x7C080000, // 000A CALL R2 0
+ 0x90021A02, // 000B SETMBR R0 K13 R2
+ 0x60080015, // 000C GETGBL R2 G21
+ 0x7C080000, // 000D CALL R2 0
+ 0x90020802, // 000E SETMBR R0 K4 R2
+ 0x90021D00, // 000F SETMBR R0 K14 K0
+ 0x8808010F, // 0010 GETMBR R2 R0 K15
+ 0x88080510, // 0011 GETMBR R2 R2 K16
+ 0x540EFFFF, // 0012 LDINT R3 65536
+ 0x10080403, // 0013 MOD R2 R2 R3
+ 0x90020E02, // 0014 SETMBR R0 K7 R2
+ 0x80000000, // 0015 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _update_fire_simulation
+********************************************************************/
+be_local_closure(class_fire__update_fire_simulation, /* name */
+ be_nested_proto(
+ 23, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_fire, /* shared constants */
+ be_str_weak(_update_fire_simulation),
+ &be_const_str_solidified,
+ ( &(const binstruction[232]) { /* code */
+ 0x88080111, // 0000 GETMBR R2 R0 K17
+ 0x880C0112, // 0001 GETMBR R3 R0 K18
+ 0x88100113, // 0002 GETMBR R4 R0 K19
+ 0x88140114, // 0003 GETMBR R5 R0 K20
+ 0x88180115, // 0004 GETMBR R6 R0 K21
+ 0x881C010F, // 0005 GETMBR R7 R0 K15
+ 0x881C0F16, // 0006 GETMBR R7 R7 K22
+ 0x8820010D, // 0007 GETMBR R8 R0 K13
+ 0x8C201117, // 0008 GETMET R8 R8 K23
+ 0x7C200200, // 0009 CALL R8 1
+ 0x20201007, // 000A NE R8 R8 R7
+ 0x74220006, // 000B JMPT R8 #0013
+ 0x88200104, // 000C GETMBR R8 R0 K4
+ 0x8C201117, // 000D GETMET R8 R8 K23
+ 0x7C200200, // 000E CALL R8 1
+ 0x54260003, // 000F LDINT R9 4
+ 0x08240E09, // 0010 MUL R9 R7 R9
+ 0x20201009, // 0011 NE R8 R8 R9
+ 0x78220001, // 0012 JMPF R8 #0015
+ 0x8C200118, // 0013 GETMET R8 R0 K24
+ 0x7C200200, // 0014 CALL R8 1
+ 0x58200000, // 0015 LDCONST R8 K0
+ 0x14241007, // 0016 LT R9 R8 R7
+ 0x78260017, // 0017 JMPF R9 #0030
+ 0x8C240119, // 0018 GETMET R9 R0 K25
+ 0xB82E3400, // 0019 GETNGBL R11 K26
+ 0x8C2C171B, // 001A GETMET R11 R11 K27
+ 0x5C340400, // 001B MOVE R13 R2
+ 0x58380000, // 001C LDCONST R14 K0
+ 0x543E00FE, // 001D LDINT R15 255
+ 0x58400000, // 001E LDCONST R16 K0
+ 0x54460009, // 001F LDINT R17 10
+ 0x7C2C0C00, // 0020 CALL R11 6
+ 0x002C171C, // 0021 ADD R11 R11 K28
+ 0x7C240400, // 0022 CALL R9 2
+ 0x8828010D, // 0023 GETMBR R10 R0 K13
+ 0x94281408, // 0024 GETIDX R10 R10 R8
+ 0x2828120A, // 0025 GE R10 R9 R10
+ 0x782A0002, // 0026 JMPF R10 #002A
+ 0x8828010D, // 0027 GETMBR R10 R0 K13
+ 0x98281100, // 0028 SETIDX R10 R8 K0
+ 0x70020003, // 0029 JMP #002E
+ 0x8828010D, // 002A GETMBR R10 R0 K13
+ 0x942C1408, // 002B GETIDX R11 R10 R8
+ 0x042C1609, // 002C SUB R11 R11 R9
+ 0x9828100B, // 002D SETIDX R10 R8 R11
+ 0x00201106, // 002E ADD R8 R8 K6
+ 0x7001FFE5, // 002F JMP #0016
+ 0x28240F1D, // 0030 GE R9 R7 K29
+ 0x7826001D, // 0031 JMPF R9 #0050
+ 0x04240F06, // 0032 SUB R9 R7 K6
+ 0x2828131C, // 0033 GE R10 R9 K28
+ 0x782A001A, // 0034 JMPF R10 #0050
+ 0x04281306, // 0035 SUB R10 R9 K6
+ 0x882C010D, // 0036 GETMBR R11 R0 K13
+ 0x9428160A, // 0037 GETIDX R10 R11 R10
+ 0x042C131C, // 0038 SUB R11 R9 K28
+ 0x8830010D, // 0039 GETMBR R12 R0 K13
+ 0x942C180B, // 003A GETIDX R11 R12 R11
+ 0x0028140B, // 003B ADD R10 R10 R11
+ 0x042C131C, // 003C SUB R11 R9 K28
+ 0x8830010D, // 003D GETMBR R12 R0 K13
+ 0x942C180B, // 003E GETIDX R11 R12 R11
+ 0x0028140B, // 003F ADD R10 R10 R11
+ 0x0C28151D, // 0040 DIV R10 R10 K29
+ 0x142C1500, // 0041 LT R11 R10 K0
+ 0x782E0001, // 0042 JMPF R11 #0045
+ 0x58280000, // 0043 LDCONST R10 K0
+ 0x70020003, // 0044 JMP #0049
+ 0x542E00FE, // 0045 LDINT R11 255
+ 0x242C140B, // 0046 GT R11 R10 R11
+ 0x782E0000, // 0047 JMPF R11 #0049
+ 0x542A00FE, // 0048 LDINT R10 255
+ 0x882C010D, // 0049 GETMBR R11 R0 K13
+ 0x60300009, // 004A GETGBL R12 G9
+ 0x5C341400, // 004B MOVE R13 R10
+ 0x7C300200, // 004C CALL R12 1
+ 0x982C120C, // 004D SETIDX R11 R9 R12
+ 0x04241306, // 004E SUB R9 R9 K6
+ 0x7001FFE2, // 004F JMP #0033
+ 0x8C240119, // 0050 GETMET R9 R0 K25
+ 0x542E00FE, // 0051 LDINT R11 255
+ 0x7C240400, // 0052 CALL R9 2
+ 0x14241203, // 0053 LT R9 R9 R3
+ 0x7826000F, // 0054 JMPF R9 #0065
+ 0x8C240119, // 0055 GETMET R9 R0 K25
+ 0x542E0006, // 0056 LDINT R11 7
+ 0x7C240400, // 0057 CALL R9 2
+ 0x8C280119, // 0058 GETMET R10 R0 K25
+ 0x5432005E, // 0059 LDINT R12 95
+ 0x7C280400, // 005A CALL R10 2
+ 0x542E009F, // 005B LDINT R11 160
+ 0x0028140B, // 005C ADD R10 R10 R11
+ 0x542E00FE, // 005D LDINT R11 255
+ 0x242C140B, // 005E GT R11 R10 R11
+ 0x782E0000, // 005F JMPF R11 #0061
+ 0x542A00FE, // 0060 LDINT R10 255
+ 0x142C1207, // 0061 LT R11 R9 R7
+ 0x782E0001, // 0062 JMPF R11 #0065
+ 0x882C010D, // 0063 GETMBR R11 R0 K13
+ 0x982C120A, // 0064 SETIDX R11 R9 R10
+ 0x58200000, // 0065 LDCONST R8 K0
+ 0x14241007, // 0066 LT R9 R8 R7
+ 0x7826007E, // 0067 JMPF R9 #00E7
+ 0x8824010D, // 0068 GETMBR R9 R0 K13
+ 0x94241208, // 0069 GETIDX R9 R9 R8
+ 0xB82A3400, // 006A GETNGBL R10 K26
+ 0x8C28151B, // 006B GETMET R10 R10 K27
+ 0x5C301200, // 006C MOVE R12 R9
+ 0x58340000, // 006D LDCONST R13 K0
+ 0x543A00FE, // 006E LDINT R14 255
+ 0x583C0000, // 006F LDCONST R15 K0
+ 0x5C400800, // 0070 MOVE R16 R4
+ 0x7C280C00, // 0071 CALL R10 6
+ 0x5C241400, // 0072 MOVE R9 R10
+ 0x24280B00, // 0073 GT R10 R5 K0
+ 0x782A0012, // 0074 JMPF R10 #0088
+ 0x8C280119, // 0075 GETMET R10 R0 K25
+ 0x5C300A00, // 0076 MOVE R12 R5
+ 0x7C280400, // 0077 CALL R10 2
+ 0x8C2C0119, // 0078 GETMET R11 R0 K25
+ 0x5834001C, // 0079 LDCONST R13 K28
+ 0x7C2C0400, // 007A CALL R11 2
+ 0x1C2C1700, // 007B EQ R11 R11 K0
+ 0x782E0001, // 007C JMPF R11 #007F
+ 0x0024120A, // 007D ADD R9 R9 R10
+ 0x70020004, // 007E JMP #0084
+ 0x242C120A, // 007F GT R11 R9 R10
+ 0x782E0001, // 0080 JMPF R11 #0083
+ 0x0424120A, // 0081 SUB R9 R9 R10
+ 0x70020000, // 0082 JMP #0084
+ 0x58240000, // 0083 LDCONST R9 K0
+ 0x542E00FE, // 0084 LDINT R11 255
+ 0x242C120B, // 0085 GT R11 R9 R11
+ 0x782E0000, // 0086 JMPF R11 #0088
+ 0x542600FE, // 0087 LDINT R9 255
+ 0x5828001E, // 0088 LDCONST R10 K30
+ 0x242C1300, // 0089 GT R11 R9 K0
+ 0x782E0052, // 008A JMPF R11 #00DE
+ 0x5C2C0C00, // 008B MOVE R11 R6
+ 0x4C300000, // 008C LDNIL R12
+ 0x1C30160C, // 008D EQ R12 R11 R12
+ 0x7832000B, // 008E JMPF R12 #009B
+ 0xB8323E00, // 008F GETNGBL R12 K31
+ 0x8C301920, // 0090 GETMET R12 R12 K32
+ 0x8838010F, // 0091 GETMBR R14 R0 K15
+ 0x7C300400, // 0092 CALL R12 2
+ 0xB8363E00, // 0093 GETNGBL R13 K31
+ 0x88341B22, // 0094 GETMBR R13 R13 K34
+ 0x9032420D, // 0095 SETMBR R12 K33 R13
+ 0x90324700, // 0096 SETMBR R12 K35 K0
+ 0x90324906, // 0097 SETMBR R12 K36 K6
+ 0x543600FE, // 0098 LDINT R13 255
+ 0x90324A0D, // 0099 SETMBR R12 K37 R13
+ 0x5C2C1800, // 009A MOVE R11 R12
+ 0xB8323E00, // 009B GETNGBL R12 K31
+ 0x8C301926, // 009C GETMET R12 R12 K38
+ 0x5C381600, // 009D MOVE R14 R11
+ 0x7C300400, // 009E CALL R12 2
+ 0x78320009, // 009F JMPF R12 #00AA
+ 0x88301727, // 00A0 GETMBR R12 R11 K39
+ 0x4C340000, // 00A1 LDNIL R13
+ 0x2030180D, // 00A2 NE R12 R12 R13
+ 0x78320005, // 00A3 JMPF R12 #00AA
+ 0x8C301727, // 00A4 GETMET R12 R11 K39
+ 0x5C381200, // 00A5 MOVE R14 R9
+ 0x583C0000, // 00A6 LDCONST R15 K0
+ 0x7C300600, // 00A7 CALL R12 3
+ 0x5C281800, // 00A8 MOVE R10 R12
+ 0x70020033, // 00A9 JMP #00DE
+ 0x5C281600, // 00AA MOVE R10 R11
+ 0x54320017, // 00AB LDINT R12 24
+ 0x3C30140C, // 00AC SHR R12 R10 R12
+ 0x543600FE, // 00AD LDINT R13 255
+ 0x2C30180D, // 00AE AND R12 R12 R13
+ 0x5436000F, // 00AF LDINT R13 16
+ 0x3C34140D, // 00B0 SHR R13 R10 R13
+ 0x543A00FE, // 00B1 LDINT R14 255
+ 0x2C341A0E, // 00B2 AND R13 R13 R14
+ 0x543A0007, // 00B3 LDINT R14 8
+ 0x3C38140E, // 00B4 SHR R14 R10 R14
+ 0x543E00FE, // 00B5 LDINT R15 255
+ 0x2C381C0F, // 00B6 AND R14 R14 R15
+ 0x543E00FE, // 00B7 LDINT R15 255
+ 0x2C3C140F, // 00B8 AND R15 R10 R15
+ 0xB8423400, // 00B9 GETNGBL R16 K26
+ 0x8C40211B, // 00BA GETMET R16 R16 K27
+ 0x5C481200, // 00BB MOVE R18 R9
+ 0x584C0000, // 00BC LDCONST R19 K0
+ 0x545200FE, // 00BD LDINT R20 255
+ 0x58540000, // 00BE LDCONST R21 K0
+ 0x5C581A00, // 00BF MOVE R22 R13
+ 0x7C400C00, // 00C0 CALL R16 6
+ 0x5C342000, // 00C1 MOVE R13 R16
+ 0xB8423400, // 00C2 GETNGBL R16 K26
+ 0x8C40211B, // 00C3 GETMET R16 R16 K27
+ 0x5C481200, // 00C4 MOVE R18 R9
+ 0x584C0000, // 00C5 LDCONST R19 K0
+ 0x545200FE, // 00C6 LDINT R20 255
+ 0x58540000, // 00C7 LDCONST R21 K0
+ 0x5C581C00, // 00C8 MOVE R22 R14
+ 0x7C400C00, // 00C9 CALL R16 6
+ 0x5C382000, // 00CA MOVE R14 R16
+ 0xB8423400, // 00CB GETNGBL R16 K26
+ 0x8C40211B, // 00CC GETMET R16 R16 K27
+ 0x5C481200, // 00CD MOVE R18 R9
+ 0x584C0000, // 00CE LDCONST R19 K0
+ 0x545200FE, // 00CF LDINT R20 255
+ 0x58540000, // 00D0 LDCONST R21 K0
+ 0x5C581E00, // 00D1 MOVE R22 R15
+ 0x7C400C00, // 00D2 CALL R16 6
+ 0x5C3C2000, // 00D3 MOVE R15 R16
+ 0x54420017, // 00D4 LDINT R16 24
+ 0x38401810, // 00D5 SHL R16 R12 R16
+ 0x5446000F, // 00D6 LDINT R17 16
+ 0x38441A11, // 00D7 SHL R17 R13 R17
+ 0x30402011, // 00D8 OR R16 R16 R17
+ 0x54460007, // 00D9 LDINT R17 8
+ 0x38441C11, // 00DA SHL R17 R14 R17
+ 0x30402011, // 00DB OR R16 R16 R17
+ 0x3040200F, // 00DC OR R16 R16 R15
+ 0x5C282000, // 00DD MOVE R10 R16
+ 0x882C0104, // 00DE GETMBR R11 R0 K4
+ 0x8C2C1728, // 00DF GETMET R11 R11 K40
+ 0x54360003, // 00E0 LDINT R13 4
+ 0x0834100D, // 00E1 MUL R13 R8 R13
+ 0x5C381400, // 00E2 MOVE R14 R10
+ 0x543DFFFB, // 00E3 LDINT R15 -4
+ 0x7C2C0800, // 00E4 CALL R11 4
+ 0x00201106, // 00E5 ADD R8 R8 K6
+ 0x7001FF7E, // 00E6 JMP #0066
+ 0x80000000, // 00E7 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: start
+********************************************************************/
+be_local_closure(class_fire_start, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_fire, /* shared constants */
+ be_str_weak(start),
+ &be_const_str_solidified,
+ ( &(const binstruction[15]) { /* code */
+ 0x60080003, // 0000 GETGBL R2 G3
+ 0x5C0C0000, // 0001 MOVE R3 R0
+ 0x7C080200, // 0002 CALL R2 1
+ 0x8C080529, // 0003 GETMET R2 R2 K41
+ 0x5C100200, // 0004 MOVE R4 R1
+ 0x7C080400, // 0005 CALL R2 2
+ 0x90021D00, // 0006 SETMBR R0 K14 K0
+ 0x8C080118, // 0007 GETMET R2 R0 K24
+ 0x7C080200, // 0008 CALL R2 1
+ 0x8808010F, // 0009 GETMBR R2 R0 K15
+ 0x88080510, // 000A GETMBR R2 R2 K16
+ 0x540EFFFF, // 000B LDINT R3 65536
+ 0x10080403, // 000C MOD R2 R2 R3
+ 0x90020E02, // 000D SETMBR R0 K7 R2
+ 0x80040000, // 000E RET 1 R0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _initialize_buffers
+********************************************************************/
+be_local_closure(class_fire__initialize_buffers, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 1, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_fire, /* shared constants */
+ be_str_weak(_initialize_buffers),
+ &be_const_str_solidified,
+ ( &(const binstruction[30]) { /* code */
+ 0x8804010F, // 0000 GETMBR R1 R0 K15
+ 0x88040316, // 0001 GETMBR R1 R1 K22
+ 0x8808010D, // 0002 GETMBR R2 R0 K13
+ 0x8C08052A, // 0003 GETMET R2 R2 K42
+ 0x7C080200, // 0004 CALL R2 1
+ 0x8808010D, // 0005 GETMBR R2 R0 K13
+ 0x8C08052B, // 0006 GETMET R2 R2 K43
+ 0x5C100200, // 0007 MOVE R4 R1
+ 0x7C080400, // 0008 CALL R2 2
+ 0x88080104, // 0009 GETMBR R2 R0 K4
+ 0x8C08052A, // 000A GETMET R2 R2 K42
+ 0x7C080200, // 000B CALL R2 1
+ 0x88080104, // 000C GETMBR R2 R0 K4
+ 0x8C08052B, // 000D GETMET R2 R2 K43
+ 0x54120003, // 000E LDINT R4 4
+ 0x08100204, // 000F MUL R4 R1 R4
+ 0x7C080400, // 0010 CALL R2 2
+ 0x58080000, // 0011 LDCONST R2 K0
+ 0x140C0401, // 0012 LT R3 R2 R1
+ 0x780E0008, // 0013 JMPF R3 #001D
+ 0x880C0104, // 0014 GETMBR R3 R0 K4
+ 0x8C0C0728, // 0015 GETMET R3 R3 K40
+ 0x54160003, // 0016 LDINT R5 4
+ 0x08140405, // 0017 MUL R5 R2 R5
+ 0x5818001E, // 0018 LDCONST R6 K30
+ 0x541DFFFB, // 0019 LDINT R7 -4
+ 0x7C0C0800, // 001A CALL R3 4
+ 0x00080506, // 001B ADD R2 R2 K6
+ 0x7001FFF4, // 001C JMP #0012
+ 0x80000000, // 001D RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: update
+********************************************************************/
+be_local_closure(class_fire_update, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_fire, /* shared constants */
+ be_str_weak(update),
+ &be_const_str_solidified,
+ ( &(const binstruction[12]) { /* code */
+ 0x8808012C, // 0000 GETMBR R2 R0 K44
+ 0x540E03E7, // 0001 LDINT R3 1000
+ 0x0C0C0602, // 0002 DIV R3 R3 R2
+ 0x8810010E, // 0003 GETMBR R4 R0 K14
+ 0x04100204, // 0004 SUB R4 R1 R4
+ 0x28100803, // 0005 GE R4 R4 R3
+ 0x78120003, // 0006 JMPF R4 #000B
+ 0x90021C01, // 0007 SETMBR R0 K14 R1
+ 0x8C10012D, // 0008 GETMET R4 R0 K45
+ 0x5C180200, // 0009 MOVE R6 R1
+ 0x7C100400, // 000A CALL R4 2
+ 0x80000000, // 000B RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified class: fire
+********************************************************************/
+extern const bclass be_class_Animation;
+be_local_class(fire,
+ 4,
+ &be_class_Animation,
+ be_nested_map(13,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(current_colors, -1), be_const_var(1) },
+ { be_const_key_weak(last_update, 4), be_const_var(2) },
+ { be_const_key_weak(render, -1), be_const_closure(class_fire_render_closure) },
+ { be_const_key_weak(_random_range, 9), be_const_closure(class_fire__random_range_closure) },
+ { be_const_key_weak(_random, -1), be_const_closure(class_fire__random_closure) },
+ { be_const_key_weak(random_seed, -1), be_const_var(3) },
+ { be_const_key_weak(init, -1), be_const_closure(class_fire_init_closure) },
+ { be_const_key_weak(_update_fire_simulation, -1), be_const_closure(class_fire__update_fire_simulation_closure) },
+ { be_const_key_weak(start, -1), be_const_closure(class_fire_start_closure) },
+ { be_const_key_weak(_initialize_buffers, 2), be_const_closure(class_fire__initialize_buffers_closure) },
+ { be_const_key_weak(heat_map, -1), be_const_var(0) },
+ { be_const_key_weak(PARAMS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(5,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(flicker_amount, 4), be_const_bytes_instance(07000001FF000064) },
+ { be_const_key_weak(intensity, 0), be_const_bytes_instance(07000001FF0001B400) },
+ { be_const_key_weak(flicker_speed, -1), be_const_bytes_instance(07000100140008) },
+ { be_const_key_weak(sparking_rate, -1), be_const_bytes_instance(07000001FF000078) },
+ { be_const_key_weak(cooling_rate, -1), be_const_bytes_instance(07000001FF000037) },
+ })) ) } )) },
+ { be_const_key_weak(update, -1), be_const_closure(class_fire_update_closure) },
+ })),
+ be_str_weak(fire)
+);
+// compact class 'comet' ktab size: 18, total: 31 (saved 104 bytes)
+static const bvalue be_ktab_class_comet[18] = {
+ /* K0 */ be_nested_str_weak(head_position),
+ /* K1 */ be_nested_str_weak(color),
+ /* K2 */ be_nested_str_weak(tail_length),
+ /* K3 */ be_nested_str_weak(direction),
+ /* K4 */ be_nested_str_weak(wrap_around),
+ /* K5 */ be_nested_str_weak(fade_factor),
+ /* K6 */ be_const_int(0),
+ /* K7 */ be_const_int(1),
+ /* K8 */ be_nested_str_weak(tasmota),
+ /* K9 */ be_nested_str_weak(scale_uint),
+ /* K10 */ be_nested_str_weak(width),
+ /* K11 */ be_nested_str_weak(set_pixel_color),
+ /* K12 */ be_nested_str_weak(init),
+ /* K13 */ be_nested_str_weak(speed),
+ /* K14 */ be_nested_str_weak(engine),
+ /* K15 */ be_nested_str_weak(strip_length),
+ /* K16 */ be_nested_str_weak(start_time),
+ /* K17 */ be_nested_str_weak(on_param_changed),
+};
+
+
+extern const bclass be_class_comet;
+
+/********************************************************************
+** Solidified function: render
+********************************************************************/
+be_local_closure(class_comet_render, /* name */
+ be_nested_proto(
+ 25, /* nstack */
+ 4, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_comet, /* shared constants */
+ be_str_weak(render),
+ &be_const_str_solidified,
+ ( &(const binstruction[83]) { /* code */
+ 0x88100100, // 0000 GETMBR R4 R0 K0
+ 0x541600FF, // 0001 LDINT R5 256
+ 0x0C100805, // 0002 DIV R4 R4 R5
+ 0x88140101, // 0003 GETMBR R5 R0 K1
+ 0x88180102, // 0004 GETMBR R6 R0 K2
+ 0x881C0103, // 0005 GETMBR R7 R0 K3
+ 0x88200104, // 0006 GETMBR R8 R0 K4
+ 0x88240105, // 0007 GETMBR R9 R0 K5
+ 0x542A0017, // 0008 LDINT R10 24
+ 0x3C280A0A, // 0009 SHR R10 R5 R10
+ 0x542E00FE, // 000A LDINT R11 255
+ 0x2C28140B, // 000B AND R10 R10 R11
+ 0x542E000F, // 000C LDINT R11 16
+ 0x3C2C0A0B, // 000D SHR R11 R5 R11
+ 0x543200FE, // 000E LDINT R12 255
+ 0x2C2C160C, // 000F AND R11 R11 R12
+ 0x54320007, // 0010 LDINT R12 8
+ 0x3C300A0C, // 0011 SHR R12 R5 R12
+ 0x543600FE, // 0012 LDINT R13 255
+ 0x2C30180D, // 0013 AND R12 R12 R13
+ 0x543600FE, // 0014 LDINT R13 255
+ 0x2C340A0D, // 0015 AND R13 R5 R13
+ 0x58380006, // 0016 LDCONST R14 K6
+ 0x143C1C06, // 0017 LT R15 R14 R6
+ 0x783E0037, // 0018 JMPF R15 #0051
+ 0x083C1C07, // 0019 MUL R15 R14 R7
+ 0x043C080F, // 001A SUB R15 R4 R15
+ 0x20401106, // 001B NE R16 R8 K6
+ 0x78420008, // 001C JMPF R16 #0026
+ 0x28401E03, // 001D GE R16 R15 R3
+ 0x78420001, // 001E JMPF R16 #0021
+ 0x043C1E03, // 001F SUB R15 R15 R3
+ 0x7001FFFB, // 0020 JMP #001D
+ 0x14401F06, // 0021 LT R16 R15 K6
+ 0x78420001, // 0022 JMPF R16 #0025
+ 0x003C1E03, // 0023 ADD R15 R15 R3
+ 0x7001FFFB, // 0024 JMP #0021
+ 0x70020005, // 0025 JMP #002C
+ 0x14401F06, // 0026 LT R16 R15 K6
+ 0x74420001, // 0027 JMPT R16 #002A
+ 0x28401E03, // 0028 GE R16 R15 R3
+ 0x78420001, // 0029 JMPF R16 #002C
+ 0x00381D07, // 002A ADD R14 R14 K7
+ 0x7001FFEA, // 002B JMP #0017
+ 0x544200FE, // 002C LDINT R16 255
+ 0x24441D06, // 002D GT R17 R14 K6
+ 0x7846000D, // 002E JMPF R17 #003D
+ 0x58440006, // 002F LDCONST R17 K6
+ 0x1448220E, // 0030 LT R18 R17 R14
+ 0x784A000A, // 0031 JMPF R18 #003D
+ 0xB84A1000, // 0032 GETNGBL R18 K8
+ 0x8C482509, // 0033 GETMET R18 R18 K9
+ 0x5C502000, // 0034 MOVE R20 R16
+ 0x58540006, // 0035 LDCONST R21 K6
+ 0x545A00FE, // 0036 LDINT R22 255
+ 0x585C0006, // 0037 LDCONST R23 K6
+ 0x5C601200, // 0038 MOVE R24 R9
+ 0x7C480C00, // 0039 CALL R18 6
+ 0x5C402400, // 003A MOVE R16 R18
+ 0x00442307, // 003B ADD R17 R17 K7
+ 0x7001FFF2, // 003C JMP #0030
+ 0x54460017, // 003D LDINT R17 24
+ 0x38442011, // 003E SHL R17 R16 R17
+ 0x544A000F, // 003F LDINT R18 16
+ 0x38481612, // 0040 SHL R18 R11 R18
+ 0x30442212, // 0041 OR R17 R17 R18
+ 0x544A0007, // 0042 LDINT R18 8
+ 0x38481812, // 0043 SHL R18 R12 R18
+ 0x30442212, // 0044 OR R17 R17 R18
+ 0x3044220D, // 0045 OR R17 R17 R13
+ 0x28481F06, // 0046 GE R18 R15 K6
+ 0x784A0006, // 0047 JMPF R18 #004F
+ 0x8848030A, // 0048 GETMBR R18 R1 K10
+ 0x14481E12, // 0049 LT R18 R15 R18
+ 0x784A0003, // 004A JMPF R18 #004F
+ 0x8C48030B, // 004B GETMET R18 R1 K11
+ 0x5C501E00, // 004C MOVE R20 R15
+ 0x5C542200, // 004D MOVE R21 R17
+ 0x7C480600, // 004E CALL R18 3
+ 0x00381D07, // 004F ADD R14 R14 K7
+ 0x7001FFC5, // 0050 JMP #0017
+ 0x503C0200, // 0051 LDBOOL R15 1 0
+ 0x80041E00, // 0052 RET 1 R15
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+be_local_closure(class_comet_init, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_comet, /* shared constants */
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 8]) { /* code */
+ 0x60080003, // 0000 GETGBL R2 G3
+ 0x5C0C0000, // 0001 MOVE R3 R0
+ 0x7C080200, // 0002 CALL R2 1
+ 0x8C08050C, // 0003 GETMET R2 R2 K12
+ 0x5C100200, // 0004 MOVE R4 R1
+ 0x7C080400, // 0005 CALL R2 2
+ 0x90020106, // 0006 SETMBR R0 K0 K6
+ 0x80000000, // 0007 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: update
+********************************************************************/
+be_local_closure(class_comet_update, /* name */
+ be_nested_proto(
+ 11, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_comet, /* shared constants */
+ be_str_weak(update),
+ &be_const_str_solidified,
+ ( &(const binstruction[56]) { /* code */
+ 0x8808010D, // 0000 GETMBR R2 R0 K13
+ 0x880C0103, // 0001 GETMBR R3 R0 K3
+ 0x88100104, // 0002 GETMBR R4 R0 K4
+ 0x8814010E, // 0003 GETMBR R5 R0 K14
+ 0x88140B0F, // 0004 GETMBR R5 R5 K15
+ 0x88180110, // 0005 GETMBR R6 R0 K16
+ 0x04180206, // 0006 SUB R6 R1 R6
+ 0x081C0406, // 0007 MUL R7 R2 R6
+ 0x081C0E03, // 0008 MUL R7 R7 R3
+ 0x542203E7, // 0009 LDINT R8 1000
+ 0x0C1C0E08, // 000A DIV R7 R7 R8
+ 0x24200706, // 000B GT R8 R3 K6
+ 0x78220001, // 000C JMPF R8 #000F
+ 0x90020007, // 000D SETMBR R0 K0 R7
+ 0x70020004, // 000E JMP #0014
+ 0x04200B07, // 000F SUB R8 R5 K7
+ 0x542600FF, // 0010 LDINT R9 256
+ 0x08201009, // 0011 MUL R8 R8 R9
+ 0x00201007, // 0012 ADD R8 R8 R7
+ 0x90020008, // 0013 SETMBR R0 K0 R8
+ 0x542200FF, // 0014 LDINT R8 256
+ 0x08200A08, // 0015 MUL R8 R5 R8
+ 0x20240906, // 0016 NE R9 R4 K6
+ 0x7826000E, // 0017 JMPF R9 #0027
+ 0x88240100, // 0018 GETMBR R9 R0 K0
+ 0x28241208, // 0019 GE R9 R9 R8
+ 0x78260003, // 001A JMPF R9 #001F
+ 0x88240100, // 001B GETMBR R9 R0 K0
+ 0x04241208, // 001C SUB R9 R9 R8
+ 0x90020009, // 001D SETMBR R0 K0 R9
+ 0x7001FFF8, // 001E JMP #0018
+ 0x88240100, // 001F GETMBR R9 R0 K0
+ 0x14241306, // 0020 LT R9 R9 K6
+ 0x78260003, // 0021 JMPF R9 #0026
+ 0x88240100, // 0022 GETMBR R9 R0 K0
+ 0x00241208, // 0023 ADD R9 R9 R8
+ 0x90020009, // 0024 SETMBR R0 K0 R9
+ 0x7001FFF8, // 0025 JMP #001F
+ 0x7002000F, // 0026 JMP #0037
+ 0x88240100, // 0027 GETMBR R9 R0 K0
+ 0x28241208, // 0028 GE R9 R9 R8
+ 0x78260006, // 0029 JMPF R9 #0031
+ 0x04240B07, // 002A SUB R9 R5 K7
+ 0x542A00FF, // 002B LDINT R10 256
+ 0x0824120A, // 002C MUL R9 R9 R10
+ 0x90020009, // 002D SETMBR R0 K0 R9
+ 0x44240600, // 002E NEG R9 R3
+ 0x90020609, // 002F SETMBR R0 K3 R9
+ 0x70020005, // 0030 JMP #0037
+ 0x88240100, // 0031 GETMBR R9 R0 K0
+ 0x14241306, // 0032 LT R9 R9 K6
+ 0x78260002, // 0033 JMPF R9 #0037
+ 0x90020106, // 0034 SETMBR R0 K0 K6
+ 0x44240600, // 0035 NEG R9 R3
+ 0x90020609, // 0036 SETMBR R0 K3 R9
+ 0x80000000, // 0037 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: on_param_changed
+********************************************************************/
+be_local_closure(class_comet_on_param_changed, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 3, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_comet, /* shared constants */
+ be_str_weak(on_param_changed),
+ &be_const_str_solidified,
+ ( &(const binstruction[20]) { /* code */
+ 0x600C0003, // 0000 GETGBL R3 G3
+ 0x5C100000, // 0001 MOVE R4 R0
+ 0x7C0C0200, // 0002 CALL R3 1
+ 0x8C0C0711, // 0003 GETMET R3 R3 K17
+ 0x5C140200, // 0004 MOVE R5 R1
+ 0x5C180400, // 0005 MOVE R6 R2
+ 0x7C0C0600, // 0006 CALL R3 3
+ 0x1C0C0303, // 0007 EQ R3 R1 K3
+ 0x780E0009, // 0008 JMPF R3 #0013
+ 0x880C010E, // 0009 GETMBR R3 R0 K14
+ 0x880C070F, // 000A GETMBR R3 R3 K15
+ 0x24100506, // 000B GT R4 R2 K6
+ 0x78120001, // 000C JMPF R4 #000F
+ 0x90020106, // 000D SETMBR R0 K0 K6
+ 0x70020003, // 000E JMP #0013
+ 0x04100707, // 000F SUB R4 R3 K7
+ 0x541600FF, // 0010 LDINT R5 256
+ 0x08100805, // 0011 MUL R4 R4 R5
+ 0x90020004, // 0012 SETMBR R0 K0 R4
+ 0x80000000, // 0013 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified class: comet
+********************************************************************/
+extern const bclass be_class_Animation;
+be_local_class(comet,
+ 1,
+ &be_class_Animation,
+ be_nested_map(6,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(on_param_changed, -1), be_const_closure(class_comet_on_param_changed_closure) },
+ { be_const_key_weak(render, 0), be_const_closure(class_comet_render_closure) },
+ { be_const_key_weak(PARAMS, 5), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(5,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(fade_factor, -1), be_const_bytes_instance(07000001FF0001B300) },
+ { be_const_key_weak(wrap_around, -1), be_const_bytes_instance(07000000010001) },
+ { be_const_key_weak(direction, -1), be_const_bytes_instance(1400010200FF0001) },
+ { be_const_key_weak(speed, 0), be_const_bytes_instance(07000101006401000A) },
+ { be_const_key_weak(tail_length, -1), be_const_bytes_instance(07000100320005) },
+ })) ) } )) },
+ { be_const_key_weak(head_position, 2), be_const_var(0) },
+ { be_const_key_weak(update, -1), be_const_closure(class_comet_update_closure) },
+ { be_const_key_weak(init, -1), be_const_closure(class_comet_init_closure) },
+ })),
+ be_str_weak(comet)
+);
+// compact class 'oscillator_value' ktab size: 22, total: 24 (saved 16 bytes)
+static const bvalue be_ktab_class_oscillator_value[22] = {
+ /* K0 */ be_nested_str_weak(init),
+ /* K1 */ be_nested_str_weak(value),
+ /* K2 */ be_const_int(0),
+ /* K3 */ be_nested_str_weak(start),
+ /* K4 */ be_nested_str_weak(duration),
+ /* K5 */ be_nested_str_weak(min_value),
+ /* K6 */ be_nested_str_weak(max_value),
+ /* K7 */ be_nested_str_weak(form),
+ /* K8 */ be_nested_str_weak(phase),
+ /* K9 */ be_nested_str_weak(duty_cycle),
+ /* K10 */ be_nested_str_weak(tasmota),
+ /* K11 */ be_nested_str_weak(scale_uint),
+ /* K12 */ be_nested_str_weak(scale_int),
+ /* K13 */ be_nested_str_weak(_fix_time_ms),
+ /* K14 */ be_nested_str_weak(start_time),
+ /* K15 */ be_const_int(3),
+ /* K16 */ be_const_int(2),
+ /* K17 */ be_const_int(1),
+ /* K18 */ be_nested_str_weak(sine_int),
+ /* K19 */ be_const_int(196602),
+ /* K20 */ be_const_int(-1044480),
+ /* K21 */ be_const_int(1044480),
+};
+
+
+extern const bclass be_class_oscillator_value;
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+be_local_closure(class_oscillator_value_init, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_oscillator_value, /* shared constants */
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 8]) { /* code */
+ 0x60080003, // 0000 GETGBL R2 G3
+ 0x5C0C0000, // 0001 MOVE R3 R0
+ 0x7C080200, // 0002 CALL R2 1
+ 0x8C080500, // 0003 GETMET R2 R2 K0
+ 0x5C100200, // 0004 MOVE R4 R1
+ 0x7C080400, // 0005 CALL R2 2
+ 0x90020302, // 0006 SETMBR R0 K1 K2
+ 0x80000000, // 0007 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: start
+********************************************************************/
+be_local_closure(class_oscillator_value_start, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_oscillator_value, /* shared constants */
+ be_str_weak(start),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0x60080003, // 0000 GETGBL R2 G3
+ 0x5C0C0000, // 0001 MOVE R3 R0
+ 0x7C080200, // 0002 CALL R2 1
+ 0x8C080503, // 0003 GETMET R2 R2 K3
+ 0x5C100200, // 0004 MOVE R4 R1
+ 0x7C080400, // 0005 CALL R2 2
+ 0x80040000, // 0006 RET 1 R0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: produce_value
+********************************************************************/
+be_local_closure(class_oscillator_value_produce_value, /* name */
+ be_nested_proto(
+ 24, /* nstack */
+ 3, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_oscillator_value, /* shared constants */
+ be_str_weak(produce_value),
+ &be_const_str_solidified,
+ ( &(const binstruction[349]) { /* code */
+ 0x880C0104, // 0000 GETMBR R3 R0 K4
+ 0x88100105, // 0001 GETMBR R4 R0 K5
+ 0x88140106, // 0002 GETMBR R5 R0 K6
+ 0x88180107, // 0003 GETMBR R6 R0 K7
+ 0x881C0108, // 0004 GETMBR R7 R0 K8
+ 0x88200109, // 0005 GETMBR R8 R0 K9
+ 0xB8261400, // 0006 GETNGBL R9 K10
+ 0x8824130B, // 0007 GETMBR R9 R9 K11
+ 0xB82A1400, // 0008 GETNGBL R10 K10
+ 0x8828150C, // 0009 GETMBR R10 R10 K12
+ 0x8C2C010D, // 000A GETMET R11 R0 K13
+ 0x5C340400, // 000B MOVE R13 R2
+ 0x7C2C0400, // 000C CALL R11 2
+ 0x5C081600, // 000D MOVE R2 R11
+ 0x4C2C0000, // 000E LDNIL R11
+ 0x1C2C060B, // 000F EQ R11 R3 R11
+ 0x742E0001, // 0010 JMPT R11 #0013
+ 0x182C0702, // 0011 LE R11 R3 K2
+ 0x782E0000, // 0012 JMPF R11 #0014
+ 0x80040800, // 0013 RET 1 R4
+ 0x882C010E, // 0014 GETMBR R11 R0 K14
+ 0x042C040B, // 0015 SUB R11 R2 R11
+ 0x14301702, // 0016 LT R12 R11 K2
+ 0x78320000, // 0017 JMPF R12 #0019
+ 0x582C0002, // 0018 LDCONST R11 K2
+ 0x28301603, // 0019 GE R12 R11 R3
+ 0x78320005, // 001A JMPF R12 #0021
+ 0x0C341603, // 001B DIV R13 R11 R3
+ 0x08341A03, // 001C MUL R13 R13 R3
+ 0x8830010E, // 001D GETMBR R12 R0 K14
+ 0x0030180D, // 001E ADD R12 R12 R13
+ 0x90021C0C, // 001F SETMBR R0 K14 R12
+ 0x102C1603, // 0020 MOD R11 R11 R3
+ 0x24300F02, // 0021 GT R12 R7 K2
+ 0x7832000A, // 0022 JMPF R12 #002E
+ 0x5C301200, // 0023 MOVE R12 R9
+ 0x5C340E00, // 0024 MOVE R13 R7
+ 0x58380002, // 0025 LDCONST R14 K2
+ 0x543E00FE, // 0026 LDINT R15 255
+ 0x58400002, // 0027 LDCONST R16 K2
+ 0x5C440600, // 0028 MOVE R17 R3
+ 0x7C300A00, // 0029 CALL R12 5
+ 0x002C160C, // 002A ADD R11 R11 R12
+ 0x28301603, // 002B GE R12 R11 R3
+ 0x78320000, // 002C JMPF R12 #002E
+ 0x042C1603, // 002D SUB R11 R11 R3
+ 0x4C300000, // 002E LDNIL R12
+ 0x5C341200, // 002F MOVE R13 R9
+ 0x5C381000, // 0030 MOVE R14 R8
+ 0x583C0002, // 0031 LDCONST R15 K2
+ 0x544200FE, // 0032 LDINT R16 255
+ 0x58440002, // 0033 LDCONST R17 K2
+ 0x5C480600, // 0034 MOVE R18 R3
+ 0x7C340A00, // 0035 CALL R13 5
+ 0x1C380D0F, // 0036 EQ R14 R6 K15
+ 0x783A0008, // 0037 JMPF R14 #0041
+ 0x1438160D, // 0038 LT R14 R11 R13
+ 0x783A0001, // 0039 JMPF R14 #003C
+ 0x5C380800, // 003A MOVE R14 R4
+ 0x70020000, // 003B JMP #003D
+ 0x5C380A00, // 003C MOVE R14 R5
+ 0x9002020E, // 003D SETMBR R0 K1 R14
+ 0x88380101, // 003E GETMBR R14 R0 K1
+ 0x80041C00, // 003F RET 1 R14
+ 0x70020111, // 0040 JMP #0153
+ 0x1C380D10, // 0041 EQ R14 R6 K16
+ 0x783A0013, // 0042 JMPF R14 #0057
+ 0x1438160D, // 0043 LT R14 R11 R13
+ 0x783A0008, // 0044 JMPF R14 #004E
+ 0x5C381200, // 0045 MOVE R14 R9
+ 0x5C3C1600, // 0046 MOVE R15 R11
+ 0x58400002, // 0047 LDCONST R16 K2
+ 0x04441B11, // 0048 SUB R17 R13 K17
+ 0x58480002, // 0049 LDCONST R18 K2
+ 0x544E00FE, // 004A LDINT R19 255
+ 0x7C380A00, // 004B CALL R14 5
+ 0x5C301C00, // 004C MOVE R12 R14
+ 0x70020007, // 004D JMP #0056
+ 0x5C381200, // 004E MOVE R14 R9
+ 0x5C3C1600, // 004F MOVE R15 R11
+ 0x5C401A00, // 0050 MOVE R16 R13
+ 0x04440711, // 0051 SUB R17 R3 K17
+ 0x544A00FE, // 0052 LDINT R18 255
+ 0x584C0002, // 0053 LDCONST R19 K2
+ 0x7C380A00, // 0054 CALL R14 5
+ 0x5C301C00, // 0055 MOVE R12 R14
+ 0x700200FB, // 0056 JMP #0153
+ 0x543A0003, // 0057 LDINT R14 4
+ 0x1C380C0E, // 0058 EQ R14 R6 R14
+ 0x743A0002, // 0059 JMPT R14 #005D
+ 0x543A0004, // 005A LDINT R14 5
+ 0x1C380C0E, // 005B EQ R14 R6 R14
+ 0x783A0017, // 005C JMPF R14 #0075
+ 0x5C381200, // 005D MOVE R14 R9
+ 0x5C3C1600, // 005E MOVE R15 R11
+ 0x58400002, // 005F LDCONST R16 K2
+ 0x04440711, // 0060 SUB R17 R3 K17
+ 0x58480002, // 0061 LDCONST R18 K2
+ 0x544E7FFE, // 0062 LDINT R19 32767
+ 0x7C380A00, // 0063 CALL R14 5
+ 0x543E0003, // 0064 LDINT R15 4
+ 0x1C3C0C0F, // 0065 EQ R15 R6 R15
+ 0x783E0001, // 0066 JMPF R15 #0069
+ 0x543E1FFF, // 0067 LDINT R15 8192
+ 0x04381C0F, // 0068 SUB R14 R14 R15
+ 0x5C3C1400, // 0069 MOVE R15 R10
+ 0xB8421400, // 006A GETNGBL R16 K10
+ 0x8C402112, // 006B GETMET R16 R16 K18
+ 0x5C481C00, // 006C MOVE R18 R14
+ 0x7C400400, // 006D CALL R16 2
+ 0x5445EFFF, // 006E LDINT R17 -4096
+ 0x544A0FFF, // 006F LDINT R18 4096
+ 0x584C0002, // 0070 LDCONST R19 K2
+ 0x545200FE, // 0071 LDINT R20 255
+ 0x7C3C0A00, // 0072 CALL R15 5
+ 0x5C301E00, // 0073 MOVE R12 R15
+ 0x700200DD, // 0074 JMP #0153
+ 0x543A0005, // 0075 LDINT R14 6
+ 0x1C380C0E, // 0076 EQ R14 R6 R14
+ 0x743A0002, // 0077 JMPT R14 #007B
+ 0x543A0006, // 0078 LDINT R14 7
+ 0x1C380C0E, // 0079 EQ R14 R6 R14
+ 0x783A001F, // 007A JMPF R14 #009B
+ 0x5C381200, // 007B MOVE R14 R9
+ 0x5C3C1600, // 007C MOVE R15 R11
+ 0x58400002, // 007D LDCONST R16 K2
+ 0x04440711, // 007E SUB R17 R3 K17
+ 0x58480002, // 007F LDCONST R18 K2
+ 0x544E00FE, // 0080 LDINT R19 255
+ 0x7C380A00, // 0081 CALL R14 5
+ 0x543E0005, // 0082 LDINT R15 6
+ 0x1C3C0C0F, // 0083 EQ R15 R6 R15
+ 0x783E0008, // 0084 JMPF R15 #008E
+ 0x5C3C1400, // 0085 MOVE R15 R10
+ 0x08401C0E, // 0086 MUL R16 R14 R14
+ 0x58440002, // 0087 LDCONST R17 K2
+ 0x544AFE00, // 0088 LDINT R18 65025
+ 0x584C0002, // 0089 LDCONST R19 K2
+ 0x545200FE, // 008A LDINT R20 255
+ 0x7C3C0A00, // 008B CALL R15 5
+ 0x5C301E00, // 008C MOVE R12 R15
+ 0x7002000B, // 008D JMP #009A
+ 0x543E00FE, // 008E LDINT R15 255
+ 0x043C1E0E, // 008F SUB R15 R15 R14
+ 0x544200FE, // 0090 LDINT R16 255
+ 0x5C441400, // 0091 MOVE R17 R10
+ 0x08481E0F, // 0092 MUL R18 R15 R15
+ 0x584C0002, // 0093 LDCONST R19 K2
+ 0x5452FE00, // 0094 LDINT R20 65025
+ 0x58540002, // 0095 LDCONST R21 K2
+ 0x545A00FE, // 0096 LDINT R22 255
+ 0x7C440A00, // 0097 CALL R17 5
+ 0x04402011, // 0098 SUB R16 R16 R17
+ 0x5C302000, // 0099 MOVE R12 R16
+ 0x700200B7, // 009A JMP #0153
+ 0x543A0007, // 009B LDINT R14 8
+ 0x1C380C0E, // 009C EQ R14 R6 R14
+ 0x783A0048, // 009D JMPF R14 #00E7
+ 0x5C381200, // 009E MOVE R14 R9
+ 0x5C3C1600, // 009F MOVE R15 R11
+ 0x58400002, // 00A0 LDCONST R16 K2
+ 0x04440711, // 00A1 SUB R17 R3 K17
+ 0x58480002, // 00A2 LDCONST R18 K2
+ 0x544E00FE, // 00A3 LDINT R19 255
+ 0x7C380A00, // 00A4 CALL R14 5
+ 0x1C3C1D02, // 00A5 EQ R15 R14 K2
+ 0x783E0002, // 00A6 JMPF R15 #00AA
+ 0x90020204, // 00A7 SETMBR R0 K1 R4
+ 0x883C0101, // 00A8 GETMBR R15 R0 K1
+ 0x80041E00, // 00A9 RET 1 R15
+ 0x543E00FE, // 00AA LDINT R15 255
+ 0x1C3C1C0F, // 00AB EQ R15 R14 R15
+ 0x783E0002, // 00AC JMPF R15 #00B0
+ 0x90020205, // 00AD SETMBR R0 K1 R5
+ 0x883C0101, // 00AE GETMBR R15 R0 K1
+ 0x80041E00, // 00AF RET 1 R15
+ 0x5C3C1200, // 00B0 MOVE R15 R9
+ 0x544200FE, // 00B1 LDINT R16 255
+ 0x0440200E, // 00B2 SUB R16 R16 R14
+ 0x58440002, // 00B3 LDCONST R17 K2
+ 0x544A00FE, // 00B4 LDINT R18 255
+ 0x544E00FE, // 00B5 LDINT R19 255
+ 0x5452001F, // 00B6 LDINT R20 32
+ 0x7C3C0A00, // 00B7 CALL R15 5
+ 0xB8421400, // 00B8 GETNGBL R16 K10
+ 0x8C402112, // 00B9 GETMET R16 R16 K18
+ 0x5C481200, // 00BA MOVE R18 R9
+ 0x5C4C1C00, // 00BB MOVE R19 R14
+ 0x58500002, // 00BC LDCONST R20 K2
+ 0x545600FE, // 00BD LDINT R21 255
+ 0x58580002, // 00BE LDCONST R22 K2
+ 0x585C0013, // 00BF LDCONST R23 K19
+ 0x7C480A00, // 00C0 CALL R18 5
+ 0x544E7FFE, // 00C1 LDINT R19 32767
+ 0x10482413, // 00C2 MOD R18 R18 R19
+ 0x7C400400, // 00C3 CALL R16 2
+ 0x5C441400, // 00C4 MOVE R17 R10
+ 0x0848200F, // 00C5 MUL R18 R16 R15
+ 0x584C0014, // 00C6 LDCONST R19 K20
+ 0x58500015, // 00C7 LDCONST R20 K21
+ 0x5455FF00, // 00C8 LDINT R21 -255
+ 0x545A00FE, // 00C9 LDINT R22 255
+ 0x7C440A00, // 00CA CALL R17 5
+ 0x5C481400, // 00CB MOVE R18 R10
+ 0x5C4C1C00, // 00CC MOVE R19 R14
+ 0x58500002, // 00CD LDCONST R20 K2
+ 0x545600FE, // 00CE LDINT R21 255
+ 0x58580002, // 00CF LDCONST R22 K2
+ 0x045C0A04, // 00D0 SUB R23 R5 R4
+ 0x7C480A00, // 00D1 CALL R18 5
+ 0x00480812, // 00D2 ADD R18 R4 R18
+ 0x00482411, // 00D3 ADD R18 R18 R17
+ 0x90020212, // 00D4 SETMBR R0 K1 R18
+ 0x04480A04, // 00D5 SUB R18 R5 R4
+ 0x544E0003, // 00D6 LDINT R19 4
+ 0x0C482413, // 00D7 DIV R18 R18 R19
+ 0x884C0101, // 00D8 GETMBR R19 R0 K1
+ 0x00500A12, // 00D9 ADD R20 R5 R18
+ 0x244C2614, // 00DA GT R19 R19 R20
+ 0x784E0001, // 00DB JMPF R19 #00DE
+ 0x004C0A12, // 00DC ADD R19 R5 R18
+ 0x90020213, // 00DD SETMBR R0 K1 R19
+ 0x884C0101, // 00DE GETMBR R19 R0 K1
+ 0x04500812, // 00DF SUB R20 R4 R18
+ 0x144C2614, // 00E0 LT R19 R19 R20
+ 0x784E0001, // 00E1 JMPF R19 #00E4
+ 0x044C0812, // 00E2 SUB R19 R4 R18
+ 0x90020213, // 00E3 SETMBR R0 K1 R19
+ 0x884C0101, // 00E4 GETMBR R19 R0 K1
+ 0x80042600, // 00E5 RET 1 R19
+ 0x7002006B, // 00E6 JMP #0153
+ 0x543A0008, // 00E7 LDINT R14 9
+ 0x1C380C0E, // 00E8 EQ R14 R6 R14
+ 0x783A0060, // 00E9 JMPF R14 #014B
+ 0x5C381200, // 00EA MOVE R14 R9
+ 0x5C3C1600, // 00EB MOVE R15 R11
+ 0x58400002, // 00EC LDCONST R16 K2
+ 0x04440711, // 00ED SUB R17 R3 K17
+ 0x58480002, // 00EE LDCONST R18 K2
+ 0x544E00FE, // 00EF LDINT R19 255
+ 0x7C380A00, // 00F0 CALL R14 5
+ 0x543E007F, // 00F1 LDINT R15 128
+ 0x143C1C0F, // 00F2 LT R15 R14 R15
+ 0x783E0015, // 00F3 JMPF R15 #010A
+ 0x5C3C1200, // 00F4 MOVE R15 R9
+ 0x5C401C00, // 00F5 MOVE R16 R14
+ 0x58440002, // 00F6 LDCONST R17 K2
+ 0x544A007E, // 00F7 LDINT R18 127
+ 0x584C0002, // 00F8 LDCONST R19 K2
+ 0x545200FE, // 00F9 LDINT R20 255
+ 0x7C3C0A00, // 00FA CALL R15 5
+ 0x544200FE, // 00FB LDINT R16 255
+ 0x5C441400, // 00FC MOVE R17 R10
+ 0x544A00FE, // 00FD LDINT R18 255
+ 0x0448240F, // 00FE SUB R18 R18 R15
+ 0x544E00FE, // 00FF LDINT R19 255
+ 0x044C260F, // 0100 SUB R19 R19 R15
+ 0x08482413, // 0101 MUL R18 R18 R19
+ 0x584C0002, // 0102 LDCONST R19 K2
+ 0x5452FE00, // 0103 LDINT R20 65025
+ 0x58540002, // 0104 LDCONST R21 K2
+ 0x545A00FE, // 0105 LDINT R22 255
+ 0x7C440A00, // 0106 CALL R17 5
+ 0x04402011, // 0107 SUB R16 R16 R17
+ 0x5C302000, // 0108 MOVE R12 R16
+ 0x7002003F, // 0109 JMP #014A
+ 0x543E00BF, // 010A LDINT R15 192
+ 0x143C1C0F, // 010B LT R15 R14 R15
+ 0x783E001C, // 010C JMPF R15 #012A
+ 0x5C3C1200, // 010D MOVE R15 R9
+ 0x5442007F, // 010E LDINT R16 128
+ 0x04401C10, // 010F SUB R16 R14 R16
+ 0x58440002, // 0110 LDCONST R17 K2
+ 0x544A003E, // 0111 LDINT R18 63
+ 0x584C0002, // 0112 LDCONST R19 K2
+ 0x545200FE, // 0113 LDINT R20 255
+ 0x7C3C0A00, // 0114 CALL R15 5
+ 0x5C401400, // 0115 MOVE R16 R10
+ 0x544600FE, // 0116 LDINT R17 255
+ 0x5C481400, // 0117 MOVE R18 R10
+ 0x544E00FE, // 0118 LDINT R19 255
+ 0x044C260F, // 0119 SUB R19 R19 R15
+ 0x545200FE, // 011A LDINT R20 255
+ 0x0450280F, // 011B SUB R20 R20 R15
+ 0x084C2614, // 011C MUL R19 R19 R20
+ 0x58500002, // 011D LDCONST R20 K2
+ 0x5456FE00, // 011E LDINT R21 65025
+ 0x58580002, // 011F LDCONST R22 K2
+ 0x545E00FE, // 0120 LDINT R23 255
+ 0x7C480A00, // 0121 CALL R18 5
+ 0x04442212, // 0122 SUB R17 R17 R18
+ 0x58480002, // 0123 LDCONST R18 K2
+ 0x544E00FE, // 0124 LDINT R19 255
+ 0x58500002, // 0125 LDCONST R20 K2
+ 0x5456007F, // 0126 LDINT R21 128
+ 0x7C400A00, // 0127 CALL R16 5
+ 0x5C302000, // 0128 MOVE R12 R16
+ 0x7002001F, // 0129 JMP #014A
+ 0x5C3C1200, // 012A MOVE R15 R9
+ 0x544200BF, // 012B LDINT R16 192
+ 0x04401C10, // 012C SUB R16 R14 R16
+ 0x58440002, // 012D LDCONST R17 K2
+ 0x544A003E, // 012E LDINT R18 63
+ 0x584C0002, // 012F LDCONST R19 K2
+ 0x545200FE, // 0130 LDINT R20 255
+ 0x7C3C0A00, // 0131 CALL R15 5
+ 0x544200FE, // 0132 LDINT R16 255
+ 0x5C441400, // 0133 MOVE R17 R10
+ 0x544A00FE, // 0134 LDINT R18 255
+ 0x0448240F, // 0135 SUB R18 R18 R15
+ 0x544E00FE, // 0136 LDINT R19 255
+ 0x044C260F, // 0137 SUB R19 R19 R15
+ 0x08482413, // 0138 MUL R18 R18 R19
+ 0x584C0002, // 0139 LDCONST R19 K2
+ 0x5452FE00, // 013A LDINT R20 65025
+ 0x58540002, // 013B LDCONST R21 K2
+ 0x545A00FE, // 013C LDINT R22 255
+ 0x7C440A00, // 013D CALL R17 5
+ 0x04402011, // 013E SUB R16 R16 R17
+ 0x544600FE, // 013F LDINT R17 255
+ 0x5C481400, // 0140 MOVE R18 R10
+ 0x544E00FE, // 0141 LDINT R19 255
+ 0x044C2610, // 0142 SUB R19 R19 R16
+ 0x58500002, // 0143 LDCONST R20 K2
+ 0x545600FE, // 0144 LDINT R21 255
+ 0x58580002, // 0145 LDCONST R22 K2
+ 0x545E003F, // 0146 LDINT R23 64
+ 0x7C480A00, // 0147 CALL R18 5
+ 0x04442212, // 0148 SUB R17 R17 R18
+ 0x5C302200, // 0149 MOVE R12 R17
+ 0x70020007, // 014A JMP #0153
+ 0x5C381200, // 014B MOVE R14 R9
+ 0x5C3C1600, // 014C MOVE R15 R11
+ 0x58400002, // 014D LDCONST R16 K2
+ 0x04440711, // 014E SUB R17 R3 K17
+ 0x58480002, // 014F LDCONST R18 K2
+ 0x544E00FE, // 0150 LDINT R19 255
+ 0x7C380A00, // 0151 CALL R14 5
+ 0x5C301C00, // 0152 MOVE R12 R14
+ 0x5C381400, // 0153 MOVE R14 R10
+ 0x5C3C1800, // 0154 MOVE R15 R12
+ 0x58400002, // 0155 LDCONST R16 K2
+ 0x544600FE, // 0156 LDINT R17 255
+ 0x5C480800, // 0157 MOVE R18 R4
+ 0x5C4C0A00, // 0158 MOVE R19 R5
+ 0x7C380A00, // 0159 CALL R14 5
+ 0x9002020E, // 015A SETMBR R0 K1 R14
+ 0x88380101, // 015B GETMBR R14 R0 K1
+ 0x80041C00, // 015C RET 1 R14
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified class: oscillator_value
+********************************************************************/
+extern const bclass be_class_value_provider;
+be_local_class(oscillator_value,
+ 1,
+ &be_class_value_provider,
+ be_nested_map(5,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(init, -1), be_const_closure(class_oscillator_value_init_closure) },
+ { be_const_key_weak(start, -1), be_const_closure(class_oscillator_value_start_closure) },
+ { be_const_key_weak(produce_value, 4), be_const_closure(class_oscillator_value_produce_value_closure) },
+ { be_const_key_weak(PARAMS, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(6,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(phase, -1), be_const_bytes_instance(07000001FF000000) },
+ { be_const_key_weak(max_value, 4), be_const_bytes_instance(0401FF00) },
+ { be_const_key_weak(duty_cycle, -1), be_const_bytes_instance(07000001FF00007F) },
+ { be_const_key_weak(min_value, -1), be_const_bytes_instance(040000) },
+ { be_const_key_weak(duration, -1), be_const_bytes_instance(05000101E803) },
+ { be_const_key_weak(form, 1), be_const_bytes_instance(14000109000100020003000400050006000700080009) },
+ })) ) } )) },
+ { be_const_key_weak(value, -1), be_const_var(0) },
+ })),
+ be_str_weak(oscillator_value)
+);
+// compact class 'closure_value' ktab size: 4, total: 5 (saved 8 bytes)
+static const bvalue be_ktab_class_closure_value[4] = {
+ /* K0 */ be_nested_str_weak(_closure),
+ /* K1 */ be_nested_str_weak(engine),
+ /* K2 */ be_nested_str_weak(on_param_changed),
+ /* K3 */ be_nested_str_weak(closure),
+};
+
+
+extern const bclass be_class_closure_value;
+
+/********************************************************************
+** Solidified function: produce_value
+********************************************************************/
+be_local_closure(class_closure_value_produce_value, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 3, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_closure_value, /* shared constants */
+ be_str_weak(produce_value),
+ &be_const_str_solidified,
+ ( &(const binstruction[12]) { /* code */
+ 0x880C0100, // 0000 GETMBR R3 R0 K0
+ 0x4C100000, // 0001 LDNIL R4
+ 0x1C100604, // 0002 EQ R4 R3 R4
+ 0x78120001, // 0003 JMPF R4 #0006
+ 0x4C100000, // 0004 LDNIL R4
+ 0x80040800, // 0005 RET 1 R4
+ 0x5C100600, // 0006 MOVE R4 R3
+ 0x88140101, // 0007 GETMBR R5 R0 K1
+ 0x5C180200, // 0008 MOVE R6 R1
+ 0x5C1C0400, // 0009 MOVE R7 R2
+ 0x7C100600, // 000A CALL R4 3
+ 0x80040800, // 000B RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: on_param_changed
+********************************************************************/
+be_local_closure(class_closure_value_on_param_changed, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 3, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_closure_value, /* shared constants */
+ be_str_weak(on_param_changed),
+ &be_const_str_solidified,
+ ( &(const binstruction[11]) { /* code */
+ 0x600C0003, // 0000 GETGBL R3 G3
+ 0x5C100000, // 0001 MOVE R4 R0
+ 0x7C0C0200, // 0002 CALL R3 1
+ 0x8C0C0702, // 0003 GETMET R3 R3 K2
+ 0x5C140200, // 0004 MOVE R5 R1
+ 0x5C180400, // 0005 MOVE R6 R2
+ 0x7C0C0600, // 0006 CALL R3 3
+ 0x1C0C0303, // 0007 EQ R3 R1 K3
+ 0x780E0000, // 0008 JMPF R3 #000A
+ 0x90020002, // 0009 SETMBR R0 K0 R2
+ 0x80000000, // 000A RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified class: closure_value
+********************************************************************/
+extern const bclass be_class_value_provider;
+be_local_class(closure_value,
+ 1,
+ &be_class_value_provider,
+ be_nested_map(4,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(_closure, -1), be_const_var(0) },
+ { be_const_key_weak(produce_value, 2), be_const_closure(class_closure_value_produce_value_closure) },
+ { be_const_key_weak(on_param_changed, -1), be_const_closure(class_closure_value_on_param_changed_closure) },
+ { be_const_key_weak(PARAMS, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(1,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(closure, -1), be_const_bytes_instance(0C0606) },
+ })) ) } )) },
+ })),
+ be_str_weak(closure_value)
+);
+
+/********************************************************************
+** Solidified function: bounce
+********************************************************************/
+be_local_closure(bounce, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 0, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(animation),
+ /* K1 */ be_nested_str_weak(oscillator_value),
+ /* K2 */ be_nested_str_weak(form),
+ }),
+ be_str_weak(bounce),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0xB8060000, // 0000 GETNGBL R1 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x5C0C0000, // 0002 MOVE R3 R0
+ 0x7C040400, // 0003 CALL R1 2
+ 0x540A0008, // 0004 LDINT R2 9
+ 0x90060402, // 0005 SETMBR R1 K2 R2
+ 0x80040200, // 0006 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
// compact class 'sequence_manager' ktab size: 34, total: 122 (saved 704 bytes)
static const bvalue be_ktab_class_sequence_manager[34] = {
/* K0 */ be_nested_str_weak(step_durations),
@@ -5291,2883 +9038,6 @@ be_local_class(sequence_manager,
be_str_weak(sequence_manager)
);
-/********************************************************************
-** Solidified function: ramp
-********************************************************************/
-be_local_closure(ramp, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(animation),
- /* K1 */ be_nested_str_weak(oscillator_value),
- /* K2 */ be_nested_str_weak(form),
- /* K3 */ be_const_int(1),
- }),
- be_str_weak(ramp),
- &be_const_str_solidified,
- ( &(const binstruction[ 6]) { /* code */
- 0xB8060000, // 0000 GETNGBL R1 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x5C0C0000, // 0002 MOVE R3 R0
- 0x7C040400, // 0003 CALL R1 2
- 0x90060503, // 0004 SETMBR R1 K2 K3
- 0x80040200, // 0005 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: wave_custom
-********************************************************************/
-be_local_closure(wave_custom, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str_weak(animation),
- /* K1 */ be_nested_str_weak(wave_animation),
- /* K2 */ be_nested_str_weak(color),
- /* K3 */ be_nested_str_weak(wave_type),
- /* K4 */ be_const_int(2),
- /* K5 */ be_nested_str_weak(frequency),
- /* K6 */ be_nested_str_weak(wave_speed),
- }),
- be_str_weak(wave_custom),
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0xB8060000, // 0000 GETNGBL R1 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x5C0C0000, // 0002 MOVE R3 R0
- 0x7C040400, // 0003 CALL R1 2
- 0x5409FEFF, // 0004 LDINT R2 -256
- 0x90060402, // 0005 SETMBR R1 K2 R2
- 0x90060704, // 0006 SETMBR R1 K3 K4
- 0x540A0027, // 0007 LDINT R2 40
- 0x90060A02, // 0008 SETMBR R1 K5 R2
- 0x540A001D, // 0009 LDINT R2 30
- 0x90060C02, // 000A SETMBR R1 K6 R2
- 0x80040200, // 000B RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: list_user_functions
-********************************************************************/
-be_local_closure(list_user_functions, /* name */
- be_nested_proto(
- 6, /* nstack */
- 0, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(animation),
- /* K1 */ be_nested_str_weak(user_functions),
- /* K2 */ be_nested_str_weak(keys),
- /* K3 */ be_nested_str_weak(push),
- /* K4 */ be_nested_str_weak(stop_iteration),
- }),
- be_str_weak(list_user_functions),
- &be_const_str_solidified,
- ( &(const binstruction[19]) { /* code */
- 0x60000012, // 0000 GETGBL R0 G18
- 0x7C000000, // 0001 CALL R0 0
- 0x60040010, // 0002 GETGBL R1 G16
- 0xB80A0000, // 0003 GETNGBL R2 K0
- 0x88080501, // 0004 GETMBR R2 R2 K1
- 0x8C080502, // 0005 GETMET R2 R2 K2
- 0x7C080200, // 0006 CALL R2 1
- 0x7C040200, // 0007 CALL R1 1
- 0xA8020005, // 0008 EXBLK 0 #000F
- 0x5C080200, // 0009 MOVE R2 R1
- 0x7C080000, // 000A CALL R2 0
- 0x8C0C0103, // 000B GETMET R3 R0 K3
- 0x5C140400, // 000C MOVE R5 R2
- 0x7C0C0400, // 000D CALL R3 2
- 0x7001FFF9, // 000E JMP #0009
- 0x58040004, // 000F LDCONST R1 K4
- 0xAC040200, // 0010 CATCH R1 1 0
- 0xB0080000, // 0011 RAISE 2 R0 R0
- 0x80040000, // 0012 RET 1 R0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_user_function
-********************************************************************/
-be_local_closure(get_user_function, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(animation),
- /* K1 */ be_nested_str_weak(_user_functions),
- /* K2 */ be_nested_str_weak(find),
- }),
- be_str_weak(get_user_function),
- &be_const_str_solidified,
- ( &(const binstruction[ 6]) { /* code */
- 0xB8060000, // 0000 GETNGBL R1 K0
- 0x88040301, // 0001 GETMBR R1 R1 K1
- 0x8C040302, // 0002 GETMET R1 R1 K2
- 0x5C0C0000, // 0003 MOVE R3 R0
- 0x7C040400, // 0004 CALL R1 2
- 0x80040200, // 0005 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-// compact class 'Animation' ktab size: 24, total: 32 (saved 64 bytes)
-static const bvalue be_ktab_class_Animation[24] = {
- /* K0 */ be_nested_str_weak(get_color_at),
- /* K1 */ be_const_int(0),
- /* K2 */ be_nested_str_weak(init),
- /* K3 */ be_nested_str_weak(member),
- /* K4 */ be_nested_str_weak(color),
- /* K5 */ be_nested_str_weak(fill_pixels),
- /* K6 */ be_nested_str_weak(pixels),
- /* K7 */ be_nested_str_weak(animation),
- /* K8 */ be_nested_str_weak(opacity_frame),
- /* K9 */ be_nested_str_weak(width),
- /* K10 */ be_nested_str_weak(frame_buffer),
- /* K11 */ be_nested_str_weak(clear),
- /* K12 */ be_nested_str_weak(is_running),
- /* K13 */ be_nested_str_weak(start),
- /* K14 */ be_nested_str_weak(start_time),
- /* K15 */ be_nested_str_weak(update),
- /* K16 */ be_nested_str_weak(render),
- /* K17 */ be_nested_str_weak(apply_opacity),
- /* K18 */ be_nested_str_weak(opacity),
- /* K19 */ be_nested_str_weak(int),
- /* K20 */ be_nested_str_weak(_apply_opacity),
- /* K21 */ be_nested_str_weak(get_param_value),
- /* K22 */ be_nested_str_weak(duration),
- /* K23 */ be_nested_str_weak(loop),
-};
-
-
-extern const bclass be_class_Animation;
-
-/********************************************************************
-** Solidified function: get_color
-********************************************************************/
-be_local_closure(class_Animation_get_color, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_Animation, /* shared constants */
- be_str_weak(get_color),
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x8C080100, // 0000 GETMET R2 R0 K0
- 0x58100001, // 0001 LDCONST R4 K1
- 0x5C140200, // 0002 MOVE R5 R1
- 0x7C080600, // 0003 CALL R2 3
- 0x80040400, // 0004 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(class_Animation_init, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_Animation, /* shared constants */
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x60080003, // 0000 GETGBL R2 G3
- 0x5C0C0000, // 0001 MOVE R3 R0
- 0x7C080200, // 0002 CALL R2 1
- 0x8C080502, // 0003 GETMET R2 R2 K2
- 0x5C100200, // 0004 MOVE R4 R1
- 0x7C080400, // 0005 CALL R2 2
- 0x80000000, // 0006 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: render
-********************************************************************/
-be_local_closure(class_Animation_render, /* name */
- be_nested_proto(
- 9, /* nstack */
- 4, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_Animation, /* shared constants */
- be_str_weak(render),
- &be_const_str_solidified,
- ( &(const binstruction[11]) { /* code */
- 0x8C100103, // 0000 GETMET R4 R0 K3
- 0x58180004, // 0001 LDCONST R6 K4
- 0x7C100400, // 0002 CALL R4 2
- 0x20140901, // 0003 NE R5 R4 K1
- 0x78160003, // 0004 JMPF R5 #0009
- 0x8C140305, // 0005 GETMET R5 R1 K5
- 0x881C0306, // 0006 GETMBR R7 R1 K6
- 0x5C200800, // 0007 MOVE R8 R4
- 0x7C140600, // 0008 CALL R5 3
- 0x50140200, // 0009 LDBOOL R5 1 0
- 0x80040A00, // 000A RET 1 R5
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _apply_opacity
-********************************************************************/
-be_local_closure(class_Animation__apply_opacity, /* name */
- be_nested_proto(
- 11, /* nstack */
- 5, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_Animation, /* shared constants */
- be_str_weak(_apply_opacity),
- &be_const_str_solidified,
- ( &(const binstruction[43]) { /* code */
- 0x6014000F, // 0000 GETGBL R5 G15
- 0x5C180400, // 0001 MOVE R6 R2
- 0xB81E0E00, // 0002 GETNGBL R7 K7
- 0x881C0F07, // 0003 GETMBR R7 R7 K7
- 0x7C140400, // 0004 CALL R5 2
- 0x78160023, // 0005 JMPF R5 #002A
- 0x5C140400, // 0006 MOVE R5 R2
- 0x88180108, // 0007 GETMBR R6 R0 K8
- 0x4C1C0000, // 0008 LDNIL R7
- 0x1C180C07, // 0009 EQ R6 R6 R7
- 0x741A0004, // 000A JMPT R6 #0010
- 0x88180108, // 000B GETMBR R6 R0 K8
- 0x88180D09, // 000C GETMBR R6 R6 K9
- 0x881C0309, // 000D GETMBR R7 R1 K9
- 0x20180C07, // 000E NE R6 R6 R7
- 0x781A0004, // 000F JMPF R6 #0015
- 0xB81A0E00, // 0010 GETNGBL R6 K7
- 0x8C180D0A, // 0011 GETMET R6 R6 K10
- 0x88200309, // 0012 GETMBR R8 R1 K9
- 0x7C180400, // 0013 CALL R6 2
- 0x90021006, // 0014 SETMBR R0 K8 R6
- 0x88180108, // 0015 GETMBR R6 R0 K8
- 0x8C180D0B, // 0016 GETMET R6 R6 K11
- 0x7C180200, // 0017 CALL R6 1
- 0x88180B0C, // 0018 GETMBR R6 R5 K12
- 0x741A0002, // 0019 JMPT R6 #001D
- 0x8C180B0D, // 001A GETMET R6 R5 K13
- 0x8820010E, // 001B GETMBR R8 R0 K14
- 0x7C180400, // 001C CALL R6 2
- 0x8C180B0F, // 001D GETMET R6 R5 K15
- 0x5C200600, // 001E MOVE R8 R3
- 0x7C180400, // 001F CALL R6 2
- 0x8C180B10, // 0020 GETMET R6 R5 K16
- 0x88200108, // 0021 GETMBR R8 R0 K8
- 0x5C240600, // 0022 MOVE R9 R3
- 0x5C280800, // 0023 MOVE R10 R4
- 0x7C180800, // 0024 CALL R6 4
- 0x8C180311, // 0025 GETMET R6 R1 K17
- 0x88200306, // 0026 GETMBR R8 R1 K6
- 0x88240108, // 0027 GETMBR R9 R0 K8
- 0x88241306, // 0028 GETMBR R9 R9 K6
- 0x7C180600, // 0029 CALL R6 3
- 0x80000000, // 002A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: post_render
-********************************************************************/
-be_local_closure(class_Animation_post_render, /* name */
- be_nested_proto(
- 11, /* nstack */
- 4, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_Animation, /* shared constants */
- be_str_weak(post_render),
- &be_const_str_solidified,
- ( &(const binstruction[23]) { /* code */
- 0x88100112, // 0000 GETMBR R4 R0 K18
- 0x541600FE, // 0001 LDINT R5 255
- 0x1C140805, // 0002 EQ R5 R4 R5
- 0x78160001, // 0003 JMPF R5 #0006
- 0x80000A00, // 0004 RET 0
- 0x7002000F, // 0005 JMP #0016
- 0x60140004, // 0006 GETGBL R5 G4
- 0x5C180800, // 0007 MOVE R6 R4
- 0x7C140200, // 0008 CALL R5 1
- 0x1C140B13, // 0009 EQ R5 R5 K19
- 0x78160004, // 000A JMPF R5 #0010
- 0x8C140311, // 000B GETMET R5 R1 K17
- 0x881C0306, // 000C GETMBR R7 R1 K6
- 0x5C200800, // 000D MOVE R8 R4
- 0x7C140600, // 000E CALL R5 3
- 0x70020005, // 000F JMP #0016
- 0x8C140114, // 0010 GETMET R5 R0 K20
- 0x5C1C0200, // 0011 MOVE R7 R1
- 0x5C200800, // 0012 MOVE R8 R4
- 0x5C240400, // 0013 MOVE R9 R2
- 0x5C280600, // 0014 MOVE R10 R3
- 0x7C140A00, // 0015 CALL R5 5
- 0x80000000, // 0016 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_color_at
-********************************************************************/
-be_local_closure(class_Animation_get_color_at, /* name */
- be_nested_proto(
- 7, /* nstack */
- 3, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_Animation, /* shared constants */
- be_str_weak(get_color_at),
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x8C0C0115, // 0000 GETMET R3 R0 K21
- 0x58140004, // 0001 LDCONST R5 K4
- 0x5C180400, // 0002 MOVE R6 R2
- 0x7C0C0600, // 0003 CALL R3 3
- 0x80040600, // 0004 RET 1 R3
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: update
-********************************************************************/
-be_local_closure(class_Animation_update, /* name */
- be_nested_proto(
- 8, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_Animation, /* shared constants */
- be_str_weak(update),
- &be_const_str_solidified,
- ( &(const binstruction[18]) { /* code */
- 0x88080116, // 0000 GETMBR R2 R0 K22
- 0x240C0501, // 0001 GT R3 R2 K1
- 0x780E000D, // 0002 JMPF R3 #0011
- 0x880C010E, // 0003 GETMBR R3 R0 K14
- 0x040C0203, // 0004 SUB R3 R1 R3
- 0x28100602, // 0005 GE R4 R3 R2
- 0x78120009, // 0006 JMPF R4 #0011
- 0x88100117, // 0007 GETMBR R4 R0 K23
- 0x78120005, // 0008 JMPF R4 #000F
- 0x0C140602, // 0009 DIV R5 R3 R2
- 0x8818010E, // 000A GETMBR R6 R0 K14
- 0x081C0A02, // 000B MUL R7 R5 R2
- 0x00180C07, // 000C ADD R6 R6 R7
- 0x90021C06, // 000D SETMBR R0 K14 R6
- 0x70020001, // 000E JMP #0011
- 0x50140000, // 000F LDBOOL R5 0 0
- 0x90021805, // 0010 SETMBR R0 K12 R5
- 0x80000000, // 0011 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: Animation
-********************************************************************/
-extern const bclass be_class_parameterized_object;
-be_local_class(Animation,
- 1,
- &be_class_parameterized_object,
- be_nested_map(9,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(update, 1), be_const_closure(class_Animation_update_closure) },
- { be_const_key_weak(get_color_at, -1), be_const_closure(class_Animation_get_color_at_closure) },
- { be_const_key_weak(PARAMS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(6,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(id, -1), be_const_bytes_instance(0C030001) },
- { be_const_key_weak(priority, -1), be_const_bytes_instance(050000000A) },
- { be_const_key_weak(color, -1), be_const_bytes_instance(040000) },
- { be_const_key_weak(loop, 1), be_const_bytes_instance(0C050003) },
- { be_const_key_weak(opacity, 2), be_const_bytes_instance(0C01FF0004) },
- { be_const_key_weak(duration, -1), be_const_bytes_instance(0500000000) },
- })) ) } )) },
- { be_const_key_weak(opacity_frame, -1), be_const_var(0) },
- { be_const_key_weak(_apply_opacity, -1), be_const_closure(class_Animation__apply_opacity_closure) },
- { be_const_key_weak(get_color, 8), be_const_closure(class_Animation_get_color_closure) },
- { be_const_key_weak(init, 2), be_const_closure(class_Animation_init_closure) },
- { be_const_key_weak(render, 0), be_const_closure(class_Animation_render_closure) },
- { be_const_key_weak(post_render, -1), be_const_closure(class_Animation_post_render_closure) },
- })),
- be_str_weak(Animation)
-);
-
-/********************************************************************
-** Solidified function: create_closure_value
-********************************************************************/
-be_local_closure(create_closure_value, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(animation),
- /* K1 */ be_nested_str_weak(closure_value),
- /* K2 */ be_nested_str_weak(closure),
- }),
- be_str_weak(create_closure_value),
- &be_const_str_solidified,
- ( &(const binstruction[ 6]) { /* code */
- 0xB80A0000, // 0000 GETNGBL R2 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100000, // 0002 MOVE R4 R0
- 0x7C080400, // 0003 CALL R2 2
- 0x900A0401, // 0004 SETMBR R2 K2 R1
- 0x80040400, // 0005 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: animation_init
-********************************************************************/
-be_local_closure(animation_init, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 1]) {
- be_nested_proto(
- 7, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(animation),
- /* K1 */ be_nested_str_weak(introspect),
- /* K2 */ be_nested_str_weak(contains),
- /* K3 */ be_nested_str_weak(_ntv),
- /* K4 */ be_nested_str_weak(undefined),
- }),
- be_str_weak(_anonymous_),
- &be_const_str_solidified,
- ( &(const binstruction[16]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0xA40A0200, // 0001 IMPORT R2 K1
- 0x8C0C0502, // 0002 GETMET R3 R2 K2
- 0x88140303, // 0003 GETMBR R5 R1 K3
- 0x5C180000, // 0004 MOVE R6 R0
- 0x7C0C0600, // 0005 CALL R3 3
- 0x780E0003, // 0006 JMPF R3 #000B
- 0x880C0303, // 0007 GETMBR R3 R1 K3
- 0x880C0600, // 0008 GETMBR R3 R3 R0
- 0x80040600, // 0009 RET 1 R3
- 0x70020003, // 000A JMP #000F
- 0x600C000B, // 000B GETGBL R3 G11
- 0x58100004, // 000C LDCONST R4 K4
- 0x7C0C0200, // 000D CALL R3 1
- 0x80040600, // 000E RET 1 R3
- 0x80000000, // 000F RET 0
- })
- ),
- }),
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(animation),
- /* K1 */ be_nested_str_weak(_ntv),
- /* K2 */ be_nested_str_weak(event_manager),
- /* K3 */ be_nested_str_weak(EventManager),
- /* K4 */ be_nested_str_weak(member),
- /* K5 */ be_nested_str_weak(_user_functions),
- }),
- be_str_weak(animation_init),
- &be_const_str_solidified,
- ( &(const binstruction[13]) { /* code */
- 0x6004000B, // 0000 GETGBL R1 G11
- 0x58080000, // 0001 LDCONST R2 K0
- 0x7C040200, // 0002 CALL R1 1
- 0x90060200, // 0003 SETMBR R1 K1 R0
- 0x8C080103, // 0004 GETMET R2 R0 K3
- 0x7C080200, // 0005 CALL R2 1
- 0x90060402, // 0006 SETMBR R1 K2 R2
- 0x84080000, // 0007 CLOSURE R2 P0
- 0x90060802, // 0008 SETMBR R1 K4 R2
- 0x60080013, // 0009 GETGBL R2 G19
- 0x7C080000, // 000A CALL R2 0
- 0x90060A02, // 000B SETMBR R1 K5 R2
- 0x80040200, // 000C RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: solid
-********************************************************************/
-be_local_closure(solid, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(animation),
- }),
- be_str_weak(solid),
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0xB8060000, // 0000 GETNGBL R1 K0
- 0x8C040300, // 0001 GETMET R1 R1 K0
- 0x5C0C0000, // 0002 MOVE R3 R0
- 0x7C040400, // 0003 CALL R1 2
- 0x80040200, // 0004 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-// compact class 'twinkle' ktab size: 33, total: 54 (saved 168 bytes)
-static const bvalue be_ktab_class_twinkle[33] = {
- /* K0 */ be_const_int(0),
- /* K1 */ be_nested_str_weak(_random),
- /* K2 */ be_nested_str_weak(current_colors),
- /* K3 */ be_nested_str_weak(size),
- /* K4 */ be_nested_str_weak(_initialize_arrays),
- /* K5 */ be_nested_str_weak(width),
- /* K6 */ be_nested_str_weak(get),
- /* K7 */ be_nested_str_weak(set_pixel_color),
- /* K8 */ be_const_int(1),
- /* K9 */ be_nested_str_weak(twinkle_speed),
- /* K10 */ be_nested_str_weak(last_update),
- /* K11 */ be_nested_str_weak(_update_twinkle_simulation),
- /* K12 */ be_nested_str_weak(random_seed),
- /* K13 */ be_const_int(1103515245),
- /* K14 */ be_const_int(2147483647),
- /* K15 */ be_nested_str_weak(engine),
- /* K16 */ be_nested_str_weak(strip_length),
- /* K17 */ be_nested_str_weak(clear),
- /* K18 */ be_nested_str_weak(resize),
- /* K19 */ be_nested_str_weak(set),
- /* K20 */ be_nested_str_weak(on_param_changed),
- /* K21 */ be_nested_str_weak(set_param),
- /* K22 */ be_nested_str_weak(init),
- /* K23 */ be_nested_str_weak(time_ms),
- /* K24 */ be_nested_str_weak(fade_speed),
- /* K25 */ be_nested_str_weak(density),
- /* K26 */ be_nested_str_weak(min_brightness),
- /* K27 */ be_nested_str_weak(max_brightness),
- /* K28 */ be_nested_str_weak(color),
- /* K29 */ be_nested_str_weak(tasmota),
- /* K30 */ be_nested_str_weak(scale_uint),
- /* K31 */ be_const_int(16777215),
- /* K32 */ be_nested_str_weak(_random_range),
-};
-
-
-extern const bclass be_class_twinkle;
-
-/********************************************************************
-** Solidified function: _random_range
-********************************************************************/
-be_local_closure(class_twinkle__random_range, /* name */
- be_nested_proto(
- 4, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_twinkle, /* shared constants */
- be_str_weak(_random_range),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x18080300, // 0000 LE R2 R1 K0
- 0x780A0000, // 0001 JMPF R2 #0003
- 0x80060000, // 0002 RET 1 K0
- 0x8C080101, // 0003 GETMET R2 R0 K1
- 0x7C080200, // 0004 CALL R2 1
- 0x10080401, // 0005 MOD R2 R2 R1
- 0x80040400, // 0006 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: render
-********************************************************************/
-be_local_closure(class_twinkle_render, /* name */
- be_nested_proto(
- 11, /* nstack */
- 4, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_twinkle, /* shared constants */
- be_str_weak(render),
- &be_const_str_solidified,
- ( &(const binstruction[36]) { /* code */
- 0x88100102, // 0000 GETMBR R4 R0 K2
- 0x8C100903, // 0001 GETMET R4 R4 K3
- 0x7C100200, // 0002 CALL R4 1
- 0x54160003, // 0003 LDINT R5 4
- 0x08140605, // 0004 MUL R5 R3 R5
- 0x20100805, // 0005 NE R4 R4 R5
- 0x78120001, // 0006 JMPF R4 #0009
- 0x8C100104, // 0007 GETMET R4 R0 K4
- 0x7C100200, // 0008 CALL R4 1
- 0x50100000, // 0009 LDBOOL R4 0 0
- 0x58140000, // 000A LDCONST R5 K0
- 0x14180A03, // 000B LT R6 R5 R3
- 0x781A0015, // 000C JMPF R6 #0023
- 0x88180305, // 000D GETMBR R6 R1 K5
- 0x14180A06, // 000E LT R6 R5 R6
- 0x781A0010, // 000F JMPF R6 #0021
- 0x88180102, // 0010 GETMBR R6 R0 K2
- 0x8C180D06, // 0011 GETMET R6 R6 K6
- 0x54220003, // 0012 LDINT R8 4
- 0x08200A08, // 0013 MUL R8 R5 R8
- 0x5425FFFB, // 0014 LDINT R9 -4
- 0x7C180600, // 0015 CALL R6 3
- 0x541E0017, // 0016 LDINT R7 24
- 0x3C1C0C07, // 0017 SHR R7 R6 R7
- 0x542200FE, // 0018 LDINT R8 255
- 0x2C1C0E08, // 0019 AND R7 R7 R8
- 0x241C0F00, // 001A GT R7 R7 K0
- 0x781E0004, // 001B JMPF R7 #0021
- 0x8C1C0307, // 001C GETMET R7 R1 K7
- 0x5C240A00, // 001D MOVE R9 R5
- 0x5C280C00, // 001E MOVE R10 R6
- 0x7C1C0600, // 001F CALL R7 3
- 0x50100200, // 0020 LDBOOL R4 1 0
- 0x00140B08, // 0021 ADD R5 R5 K8
- 0x7001FFE7, // 0022 JMP #000B
- 0x80040800, // 0023 RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: update
-********************************************************************/
-be_local_closure(class_twinkle_update, /* name */
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_twinkle, /* shared constants */
- be_str_weak(update),
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0x88080109, // 0000 GETMBR R2 R0 K9
- 0x540E03E7, // 0001 LDINT R3 1000
- 0x0C0C0602, // 0002 DIV R3 R3 R2
- 0x8810010A, // 0003 GETMBR R4 R0 K10
- 0x04100204, // 0004 SUB R4 R1 R4
- 0x28100803, // 0005 GE R4 R4 R3
- 0x78120003, // 0006 JMPF R4 #000B
- 0x90021401, // 0007 SETMBR R0 K10 R1
- 0x8C10010B, // 0008 GETMET R4 R0 K11
- 0x5C180200, // 0009 MOVE R6 R1
- 0x7C100400, // 000A CALL R4 2
- 0x80000000, // 000B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _random
-********************************************************************/
-be_local_closure(class_twinkle__random, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_twinkle, /* shared constants */
- be_str_weak(_random),
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0x8804010C, // 0000 GETMBR R1 R0 K12
- 0x0804030D, // 0001 MUL R1 R1 K13
- 0x540A3038, // 0002 LDINT R2 12345
- 0x00040202, // 0003 ADD R1 R1 R2
- 0x2C04030E, // 0004 AND R1 R1 K14
- 0x90021801, // 0005 SETMBR R0 K12 R1
- 0x8804010C, // 0006 GETMBR R1 R0 K12
- 0x80040200, // 0007 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _initialize_arrays
-********************************************************************/
-be_local_closure(class_twinkle__initialize_arrays, /* name */
- be_nested_proto(
- 8, /* nstack */
- 1, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_twinkle, /* shared constants */
- be_str_weak(_initialize_arrays),
- &be_const_str_solidified,
- ( &(const binstruction[23]) { /* code */
- 0x8804010F, // 0000 GETMBR R1 R0 K15
- 0x88040310, // 0001 GETMBR R1 R1 K16
- 0x88080102, // 0002 GETMBR R2 R0 K2
- 0x8C080511, // 0003 GETMET R2 R2 K17
- 0x7C080200, // 0004 CALL R2 1
- 0x88080102, // 0005 GETMBR R2 R0 K2
- 0x8C080512, // 0006 GETMET R2 R2 K18
- 0x54120003, // 0007 LDINT R4 4
- 0x08100204, // 0008 MUL R4 R1 R4
- 0x7C080400, // 0009 CALL R2 2
- 0x58080000, // 000A LDCONST R2 K0
- 0x140C0401, // 000B LT R3 R2 R1
- 0x780E0008, // 000C JMPF R3 #0016
- 0x880C0102, // 000D GETMBR R3 R0 K2
- 0x8C0C0713, // 000E GETMET R3 R3 K19
- 0x54160003, // 000F LDINT R5 4
- 0x08140405, // 0010 MUL R5 R2 R5
- 0x58180000, // 0011 LDCONST R6 K0
- 0x541DFFFB, // 0012 LDINT R7 -4
- 0x7C0C0800, // 0013 CALL R3 4
- 0x00080508, // 0014 ADD R2 R2 K8
- 0x7001FFF4, // 0015 JMP #000B
- 0x80000000, // 0016 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: on_param_changed
-********************************************************************/
-be_local_closure(class_twinkle_on_param_changed, /* name */
- be_nested_proto(
- 8, /* nstack */
- 3, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_twinkle, /* shared constants */
- be_str_weak(on_param_changed),
- &be_const_str_solidified,
- ( &(const binstruction[27]) { /* code */
- 0x600C0003, // 0000 GETGBL R3 G3
- 0x5C100000, // 0001 MOVE R4 R0
- 0x7C0C0200, // 0002 CALL R3 1
- 0x8C0C0714, // 0003 GETMET R3 R3 K20
- 0x5C140200, // 0004 MOVE R5 R1
- 0x5C180400, // 0005 MOVE R6 R2
- 0x7C0C0600, // 0006 CALL R3 3
- 0x1C0C0309, // 0007 EQ R3 R1 K9
- 0x780E0010, // 0008 JMPF R3 #001A
- 0x540E0031, // 0009 LDINT R3 50
- 0x280C0403, // 000A GE R3 R2 R3
- 0x780E000D, // 000B JMPF R3 #001A
- 0x540E03E7, // 000C LDINT R3 1000
- 0x0C0C0602, // 000D DIV R3 R3 R2
- 0x14100708, // 000E LT R4 R3 K8
- 0x78120001, // 000F JMPF R4 #0012
- 0x580C0008, // 0010 LDCONST R3 K8
- 0x70020003, // 0011 JMP #0016
- 0x54120013, // 0012 LDINT R4 20
- 0x24100604, // 0013 GT R4 R3 R4
- 0x78120000, // 0014 JMPF R4 #0016
- 0x540E0013, // 0015 LDINT R3 20
- 0x8C100115, // 0016 GETMET R4 R0 K21
- 0x58180009, // 0017 LDCONST R6 K9
- 0x5C1C0600, // 0018 MOVE R7 R3
- 0x7C100600, // 0019 CALL R4 3
- 0x80000000, // 001A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(class_twinkle_init, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_twinkle, /* shared constants */
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[18]) { /* code */
- 0x60080003, // 0000 GETGBL R2 G3
- 0x5C0C0000, // 0001 MOVE R3 R0
- 0x7C080200, // 0002 CALL R2 1
- 0x8C080516, // 0003 GETMET R2 R2 K22
- 0x5C100200, // 0004 MOVE R4 R1
- 0x7C080400, // 0005 CALL R2 2
- 0x60080015, // 0006 GETGBL R2 G21
- 0x7C080000, // 0007 CALL R2 0
- 0x90020402, // 0008 SETMBR R0 K2 R2
- 0x90021500, // 0009 SETMBR R0 K10 K0
- 0x8808010F, // 000A GETMBR R2 R0 K15
- 0x88080517, // 000B GETMBR R2 R2 K23
- 0x540EFFFF, // 000C LDINT R3 65536
- 0x10080403, // 000D MOD R2 R2 R3
- 0x90021802, // 000E SETMBR R0 K12 R2
- 0x8C080104, // 000F GETMET R2 R0 K4
- 0x7C080200, // 0010 CALL R2 1
- 0x80000000, // 0011 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _update_twinkle_simulation
-********************************************************************/
-be_local_closure(class_twinkle__update_twinkle_simulation, /* name */
- be_nested_proto(
- 22, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_twinkle, /* shared constants */
- be_str_weak(_update_twinkle_simulation),
- &be_const_str_solidified,
- ( &(const binstruction[116]) { /* code */
- 0x88080118, // 0000 GETMBR R2 R0 K24
- 0x880C0119, // 0001 GETMBR R3 R0 K25
- 0x8810011A, // 0002 GETMBR R4 R0 K26
- 0x8814011B, // 0003 GETMBR R5 R0 K27
- 0x8818011C, // 0004 GETMBR R6 R0 K28
- 0x881C010F, // 0005 GETMBR R7 R0 K15
- 0x881C0F10, // 0006 GETMBR R7 R7 K16
- 0x88200102, // 0007 GETMBR R8 R0 K2
- 0x8C201103, // 0008 GETMET R8 R8 K3
- 0x7C200200, // 0009 CALL R8 1
- 0x54260003, // 000A LDINT R9 4
- 0x08240E09, // 000B MUL R9 R7 R9
- 0x20201009, // 000C NE R8 R8 R9
- 0x78220001, // 000D JMPF R8 #0010
- 0x8C200104, // 000E GETMET R8 R0 K4
- 0x7C200200, // 000F CALL R8 1
- 0x58200000, // 0010 LDCONST R8 K0
- 0x14241007, // 0011 LT R9 R8 R7
- 0x7826002A, // 0012 JMPF R9 #003E
- 0x88240102, // 0013 GETMBR R9 R0 K2
- 0x8C241306, // 0014 GETMET R9 R9 K6
- 0x542E0003, // 0015 LDINT R11 4
- 0x082C100B, // 0016 MUL R11 R8 R11
- 0x5431FFFB, // 0017 LDINT R12 -4
- 0x7C240600, // 0018 CALL R9 3
- 0x542A0017, // 0019 LDINT R10 24
- 0x3C28120A, // 001A SHR R10 R9 R10
- 0x542E00FE, // 001B LDINT R11 255
- 0x2C28140B, // 001C AND R10 R10 R11
- 0x242C1500, // 001D GT R11 R10 K0
- 0x782E001C, // 001E JMPF R11 #003C
- 0xB82E3A00, // 001F GETNGBL R11 K29
- 0x8C2C171E, // 0020 GETMET R11 R11 K30
- 0x5C340400, // 0021 MOVE R13 R2
- 0x58380000, // 0022 LDCONST R14 K0
- 0x543E00FE, // 0023 LDINT R15 255
- 0x58400008, // 0024 LDCONST R16 K8
- 0x54460013, // 0025 LDINT R17 20
- 0x7C2C0C00, // 0026 CALL R11 6
- 0x1830140B, // 0027 LE R12 R10 R11
- 0x78320007, // 0028 JMPF R12 #0031
- 0x88300102, // 0029 GETMBR R12 R0 K2
- 0x8C301913, // 002A GETMET R12 R12 K19
- 0x543A0003, // 002B LDINT R14 4
- 0x0838100E, // 002C MUL R14 R8 R14
- 0x583C0000, // 002D LDCONST R15 K0
- 0x5441FFFB, // 002E LDINT R16 -4
- 0x7C300800, // 002F CALL R12 4
- 0x7002000A, // 0030 JMP #003C
- 0x0430140B, // 0031 SUB R12 R10 R11
- 0x2C34131F, // 0032 AND R13 R9 K31
- 0x88380102, // 0033 GETMBR R14 R0 K2
- 0x8C381D13, // 0034 GETMET R14 R14 K19
- 0x54420003, // 0035 LDINT R16 4
- 0x08401010, // 0036 MUL R16 R8 R16
- 0x54460017, // 0037 LDINT R17 24
- 0x38441811, // 0038 SHL R17 R12 R17
- 0x3044220D, // 0039 OR R17 R17 R13
- 0x5449FFFB, // 003A LDINT R18 -4
- 0x7C380800, // 003B CALL R14 4
- 0x00201108, // 003C ADD R8 R8 K8
- 0x7001FFD2, // 003D JMP #0011
- 0x58240000, // 003E LDCONST R9 K0
- 0x14281207, // 003F LT R10 R9 R7
- 0x782A0031, // 0040 JMPF R10 #0073
- 0x88280102, // 0041 GETMBR R10 R0 K2
- 0x8C281506, // 0042 GETMET R10 R10 K6
- 0x54320003, // 0043 LDINT R12 4
- 0x0830120C, // 0044 MUL R12 R9 R12
- 0x5435FFFB, // 0045 LDINT R13 -4
- 0x7C280600, // 0046 CALL R10 3
- 0x542E0017, // 0047 LDINT R11 24
- 0x3C2C140B, // 0048 SHR R11 R10 R11
- 0x543200FE, // 0049 LDINT R12 255
- 0x2C2C160C, // 004A AND R11 R11 R12
- 0x1C301700, // 004B EQ R12 R11 K0
- 0x78320023, // 004C JMPF R12 #0071
- 0x8C300120, // 004D GETMET R12 R0 K32
- 0x543A00FE, // 004E LDINT R14 255
- 0x7C300400, // 004F CALL R12 2
- 0x14301803, // 0050 LT R12 R12 R3
- 0x7832001E, // 0051 JMPF R12 #0071
- 0x8C300120, // 0052 GETMET R12 R0 K32
- 0x04380A04, // 0053 SUB R14 R5 R4
- 0x00381D08, // 0054 ADD R14 R14 K8
- 0x7C300400, // 0055 CALL R12 2
- 0x0030080C, // 0056 ADD R12 R4 R12
- 0x5C340C00, // 0057 MOVE R13 R6
- 0x543A000F, // 0058 LDINT R14 16
- 0x3C381A0E, // 0059 SHR R14 R13 R14
- 0x543E00FE, // 005A LDINT R15 255
- 0x2C381C0F, // 005B AND R14 R14 R15
- 0x543E0007, // 005C LDINT R15 8
- 0x3C3C1A0F, // 005D SHR R15 R13 R15
- 0x544200FE, // 005E LDINT R16 255
- 0x2C3C1E10, // 005F AND R15 R15 R16
- 0x544200FE, // 0060 LDINT R16 255
- 0x2C401A10, // 0061 AND R16 R13 R16
- 0x88440102, // 0062 GETMBR R17 R0 K2
- 0x8C442313, // 0063 GETMET R17 R17 K19
- 0x544E0003, // 0064 LDINT R19 4
- 0x084C1213, // 0065 MUL R19 R9 R19
- 0x54520017, // 0066 LDINT R20 24
- 0x38501814, // 0067 SHL R20 R12 R20
- 0x5456000F, // 0068 LDINT R21 16
- 0x38541C15, // 0069 SHL R21 R14 R21
- 0x30502815, // 006A OR R20 R20 R21
- 0x54560007, // 006B LDINT R21 8
- 0x38541E15, // 006C SHL R21 R15 R21
- 0x30502815, // 006D OR R20 R20 R21
- 0x30502810, // 006E OR R20 R20 R16
- 0x5455FFFB, // 006F LDINT R21 -4
- 0x7C440800, // 0070 CALL R17 4
- 0x00241308, // 0071 ADD R9 R9 K8
- 0x7001FFCB, // 0072 JMP #003F
- 0x80000000, // 0073 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: twinkle
-********************************************************************/
-extern const bclass be_class_Animation;
-be_local_class(twinkle,
- 3,
- &be_class_Animation,
- be_nested_map(12,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(last_update, -1), be_const_var(1) },
- { be_const_key_weak(render, 8), be_const_closure(class_twinkle_render_closure) },
- { be_const_key_weak(_update_twinkle_simulation, -1), be_const_closure(class_twinkle__update_twinkle_simulation_closure) },
- { be_const_key_weak(PARAMS, 6), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(6,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(twinkle_speed, 1), be_const_bytes_instance(0700010188130064) },
- { be_const_key_weak(min_brightness, -1), be_const_bytes_instance(07000001FF000020) },
- { be_const_key_weak(density, -1), be_const_bytes_instance(07000001FF000040) },
- { be_const_key_weak(max_brightness, 2), be_const_bytes_instance(07000001FF0001FF00) },
- { be_const_key_weak(color, -1), be_const_bytes_instance(0400BB) },
- { be_const_key_weak(fade_speed, 0), be_const_bytes_instance(07000001FF0001B400) },
- })) ) } )) },
- { be_const_key_weak(update, -1), be_const_closure(class_twinkle_update_closure) },
- { be_const_key_weak(_random, -1), be_const_closure(class_twinkle__random_closure) },
- { be_const_key_weak(init, 9), be_const_closure(class_twinkle_init_closure) },
- { be_const_key_weak(_initialize_arrays, -1), be_const_closure(class_twinkle__initialize_arrays_closure) },
- { be_const_key_weak(on_param_changed, -1), be_const_closure(class_twinkle_on_param_changed_closure) },
- { be_const_key_weak(current_colors, -1), be_const_var(0) },
- { be_const_key_weak(random_seed, 2), be_const_var(2) },
- { be_const_key_weak(_random_range, 0), be_const_closure(class_twinkle__random_range_closure) },
- })),
- be_str_weak(twinkle)
-);
-// compact class 'FireAnimation' ktab size: 44, total: 68 (saved 192 bytes)
-static const bvalue be_ktab_class_FireAnimation[44] = {
- /* K0 */ be_const_int(0),
- /* K1 */ be_nested_str_weak(_random),
- /* K2 */ be_nested_str_weak(width),
- /* K3 */ be_nested_str_weak(set_pixel_color),
- /* K4 */ be_nested_str_weak(current_colors),
- /* K5 */ be_nested_str_weak(get),
- /* K6 */ be_const_int(1),
- /* K7 */ be_nested_str_weak(random_seed),
- /* K8 */ be_const_int(1103515245),
- /* K9 */ be_const_int(2147483647),
- /* K10 */ be_nested_str_weak(init),
- /* K11 */ be_nested_str_weak(heat_map),
- /* K12 */ be_nested_str_weak(last_update),
- /* K13 */ be_nested_str_weak(engine),
- /* K14 */ be_nested_str_weak(time_ms),
- /* K15 */ be_nested_str_weak(cooling_rate),
- /* K16 */ be_nested_str_weak(sparking_rate),
- /* K17 */ be_nested_str_weak(intensity),
- /* K18 */ be_nested_str_weak(flicker_amount),
- /* K19 */ be_nested_str_weak(color),
- /* K20 */ be_nested_str_weak(strip_length),
- /* K21 */ be_nested_str_weak(size),
- /* K22 */ be_nested_str_weak(_initialize_buffers),
- /* K23 */ be_nested_str_weak(_random_range),
- /* K24 */ be_nested_str_weak(tasmota),
- /* K25 */ be_nested_str_weak(scale_uint),
- /* K26 */ be_const_int(2),
- /* K27 */ be_const_int(3),
- /* K28 */ be_const_int(-16777216),
- /* K29 */ be_nested_str_weak(animation),
- /* K30 */ be_nested_str_weak(rich_palette_color),
- /* K31 */ be_nested_str_weak(colors),
- /* K32 */ be_nested_str_weak(PALETTE_FIRE),
- /* K33 */ be_nested_str_weak(period),
- /* K34 */ be_nested_str_weak(transition_type),
- /* K35 */ be_nested_str_weak(brightness),
- /* K36 */ be_nested_str_weak(is_color_provider),
- /* K37 */ be_nested_str_weak(get_color_for_value),
- /* K38 */ be_nested_str_weak(set),
- /* K39 */ be_nested_str_weak(start),
- /* K40 */ be_nested_str_weak(clear),
- /* K41 */ be_nested_str_weak(resize),
- /* K42 */ be_nested_str_weak(flicker_speed),
- /* K43 */ be_nested_str_weak(_update_fire_simulation),
-};
-
-
-extern const bclass be_class_FireAnimation;
-
-/********************************************************************
-** Solidified function: _random_range
-********************************************************************/
-be_local_closure(class_FireAnimation__random_range, /* name */
- be_nested_proto(
- 4, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_FireAnimation, /* shared constants */
- be_str_weak(_random_range),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x18080300, // 0000 LE R2 R1 K0
- 0x780A0000, // 0001 JMPF R2 #0003
- 0x80060000, // 0002 RET 1 K0
- 0x8C080101, // 0003 GETMET R2 R0 K1
- 0x7C080200, // 0004 CALL R2 1
- 0x10080401, // 0005 MOD R2 R2 R1
- 0x80040400, // 0006 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: render
-********************************************************************/
-be_local_closure(class_FireAnimation_render, /* name */
- be_nested_proto(
- 12, /* nstack */
- 4, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_FireAnimation, /* shared constants */
- be_str_weak(render),
- &be_const_str_solidified,
- ( &(const binstruction[19]) { /* code */
- 0x58100000, // 0000 LDCONST R4 K0
- 0x14140803, // 0001 LT R5 R4 R3
- 0x7816000D, // 0002 JMPF R5 #0011
- 0x88140302, // 0003 GETMBR R5 R1 K2
- 0x14140805, // 0004 LT R5 R4 R5
- 0x78160008, // 0005 JMPF R5 #000F
- 0x8C140303, // 0006 GETMET R5 R1 K3
- 0x5C1C0800, // 0007 MOVE R7 R4
- 0x88200104, // 0008 GETMBR R8 R0 K4
- 0x8C201105, // 0009 GETMET R8 R8 K5
- 0x542A0003, // 000A LDINT R10 4
- 0x0828080A, // 000B MUL R10 R4 R10
- 0x542DFFFB, // 000C LDINT R11 -4
- 0x7C200600, // 000D CALL R8 3
- 0x7C140600, // 000E CALL R5 3
- 0x00100906, // 000F ADD R4 R4 K6
- 0x7001FFEF, // 0010 JMP #0001
- 0x50140200, // 0011 LDBOOL R5 1 0
- 0x80040A00, // 0012 RET 1 R5
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _random
-********************************************************************/
-be_local_closure(class_FireAnimation__random, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_FireAnimation, /* shared constants */
- be_str_weak(_random),
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0x88040107, // 0000 GETMBR R1 R0 K7
- 0x08040308, // 0001 MUL R1 R1 K8
- 0x540A3038, // 0002 LDINT R2 12345
- 0x00040202, // 0003 ADD R1 R1 R2
- 0x2C040309, // 0004 AND R1 R1 K9
- 0x90020E01, // 0005 SETMBR R0 K7 R1
- 0x88040107, // 0006 GETMBR R1 R0 K7
- 0x80040200, // 0007 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(class_FireAnimation_init, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_FireAnimation, /* shared constants */
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[19]) { /* code */
- 0x60080003, // 0000 GETGBL R2 G3
- 0x5C0C0000, // 0001 MOVE R3 R0
- 0x7C080200, // 0002 CALL R2 1
- 0x8C08050A, // 0003 GETMET R2 R2 K10
- 0x5C100200, // 0004 MOVE R4 R1
- 0x7C080400, // 0005 CALL R2 2
- 0x60080015, // 0006 GETGBL R2 G21
- 0x7C080000, // 0007 CALL R2 0
- 0x90021602, // 0008 SETMBR R0 K11 R2
- 0x60080015, // 0009 GETGBL R2 G21
- 0x7C080000, // 000A CALL R2 0
- 0x90020802, // 000B SETMBR R0 K4 R2
- 0x90021900, // 000C SETMBR R0 K12 K0
- 0x8808010D, // 000D GETMBR R2 R0 K13
- 0x8808050E, // 000E GETMBR R2 R2 K14
- 0x540EFFFF, // 000F LDINT R3 65536
- 0x10080403, // 0010 MOD R2 R2 R3
- 0x90020E02, // 0011 SETMBR R0 K7 R2
- 0x80000000, // 0012 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _update_fire_simulation
-********************************************************************/
-be_local_closure(class_FireAnimation__update_fire_simulation, /* name */
- be_nested_proto(
- 23, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_FireAnimation, /* shared constants */
- be_str_weak(_update_fire_simulation),
- &be_const_str_solidified,
- ( &(const binstruction[232]) { /* code */
- 0x8808010F, // 0000 GETMBR R2 R0 K15
- 0x880C0110, // 0001 GETMBR R3 R0 K16
- 0x88100111, // 0002 GETMBR R4 R0 K17
- 0x88140112, // 0003 GETMBR R5 R0 K18
- 0x88180113, // 0004 GETMBR R6 R0 K19
- 0x881C010D, // 0005 GETMBR R7 R0 K13
- 0x881C0F14, // 0006 GETMBR R7 R7 K20
- 0x8820010B, // 0007 GETMBR R8 R0 K11
- 0x8C201115, // 0008 GETMET R8 R8 K21
- 0x7C200200, // 0009 CALL R8 1
- 0x20201007, // 000A NE R8 R8 R7
- 0x74220006, // 000B JMPT R8 #0013
- 0x88200104, // 000C GETMBR R8 R0 K4
- 0x8C201115, // 000D GETMET R8 R8 K21
- 0x7C200200, // 000E CALL R8 1
- 0x54260003, // 000F LDINT R9 4
- 0x08240E09, // 0010 MUL R9 R7 R9
- 0x20201009, // 0011 NE R8 R8 R9
- 0x78220001, // 0012 JMPF R8 #0015
- 0x8C200116, // 0013 GETMET R8 R0 K22
- 0x7C200200, // 0014 CALL R8 1
- 0x58200000, // 0015 LDCONST R8 K0
- 0x14241007, // 0016 LT R9 R8 R7
- 0x78260017, // 0017 JMPF R9 #0030
- 0x8C240117, // 0018 GETMET R9 R0 K23
- 0xB82E3000, // 0019 GETNGBL R11 K24
- 0x8C2C1719, // 001A GETMET R11 R11 K25
- 0x5C340400, // 001B MOVE R13 R2
- 0x58380000, // 001C LDCONST R14 K0
- 0x543E00FE, // 001D LDINT R15 255
- 0x58400000, // 001E LDCONST R16 K0
- 0x54460009, // 001F LDINT R17 10
- 0x7C2C0C00, // 0020 CALL R11 6
- 0x002C171A, // 0021 ADD R11 R11 K26
- 0x7C240400, // 0022 CALL R9 2
- 0x8828010B, // 0023 GETMBR R10 R0 K11
- 0x94281408, // 0024 GETIDX R10 R10 R8
- 0x2828120A, // 0025 GE R10 R9 R10
- 0x782A0002, // 0026 JMPF R10 #002A
- 0x8828010B, // 0027 GETMBR R10 R0 K11
- 0x98281100, // 0028 SETIDX R10 R8 K0
- 0x70020003, // 0029 JMP #002E
- 0x8828010B, // 002A GETMBR R10 R0 K11
- 0x942C1408, // 002B GETIDX R11 R10 R8
- 0x042C1609, // 002C SUB R11 R11 R9
- 0x9828100B, // 002D SETIDX R10 R8 R11
- 0x00201106, // 002E ADD R8 R8 K6
- 0x7001FFE5, // 002F JMP #0016
- 0x28240F1B, // 0030 GE R9 R7 K27
- 0x7826001D, // 0031 JMPF R9 #0050
- 0x04240F06, // 0032 SUB R9 R7 K6
- 0x2828131A, // 0033 GE R10 R9 K26
- 0x782A001A, // 0034 JMPF R10 #0050
- 0x04281306, // 0035 SUB R10 R9 K6
- 0x882C010B, // 0036 GETMBR R11 R0 K11
- 0x9428160A, // 0037 GETIDX R10 R11 R10
- 0x042C131A, // 0038 SUB R11 R9 K26
- 0x8830010B, // 0039 GETMBR R12 R0 K11
- 0x942C180B, // 003A GETIDX R11 R12 R11
- 0x0028140B, // 003B ADD R10 R10 R11
- 0x042C131A, // 003C SUB R11 R9 K26
- 0x8830010B, // 003D GETMBR R12 R0 K11
- 0x942C180B, // 003E GETIDX R11 R12 R11
- 0x0028140B, // 003F ADD R10 R10 R11
- 0x0C28151B, // 0040 DIV R10 R10 K27
- 0x142C1500, // 0041 LT R11 R10 K0
- 0x782E0001, // 0042 JMPF R11 #0045
- 0x58280000, // 0043 LDCONST R10 K0
- 0x70020003, // 0044 JMP #0049
- 0x542E00FE, // 0045 LDINT R11 255
- 0x242C140B, // 0046 GT R11 R10 R11
- 0x782E0000, // 0047 JMPF R11 #0049
- 0x542A00FE, // 0048 LDINT R10 255
- 0x882C010B, // 0049 GETMBR R11 R0 K11
- 0x60300009, // 004A GETGBL R12 G9
- 0x5C341400, // 004B MOVE R13 R10
- 0x7C300200, // 004C CALL R12 1
- 0x982C120C, // 004D SETIDX R11 R9 R12
- 0x04241306, // 004E SUB R9 R9 K6
- 0x7001FFE2, // 004F JMP #0033
- 0x8C240117, // 0050 GETMET R9 R0 K23
- 0x542E00FE, // 0051 LDINT R11 255
- 0x7C240400, // 0052 CALL R9 2
- 0x14241203, // 0053 LT R9 R9 R3
- 0x7826000F, // 0054 JMPF R9 #0065
- 0x8C240117, // 0055 GETMET R9 R0 K23
- 0x542E0006, // 0056 LDINT R11 7
- 0x7C240400, // 0057 CALL R9 2
- 0x8C280117, // 0058 GETMET R10 R0 K23
- 0x5432005E, // 0059 LDINT R12 95
- 0x7C280400, // 005A CALL R10 2
- 0x542E009F, // 005B LDINT R11 160
- 0x0028140B, // 005C ADD R10 R10 R11
- 0x542E00FE, // 005D LDINT R11 255
- 0x242C140B, // 005E GT R11 R10 R11
- 0x782E0000, // 005F JMPF R11 #0061
- 0x542A00FE, // 0060 LDINT R10 255
- 0x142C1207, // 0061 LT R11 R9 R7
- 0x782E0001, // 0062 JMPF R11 #0065
- 0x882C010B, // 0063 GETMBR R11 R0 K11
- 0x982C120A, // 0064 SETIDX R11 R9 R10
- 0x58200000, // 0065 LDCONST R8 K0
- 0x14241007, // 0066 LT R9 R8 R7
- 0x7826007E, // 0067 JMPF R9 #00E7
- 0x8824010B, // 0068 GETMBR R9 R0 K11
- 0x94241208, // 0069 GETIDX R9 R9 R8
- 0xB82A3000, // 006A GETNGBL R10 K24
- 0x8C281519, // 006B GETMET R10 R10 K25
- 0x5C301200, // 006C MOVE R12 R9
- 0x58340000, // 006D LDCONST R13 K0
- 0x543A00FE, // 006E LDINT R14 255
- 0x583C0000, // 006F LDCONST R15 K0
- 0x5C400800, // 0070 MOVE R16 R4
- 0x7C280C00, // 0071 CALL R10 6
- 0x5C241400, // 0072 MOVE R9 R10
- 0x24280B00, // 0073 GT R10 R5 K0
- 0x782A0012, // 0074 JMPF R10 #0088
- 0x8C280117, // 0075 GETMET R10 R0 K23
- 0x5C300A00, // 0076 MOVE R12 R5
- 0x7C280400, // 0077 CALL R10 2
- 0x8C2C0117, // 0078 GETMET R11 R0 K23
- 0x5834001A, // 0079 LDCONST R13 K26
- 0x7C2C0400, // 007A CALL R11 2
- 0x1C2C1700, // 007B EQ R11 R11 K0
- 0x782E0001, // 007C JMPF R11 #007F
- 0x0024120A, // 007D ADD R9 R9 R10
- 0x70020004, // 007E JMP #0084
- 0x242C120A, // 007F GT R11 R9 R10
- 0x782E0001, // 0080 JMPF R11 #0083
- 0x0424120A, // 0081 SUB R9 R9 R10
- 0x70020000, // 0082 JMP #0084
- 0x58240000, // 0083 LDCONST R9 K0
- 0x542E00FE, // 0084 LDINT R11 255
- 0x242C120B, // 0085 GT R11 R9 R11
- 0x782E0000, // 0086 JMPF R11 #0088
- 0x542600FE, // 0087 LDINT R9 255
- 0x5828001C, // 0088 LDCONST R10 K28
- 0x242C1300, // 0089 GT R11 R9 K0
- 0x782E0052, // 008A JMPF R11 #00DE
- 0x5C2C0C00, // 008B MOVE R11 R6
- 0x4C300000, // 008C LDNIL R12
- 0x1C30160C, // 008D EQ R12 R11 R12
- 0x7832000B, // 008E JMPF R12 #009B
- 0xB8323A00, // 008F GETNGBL R12 K29
- 0x8C30191E, // 0090 GETMET R12 R12 K30
- 0x8838010D, // 0091 GETMBR R14 R0 K13
- 0x7C300400, // 0092 CALL R12 2
- 0xB8363A00, // 0093 GETNGBL R13 K29
- 0x88341B20, // 0094 GETMBR R13 R13 K32
- 0x90323E0D, // 0095 SETMBR R12 K31 R13
- 0x90324300, // 0096 SETMBR R12 K33 K0
- 0x90324506, // 0097 SETMBR R12 K34 K6
- 0x543600FE, // 0098 LDINT R13 255
- 0x9032460D, // 0099 SETMBR R12 K35 R13
- 0x5C2C1800, // 009A MOVE R11 R12
- 0xB8323A00, // 009B GETNGBL R12 K29
- 0x8C301924, // 009C GETMET R12 R12 K36
- 0x5C381600, // 009D MOVE R14 R11
- 0x7C300400, // 009E CALL R12 2
- 0x78320009, // 009F JMPF R12 #00AA
- 0x88301725, // 00A0 GETMBR R12 R11 K37
- 0x4C340000, // 00A1 LDNIL R13
- 0x2030180D, // 00A2 NE R12 R12 R13
- 0x78320005, // 00A3 JMPF R12 #00AA
- 0x8C301725, // 00A4 GETMET R12 R11 K37
- 0x5C381200, // 00A5 MOVE R14 R9
- 0x583C0000, // 00A6 LDCONST R15 K0
- 0x7C300600, // 00A7 CALL R12 3
- 0x5C281800, // 00A8 MOVE R10 R12
- 0x70020033, // 00A9 JMP #00DE
- 0x5C281600, // 00AA MOVE R10 R11
- 0x54320017, // 00AB LDINT R12 24
- 0x3C30140C, // 00AC SHR R12 R10 R12
- 0x543600FE, // 00AD LDINT R13 255
- 0x2C30180D, // 00AE AND R12 R12 R13
- 0x5436000F, // 00AF LDINT R13 16
- 0x3C34140D, // 00B0 SHR R13 R10 R13
- 0x543A00FE, // 00B1 LDINT R14 255
- 0x2C341A0E, // 00B2 AND R13 R13 R14
- 0x543A0007, // 00B3 LDINT R14 8
- 0x3C38140E, // 00B4 SHR R14 R10 R14
- 0x543E00FE, // 00B5 LDINT R15 255
- 0x2C381C0F, // 00B6 AND R14 R14 R15
- 0x543E00FE, // 00B7 LDINT R15 255
- 0x2C3C140F, // 00B8 AND R15 R10 R15
- 0xB8423000, // 00B9 GETNGBL R16 K24
- 0x8C402119, // 00BA GETMET R16 R16 K25
- 0x5C481200, // 00BB MOVE R18 R9
- 0x584C0000, // 00BC LDCONST R19 K0
- 0x545200FE, // 00BD LDINT R20 255
- 0x58540000, // 00BE LDCONST R21 K0
- 0x5C581A00, // 00BF MOVE R22 R13
- 0x7C400C00, // 00C0 CALL R16 6
- 0x5C342000, // 00C1 MOVE R13 R16
- 0xB8423000, // 00C2 GETNGBL R16 K24
- 0x8C402119, // 00C3 GETMET R16 R16 K25
- 0x5C481200, // 00C4 MOVE R18 R9
- 0x584C0000, // 00C5 LDCONST R19 K0
- 0x545200FE, // 00C6 LDINT R20 255
- 0x58540000, // 00C7 LDCONST R21 K0
- 0x5C581C00, // 00C8 MOVE R22 R14
- 0x7C400C00, // 00C9 CALL R16 6
- 0x5C382000, // 00CA MOVE R14 R16
- 0xB8423000, // 00CB GETNGBL R16 K24
- 0x8C402119, // 00CC GETMET R16 R16 K25
- 0x5C481200, // 00CD MOVE R18 R9
- 0x584C0000, // 00CE LDCONST R19 K0
- 0x545200FE, // 00CF LDINT R20 255
- 0x58540000, // 00D0 LDCONST R21 K0
- 0x5C581E00, // 00D1 MOVE R22 R15
- 0x7C400C00, // 00D2 CALL R16 6
- 0x5C3C2000, // 00D3 MOVE R15 R16
- 0x54420017, // 00D4 LDINT R16 24
- 0x38401810, // 00D5 SHL R16 R12 R16
- 0x5446000F, // 00D6 LDINT R17 16
- 0x38441A11, // 00D7 SHL R17 R13 R17
- 0x30402011, // 00D8 OR R16 R16 R17
- 0x54460007, // 00D9 LDINT R17 8
- 0x38441C11, // 00DA SHL R17 R14 R17
- 0x30402011, // 00DB OR R16 R16 R17
- 0x3040200F, // 00DC OR R16 R16 R15
- 0x5C282000, // 00DD MOVE R10 R16
- 0x882C0104, // 00DE GETMBR R11 R0 K4
- 0x8C2C1726, // 00DF GETMET R11 R11 K38
- 0x54360003, // 00E0 LDINT R13 4
- 0x0834100D, // 00E1 MUL R13 R8 R13
- 0x5C381400, // 00E2 MOVE R14 R10
- 0x543DFFFB, // 00E3 LDINT R15 -4
- 0x7C2C0800, // 00E4 CALL R11 4
- 0x00201106, // 00E5 ADD R8 R8 K6
- 0x7001FF7E, // 00E6 JMP #0066
- 0x80000000, // 00E7 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: start
-********************************************************************/
-be_local_closure(class_FireAnimation_start, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_FireAnimation, /* shared constants */
- be_str_weak(start),
- &be_const_str_solidified,
- ( &(const binstruction[15]) { /* code */
- 0x60080003, // 0000 GETGBL R2 G3
- 0x5C0C0000, // 0001 MOVE R3 R0
- 0x7C080200, // 0002 CALL R2 1
- 0x8C080527, // 0003 GETMET R2 R2 K39
- 0x5C100200, // 0004 MOVE R4 R1
- 0x7C080400, // 0005 CALL R2 2
- 0x90021900, // 0006 SETMBR R0 K12 K0
- 0x8C080116, // 0007 GETMET R2 R0 K22
- 0x7C080200, // 0008 CALL R2 1
- 0x8808010D, // 0009 GETMBR R2 R0 K13
- 0x8808050E, // 000A GETMBR R2 R2 K14
- 0x540EFFFF, // 000B LDINT R3 65536
- 0x10080403, // 000C MOD R2 R2 R3
- 0x90020E02, // 000D SETMBR R0 K7 R2
- 0x80040000, // 000E RET 1 R0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _initialize_buffers
-********************************************************************/
-be_local_closure(class_FireAnimation__initialize_buffers, /* name */
- be_nested_proto(
- 8, /* nstack */
- 1, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_FireAnimation, /* shared constants */
- be_str_weak(_initialize_buffers),
- &be_const_str_solidified,
- ( &(const binstruction[30]) { /* code */
- 0x8804010D, // 0000 GETMBR R1 R0 K13
- 0x88040314, // 0001 GETMBR R1 R1 K20
- 0x8808010B, // 0002 GETMBR R2 R0 K11
- 0x8C080528, // 0003 GETMET R2 R2 K40
- 0x7C080200, // 0004 CALL R2 1
- 0x8808010B, // 0005 GETMBR R2 R0 K11
- 0x8C080529, // 0006 GETMET R2 R2 K41
- 0x5C100200, // 0007 MOVE R4 R1
- 0x7C080400, // 0008 CALL R2 2
- 0x88080104, // 0009 GETMBR R2 R0 K4
- 0x8C080528, // 000A GETMET R2 R2 K40
- 0x7C080200, // 000B CALL R2 1
- 0x88080104, // 000C GETMBR R2 R0 K4
- 0x8C080529, // 000D GETMET R2 R2 K41
- 0x54120003, // 000E LDINT R4 4
- 0x08100204, // 000F MUL R4 R1 R4
- 0x7C080400, // 0010 CALL R2 2
- 0x58080000, // 0011 LDCONST R2 K0
- 0x140C0401, // 0012 LT R3 R2 R1
- 0x780E0008, // 0013 JMPF R3 #001D
- 0x880C0104, // 0014 GETMBR R3 R0 K4
- 0x8C0C0726, // 0015 GETMET R3 R3 K38
- 0x54160003, // 0016 LDINT R5 4
- 0x08140405, // 0017 MUL R5 R2 R5
- 0x5818001C, // 0018 LDCONST R6 K28
- 0x541DFFFB, // 0019 LDINT R7 -4
- 0x7C0C0800, // 001A CALL R3 4
- 0x00080506, // 001B ADD R2 R2 K6
- 0x7001FFF4, // 001C JMP #0012
- 0x80000000, // 001D RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: update
-********************************************************************/
-be_local_closure(class_FireAnimation_update, /* name */
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_FireAnimation, /* shared constants */
- be_str_weak(update),
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0x8808012A, // 0000 GETMBR R2 R0 K42
- 0x540E03E7, // 0001 LDINT R3 1000
- 0x0C0C0602, // 0002 DIV R3 R3 R2
- 0x8810010C, // 0003 GETMBR R4 R0 K12
- 0x04100204, // 0004 SUB R4 R1 R4
- 0x28100803, // 0005 GE R4 R4 R3
- 0x78120003, // 0006 JMPF R4 #000B
- 0x90021801, // 0007 SETMBR R0 K12 R1
- 0x8C10012B, // 0008 GETMET R4 R0 K43
- 0x5C180200, // 0009 MOVE R6 R1
- 0x7C100400, // 000A CALL R4 2
- 0x80000000, // 000B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: FireAnimation
-********************************************************************/
-extern const bclass be_class_Animation;
-be_local_class(FireAnimation,
- 4,
- &be_class_Animation,
- be_nested_map(13,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(current_colors, -1), be_const_var(1) },
- { be_const_key_weak(last_update, 4), be_const_var(2) },
- { be_const_key_weak(render, -1), be_const_closure(class_FireAnimation_render_closure) },
- { be_const_key_weak(_random_range, 9), be_const_closure(class_FireAnimation__random_range_closure) },
- { be_const_key_weak(_random, -1), be_const_closure(class_FireAnimation__random_closure) },
- { be_const_key_weak(random_seed, -1), be_const_var(3) },
- { be_const_key_weak(init, -1), be_const_closure(class_FireAnimation_init_closure) },
- { be_const_key_weak(_update_fire_simulation, -1), be_const_closure(class_FireAnimation__update_fire_simulation_closure) },
- { be_const_key_weak(start, -1), be_const_closure(class_FireAnimation_start_closure) },
- { be_const_key_weak(_initialize_buffers, 2), be_const_closure(class_FireAnimation__initialize_buffers_closure) },
- { be_const_key_weak(heat_map, -1), be_const_var(0) },
- { be_const_key_weak(PARAMS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(5,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(flicker_amount, 4), be_const_bytes_instance(07000001FF000064) },
- { be_const_key_weak(intensity, 0), be_const_bytes_instance(07000001FF0001B400) },
- { be_const_key_weak(flicker_speed, -1), be_const_bytes_instance(07000100140008) },
- { be_const_key_weak(sparking_rate, -1), be_const_bytes_instance(07000001FF000078) },
- { be_const_key_weak(cooling_rate, -1), be_const_bytes_instance(07000001FF000037) },
- })) ) } )) },
- { be_const_key_weak(update, -1), be_const_closure(class_FireAnimation_update_closure) },
- })),
- be_str_weak(FireAnimation)
-);
-
-extern const bclass be_class_CrenelPositionAnimation;
-
-/********************************************************************
-** Solidified function: render
-********************************************************************/
-be_local_closure(class_CrenelPositionAnimation_render, /* name */
- be_nested_proto(
- 16, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[11]) { /* constants */
- /* K0 */ be_nested_str_weak(back_color),
- /* K1 */ be_nested_str_weak(pos),
- /* K2 */ be_nested_str_weak(pulse_size),
- /* K3 */ be_nested_str_weak(low_size),
- /* K4 */ be_nested_str_weak(nb_pulse),
- /* K5 */ be_nested_str_weak(color),
- /* K6 */ be_const_int(0),
- /* K7 */ be_nested_str_weak(fill_pixels),
- /* K8 */ be_nested_str_weak(pixels),
- /* K9 */ be_const_int(1),
- /* K10 */ be_nested_str_weak(set_pixel_color),
- }),
- be_str_weak(render),
- &be_const_str_solidified,
- ( &(const binstruction[64]) { /* code */
- 0x88100100, // 0000 GETMBR R4 R0 K0
- 0x88140101, // 0001 GETMBR R5 R0 K1
- 0x88180102, // 0002 GETMBR R6 R0 K2
- 0x881C0103, // 0003 GETMBR R7 R0 K3
- 0x88200104, // 0004 GETMBR R8 R0 K4
- 0x88240105, // 0005 GETMBR R9 R0 K5
- 0x60280009, // 0006 GETGBL R10 G9
- 0x002C0C07, // 0007 ADD R11 R6 R7
- 0x7C280200, // 0008 CALL R10 1
- 0x202C0906, // 0009 NE R11 R4 K6
- 0x782E0003, // 000A JMPF R11 #000F
- 0x8C2C0307, // 000B GETMET R11 R1 K7
- 0x88340308, // 000C GETMBR R13 R1 K8
- 0x5C380800, // 000D MOVE R14 R4
- 0x7C2C0600, // 000E CALL R11 3
- 0x182C1506, // 000F LE R11 R10 K6
- 0x782E0000, // 0010 JMPF R11 #0012
- 0x58280009, // 0011 LDCONST R10 K9
- 0x1C2C1106, // 0012 EQ R11 R8 K6
- 0x782E0001, // 0013 JMPF R11 #0016
- 0x502C0200, // 0014 LDBOOL R11 1 0
- 0x80041600, // 0015 RET 1 R11
- 0x142C1106, // 0016 LT R11 R8 K6
- 0x782E0006, // 0017 JMPF R11 #001F
- 0x002C0A06, // 0018 ADD R11 R5 R6
- 0x042C1709, // 0019 SUB R11 R11 K9
- 0x102C160A, // 001A MOD R11 R11 R10
- 0x042C1606, // 001B SUB R11 R11 R6
- 0x002C1709, // 001C ADD R11 R11 K9
- 0x5C141600, // 001D MOVE R5 R11
- 0x70020007, // 001E JMP #0027
- 0x442C1400, // 001F NEG R11 R10
- 0x142C0A0B, // 0020 LT R11 R5 R11
- 0x782E0004, // 0021 JMPF R11 #0027
- 0x202C1106, // 0022 NE R11 R8 K6
- 0x782E0002, // 0023 JMPF R11 #0027
- 0x00140A0A, // 0024 ADD R5 R5 R10
- 0x04201109, // 0025 SUB R8 R8 K9
- 0x7001FFF7, // 0026 JMP #001F
- 0x142C0A03, // 0027 LT R11 R5 R3
- 0x782E0014, // 0028 JMPF R11 #003E
- 0x202C1106, // 0029 NE R11 R8 K6
- 0x782E0012, // 002A JMPF R11 #003E
- 0x582C0006, // 002B LDCONST R11 K6
- 0x14300B06, // 002C LT R12 R5 K6
- 0x78320001, // 002D JMPF R12 #0030
- 0x44300A00, // 002E NEG R12 R5
- 0x5C2C1800, // 002F MOVE R11 R12
- 0x14301606, // 0030 LT R12 R11 R6
- 0x78320008, // 0031 JMPF R12 #003B
- 0x00300A0B, // 0032 ADD R12 R5 R11
- 0x14301803, // 0033 LT R12 R12 R3
- 0x78320005, // 0034 JMPF R12 #003B
- 0x8C30030A, // 0035 GETMET R12 R1 K10
- 0x00380A0B, // 0036 ADD R14 R5 R11
- 0x5C3C1200, // 0037 MOVE R15 R9
- 0x7C300600, // 0038 CALL R12 3
- 0x002C1709, // 0039 ADD R11 R11 K9
- 0x7001FFF4, // 003A JMP #0030
- 0x00140A0A, // 003B ADD R5 R5 R10
- 0x04201109, // 003C SUB R8 R8 K9
- 0x7001FFE8, // 003D JMP #0027
- 0x502C0200, // 003E LDBOOL R11 1 0
- 0x80041600, // 003F RET 1 R11
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: CrenelPositionAnimation
-********************************************************************/
-extern const bclass be_class_Animation;
-be_local_class(CrenelPositionAnimation,
- 0,
- &be_class_Animation,
- be_nested_map(2,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(render, -1), be_const_closure(class_CrenelPositionAnimation_render_closure) },
- { be_const_key_weak(PARAMS, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(5,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(nb_pulse, -1), be_const_bytes_instance(0400FF) },
- { be_const_key_weak(low_size, 4), be_const_bytes_instance(0500000003) },
- { be_const_key_weak(pos, 1), be_const_bytes_instance(040000) },
- { be_const_key_weak(pulse_size, -1), be_const_bytes_instance(0500000001) },
- { be_const_key_weak(back_color, -1), be_const_bytes_instance(040000) },
- })) ) } )) },
- })),
- be_str_weak(CrenelPositionAnimation)
-);
-// compact class 'CometAnimation' ktab size: 18, total: 31 (saved 104 bytes)
-static const bvalue be_ktab_class_CometAnimation[18] = {
- /* K0 */ be_nested_str_weak(head_position),
- /* K1 */ be_nested_str_weak(color),
- /* K2 */ be_nested_str_weak(tail_length),
- /* K3 */ be_nested_str_weak(direction),
- /* K4 */ be_nested_str_weak(wrap_around),
- /* K5 */ be_nested_str_weak(fade_factor),
- /* K6 */ be_const_int(0),
- /* K7 */ be_const_int(1),
- /* K8 */ be_nested_str_weak(tasmota),
- /* K9 */ be_nested_str_weak(scale_uint),
- /* K10 */ be_nested_str_weak(width),
- /* K11 */ be_nested_str_weak(set_pixel_color),
- /* K12 */ be_nested_str_weak(init),
- /* K13 */ be_nested_str_weak(speed),
- /* K14 */ be_nested_str_weak(engine),
- /* K15 */ be_nested_str_weak(strip_length),
- /* K16 */ be_nested_str_weak(start_time),
- /* K17 */ be_nested_str_weak(on_param_changed),
-};
-
-
-extern const bclass be_class_CometAnimation;
-
-/********************************************************************
-** Solidified function: render
-********************************************************************/
-be_local_closure(class_CometAnimation_render, /* name */
- be_nested_proto(
- 25, /* nstack */
- 4, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_CometAnimation, /* shared constants */
- be_str_weak(render),
- &be_const_str_solidified,
- ( &(const binstruction[83]) { /* code */
- 0x88100100, // 0000 GETMBR R4 R0 K0
- 0x541600FF, // 0001 LDINT R5 256
- 0x0C100805, // 0002 DIV R4 R4 R5
- 0x88140101, // 0003 GETMBR R5 R0 K1
- 0x88180102, // 0004 GETMBR R6 R0 K2
- 0x881C0103, // 0005 GETMBR R7 R0 K3
- 0x88200104, // 0006 GETMBR R8 R0 K4
- 0x88240105, // 0007 GETMBR R9 R0 K5
- 0x542A0017, // 0008 LDINT R10 24
- 0x3C280A0A, // 0009 SHR R10 R5 R10
- 0x542E00FE, // 000A LDINT R11 255
- 0x2C28140B, // 000B AND R10 R10 R11
- 0x542E000F, // 000C LDINT R11 16
- 0x3C2C0A0B, // 000D SHR R11 R5 R11
- 0x543200FE, // 000E LDINT R12 255
- 0x2C2C160C, // 000F AND R11 R11 R12
- 0x54320007, // 0010 LDINT R12 8
- 0x3C300A0C, // 0011 SHR R12 R5 R12
- 0x543600FE, // 0012 LDINT R13 255
- 0x2C30180D, // 0013 AND R12 R12 R13
- 0x543600FE, // 0014 LDINT R13 255
- 0x2C340A0D, // 0015 AND R13 R5 R13
- 0x58380006, // 0016 LDCONST R14 K6
- 0x143C1C06, // 0017 LT R15 R14 R6
- 0x783E0037, // 0018 JMPF R15 #0051
- 0x083C1C07, // 0019 MUL R15 R14 R7
- 0x043C080F, // 001A SUB R15 R4 R15
- 0x20401106, // 001B NE R16 R8 K6
- 0x78420008, // 001C JMPF R16 #0026
- 0x28401E03, // 001D GE R16 R15 R3
- 0x78420001, // 001E JMPF R16 #0021
- 0x043C1E03, // 001F SUB R15 R15 R3
- 0x7001FFFB, // 0020 JMP #001D
- 0x14401F06, // 0021 LT R16 R15 K6
- 0x78420001, // 0022 JMPF R16 #0025
- 0x003C1E03, // 0023 ADD R15 R15 R3
- 0x7001FFFB, // 0024 JMP #0021
- 0x70020005, // 0025 JMP #002C
- 0x14401F06, // 0026 LT R16 R15 K6
- 0x74420001, // 0027 JMPT R16 #002A
- 0x28401E03, // 0028 GE R16 R15 R3
- 0x78420001, // 0029 JMPF R16 #002C
- 0x00381D07, // 002A ADD R14 R14 K7
- 0x7001FFEA, // 002B JMP #0017
- 0x544200FE, // 002C LDINT R16 255
- 0x24441D06, // 002D GT R17 R14 K6
- 0x7846000D, // 002E JMPF R17 #003D
- 0x58440006, // 002F LDCONST R17 K6
- 0x1448220E, // 0030 LT R18 R17 R14
- 0x784A000A, // 0031 JMPF R18 #003D
- 0xB84A1000, // 0032 GETNGBL R18 K8
- 0x8C482509, // 0033 GETMET R18 R18 K9
- 0x5C502000, // 0034 MOVE R20 R16
- 0x58540006, // 0035 LDCONST R21 K6
- 0x545A00FE, // 0036 LDINT R22 255
- 0x585C0006, // 0037 LDCONST R23 K6
- 0x5C601200, // 0038 MOVE R24 R9
- 0x7C480C00, // 0039 CALL R18 6
- 0x5C402400, // 003A MOVE R16 R18
- 0x00442307, // 003B ADD R17 R17 K7
- 0x7001FFF2, // 003C JMP #0030
- 0x54460017, // 003D LDINT R17 24
- 0x38442011, // 003E SHL R17 R16 R17
- 0x544A000F, // 003F LDINT R18 16
- 0x38481612, // 0040 SHL R18 R11 R18
- 0x30442212, // 0041 OR R17 R17 R18
- 0x544A0007, // 0042 LDINT R18 8
- 0x38481812, // 0043 SHL R18 R12 R18
- 0x30442212, // 0044 OR R17 R17 R18
- 0x3044220D, // 0045 OR R17 R17 R13
- 0x28481F06, // 0046 GE R18 R15 K6
- 0x784A0006, // 0047 JMPF R18 #004F
- 0x8848030A, // 0048 GETMBR R18 R1 K10
- 0x14481E12, // 0049 LT R18 R15 R18
- 0x784A0003, // 004A JMPF R18 #004F
- 0x8C48030B, // 004B GETMET R18 R1 K11
- 0x5C501E00, // 004C MOVE R20 R15
- 0x5C542200, // 004D MOVE R21 R17
- 0x7C480600, // 004E CALL R18 3
- 0x00381D07, // 004F ADD R14 R14 K7
- 0x7001FFC5, // 0050 JMP #0017
- 0x503C0200, // 0051 LDBOOL R15 1 0
- 0x80041E00, // 0052 RET 1 R15
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(class_CometAnimation_init, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_CometAnimation, /* shared constants */
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0x60080003, // 0000 GETGBL R2 G3
- 0x5C0C0000, // 0001 MOVE R3 R0
- 0x7C080200, // 0002 CALL R2 1
- 0x8C08050C, // 0003 GETMET R2 R2 K12
- 0x5C100200, // 0004 MOVE R4 R1
- 0x7C080400, // 0005 CALL R2 2
- 0x90020106, // 0006 SETMBR R0 K0 K6
- 0x80000000, // 0007 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: update
-********************************************************************/
-be_local_closure(class_CometAnimation_update, /* name */
- be_nested_proto(
- 11, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_CometAnimation, /* shared constants */
- be_str_weak(update),
- &be_const_str_solidified,
- ( &(const binstruction[56]) { /* code */
- 0x8808010D, // 0000 GETMBR R2 R0 K13
- 0x880C0103, // 0001 GETMBR R3 R0 K3
- 0x88100104, // 0002 GETMBR R4 R0 K4
- 0x8814010E, // 0003 GETMBR R5 R0 K14
- 0x88140B0F, // 0004 GETMBR R5 R5 K15
- 0x88180110, // 0005 GETMBR R6 R0 K16
- 0x04180206, // 0006 SUB R6 R1 R6
- 0x081C0406, // 0007 MUL R7 R2 R6
- 0x081C0E03, // 0008 MUL R7 R7 R3
- 0x542203E7, // 0009 LDINT R8 1000
- 0x0C1C0E08, // 000A DIV R7 R7 R8
- 0x24200706, // 000B GT R8 R3 K6
- 0x78220001, // 000C JMPF R8 #000F
- 0x90020007, // 000D SETMBR R0 K0 R7
- 0x70020004, // 000E JMP #0014
- 0x04200B07, // 000F SUB R8 R5 K7
- 0x542600FF, // 0010 LDINT R9 256
- 0x08201009, // 0011 MUL R8 R8 R9
- 0x00201007, // 0012 ADD R8 R8 R7
- 0x90020008, // 0013 SETMBR R0 K0 R8
- 0x542200FF, // 0014 LDINT R8 256
- 0x08200A08, // 0015 MUL R8 R5 R8
- 0x20240906, // 0016 NE R9 R4 K6
- 0x7826000E, // 0017 JMPF R9 #0027
- 0x88240100, // 0018 GETMBR R9 R0 K0
- 0x28241208, // 0019 GE R9 R9 R8
- 0x78260003, // 001A JMPF R9 #001F
- 0x88240100, // 001B GETMBR R9 R0 K0
- 0x04241208, // 001C SUB R9 R9 R8
- 0x90020009, // 001D SETMBR R0 K0 R9
- 0x7001FFF8, // 001E JMP #0018
- 0x88240100, // 001F GETMBR R9 R0 K0
- 0x14241306, // 0020 LT R9 R9 K6
- 0x78260003, // 0021 JMPF R9 #0026
- 0x88240100, // 0022 GETMBR R9 R0 K0
- 0x00241208, // 0023 ADD R9 R9 R8
- 0x90020009, // 0024 SETMBR R0 K0 R9
- 0x7001FFF8, // 0025 JMP #001F
- 0x7002000F, // 0026 JMP #0037
- 0x88240100, // 0027 GETMBR R9 R0 K0
- 0x28241208, // 0028 GE R9 R9 R8
- 0x78260006, // 0029 JMPF R9 #0031
- 0x04240B07, // 002A SUB R9 R5 K7
- 0x542A00FF, // 002B LDINT R10 256
- 0x0824120A, // 002C MUL R9 R9 R10
- 0x90020009, // 002D SETMBR R0 K0 R9
- 0x44240600, // 002E NEG R9 R3
- 0x90020609, // 002F SETMBR R0 K3 R9
- 0x70020005, // 0030 JMP #0037
- 0x88240100, // 0031 GETMBR R9 R0 K0
- 0x14241306, // 0032 LT R9 R9 K6
- 0x78260002, // 0033 JMPF R9 #0037
- 0x90020106, // 0034 SETMBR R0 K0 K6
- 0x44240600, // 0035 NEG R9 R3
- 0x90020609, // 0036 SETMBR R0 K3 R9
- 0x80000000, // 0037 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: on_param_changed
-********************************************************************/
-be_local_closure(class_CometAnimation_on_param_changed, /* name */
- be_nested_proto(
- 7, /* nstack */
- 3, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_CometAnimation, /* shared constants */
- be_str_weak(on_param_changed),
- &be_const_str_solidified,
- ( &(const binstruction[20]) { /* code */
- 0x600C0003, // 0000 GETGBL R3 G3
- 0x5C100000, // 0001 MOVE R4 R0
- 0x7C0C0200, // 0002 CALL R3 1
- 0x8C0C0711, // 0003 GETMET R3 R3 K17
- 0x5C140200, // 0004 MOVE R5 R1
- 0x5C180400, // 0005 MOVE R6 R2
- 0x7C0C0600, // 0006 CALL R3 3
- 0x1C0C0303, // 0007 EQ R3 R1 K3
- 0x780E0009, // 0008 JMPF R3 #0013
- 0x880C010E, // 0009 GETMBR R3 R0 K14
- 0x880C070F, // 000A GETMBR R3 R3 K15
- 0x24100506, // 000B GT R4 R2 K6
- 0x78120001, // 000C JMPF R4 #000F
- 0x90020106, // 000D SETMBR R0 K0 K6
- 0x70020003, // 000E JMP #0013
- 0x04100707, // 000F SUB R4 R3 K7
- 0x541600FF, // 0010 LDINT R5 256
- 0x08100805, // 0011 MUL R4 R4 R5
- 0x90020004, // 0012 SETMBR R0 K0 R4
- 0x80000000, // 0013 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: CometAnimation
-********************************************************************/
-extern const bclass be_class_Animation;
-be_local_class(CometAnimation,
- 1,
- &be_class_Animation,
- be_nested_map(6,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(on_param_changed, -1), be_const_closure(class_CometAnimation_on_param_changed_closure) },
- { be_const_key_weak(render, 0), be_const_closure(class_CometAnimation_render_closure) },
- { be_const_key_weak(PARAMS, 5), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(5,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(fade_factor, -1), be_const_bytes_instance(07000001FF0001B300) },
- { be_const_key_weak(wrap_around, -1), be_const_bytes_instance(07000000010001) },
- { be_const_key_weak(direction, -1), be_const_bytes_instance(1400010200FF0001) },
- { be_const_key_weak(speed, 0), be_const_bytes_instance(07000101006401000A) },
- { be_const_key_weak(tail_length, -1), be_const_bytes_instance(07000100320005) },
- })) ) } )) },
- { be_const_key_weak(head_position, 2), be_const_var(0) },
- { be_const_key_weak(update, -1), be_const_closure(class_CometAnimation_update_closure) },
- { be_const_key_weak(init, -1), be_const_closure(class_CometAnimation_init_closure) },
- })),
- be_str_weak(CometAnimation)
-);
-// compact class 'oscillator_value' ktab size: 22, total: 24 (saved 16 bytes)
-static const bvalue be_ktab_class_oscillator_value[22] = {
- /* K0 */ be_nested_str_weak(init),
- /* K1 */ be_nested_str_weak(value),
- /* K2 */ be_const_int(0),
- /* K3 */ be_nested_str_weak(start),
- /* K4 */ be_nested_str_weak(duration),
- /* K5 */ be_nested_str_weak(min_value),
- /* K6 */ be_nested_str_weak(max_value),
- /* K7 */ be_nested_str_weak(form),
- /* K8 */ be_nested_str_weak(phase),
- /* K9 */ be_nested_str_weak(duty_cycle),
- /* K10 */ be_nested_str_weak(tasmota),
- /* K11 */ be_nested_str_weak(scale_uint),
- /* K12 */ be_nested_str_weak(scale_int),
- /* K13 */ be_nested_str_weak(_fix_time_ms),
- /* K14 */ be_nested_str_weak(start_time),
- /* K15 */ be_const_int(3),
- /* K16 */ be_const_int(2),
- /* K17 */ be_const_int(1),
- /* K18 */ be_nested_str_weak(sine_int),
- /* K19 */ be_const_int(196602),
- /* K20 */ be_const_int(-1044480),
- /* K21 */ be_const_int(1044480),
-};
-
-
-extern const bclass be_class_oscillator_value;
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(class_oscillator_value_init, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_oscillator_value, /* shared constants */
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0x60080003, // 0000 GETGBL R2 G3
- 0x5C0C0000, // 0001 MOVE R3 R0
- 0x7C080200, // 0002 CALL R2 1
- 0x8C080500, // 0003 GETMET R2 R2 K0
- 0x5C100200, // 0004 MOVE R4 R1
- 0x7C080400, // 0005 CALL R2 2
- 0x90020302, // 0006 SETMBR R0 K1 K2
- 0x80000000, // 0007 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: start
-********************************************************************/
-be_local_closure(class_oscillator_value_start, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_oscillator_value, /* shared constants */
- be_str_weak(start),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x60080003, // 0000 GETGBL R2 G3
- 0x5C0C0000, // 0001 MOVE R3 R0
- 0x7C080200, // 0002 CALL R2 1
- 0x8C080503, // 0003 GETMET R2 R2 K3
- 0x5C100200, // 0004 MOVE R4 R1
- 0x7C080400, // 0005 CALL R2 2
- 0x80040000, // 0006 RET 1 R0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: produce_value
-********************************************************************/
-be_local_closure(class_oscillator_value_produce_value, /* name */
- be_nested_proto(
- 24, /* nstack */
- 3, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_oscillator_value, /* shared constants */
- be_str_weak(produce_value),
- &be_const_str_solidified,
- ( &(const binstruction[349]) { /* code */
- 0x880C0104, // 0000 GETMBR R3 R0 K4
- 0x88100105, // 0001 GETMBR R4 R0 K5
- 0x88140106, // 0002 GETMBR R5 R0 K6
- 0x88180107, // 0003 GETMBR R6 R0 K7
- 0x881C0108, // 0004 GETMBR R7 R0 K8
- 0x88200109, // 0005 GETMBR R8 R0 K9
- 0xB8261400, // 0006 GETNGBL R9 K10
- 0x8824130B, // 0007 GETMBR R9 R9 K11
- 0xB82A1400, // 0008 GETNGBL R10 K10
- 0x8828150C, // 0009 GETMBR R10 R10 K12
- 0x8C2C010D, // 000A GETMET R11 R0 K13
- 0x5C340400, // 000B MOVE R13 R2
- 0x7C2C0400, // 000C CALL R11 2
- 0x5C081600, // 000D MOVE R2 R11
- 0x4C2C0000, // 000E LDNIL R11
- 0x1C2C060B, // 000F EQ R11 R3 R11
- 0x742E0001, // 0010 JMPT R11 #0013
- 0x182C0702, // 0011 LE R11 R3 K2
- 0x782E0000, // 0012 JMPF R11 #0014
- 0x80040800, // 0013 RET 1 R4
- 0x882C010E, // 0014 GETMBR R11 R0 K14
- 0x042C040B, // 0015 SUB R11 R2 R11
- 0x14301702, // 0016 LT R12 R11 K2
- 0x78320000, // 0017 JMPF R12 #0019
- 0x582C0002, // 0018 LDCONST R11 K2
- 0x28301603, // 0019 GE R12 R11 R3
- 0x78320005, // 001A JMPF R12 #0021
- 0x0C341603, // 001B DIV R13 R11 R3
- 0x08341A03, // 001C MUL R13 R13 R3
- 0x8830010E, // 001D GETMBR R12 R0 K14
- 0x0030180D, // 001E ADD R12 R12 R13
- 0x90021C0C, // 001F SETMBR R0 K14 R12
- 0x102C1603, // 0020 MOD R11 R11 R3
- 0x24300F02, // 0021 GT R12 R7 K2
- 0x7832000A, // 0022 JMPF R12 #002E
- 0x5C301200, // 0023 MOVE R12 R9
- 0x5C340E00, // 0024 MOVE R13 R7
- 0x58380002, // 0025 LDCONST R14 K2
- 0x543E00FE, // 0026 LDINT R15 255
- 0x58400002, // 0027 LDCONST R16 K2
- 0x5C440600, // 0028 MOVE R17 R3
- 0x7C300A00, // 0029 CALL R12 5
- 0x002C160C, // 002A ADD R11 R11 R12
- 0x28301603, // 002B GE R12 R11 R3
- 0x78320000, // 002C JMPF R12 #002E
- 0x042C1603, // 002D SUB R11 R11 R3
- 0x4C300000, // 002E LDNIL R12
- 0x5C341200, // 002F MOVE R13 R9
- 0x5C381000, // 0030 MOVE R14 R8
- 0x583C0002, // 0031 LDCONST R15 K2
- 0x544200FE, // 0032 LDINT R16 255
- 0x58440002, // 0033 LDCONST R17 K2
- 0x5C480600, // 0034 MOVE R18 R3
- 0x7C340A00, // 0035 CALL R13 5
- 0x1C380D0F, // 0036 EQ R14 R6 K15
- 0x783A0008, // 0037 JMPF R14 #0041
- 0x1438160D, // 0038 LT R14 R11 R13
- 0x783A0001, // 0039 JMPF R14 #003C
- 0x5C380800, // 003A MOVE R14 R4
- 0x70020000, // 003B JMP #003D
- 0x5C380A00, // 003C MOVE R14 R5
- 0x9002020E, // 003D SETMBR R0 K1 R14
- 0x88380101, // 003E GETMBR R14 R0 K1
- 0x80041C00, // 003F RET 1 R14
- 0x70020111, // 0040 JMP #0153
- 0x1C380D10, // 0041 EQ R14 R6 K16
- 0x783A0013, // 0042 JMPF R14 #0057
- 0x1438160D, // 0043 LT R14 R11 R13
- 0x783A0008, // 0044 JMPF R14 #004E
- 0x5C381200, // 0045 MOVE R14 R9
- 0x5C3C1600, // 0046 MOVE R15 R11
- 0x58400002, // 0047 LDCONST R16 K2
- 0x04441B11, // 0048 SUB R17 R13 K17
- 0x58480002, // 0049 LDCONST R18 K2
- 0x544E00FE, // 004A LDINT R19 255
- 0x7C380A00, // 004B CALL R14 5
- 0x5C301C00, // 004C MOVE R12 R14
- 0x70020007, // 004D JMP #0056
- 0x5C381200, // 004E MOVE R14 R9
- 0x5C3C1600, // 004F MOVE R15 R11
- 0x5C401A00, // 0050 MOVE R16 R13
- 0x04440711, // 0051 SUB R17 R3 K17
- 0x544A00FE, // 0052 LDINT R18 255
- 0x584C0002, // 0053 LDCONST R19 K2
- 0x7C380A00, // 0054 CALL R14 5
- 0x5C301C00, // 0055 MOVE R12 R14
- 0x700200FB, // 0056 JMP #0153
- 0x543A0003, // 0057 LDINT R14 4
- 0x1C380C0E, // 0058 EQ R14 R6 R14
- 0x743A0002, // 0059 JMPT R14 #005D
- 0x543A0004, // 005A LDINT R14 5
- 0x1C380C0E, // 005B EQ R14 R6 R14
- 0x783A0017, // 005C JMPF R14 #0075
- 0x5C381200, // 005D MOVE R14 R9
- 0x5C3C1600, // 005E MOVE R15 R11
- 0x58400002, // 005F LDCONST R16 K2
- 0x04440711, // 0060 SUB R17 R3 K17
- 0x58480002, // 0061 LDCONST R18 K2
- 0x544E7FFE, // 0062 LDINT R19 32767
- 0x7C380A00, // 0063 CALL R14 5
- 0x543E0003, // 0064 LDINT R15 4
- 0x1C3C0C0F, // 0065 EQ R15 R6 R15
- 0x783E0001, // 0066 JMPF R15 #0069
- 0x543E1FFF, // 0067 LDINT R15 8192
- 0x04381C0F, // 0068 SUB R14 R14 R15
- 0x5C3C1400, // 0069 MOVE R15 R10
- 0xB8421400, // 006A GETNGBL R16 K10
- 0x8C402112, // 006B GETMET R16 R16 K18
- 0x5C481C00, // 006C MOVE R18 R14
- 0x7C400400, // 006D CALL R16 2
- 0x5445EFFF, // 006E LDINT R17 -4096
- 0x544A0FFF, // 006F LDINT R18 4096
- 0x584C0002, // 0070 LDCONST R19 K2
- 0x545200FE, // 0071 LDINT R20 255
- 0x7C3C0A00, // 0072 CALL R15 5
- 0x5C301E00, // 0073 MOVE R12 R15
- 0x700200DD, // 0074 JMP #0153
- 0x543A0005, // 0075 LDINT R14 6
- 0x1C380C0E, // 0076 EQ R14 R6 R14
- 0x743A0002, // 0077 JMPT R14 #007B
- 0x543A0006, // 0078 LDINT R14 7
- 0x1C380C0E, // 0079 EQ R14 R6 R14
- 0x783A001F, // 007A JMPF R14 #009B
- 0x5C381200, // 007B MOVE R14 R9
- 0x5C3C1600, // 007C MOVE R15 R11
- 0x58400002, // 007D LDCONST R16 K2
- 0x04440711, // 007E SUB R17 R3 K17
- 0x58480002, // 007F LDCONST R18 K2
- 0x544E00FE, // 0080 LDINT R19 255
- 0x7C380A00, // 0081 CALL R14 5
- 0x543E0005, // 0082 LDINT R15 6
- 0x1C3C0C0F, // 0083 EQ R15 R6 R15
- 0x783E0008, // 0084 JMPF R15 #008E
- 0x5C3C1400, // 0085 MOVE R15 R10
- 0x08401C0E, // 0086 MUL R16 R14 R14
- 0x58440002, // 0087 LDCONST R17 K2
- 0x544AFE00, // 0088 LDINT R18 65025
- 0x584C0002, // 0089 LDCONST R19 K2
- 0x545200FE, // 008A LDINT R20 255
- 0x7C3C0A00, // 008B CALL R15 5
- 0x5C301E00, // 008C MOVE R12 R15
- 0x7002000B, // 008D JMP #009A
- 0x543E00FE, // 008E LDINT R15 255
- 0x043C1E0E, // 008F SUB R15 R15 R14
- 0x544200FE, // 0090 LDINT R16 255
- 0x5C441400, // 0091 MOVE R17 R10
- 0x08481E0F, // 0092 MUL R18 R15 R15
- 0x584C0002, // 0093 LDCONST R19 K2
- 0x5452FE00, // 0094 LDINT R20 65025
- 0x58540002, // 0095 LDCONST R21 K2
- 0x545A00FE, // 0096 LDINT R22 255
- 0x7C440A00, // 0097 CALL R17 5
- 0x04402011, // 0098 SUB R16 R16 R17
- 0x5C302000, // 0099 MOVE R12 R16
- 0x700200B7, // 009A JMP #0153
- 0x543A0007, // 009B LDINT R14 8
- 0x1C380C0E, // 009C EQ R14 R6 R14
- 0x783A0048, // 009D JMPF R14 #00E7
- 0x5C381200, // 009E MOVE R14 R9
- 0x5C3C1600, // 009F MOVE R15 R11
- 0x58400002, // 00A0 LDCONST R16 K2
- 0x04440711, // 00A1 SUB R17 R3 K17
- 0x58480002, // 00A2 LDCONST R18 K2
- 0x544E00FE, // 00A3 LDINT R19 255
- 0x7C380A00, // 00A4 CALL R14 5
- 0x1C3C1D02, // 00A5 EQ R15 R14 K2
- 0x783E0002, // 00A6 JMPF R15 #00AA
- 0x90020204, // 00A7 SETMBR R0 K1 R4
- 0x883C0101, // 00A8 GETMBR R15 R0 K1
- 0x80041E00, // 00A9 RET 1 R15
- 0x543E00FE, // 00AA LDINT R15 255
- 0x1C3C1C0F, // 00AB EQ R15 R14 R15
- 0x783E0002, // 00AC JMPF R15 #00B0
- 0x90020205, // 00AD SETMBR R0 K1 R5
- 0x883C0101, // 00AE GETMBR R15 R0 K1
- 0x80041E00, // 00AF RET 1 R15
- 0x5C3C1200, // 00B0 MOVE R15 R9
- 0x544200FE, // 00B1 LDINT R16 255
- 0x0440200E, // 00B2 SUB R16 R16 R14
- 0x58440002, // 00B3 LDCONST R17 K2
- 0x544A00FE, // 00B4 LDINT R18 255
- 0x544E00FE, // 00B5 LDINT R19 255
- 0x5452001F, // 00B6 LDINT R20 32
- 0x7C3C0A00, // 00B7 CALL R15 5
- 0xB8421400, // 00B8 GETNGBL R16 K10
- 0x8C402112, // 00B9 GETMET R16 R16 K18
- 0x5C481200, // 00BA MOVE R18 R9
- 0x5C4C1C00, // 00BB MOVE R19 R14
- 0x58500002, // 00BC LDCONST R20 K2
- 0x545600FE, // 00BD LDINT R21 255
- 0x58580002, // 00BE LDCONST R22 K2
- 0x585C0013, // 00BF LDCONST R23 K19
- 0x7C480A00, // 00C0 CALL R18 5
- 0x544E7FFE, // 00C1 LDINT R19 32767
- 0x10482413, // 00C2 MOD R18 R18 R19
- 0x7C400400, // 00C3 CALL R16 2
- 0x5C441400, // 00C4 MOVE R17 R10
- 0x0848200F, // 00C5 MUL R18 R16 R15
- 0x584C0014, // 00C6 LDCONST R19 K20
- 0x58500015, // 00C7 LDCONST R20 K21
- 0x5455FF00, // 00C8 LDINT R21 -255
- 0x545A00FE, // 00C9 LDINT R22 255
- 0x7C440A00, // 00CA CALL R17 5
- 0x5C481400, // 00CB MOVE R18 R10
- 0x5C4C1C00, // 00CC MOVE R19 R14
- 0x58500002, // 00CD LDCONST R20 K2
- 0x545600FE, // 00CE LDINT R21 255
- 0x58580002, // 00CF LDCONST R22 K2
- 0x045C0A04, // 00D0 SUB R23 R5 R4
- 0x7C480A00, // 00D1 CALL R18 5
- 0x00480812, // 00D2 ADD R18 R4 R18
- 0x00482411, // 00D3 ADD R18 R18 R17
- 0x90020212, // 00D4 SETMBR R0 K1 R18
- 0x04480A04, // 00D5 SUB R18 R5 R4
- 0x544E0003, // 00D6 LDINT R19 4
- 0x0C482413, // 00D7 DIV R18 R18 R19
- 0x884C0101, // 00D8 GETMBR R19 R0 K1
- 0x00500A12, // 00D9 ADD R20 R5 R18
- 0x244C2614, // 00DA GT R19 R19 R20
- 0x784E0001, // 00DB JMPF R19 #00DE
- 0x004C0A12, // 00DC ADD R19 R5 R18
- 0x90020213, // 00DD SETMBR R0 K1 R19
- 0x884C0101, // 00DE GETMBR R19 R0 K1
- 0x04500812, // 00DF SUB R20 R4 R18
- 0x144C2614, // 00E0 LT R19 R19 R20
- 0x784E0001, // 00E1 JMPF R19 #00E4
- 0x044C0812, // 00E2 SUB R19 R4 R18
- 0x90020213, // 00E3 SETMBR R0 K1 R19
- 0x884C0101, // 00E4 GETMBR R19 R0 K1
- 0x80042600, // 00E5 RET 1 R19
- 0x7002006B, // 00E6 JMP #0153
- 0x543A0008, // 00E7 LDINT R14 9
- 0x1C380C0E, // 00E8 EQ R14 R6 R14
- 0x783A0060, // 00E9 JMPF R14 #014B
- 0x5C381200, // 00EA MOVE R14 R9
- 0x5C3C1600, // 00EB MOVE R15 R11
- 0x58400002, // 00EC LDCONST R16 K2
- 0x04440711, // 00ED SUB R17 R3 K17
- 0x58480002, // 00EE LDCONST R18 K2
- 0x544E00FE, // 00EF LDINT R19 255
- 0x7C380A00, // 00F0 CALL R14 5
- 0x543E007F, // 00F1 LDINT R15 128
- 0x143C1C0F, // 00F2 LT R15 R14 R15
- 0x783E0015, // 00F3 JMPF R15 #010A
- 0x5C3C1200, // 00F4 MOVE R15 R9
- 0x5C401C00, // 00F5 MOVE R16 R14
- 0x58440002, // 00F6 LDCONST R17 K2
- 0x544A007E, // 00F7 LDINT R18 127
- 0x584C0002, // 00F8 LDCONST R19 K2
- 0x545200FE, // 00F9 LDINT R20 255
- 0x7C3C0A00, // 00FA CALL R15 5
- 0x544200FE, // 00FB LDINT R16 255
- 0x5C441400, // 00FC MOVE R17 R10
- 0x544A00FE, // 00FD LDINT R18 255
- 0x0448240F, // 00FE SUB R18 R18 R15
- 0x544E00FE, // 00FF LDINT R19 255
- 0x044C260F, // 0100 SUB R19 R19 R15
- 0x08482413, // 0101 MUL R18 R18 R19
- 0x584C0002, // 0102 LDCONST R19 K2
- 0x5452FE00, // 0103 LDINT R20 65025
- 0x58540002, // 0104 LDCONST R21 K2
- 0x545A00FE, // 0105 LDINT R22 255
- 0x7C440A00, // 0106 CALL R17 5
- 0x04402011, // 0107 SUB R16 R16 R17
- 0x5C302000, // 0108 MOVE R12 R16
- 0x7002003F, // 0109 JMP #014A
- 0x543E00BF, // 010A LDINT R15 192
- 0x143C1C0F, // 010B LT R15 R14 R15
- 0x783E001C, // 010C JMPF R15 #012A
- 0x5C3C1200, // 010D MOVE R15 R9
- 0x5442007F, // 010E LDINT R16 128
- 0x04401C10, // 010F SUB R16 R14 R16
- 0x58440002, // 0110 LDCONST R17 K2
- 0x544A003E, // 0111 LDINT R18 63
- 0x584C0002, // 0112 LDCONST R19 K2
- 0x545200FE, // 0113 LDINT R20 255
- 0x7C3C0A00, // 0114 CALL R15 5
- 0x5C401400, // 0115 MOVE R16 R10
- 0x544600FE, // 0116 LDINT R17 255
- 0x5C481400, // 0117 MOVE R18 R10
- 0x544E00FE, // 0118 LDINT R19 255
- 0x044C260F, // 0119 SUB R19 R19 R15
- 0x545200FE, // 011A LDINT R20 255
- 0x0450280F, // 011B SUB R20 R20 R15
- 0x084C2614, // 011C MUL R19 R19 R20
- 0x58500002, // 011D LDCONST R20 K2
- 0x5456FE00, // 011E LDINT R21 65025
- 0x58580002, // 011F LDCONST R22 K2
- 0x545E00FE, // 0120 LDINT R23 255
- 0x7C480A00, // 0121 CALL R18 5
- 0x04442212, // 0122 SUB R17 R17 R18
- 0x58480002, // 0123 LDCONST R18 K2
- 0x544E00FE, // 0124 LDINT R19 255
- 0x58500002, // 0125 LDCONST R20 K2
- 0x5456007F, // 0126 LDINT R21 128
- 0x7C400A00, // 0127 CALL R16 5
- 0x5C302000, // 0128 MOVE R12 R16
- 0x7002001F, // 0129 JMP #014A
- 0x5C3C1200, // 012A MOVE R15 R9
- 0x544200BF, // 012B LDINT R16 192
- 0x04401C10, // 012C SUB R16 R14 R16
- 0x58440002, // 012D LDCONST R17 K2
- 0x544A003E, // 012E LDINT R18 63
- 0x584C0002, // 012F LDCONST R19 K2
- 0x545200FE, // 0130 LDINT R20 255
- 0x7C3C0A00, // 0131 CALL R15 5
- 0x544200FE, // 0132 LDINT R16 255
- 0x5C441400, // 0133 MOVE R17 R10
- 0x544A00FE, // 0134 LDINT R18 255
- 0x0448240F, // 0135 SUB R18 R18 R15
- 0x544E00FE, // 0136 LDINT R19 255
- 0x044C260F, // 0137 SUB R19 R19 R15
- 0x08482413, // 0138 MUL R18 R18 R19
- 0x584C0002, // 0139 LDCONST R19 K2
- 0x5452FE00, // 013A LDINT R20 65025
- 0x58540002, // 013B LDCONST R21 K2
- 0x545A00FE, // 013C LDINT R22 255
- 0x7C440A00, // 013D CALL R17 5
- 0x04402011, // 013E SUB R16 R16 R17
- 0x544600FE, // 013F LDINT R17 255
- 0x5C481400, // 0140 MOVE R18 R10
- 0x544E00FE, // 0141 LDINT R19 255
- 0x044C2610, // 0142 SUB R19 R19 R16
- 0x58500002, // 0143 LDCONST R20 K2
- 0x545600FE, // 0144 LDINT R21 255
- 0x58580002, // 0145 LDCONST R22 K2
- 0x545E003F, // 0146 LDINT R23 64
- 0x7C480A00, // 0147 CALL R18 5
- 0x04442212, // 0148 SUB R17 R17 R18
- 0x5C302200, // 0149 MOVE R12 R17
- 0x70020007, // 014A JMP #0153
- 0x5C381200, // 014B MOVE R14 R9
- 0x5C3C1600, // 014C MOVE R15 R11
- 0x58400002, // 014D LDCONST R16 K2
- 0x04440711, // 014E SUB R17 R3 K17
- 0x58480002, // 014F LDCONST R18 K2
- 0x544E00FE, // 0150 LDINT R19 255
- 0x7C380A00, // 0151 CALL R14 5
- 0x5C301C00, // 0152 MOVE R12 R14
- 0x5C381400, // 0153 MOVE R14 R10
- 0x5C3C1800, // 0154 MOVE R15 R12
- 0x58400002, // 0155 LDCONST R16 K2
- 0x544600FE, // 0156 LDINT R17 255
- 0x5C480800, // 0157 MOVE R18 R4
- 0x5C4C0A00, // 0158 MOVE R19 R5
- 0x7C380A00, // 0159 CALL R14 5
- 0x9002020E, // 015A SETMBR R0 K1 R14
- 0x88380101, // 015B GETMBR R14 R0 K1
- 0x80041C00, // 015C RET 1 R14
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: oscillator_value
-********************************************************************/
-extern const bclass be_class_value_provider;
-be_local_class(oscillator_value,
- 1,
- &be_class_value_provider,
- be_nested_map(5,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(init, -1), be_const_closure(class_oscillator_value_init_closure) },
- { be_const_key_weak(start, -1), be_const_closure(class_oscillator_value_start_closure) },
- { be_const_key_weak(produce_value, 4), be_const_closure(class_oscillator_value_produce_value_closure) },
- { be_const_key_weak(PARAMS, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(6,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(phase, -1), be_const_bytes_instance(07000001FF000000) },
- { be_const_key_weak(max_value, 4), be_const_bytes_instance(0401FF00) },
- { be_const_key_weak(duty_cycle, -1), be_const_bytes_instance(07000001FF00007F) },
- { be_const_key_weak(min_value, -1), be_const_bytes_instance(040000) },
- { be_const_key_weak(duration, -1), be_const_bytes_instance(05000101E803) },
- { be_const_key_weak(form, 1), be_const_bytes_instance(14000109000100020003000400050006000700080009) },
- })) ) } )) },
- { be_const_key_weak(value, -1), be_const_var(0) },
- })),
- be_str_weak(oscillator_value)
-);
-
-/********************************************************************
-** Solidified function: animation_resolve
-********************************************************************/
-be_local_closure(animation_resolve, /* name */
- be_nested_proto(
- 7, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str_weak(animation),
- /* K1 */ be_nested_str_weak(is_value_provider),
- /* K2 */ be_nested_str_weak(produce_value),
- /* K3 */ be_nested_str_weak(parameterized_object),
- /* K4 */ be_nested_str_weak(value_error),
- /* K5 */ be_nested_str_weak(Parameter_X20name_X20cannot_X20be_X20nil_X20when_X20resolving_X20object_X20parameter),
- /* K6 */ be_nested_str_weak(get_param_value),
- }),
- be_str_weak(animation_resolve),
- &be_const_str_solidified,
- ( &(const binstruction[31]) { /* code */
- 0xB80E0000, // 0000 GETNGBL R3 K0
- 0x8C0C0701, // 0001 GETMET R3 R3 K1
- 0x5C140000, // 0002 MOVE R5 R0
- 0x7C0C0400, // 0003 CALL R3 2
- 0x780E0005, // 0004 JMPF R3 #000B
- 0x8C0C0102, // 0005 GETMET R3 R0 K2
- 0x5C140200, // 0006 MOVE R5 R1
- 0x5C180400, // 0007 MOVE R6 R2
- 0x7C0C0600, // 0008 CALL R3 3
- 0x80040600, // 0009 RET 1 R3
- 0x70020012, // 000A JMP #001E
- 0x4C0C0000, // 000B LDNIL R3
- 0x200C0003, // 000C NE R3 R0 R3
- 0x780E000E, // 000D JMPF R3 #001D
- 0x600C000F, // 000E GETGBL R3 G15
- 0x5C100000, // 000F MOVE R4 R0
- 0xB8160000, // 0010 GETNGBL R5 K0
- 0x88140B03, // 0011 GETMBR R5 R5 K3
- 0x7C0C0400, // 0012 CALL R3 2
- 0x780E0008, // 0013 JMPF R3 #001D
- 0x4C0C0000, // 0014 LDNIL R3
- 0x1C0C0203, // 0015 EQ R3 R1 R3
- 0x780E0000, // 0016 JMPF R3 #0018
- 0xB0060905, // 0017 RAISE 1 K4 K5
- 0x8C0C0106, // 0018 GETMET R3 R0 K6
- 0x5C140200, // 0019 MOVE R5 R1
- 0x7C0C0400, // 001A CALL R3 2
- 0x80040600, // 001B RET 1 R3
- 0x70020000, // 001C JMP #001E
- 0x80040000, // 001D RET 1 R0
- 0x80000000, // 001E RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: wave_single_sine
-********************************************************************/
-be_local_closure(wave_single_sine, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str_weak(animation),
- /* K1 */ be_nested_str_weak(wave_animation),
- /* K2 */ be_nested_str_weak(color),
- /* K3 */ be_nested_str_weak(wave_type),
- /* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(frequency),
- /* K6 */ be_nested_str_weak(wave_speed),
- }),
- be_str_weak(wave_single_sine),
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0xB8060000, // 0000 GETNGBL R1 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x5C0C0000, // 0002 MOVE R3 R0
- 0x7C040400, // 0003 CALL R1 2
- 0x5408FFFF, // 0004 LDINT R2 -65536
- 0x90060402, // 0005 SETMBR R1 K2 R2
- 0x90060704, // 0006 SETMBR R1 K3 K4
- 0x540A001F, // 0007 LDINT R2 32
- 0x90060A02, // 0008 SETMBR R1 K5 R2
- 0x540A0031, // 0009 LDINT R2 50
- 0x90060C02, // 000A SETMBR R1 K6 R2
- 0x80040200, // 000B RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-// compact class 'closure_value' ktab size: 4, total: 5 (saved 8 bytes)
-static const bvalue be_ktab_class_closure_value[4] = {
- /* K0 */ be_nested_str_weak(_closure),
- /* K1 */ be_nested_str_weak(engine),
- /* K2 */ be_nested_str_weak(on_param_changed),
- /* K3 */ be_nested_str_weak(closure),
-};
-
-
-extern const bclass be_class_closure_value;
-
-/********************************************************************
-** Solidified function: produce_value
-********************************************************************/
-be_local_closure(class_closure_value_produce_value, /* name */
- be_nested_proto(
- 8, /* nstack */
- 3, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_closure_value, /* shared constants */
- be_str_weak(produce_value),
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0x880C0100, // 0000 GETMBR R3 R0 K0
- 0x4C100000, // 0001 LDNIL R4
- 0x1C100604, // 0002 EQ R4 R3 R4
- 0x78120001, // 0003 JMPF R4 #0006
- 0x4C100000, // 0004 LDNIL R4
- 0x80040800, // 0005 RET 1 R4
- 0x5C100600, // 0006 MOVE R4 R3
- 0x88140101, // 0007 GETMBR R5 R0 K1
- 0x5C180200, // 0008 MOVE R6 R1
- 0x5C1C0400, // 0009 MOVE R7 R2
- 0x7C100600, // 000A CALL R4 3
- 0x80040800, // 000B RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: on_param_changed
-********************************************************************/
-be_local_closure(class_closure_value_on_param_changed, /* name */
- be_nested_proto(
- 7, /* nstack */
- 3, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_closure_value, /* shared constants */
- be_str_weak(on_param_changed),
- &be_const_str_solidified,
- ( &(const binstruction[11]) { /* code */
- 0x600C0003, // 0000 GETGBL R3 G3
- 0x5C100000, // 0001 MOVE R4 R0
- 0x7C0C0200, // 0002 CALL R3 1
- 0x8C0C0702, // 0003 GETMET R3 R3 K2
- 0x5C140200, // 0004 MOVE R5 R1
- 0x5C180400, // 0005 MOVE R6 R2
- 0x7C0C0600, // 0006 CALL R3 3
- 0x1C0C0303, // 0007 EQ R3 R1 K3
- 0x780E0000, // 0008 JMPF R3 #000A
- 0x90020002, // 0009 SETMBR R0 K0 R2
- 0x80000000, // 000A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: closure_value
-********************************************************************/
-extern const bclass be_class_value_provider;
-be_local_class(closure_value,
- 1,
- &be_class_value_provider,
- be_nested_map(4,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(_closure, -1), be_const_var(0) },
- { be_const_key_weak(produce_value, 2), be_const_closure(class_closure_value_produce_value_closure) },
- { be_const_key_weak(on_param_changed, -1), be_const_closure(class_closure_value_on_param_changed_closure) },
- { be_const_key_weak(PARAMS, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(closure, -1), be_const_bytes_instance(0C0606) },
- })) ) } )) },
- })),
- be_str_weak(closure_value)
-);
-
/********************************************************************
** Solidified function: is_value_provider
********************************************************************/
@@ -8300,6 +9170,2277 @@ be_local_closure(linear, /* name */
);
/*******************************************************************/
+
+/********************************************************************
+** Solidified function: sine_osc
+********************************************************************/
+be_local_closure(sine_osc, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 0, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(animation),
+ /* K1 */ be_nested_str_weak(oscillator_value),
+ /* K2 */ be_nested_str_weak(form),
+ }),
+ be_str_weak(sine_osc),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0xB8060000, // 0000 GETNGBL R1 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x5C0C0000, // 0002 MOVE R3 R0
+ 0x7C040400, // 0003 CALL R1 2
+ 0x540A0004, // 0004 LDINT R2 5
+ 0x90060402, // 0005 SETMBR R1 K2 R2
+ 0x80040200, // 0006 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: animation_resolve
+********************************************************************/
+be_local_closure(animation_resolve, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 3, /* argc */
+ 0, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[ 7]) { /* constants */
+ /* K0 */ be_nested_str_weak(animation),
+ /* K1 */ be_nested_str_weak(is_value_provider),
+ /* K2 */ be_nested_str_weak(produce_value),
+ /* K3 */ be_nested_str_weak(parameterized_object),
+ /* K4 */ be_nested_str_weak(value_error),
+ /* K5 */ be_nested_str_weak(Parameter_X20name_X20cannot_X20be_X20nil_X20when_X20resolving_X20object_X20parameter),
+ /* K6 */ be_nested_str_weak(get_param_value),
+ }),
+ be_str_weak(animation_resolve),
+ &be_const_str_solidified,
+ ( &(const binstruction[31]) { /* code */
+ 0xB80E0000, // 0000 GETNGBL R3 K0
+ 0x8C0C0701, // 0001 GETMET R3 R3 K1
+ 0x5C140000, // 0002 MOVE R5 R0
+ 0x7C0C0400, // 0003 CALL R3 2
+ 0x780E0005, // 0004 JMPF R3 #000B
+ 0x8C0C0102, // 0005 GETMET R3 R0 K2
+ 0x5C140200, // 0006 MOVE R5 R1
+ 0x5C180400, // 0007 MOVE R6 R2
+ 0x7C0C0600, // 0008 CALL R3 3
+ 0x80040600, // 0009 RET 1 R3
+ 0x70020012, // 000A JMP #001E
+ 0x4C0C0000, // 000B LDNIL R3
+ 0x200C0003, // 000C NE R3 R0 R3
+ 0x780E000E, // 000D JMPF R3 #001D
+ 0x600C000F, // 000E GETGBL R3 G15
+ 0x5C100000, // 000F MOVE R4 R0
+ 0xB8160000, // 0010 GETNGBL R5 K0
+ 0x88140B03, // 0011 GETMBR R5 R5 K3
+ 0x7C0C0400, // 0012 CALL R3 2
+ 0x780E0008, // 0013 JMPF R3 #001D
+ 0x4C0C0000, // 0014 LDNIL R3
+ 0x1C0C0203, // 0015 EQ R3 R1 R3
+ 0x780E0000, // 0016 JMPF R3 #0018
+ 0xB0060905, // 0017 RAISE 1 K4 K5
+ 0x8C0C0106, // 0018 GETMET R3 R0 K6
+ 0x5C140200, // 0019 MOVE R5 R1
+ 0x7C0C0400, // 001A CALL R3 2
+ 0x80040600, // 001B RET 1 R3
+ 0x70020000, // 001C JMP #001E
+ 0x80040000, // 001D RET 1 R0
+ 0x80000000, // 001E RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+// compact class 'EventManager' ktab size: 30, total: 61 (saved 248 bytes)
+static const bvalue be_ktab_class_EventManager[30] = {
+ /* K0 */ be_nested_str_weak(event_name),
+ /* K1 */ be_nested_str_weak(_X2A),
+ /* K2 */ be_nested_str_weak(global_handlers),
+ /* K3 */ be_nested_str_weak(find),
+ /* K4 */ be_nested_str_weak(remove),
+ /* K5 */ be_nested_str_weak(handlers),
+ /* K6 */ be_nested_str_weak(set_active),
+ /* K7 */ be_nested_str_weak(stop_iteration),
+ /* K8 */ be_nested_str_weak(push),
+ /* K9 */ be_nested_str_weak(get_info),
+ /* K10 */ be_nested_str_weak(keys),
+ /* K11 */ be_nested_str_weak(event_queue),
+ /* K12 */ be_nested_str_weak(is_processing),
+ /* K13 */ be_nested_str_weak(clear),
+ /* K14 */ be_const_int(1),
+ /* K15 */ be_const_int(0),
+ /* K16 */ be_nested_str_weak(priority),
+ /* K17 */ be_nested_str_weak(animation),
+ /* K18 */ be_nested_str_weak(event_handler),
+ /* K19 */ be_nested_str_weak(_sort_handlers),
+ /* K20 */ be_nested_str_weak(contains),
+ /* K21 */ be_nested_str_weak(name),
+ /* K22 */ be_nested_str_weak(data),
+ /* K23 */ be_nested_str_weak(is_active),
+ /* K24 */ be_nested_str_weak(execute),
+ /* K25 */ be_nested_str_weak(Event_X20processing_X20error_X3A),
+ /* K26 */ be_nested_str_weak(_process_queued_events),
+ /* K27 */ be_nested_str_weak(size),
+ /* K28 */ be_nested_str_weak(pop),
+ /* K29 */ be_nested_str_weak(trigger_event),
+};
+
+
+extern const bclass be_class_EventManager;
+
+/********************************************************************
+** Solidified function: unregister_handler
+********************************************************************/
+be_local_closure(class_EventManager_unregister_handler, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_EventManager, /* shared constants */
+ be_str_weak(unregister_handler),
+ &be_const_str_solidified,
+ ( &(const binstruction[32]) { /* code */
+ 0x88080300, // 0000 GETMBR R2 R1 K0
+ 0x1C080501, // 0001 EQ R2 R2 K1
+ 0x780A000B, // 0002 JMPF R2 #000F
+ 0x88080102, // 0003 GETMBR R2 R0 K2
+ 0x8C080503, // 0004 GETMET R2 R2 K3
+ 0x5C100200, // 0005 MOVE R4 R1
+ 0x7C080400, // 0006 CALL R2 2
+ 0x4C0C0000, // 0007 LDNIL R3
+ 0x200C0403, // 0008 NE R3 R2 R3
+ 0x780E0003, // 0009 JMPF R3 #000E
+ 0x880C0102, // 000A GETMBR R3 R0 K2
+ 0x8C0C0704, // 000B GETMET R3 R3 K4
+ 0x5C140400, // 000C MOVE R5 R2
+ 0x7C0C0400, // 000D CALL R3 2
+ 0x7002000F, // 000E JMP #001F
+ 0x88080105, // 000F GETMBR R2 R0 K5
+ 0x8C080503, // 0010 GETMET R2 R2 K3
+ 0x88100300, // 0011 GETMBR R4 R1 K0
+ 0x7C080400, // 0012 CALL R2 2
+ 0x4C0C0000, // 0013 LDNIL R3
+ 0x200C0403, // 0014 NE R3 R2 R3
+ 0x780E0008, // 0015 JMPF R3 #001F
+ 0x8C0C0503, // 0016 GETMET R3 R2 K3
+ 0x5C140200, // 0017 MOVE R5 R1
+ 0x7C0C0400, // 0018 CALL R3 2
+ 0x4C100000, // 0019 LDNIL R4
+ 0x20100604, // 001A NE R4 R3 R4
+ 0x78120002, // 001B JMPF R4 #001F
+ 0x8C100504, // 001C GETMET R4 R2 K4
+ 0x5C180600, // 001D MOVE R6 R3
+ 0x7C100400, // 001E CALL R4 2
+ 0x80000000, // 001F RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: set_event_active
+********************************************************************/
+be_local_closure(class_EventManager_set_event_active, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 3, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_EventManager, /* shared constants */
+ be_str_weak(set_event_active),
+ &be_const_str_solidified,
+ ( &(const binstruction[21]) { /* code */
+ 0x880C0105, // 0000 GETMBR R3 R0 K5
+ 0x8C0C0703, // 0001 GETMET R3 R3 K3
+ 0x5C140200, // 0002 MOVE R5 R1
+ 0x7C0C0400, // 0003 CALL R3 2
+ 0x4C100000, // 0004 LDNIL R4
+ 0x20100604, // 0005 NE R4 R3 R4
+ 0x7812000C, // 0006 JMPF R4 #0014
+ 0x60100010, // 0007 GETGBL R4 G16
+ 0x5C140600, // 0008 MOVE R5 R3
+ 0x7C100200, // 0009 CALL R4 1
+ 0xA8020005, // 000A EXBLK 0 #0011
+ 0x5C140800, // 000B MOVE R5 R4
+ 0x7C140000, // 000C CALL R5 0
+ 0x8C180B06, // 000D GETMET R6 R5 K6
+ 0x5C200400, // 000E MOVE R8 R2
+ 0x7C180400, // 000F CALL R6 2
+ 0x7001FFF9, // 0010 JMP #000B
+ 0x58100007, // 0011 LDCONST R4 K7
+ 0xAC100200, // 0012 CATCH R4 1 0
+ 0xB0080000, // 0013 RAISE 2 R0 R0
+ 0x80000000, // 0014 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_handlers
+********************************************************************/
+be_local_closure(class_EventManager_get_handlers, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_EventManager, /* shared constants */
+ be_str_weak(get_handlers),
+ &be_const_str_solidified,
+ ( &(const binstruction[38]) { /* code */
+ 0x60080012, // 0000 GETGBL R2 G18
+ 0x7C080000, // 0001 CALL R2 0
+ 0x600C0010, // 0002 GETGBL R3 G16
+ 0x88100102, // 0003 GETMBR R4 R0 K2
+ 0x7C0C0200, // 0004 CALL R3 1
+ 0xA8020006, // 0005 EXBLK 0 #000D
+ 0x5C100600, // 0006 MOVE R4 R3
+ 0x7C100000, // 0007 CALL R4 0
+ 0x8C140508, // 0008 GETMET R5 R2 K8
+ 0x8C1C0909, // 0009 GETMET R7 R4 K9
+ 0x7C1C0200, // 000A CALL R7 1
+ 0x7C140400, // 000B CALL R5 2
+ 0x7001FFF8, // 000C JMP #0006
+ 0x580C0007, // 000D LDCONST R3 K7
+ 0xAC0C0200, // 000E CATCH R3 1 0
+ 0xB0080000, // 000F RAISE 2 R0 R0
+ 0x880C0105, // 0010 GETMBR R3 R0 K5
+ 0x8C0C0703, // 0011 GETMET R3 R3 K3
+ 0x5C140200, // 0012 MOVE R5 R1
+ 0x7C0C0400, // 0013 CALL R3 2
+ 0x4C100000, // 0014 LDNIL R4
+ 0x20100604, // 0015 NE R4 R3 R4
+ 0x7812000D, // 0016 JMPF R4 #0025
+ 0x60100010, // 0017 GETGBL R4 G16
+ 0x5C140600, // 0018 MOVE R5 R3
+ 0x7C100200, // 0019 CALL R4 1
+ 0xA8020006, // 001A EXBLK 0 #0022
+ 0x5C140800, // 001B MOVE R5 R4
+ 0x7C140000, // 001C CALL R5 0
+ 0x8C180508, // 001D GETMET R6 R2 K8
+ 0x8C200B09, // 001E GETMET R8 R5 K9
+ 0x7C200200, // 001F CALL R8 1
+ 0x7C180400, // 0020 CALL R6 2
+ 0x7001FFF8, // 0021 JMP #001B
+ 0x58100007, // 0022 LDCONST R4 K7
+ 0xAC100200, // 0023 CATCH R4 1 0
+ 0xB0080000, // 0024 RAISE 2 R0 R0
+ 0x80040400, // 0025 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_registered_events
+********************************************************************/
+be_local_closure(class_EventManager_get_registered_events, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 1, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_EventManager, /* shared constants */
+ be_str_weak(get_registered_events),
+ &be_const_str_solidified,
+ ( &(const binstruction[18]) { /* code */
+ 0x60040012, // 0000 GETGBL R1 G18
+ 0x7C040000, // 0001 CALL R1 0
+ 0x60080010, // 0002 GETGBL R2 G16
+ 0x880C0105, // 0003 GETMBR R3 R0 K5
+ 0x8C0C070A, // 0004 GETMET R3 R3 K10
+ 0x7C0C0200, // 0005 CALL R3 1
+ 0x7C080200, // 0006 CALL R2 1
+ 0xA8020005, // 0007 EXBLK 0 #000E
+ 0x5C0C0400, // 0008 MOVE R3 R2
+ 0x7C0C0000, // 0009 CALL R3 0
+ 0x8C100308, // 000A GETMET R4 R1 K8
+ 0x5C180600, // 000B MOVE R6 R3
+ 0x7C100400, // 000C CALL R4 2
+ 0x7001FFF9, // 000D JMP #0008
+ 0x58080007, // 000E LDCONST R2 K7
+ 0xAC080200, // 000F CATCH R2 1 0
+ 0xB0080000, // 0010 RAISE 2 R0 R0
+ 0x80040200, // 0011 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+be_local_closure(class_EventManager_init, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_EventManager, /* shared constants */
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[12]) { /* code */
+ 0x60040013, // 0000 GETGBL R1 G19
+ 0x7C040000, // 0001 CALL R1 0
+ 0x90020A01, // 0002 SETMBR R0 K5 R1
+ 0x60040012, // 0003 GETGBL R1 G18
+ 0x7C040000, // 0004 CALL R1 0
+ 0x90020401, // 0005 SETMBR R0 K2 R1
+ 0x60040012, // 0006 GETGBL R1 G18
+ 0x7C040000, // 0007 CALL R1 0
+ 0x90021601, // 0008 SETMBR R0 K11 R1
+ 0x50040000, // 0009 LDBOOL R1 0 0
+ 0x90021801, // 000A SETMBR R0 K12 R1
+ 0x80000000, // 000B RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: clear_all_handlers
+********************************************************************/
+be_local_closure(class_EventManager_clear_all_handlers, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_EventManager, /* shared constants */
+ be_str_weak(clear_all_handlers),
+ &be_const_str_solidified,
+ ( &(const binstruction[10]) { /* code */
+ 0x88040105, // 0000 GETMBR R1 R0 K5
+ 0x8C04030D, // 0001 GETMET R1 R1 K13
+ 0x7C040200, // 0002 CALL R1 1
+ 0x88040102, // 0003 GETMBR R1 R0 K2
+ 0x8C04030D, // 0004 GETMET R1 R1 K13
+ 0x7C040200, // 0005 CALL R1 1
+ 0x8804010B, // 0006 GETMBR R1 R0 K11
+ 0x8C04030D, // 0007 GETMET R1 R1 K13
+ 0x7C040200, // 0008 CALL R1 1
+ 0x80000000, // 0009 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _sort_handlers
+********************************************************************/
+be_local_closure(class_EventManager__sort_handlers, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_EventManager, /* shared constants */
+ be_str_weak(_sort_handlers),
+ &be_const_str_solidified,
+ ( &(const binstruction[31]) { /* code */
+ 0x60080010, // 0000 GETGBL R2 G16
+ 0x600C000C, // 0001 GETGBL R3 G12
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x7C0C0200, // 0003 CALL R3 1
+ 0x040C070E, // 0004 SUB R3 R3 K14
+ 0x400E1C03, // 0005 CONNECT R3 K14 R3
+ 0x7C080200, // 0006 CALL R2 1
+ 0xA8020012, // 0007 EXBLK 0 #001B
+ 0x5C0C0400, // 0008 MOVE R3 R2
+ 0x7C0C0000, // 0009 CALL R3 0
+ 0x94100203, // 000A GETIDX R4 R1 R3
+ 0x5C140600, // 000B MOVE R5 R3
+ 0x24180B0F, // 000C GT R6 R5 K15
+ 0x781A000A, // 000D JMPF R6 #0019
+ 0x04180B0E, // 000E SUB R6 R5 K14
+ 0x94180206, // 000F GETIDX R6 R1 R6
+ 0x88180D10, // 0010 GETMBR R6 R6 K16
+ 0x881C0910, // 0011 GETMBR R7 R4 K16
+ 0x14180C07, // 0012 LT R6 R6 R7
+ 0x781A0004, // 0013 JMPF R6 #0019
+ 0x04180B0E, // 0014 SUB R6 R5 K14
+ 0x94180206, // 0015 GETIDX R6 R1 R6
+ 0x98040A06, // 0016 SETIDX R1 R5 R6
+ 0x04140B0E, // 0017 SUB R5 R5 K14
+ 0x7001FFF2, // 0018 JMP #000C
+ 0x98040A04, // 0019 SETIDX R1 R5 R4
+ 0x7001FFEC, // 001A JMP #0008
+ 0x58080007, // 001B LDCONST R2 K7
+ 0xAC080200, // 001C CATCH R2 1 0
+ 0xB0080000, // 001D RAISE 2 R0 R0
+ 0x80000000, // 001E RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: register_handler
+********************************************************************/
+be_local_closure(class_EventManager_register_handler, /* name */
+ be_nested_proto(
+ 13, /* nstack */
+ 6, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_EventManager, /* shared constants */
+ be_str_weak(register_handler),
+ &be_const_str_solidified,
+ ( &(const binstruction[37]) { /* code */
+ 0xB81A2200, // 0000 GETNGBL R6 K17
+ 0x8C180D12, // 0001 GETMET R6 R6 K18
+ 0x5C200200, // 0002 MOVE R8 R1
+ 0x5C240400, // 0003 MOVE R9 R2
+ 0x5C280600, // 0004 MOVE R10 R3
+ 0x5C2C0800, // 0005 MOVE R11 R4
+ 0x5C300A00, // 0006 MOVE R12 R5
+ 0x7C180C00, // 0007 CALL R6 6
+ 0x1C1C0301, // 0008 EQ R7 R1 K1
+ 0x781E0007, // 0009 JMPF R7 #0012
+ 0x881C0102, // 000A GETMBR R7 R0 K2
+ 0x8C1C0F08, // 000B GETMET R7 R7 K8
+ 0x5C240C00, // 000C MOVE R9 R6
+ 0x7C1C0400, // 000D CALL R7 2
+ 0x8C1C0113, // 000E GETMET R7 R0 K19
+ 0x88240102, // 000F GETMBR R9 R0 K2
+ 0x7C1C0400, // 0010 CALL R7 2
+ 0x70020011, // 0011 JMP #0024
+ 0x881C0105, // 0012 GETMBR R7 R0 K5
+ 0x8C1C0F14, // 0013 GETMET R7 R7 K20
+ 0x5C240200, // 0014 MOVE R9 R1
+ 0x7C1C0400, // 0015 CALL R7 2
+ 0x741E0003, // 0016 JMPT R7 #001B
+ 0x881C0105, // 0017 GETMBR R7 R0 K5
+ 0x60200012, // 0018 GETGBL R8 G18
+ 0x7C200000, // 0019 CALL R8 0
+ 0x981C0208, // 001A SETIDX R7 R1 R8
+ 0x881C0105, // 001B GETMBR R7 R0 K5
+ 0x941C0E01, // 001C GETIDX R7 R7 R1
+ 0x8C1C0F08, // 001D GETMET R7 R7 K8
+ 0x5C240C00, // 001E MOVE R9 R6
+ 0x7C1C0400, // 001F CALL R7 2
+ 0x8C1C0113, // 0020 GETMET R7 R0 K19
+ 0x88240105, // 0021 GETMBR R9 R0 K5
+ 0x94241201, // 0022 GETIDX R9 R9 R1
+ 0x7C1C0400, // 0023 CALL R7 2
+ 0x80040C00, // 0024 RET 1 R6
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: trigger_event
+********************************************************************/
+be_local_closure(class_EventManager_trigger_event, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 3, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_EventManager, /* shared constants */
+ be_str_weak(trigger_event),
+ &be_const_str_solidified,
+ ( &(const binstruction[69]) { /* code */
+ 0x880C010C, // 0000 GETMBR R3 R0 K12
+ 0x780E0007, // 0001 JMPF R3 #000A
+ 0x880C010B, // 0002 GETMBR R3 R0 K11
+ 0x8C0C0708, // 0003 GETMET R3 R3 K8
+ 0x60140013, // 0004 GETGBL R5 G19
+ 0x7C140000, // 0005 CALL R5 0
+ 0x98162A01, // 0006 SETIDX R5 K21 R1
+ 0x98162C02, // 0007 SETIDX R5 K22 R2
+ 0x7C0C0400, // 0008 CALL R3 2
+ 0x80000600, // 0009 RET 0
+ 0x500C0200, // 000A LDBOOL R3 1 0
+ 0x90021803, // 000B SETMBR R0 K12 R3
+ 0xA8020029, // 000C EXBLK 0 #0037
+ 0x600C0010, // 000D GETGBL R3 G16
+ 0x88100102, // 000E GETMBR R4 R0 K2
+ 0x7C0C0200, // 000F CALL R3 1
+ 0xA802000A, // 0010 EXBLK 0 #001C
+ 0x5C100600, // 0011 MOVE R4 R3
+ 0x7C100000, // 0012 CALL R4 0
+ 0x88140917, // 0013 GETMBR R5 R4 K23
+ 0x78160005, // 0014 JMPF R5 #001B
+ 0x8C140918, // 0015 GETMET R5 R4 K24
+ 0x601C0013, // 0016 GETGBL R7 G19
+ 0x7C1C0000, // 0017 CALL R7 0
+ 0x981E0001, // 0018 SETIDX R7 K0 R1
+ 0x981E2C02, // 0019 SETIDX R7 K22 R2
+ 0x7C140400, // 001A CALL R5 2
+ 0x7001FFF4, // 001B JMP #0011
+ 0x580C0007, // 001C LDCONST R3 K7
+ 0xAC0C0200, // 001D CATCH R3 1 0
+ 0xB0080000, // 001E RAISE 2 R0 R0
+ 0x880C0105, // 001F GETMBR R3 R0 K5
+ 0x8C0C0703, // 0020 GETMET R3 R3 K3
+ 0x5C140200, // 0021 MOVE R5 R1
+ 0x7C0C0400, // 0022 CALL R3 2
+ 0x4C100000, // 0023 LDNIL R4
+ 0x20100604, // 0024 NE R4 R3 R4
+ 0x7812000E, // 0025 JMPF R4 #0035
+ 0x60100010, // 0026 GETGBL R4 G16
+ 0x5C140600, // 0027 MOVE R5 R3
+ 0x7C100200, // 0028 CALL R4 1
+ 0xA8020007, // 0029 EXBLK 0 #0032
+ 0x5C140800, // 002A MOVE R5 R4
+ 0x7C140000, // 002B CALL R5 0
+ 0x88180B17, // 002C GETMBR R6 R5 K23
+ 0x781A0002, // 002D JMPF R6 #0031
+ 0x8C180B18, // 002E GETMET R6 R5 K24
+ 0x5C200400, // 002F MOVE R8 R2
+ 0x7C180400, // 0030 CALL R6 2
+ 0x7001FFF7, // 0031 JMP #002A
+ 0x58100007, // 0032 LDCONST R4 K7
+ 0xAC100200, // 0033 CATCH R4 1 0
+ 0xB0080000, // 0034 RAISE 2 R0 R0
+ 0xA8040001, // 0035 EXBLK 1 1
+ 0x70020008, // 0036 JMP #0040
+ 0xAC0C0002, // 0037 CATCH R3 0 2
+ 0x70020005, // 0038 JMP #003F
+ 0x60140001, // 0039 GETGBL R5 G1
+ 0x58180019, // 003A LDCONST R6 K25
+ 0x5C1C0600, // 003B MOVE R7 R3
+ 0x5C200800, // 003C MOVE R8 R4
+ 0x7C140600, // 003D CALL R5 3
+ 0x70020000, // 003E JMP #0040
+ 0xB0080000, // 003F RAISE 2 R0 R0
+ 0x500C0000, // 0040 LDBOOL R3 0 0
+ 0x90021803, // 0041 SETMBR R0 K12 R3
+ 0x8C0C011A, // 0042 GETMET R3 R0 K26
+ 0x7C0C0200, // 0043 CALL R3 1
+ 0x80000000, // 0044 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _process_queued_events
+********************************************************************/
+be_local_closure(class_EventManager__process_queued_events, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 1, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_EventManager, /* shared constants */
+ be_str_weak(_process_queued_events),
+ &be_const_str_solidified,
+ ( &(const binstruction[15]) { /* code */
+ 0x8804010B, // 0000 GETMBR R1 R0 K11
+ 0x8C04031B, // 0001 GETMET R1 R1 K27
+ 0x7C040200, // 0002 CALL R1 1
+ 0x2404030F, // 0003 GT R1 R1 K15
+ 0x78060008, // 0004 JMPF R1 #000E
+ 0x8804010B, // 0005 GETMBR R1 R0 K11
+ 0x8C04031C, // 0006 GETMET R1 R1 K28
+ 0x580C000F, // 0007 LDCONST R3 K15
+ 0x7C040400, // 0008 CALL R1 2
+ 0x8C08011D, // 0009 GETMET R2 R0 K29
+ 0x94100315, // 000A GETIDX R4 R1 K21
+ 0x94140316, // 000B GETIDX R5 R1 K22
+ 0x7C080600, // 000C CALL R2 3
+ 0x7001FFF1, // 000D JMP #0000
+ 0x80000000, // 000E RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified class: EventManager
+********************************************************************/
+be_local_class(EventManager,
+ 4,
+ NULL,
+ be_nested_map(14,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(unregister_handler, -1), be_const_closure(class_EventManager_unregister_handler_closure) },
+ { be_const_key_weak(set_event_active, -1), be_const_closure(class_EventManager_set_event_active_closure) },
+ { be_const_key_weak(handlers, -1), be_const_var(0) },
+ { be_const_key_weak(init, -1), be_const_closure(class_EventManager_init_closure) },
+ { be_const_key_weak(trigger_event, -1), be_const_closure(class_EventManager_trigger_event_closure) },
+ { be_const_key_weak(get_handlers, 3), be_const_closure(class_EventManager_get_handlers_closure) },
+ { be_const_key_weak(clear_all_handlers, -1), be_const_closure(class_EventManager_clear_all_handlers_closure) },
+ { be_const_key_weak(event_queue, -1), be_const_var(2) },
+ { be_const_key_weak(_sort_handlers, -1), be_const_closure(class_EventManager__sort_handlers_closure) },
+ { be_const_key_weak(is_processing, 7), be_const_var(3) },
+ { be_const_key_weak(global_handlers, -1), be_const_var(1) },
+ { be_const_key_weak(register_handler, -1), be_const_closure(class_EventManager_register_handler_closure) },
+ { be_const_key_weak(get_registered_events, 4), be_const_closure(class_EventManager_get_registered_events_closure) },
+ { be_const_key_weak(_process_queued_events, -1), be_const_closure(class_EventManager__process_queued_events_closure) },
+ })),
+ be_str_weak(EventManager)
+);
+
+/********************************************************************
+** Solidified function: get_user_function
+********************************************************************/
+be_local_closure(get_user_function, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 0, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(animation),
+ /* K1 */ be_nested_str_weak(_user_functions),
+ /* K2 */ be_nested_str_weak(find),
+ }),
+ be_str_weak(get_user_function),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 6]) { /* code */
+ 0xB8060000, // 0000 GETNGBL R1 K0
+ 0x88040301, // 0001 GETMBR R1 R1 K1
+ 0x8C040302, // 0002 GETMET R1 R1 K2
+ 0x5C0C0000, // 0003 MOVE R3 R0
+ 0x7C040400, // 0004 CALL R1 2
+ 0x80040200, // 0005 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: elastic
+********************************************************************/
+be_local_closure(elastic, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 0, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(animation),
+ /* K1 */ be_nested_str_weak(oscillator_value),
+ /* K2 */ be_nested_str_weak(form),
+ }),
+ be_str_weak(elastic),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0xB8060000, // 0000 GETNGBL R1 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x5C0C0000, // 0002 MOVE R3 R0
+ 0x7C040400, // 0003 CALL R1 2
+ 0x540A0007, // 0004 LDINT R2 8
+ 0x90060402, // 0005 SETMBR R1 K2 R2
+ 0x80040200, // 0006 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+extern const bclass be_class_parameterized_object;
+// compact class 'parameterized_object' ktab size: 59, total: 123 (saved 512 bytes)
+static const bvalue be_ktab_class_parameterized_object[59] = {
+ /* K0 */ be_const_class(be_class_parameterized_object),
+ /* K1 */ be_const_int(1),
+ /* K2 */ be_const_int(0),
+ /* K3 */ be_nested_str_weak(_MASK),
+ /* K4 */ be_nested_str_weak(find),
+ /* K5 */ be_const_int(2),
+ /* K6 */ be_nested_str_weak(_TYPES),
+ /* K7 */ be_nested_str_weak(push),
+ /* K8 */ be_nested_str_weak(has_param),
+ /* K9 */ be_nested_str_weak(_set_parameter_value),
+ /* K10 */ be_nested_str_weak(_X27_X25s_X27_X20object_X20has_X20no_X20attribute_X20_X27_X25s_X27),
+ /* K11 */ be_nested_str_weak(attribute_error),
+ /* K12 */ be_nested_str_weak(_get_param_def),
+ /* K13 */ be_nested_str_weak(animation),
+ /* K14 */ be_nested_str_weak(is_value_provider),
+ /* K15 */ be_nested_str_weak(constraint_mask),
+ /* K16 */ be_nested_str_weak(nillable),
+ /* K17 */ be_nested_str_weak(default),
+ /* K18 */ be_nested_str_weak(constraint_find),
+ /* K19 */ be_nested_str_weak(_X27_X25s_X27_X20does_X20not_X20accept_X20nil_X20values),
+ /* K20 */ be_nested_str_weak(value_error),
+ /* K21 */ be_nested_str_weak(type),
+ /* K22 */ be_nested_str_weak(int),
+ /* K23 */ be_nested_str_weak(time),
+ /* K24 */ be_nested_str_weak(percentage),
+ /* K25 */ be_nested_str_weak(color),
+ /* K26 */ be_nested_str_weak(palette),
+ /* K27 */ be_nested_str_weak(bytes),
+ /* K28 */ be_nested_str_weak(any),
+ /* K29 */ be_nested_str_weak(real),
+ /* K30 */ be_nested_str_weak(math),
+ /* K31 */ be_nested_str_weak(round),
+ /* K32 */ be_nested_str_weak(instance),
+ /* K33 */ be_nested_str_weak(_X27_X25s_X27_X20expects_X20type_X20_X27_X25s_X27_X20but_X20got_X20_X27_X25s_X27_X20_X28value_X3A_X20_X25s_X29),
+ /* K34 */ be_nested_str_weak(min),
+ /* K35 */ be_nested_str_weak(_X27_X25s_X27_X20value_X20_X25s_X20is_X20below_X20minimum_X20_X25s),
+ /* K36 */ be_nested_str_weak(max),
+ /* K37 */ be_nested_str_weak(_X27_X25s_X27_X20value_X20_X25s_X20is_X20above_X20maximum_X20_X25s),
+ /* K38 */ be_nested_str_weak(enum),
+ /* K39 */ be_nested_str_weak(_X27_X25s_X27_X20value_X20_X25s_X20is_X20not_X20in_X20allowed_X20values_X20_X25s),
+ /* K40 */ be_nested_str_weak(values),
+ /* K41 */ be_nested_str_weak(contains),
+ /* K42 */ be_nested_str_weak(resolve_value),
+ /* K43 */ be_nested_str_weak(engine),
+ /* K44 */ be_nested_str_weak(time_ms),
+ /* K45 */ be_nested_str_weak(is_running),
+ /* K46 */ be_nested_str_weak(start_time),
+ /* K47 */ be_nested_str_weak(introspect),
+ /* K48 */ be_nested_str_weak(PARAMS),
+ /* K49 */ be_nested_str_weak(keys),
+ /* K50 */ be_nested_str_weak(stop_iteration),
+ /* K51 */ be_nested_str_weak(missing_X20engine_X20parameter),
+ /* K52 */ be_nested_str_weak(_init_parameter_values),
+ /* K53 */ be_nested_str_weak(toptr),
+ /* K54 */ be_nested_str_weak(_validate_param),
+ /* K55 */ be_nested_str_weak(on_param_changed),
+ /* K56 */ be_nested_str_weak(_X3Cinstance_X3A_X20_X25s_X3E),
+ /* K57 */ be_nested_str_weak(produce_value),
+ /* K58 */ be_nested_str_weak(member),
+};
+
+
+extern const bclass be_class_parameterized_object;
+
+/********************************************************************
+** Solidified function: constraint_find
+********************************************************************/
+be_local_closure(class_parameterized_object_constraint_find, /* name */
+ be_nested_proto(
+ 17, /* nstack */
+ 3, /* argc */
+ 12, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 1, /* has sup protos */
+ ( &(const struct bproto*[ 2]) {
+ be_nested_proto(
+ 7, /* nstack */
+ 2, /* argc */
+ 0, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_const_int(0),
+ /* K1 */ be_const_int(1),
+ /* K2 */ be_const_int(2),
+ /* K3 */ be_const_int(3),
+ /* K4 */ be_nested_str_weak(get),
+ }),
+ be_str_weak(_skip_typed_value),
+ &be_const_str_solidified,
+ ( &(const binstruction[47]) { /* code */
+ 0x6008000C, // 0000 GETGBL R2 G12
+ 0x5C0C0000, // 0001 MOVE R3 R0
+ 0x7C080200, // 0002 CALL R2 1
+ 0x28080202, // 0003 GE R2 R1 R2
+ 0x780A0000, // 0004 JMPF R2 #0006
+ 0x80060000, // 0005 RET 1 K0
+ 0x94080001, // 0006 GETIDX R2 R0 R1
+ 0x540E0005, // 0007 LDINT R3 6
+ 0x1C0C0403, // 0008 EQ R3 R2 R3
+ 0x780E0001, // 0009 JMPF R3 #000C
+ 0x80060200, // 000A RET 1 K1
+ 0x70020021, // 000B JMP #002E
+ 0x540E0004, // 000C LDINT R3 5
+ 0x1C0C0403, // 000D EQ R3 R2 R3
+ 0x780E0001, // 000E JMPF R3 #0011
+ 0x80060400, // 000F RET 1 K2
+ 0x7002001C, // 0010 JMP #002E
+ 0x1C0C0500, // 0011 EQ R3 R2 K0
+ 0x780E0001, // 0012 JMPF R3 #0015
+ 0x80060400, // 0013 RET 1 K2
+ 0x70020018, // 0014 JMP #002E
+ 0x1C0C0501, // 0015 EQ R3 R2 K1
+ 0x780E0001, // 0016 JMPF R3 #0019
+ 0x80060600, // 0017 RET 1 K3
+ 0x70020014, // 0018 JMP #002E
+ 0x1C0C0502, // 0019 EQ R3 R2 K2
+ 0x780E0002, // 001A JMPF R3 #001E
+ 0x540E0004, // 001B LDINT R3 5
+ 0x80040600, // 001C RET 1 R3
+ 0x7002000F, // 001D JMP #002E
+ 0x1C0C0503, // 001E EQ R3 R2 K3
+ 0x780E0004, // 001F JMPF R3 #0025
+ 0x000C0301, // 0020 ADD R3 R1 K1
+ 0x940C0003, // 0021 GETIDX R3 R0 R3
+ 0x000E0403, // 0022 ADD R3 K2 R3
+ 0x80040600, // 0023 RET 1 R3
+ 0x70020008, // 0024 JMP #002E
+ 0x540E0003, // 0025 LDINT R3 4
+ 0x1C0C0403, // 0026 EQ R3 R2 R3
+ 0x780E0005, // 0027 JMPF R3 #002E
+ 0x8C0C0104, // 0028 GETMET R3 R0 K4
+ 0x00140301, // 0029 ADD R5 R1 K1
+ 0x58180002, // 002A LDCONST R6 K2
+ 0x7C0C0600, // 002B CALL R3 3
+ 0x000E0603, // 002C ADD R3 K3 R3
+ 0x80040600, // 002D RET 1 R3
+ 0x80060000, // 002E RET 1 K0
+ })
+ ),
+ be_nested_proto(
+ 7, /* nstack */
+ 2, /* argc */
+ 0, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_const_int(1),
+ /* K1 */ be_const_int(0),
+ /* K2 */ be_nested_str_weak(get),
+ /* K3 */ be_const_int(2),
+ /* K4 */ be_const_int(3),
+ /* K5 */ be_nested_str_weak(asstring),
+ }),
+ be_str_weak(_read_typed_value),
+ &be_const_str_solidified,
+ ( &(const binstruction[83]) { /* code */
+ 0x6008000C, // 0000 GETGBL R2 G12
+ 0x5C0C0000, // 0001 MOVE R3 R0
+ 0x7C080200, // 0002 CALL R2 1
+ 0x28080202, // 0003 GE R2 R1 R2
+ 0x780A0001, // 0004 JMPF R2 #0007
+ 0x4C080000, // 0005 LDNIL R2
+ 0x80040400, // 0006 RET 1 R2
+ 0x94080001, // 0007 GETIDX R2 R0 R1
+ 0x00040300, // 0008 ADD R1 R1 K0
+ 0x540E0005, // 0009 LDINT R3 6
+ 0x1C0C0403, // 000A EQ R3 R2 R3
+ 0x780E0002, // 000B JMPF R3 #000F
+ 0x4C0C0000, // 000C LDNIL R3
+ 0x80040600, // 000D RET 1 R3
+ 0x70020041, // 000E JMP #0051
+ 0x540E0004, // 000F LDINT R3 5
+ 0x1C0C0403, // 0010 EQ R3 R2 R3
+ 0x780E0003, // 0011 JMPF R3 #0016
+ 0x940C0001, // 0012 GETIDX R3 R0 R1
+ 0x200C0701, // 0013 NE R3 R3 K1
+ 0x80040600, // 0014 RET 1 R3
+ 0x7002003A, // 0015 JMP #0051
+ 0x1C0C0501, // 0016 EQ R3 R2 K1
+ 0x780E0009, // 0017 JMPF R3 #0022
+ 0x940C0001, // 0018 GETIDX R3 R0 R1
+ 0x5412007E, // 0019 LDINT R4 127
+ 0x24100604, // 001A GT R4 R3 R4
+ 0x78120002, // 001B JMPF R4 #001F
+ 0x541200FF, // 001C LDINT R4 256
+ 0x04100604, // 001D SUB R4 R3 R4
+ 0x70020000, // 001E JMP #0020
+ 0x5C100600, // 001F MOVE R4 R3
+ 0x80040800, // 0020 RET 1 R4
+ 0x7002002E, // 0021 JMP #0051
+ 0x1C0C0500, // 0022 EQ R3 R2 K0
+ 0x780E000C, // 0023 JMPF R3 #0031
+ 0x8C0C0102, // 0024 GETMET R3 R0 K2
+ 0x5C140200, // 0025 MOVE R5 R1
+ 0x58180003, // 0026 LDCONST R6 K3
+ 0x7C0C0600, // 0027 CALL R3 3
+ 0x54127FFE, // 0028 LDINT R4 32767
+ 0x24100604, // 0029 GT R4 R3 R4
+ 0x78120002, // 002A JMPF R4 #002E
+ 0x5412FFFF, // 002B LDINT R4 65536
+ 0x04100604, // 002C SUB R4 R3 R4
+ 0x70020000, // 002D JMP #002F
+ 0x5C100600, // 002E MOVE R4 R3
+ 0x80040800, // 002F RET 1 R4
+ 0x7002001F, // 0030 JMP #0051
+ 0x1C0C0503, // 0031 EQ R3 R2 K3
+ 0x780E0005, // 0032 JMPF R3 #0039
+ 0x8C0C0102, // 0033 GETMET R3 R0 K2
+ 0x5C140200, // 0034 MOVE R5 R1
+ 0x541A0003, // 0035 LDINT R6 4
+ 0x7C0C0600, // 0036 CALL R3 3
+ 0x80040600, // 0037 RET 1 R3
+ 0x70020017, // 0038 JMP #0051
+ 0x1C0C0504, // 0039 EQ R3 R2 K4
+ 0x780E0008, // 003A JMPF R3 #0044
+ 0x940C0001, // 003B GETIDX R3 R0 R1
+ 0x00100300, // 003C ADD R4 R1 K0
+ 0x00140203, // 003D ADD R5 R1 R3
+ 0x40100805, // 003E CONNECT R4 R4 R5
+ 0x94100004, // 003F GETIDX R4 R0 R4
+ 0x8C100905, // 0040 GETMET R4 R4 K5
+ 0x7C100200, // 0041 CALL R4 1
+ 0x80040800, // 0042 RET 1 R4
+ 0x7002000C, // 0043 JMP #0051
+ 0x540E0003, // 0044 LDINT R3 4
+ 0x1C0C0403, // 0045 EQ R3 R2 R3
+ 0x780E0009, // 0046 JMPF R3 #0051
+ 0x8C0C0102, // 0047 GETMET R3 R0 K2
+ 0x5C140200, // 0048 MOVE R5 R1
+ 0x58180003, // 0049 LDCONST R6 K3
+ 0x7C0C0600, // 004A CALL R3 3
+ 0x00100303, // 004B ADD R4 R1 K3
+ 0x00140203, // 004C ADD R5 R1 R3
+ 0x00140B00, // 004D ADD R5 R5 K0
+ 0x40100805, // 004E CONNECT R4 R4 R5
+ 0x94100004, // 004F GETIDX R4 R0 R4
+ 0x80040800, // 0050 RET 1 R4
+ 0x4C0C0000, // 0051 LDNIL R3
+ 0x80040600, // 0052 RET 1 R3
+ })
+ ),
+ }),
+ 1, /* has constants */
+ &be_ktab_class_parameterized_object, /* shared constants */
+ be_str_weak(constraint_find),
+ &be_const_str_solidified,
+ ( &(const binstruction[112]) { /* code */
+ 0x580C0000, // 0000 LDCONST R3 K0
+ 0x84100000, // 0001 CLOSURE R4 P0
+ 0x84140001, // 0002 CLOSURE R5 P1
+ 0x6018000C, // 0003 GETGBL R6 G12
+ 0x5C1C0000, // 0004 MOVE R7 R0
+ 0x7C180200, // 0005 CALL R6 1
+ 0x14180D01, // 0006 LT R6 R6 K1
+ 0x781A0000, // 0007 JMPF R6 #0009
+ 0x80040400, // 0008 RET 1 R2
+ 0x94180102, // 0009 GETIDX R6 R0 K2
+ 0x581C0001, // 000A LDCONST R7 K1
+ 0x88200703, // 000B GETMBR R8 R3 K3
+ 0x8C201104, // 000C GETMET R8 R8 K4
+ 0x5C280200, // 000D MOVE R10 R1
+ 0x7C200400, // 000E CALL R8 2
+ 0x4C240000, // 000F LDNIL R9
+ 0x1C241009, // 0010 EQ R9 R8 R9
+ 0x78260000, // 0011 JMPF R9 #0013
+ 0x80040400, // 0012 RET 1 R2
+ 0x38220208, // 0013 SHL R8 K1 R8
+ 0x2C240C08, // 0014 AND R9 R6 R8
+ 0x74260000, // 0015 JMPT R9 #0017
+ 0x80040400, // 0016 RET 1 R2
+ 0x5426001F, // 0017 LDINT R9 32
+ 0x1C241009, // 0018 EQ R9 R8 R9
+ 0x78260001, // 0019 JMPF R9 #001C
+ 0x50240200, // 001A LDBOOL R9 1 0
+ 0x80041200, // 001B RET 1 R9
+ 0x24241101, // 001C GT R9 R8 K1
+ 0x78260006, // 001D JMPF R9 #0025
+ 0x2C240D01, // 001E AND R9 R6 K1
+ 0x78260004, // 001F JMPF R9 #0025
+ 0x5C240800, // 0020 MOVE R9 R4
+ 0x5C280000, // 0021 MOVE R10 R0
+ 0x5C2C0E00, // 0022 MOVE R11 R7
+ 0x7C240400, // 0023 CALL R9 2
+ 0x001C0E09, // 0024 ADD R7 R7 R9
+ 0x24241105, // 0025 GT R9 R8 K5
+ 0x78260006, // 0026 JMPF R9 #002E
+ 0x2C240D05, // 0027 AND R9 R6 K5
+ 0x78260004, // 0028 JMPF R9 #002E
+ 0x5C240800, // 0029 MOVE R9 R4
+ 0x5C280000, // 002A MOVE R10 R0
+ 0x5C2C0E00, // 002B MOVE R11 R7
+ 0x7C240400, // 002C CALL R9 2
+ 0x001C0E09, // 002D ADD R7 R7 R9
+ 0x54260003, // 002E LDINT R9 4
+ 0x24241009, // 002F GT R9 R8 R9
+ 0x78260007, // 0030 JMPF R9 #0039
+ 0x54260003, // 0031 LDINT R9 4
+ 0x2C240C09, // 0032 AND R9 R6 R9
+ 0x78260004, // 0033 JMPF R9 #0039
+ 0x5C240800, // 0034 MOVE R9 R4
+ 0x5C280000, // 0035 MOVE R10 R0
+ 0x5C2C0E00, // 0036 MOVE R11 R7
+ 0x7C240400, // 0037 CALL R9 2
+ 0x001C0E09, // 0038 ADD R7 R7 R9
+ 0x54260007, // 0039 LDINT R9 8
+ 0x24241009, // 003A GT R9 R8 R9
+ 0x78260003, // 003B JMPF R9 #0040
+ 0x54260007, // 003C LDINT R9 8
+ 0x2C240C09, // 003D AND R9 R6 R9
+ 0x78260000, // 003E JMPF R9 #0040
+ 0x001C0F01, // 003F ADD R7 R7 K1
+ 0x6024000C, // 0040 GETGBL R9 G12
+ 0x5C280000, // 0041 MOVE R10 R0
+ 0x7C240200, // 0042 CALL R9 1
+ 0x28240E09, // 0043 GE R9 R7 R9
+ 0x78260000, // 0044 JMPF R9 #0046
+ 0x80040400, // 0045 RET 1 R2
+ 0x54260007, // 0046 LDINT R9 8
+ 0x1C241009, // 0047 EQ R9 R8 R9
+ 0x78260009, // 0048 JMPF R9 #0053
+ 0x94240007, // 0049 GETIDX R9 R0 R7
+ 0x6028000C, // 004A GETGBL R10 G12
+ 0x882C0706, // 004B GETMBR R11 R3 K6
+ 0x7C280200, // 004C CALL R10 1
+ 0x1428120A, // 004D LT R10 R9 R10
+ 0x782A0002, // 004E JMPF R10 #0052
+ 0x88280706, // 004F GETMBR R10 R3 K6
+ 0x94281409, // 0050 GETIDX R10 R10 R9
+ 0x80041400, // 0051 RET 1 R10
+ 0x80040400, // 0052 RET 1 R2
+ 0x5426000F, // 0053 LDINT R9 16
+ 0x1C241009, // 0054 EQ R9 R8 R9
+ 0x78260014, // 0055 JMPF R9 #006B
+ 0x94240007, // 0056 GETIDX R9 R0 R7
+ 0x001C0F01, // 0057 ADD R7 R7 K1
+ 0x60280012, // 0058 GETGBL R10 G18
+ 0x7C280000, // 0059 CALL R10 0
+ 0x582C0002, // 005A LDCONST R11 K2
+ 0x14301609, // 005B LT R12 R11 R9
+ 0x7832000C, // 005C JMPF R12 #006A
+ 0x8C301507, // 005D GETMET R12 R10 K7
+ 0x5C380A00, // 005E MOVE R14 R5
+ 0x5C3C0000, // 005F MOVE R15 R0
+ 0x5C400E00, // 0060 MOVE R16 R7
+ 0x7C380400, // 0061 CALL R14 2
+ 0x7C300400, // 0062 CALL R12 2
+ 0x5C340800, // 0063 MOVE R13 R4
+ 0x5C380000, // 0064 MOVE R14 R0
+ 0x5C3C0E00, // 0065 MOVE R15 R7
+ 0x7C340400, // 0066 CALL R13 2
+ 0x001C0E0D, // 0067 ADD R7 R7 R13
+ 0x002C1701, // 0068 ADD R11 R11 K1
+ 0x7001FFF0, // 0069 JMP #005B
+ 0x80041400, // 006A RET 1 R10
+ 0x5C240A00, // 006B MOVE R9 R5
+ 0x5C280000, // 006C MOVE R10 R0
+ 0x5C2C0E00, // 006D MOVE R11 R7
+ 0x7C240400, // 006E CALL R9 2
+ 0x80041200, // 006F RET 1 R9
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: setmember
+********************************************************************/
+be_local_closure(class_parameterized_object_setmember, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 3, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_parameterized_object, /* shared constants */
+ be_str_weak(setmember),
+ &be_const_str_solidified,
+ ( &(const binstruction[18]) { /* code */
+ 0x8C0C0108, // 0000 GETMET R3 R0 K8
+ 0x5C140200, // 0001 MOVE R5 R1
+ 0x7C0C0400, // 0002 CALL R3 2
+ 0x780E0004, // 0003 JMPF R3 #0009
+ 0x8C0C0109, // 0004 GETMET R3 R0 K9
+ 0x5C140200, // 0005 MOVE R5 R1
+ 0x5C180400, // 0006 MOVE R6 R2
+ 0x7C0C0600, // 0007 CALL R3 3
+ 0x70020007, // 0008 JMP #0011
+ 0x600C0018, // 0009 GETGBL R3 G24
+ 0x5810000A, // 000A LDCONST R4 K10
+ 0x60140005, // 000B GETGBL R5 G5
+ 0x5C180000, // 000C MOVE R6 R0
+ 0x7C140200, // 000D CALL R5 1
+ 0x5C180200, // 000E MOVE R6 R1
+ 0x7C0C0600, // 000F CALL R3 3
+ 0xB0061603, // 0010 RAISE 1 K11 R3
+ 0x80000000, // 0011 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _validate_param
+********************************************************************/
+be_local_closure(class_parameterized_object__validate_param, /* name */
+ be_nested_proto(
+ 15, /* nstack */
+ 3, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_parameterized_object, /* shared constants */
+ be_str_weak(_validate_param),
+ &be_const_str_solidified,
+ ( &(const binstruction[186]) { /* code */
+ 0x8C0C010C, // 0000 GETMET R3 R0 K12
+ 0x5C140200, // 0001 MOVE R5 R1
+ 0x7C0C0400, // 0002 CALL R3 2
+ 0x4C100000, // 0003 LDNIL R4
+ 0x1C100604, // 0004 EQ R4 R3 R4
+ 0x78120007, // 0005 JMPF R4 #000E
+ 0x60100018, // 0006 GETGBL R4 G24
+ 0x5814000A, // 0007 LDCONST R5 K10
+ 0x60180005, // 0008 GETGBL R6 G5
+ 0x5C1C0000, // 0009 MOVE R7 R0
+ 0x7C180200, // 000A CALL R6 1
+ 0x5C1C0200, // 000B MOVE R7 R1
+ 0x7C100600, // 000C CALL R4 3
+ 0xB0061604, // 000D RAISE 1 K11 R4
+ 0xB8121A00, // 000E GETNGBL R4 K13
+ 0x8C10090E, // 000F GETMET R4 R4 K14
+ 0x5C180400, // 0010 MOVE R6 R2
+ 0x7C100400, // 0011 CALL R4 2
+ 0x78120000, // 0012 JMPF R4 #0014
+ 0x80040400, // 0013 RET 1 R2
+ 0x4C100000, // 0014 LDNIL R4
+ 0x1C100404, // 0015 EQ R4 R2 R4
+ 0x78120014, // 0016 JMPF R4 #002C
+ 0x8C10010F, // 0017 GETMET R4 R0 K15
+ 0x5C180600, // 0018 MOVE R6 R3
+ 0x581C0010, // 0019 LDCONST R7 K16
+ 0x7C100600, // 001A CALL R4 3
+ 0x78120000, // 001B JMPF R4 #001D
+ 0x80040400, // 001C RET 1 R2
+ 0x8C10010F, // 001D GETMET R4 R0 K15
+ 0x5C180600, // 001E MOVE R6 R3
+ 0x581C0011, // 001F LDCONST R7 K17
+ 0x7C100600, // 0020 CALL R4 3
+ 0x78120004, // 0021 JMPF R4 #0027
+ 0x8C100112, // 0022 GETMET R4 R0 K18
+ 0x5C180600, // 0023 MOVE R6 R3
+ 0x581C0011, // 0024 LDCONST R7 K17
+ 0x7C100600, // 0025 CALL R4 3
+ 0x80040800, // 0026 RET 1 R4
+ 0x60100018, // 0027 GETGBL R4 G24
+ 0x58140013, // 0028 LDCONST R5 K19
+ 0x5C180200, // 0029 MOVE R6 R1
+ 0x7C100400, // 002A CALL R4 2
+ 0xB0062804, // 002B RAISE 1 K20 R4
+ 0x8C100112, // 002C GETMET R4 R0 K18
+ 0x5C180600, // 002D MOVE R6 R3
+ 0x581C0015, // 002E LDCONST R7 K21
+ 0x58200016, // 002F LDCONST R8 K22
+ 0x7C100800, // 0030 CALL R4 4
+ 0x1C140917, // 0031 EQ R5 R4 K23
+ 0x74160003, // 0032 JMPT R5 #0037
+ 0x1C140918, // 0033 EQ R5 R4 K24
+ 0x74160001, // 0034 JMPT R5 #0037
+ 0x1C140919, // 0035 EQ R5 R4 K25
+ 0x78160001, // 0036 JMPF R5 #0039
+ 0x58100016, // 0037 LDCONST R4 K22
+ 0x70020002, // 0038 JMP #003C
+ 0x1C14091A, // 0039 EQ R5 R4 K26
+ 0x78160000, // 003A JMPF R5 #003C
+ 0x5810001B, // 003B LDCONST R4 K27
+ 0x60140004, // 003C GETGBL R5 G4
+ 0x5C180400, // 003D MOVE R6 R2
+ 0x7C140200, // 003E CALL R5 1
+ 0x2018091C, // 003F NE R6 R4 K28
+ 0x781A0031, // 0040 JMPF R6 #0073
+ 0x1C180916, // 0041 EQ R6 R4 K22
+ 0x781A000A, // 0042 JMPF R6 #004E
+ 0x1C180B1D, // 0043 EQ R6 R5 K29
+ 0x781A0008, // 0044 JMPF R6 #004E
+ 0xA41A3C00, // 0045 IMPORT R6 K30
+ 0x601C0009, // 0046 GETGBL R7 G9
+ 0x8C200D1F, // 0047 GETMET R8 R6 K31
+ 0x5C280400, // 0048 MOVE R10 R2
+ 0x7C200400, // 0049 CALL R8 2
+ 0x7C1C0200, // 004A CALL R7 1
+ 0x5C080E00, // 004B MOVE R2 R7
+ 0x58140016, // 004C LDCONST R5 K22
+ 0x70020024, // 004D JMP #0073
+ 0x1C18091B, // 004E EQ R6 R4 K27
+ 0x781A0018, // 004F JMPF R6 #0069
+ 0x1C180B20, // 0050 EQ R6 R5 K32
+ 0x781A0006, // 0051 JMPF R6 #0059
+ 0x6018000F, // 0052 GETGBL R6 G15
+ 0x5C1C0400, // 0053 MOVE R7 R2
+ 0x60200015, // 0054 GETGBL R8 G21
+ 0x7C180400, // 0055 CALL R6 2
+ 0x781A0001, // 0056 JMPF R6 #0059
+ 0x5814001B, // 0057 LDCONST R5 K27
+ 0x7002000E, // 0058 JMP #0068
+ 0x20180B20, // 0059 NE R6 R5 K32
+ 0x741A0004, // 005A JMPT R6 #0060
+ 0x6018000F, // 005B GETGBL R6 G15
+ 0x5C1C0400, // 005C MOVE R7 R2
+ 0x60200015, // 005D GETGBL R8 G21
+ 0x7C180400, // 005E CALL R6 2
+ 0x741A0007, // 005F JMPT R6 #0068
+ 0x60180018, // 0060 GETGBL R6 G24
+ 0x581C0021, // 0061 LDCONST R7 K33
+ 0x5C200200, // 0062 MOVE R8 R1
+ 0x5C240800, // 0063 MOVE R9 R4
+ 0x5C280A00, // 0064 MOVE R10 R5
+ 0x5C2C0400, // 0065 MOVE R11 R2
+ 0x7C180A00, // 0066 CALL R6 5
+ 0xB0062806, // 0067 RAISE 1 K20 R6
+ 0x70020009, // 0068 JMP #0073
+ 0x20180805, // 0069 NE R6 R4 R5
+ 0x781A0007, // 006A JMPF R6 #0073
+ 0x60180018, // 006B GETGBL R6 G24
+ 0x581C0021, // 006C LDCONST R7 K33
+ 0x5C200200, // 006D MOVE R8 R1
+ 0x5C240800, // 006E MOVE R9 R4
+ 0x5C280A00, // 006F MOVE R10 R5
+ 0x5C2C0400, // 0070 MOVE R11 R2
+ 0x7C180A00, // 0071 CALL R6 5
+ 0xB0062806, // 0072 RAISE 1 K20 R6
+ 0x1C180B16, // 0073 EQ R6 R5 K22
+ 0x781A0023, // 0074 JMPF R6 #0099
+ 0x8C18010F, // 0075 GETMET R6 R0 K15
+ 0x5C200600, // 0076 MOVE R8 R3
+ 0x58240022, // 0077 LDCONST R9 K34
+ 0x7C180600, // 0078 CALL R6 3
+ 0x781A000C, // 0079 JMPF R6 #0087
+ 0x8C180112, // 007A GETMET R6 R0 K18
+ 0x5C200600, // 007B MOVE R8 R3
+ 0x58240022, // 007C LDCONST R9 K34
+ 0x7C180600, // 007D CALL R6 3
+ 0x141C0406, // 007E LT R7 R2 R6
+ 0x781E0006, // 007F JMPF R7 #0087
+ 0x601C0018, // 0080 GETGBL R7 G24
+ 0x58200023, // 0081 LDCONST R8 K35
+ 0x5C240200, // 0082 MOVE R9 R1
+ 0x5C280400, // 0083 MOVE R10 R2
+ 0x5C2C0C00, // 0084 MOVE R11 R6
+ 0x7C1C0800, // 0085 CALL R7 4
+ 0xB0062807, // 0086 RAISE 1 K20 R7
+ 0x8C18010F, // 0087 GETMET R6 R0 K15
+ 0x5C200600, // 0088 MOVE R8 R3
+ 0x58240024, // 0089 LDCONST R9 K36
+ 0x7C180600, // 008A CALL R6 3
+ 0x781A000C, // 008B JMPF R6 #0099
+ 0x8C180112, // 008C GETMET R6 R0 K18
+ 0x5C200600, // 008D MOVE R8 R3
+ 0x58240024, // 008E LDCONST R9 K36
+ 0x7C180600, // 008F CALL R6 3
+ 0x241C0406, // 0090 GT R7 R2 R6
+ 0x781E0006, // 0091 JMPF R7 #0099
+ 0x601C0018, // 0092 GETGBL R7 G24
+ 0x58200025, // 0093 LDCONST R8 K37
+ 0x5C240200, // 0094 MOVE R9 R1
+ 0x5C280400, // 0095 MOVE R10 R2
+ 0x5C2C0C00, // 0096 MOVE R11 R6
+ 0x7C1C0800, // 0097 CALL R7 4
+ 0xB0062807, // 0098 RAISE 1 K20 R7
+ 0x8C18010F, // 0099 GETMET R6 R0 K15
+ 0x5C200600, // 009A MOVE R8 R3
+ 0x58240026, // 009B LDCONST R9 K38
+ 0x7C180600, // 009C CALL R6 3
+ 0x781A001A, // 009D JMPF R6 #00B9
+ 0x50180000, // 009E LDBOOL R6 0 0
+ 0x8C1C0112, // 009F GETMET R7 R0 K18
+ 0x5C240600, // 00A0 MOVE R9 R3
+ 0x58280026, // 00A1 LDCONST R10 K38
+ 0x7C1C0600, // 00A2 CALL R7 3
+ 0x6020000C, // 00A3 GETGBL R8 G12
+ 0x5C240E00, // 00A4 MOVE R9 R7
+ 0x7C200200, // 00A5 CALL R8 1
+ 0x58240002, // 00A6 LDCONST R9 K2
+ 0x14281208, // 00A7 LT R10 R9 R8
+ 0x782A0006, // 00A8 JMPF R10 #00B0
+ 0x94280E09, // 00A9 GETIDX R10 R7 R9
+ 0x1C2C040A, // 00AA EQ R11 R2 R10
+ 0x782E0001, // 00AB JMPF R11 #00AE
+ 0x50180200, // 00AC LDBOOL R6 1 0
+ 0x70020001, // 00AD JMP #00B0
+ 0x00241301, // 00AE ADD R9 R9 K1
+ 0x7001FFF6, // 00AF JMP #00A7
+ 0x5C280C00, // 00B0 MOVE R10 R6
+ 0x742A0006, // 00B1 JMPT R10 #00B9
+ 0x60280018, // 00B2 GETGBL R10 G24
+ 0x582C0027, // 00B3 LDCONST R11 K39
+ 0x5C300200, // 00B4 MOVE R12 R1
+ 0x5C340400, // 00B5 MOVE R13 R2
+ 0x5C380E00, // 00B6 MOVE R14 R7
+ 0x7C280800, // 00B7 CALL R10 4
+ 0xB006280A, // 00B8 RAISE 1 K20 R10
+ 0x80040400, // 00B9 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: update
+********************************************************************/
+be_local_closure(class_parameterized_object_update, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_parameterized_object, /* shared constants */
+ be_str_weak(update),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 1]) { /* code */
+ 0x80000000, // 0000 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _resolve_parameter_value
+********************************************************************/
+be_local_closure(class_parameterized_object__resolve_parameter_value, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 3, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_parameterized_object, /* shared constants */
+ be_str_weak(_resolve_parameter_value),
+ &be_const_str_solidified,
+ ( &(const binstruction[31]) { /* code */
+ 0x880C0128, // 0000 GETMBR R3 R0 K40
+ 0x8C0C0729, // 0001 GETMET R3 R3 K41
+ 0x5C140200, // 0002 MOVE R5 R1
+ 0x7C0C0400, // 0003 CALL R3 2
+ 0x740E0011, // 0004 JMPT R3 #0017
+ 0x8C0C010C, // 0005 GETMET R3 R0 K12
+ 0x5C140200, // 0006 MOVE R5 R1
+ 0x7C0C0400, // 0007 CALL R3 2
+ 0x4C100000, // 0008 LDNIL R4
+ 0x20100604, // 0009 NE R4 R3 R4
+ 0x78120009, // 000A JMPF R4 #0015
+ 0x8C10010F, // 000B GETMET R4 R0 K15
+ 0x5C180600, // 000C MOVE R6 R3
+ 0x581C0011, // 000D LDCONST R7 K17
+ 0x7C100600, // 000E CALL R4 3
+ 0x78120004, // 000F JMPF R4 #0015
+ 0x8C100112, // 0010 GETMET R4 R0 K18
+ 0x5C180600, // 0011 MOVE R6 R3
+ 0x581C0011, // 0012 LDCONST R7 K17
+ 0x7C100600, // 0013 CALL R4 3
+ 0x80040800, // 0014 RET 1 R4
+ 0x4C100000, // 0015 LDNIL R4
+ 0x80040800, // 0016 RET 1 R4
+ 0x880C0128, // 0017 GETMBR R3 R0 K40
+ 0x940C0601, // 0018 GETIDX R3 R3 R1
+ 0x8C10012A, // 0019 GETMET R4 R0 K42
+ 0x5C180600, // 001A MOVE R6 R3
+ 0x5C1C0200, // 001B MOVE R7 R1
+ 0x5C200400, // 001C MOVE R8 R2
+ 0x7C100800, // 001D CALL R4 4
+ 0x80040800, // 001E RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: constraint_mask
+********************************************************************/
+be_local_closure(class_parameterized_object_constraint_mask, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 2, /* argc */
+ 12, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_parameterized_object, /* shared constants */
+ be_str_weak(constraint_mask),
+ &be_const_str_solidified,
+ ( &(const binstruction[21]) { /* code */
+ 0x58080000, // 0000 LDCONST R2 K0
+ 0x4C0C0000, // 0001 LDNIL R3
+ 0x200C0003, // 0002 NE R3 R0 R3
+ 0x780E000F, // 0003 JMPF R3 #0014
+ 0x600C000C, // 0004 GETGBL R3 G12
+ 0x5C100000, // 0005 MOVE R4 R0
+ 0x7C0C0200, // 0006 CALL R3 1
+ 0x240C0702, // 0007 GT R3 R3 K2
+ 0x780E000A, // 0008 JMPF R3 #0014
+ 0x880C0503, // 0009 GETMBR R3 R2 K3
+ 0x8C0C0704, // 000A GETMET R3 R3 K4
+ 0x5C140200, // 000B MOVE R5 R1
+ 0x7C0C0400, // 000C CALL R3 2
+ 0x4C100000, // 000D LDNIL R4
+ 0x20100604, // 000E NE R4 R3 R4
+ 0x78120003, // 000F JMPF R4 #0014
+ 0x94100102, // 0010 GETIDX R4 R0 K2
+ 0x38160203, // 0011 SHL R5 K1 R3
+ 0x2C100805, // 0012 AND R4 R4 R5
+ 0x80040800, // 0013 RET 1 R4
+ 0x80060400, // 0014 RET 1 K2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: member
+********************************************************************/
+be_local_closure(class_parameterized_object_member, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_parameterized_object, /* shared constants */
+ be_str_weak(member),
+ &be_const_str_solidified,
+ ( &(const binstruction[58]) { /* code */
+ 0x88080128, // 0000 GETMBR R2 R0 K40
+ 0x8C080504, // 0001 GETMET R2 R2 K4
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x7C080400, // 0003 CALL R2 2
+ 0x4C0C0000, // 0004 LDNIL R3
+ 0x200C0403, // 0005 NE R3 R2 R3
+ 0x780E000D, // 0006 JMPF R3 #0015
+ 0x600C0004, // 0007 GETGBL R3 G4
+ 0x5C100400, // 0008 MOVE R4 R2
+ 0x7C0C0200, // 0009 CALL R3 1
+ 0x200C0720, // 000A NE R3 R3 K32
+ 0x780E0000, // 000B JMPF R3 #000D
+ 0x80040400, // 000C RET 1 R2
+ 0x8C0C012A, // 000D GETMET R3 R0 K42
+ 0x5C140400, // 000E MOVE R5 R2
+ 0x5C180200, // 000F MOVE R6 R1
+ 0x881C012B, // 0010 GETMBR R7 R0 K43
+ 0x881C0F2C, // 0011 GETMBR R7 R7 K44
+ 0x7C0C0800, // 0012 CALL R3 4
+ 0x80040600, // 0013 RET 1 R3
+ 0x70020023, // 0014 JMP #0039
+ 0x880C0128, // 0015 GETMBR R3 R0 K40
+ 0x8C0C0729, // 0016 GETMET R3 R3 K41
+ 0x5C140200, // 0017 MOVE R5 R1
+ 0x7C0C0400, // 0018 CALL R3 2
+ 0x780E0002, // 0019 JMPF R3 #001D
+ 0x4C0C0000, // 001A LDNIL R3
+ 0x80040600, // 001B RET 1 R3
+ 0x7002001B, // 001C JMP #0039
+ 0x8C0C010C, // 001D GETMET R3 R0 K12
+ 0x5C140200, // 001E MOVE R5 R1
+ 0x7C0C0400, // 001F CALL R3 2
+ 0x4C100000, // 0020 LDNIL R4
+ 0x20100604, // 0021 NE R4 R3 R4
+ 0x7812000D, // 0022 JMPF R4 #0031
+ 0x8C10010F, // 0023 GETMET R4 R0 K15
+ 0x5C180600, // 0024 MOVE R6 R3
+ 0x581C0011, // 0025 LDCONST R7 K17
+ 0x7C100600, // 0026 CALL R4 3
+ 0x78120005, // 0027 JMPF R4 #002E
+ 0x8C100112, // 0028 GETMET R4 R0 K18
+ 0x5C180600, // 0029 MOVE R6 R3
+ 0x581C0011, // 002A LDCONST R7 K17
+ 0x7C100600, // 002B CALL R4 3
+ 0x80040800, // 002C RET 1 R4
+ 0x70020001, // 002D JMP #0030
+ 0x4C100000, // 002E LDNIL R4
+ 0x80040800, // 002F RET 1 R4
+ 0x70020007, // 0030 JMP #0039
+ 0x60100018, // 0031 GETGBL R4 G24
+ 0x5814000A, // 0032 LDCONST R5 K10
+ 0x60180005, // 0033 GETGBL R6 G5
+ 0x5C1C0000, // 0034 MOVE R7 R0
+ 0x7C180200, // 0035 CALL R6 1
+ 0x5C1C0200, // 0036 MOVE R7 R1
+ 0x7C100600, // 0037 CALL R4 3
+ 0xB0061604, // 0038 RAISE 1 K11 R4
+ 0x80000000, // 0039 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: start
+********************************************************************/
+be_local_closure(class_parameterized_object_start, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_parameterized_object, /* shared constants */
+ be_str_weak(start),
+ &be_const_str_solidified,
+ ( &(const binstruction[13]) { /* code */
+ 0x4C080000, // 0000 LDNIL R2
+ 0x1C080202, // 0001 EQ R2 R1 R2
+ 0x780A0001, // 0002 JMPF R2 #0005
+ 0x8808012B, // 0003 GETMBR R2 R0 K43
+ 0x8804052C, // 0004 GETMBR R1 R2 K44
+ 0x50080200, // 0005 LDBOOL R2 1 0
+ 0x90025A02, // 0006 SETMBR R0 K45 R2
+ 0x8808012E, // 0007 GETMBR R2 R0 K46
+ 0x4C0C0000, // 0008 LDNIL R3
+ 0x20080403, // 0009 NE R2 R2 R3
+ 0x780A0000, // 000A JMPF R2 #000C
+ 0x90025C01, // 000B SETMBR R0 K46 R1
+ 0x80040000, // 000C RET 1 R0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: stop
+********************************************************************/
+be_local_closure(class_parameterized_object_stop, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_parameterized_object, /* shared constants */
+ be_str_weak(stop),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 3]) { /* code */
+ 0x50040000, // 0000 LDBOOL R1 0 0
+ 0x90025A01, // 0001 SETMBR R0 K45 R1
+ 0x80040000, // 0002 RET 1 R0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _init_parameter_values
+********************************************************************/
+be_local_closure(class_parameterized_object__init_parameter_values, /* name */
+ be_nested_proto(
+ 12, /* nstack */
+ 1, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_parameterized_object, /* shared constants */
+ be_str_weak(_init_parameter_values),
+ &be_const_str_solidified,
+ ( &(const binstruction[47]) { /* code */
+ 0xA4065E00, // 0000 IMPORT R1 K47
+ 0x60080006, // 0001 GETGBL R2 G6
+ 0x5C0C0000, // 0002 MOVE R3 R0
+ 0x7C080200, // 0003 CALL R2 1
+ 0x4C0C0000, // 0004 LDNIL R3
+ 0x200C0403, // 0005 NE R3 R2 R3
+ 0x780E0026, // 0006 JMPF R3 #002E
+ 0x8C0C0329, // 0007 GETMET R3 R1 K41
+ 0x5C140400, // 0008 MOVE R5 R2
+ 0x58180030, // 0009 LDCONST R6 K48
+ 0x7C0C0600, // 000A CALL R3 3
+ 0x780E001C, // 000B JMPF R3 #0029
+ 0x880C0530, // 000C GETMBR R3 R2 K48
+ 0x60100010, // 000D GETGBL R4 G16
+ 0x8C140731, // 000E GETMET R5 R3 K49
+ 0x7C140200, // 000F CALL R5 1
+ 0x7C100200, // 0010 CALL R4 1
+ 0xA8020013, // 0011 EXBLK 0 #0026
+ 0x5C140800, // 0012 MOVE R5 R4
+ 0x7C140000, // 0013 CALL R5 0
+ 0x88180128, // 0014 GETMBR R6 R0 K40
+ 0x8C180D29, // 0015 GETMET R6 R6 K41
+ 0x5C200A00, // 0016 MOVE R8 R5
+ 0x7C180400, // 0017 CALL R6 2
+ 0x741A000B, // 0018 JMPT R6 #0025
+ 0x94180605, // 0019 GETIDX R6 R3 R5
+ 0x8C1C010F, // 001A GETMET R7 R0 K15
+ 0x5C240C00, // 001B MOVE R9 R6
+ 0x58280011, // 001C LDCONST R10 K17
+ 0x7C1C0600, // 001D CALL R7 3
+ 0x781E0005, // 001E JMPF R7 #0025
+ 0x881C0128, // 001F GETMBR R7 R0 K40
+ 0x8C200112, // 0020 GETMET R8 R0 K18
+ 0x5C280C00, // 0021 MOVE R10 R6
+ 0x582C0011, // 0022 LDCONST R11 K17
+ 0x7C200600, // 0023 CALL R8 3
+ 0x981C0A08, // 0024 SETIDX R7 R5 R8
+ 0x7001FFEB, // 0025 JMP #0012
+ 0x58100032, // 0026 LDCONST R4 K50
+ 0xAC100200, // 0027 CATCH R4 1 0
+ 0xB0080000, // 0028 RAISE 2 R0 R0
+ 0x600C0003, // 0029 GETGBL R3 G3
+ 0x5C100400, // 002A MOVE R4 R2
+ 0x7C0C0200, // 002B CALL R3 1
+ 0x5C080600, // 002C MOVE R2 R3
+ 0x7001FFD5, // 002D JMP #0004
+ 0x80000000, // 002E RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+be_local_closure(class_parameterized_object_init, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_parameterized_object, /* shared constants */
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[18]) { /* code */
+ 0x4C080000, // 0000 LDNIL R2
+ 0x1C080202, // 0001 EQ R2 R1 R2
+ 0x740A0004, // 0002 JMPT R2 #0008
+ 0x60080004, // 0003 GETGBL R2 G4
+ 0x5C0C0200, // 0004 MOVE R3 R1
+ 0x7C080200, // 0005 CALL R2 1
+ 0x20080520, // 0006 NE R2 R2 K32
+ 0x780A0000, // 0007 JMPF R2 #0009
+ 0xB0062933, // 0008 RAISE 1 K20 K51
+ 0x90025601, // 0009 SETMBR R0 K43 R1
+ 0x60080013, // 000A GETGBL R2 G19
+ 0x7C080000, // 000B CALL R2 0
+ 0x90025002, // 000C SETMBR R0 K40 R2
+ 0x50080000, // 000D LDBOOL R2 0 0
+ 0x90025A02, // 000E SETMBR R0 K45 R2
+ 0x8C080134, // 000F GETMET R2 R0 K52
+ 0x7C080200, // 0010 CALL R2 1
+ 0x80000000, // 0011 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _fix_time_ms
+********************************************************************/
+be_local_closure(class_parameterized_object__fix_time_ms, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_parameterized_object, /* shared constants */
+ be_str_weak(_fix_time_ms),
+ &be_const_str_solidified,
+ ( &(const binstruction[11]) { /* code */
+ 0x4C080000, // 0000 LDNIL R2
+ 0x1C080202, // 0001 EQ R2 R1 R2
+ 0x780A0001, // 0002 JMPF R2 #0005
+ 0x8808012B, // 0003 GETMBR R2 R0 K43
+ 0x8804052C, // 0004 GETMBR R1 R2 K44
+ 0x8808012E, // 0005 GETMBR R2 R0 K46
+ 0x4C0C0000, // 0006 LDNIL R3
+ 0x1C080403, // 0007 EQ R2 R2 R3
+ 0x780A0000, // 0008 JMPF R2 #000A
+ 0x90025C01, // 0009 SETMBR R0 K46 R1
+ 0x80040200, // 000A RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: has_param
+********************************************************************/
+be_local_closure(class_parameterized_object_has_param, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_parameterized_object, /* shared constants */
+ be_str_weak(has_param),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 6]) { /* code */
+ 0x8C08010C, // 0000 GETMET R2 R0 K12
+ 0x5C100200, // 0001 MOVE R4 R1
+ 0x7C080400, // 0002 CALL R2 2
+ 0x4C0C0000, // 0003 LDNIL R3
+ 0x20080403, // 0004 NE R2 R2 R3
+ 0x80040400, // 0005 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: ==
+********************************************************************/
+be_local_closure(class_parameterized_object__X3D_X3D, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_parameterized_object, /* shared constants */
+ be_str_weak(_X3D_X3D),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 9]) { /* code */
+ 0xA40A5E00, // 0000 IMPORT R2 K47
+ 0x8C0C0535, // 0001 GETMET R3 R2 K53
+ 0x5C140000, // 0002 MOVE R5 R0
+ 0x7C0C0400, // 0003 CALL R3 2
+ 0x8C100535, // 0004 GETMET R4 R2 K53
+ 0x5C180200, // 0005 MOVE R6 R1
+ 0x7C100400, // 0006 CALL R4 2
+ 0x1C0C0604, // 0007 EQ R3 R3 R4
+ 0x80040600, // 0008 RET 1 R3
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: set_param
+********************************************************************/
+be_local_closure(class_parameterized_object_set_param, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 3, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_parameterized_object, /* shared constants */
+ be_str_weak(set_param),
+ &be_const_str_solidified,
+ ( &(const binstruction[24]) { /* code */
+ 0x8C0C0108, // 0000 GETMET R3 R0 K8
+ 0x5C140200, // 0001 MOVE R5 R1
+ 0x7C0C0400, // 0002 CALL R3 2
+ 0x740E0001, // 0003 JMPT R3 #0006
+ 0x500C0000, // 0004 LDBOOL R3 0 0
+ 0x80040600, // 0005 RET 1 R3
+ 0xA8020008, // 0006 EXBLK 0 #0010
+ 0x8C0C0109, // 0007 GETMET R3 R0 K9
+ 0x5C140200, // 0008 MOVE R5 R1
+ 0x5C180400, // 0009 MOVE R6 R2
+ 0x7C0C0600, // 000A CALL R3 3
+ 0x500C0200, // 000B LDBOOL R3 1 0
+ 0xA8040001, // 000C EXBLK 1 1
+ 0x80040600, // 000D RET 1 R3
+ 0xA8040001, // 000E EXBLK 1 1
+ 0x70020006, // 000F JMP #0017
+ 0x580C0014, // 0010 LDCONST R3 K20
+ 0xAC0C0201, // 0011 CATCH R3 1 1
+ 0x70020002, // 0012 JMP #0016
+ 0x50100000, // 0013 LDBOOL R4 0 0
+ 0x80040800, // 0014 RET 1 R4
+ 0x70020000, // 0015 JMP #0017
+ 0xB0080000, // 0016 RAISE 2 R0 R0
+ 0x80000000, // 0017 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: on_param_changed
+********************************************************************/
+be_local_closure(class_parameterized_object_on_param_changed, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 3, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_parameterized_object, /* shared constants */
+ be_str_weak(on_param_changed),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 1]) { /* code */
+ 0x80000000, // 0000 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: !=
+********************************************************************/
+be_local_closure(class_parameterized_object__X21_X3D, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_parameterized_object, /* shared constants */
+ be_str_weak(_X21_X3D),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 5]) { /* code */
+ 0x1C080001, // 0000 EQ R2 R0 R1
+ 0x780A0000, // 0001 JMPF R2 #0003
+ 0x50080001, // 0002 LDBOOL R2 0 1
+ 0x50080200, // 0003 LDBOOL R2 1 0
+ 0x80040400, // 0004 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _set_parameter_value
+********************************************************************/
+be_local_closure(class_parameterized_object__set_parameter_value, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 3, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_parameterized_object, /* shared constants */
+ be_str_weak(_set_parameter_value),
+ &be_const_str_solidified,
+ ( &(const binstruction[17]) { /* code */
+ 0xB80E1A00, // 0000 GETNGBL R3 K13
+ 0x8C0C070E, // 0001 GETMET R3 R3 K14
+ 0x5C140400, // 0002 MOVE R5 R2
+ 0x7C0C0400, // 0003 CALL R3 2
+ 0x740E0004, // 0004 JMPT R3 #000A
+ 0x8C0C0136, // 0005 GETMET R3 R0 K54
+ 0x5C140200, // 0006 MOVE R5 R1
+ 0x5C180400, // 0007 MOVE R6 R2
+ 0x7C0C0600, // 0008 CALL R3 3
+ 0x5C080600, // 0009 MOVE R2 R3
+ 0x880C0128, // 000A GETMBR R3 R0 K40
+ 0x980C0202, // 000B SETIDX R3 R1 R2
+ 0x8C0C0137, // 000C GETMET R3 R0 K55
+ 0x5C140200, // 000D MOVE R5 R1
+ 0x5C180400, // 000E MOVE R6 R2
+ 0x7C0C0600, // 000F CALL R3 3
+ 0x80000000, // 0010 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: tobool
+********************************************************************/
+be_local_closure(class_parameterized_object_tobool, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_parameterized_object, /* shared constants */
+ be_str_weak(tobool),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x50040200, // 0000 LDBOOL R1 1 0
+ 0x80040200, // 0001 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: tostring
+********************************************************************/
+be_local_closure(class_parameterized_object_tostring, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 1, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_parameterized_object, /* shared constants */
+ be_str_weak(tostring),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0x60040018, // 0000 GETGBL R1 G24
+ 0x58080038, // 0001 LDCONST R2 K56
+ 0x600C0005, // 0002 GETGBL R3 G5
+ 0x5C100000, // 0003 MOVE R4 R0
+ 0x7C0C0200, // 0004 CALL R3 1
+ 0x7C040400, // 0005 CALL R1 2
+ 0x80040200, // 0006 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: resolve_value
+********************************************************************/
+be_local_closure(class_parameterized_object_resolve_value, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 4, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_parameterized_object, /* shared constants */
+ be_str_weak(resolve_value),
+ &be_const_str_solidified,
+ ( &(const binstruction[34]) { /* code */
+ 0xB8121A00, // 0000 GETNGBL R4 K13
+ 0x8C10090E, // 0001 GETMET R4 R4 K14
+ 0x5C180200, // 0002 MOVE R6 R1
+ 0x7C100400, // 0003 CALL R4 2
+ 0x7812001A, // 0004 JMPF R4 #0020
+ 0x8C100339, // 0005 GETMET R4 R1 K57
+ 0x5C180400, // 0006 MOVE R6 R2
+ 0x5C1C0600, // 0007 MOVE R7 R3
+ 0x7C100600, // 0008 CALL R4 3
+ 0x4C140000, // 0009 LDNIL R5
+ 0x1C140805, // 000A EQ R5 R4 R5
+ 0x78160011, // 000B JMPF R5 #001E
+ 0x8C14010C, // 000C GETMET R5 R0 K12
+ 0x5C1C0400, // 000D MOVE R7 R2
+ 0x7C140400, // 000E CALL R5 2
+ 0x8C18010F, // 000F GETMET R6 R0 K15
+ 0x5C200A00, // 0010 MOVE R8 R5
+ 0x58240010, // 0011 LDCONST R9 K16
+ 0x7C180600, // 0012 CALL R6 3
+ 0x741A0009, // 0013 JMPT R6 #001E
+ 0x8C18010F, // 0014 GETMET R6 R0 K15
+ 0x5C200A00, // 0015 MOVE R8 R5
+ 0x58240011, // 0016 LDCONST R9 K17
+ 0x7C180600, // 0017 CALL R6 3
+ 0x781A0004, // 0018 JMPF R6 #001E
+ 0x8C180112, // 0019 GETMET R6 R0 K18
+ 0x5C200A00, // 001A MOVE R8 R5
+ 0x58240011, // 001B LDCONST R9 K17
+ 0x7C180600, // 001C CALL R6 3
+ 0x5C100C00, // 001D MOVE R4 R6
+ 0x80040800, // 001E RET 1 R4
+ 0x70020000, // 001F JMP #0021
+ 0x80040200, // 0020 RET 1 R1
+ 0x80000000, // 0021 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_param_value
+********************************************************************/
+be_local_closure(class_parameterized_object_get_param_value, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_parameterized_object, /* shared constants */
+ be_str_weak(get_param_value),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 4]) { /* code */
+ 0x8C08013A, // 0000 GETMET R2 R0 K58
+ 0x5C100200, // 0001 MOVE R4 R1
+ 0x7C080400, // 0002 CALL R2 2
+ 0x80040400, // 0003 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _get_param_def
+********************************************************************/
+be_local_closure(class_parameterized_object__get_param_def, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_parameterized_object, /* shared constants */
+ be_str_weak(_get_param_def),
+ &be_const_str_solidified,
+ ( &(const binstruction[26]) { /* code */
+ 0xA40A5E00, // 0000 IMPORT R2 K47
+ 0x600C0006, // 0001 GETGBL R3 G6
+ 0x5C100000, // 0002 MOVE R4 R0
+ 0x7C0C0200, // 0003 CALL R3 1
+ 0x4C100000, // 0004 LDNIL R4
+ 0x20100604, // 0005 NE R4 R3 R4
+ 0x78120010, // 0006 JMPF R4 #0018
+ 0x8C100529, // 0007 GETMET R4 R2 K41
+ 0x5C180600, // 0008 MOVE R6 R3
+ 0x581C0030, // 0009 LDCONST R7 K48
+ 0x7C100600, // 000A CALL R4 3
+ 0x78120006, // 000B JMPF R4 #0013
+ 0x88100730, // 000C GETMBR R4 R3 K48
+ 0x8C140929, // 000D GETMET R5 R4 K41
+ 0x5C1C0200, // 000E MOVE R7 R1
+ 0x7C140400, // 000F CALL R5 2
+ 0x78160001, // 0010 JMPF R5 #0013
+ 0x94140801, // 0011 GETIDX R5 R4 R1
+ 0x80040A00, // 0012 RET 1 R5
+ 0x60100003, // 0013 GETGBL R4 G3
+ 0x5C140600, // 0014 MOVE R5 R3
+ 0x7C100200, // 0015 CALL R4 1
+ 0x5C0C0800, // 0016 MOVE R3 R4
+ 0x7001FFEB, // 0017 JMP #0004
+ 0x4C100000, // 0018 LDNIL R4
+ 0x80040800, // 0019 RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_param
+********************************************************************/
+be_local_closure(class_parameterized_object_get_param, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 3, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_parameterized_object, /* shared constants */
+ be_str_weak(get_param),
+ &be_const_str_solidified,
+ ( &(const binstruction[26]) { /* code */
+ 0x880C0128, // 0000 GETMBR R3 R0 K40
+ 0x8C0C0729, // 0001 GETMET R3 R3 K41
+ 0x5C140200, // 0002 MOVE R5 R1
+ 0x7C0C0400, // 0003 CALL R3 2
+ 0x780E0002, // 0004 JMPF R3 #0008
+ 0x880C0128, // 0005 GETMBR R3 R0 K40
+ 0x940C0601, // 0006 GETIDX R3 R3 R1
+ 0x80040600, // 0007 RET 1 R3
+ 0x8C0C010C, // 0008 GETMET R3 R0 K12
+ 0x5C140200, // 0009 MOVE R5 R1
+ 0x7C0C0400, // 000A CALL R3 2
+ 0x4C100000, // 000B LDNIL R4
+ 0x20100604, // 000C NE R4 R3 R4
+ 0x7812000A, // 000D JMPF R4 #0019
+ 0x8C10010F, // 000E GETMET R4 R0 K15
+ 0x5C180600, // 000F MOVE R6 R3
+ 0x581C0011, // 0010 LDCONST R7 K17
+ 0x7C100600, // 0011 CALL R4 3
+ 0x78120005, // 0012 JMPF R4 #0019
+ 0x8C100112, // 0013 GETMET R4 R0 K18
+ 0x5C180600, // 0014 MOVE R6 R3
+ 0x581C0011, // 0015 LDCONST R7 K17
+ 0x5C200400, // 0016 MOVE R8 R2
+ 0x7C100800, // 0017 CALL R4 4
+ 0x80040800, // 0018 RET 1 R4
+ 0x80040400, // 0019 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified class: parameterized_object
+********************************************************************/
+be_local_class(parameterized_object,
+ 4,
+ NULL,
+ be_nested_map(30,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(constraint_find, 10), be_const_static_closure(class_parameterized_object_constraint_find_closure) },
+ { be_const_key_weak(setmember, 20), be_const_closure(class_parameterized_object_setmember_closure) },
+ { be_const_key_weak(get_param, -1), be_const_closure(class_parameterized_object_get_param_closure) },
+ { be_const_key_weak(values, -1), be_const_var(0) },
+ { be_const_key_weak(update, -1), be_const_closure(class_parameterized_object_update_closure) },
+ { be_const_key_weak(_TYPES, 18), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(7,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_nested_str_weak(int),
+ be_nested_str_weak(string),
+ be_nested_str_weak(bytes),
+ be_nested_str_weak(bool),
+ be_nested_str_weak(any),
+ be_nested_str_weak(instance),
+ be_nested_str_weak(function),
+ })) ) } )) },
+ { be_const_key_weak(_resolve_parameter_value, -1), be_const_closure(class_parameterized_object__resolve_parameter_value_closure) },
+ { be_const_key_weak(constraint_mask, 21), be_const_static_closure(class_parameterized_object_constraint_mask_closure) },
+ { be_const_key_weak(_get_param_def, -1), be_const_closure(class_parameterized_object__get_param_def_closure) },
+ { be_const_key_weak(get_param_value, -1), be_const_closure(class_parameterized_object_get_param_value_closure) },
+ { be_const_key_weak(_MASK, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(6,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_nested_str_weak(min),
+ be_nested_str_weak(max),
+ be_nested_str_weak(default),
+ be_nested_str_weak(type),
+ be_nested_str_weak(enum),
+ be_nested_str_weak(nillable),
+ })) ) } )) },
+ { be_const_key_weak(start, -1), be_const_closure(class_parameterized_object_start_closure) },
+ { be_const_key_weak(is_running, -1), be_const_var(3) },
+ { be_const_key_weak(_init_parameter_values, -1), be_const_closure(class_parameterized_object__init_parameter_values_closure) },
+ { be_const_key_weak(has_param, 13), be_const_closure(class_parameterized_object_has_param_closure) },
+ { be_const_key_weak(init, -1), be_const_closure(class_parameterized_object_init_closure) },
+ { be_const_key_weak(_fix_time_ms, -1), be_const_closure(class_parameterized_object__fix_time_ms_closure) },
+ { be_const_key_weak(stop, 14), be_const_closure(class_parameterized_object_stop_closure) },
+ { be_const_key_weak(_X3D_X3D, -1), be_const_closure(class_parameterized_object__X3D_X3D_closure) },
+ { be_const_key_weak(set_param, -1), be_const_closure(class_parameterized_object_set_param_closure) },
+ { be_const_key_weak(_X21_X3D, 26), be_const_closure(class_parameterized_object__X21_X3D_closure) },
+ { be_const_key_weak(on_param_changed, -1), be_const_closure(class_parameterized_object_on_param_changed_closure) },
+ { be_const_key_weak(_set_parameter_value, -1), be_const_closure(class_parameterized_object__set_parameter_value_closure) },
+ { be_const_key_weak(engine, -1), be_const_var(1) },
+ { be_const_key_weak(tobool, -1), be_const_closure(class_parameterized_object_tobool_closure) },
+ { be_const_key_weak(tostring, -1), be_const_closure(class_parameterized_object_tostring_closure) },
+ { be_const_key_weak(member, 12), be_const_closure(class_parameterized_object_member_closure) },
+ { be_const_key_weak(start_time, 9), be_const_var(2) },
+ { be_const_key_weak(_validate_param, 8), be_const_closure(class_parameterized_object__validate_param_closure) },
+ { be_const_key_weak(resolve_value, 2), be_const_closure(class_parameterized_object_resolve_value_closure) },
+ })),
+ be_str_weak(parameterized_object)
+);
// compact class 'AnimationEngine' ktab size: 90, total: 211 (saved 968 bytes)
static const bvalue be_ktab_class_AnimationEngine[90] = {
/* K0 */ be_nested_str_weak(is_running),
@@ -9891,2382 +13032,6 @@ be_local_class(AnimationEngine,
be_str_weak(AnimationEngine)
);
-/********************************************************************
-** Solidified function: pulsating_animation
-********************************************************************/
-be_local_closure(pulsating_animation, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(animation),
- /* K1 */ be_nested_str_weak(breathe_animation),
- /* K2 */ be_nested_str_weak(curve_factor),
- /* K3 */ be_const_int(1),
- /* K4 */ be_nested_str_weak(period),
- }),
- be_str_weak(pulsating_animation),
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0xB8060000, // 0000 GETNGBL R1 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x5C0C0000, // 0002 MOVE R3 R0
- 0x7C040400, // 0003 CALL R1 2
- 0x90060503, // 0004 SETMBR R1 K2 K3
- 0x540A03E7, // 0005 LDINT R2 1000
- 0x90060802, // 0006 SETMBR R1 K4 R2
- 0x80040200, // 0007 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: bounce
-********************************************************************/
-be_local_closure(bounce, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(animation),
- /* K1 */ be_nested_str_weak(oscillator_value),
- /* K2 */ be_nested_str_weak(form),
- }),
- be_str_weak(bounce),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0xB8060000, // 0000 GETNGBL R1 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x5C0C0000, // 0002 MOVE R3 R0
- 0x7C040400, // 0003 CALL R1 2
- 0x540A0008, // 0004 LDINT R2 9
- 0x90060402, // 0005 SETMBR R1 K2 R2
- 0x80040200, // 0006 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: sine_osc
-********************************************************************/
-be_local_closure(sine_osc, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(animation),
- /* K1 */ be_nested_str_weak(oscillator_value),
- /* K2 */ be_nested_str_weak(form),
- }),
- be_str_weak(sine_osc),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0xB8060000, // 0000 GETNGBL R1 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x5C0C0000, // 0002 MOVE R3 R0
- 0x7C040400, // 0003 CALL R1 2
- 0x540A0004, // 0004 LDINT R2 5
- 0x90060402, // 0005 SETMBR R1 K2 R2
- 0x80040200, // 0006 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-// compact class 'EventManager' ktab size: 30, total: 61 (saved 248 bytes)
-static const bvalue be_ktab_class_EventManager[30] = {
- /* K0 */ be_nested_str_weak(event_name),
- /* K1 */ be_nested_str_weak(_X2A),
- /* K2 */ be_nested_str_weak(global_handlers),
- /* K3 */ be_nested_str_weak(find),
- /* K4 */ be_nested_str_weak(remove),
- /* K5 */ be_nested_str_weak(handlers),
- /* K6 */ be_nested_str_weak(set_active),
- /* K7 */ be_nested_str_weak(stop_iteration),
- /* K8 */ be_nested_str_weak(push),
- /* K9 */ be_nested_str_weak(get_info),
- /* K10 */ be_nested_str_weak(keys),
- /* K11 */ be_nested_str_weak(event_queue),
- /* K12 */ be_nested_str_weak(is_processing),
- /* K13 */ be_nested_str_weak(clear),
- /* K14 */ be_const_int(1),
- /* K15 */ be_const_int(0),
- /* K16 */ be_nested_str_weak(priority),
- /* K17 */ be_nested_str_weak(animation),
- /* K18 */ be_nested_str_weak(event_handler),
- /* K19 */ be_nested_str_weak(_sort_handlers),
- /* K20 */ be_nested_str_weak(contains),
- /* K21 */ be_nested_str_weak(name),
- /* K22 */ be_nested_str_weak(data),
- /* K23 */ be_nested_str_weak(is_active),
- /* K24 */ be_nested_str_weak(execute),
- /* K25 */ be_nested_str_weak(Event_X20processing_X20error_X3A),
- /* K26 */ be_nested_str_weak(_process_queued_events),
- /* K27 */ be_nested_str_weak(size),
- /* K28 */ be_nested_str_weak(pop),
- /* K29 */ be_nested_str_weak(trigger_event),
-};
-
-
-extern const bclass be_class_EventManager;
-
-/********************************************************************
-** Solidified function: unregister_handler
-********************************************************************/
-be_local_closure(class_EventManager_unregister_handler, /* name */
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_EventManager, /* shared constants */
- be_str_weak(unregister_handler),
- &be_const_str_solidified,
- ( &(const binstruction[32]) { /* code */
- 0x88080300, // 0000 GETMBR R2 R1 K0
- 0x1C080501, // 0001 EQ R2 R2 K1
- 0x780A000B, // 0002 JMPF R2 #000F
- 0x88080102, // 0003 GETMBR R2 R0 K2
- 0x8C080503, // 0004 GETMET R2 R2 K3
- 0x5C100200, // 0005 MOVE R4 R1
- 0x7C080400, // 0006 CALL R2 2
- 0x4C0C0000, // 0007 LDNIL R3
- 0x200C0403, // 0008 NE R3 R2 R3
- 0x780E0003, // 0009 JMPF R3 #000E
- 0x880C0102, // 000A GETMBR R3 R0 K2
- 0x8C0C0704, // 000B GETMET R3 R3 K4
- 0x5C140400, // 000C MOVE R5 R2
- 0x7C0C0400, // 000D CALL R3 2
- 0x7002000F, // 000E JMP #001F
- 0x88080105, // 000F GETMBR R2 R0 K5
- 0x8C080503, // 0010 GETMET R2 R2 K3
- 0x88100300, // 0011 GETMBR R4 R1 K0
- 0x7C080400, // 0012 CALL R2 2
- 0x4C0C0000, // 0013 LDNIL R3
- 0x200C0403, // 0014 NE R3 R2 R3
- 0x780E0008, // 0015 JMPF R3 #001F
- 0x8C0C0503, // 0016 GETMET R3 R2 K3
- 0x5C140200, // 0017 MOVE R5 R1
- 0x7C0C0400, // 0018 CALL R3 2
- 0x4C100000, // 0019 LDNIL R4
- 0x20100604, // 001A NE R4 R3 R4
- 0x78120002, // 001B JMPF R4 #001F
- 0x8C100504, // 001C GETMET R4 R2 K4
- 0x5C180600, // 001D MOVE R6 R3
- 0x7C100400, // 001E CALL R4 2
- 0x80000000, // 001F RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: set_event_active
-********************************************************************/
-be_local_closure(class_EventManager_set_event_active, /* name */
- be_nested_proto(
- 9, /* nstack */
- 3, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_EventManager, /* shared constants */
- be_str_weak(set_event_active),
- &be_const_str_solidified,
- ( &(const binstruction[21]) { /* code */
- 0x880C0105, // 0000 GETMBR R3 R0 K5
- 0x8C0C0703, // 0001 GETMET R3 R3 K3
- 0x5C140200, // 0002 MOVE R5 R1
- 0x7C0C0400, // 0003 CALL R3 2
- 0x4C100000, // 0004 LDNIL R4
- 0x20100604, // 0005 NE R4 R3 R4
- 0x7812000C, // 0006 JMPF R4 #0014
- 0x60100010, // 0007 GETGBL R4 G16
- 0x5C140600, // 0008 MOVE R5 R3
- 0x7C100200, // 0009 CALL R4 1
- 0xA8020005, // 000A EXBLK 0 #0011
- 0x5C140800, // 000B MOVE R5 R4
- 0x7C140000, // 000C CALL R5 0
- 0x8C180B06, // 000D GETMET R6 R5 K6
- 0x5C200400, // 000E MOVE R8 R2
- 0x7C180400, // 000F CALL R6 2
- 0x7001FFF9, // 0010 JMP #000B
- 0x58100007, // 0011 LDCONST R4 K7
- 0xAC100200, // 0012 CATCH R4 1 0
- 0xB0080000, // 0013 RAISE 2 R0 R0
- 0x80000000, // 0014 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_handlers
-********************************************************************/
-be_local_closure(class_EventManager_get_handlers, /* name */
- be_nested_proto(
- 10, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_EventManager, /* shared constants */
- be_str_weak(get_handlers),
- &be_const_str_solidified,
- ( &(const binstruction[38]) { /* code */
- 0x60080012, // 0000 GETGBL R2 G18
- 0x7C080000, // 0001 CALL R2 0
- 0x600C0010, // 0002 GETGBL R3 G16
- 0x88100102, // 0003 GETMBR R4 R0 K2
- 0x7C0C0200, // 0004 CALL R3 1
- 0xA8020006, // 0005 EXBLK 0 #000D
- 0x5C100600, // 0006 MOVE R4 R3
- 0x7C100000, // 0007 CALL R4 0
- 0x8C140508, // 0008 GETMET R5 R2 K8
- 0x8C1C0909, // 0009 GETMET R7 R4 K9
- 0x7C1C0200, // 000A CALL R7 1
- 0x7C140400, // 000B CALL R5 2
- 0x7001FFF8, // 000C JMP #0006
- 0x580C0007, // 000D LDCONST R3 K7
- 0xAC0C0200, // 000E CATCH R3 1 0
- 0xB0080000, // 000F RAISE 2 R0 R0
- 0x880C0105, // 0010 GETMBR R3 R0 K5
- 0x8C0C0703, // 0011 GETMET R3 R3 K3
- 0x5C140200, // 0012 MOVE R5 R1
- 0x7C0C0400, // 0013 CALL R3 2
- 0x4C100000, // 0014 LDNIL R4
- 0x20100604, // 0015 NE R4 R3 R4
- 0x7812000D, // 0016 JMPF R4 #0025
- 0x60100010, // 0017 GETGBL R4 G16
- 0x5C140600, // 0018 MOVE R5 R3
- 0x7C100200, // 0019 CALL R4 1
- 0xA8020006, // 001A EXBLK 0 #0022
- 0x5C140800, // 001B MOVE R5 R4
- 0x7C140000, // 001C CALL R5 0
- 0x8C180508, // 001D GETMET R6 R2 K8
- 0x8C200B09, // 001E GETMET R8 R5 K9
- 0x7C200200, // 001F CALL R8 1
- 0x7C180400, // 0020 CALL R6 2
- 0x7001FFF8, // 0021 JMP #001B
- 0x58100007, // 0022 LDCONST R4 K7
- 0xAC100200, // 0023 CATCH R4 1 0
- 0xB0080000, // 0024 RAISE 2 R0 R0
- 0x80040400, // 0025 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_registered_events
-********************************************************************/
-be_local_closure(class_EventManager_get_registered_events, /* name */
- be_nested_proto(
- 7, /* nstack */
- 1, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_EventManager, /* shared constants */
- be_str_weak(get_registered_events),
- &be_const_str_solidified,
- ( &(const binstruction[18]) { /* code */
- 0x60040012, // 0000 GETGBL R1 G18
- 0x7C040000, // 0001 CALL R1 0
- 0x60080010, // 0002 GETGBL R2 G16
- 0x880C0105, // 0003 GETMBR R3 R0 K5
- 0x8C0C070A, // 0004 GETMET R3 R3 K10
- 0x7C0C0200, // 0005 CALL R3 1
- 0x7C080200, // 0006 CALL R2 1
- 0xA8020005, // 0007 EXBLK 0 #000E
- 0x5C0C0400, // 0008 MOVE R3 R2
- 0x7C0C0000, // 0009 CALL R3 0
- 0x8C100308, // 000A GETMET R4 R1 K8
- 0x5C180600, // 000B MOVE R6 R3
- 0x7C100400, // 000C CALL R4 2
- 0x7001FFF9, // 000D JMP #0008
- 0x58080007, // 000E LDCONST R2 K7
- 0xAC080200, // 000F CATCH R2 1 0
- 0xB0080000, // 0010 RAISE 2 R0 R0
- 0x80040200, // 0011 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(class_EventManager_init, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_EventManager, /* shared constants */
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0x60040013, // 0000 GETGBL R1 G19
- 0x7C040000, // 0001 CALL R1 0
- 0x90020A01, // 0002 SETMBR R0 K5 R1
- 0x60040012, // 0003 GETGBL R1 G18
- 0x7C040000, // 0004 CALL R1 0
- 0x90020401, // 0005 SETMBR R0 K2 R1
- 0x60040012, // 0006 GETGBL R1 G18
- 0x7C040000, // 0007 CALL R1 0
- 0x90021601, // 0008 SETMBR R0 K11 R1
- 0x50040000, // 0009 LDBOOL R1 0 0
- 0x90021801, // 000A SETMBR R0 K12 R1
- 0x80000000, // 000B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: clear_all_handlers
-********************************************************************/
-be_local_closure(class_EventManager_clear_all_handlers, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_EventManager, /* shared constants */
- be_str_weak(clear_all_handlers),
- &be_const_str_solidified,
- ( &(const binstruction[10]) { /* code */
- 0x88040105, // 0000 GETMBR R1 R0 K5
- 0x8C04030D, // 0001 GETMET R1 R1 K13
- 0x7C040200, // 0002 CALL R1 1
- 0x88040102, // 0003 GETMBR R1 R0 K2
- 0x8C04030D, // 0004 GETMET R1 R1 K13
- 0x7C040200, // 0005 CALL R1 1
- 0x8804010B, // 0006 GETMBR R1 R0 K11
- 0x8C04030D, // 0007 GETMET R1 R1 K13
- 0x7C040200, // 0008 CALL R1 1
- 0x80000000, // 0009 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _sort_handlers
-********************************************************************/
-be_local_closure(class_EventManager__sort_handlers, /* name */
- be_nested_proto(
- 8, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_EventManager, /* shared constants */
- be_str_weak(_sort_handlers),
- &be_const_str_solidified,
- ( &(const binstruction[31]) { /* code */
- 0x60080010, // 0000 GETGBL R2 G16
- 0x600C000C, // 0001 GETGBL R3 G12
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C0C0200, // 0003 CALL R3 1
- 0x040C070E, // 0004 SUB R3 R3 K14
- 0x400E1C03, // 0005 CONNECT R3 K14 R3
- 0x7C080200, // 0006 CALL R2 1
- 0xA8020012, // 0007 EXBLK 0 #001B
- 0x5C0C0400, // 0008 MOVE R3 R2
- 0x7C0C0000, // 0009 CALL R3 0
- 0x94100203, // 000A GETIDX R4 R1 R3
- 0x5C140600, // 000B MOVE R5 R3
- 0x24180B0F, // 000C GT R6 R5 K15
- 0x781A000A, // 000D JMPF R6 #0019
- 0x04180B0E, // 000E SUB R6 R5 K14
- 0x94180206, // 000F GETIDX R6 R1 R6
- 0x88180D10, // 0010 GETMBR R6 R6 K16
- 0x881C0910, // 0011 GETMBR R7 R4 K16
- 0x14180C07, // 0012 LT R6 R6 R7
- 0x781A0004, // 0013 JMPF R6 #0019
- 0x04180B0E, // 0014 SUB R6 R5 K14
- 0x94180206, // 0015 GETIDX R6 R1 R6
- 0x98040A06, // 0016 SETIDX R1 R5 R6
- 0x04140B0E, // 0017 SUB R5 R5 K14
- 0x7001FFF2, // 0018 JMP #000C
- 0x98040A04, // 0019 SETIDX R1 R5 R4
- 0x7001FFEC, // 001A JMP #0008
- 0x58080007, // 001B LDCONST R2 K7
- 0xAC080200, // 001C CATCH R2 1 0
- 0xB0080000, // 001D RAISE 2 R0 R0
- 0x80000000, // 001E RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: register_handler
-********************************************************************/
-be_local_closure(class_EventManager_register_handler, /* name */
- be_nested_proto(
- 13, /* nstack */
- 6, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_EventManager, /* shared constants */
- be_str_weak(register_handler),
- &be_const_str_solidified,
- ( &(const binstruction[37]) { /* code */
- 0xB81A2200, // 0000 GETNGBL R6 K17
- 0x8C180D12, // 0001 GETMET R6 R6 K18
- 0x5C200200, // 0002 MOVE R8 R1
- 0x5C240400, // 0003 MOVE R9 R2
- 0x5C280600, // 0004 MOVE R10 R3
- 0x5C2C0800, // 0005 MOVE R11 R4
- 0x5C300A00, // 0006 MOVE R12 R5
- 0x7C180C00, // 0007 CALL R6 6
- 0x1C1C0301, // 0008 EQ R7 R1 K1
- 0x781E0007, // 0009 JMPF R7 #0012
- 0x881C0102, // 000A GETMBR R7 R0 K2
- 0x8C1C0F08, // 000B GETMET R7 R7 K8
- 0x5C240C00, // 000C MOVE R9 R6
- 0x7C1C0400, // 000D CALL R7 2
- 0x8C1C0113, // 000E GETMET R7 R0 K19
- 0x88240102, // 000F GETMBR R9 R0 K2
- 0x7C1C0400, // 0010 CALL R7 2
- 0x70020011, // 0011 JMP #0024
- 0x881C0105, // 0012 GETMBR R7 R0 K5
- 0x8C1C0F14, // 0013 GETMET R7 R7 K20
- 0x5C240200, // 0014 MOVE R9 R1
- 0x7C1C0400, // 0015 CALL R7 2
- 0x741E0003, // 0016 JMPT R7 #001B
- 0x881C0105, // 0017 GETMBR R7 R0 K5
- 0x60200012, // 0018 GETGBL R8 G18
- 0x7C200000, // 0019 CALL R8 0
- 0x981C0208, // 001A SETIDX R7 R1 R8
- 0x881C0105, // 001B GETMBR R7 R0 K5
- 0x941C0E01, // 001C GETIDX R7 R7 R1
- 0x8C1C0F08, // 001D GETMET R7 R7 K8
- 0x5C240C00, // 001E MOVE R9 R6
- 0x7C1C0400, // 001F CALL R7 2
- 0x8C1C0113, // 0020 GETMET R7 R0 K19
- 0x88240105, // 0021 GETMBR R9 R0 K5
- 0x94241201, // 0022 GETIDX R9 R9 R1
- 0x7C1C0400, // 0023 CALL R7 2
- 0x80040C00, // 0024 RET 1 R6
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: trigger_event
-********************************************************************/
-be_local_closure(class_EventManager_trigger_event, /* name */
- be_nested_proto(
- 9, /* nstack */
- 3, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_EventManager, /* shared constants */
- be_str_weak(trigger_event),
- &be_const_str_solidified,
- ( &(const binstruction[69]) { /* code */
- 0x880C010C, // 0000 GETMBR R3 R0 K12
- 0x780E0007, // 0001 JMPF R3 #000A
- 0x880C010B, // 0002 GETMBR R3 R0 K11
- 0x8C0C0708, // 0003 GETMET R3 R3 K8
- 0x60140013, // 0004 GETGBL R5 G19
- 0x7C140000, // 0005 CALL R5 0
- 0x98162A01, // 0006 SETIDX R5 K21 R1
- 0x98162C02, // 0007 SETIDX R5 K22 R2
- 0x7C0C0400, // 0008 CALL R3 2
- 0x80000600, // 0009 RET 0
- 0x500C0200, // 000A LDBOOL R3 1 0
- 0x90021803, // 000B SETMBR R0 K12 R3
- 0xA8020029, // 000C EXBLK 0 #0037
- 0x600C0010, // 000D GETGBL R3 G16
- 0x88100102, // 000E GETMBR R4 R0 K2
- 0x7C0C0200, // 000F CALL R3 1
- 0xA802000A, // 0010 EXBLK 0 #001C
- 0x5C100600, // 0011 MOVE R4 R3
- 0x7C100000, // 0012 CALL R4 0
- 0x88140917, // 0013 GETMBR R5 R4 K23
- 0x78160005, // 0014 JMPF R5 #001B
- 0x8C140918, // 0015 GETMET R5 R4 K24
- 0x601C0013, // 0016 GETGBL R7 G19
- 0x7C1C0000, // 0017 CALL R7 0
- 0x981E0001, // 0018 SETIDX R7 K0 R1
- 0x981E2C02, // 0019 SETIDX R7 K22 R2
- 0x7C140400, // 001A CALL R5 2
- 0x7001FFF4, // 001B JMP #0011
- 0x580C0007, // 001C LDCONST R3 K7
- 0xAC0C0200, // 001D CATCH R3 1 0
- 0xB0080000, // 001E RAISE 2 R0 R0
- 0x880C0105, // 001F GETMBR R3 R0 K5
- 0x8C0C0703, // 0020 GETMET R3 R3 K3
- 0x5C140200, // 0021 MOVE R5 R1
- 0x7C0C0400, // 0022 CALL R3 2
- 0x4C100000, // 0023 LDNIL R4
- 0x20100604, // 0024 NE R4 R3 R4
- 0x7812000E, // 0025 JMPF R4 #0035
- 0x60100010, // 0026 GETGBL R4 G16
- 0x5C140600, // 0027 MOVE R5 R3
- 0x7C100200, // 0028 CALL R4 1
- 0xA8020007, // 0029 EXBLK 0 #0032
- 0x5C140800, // 002A MOVE R5 R4
- 0x7C140000, // 002B CALL R5 0
- 0x88180B17, // 002C GETMBR R6 R5 K23
- 0x781A0002, // 002D JMPF R6 #0031
- 0x8C180B18, // 002E GETMET R6 R5 K24
- 0x5C200400, // 002F MOVE R8 R2
- 0x7C180400, // 0030 CALL R6 2
- 0x7001FFF7, // 0031 JMP #002A
- 0x58100007, // 0032 LDCONST R4 K7
- 0xAC100200, // 0033 CATCH R4 1 0
- 0xB0080000, // 0034 RAISE 2 R0 R0
- 0xA8040001, // 0035 EXBLK 1 1
- 0x70020008, // 0036 JMP #0040
- 0xAC0C0002, // 0037 CATCH R3 0 2
- 0x70020005, // 0038 JMP #003F
- 0x60140001, // 0039 GETGBL R5 G1
- 0x58180019, // 003A LDCONST R6 K25
- 0x5C1C0600, // 003B MOVE R7 R3
- 0x5C200800, // 003C MOVE R8 R4
- 0x7C140600, // 003D CALL R5 3
- 0x70020000, // 003E JMP #0040
- 0xB0080000, // 003F RAISE 2 R0 R0
- 0x500C0000, // 0040 LDBOOL R3 0 0
- 0x90021803, // 0041 SETMBR R0 K12 R3
- 0x8C0C011A, // 0042 GETMET R3 R0 K26
- 0x7C0C0200, // 0043 CALL R3 1
- 0x80000000, // 0044 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _process_queued_events
-********************************************************************/
-be_local_closure(class_EventManager__process_queued_events, /* name */
- be_nested_proto(
- 6, /* nstack */
- 1, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_EventManager, /* shared constants */
- be_str_weak(_process_queued_events),
- &be_const_str_solidified,
- ( &(const binstruction[15]) { /* code */
- 0x8804010B, // 0000 GETMBR R1 R0 K11
- 0x8C04031B, // 0001 GETMET R1 R1 K27
- 0x7C040200, // 0002 CALL R1 1
- 0x2404030F, // 0003 GT R1 R1 K15
- 0x78060008, // 0004 JMPF R1 #000E
- 0x8804010B, // 0005 GETMBR R1 R0 K11
- 0x8C04031C, // 0006 GETMET R1 R1 K28
- 0x580C000F, // 0007 LDCONST R3 K15
- 0x7C040400, // 0008 CALL R1 2
- 0x8C08011D, // 0009 GETMET R2 R0 K29
- 0x94100315, // 000A GETIDX R4 R1 K21
- 0x94140316, // 000B GETIDX R5 R1 K22
- 0x7C080600, // 000C CALL R2 3
- 0x7001FFF1, // 000D JMP #0000
- 0x80000000, // 000E RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: EventManager
-********************************************************************/
-be_local_class(EventManager,
- 4,
- NULL,
- be_nested_map(14,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(unregister_handler, -1), be_const_closure(class_EventManager_unregister_handler_closure) },
- { be_const_key_weak(set_event_active, -1), be_const_closure(class_EventManager_set_event_active_closure) },
- { be_const_key_weak(handlers, -1), be_const_var(0) },
- { be_const_key_weak(init, -1), be_const_closure(class_EventManager_init_closure) },
- { be_const_key_weak(trigger_event, -1), be_const_closure(class_EventManager_trigger_event_closure) },
- { be_const_key_weak(get_handlers, 3), be_const_closure(class_EventManager_get_handlers_closure) },
- { be_const_key_weak(clear_all_handlers, -1), be_const_closure(class_EventManager_clear_all_handlers_closure) },
- { be_const_key_weak(event_queue, -1), be_const_var(2) },
- { be_const_key_weak(_sort_handlers, -1), be_const_closure(class_EventManager__sort_handlers_closure) },
- { be_const_key_weak(is_processing, 7), be_const_var(3) },
- { be_const_key_weak(global_handlers, -1), be_const_var(1) },
- { be_const_key_weak(register_handler, -1), be_const_closure(class_EventManager_register_handler_closure) },
- { be_const_key_weak(get_registered_events, 4), be_const_closure(class_EventManager_get_registered_events_closure) },
- { be_const_key_weak(_process_queued_events, -1), be_const_closure(class_EventManager__process_queued_events_closure) },
- })),
- be_str_weak(EventManager)
-);
-
-/********************************************************************
-** Solidified function: elastic
-********************************************************************/
-be_local_closure(elastic, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(animation),
- /* K1 */ be_nested_str_weak(oscillator_value),
- /* K2 */ be_nested_str_weak(form),
- }),
- be_str_weak(elastic),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0xB8060000, // 0000 GETNGBL R1 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x5C0C0000, // 0002 MOVE R3 R0
- 0x7C040400, // 0003 CALL R1 2
- 0x540A0007, // 0004 LDINT R2 8
- 0x90060402, // 0005 SETMBR R1 K2 R2
- 0x80040200, // 0006 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: wave_rainbow_sine
-********************************************************************/
-be_local_closure(wave_rainbow_sine, /* name */
- be_nested_proto(
- 5, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[14]) { /* constants */
- /* K0 */ be_nested_str_weak(animation),
- /* K1 */ be_nested_str_weak(wave_animation),
- /* K2 */ be_nested_str_weak(rich_palette_color),
- /* K3 */ be_nested_str_weak(colors),
- /* K4 */ be_nested_str_weak(PALETTE_RAINBOW),
- /* K5 */ be_nested_str_weak(period),
- /* K6 */ be_nested_str_weak(transition_type),
- /* K7 */ be_const_int(1),
- /* K8 */ be_nested_str_weak(brightness),
- /* K9 */ be_nested_str_weak(color),
- /* K10 */ be_nested_str_weak(wave_type),
- /* K11 */ be_const_int(0),
- /* K12 */ be_nested_str_weak(frequency),
- /* K13 */ be_nested_str_weak(wave_speed),
- }),
- be_str_weak(wave_rainbow_sine),
- &be_const_str_solidified,
- ( &(const binstruction[23]) { /* code */
- 0xB8060000, // 0000 GETNGBL R1 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x5C0C0000, // 0002 MOVE R3 R0
- 0x7C040400, // 0003 CALL R1 2
- 0xB80A0000, // 0004 GETNGBL R2 K0
- 0x8C080502, // 0005 GETMET R2 R2 K2
- 0x5C100000, // 0006 MOVE R4 R0
- 0x7C080400, // 0007 CALL R2 2
- 0xB80E0000, // 0008 GETNGBL R3 K0
- 0x880C0704, // 0009 GETMBR R3 R3 K4
- 0x900A0603, // 000A SETMBR R2 K3 R3
- 0x540E1387, // 000B LDINT R3 5000
- 0x900A0A03, // 000C SETMBR R2 K5 R3
- 0x900A0D07, // 000D SETMBR R2 K6 K7
- 0x540E00FE, // 000E LDINT R3 255
- 0x900A1003, // 000F SETMBR R2 K8 R3
- 0x90061202, // 0010 SETMBR R1 K9 R2
- 0x9006150B, // 0011 SETMBR R1 K10 K11
- 0x540E001F, // 0012 LDINT R3 32
- 0x90061803, // 0013 SETMBR R1 K12 R3
- 0x540E0031, // 0014 LDINT R3 50
- 0x90061A03, // 0015 SETMBR R1 K13 R3
- 0x80040200, // 0016 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-extern const bclass be_class_parameterized_object;
-// compact class 'parameterized_object' ktab size: 59, total: 123 (saved 512 bytes)
-static const bvalue be_ktab_class_parameterized_object[59] = {
- /* K0 */ be_const_class(be_class_parameterized_object),
- /* K1 */ be_const_int(1),
- /* K2 */ be_const_int(0),
- /* K3 */ be_nested_str_weak(_MASK),
- /* K4 */ be_nested_str_weak(find),
- /* K5 */ be_const_int(2),
- /* K6 */ be_nested_str_weak(_TYPES),
- /* K7 */ be_nested_str_weak(push),
- /* K8 */ be_nested_str_weak(has_param),
- /* K9 */ be_nested_str_weak(_set_parameter_value),
- /* K10 */ be_nested_str_weak(_X27_X25s_X27_X20object_X20has_X20no_X20attribute_X20_X27_X25s_X27),
- /* K11 */ be_nested_str_weak(attribute_error),
- /* K12 */ be_nested_str_weak(_get_param_def),
- /* K13 */ be_nested_str_weak(animation),
- /* K14 */ be_nested_str_weak(is_value_provider),
- /* K15 */ be_nested_str_weak(constraint_mask),
- /* K16 */ be_nested_str_weak(nillable),
- /* K17 */ be_nested_str_weak(default),
- /* K18 */ be_nested_str_weak(constraint_find),
- /* K19 */ be_nested_str_weak(_X27_X25s_X27_X20does_X20not_X20accept_X20nil_X20values),
- /* K20 */ be_nested_str_weak(value_error),
- /* K21 */ be_nested_str_weak(type),
- /* K22 */ be_nested_str_weak(int),
- /* K23 */ be_nested_str_weak(time),
- /* K24 */ be_nested_str_weak(percentage),
- /* K25 */ be_nested_str_weak(color),
- /* K26 */ be_nested_str_weak(palette),
- /* K27 */ be_nested_str_weak(bytes),
- /* K28 */ be_nested_str_weak(any),
- /* K29 */ be_nested_str_weak(real),
- /* K30 */ be_nested_str_weak(math),
- /* K31 */ be_nested_str_weak(round),
- /* K32 */ be_nested_str_weak(instance),
- /* K33 */ be_nested_str_weak(_X27_X25s_X27_X20expects_X20type_X20_X27_X25s_X27_X20but_X20got_X20_X27_X25s_X27_X20_X28value_X3A_X20_X25s_X29),
- /* K34 */ be_nested_str_weak(min),
- /* K35 */ be_nested_str_weak(_X27_X25s_X27_X20value_X20_X25s_X20is_X20below_X20minimum_X20_X25s),
- /* K36 */ be_nested_str_weak(max),
- /* K37 */ be_nested_str_weak(_X27_X25s_X27_X20value_X20_X25s_X20is_X20above_X20maximum_X20_X25s),
- /* K38 */ be_nested_str_weak(enum),
- /* K39 */ be_nested_str_weak(_X27_X25s_X27_X20value_X20_X25s_X20is_X20not_X20in_X20allowed_X20values_X20_X25s),
- /* K40 */ be_nested_str_weak(values),
- /* K41 */ be_nested_str_weak(contains),
- /* K42 */ be_nested_str_weak(resolve_value),
- /* K43 */ be_nested_str_weak(engine),
- /* K44 */ be_nested_str_weak(time_ms),
- /* K45 */ be_nested_str_weak(is_running),
- /* K46 */ be_nested_str_weak(start_time),
- /* K47 */ be_nested_str_weak(introspect),
- /* K48 */ be_nested_str_weak(PARAMS),
- /* K49 */ be_nested_str_weak(keys),
- /* K50 */ be_nested_str_weak(stop_iteration),
- /* K51 */ be_nested_str_weak(missing_X20engine_X20parameter),
- /* K52 */ be_nested_str_weak(_init_parameter_values),
- /* K53 */ be_nested_str_weak(toptr),
- /* K54 */ be_nested_str_weak(_validate_param),
- /* K55 */ be_nested_str_weak(on_param_changed),
- /* K56 */ be_nested_str_weak(_X3Cinstance_X3A_X20_X25s_X3E),
- /* K57 */ be_nested_str_weak(produce_value),
- /* K58 */ be_nested_str_weak(member),
-};
-
-
-extern const bclass be_class_parameterized_object;
-
-/********************************************************************
-** Solidified function: constraint_find
-********************************************************************/
-be_local_closure(class_parameterized_object_constraint_find, /* name */
- be_nested_proto(
- 17, /* nstack */
- 3, /* argc */
- 12, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 2]) {
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_const_int(0),
- /* K1 */ be_const_int(1),
- /* K2 */ be_const_int(2),
- /* K3 */ be_const_int(3),
- /* K4 */ be_nested_str_weak(get),
- }),
- be_str_weak(_skip_typed_value),
- &be_const_str_solidified,
- ( &(const binstruction[47]) { /* code */
- 0x6008000C, // 0000 GETGBL R2 G12
- 0x5C0C0000, // 0001 MOVE R3 R0
- 0x7C080200, // 0002 CALL R2 1
- 0x28080202, // 0003 GE R2 R1 R2
- 0x780A0000, // 0004 JMPF R2 #0006
- 0x80060000, // 0005 RET 1 K0
- 0x94080001, // 0006 GETIDX R2 R0 R1
- 0x540E0005, // 0007 LDINT R3 6
- 0x1C0C0403, // 0008 EQ R3 R2 R3
- 0x780E0001, // 0009 JMPF R3 #000C
- 0x80060200, // 000A RET 1 K1
- 0x70020021, // 000B JMP #002E
- 0x540E0004, // 000C LDINT R3 5
- 0x1C0C0403, // 000D EQ R3 R2 R3
- 0x780E0001, // 000E JMPF R3 #0011
- 0x80060400, // 000F RET 1 K2
- 0x7002001C, // 0010 JMP #002E
- 0x1C0C0500, // 0011 EQ R3 R2 K0
- 0x780E0001, // 0012 JMPF R3 #0015
- 0x80060400, // 0013 RET 1 K2
- 0x70020018, // 0014 JMP #002E
- 0x1C0C0501, // 0015 EQ R3 R2 K1
- 0x780E0001, // 0016 JMPF R3 #0019
- 0x80060600, // 0017 RET 1 K3
- 0x70020014, // 0018 JMP #002E
- 0x1C0C0502, // 0019 EQ R3 R2 K2
- 0x780E0002, // 001A JMPF R3 #001E
- 0x540E0004, // 001B LDINT R3 5
- 0x80040600, // 001C RET 1 R3
- 0x7002000F, // 001D JMP #002E
- 0x1C0C0503, // 001E EQ R3 R2 K3
- 0x780E0004, // 001F JMPF R3 #0025
- 0x000C0301, // 0020 ADD R3 R1 K1
- 0x940C0003, // 0021 GETIDX R3 R0 R3
- 0x000E0403, // 0022 ADD R3 K2 R3
- 0x80040600, // 0023 RET 1 R3
- 0x70020008, // 0024 JMP #002E
- 0x540E0003, // 0025 LDINT R3 4
- 0x1C0C0403, // 0026 EQ R3 R2 R3
- 0x780E0005, // 0027 JMPF R3 #002E
- 0x8C0C0104, // 0028 GETMET R3 R0 K4
- 0x00140301, // 0029 ADD R5 R1 K1
- 0x58180002, // 002A LDCONST R6 K2
- 0x7C0C0600, // 002B CALL R3 3
- 0x000E0603, // 002C ADD R3 K3 R3
- 0x80040600, // 002D RET 1 R3
- 0x80060000, // 002E RET 1 K0
- })
- ),
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_const_int(1),
- /* K1 */ be_const_int(0),
- /* K2 */ be_nested_str_weak(get),
- /* K3 */ be_const_int(2),
- /* K4 */ be_const_int(3),
- /* K5 */ be_nested_str_weak(asstring),
- }),
- be_str_weak(_read_typed_value),
- &be_const_str_solidified,
- ( &(const binstruction[83]) { /* code */
- 0x6008000C, // 0000 GETGBL R2 G12
- 0x5C0C0000, // 0001 MOVE R3 R0
- 0x7C080200, // 0002 CALL R2 1
- 0x28080202, // 0003 GE R2 R1 R2
- 0x780A0001, // 0004 JMPF R2 #0007
- 0x4C080000, // 0005 LDNIL R2
- 0x80040400, // 0006 RET 1 R2
- 0x94080001, // 0007 GETIDX R2 R0 R1
- 0x00040300, // 0008 ADD R1 R1 K0
- 0x540E0005, // 0009 LDINT R3 6
- 0x1C0C0403, // 000A EQ R3 R2 R3
- 0x780E0002, // 000B JMPF R3 #000F
- 0x4C0C0000, // 000C LDNIL R3
- 0x80040600, // 000D RET 1 R3
- 0x70020041, // 000E JMP #0051
- 0x540E0004, // 000F LDINT R3 5
- 0x1C0C0403, // 0010 EQ R3 R2 R3
- 0x780E0003, // 0011 JMPF R3 #0016
- 0x940C0001, // 0012 GETIDX R3 R0 R1
- 0x200C0701, // 0013 NE R3 R3 K1
- 0x80040600, // 0014 RET 1 R3
- 0x7002003A, // 0015 JMP #0051
- 0x1C0C0501, // 0016 EQ R3 R2 K1
- 0x780E0009, // 0017 JMPF R3 #0022
- 0x940C0001, // 0018 GETIDX R3 R0 R1
- 0x5412007E, // 0019 LDINT R4 127
- 0x24100604, // 001A GT R4 R3 R4
- 0x78120002, // 001B JMPF R4 #001F
- 0x541200FF, // 001C LDINT R4 256
- 0x04100604, // 001D SUB R4 R3 R4
- 0x70020000, // 001E JMP #0020
- 0x5C100600, // 001F MOVE R4 R3
- 0x80040800, // 0020 RET 1 R4
- 0x7002002E, // 0021 JMP #0051
- 0x1C0C0500, // 0022 EQ R3 R2 K0
- 0x780E000C, // 0023 JMPF R3 #0031
- 0x8C0C0102, // 0024 GETMET R3 R0 K2
- 0x5C140200, // 0025 MOVE R5 R1
- 0x58180003, // 0026 LDCONST R6 K3
- 0x7C0C0600, // 0027 CALL R3 3
- 0x54127FFE, // 0028 LDINT R4 32767
- 0x24100604, // 0029 GT R4 R3 R4
- 0x78120002, // 002A JMPF R4 #002E
- 0x5412FFFF, // 002B LDINT R4 65536
- 0x04100604, // 002C SUB R4 R3 R4
- 0x70020000, // 002D JMP #002F
- 0x5C100600, // 002E MOVE R4 R3
- 0x80040800, // 002F RET 1 R4
- 0x7002001F, // 0030 JMP #0051
- 0x1C0C0503, // 0031 EQ R3 R2 K3
- 0x780E0005, // 0032 JMPF R3 #0039
- 0x8C0C0102, // 0033 GETMET R3 R0 K2
- 0x5C140200, // 0034 MOVE R5 R1
- 0x541A0003, // 0035 LDINT R6 4
- 0x7C0C0600, // 0036 CALL R3 3
- 0x80040600, // 0037 RET 1 R3
- 0x70020017, // 0038 JMP #0051
- 0x1C0C0504, // 0039 EQ R3 R2 K4
- 0x780E0008, // 003A JMPF R3 #0044
- 0x940C0001, // 003B GETIDX R3 R0 R1
- 0x00100300, // 003C ADD R4 R1 K0
- 0x00140203, // 003D ADD R5 R1 R3
- 0x40100805, // 003E CONNECT R4 R4 R5
- 0x94100004, // 003F GETIDX R4 R0 R4
- 0x8C100905, // 0040 GETMET R4 R4 K5
- 0x7C100200, // 0041 CALL R4 1
- 0x80040800, // 0042 RET 1 R4
- 0x7002000C, // 0043 JMP #0051
- 0x540E0003, // 0044 LDINT R3 4
- 0x1C0C0403, // 0045 EQ R3 R2 R3
- 0x780E0009, // 0046 JMPF R3 #0051
- 0x8C0C0102, // 0047 GETMET R3 R0 K2
- 0x5C140200, // 0048 MOVE R5 R1
- 0x58180003, // 0049 LDCONST R6 K3
- 0x7C0C0600, // 004A CALL R3 3
- 0x00100303, // 004B ADD R4 R1 K3
- 0x00140203, // 004C ADD R5 R1 R3
- 0x00140B00, // 004D ADD R5 R5 K0
- 0x40100805, // 004E CONNECT R4 R4 R5
- 0x94100004, // 004F GETIDX R4 R0 R4
- 0x80040800, // 0050 RET 1 R4
- 0x4C0C0000, // 0051 LDNIL R3
- 0x80040600, // 0052 RET 1 R3
- })
- ),
- }),
- 1, /* has constants */
- &be_ktab_class_parameterized_object, /* shared constants */
- be_str_weak(constraint_find),
- &be_const_str_solidified,
- ( &(const binstruction[112]) { /* code */
- 0x580C0000, // 0000 LDCONST R3 K0
- 0x84100000, // 0001 CLOSURE R4 P0
- 0x84140001, // 0002 CLOSURE R5 P1
- 0x6018000C, // 0003 GETGBL R6 G12
- 0x5C1C0000, // 0004 MOVE R7 R0
- 0x7C180200, // 0005 CALL R6 1
- 0x14180D01, // 0006 LT R6 R6 K1
- 0x781A0000, // 0007 JMPF R6 #0009
- 0x80040400, // 0008 RET 1 R2
- 0x94180102, // 0009 GETIDX R6 R0 K2
- 0x581C0001, // 000A LDCONST R7 K1
- 0x88200703, // 000B GETMBR R8 R3 K3
- 0x8C201104, // 000C GETMET R8 R8 K4
- 0x5C280200, // 000D MOVE R10 R1
- 0x7C200400, // 000E CALL R8 2
- 0x4C240000, // 000F LDNIL R9
- 0x1C241009, // 0010 EQ R9 R8 R9
- 0x78260000, // 0011 JMPF R9 #0013
- 0x80040400, // 0012 RET 1 R2
- 0x38220208, // 0013 SHL R8 K1 R8
- 0x2C240C08, // 0014 AND R9 R6 R8
- 0x74260000, // 0015 JMPT R9 #0017
- 0x80040400, // 0016 RET 1 R2
- 0x5426001F, // 0017 LDINT R9 32
- 0x1C241009, // 0018 EQ R9 R8 R9
- 0x78260001, // 0019 JMPF R9 #001C
- 0x50240200, // 001A LDBOOL R9 1 0
- 0x80041200, // 001B RET 1 R9
- 0x24241101, // 001C GT R9 R8 K1
- 0x78260006, // 001D JMPF R9 #0025
- 0x2C240D01, // 001E AND R9 R6 K1
- 0x78260004, // 001F JMPF R9 #0025
- 0x5C240800, // 0020 MOVE R9 R4
- 0x5C280000, // 0021 MOVE R10 R0
- 0x5C2C0E00, // 0022 MOVE R11 R7
- 0x7C240400, // 0023 CALL R9 2
- 0x001C0E09, // 0024 ADD R7 R7 R9
- 0x24241105, // 0025 GT R9 R8 K5
- 0x78260006, // 0026 JMPF R9 #002E
- 0x2C240D05, // 0027 AND R9 R6 K5
- 0x78260004, // 0028 JMPF R9 #002E
- 0x5C240800, // 0029 MOVE R9 R4
- 0x5C280000, // 002A MOVE R10 R0
- 0x5C2C0E00, // 002B MOVE R11 R7
- 0x7C240400, // 002C CALL R9 2
- 0x001C0E09, // 002D ADD R7 R7 R9
- 0x54260003, // 002E LDINT R9 4
- 0x24241009, // 002F GT R9 R8 R9
- 0x78260007, // 0030 JMPF R9 #0039
- 0x54260003, // 0031 LDINT R9 4
- 0x2C240C09, // 0032 AND R9 R6 R9
- 0x78260004, // 0033 JMPF R9 #0039
- 0x5C240800, // 0034 MOVE R9 R4
- 0x5C280000, // 0035 MOVE R10 R0
- 0x5C2C0E00, // 0036 MOVE R11 R7
- 0x7C240400, // 0037 CALL R9 2
- 0x001C0E09, // 0038 ADD R7 R7 R9
- 0x54260007, // 0039 LDINT R9 8
- 0x24241009, // 003A GT R9 R8 R9
- 0x78260003, // 003B JMPF R9 #0040
- 0x54260007, // 003C LDINT R9 8
- 0x2C240C09, // 003D AND R9 R6 R9
- 0x78260000, // 003E JMPF R9 #0040
- 0x001C0F01, // 003F ADD R7 R7 K1
- 0x6024000C, // 0040 GETGBL R9 G12
- 0x5C280000, // 0041 MOVE R10 R0
- 0x7C240200, // 0042 CALL R9 1
- 0x28240E09, // 0043 GE R9 R7 R9
- 0x78260000, // 0044 JMPF R9 #0046
- 0x80040400, // 0045 RET 1 R2
- 0x54260007, // 0046 LDINT R9 8
- 0x1C241009, // 0047 EQ R9 R8 R9
- 0x78260009, // 0048 JMPF R9 #0053
- 0x94240007, // 0049 GETIDX R9 R0 R7
- 0x6028000C, // 004A GETGBL R10 G12
- 0x882C0706, // 004B GETMBR R11 R3 K6
- 0x7C280200, // 004C CALL R10 1
- 0x1428120A, // 004D LT R10 R9 R10
- 0x782A0002, // 004E JMPF R10 #0052
- 0x88280706, // 004F GETMBR R10 R3 K6
- 0x94281409, // 0050 GETIDX R10 R10 R9
- 0x80041400, // 0051 RET 1 R10
- 0x80040400, // 0052 RET 1 R2
- 0x5426000F, // 0053 LDINT R9 16
- 0x1C241009, // 0054 EQ R9 R8 R9
- 0x78260014, // 0055 JMPF R9 #006B
- 0x94240007, // 0056 GETIDX R9 R0 R7
- 0x001C0F01, // 0057 ADD R7 R7 K1
- 0x60280012, // 0058 GETGBL R10 G18
- 0x7C280000, // 0059 CALL R10 0
- 0x582C0002, // 005A LDCONST R11 K2
- 0x14301609, // 005B LT R12 R11 R9
- 0x7832000C, // 005C JMPF R12 #006A
- 0x8C301507, // 005D GETMET R12 R10 K7
- 0x5C380A00, // 005E MOVE R14 R5
- 0x5C3C0000, // 005F MOVE R15 R0
- 0x5C400E00, // 0060 MOVE R16 R7
- 0x7C380400, // 0061 CALL R14 2
- 0x7C300400, // 0062 CALL R12 2
- 0x5C340800, // 0063 MOVE R13 R4
- 0x5C380000, // 0064 MOVE R14 R0
- 0x5C3C0E00, // 0065 MOVE R15 R7
- 0x7C340400, // 0066 CALL R13 2
- 0x001C0E0D, // 0067 ADD R7 R7 R13
- 0x002C1701, // 0068 ADD R11 R11 K1
- 0x7001FFF0, // 0069 JMP #005B
- 0x80041400, // 006A RET 1 R10
- 0x5C240A00, // 006B MOVE R9 R5
- 0x5C280000, // 006C MOVE R10 R0
- 0x5C2C0E00, // 006D MOVE R11 R7
- 0x7C240400, // 006E CALL R9 2
- 0x80041200, // 006F RET 1 R9
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: setmember
-********************************************************************/
-be_local_closure(class_parameterized_object_setmember, /* name */
- be_nested_proto(
- 7, /* nstack */
- 3, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_parameterized_object, /* shared constants */
- be_str_weak(setmember),
- &be_const_str_solidified,
- ( &(const binstruction[18]) { /* code */
- 0x8C0C0108, // 0000 GETMET R3 R0 K8
- 0x5C140200, // 0001 MOVE R5 R1
- 0x7C0C0400, // 0002 CALL R3 2
- 0x780E0004, // 0003 JMPF R3 #0009
- 0x8C0C0109, // 0004 GETMET R3 R0 K9
- 0x5C140200, // 0005 MOVE R5 R1
- 0x5C180400, // 0006 MOVE R6 R2
- 0x7C0C0600, // 0007 CALL R3 3
- 0x70020007, // 0008 JMP #0011
- 0x600C0018, // 0009 GETGBL R3 G24
- 0x5810000A, // 000A LDCONST R4 K10
- 0x60140005, // 000B GETGBL R5 G5
- 0x5C180000, // 000C MOVE R6 R0
- 0x7C140200, // 000D CALL R5 1
- 0x5C180200, // 000E MOVE R6 R1
- 0x7C0C0600, // 000F CALL R3 3
- 0xB0061603, // 0010 RAISE 1 K11 R3
- 0x80000000, // 0011 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _validate_param
-********************************************************************/
-be_local_closure(class_parameterized_object__validate_param, /* name */
- be_nested_proto(
- 15, /* nstack */
- 3, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_parameterized_object, /* shared constants */
- be_str_weak(_validate_param),
- &be_const_str_solidified,
- ( &(const binstruction[186]) { /* code */
- 0x8C0C010C, // 0000 GETMET R3 R0 K12
- 0x5C140200, // 0001 MOVE R5 R1
- 0x7C0C0400, // 0002 CALL R3 2
- 0x4C100000, // 0003 LDNIL R4
- 0x1C100604, // 0004 EQ R4 R3 R4
- 0x78120007, // 0005 JMPF R4 #000E
- 0x60100018, // 0006 GETGBL R4 G24
- 0x5814000A, // 0007 LDCONST R5 K10
- 0x60180005, // 0008 GETGBL R6 G5
- 0x5C1C0000, // 0009 MOVE R7 R0
- 0x7C180200, // 000A CALL R6 1
- 0x5C1C0200, // 000B MOVE R7 R1
- 0x7C100600, // 000C CALL R4 3
- 0xB0061604, // 000D RAISE 1 K11 R4
- 0xB8121A00, // 000E GETNGBL R4 K13
- 0x8C10090E, // 000F GETMET R4 R4 K14
- 0x5C180400, // 0010 MOVE R6 R2
- 0x7C100400, // 0011 CALL R4 2
- 0x78120000, // 0012 JMPF R4 #0014
- 0x80040400, // 0013 RET 1 R2
- 0x4C100000, // 0014 LDNIL R4
- 0x1C100404, // 0015 EQ R4 R2 R4
- 0x78120014, // 0016 JMPF R4 #002C
- 0x8C10010F, // 0017 GETMET R4 R0 K15
- 0x5C180600, // 0018 MOVE R6 R3
- 0x581C0010, // 0019 LDCONST R7 K16
- 0x7C100600, // 001A CALL R4 3
- 0x78120000, // 001B JMPF R4 #001D
- 0x80040400, // 001C RET 1 R2
- 0x8C10010F, // 001D GETMET R4 R0 K15
- 0x5C180600, // 001E MOVE R6 R3
- 0x581C0011, // 001F LDCONST R7 K17
- 0x7C100600, // 0020 CALL R4 3
- 0x78120004, // 0021 JMPF R4 #0027
- 0x8C100112, // 0022 GETMET R4 R0 K18
- 0x5C180600, // 0023 MOVE R6 R3
- 0x581C0011, // 0024 LDCONST R7 K17
- 0x7C100600, // 0025 CALL R4 3
- 0x80040800, // 0026 RET 1 R4
- 0x60100018, // 0027 GETGBL R4 G24
- 0x58140013, // 0028 LDCONST R5 K19
- 0x5C180200, // 0029 MOVE R6 R1
- 0x7C100400, // 002A CALL R4 2
- 0xB0062804, // 002B RAISE 1 K20 R4
- 0x8C100112, // 002C GETMET R4 R0 K18
- 0x5C180600, // 002D MOVE R6 R3
- 0x581C0015, // 002E LDCONST R7 K21
- 0x58200016, // 002F LDCONST R8 K22
- 0x7C100800, // 0030 CALL R4 4
- 0x1C140917, // 0031 EQ R5 R4 K23
- 0x74160003, // 0032 JMPT R5 #0037
- 0x1C140918, // 0033 EQ R5 R4 K24
- 0x74160001, // 0034 JMPT R5 #0037
- 0x1C140919, // 0035 EQ R5 R4 K25
- 0x78160001, // 0036 JMPF R5 #0039
- 0x58100016, // 0037 LDCONST R4 K22
- 0x70020002, // 0038 JMP #003C
- 0x1C14091A, // 0039 EQ R5 R4 K26
- 0x78160000, // 003A JMPF R5 #003C
- 0x5810001B, // 003B LDCONST R4 K27
- 0x60140004, // 003C GETGBL R5 G4
- 0x5C180400, // 003D MOVE R6 R2
- 0x7C140200, // 003E CALL R5 1
- 0x2018091C, // 003F NE R6 R4 K28
- 0x781A0031, // 0040 JMPF R6 #0073
- 0x1C180916, // 0041 EQ R6 R4 K22
- 0x781A000A, // 0042 JMPF R6 #004E
- 0x1C180B1D, // 0043 EQ R6 R5 K29
- 0x781A0008, // 0044 JMPF R6 #004E
- 0xA41A3C00, // 0045 IMPORT R6 K30
- 0x601C0009, // 0046 GETGBL R7 G9
- 0x8C200D1F, // 0047 GETMET R8 R6 K31
- 0x5C280400, // 0048 MOVE R10 R2
- 0x7C200400, // 0049 CALL R8 2
- 0x7C1C0200, // 004A CALL R7 1
- 0x5C080E00, // 004B MOVE R2 R7
- 0x58140016, // 004C LDCONST R5 K22
- 0x70020024, // 004D JMP #0073
- 0x1C18091B, // 004E EQ R6 R4 K27
- 0x781A0018, // 004F JMPF R6 #0069
- 0x1C180B20, // 0050 EQ R6 R5 K32
- 0x781A0006, // 0051 JMPF R6 #0059
- 0x6018000F, // 0052 GETGBL R6 G15
- 0x5C1C0400, // 0053 MOVE R7 R2
- 0x60200015, // 0054 GETGBL R8 G21
- 0x7C180400, // 0055 CALL R6 2
- 0x781A0001, // 0056 JMPF R6 #0059
- 0x5814001B, // 0057 LDCONST R5 K27
- 0x7002000E, // 0058 JMP #0068
- 0x20180B20, // 0059 NE R6 R5 K32
- 0x741A0004, // 005A JMPT R6 #0060
- 0x6018000F, // 005B GETGBL R6 G15
- 0x5C1C0400, // 005C MOVE R7 R2
- 0x60200015, // 005D GETGBL R8 G21
- 0x7C180400, // 005E CALL R6 2
- 0x741A0007, // 005F JMPT R6 #0068
- 0x60180018, // 0060 GETGBL R6 G24
- 0x581C0021, // 0061 LDCONST R7 K33
- 0x5C200200, // 0062 MOVE R8 R1
- 0x5C240800, // 0063 MOVE R9 R4
- 0x5C280A00, // 0064 MOVE R10 R5
- 0x5C2C0400, // 0065 MOVE R11 R2
- 0x7C180A00, // 0066 CALL R6 5
- 0xB0062806, // 0067 RAISE 1 K20 R6
- 0x70020009, // 0068 JMP #0073
- 0x20180805, // 0069 NE R6 R4 R5
- 0x781A0007, // 006A JMPF R6 #0073
- 0x60180018, // 006B GETGBL R6 G24
- 0x581C0021, // 006C LDCONST R7 K33
- 0x5C200200, // 006D MOVE R8 R1
- 0x5C240800, // 006E MOVE R9 R4
- 0x5C280A00, // 006F MOVE R10 R5
- 0x5C2C0400, // 0070 MOVE R11 R2
- 0x7C180A00, // 0071 CALL R6 5
- 0xB0062806, // 0072 RAISE 1 K20 R6
- 0x1C180B16, // 0073 EQ R6 R5 K22
- 0x781A0023, // 0074 JMPF R6 #0099
- 0x8C18010F, // 0075 GETMET R6 R0 K15
- 0x5C200600, // 0076 MOVE R8 R3
- 0x58240022, // 0077 LDCONST R9 K34
- 0x7C180600, // 0078 CALL R6 3
- 0x781A000C, // 0079 JMPF R6 #0087
- 0x8C180112, // 007A GETMET R6 R0 K18
- 0x5C200600, // 007B MOVE R8 R3
- 0x58240022, // 007C LDCONST R9 K34
- 0x7C180600, // 007D CALL R6 3
- 0x141C0406, // 007E LT R7 R2 R6
- 0x781E0006, // 007F JMPF R7 #0087
- 0x601C0018, // 0080 GETGBL R7 G24
- 0x58200023, // 0081 LDCONST R8 K35
- 0x5C240200, // 0082 MOVE R9 R1
- 0x5C280400, // 0083 MOVE R10 R2
- 0x5C2C0C00, // 0084 MOVE R11 R6
- 0x7C1C0800, // 0085 CALL R7 4
- 0xB0062807, // 0086 RAISE 1 K20 R7
- 0x8C18010F, // 0087 GETMET R6 R0 K15
- 0x5C200600, // 0088 MOVE R8 R3
- 0x58240024, // 0089 LDCONST R9 K36
- 0x7C180600, // 008A CALL R6 3
- 0x781A000C, // 008B JMPF R6 #0099
- 0x8C180112, // 008C GETMET R6 R0 K18
- 0x5C200600, // 008D MOVE R8 R3
- 0x58240024, // 008E LDCONST R9 K36
- 0x7C180600, // 008F CALL R6 3
- 0x241C0406, // 0090 GT R7 R2 R6
- 0x781E0006, // 0091 JMPF R7 #0099
- 0x601C0018, // 0092 GETGBL R7 G24
- 0x58200025, // 0093 LDCONST R8 K37
- 0x5C240200, // 0094 MOVE R9 R1
- 0x5C280400, // 0095 MOVE R10 R2
- 0x5C2C0C00, // 0096 MOVE R11 R6
- 0x7C1C0800, // 0097 CALL R7 4
- 0xB0062807, // 0098 RAISE 1 K20 R7
- 0x8C18010F, // 0099 GETMET R6 R0 K15
- 0x5C200600, // 009A MOVE R8 R3
- 0x58240026, // 009B LDCONST R9 K38
- 0x7C180600, // 009C CALL R6 3
- 0x781A001A, // 009D JMPF R6 #00B9
- 0x50180000, // 009E LDBOOL R6 0 0
- 0x8C1C0112, // 009F GETMET R7 R0 K18
- 0x5C240600, // 00A0 MOVE R9 R3
- 0x58280026, // 00A1 LDCONST R10 K38
- 0x7C1C0600, // 00A2 CALL R7 3
- 0x6020000C, // 00A3 GETGBL R8 G12
- 0x5C240E00, // 00A4 MOVE R9 R7
- 0x7C200200, // 00A5 CALL R8 1
- 0x58240002, // 00A6 LDCONST R9 K2
- 0x14281208, // 00A7 LT R10 R9 R8
- 0x782A0006, // 00A8 JMPF R10 #00B0
- 0x94280E09, // 00A9 GETIDX R10 R7 R9
- 0x1C2C040A, // 00AA EQ R11 R2 R10
- 0x782E0001, // 00AB JMPF R11 #00AE
- 0x50180200, // 00AC LDBOOL R6 1 0
- 0x70020001, // 00AD JMP #00B0
- 0x00241301, // 00AE ADD R9 R9 K1
- 0x7001FFF6, // 00AF JMP #00A7
- 0x5C280C00, // 00B0 MOVE R10 R6
- 0x742A0006, // 00B1 JMPT R10 #00B9
- 0x60280018, // 00B2 GETGBL R10 G24
- 0x582C0027, // 00B3 LDCONST R11 K39
- 0x5C300200, // 00B4 MOVE R12 R1
- 0x5C340400, // 00B5 MOVE R13 R2
- 0x5C380E00, // 00B6 MOVE R14 R7
- 0x7C280800, // 00B7 CALL R10 4
- 0xB006280A, // 00B8 RAISE 1 K20 R10
- 0x80040400, // 00B9 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: update
-********************************************************************/
-be_local_closure(class_parameterized_object_update, /* name */
- be_nested_proto(
- 2, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_parameterized_object, /* shared constants */
- be_str_weak(update),
- &be_const_str_solidified,
- ( &(const binstruction[ 1]) { /* code */
- 0x80000000, // 0000 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _resolve_parameter_value
-********************************************************************/
-be_local_closure(class_parameterized_object__resolve_parameter_value, /* name */
- be_nested_proto(
- 9, /* nstack */
- 3, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_parameterized_object, /* shared constants */
- be_str_weak(_resolve_parameter_value),
- &be_const_str_solidified,
- ( &(const binstruction[31]) { /* code */
- 0x880C0128, // 0000 GETMBR R3 R0 K40
- 0x8C0C0729, // 0001 GETMET R3 R3 K41
- 0x5C140200, // 0002 MOVE R5 R1
- 0x7C0C0400, // 0003 CALL R3 2
- 0x740E0011, // 0004 JMPT R3 #0017
- 0x8C0C010C, // 0005 GETMET R3 R0 K12
- 0x5C140200, // 0006 MOVE R5 R1
- 0x7C0C0400, // 0007 CALL R3 2
- 0x4C100000, // 0008 LDNIL R4
- 0x20100604, // 0009 NE R4 R3 R4
- 0x78120009, // 000A JMPF R4 #0015
- 0x8C10010F, // 000B GETMET R4 R0 K15
- 0x5C180600, // 000C MOVE R6 R3
- 0x581C0011, // 000D LDCONST R7 K17
- 0x7C100600, // 000E CALL R4 3
- 0x78120004, // 000F JMPF R4 #0015
- 0x8C100112, // 0010 GETMET R4 R0 K18
- 0x5C180600, // 0011 MOVE R6 R3
- 0x581C0011, // 0012 LDCONST R7 K17
- 0x7C100600, // 0013 CALL R4 3
- 0x80040800, // 0014 RET 1 R4
- 0x4C100000, // 0015 LDNIL R4
- 0x80040800, // 0016 RET 1 R4
- 0x880C0128, // 0017 GETMBR R3 R0 K40
- 0x940C0601, // 0018 GETIDX R3 R3 R1
- 0x8C10012A, // 0019 GETMET R4 R0 K42
- 0x5C180600, // 001A MOVE R6 R3
- 0x5C1C0200, // 001B MOVE R7 R1
- 0x5C200400, // 001C MOVE R8 R2
- 0x7C100800, // 001D CALL R4 4
- 0x80040800, // 001E RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: constraint_mask
-********************************************************************/
-be_local_closure(class_parameterized_object_constraint_mask, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 12, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_parameterized_object, /* shared constants */
- be_str_weak(constraint_mask),
- &be_const_str_solidified,
- ( &(const binstruction[21]) { /* code */
- 0x58080000, // 0000 LDCONST R2 K0
- 0x4C0C0000, // 0001 LDNIL R3
- 0x200C0003, // 0002 NE R3 R0 R3
- 0x780E000F, // 0003 JMPF R3 #0014
- 0x600C000C, // 0004 GETGBL R3 G12
- 0x5C100000, // 0005 MOVE R4 R0
- 0x7C0C0200, // 0006 CALL R3 1
- 0x240C0702, // 0007 GT R3 R3 K2
- 0x780E000A, // 0008 JMPF R3 #0014
- 0x880C0503, // 0009 GETMBR R3 R2 K3
- 0x8C0C0704, // 000A GETMET R3 R3 K4
- 0x5C140200, // 000B MOVE R5 R1
- 0x7C0C0400, // 000C CALL R3 2
- 0x4C100000, // 000D LDNIL R4
- 0x20100604, // 000E NE R4 R3 R4
- 0x78120003, // 000F JMPF R4 #0014
- 0x94100102, // 0010 GETIDX R4 R0 K2
- 0x38160203, // 0011 SHL R5 K1 R3
- 0x2C100805, // 0012 AND R4 R4 R5
- 0x80040800, // 0013 RET 1 R4
- 0x80060400, // 0014 RET 1 K2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: member
-********************************************************************/
-be_local_closure(class_parameterized_object_member, /* name */
- be_nested_proto(
- 8, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_parameterized_object, /* shared constants */
- be_str_weak(member),
- &be_const_str_solidified,
- ( &(const binstruction[58]) { /* code */
- 0x88080128, // 0000 GETMBR R2 R0 K40
- 0x8C080504, // 0001 GETMET R2 R2 K4
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C080400, // 0003 CALL R2 2
- 0x4C0C0000, // 0004 LDNIL R3
- 0x200C0403, // 0005 NE R3 R2 R3
- 0x780E000D, // 0006 JMPF R3 #0015
- 0x600C0004, // 0007 GETGBL R3 G4
- 0x5C100400, // 0008 MOVE R4 R2
- 0x7C0C0200, // 0009 CALL R3 1
- 0x200C0720, // 000A NE R3 R3 K32
- 0x780E0000, // 000B JMPF R3 #000D
- 0x80040400, // 000C RET 1 R2
- 0x8C0C012A, // 000D GETMET R3 R0 K42
- 0x5C140400, // 000E MOVE R5 R2
- 0x5C180200, // 000F MOVE R6 R1
- 0x881C012B, // 0010 GETMBR R7 R0 K43
- 0x881C0F2C, // 0011 GETMBR R7 R7 K44
- 0x7C0C0800, // 0012 CALL R3 4
- 0x80040600, // 0013 RET 1 R3
- 0x70020023, // 0014 JMP #0039
- 0x880C0128, // 0015 GETMBR R3 R0 K40
- 0x8C0C0729, // 0016 GETMET R3 R3 K41
- 0x5C140200, // 0017 MOVE R5 R1
- 0x7C0C0400, // 0018 CALL R3 2
- 0x780E0002, // 0019 JMPF R3 #001D
- 0x4C0C0000, // 001A LDNIL R3
- 0x80040600, // 001B RET 1 R3
- 0x7002001B, // 001C JMP #0039
- 0x8C0C010C, // 001D GETMET R3 R0 K12
- 0x5C140200, // 001E MOVE R5 R1
- 0x7C0C0400, // 001F CALL R3 2
- 0x4C100000, // 0020 LDNIL R4
- 0x20100604, // 0021 NE R4 R3 R4
- 0x7812000D, // 0022 JMPF R4 #0031
- 0x8C10010F, // 0023 GETMET R4 R0 K15
- 0x5C180600, // 0024 MOVE R6 R3
- 0x581C0011, // 0025 LDCONST R7 K17
- 0x7C100600, // 0026 CALL R4 3
- 0x78120005, // 0027 JMPF R4 #002E
- 0x8C100112, // 0028 GETMET R4 R0 K18
- 0x5C180600, // 0029 MOVE R6 R3
- 0x581C0011, // 002A LDCONST R7 K17
- 0x7C100600, // 002B CALL R4 3
- 0x80040800, // 002C RET 1 R4
- 0x70020001, // 002D JMP #0030
- 0x4C100000, // 002E LDNIL R4
- 0x80040800, // 002F RET 1 R4
- 0x70020007, // 0030 JMP #0039
- 0x60100018, // 0031 GETGBL R4 G24
- 0x5814000A, // 0032 LDCONST R5 K10
- 0x60180005, // 0033 GETGBL R6 G5
- 0x5C1C0000, // 0034 MOVE R7 R0
- 0x7C180200, // 0035 CALL R6 1
- 0x5C1C0200, // 0036 MOVE R7 R1
- 0x7C100600, // 0037 CALL R4 3
- 0xB0061604, // 0038 RAISE 1 K11 R4
- 0x80000000, // 0039 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: start
-********************************************************************/
-be_local_closure(class_parameterized_object_start, /* name */
- be_nested_proto(
- 4, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_parameterized_object, /* shared constants */
- be_str_weak(start),
- &be_const_str_solidified,
- ( &(const binstruction[13]) { /* code */
- 0x4C080000, // 0000 LDNIL R2
- 0x1C080202, // 0001 EQ R2 R1 R2
- 0x780A0001, // 0002 JMPF R2 #0005
- 0x8808012B, // 0003 GETMBR R2 R0 K43
- 0x8804052C, // 0004 GETMBR R1 R2 K44
- 0x50080200, // 0005 LDBOOL R2 1 0
- 0x90025A02, // 0006 SETMBR R0 K45 R2
- 0x8808012E, // 0007 GETMBR R2 R0 K46
- 0x4C0C0000, // 0008 LDNIL R3
- 0x20080403, // 0009 NE R2 R2 R3
- 0x780A0000, // 000A JMPF R2 #000C
- 0x90025C01, // 000B SETMBR R0 K46 R1
- 0x80040000, // 000C RET 1 R0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: stop
-********************************************************************/
-be_local_closure(class_parameterized_object_stop, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_parameterized_object, /* shared constants */
- be_str_weak(stop),
- &be_const_str_solidified,
- ( &(const binstruction[ 3]) { /* code */
- 0x50040000, // 0000 LDBOOL R1 0 0
- 0x90025A01, // 0001 SETMBR R0 K45 R1
- 0x80040000, // 0002 RET 1 R0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _init_parameter_values
-********************************************************************/
-be_local_closure(class_parameterized_object__init_parameter_values, /* name */
- be_nested_proto(
- 12, /* nstack */
- 1, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_parameterized_object, /* shared constants */
- be_str_weak(_init_parameter_values),
- &be_const_str_solidified,
- ( &(const binstruction[47]) { /* code */
- 0xA4065E00, // 0000 IMPORT R1 K47
- 0x60080006, // 0001 GETGBL R2 G6
- 0x5C0C0000, // 0002 MOVE R3 R0
- 0x7C080200, // 0003 CALL R2 1
- 0x4C0C0000, // 0004 LDNIL R3
- 0x200C0403, // 0005 NE R3 R2 R3
- 0x780E0026, // 0006 JMPF R3 #002E
- 0x8C0C0329, // 0007 GETMET R3 R1 K41
- 0x5C140400, // 0008 MOVE R5 R2
- 0x58180030, // 0009 LDCONST R6 K48
- 0x7C0C0600, // 000A CALL R3 3
- 0x780E001C, // 000B JMPF R3 #0029
- 0x880C0530, // 000C GETMBR R3 R2 K48
- 0x60100010, // 000D GETGBL R4 G16
- 0x8C140731, // 000E GETMET R5 R3 K49
- 0x7C140200, // 000F CALL R5 1
- 0x7C100200, // 0010 CALL R4 1
- 0xA8020013, // 0011 EXBLK 0 #0026
- 0x5C140800, // 0012 MOVE R5 R4
- 0x7C140000, // 0013 CALL R5 0
- 0x88180128, // 0014 GETMBR R6 R0 K40
- 0x8C180D29, // 0015 GETMET R6 R6 K41
- 0x5C200A00, // 0016 MOVE R8 R5
- 0x7C180400, // 0017 CALL R6 2
- 0x741A000B, // 0018 JMPT R6 #0025
- 0x94180605, // 0019 GETIDX R6 R3 R5
- 0x8C1C010F, // 001A GETMET R7 R0 K15
- 0x5C240C00, // 001B MOVE R9 R6
- 0x58280011, // 001C LDCONST R10 K17
- 0x7C1C0600, // 001D CALL R7 3
- 0x781E0005, // 001E JMPF R7 #0025
- 0x881C0128, // 001F GETMBR R7 R0 K40
- 0x8C200112, // 0020 GETMET R8 R0 K18
- 0x5C280C00, // 0021 MOVE R10 R6
- 0x582C0011, // 0022 LDCONST R11 K17
- 0x7C200600, // 0023 CALL R8 3
- 0x981C0A08, // 0024 SETIDX R7 R5 R8
- 0x7001FFEB, // 0025 JMP #0012
- 0x58100032, // 0026 LDCONST R4 K50
- 0xAC100200, // 0027 CATCH R4 1 0
- 0xB0080000, // 0028 RAISE 2 R0 R0
- 0x600C0003, // 0029 GETGBL R3 G3
- 0x5C100400, // 002A MOVE R4 R2
- 0x7C0C0200, // 002B CALL R3 1
- 0x5C080600, // 002C MOVE R2 R3
- 0x7001FFD5, // 002D JMP #0004
- 0x80000000, // 002E RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(class_parameterized_object_init, /* name */
- be_nested_proto(
- 4, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_parameterized_object, /* shared constants */
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[18]) { /* code */
- 0x4C080000, // 0000 LDNIL R2
- 0x1C080202, // 0001 EQ R2 R1 R2
- 0x740A0004, // 0002 JMPT R2 #0008
- 0x60080004, // 0003 GETGBL R2 G4
- 0x5C0C0200, // 0004 MOVE R3 R1
- 0x7C080200, // 0005 CALL R2 1
- 0x20080520, // 0006 NE R2 R2 K32
- 0x780A0000, // 0007 JMPF R2 #0009
- 0xB0062933, // 0008 RAISE 1 K20 K51
- 0x90025601, // 0009 SETMBR R0 K43 R1
- 0x60080013, // 000A GETGBL R2 G19
- 0x7C080000, // 000B CALL R2 0
- 0x90025002, // 000C SETMBR R0 K40 R2
- 0x50080000, // 000D LDBOOL R2 0 0
- 0x90025A02, // 000E SETMBR R0 K45 R2
- 0x8C080134, // 000F GETMET R2 R0 K52
- 0x7C080200, // 0010 CALL R2 1
- 0x80000000, // 0011 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _fix_time_ms
-********************************************************************/
-be_local_closure(class_parameterized_object__fix_time_ms, /* name */
- be_nested_proto(
- 4, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_parameterized_object, /* shared constants */
- be_str_weak(_fix_time_ms),
- &be_const_str_solidified,
- ( &(const binstruction[11]) { /* code */
- 0x4C080000, // 0000 LDNIL R2
- 0x1C080202, // 0001 EQ R2 R1 R2
- 0x780A0001, // 0002 JMPF R2 #0005
- 0x8808012B, // 0003 GETMBR R2 R0 K43
- 0x8804052C, // 0004 GETMBR R1 R2 K44
- 0x8808012E, // 0005 GETMBR R2 R0 K46
- 0x4C0C0000, // 0006 LDNIL R3
- 0x1C080403, // 0007 EQ R2 R2 R3
- 0x780A0000, // 0008 JMPF R2 #000A
- 0x90025C01, // 0009 SETMBR R0 K46 R1
- 0x80040200, // 000A RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: has_param
-********************************************************************/
-be_local_closure(class_parameterized_object_has_param, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_parameterized_object, /* shared constants */
- be_str_weak(has_param),
- &be_const_str_solidified,
- ( &(const binstruction[ 6]) { /* code */
- 0x8C08010C, // 0000 GETMET R2 R0 K12
- 0x5C100200, // 0001 MOVE R4 R1
- 0x7C080400, // 0002 CALL R2 2
- 0x4C0C0000, // 0003 LDNIL R3
- 0x20080403, // 0004 NE R2 R2 R3
- 0x80040400, // 0005 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: ==
-********************************************************************/
-be_local_closure(class_parameterized_object__X3D_X3D, /* name */
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_parameterized_object, /* shared constants */
- be_str_weak(_X3D_X3D),
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0xA40A5E00, // 0000 IMPORT R2 K47
- 0x8C0C0535, // 0001 GETMET R3 R2 K53
- 0x5C140000, // 0002 MOVE R5 R0
- 0x7C0C0400, // 0003 CALL R3 2
- 0x8C100535, // 0004 GETMET R4 R2 K53
- 0x5C180200, // 0005 MOVE R6 R1
- 0x7C100400, // 0006 CALL R4 2
- 0x1C0C0604, // 0007 EQ R3 R3 R4
- 0x80040600, // 0008 RET 1 R3
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: set_param
-********************************************************************/
-be_local_closure(class_parameterized_object_set_param, /* name */
- be_nested_proto(
- 7, /* nstack */
- 3, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_parameterized_object, /* shared constants */
- be_str_weak(set_param),
- &be_const_str_solidified,
- ( &(const binstruction[24]) { /* code */
- 0x8C0C0108, // 0000 GETMET R3 R0 K8
- 0x5C140200, // 0001 MOVE R5 R1
- 0x7C0C0400, // 0002 CALL R3 2
- 0x740E0001, // 0003 JMPT R3 #0006
- 0x500C0000, // 0004 LDBOOL R3 0 0
- 0x80040600, // 0005 RET 1 R3
- 0xA8020008, // 0006 EXBLK 0 #0010
- 0x8C0C0109, // 0007 GETMET R3 R0 K9
- 0x5C140200, // 0008 MOVE R5 R1
- 0x5C180400, // 0009 MOVE R6 R2
- 0x7C0C0600, // 000A CALL R3 3
- 0x500C0200, // 000B LDBOOL R3 1 0
- 0xA8040001, // 000C EXBLK 1 1
- 0x80040600, // 000D RET 1 R3
- 0xA8040001, // 000E EXBLK 1 1
- 0x70020006, // 000F JMP #0017
- 0x580C0014, // 0010 LDCONST R3 K20
- 0xAC0C0201, // 0011 CATCH R3 1 1
- 0x70020002, // 0012 JMP #0016
- 0x50100000, // 0013 LDBOOL R4 0 0
- 0x80040800, // 0014 RET 1 R4
- 0x70020000, // 0015 JMP #0017
- 0xB0080000, // 0016 RAISE 2 R0 R0
- 0x80000000, // 0017 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: on_param_changed
-********************************************************************/
-be_local_closure(class_parameterized_object_on_param_changed, /* name */
- be_nested_proto(
- 3, /* nstack */
- 3, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_parameterized_object, /* shared constants */
- be_str_weak(on_param_changed),
- &be_const_str_solidified,
- ( &(const binstruction[ 1]) { /* code */
- 0x80000000, // 0000 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: !=
-********************************************************************/
-be_local_closure(class_parameterized_object__X21_X3D, /* name */
- be_nested_proto(
- 3, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_parameterized_object, /* shared constants */
- be_str_weak(_X21_X3D),
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x1C080001, // 0000 EQ R2 R0 R1
- 0x780A0000, // 0001 JMPF R2 #0003
- 0x50080001, // 0002 LDBOOL R2 0 1
- 0x50080200, // 0003 LDBOOL R2 1 0
- 0x80040400, // 0004 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _set_parameter_value
-********************************************************************/
-be_local_closure(class_parameterized_object__set_parameter_value, /* name */
- be_nested_proto(
- 7, /* nstack */
- 3, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_parameterized_object, /* shared constants */
- be_str_weak(_set_parameter_value),
- &be_const_str_solidified,
- ( &(const binstruction[17]) { /* code */
- 0xB80E1A00, // 0000 GETNGBL R3 K13
- 0x8C0C070E, // 0001 GETMET R3 R3 K14
- 0x5C140400, // 0002 MOVE R5 R2
- 0x7C0C0400, // 0003 CALL R3 2
- 0x740E0004, // 0004 JMPT R3 #000A
- 0x8C0C0136, // 0005 GETMET R3 R0 K54
- 0x5C140200, // 0006 MOVE R5 R1
- 0x5C180400, // 0007 MOVE R6 R2
- 0x7C0C0600, // 0008 CALL R3 3
- 0x5C080600, // 0009 MOVE R2 R3
- 0x880C0128, // 000A GETMBR R3 R0 K40
- 0x980C0202, // 000B SETIDX R3 R1 R2
- 0x8C0C0137, // 000C GETMET R3 R0 K55
- 0x5C140200, // 000D MOVE R5 R1
- 0x5C180400, // 000E MOVE R6 R2
- 0x7C0C0600, // 000F CALL R3 3
- 0x80000000, // 0010 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: tobool
-********************************************************************/
-be_local_closure(class_parameterized_object_tobool, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_parameterized_object, /* shared constants */
- be_str_weak(tobool),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x50040200, // 0000 LDBOOL R1 1 0
- 0x80040200, // 0001 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: tostring
-********************************************************************/
-be_local_closure(class_parameterized_object_tostring, /* name */
- be_nested_proto(
- 5, /* nstack */
- 1, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_parameterized_object, /* shared constants */
- be_str_weak(tostring),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x60040018, // 0000 GETGBL R1 G24
- 0x58080038, // 0001 LDCONST R2 K56
- 0x600C0005, // 0002 GETGBL R3 G5
- 0x5C100000, // 0003 MOVE R4 R0
- 0x7C0C0200, // 0004 CALL R3 1
- 0x7C040400, // 0005 CALL R1 2
- 0x80040200, // 0006 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: resolve_value
-********************************************************************/
-be_local_closure(class_parameterized_object_resolve_value, /* name */
- be_nested_proto(
- 10, /* nstack */
- 4, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_parameterized_object, /* shared constants */
- be_str_weak(resolve_value),
- &be_const_str_solidified,
- ( &(const binstruction[34]) { /* code */
- 0xB8121A00, // 0000 GETNGBL R4 K13
- 0x8C10090E, // 0001 GETMET R4 R4 K14
- 0x5C180200, // 0002 MOVE R6 R1
- 0x7C100400, // 0003 CALL R4 2
- 0x7812001A, // 0004 JMPF R4 #0020
- 0x8C100339, // 0005 GETMET R4 R1 K57
- 0x5C180400, // 0006 MOVE R6 R2
- 0x5C1C0600, // 0007 MOVE R7 R3
- 0x7C100600, // 0008 CALL R4 3
- 0x4C140000, // 0009 LDNIL R5
- 0x1C140805, // 000A EQ R5 R4 R5
- 0x78160011, // 000B JMPF R5 #001E
- 0x8C14010C, // 000C GETMET R5 R0 K12
- 0x5C1C0400, // 000D MOVE R7 R2
- 0x7C140400, // 000E CALL R5 2
- 0x8C18010F, // 000F GETMET R6 R0 K15
- 0x5C200A00, // 0010 MOVE R8 R5
- 0x58240010, // 0011 LDCONST R9 K16
- 0x7C180600, // 0012 CALL R6 3
- 0x741A0009, // 0013 JMPT R6 #001E
- 0x8C18010F, // 0014 GETMET R6 R0 K15
- 0x5C200A00, // 0015 MOVE R8 R5
- 0x58240011, // 0016 LDCONST R9 K17
- 0x7C180600, // 0017 CALL R6 3
- 0x781A0004, // 0018 JMPF R6 #001E
- 0x8C180112, // 0019 GETMET R6 R0 K18
- 0x5C200A00, // 001A MOVE R8 R5
- 0x58240011, // 001B LDCONST R9 K17
- 0x7C180600, // 001C CALL R6 3
- 0x5C100C00, // 001D MOVE R4 R6
- 0x80040800, // 001E RET 1 R4
- 0x70020000, // 001F JMP #0021
- 0x80040200, // 0020 RET 1 R1
- 0x80000000, // 0021 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_param_value
-********************************************************************/
-be_local_closure(class_parameterized_object_get_param_value, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_parameterized_object, /* shared constants */
- be_str_weak(get_param_value),
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x8C08013A, // 0000 GETMET R2 R0 K58
- 0x5C100200, // 0001 MOVE R4 R1
- 0x7C080400, // 0002 CALL R2 2
- 0x80040400, // 0003 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _get_param_def
-********************************************************************/
-be_local_closure(class_parameterized_object__get_param_def, /* name */
- be_nested_proto(
- 8, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_parameterized_object, /* shared constants */
- be_str_weak(_get_param_def),
- &be_const_str_solidified,
- ( &(const binstruction[26]) { /* code */
- 0xA40A5E00, // 0000 IMPORT R2 K47
- 0x600C0006, // 0001 GETGBL R3 G6
- 0x5C100000, // 0002 MOVE R4 R0
- 0x7C0C0200, // 0003 CALL R3 1
- 0x4C100000, // 0004 LDNIL R4
- 0x20100604, // 0005 NE R4 R3 R4
- 0x78120010, // 0006 JMPF R4 #0018
- 0x8C100529, // 0007 GETMET R4 R2 K41
- 0x5C180600, // 0008 MOVE R6 R3
- 0x581C0030, // 0009 LDCONST R7 K48
- 0x7C100600, // 000A CALL R4 3
- 0x78120006, // 000B JMPF R4 #0013
- 0x88100730, // 000C GETMBR R4 R3 K48
- 0x8C140929, // 000D GETMET R5 R4 K41
- 0x5C1C0200, // 000E MOVE R7 R1
- 0x7C140400, // 000F CALL R5 2
- 0x78160001, // 0010 JMPF R5 #0013
- 0x94140801, // 0011 GETIDX R5 R4 R1
- 0x80040A00, // 0012 RET 1 R5
- 0x60100003, // 0013 GETGBL R4 G3
- 0x5C140600, // 0014 MOVE R5 R3
- 0x7C100200, // 0015 CALL R4 1
- 0x5C0C0800, // 0016 MOVE R3 R4
- 0x7001FFEB, // 0017 JMP #0004
- 0x4C100000, // 0018 LDNIL R4
- 0x80040800, // 0019 RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_param
-********************************************************************/
-be_local_closure(class_parameterized_object_get_param, /* name */
- be_nested_proto(
- 9, /* nstack */
- 3, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_parameterized_object, /* shared constants */
- be_str_weak(get_param),
- &be_const_str_solidified,
- ( &(const binstruction[26]) { /* code */
- 0x880C0128, // 0000 GETMBR R3 R0 K40
- 0x8C0C0729, // 0001 GETMET R3 R3 K41
- 0x5C140200, // 0002 MOVE R5 R1
- 0x7C0C0400, // 0003 CALL R3 2
- 0x780E0002, // 0004 JMPF R3 #0008
- 0x880C0128, // 0005 GETMBR R3 R0 K40
- 0x940C0601, // 0006 GETIDX R3 R3 R1
- 0x80040600, // 0007 RET 1 R3
- 0x8C0C010C, // 0008 GETMET R3 R0 K12
- 0x5C140200, // 0009 MOVE R5 R1
- 0x7C0C0400, // 000A CALL R3 2
- 0x4C100000, // 000B LDNIL R4
- 0x20100604, // 000C NE R4 R3 R4
- 0x7812000A, // 000D JMPF R4 #0019
- 0x8C10010F, // 000E GETMET R4 R0 K15
- 0x5C180600, // 000F MOVE R6 R3
- 0x581C0011, // 0010 LDCONST R7 K17
- 0x7C100600, // 0011 CALL R4 3
- 0x78120005, // 0012 JMPF R4 #0019
- 0x8C100112, // 0013 GETMET R4 R0 K18
- 0x5C180600, // 0014 MOVE R6 R3
- 0x581C0011, // 0015 LDCONST R7 K17
- 0x5C200400, // 0016 MOVE R8 R2
- 0x7C100800, // 0017 CALL R4 4
- 0x80040800, // 0018 RET 1 R4
- 0x80040400, // 0019 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: parameterized_object
-********************************************************************/
-be_local_class(parameterized_object,
- 4,
- NULL,
- be_nested_map(30,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(constraint_find, 10), be_const_static_closure(class_parameterized_object_constraint_find_closure) },
- { be_const_key_weak(setmember, 20), be_const_closure(class_parameterized_object_setmember_closure) },
- { be_const_key_weak(get_param, -1), be_const_closure(class_parameterized_object_get_param_closure) },
- { be_const_key_weak(values, -1), be_const_var(0) },
- { be_const_key_weak(update, -1), be_const_closure(class_parameterized_object_update_closure) },
- { be_const_key_weak(_TYPES, 18), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(7,
- ( (struct bvalue*) &(const bvalue[]) {
- be_nested_str_weak(int),
- be_nested_str_weak(string),
- be_nested_str_weak(bytes),
- be_nested_str_weak(bool),
- be_nested_str_weak(any),
- be_nested_str_weak(instance),
- be_nested_str_weak(function),
- })) ) } )) },
- { be_const_key_weak(_resolve_parameter_value, -1), be_const_closure(class_parameterized_object__resolve_parameter_value_closure) },
- { be_const_key_weak(constraint_mask, 21), be_const_static_closure(class_parameterized_object_constraint_mask_closure) },
- { be_const_key_weak(_get_param_def, -1), be_const_closure(class_parameterized_object__get_param_def_closure) },
- { be_const_key_weak(get_param_value, -1), be_const_closure(class_parameterized_object_get_param_value_closure) },
- { be_const_key_weak(_MASK, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(6,
- ( (struct bvalue*) &(const bvalue[]) {
- be_nested_str_weak(min),
- be_nested_str_weak(max),
- be_nested_str_weak(default),
- be_nested_str_weak(type),
- be_nested_str_weak(enum),
- be_nested_str_weak(nillable),
- })) ) } )) },
- { be_const_key_weak(start, -1), be_const_closure(class_parameterized_object_start_closure) },
- { be_const_key_weak(is_running, -1), be_const_var(3) },
- { be_const_key_weak(_init_parameter_values, -1), be_const_closure(class_parameterized_object__init_parameter_values_closure) },
- { be_const_key_weak(has_param, 13), be_const_closure(class_parameterized_object_has_param_closure) },
- { be_const_key_weak(init, -1), be_const_closure(class_parameterized_object_init_closure) },
- { be_const_key_weak(_fix_time_ms, -1), be_const_closure(class_parameterized_object__fix_time_ms_closure) },
- { be_const_key_weak(stop, 14), be_const_closure(class_parameterized_object_stop_closure) },
- { be_const_key_weak(_X3D_X3D, -1), be_const_closure(class_parameterized_object__X3D_X3D_closure) },
- { be_const_key_weak(set_param, -1), be_const_closure(class_parameterized_object_set_param_closure) },
- { be_const_key_weak(_X21_X3D, 26), be_const_closure(class_parameterized_object__X21_X3D_closure) },
- { be_const_key_weak(on_param_changed, -1), be_const_closure(class_parameterized_object_on_param_changed_closure) },
- { be_const_key_weak(_set_parameter_value, -1), be_const_closure(class_parameterized_object__set_parameter_value_closure) },
- { be_const_key_weak(engine, -1), be_const_var(1) },
- { be_const_key_weak(tobool, -1), be_const_closure(class_parameterized_object_tobool_closure) },
- { be_const_key_weak(tostring, -1), be_const_closure(class_parameterized_object_tostring_closure) },
- { be_const_key_weak(member, 12), be_const_closure(class_parameterized_object_member_closure) },
- { be_const_key_weak(start_time, 9), be_const_var(2) },
- { be_const_key_weak(_validate_param, 8), be_const_closure(class_parameterized_object__validate_param_closure) },
- { be_const_key_weak(resolve_value, 2), be_const_closure(class_parameterized_object_resolve_value_closure) },
- })),
- be_str_weak(parameterized_object)
-);
-
-/********************************************************************
-** Solidified function: ease_out
-********************************************************************/
-be_local_closure(ease_out, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(animation),
- /* K1 */ be_nested_str_weak(oscillator_value),
- /* K2 */ be_nested_str_weak(form),
- }),
- be_str_weak(ease_out),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0xB8060000, // 0000 GETNGBL R1 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x5C0C0000, // 0002 MOVE R3 R0
- 0x7C040400, // 0003 CALL R1 2
- 0x540A0006, // 0004 LDINT R2 7
- 0x90060402, // 0005 SETMBR R1 K2 R2
- 0x80040200, // 0006 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: smooth
-********************************************************************/
-be_local_closure(smooth, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(animation),
- /* K1 */ be_nested_str_weak(oscillator_value),
- /* K2 */ be_nested_str_weak(form),
- }),
- be_str_weak(smooth),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0xB8060000, // 0000 GETNGBL R1 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x5C0C0000, // 0002 MOVE R3 R0
- 0x7C040400, // 0003 CALL R1 2
- 0x540A0003, // 0004 LDINT R2 4
- 0x90060402, // 0005 SETMBR R1 K2 R2
- 0x80040200, // 0006 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified function: get_registered_events
********************************************************************/
@@ -12298,139 +13063,8 @@ be_local_closure(get_registered_events, /* name */
);
/*******************************************************************/
-
-/********************************************************************
-** Solidified function: triangle
-********************************************************************/
-be_local_closure(triangle, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(animation),
- /* K1 */ be_nested_str_weak(oscillator_value),
- /* K2 */ be_nested_str_weak(form),
- /* K3 */ be_const_int(2),
- }),
- be_str_weak(triangle),
- &be_const_str_solidified,
- ( &(const binstruction[ 6]) { /* code */
- 0xB8060000, // 0000 GETNGBL R1 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x5C0C0000, // 0002 MOVE R3 R0
- 0x7C040400, // 0003 CALL R1 2
- 0x90060503, // 0004 SETMBR R1 K2 K3
- 0x80040200, // 0005 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-// compact class 'static_color' ktab size: 3, total: 6 (saved 24 bytes)
-static const bvalue be_ktab_class_static_color[3] = {
- /* K0 */ be_nested_str_weak(color),
- /* K1 */ be_nested_str_weak(brightness),
- /* K2 */ be_nested_str_weak(apply_brightness),
-};
-
-
-extern const bclass be_class_static_color;
-
-/********************************************************************
-** Solidified function: produce_value
-********************************************************************/
-be_local_closure(class_static_color_produce_value, /* name */
- be_nested_proto(
- 9, /* nstack */
- 3, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_static_color, /* shared constants */
- be_str_weak(produce_value),
- &be_const_str_solidified,
- ( &(const binstruction[11]) { /* code */
- 0x880C0100, // 0000 GETMBR R3 R0 K0
- 0x88100101, // 0001 GETMBR R4 R0 K1
- 0x541600FE, // 0002 LDINT R5 255
- 0x20140805, // 0003 NE R5 R4 R5
- 0x78160004, // 0004 JMPF R5 #000A
- 0x8C140102, // 0005 GETMET R5 R0 K2
- 0x5C1C0600, // 0006 MOVE R7 R3
- 0x5C200800, // 0007 MOVE R8 R4
- 0x7C140600, // 0008 CALL R5 3
- 0x80040A00, // 0009 RET 1 R5
- 0x80040600, // 000A RET 1 R3
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_color_for_value
-********************************************************************/
-be_local_closure(class_static_color_get_color_for_value, /* name */
- be_nested_proto(
- 9, /* nstack */
- 3, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_static_color, /* shared constants */
- be_str_weak(get_color_for_value),
- &be_const_str_solidified,
- ( &(const binstruction[11]) { /* code */
- 0x880C0100, // 0000 GETMBR R3 R0 K0
- 0x88100101, // 0001 GETMBR R4 R0 K1
- 0x541600FE, // 0002 LDINT R5 255
- 0x20140805, // 0003 NE R5 R4 R5
- 0x78160004, // 0004 JMPF R5 #000A
- 0x8C140102, // 0005 GETMET R5 R0 K2
- 0x5C1C0600, // 0006 MOVE R7 R3
- 0x5C200800, // 0007 MOVE R8 R4
- 0x7C140600, // 0008 CALL R5 3
- 0x80040A00, // 0009 RET 1 R5
- 0x80040600, // 000A RET 1 R3
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: static_color
-********************************************************************/
-extern const bclass be_class_color_provider;
-be_local_class(static_color,
- 0,
- &be_class_color_provider,
- be_nested_map(3,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(produce_value, 1), be_const_closure(class_static_color_produce_value_closure) },
- { be_const_key_weak(PARAMS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(color, -1), be_const_bytes_instance(0400FF) },
- })) ) } )) },
- { be_const_key_weak(get_color_for_value, -1), be_const_closure(class_static_color_get_color_for_value_closure) },
- })),
- be_str_weak(static_color)
-);
-// compact class 'PaletteGradientAnimation' ktab size: 32, total: 47 (saved 120 bytes)
-static const bvalue be_ktab_class_PaletteGradientAnimation[32] = {
+// compact class 'palette_gradient' ktab size: 32, total: 47 (saved 120 bytes)
+static const bvalue be_ktab_class_palette_gradient[32] = {
/* K0 */ be_nested_str_weak(get_param),
/* K1 */ be_nested_str_weak(color_source),
/* K2 */ be_nested_str_weak(animation),
@@ -12466,12 +13100,12 @@ static const bvalue be_ktab_class_PaletteGradientAnimation[32] = {
};
-extern const bclass be_class_PaletteGradientAnimation;
+extern const bclass be_class_palette_gradient;
/********************************************************************
** Solidified function: render
********************************************************************/
-be_local_closure(class_PaletteGradientAnimation_render, /* name */
+be_local_closure(class_palette_gradient_render, /* name */
be_nested_proto(
16, /* nstack */
4, /* argc */
@@ -12481,7 +13115,7 @@ be_local_closure(class_PaletteGradientAnimation_render, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- &be_ktab_class_PaletteGradientAnimation, /* shared constants */
+ &be_ktab_class_palette_gradient, /* shared constants */
be_str_weak(render),
&be_const_str_solidified,
( &(const binstruction[75]) { /* code */
@@ -12569,7 +13203,7 @@ be_local_closure(class_PaletteGradientAnimation_render, /* name */
/********************************************************************
** Solidified function: update
********************************************************************/
-be_local_closure(class_PaletteGradientAnimation_update, /* name */
+be_local_closure(class_palette_gradient_update, /* name */
be_nested_proto(
8, /* nstack */
2, /* argc */
@@ -12579,7 +13213,7 @@ be_local_closure(class_PaletteGradientAnimation_update, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- &be_ktab_class_PaletteGradientAnimation, /* shared constants */
+ &be_ktab_class_palette_gradient, /* shared constants */
be_str_weak(update),
&be_const_str_solidified,
( &(const binstruction[18]) { /* code */
@@ -12610,7 +13244,7 @@ be_local_closure(class_PaletteGradientAnimation_update, /* name */
/********************************************************************
** Solidified function: init
********************************************************************/
-be_local_closure(class_PaletteGradientAnimation_init, /* name */
+be_local_closure(class_palette_gradient_init, /* name */
be_nested_proto(
5, /* nstack */
2, /* argc */
@@ -12620,7 +13254,7 @@ be_local_closure(class_PaletteGradientAnimation_init, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- &be_ktab_class_PaletteGradientAnimation, /* shared constants */
+ &be_ktab_class_palette_gradient, /* shared constants */
be_str_weak(init),
&be_const_str_solidified,
( &(const binstruction[12]) { /* code */
@@ -12645,7 +13279,7 @@ be_local_closure(class_PaletteGradientAnimation_init, /* name */
/********************************************************************
** Solidified function: _update_value_buffer
********************************************************************/
-be_local_closure(class_PaletteGradientAnimation__update_value_buffer, /* name */
+be_local_closure(class_palette_gradient__update_value_buffer, /* name */
be_nested_proto(
15, /* nstack */
3, /* argc */
@@ -12655,7 +13289,7 @@ be_local_closure(class_PaletteGradientAnimation__update_value_buffer, /* name
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- &be_ktab_class_PaletteGradientAnimation, /* shared constants */
+ &be_ktab_class_palette_gradient, /* shared constants */
be_str_weak(_update_value_buffer),
&be_const_str_solidified,
( &(const binstruction[72]) { /* code */
@@ -12740,7 +13374,7 @@ be_local_closure(class_PaletteGradientAnimation__update_value_buffer, /* name
/********************************************************************
** Solidified function: on_param_changed
********************************************************************/
-be_local_closure(class_PaletteGradientAnimation_on_param_changed, /* name */
+be_local_closure(class_palette_gradient_on_param_changed, /* name */
be_nested_proto(
7, /* nstack */
3, /* argc */
@@ -12750,7 +13384,7 @@ be_local_closure(class_PaletteGradientAnimation_on_param_changed, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- &be_ktab_class_PaletteGradientAnimation, /* shared constants */
+ &be_ktab_class_palette_gradient, /* shared constants */
be_str_weak(on_param_changed),
&be_const_str_solidified,
( &(const binstruction[12]) { /* code */
@@ -12775,7 +13409,7 @@ be_local_closure(class_PaletteGradientAnimation_on_param_changed, /* name */
/********************************************************************
** Solidified function: _initialize_value_buffer
********************************************************************/
-be_local_closure(class_PaletteGradientAnimation__initialize_value_buffer, /* name */
+be_local_closure(class_palette_gradient__initialize_value_buffer, /* name */
be_nested_proto(
5, /* nstack */
1, /* argc */
@@ -12785,7 +13419,7 @@ be_local_closure(class_PaletteGradientAnimation__initialize_value_buffer, /* n
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- &be_ktab_class_PaletteGradientAnimation, /* shared constants */
+ &be_ktab_class_palette_gradient, /* shared constants */
be_str_weak(_initialize_value_buffer),
&be_const_str_solidified,
( &(const binstruction[14]) { /* code */
@@ -12810,17 +13444,17 @@ be_local_closure(class_PaletteGradientAnimation__initialize_value_buffer, /* n
/********************************************************************
-** Solidified class: PaletteGradientAnimation
+** Solidified class: palette_gradient
********************************************************************/
extern const bclass be_class_Animation;
-be_local_class(PaletteGradientAnimation,
+be_local_class(palette_gradient,
3,
&be_class_Animation,
be_nested_map(10,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_weak(_spatial_period, -1), be_const_var(1) },
{ be_const_key_weak(value_buffer, -1), be_const_var(0) },
- { be_const_key_weak(on_param_changed, -1), be_const_closure(class_PaletteGradientAnimation_on_param_changed_closure) },
+ { be_const_key_weak(on_param_changed, -1), be_const_closure(class_palette_gradient_on_param_changed_closure) },
{ be_const_key_weak(PARAMS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(4,
( (struct bmapnode*) &(const bmapnode[]) {
@@ -12829,587 +13463,44 @@ be_local_class(PaletteGradientAnimation,
{ be_const_key_weak(spatial_period, -1), be_const_bytes_instance(0500000000) },
{ be_const_key_weak(phase_shift, -1), be_const_bytes_instance(07000001FF000000) },
})) ) } )) },
- { be_const_key_weak(update, -1), be_const_closure(class_PaletteGradientAnimation_update_closure) },
- { be_const_key_weak(init, -1), be_const_closure(class_PaletteGradientAnimation_init_closure) },
- { be_const_key_weak(_update_value_buffer, -1), be_const_closure(class_PaletteGradientAnimation__update_value_buffer_closure) },
- { be_const_key_weak(render, 2), be_const_closure(class_PaletteGradientAnimation_render_closure) },
+ { be_const_key_weak(update, -1), be_const_closure(class_palette_gradient_update_closure) },
+ { be_const_key_weak(init, -1), be_const_closure(class_palette_gradient_init_closure) },
+ { be_const_key_weak(_update_value_buffer, -1), be_const_closure(class_palette_gradient__update_value_buffer_closure) },
+ { be_const_key_weak(render, 2), be_const_closure(class_palette_gradient_render_closure) },
{ be_const_key_weak(_phase_shift, -1), be_const_var(2) },
- { be_const_key_weak(_initialize_value_buffer, -1), be_const_closure(class_PaletteGradientAnimation__initialize_value_buffer_closure) },
+ { be_const_key_weak(_initialize_value_buffer, -1), be_const_closure(class_palette_gradient__initialize_value_buffer_closure) },
})),
- be_str_weak(PaletteGradientAnimation)
+ be_str_weak(palette_gradient)
);
-// compact class 'engine_proxy' ktab size: 40, total: 109 (saved 552 bytes)
-static const bvalue be_ktab_class_engine_proxy[40] = {
- /* K0 */ be_nested_str_weak(engine),
- /* K1 */ be_nested_str_weak(strip_length),
- /* K2 */ be_nested_str_weak(animation),
- /* K3 */ be_nested_str_weak(sequence_manager),
- /* K4 */ be_nested_str_weak(_remove_sequence_manager),
- /* K5 */ be_nested_str_weak(value_provider),
- /* K6 */ be_nested_str_weak(_remove_value_provider),
- /* K7 */ be_nested_str_weak(_remove_animation),
- /* K8 */ be_nested_str_weak(animations),
- /* K9 */ be_nested_str_weak(find),
- /* K10 */ be_nested_str_weak(push),
- /* K11 */ be_nested_str_weak(_sort_animations_by_priority),
- /* K12 */ be_nested_str_weak(is_running),
- /* K13 */ be_nested_str_weak(start),
- /* K14 */ be_nested_str_weak(time_ms),
- /* K15 */ be_const_int(0),
- /* K16 */ be_nested_str_weak(sequences),
- /* K17 */ be_const_int(1),
- /* K18 */ be_nested_str_weak(value_providers),
- /* K19 */ be_nested_str_weak(remove),
- /* K20 */ be_nested_str_weak(iteration_stack),
- /* K21 */ be_nested_str_weak(stop),
- /* K22 */ be_nested_str_weak(_add_sequence_manager),
- /* K23 */ be_nested_str_weak(_add_value_provider),
- /* K24 */ be_nested_str_weak(_add_animation),
- /* K25 */ be_nested_str_weak(type_error),
- /* K26 */ be_nested_str_weak(only_X20Animation_X2C_X20sequence_manager_X2C_X20or_X20value_provider),
- /* K27 */ be_nested_str_weak(update),
- /* K28 */ be_nested_str_weak(start_time),
- /* K29 */ be_nested_str_weak(pop),
- /* K30 */ be_nested_str_weak(priority),
- /* K31 */ be_nested_str_weak(temp_buffer),
- /* K32 */ be_nested_str_weak(clear),
- /* K33 */ be_nested_str_weak(render),
- /* K34 */ be_nested_str_weak(post_render),
- /* K35 */ be_nested_str_weak(blend_pixels),
- /* K36 */ be_nested_str_weak(pixels),
- /* K37 */ be_nested_str_weak(stop_iteration),
- /* K38 */ be_nested_str_weak(init),
- /* K39 */ be_nested_str_weak(setup_template),
-};
-
-
-extern const bclass be_class_engine_proxy;
/********************************************************************
-** Solidified function: get_strip_length
+** Solidified function: triangle
********************************************************************/
-be_local_closure(class_engine_proxy_get_strip_length, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_engine_proxy, /* shared constants */
- be_str_weak(get_strip_length),
- &be_const_str_solidified,
- ( &(const binstruction[ 3]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x88040301, // 0001 GETMBR R1 R1 K1
- 0x80040200, // 0002 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: remove
-********************************************************************/
-be_local_closure(class_engine_proxy_remove, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_engine_proxy, /* shared constants */
- be_str_weak(remove),
- &be_const_str_solidified,
- ( &(const binstruction[34]) { /* code */
- 0x6008000F, // 0000 GETGBL R2 G15
- 0x5C0C0200, // 0001 MOVE R3 R1
- 0xB8120400, // 0002 GETNGBL R4 K2
- 0x88100903, // 0003 GETMBR R4 R4 K3
- 0x7C080400, // 0004 CALL R2 2
- 0x780A0004, // 0005 JMPF R2 #000B
- 0x8C080104, // 0006 GETMET R2 R0 K4
- 0x5C100200, // 0007 MOVE R4 R1
- 0x7C080400, // 0008 CALL R2 2
- 0x80040400, // 0009 RET 1 R2
- 0x70020015, // 000A JMP #0021
- 0x6008000F, // 000B GETGBL R2 G15
- 0x5C0C0200, // 000C MOVE R3 R1
- 0xB8120400, // 000D GETNGBL R4 K2
- 0x88100905, // 000E GETMBR R4 R4 K5
- 0x7C080400, // 000F CALL R2 2
- 0x780A0004, // 0010 JMPF R2 #0016
- 0x8C080106, // 0011 GETMET R2 R0 K6
- 0x5C100200, // 0012 MOVE R4 R1
- 0x7C080400, // 0013 CALL R2 2
- 0x80040400, // 0014 RET 1 R2
- 0x7002000A, // 0015 JMP #0021
- 0x6008000F, // 0016 GETGBL R2 G15
- 0x5C0C0200, // 0017 MOVE R3 R1
- 0xB8120400, // 0018 GETNGBL R4 K2
- 0x88100902, // 0019 GETMBR R4 R4 K2
- 0x7C080400, // 001A CALL R2 2
- 0x780A0004, // 001B JMPF R2 #0021
- 0x8C080107, // 001C GETMET R2 R0 K7
- 0x5C100200, // 001D MOVE R4 R1
- 0x7C080400, // 001E CALL R2 2
- 0x80040400, // 001F RET 1 R2
- 0x7001FFFF, // 0020 JMP #0021
- 0x80000000, // 0021 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: size_animations
-********************************************************************/
-be_local_closure(class_engine_proxy_size_animations, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_engine_proxy, /* shared constants */
- be_str_weak(size_animations),
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x6004000C, // 0000 GETGBL R1 G12
- 0x88080108, // 0001 GETMBR R2 R0 K8
- 0x7C040200, // 0002 CALL R1 1
- 0x80040200, // 0003 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _add_animation
-********************************************************************/
-be_local_closure(class_engine_proxy__add_animation, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_engine_proxy, /* shared constants */
- be_str_weak(_add_animation),
- &be_const_str_solidified,
- ( &(const binstruction[25]) { /* code */
- 0x88080108, // 0000 GETMBR R2 R0 K8
- 0x8C080509, // 0001 GETMET R2 R2 K9
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C080400, // 0003 CALL R2 2
- 0x4C0C0000, // 0004 LDNIL R3
- 0x1C080403, // 0005 EQ R2 R2 R3
- 0x780A000E, // 0006 JMPF R2 #0016
- 0x88080108, // 0007 GETMBR R2 R0 K8
- 0x8C08050A, // 0008 GETMET R2 R2 K10
- 0x5C100200, // 0009 MOVE R4 R1
- 0x7C080400, // 000A CALL R2 2
- 0x8C08010B, // 000B GETMET R2 R0 K11
- 0x7C080200, // 000C CALL R2 1
- 0x8808010C, // 000D GETMBR R2 R0 K12
- 0x780A0003, // 000E JMPF R2 #0013
- 0x8C08030D, // 000F GETMET R2 R1 K13
- 0x88100100, // 0010 GETMBR R4 R0 K0
- 0x8810090E, // 0011 GETMBR R4 R4 K14
- 0x7C080400, // 0012 CALL R2 2
- 0x50080200, // 0013 LDBOOL R2 1 0
- 0x80040400, // 0014 RET 1 R2
- 0x70020001, // 0015 JMP #0018
- 0x50080000, // 0016 LDBOOL R2 0 0
- 0x80040400, // 0017 RET 1 R2
- 0x80000000, // 0018 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: start
-********************************************************************/
-be_local_closure(class_engine_proxy_start, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_engine_proxy, /* shared constants */
- be_str_weak(start),
- &be_const_str_solidified,
- ( &(const binstruction[46]) { /* code */
- 0x60080003, // 0000 GETGBL R2 G3
- 0x5C0C0000, // 0001 MOVE R3 R0
- 0x7C080200, // 0002 CALL R2 1
- 0x8C08050D, // 0003 GETMET R2 R2 K13
- 0x5C100200, // 0004 MOVE R4 R1
- 0x7C080400, // 0005 CALL R2 2
- 0x5808000F, // 0006 LDCONST R2 K15
- 0x600C000C, // 0007 GETGBL R3 G12
- 0x88100110, // 0008 GETMBR R4 R0 K16
- 0x7C0C0200, // 0009 CALL R3 1
- 0x140C0403, // 000A LT R3 R2 R3
- 0x780E0006, // 000B JMPF R3 #0013
- 0x880C0110, // 000C GETMBR R3 R0 K16
- 0x940C0602, // 000D GETIDX R3 R3 R2
- 0x8C0C070D, // 000E GETMET R3 R3 K13
- 0x5C140200, // 000F MOVE R5 R1
- 0x7C0C0400, // 0010 CALL R3 2
- 0x00080511, // 0011 ADD R2 R2 K17
- 0x7001FFF3, // 0012 JMP #0007
- 0x5808000F, // 0013 LDCONST R2 K15
- 0x600C000C, // 0014 GETGBL R3 G12
- 0x88100112, // 0015 GETMBR R4 R0 K18
- 0x7C0C0200, // 0016 CALL R3 1
- 0x140C0403, // 0017 LT R3 R2 R3
- 0x780E0006, // 0018 JMPF R3 #0020
- 0x880C0112, // 0019 GETMBR R3 R0 K18
- 0x940C0602, // 001A GETIDX R3 R3 R2
- 0x8C0C070D, // 001B GETMET R3 R3 K13
- 0x5C140200, // 001C MOVE R5 R1
- 0x7C0C0400, // 001D CALL R3 2
- 0x00080511, // 001E ADD R2 R2 K17
- 0x7001FFF3, // 001F JMP #0014
- 0x5808000F, // 0020 LDCONST R2 K15
- 0x600C000C, // 0021 GETGBL R3 G12
- 0x88100108, // 0022 GETMBR R4 R0 K8
- 0x7C0C0200, // 0023 CALL R3 1
- 0x140C0403, // 0024 LT R3 R2 R3
- 0x780E0006, // 0025 JMPF R3 #002D
- 0x880C0108, // 0026 GETMBR R3 R0 K8
- 0x940C0602, // 0027 GETIDX R3 R3 R2
- 0x8C0C070D, // 0028 GETMET R3 R3 K13
- 0x5C140200, // 0029 MOVE R5 R1
- 0x7C0C0400, // 002A CALL R3 2
- 0x00080511, // 002B ADD R2 R2 K17
- 0x7001FFF3, // 002C JMP #0021
- 0x80040000, // 002D RET 1 R0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _remove_value_provider
-********************************************************************/
-be_local_closure(class_engine_proxy__remove_value_provider, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_engine_proxy, /* shared constants */
- be_str_weak(_remove_value_provider),
- &be_const_str_solidified,
- ( &(const binstruction[17]) { /* code */
- 0x88080112, // 0000 GETMBR R2 R0 K18
- 0x8C080509, // 0001 GETMET R2 R2 K9
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C080400, // 0003 CALL R2 2
- 0x4C0C0000, // 0004 LDNIL R3
- 0x200C0403, // 0005 NE R3 R2 R3
- 0x780E0006, // 0006 JMPF R3 #000E
- 0x880C0112, // 0007 GETMBR R3 R0 K18
- 0x8C0C0713, // 0008 GETMET R3 R3 K19
- 0x5C140400, // 0009 MOVE R5 R2
- 0x7C0C0400, // 000A CALL R3 2
- 0x500C0200, // 000B LDBOOL R3 1 0
- 0x80040600, // 000C RET 1 R3
- 0x70020001, // 000D JMP #0010
- 0x500C0000, // 000E LDBOOL R3 0 0
- 0x80040600, // 000F RET 1 R3
- 0x80000000, // 0010 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _remove_animation
-********************************************************************/
-be_local_closure(class_engine_proxy__remove_animation, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_engine_proxy, /* shared constants */
- be_str_weak(_remove_animation),
- &be_const_str_solidified,
- ( &(const binstruction[17]) { /* code */
- 0x88080108, // 0000 GETMBR R2 R0 K8
- 0x8C080509, // 0001 GETMET R2 R2 K9
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C080400, // 0003 CALL R2 2
- 0x4C0C0000, // 0004 LDNIL R3
- 0x200C0403, // 0005 NE R3 R2 R3
- 0x780E0006, // 0006 JMPF R3 #000E
- 0x880C0108, // 0007 GETMBR R3 R0 K8
- 0x8C0C0713, // 0008 GETMET R3 R3 K19
- 0x5C140400, // 0009 MOVE R5 R2
- 0x7C0C0400, // 000A CALL R3 2
- 0x500C0200, // 000B LDBOOL R3 1 0
- 0x80040600, // 000C RET 1 R3
- 0x70020001, // 000D JMP #0010
- 0x500C0000, // 000E LDBOOL R3 0 0
- 0x80040600, // 000F RET 1 R3
- 0x80000000, // 0010 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: setup_template
-********************************************************************/
-be_local_closure(class_engine_proxy_setup_template, /* name */
- be_nested_proto(
- 1, /* nstack */
- 1, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_engine_proxy, /* shared constants */
- be_str_weak(setup_template),
- &be_const_str_solidified,
- ( &(const binstruction[ 1]) { /* code */
- 0x80000000, // 0000 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: update_current_iteration
-********************************************************************/
-be_local_closure(class_engine_proxy_update_current_iteration, /* name */
- be_nested_proto(
- 4, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_engine_proxy, /* shared constants */
- be_str_weak(update_current_iteration),
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x6008000C, // 0000 GETGBL R2 G12
- 0x880C0114, // 0001 GETMBR R3 R0 K20
- 0x7C080200, // 0002 CALL R2 1
- 0x2408050F, // 0003 GT R2 R2 K15
- 0x780A0002, // 0004 JMPF R2 #0008
- 0x88080114, // 0005 GETMBR R2 R0 K20
- 0x540DFFFE, // 0006 LDINT R3 -1
- 0x98080601, // 0007 SETIDX R2 R3 R1
- 0x80000000, // 0008 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: clear
-********************************************************************/
-be_local_closure(class_engine_proxy_clear, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_engine_proxy, /* shared constants */
- be_str_weak(clear),
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0x8C040115, // 0000 GETMET R1 R0 K21
- 0x7C040200, // 0001 CALL R1 1
- 0x60040012, // 0002 GETGBL R1 G18
- 0x7C040000, // 0003 CALL R1 0
- 0x90021001, // 0004 SETMBR R0 K8 R1
- 0x60040012, // 0005 GETGBL R1 G18
- 0x7C040000, // 0006 CALL R1 0
- 0x90022001, // 0007 SETMBR R0 K16 R1
- 0x60040012, // 0008 GETGBL R1 G18
- 0x7C040000, // 0009 CALL R1 0
- 0x90022401, // 000A SETMBR R0 K18 R1
- 0x80040000, // 000B RET 1 R0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _add_value_provider
-********************************************************************/
-be_local_closure(class_engine_proxy__add_value_provider, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_engine_proxy, /* shared constants */
- be_str_weak(_add_value_provider),
- &be_const_str_solidified,
- ( &(const binstruction[17]) { /* code */
- 0x88080112, // 0000 GETMBR R2 R0 K18
- 0x8C080509, // 0001 GETMET R2 R2 K9
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C080400, // 0003 CALL R2 2
- 0x4C0C0000, // 0004 LDNIL R3
- 0x1C080403, // 0005 EQ R2 R2 R3
- 0x780A0006, // 0006 JMPF R2 #000E
- 0x88080112, // 0007 GETMBR R2 R0 K18
- 0x8C08050A, // 0008 GETMET R2 R2 K10
- 0x5C100200, // 0009 MOVE R4 R1
- 0x7C080400, // 000A CALL R2 2
- 0x50080200, // 000B LDBOOL R2 1 0
- 0x80040400, // 000C RET 1 R2
- 0x70020001, // 000D JMP #0010
- 0x50080000, // 000E LDBOOL R2 0 0
- 0x80040400, // 000F RET 1 R2
- 0x80000000, // 0010 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _add_sequence_manager
-********************************************************************/
-be_local_closure(class_engine_proxy__add_sequence_manager, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_engine_proxy, /* shared constants */
- be_str_weak(_add_sequence_manager),
- &be_const_str_solidified,
- ( &(const binstruction[17]) { /* code */
- 0x88080110, // 0000 GETMBR R2 R0 K16
- 0x8C080509, // 0001 GETMET R2 R2 K9
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C080400, // 0003 CALL R2 2
- 0x4C0C0000, // 0004 LDNIL R3
- 0x1C080403, // 0005 EQ R2 R2 R3
- 0x780A0006, // 0006 JMPF R2 #000E
- 0x88080110, // 0007 GETMBR R2 R0 K16
- 0x8C08050A, // 0008 GETMET R2 R2 K10
- 0x5C100200, // 0009 MOVE R4 R1
- 0x7C080400, // 000A CALL R2 2
- 0x50080200, // 000B LDBOOL R2 1 0
- 0x80040400, // 000C RET 1 R2
- 0x70020001, // 000D JMP #0010
- 0x50080000, // 000E LDBOOL R2 0 0
- 0x80040400, // 000F RET 1 R2
- 0x80000000, // 0010 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: stop
-********************************************************************/
-be_local_closure(class_engine_proxy_stop, /* name */
+be_local_closure(triangle, /* name */
be_nested_proto(
4, /* nstack */
1, /* argc */
- 10, /* varg */
+ 0, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- &be_ktab_class_engine_proxy, /* shared constants */
- be_str_weak(stop),
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(animation),
+ /* K1 */ be_nested_str_weak(oscillator_value),
+ /* K2 */ be_nested_str_weak(form),
+ /* K3 */ be_const_int(2),
+ }),
+ be_str_weak(triangle),
&be_const_str_solidified,
- ( &(const binstruction[30]) { /* code */
- 0x5804000F, // 0000 LDCONST R1 K15
- 0x6008000C, // 0001 GETGBL R2 G12
- 0x880C0108, // 0002 GETMBR R3 R0 K8
- 0x7C080200, // 0003 CALL R2 1
- 0x14080202, // 0004 LT R2 R1 R2
- 0x780A0005, // 0005 JMPF R2 #000C
- 0x88080108, // 0006 GETMBR R2 R0 K8
- 0x94080401, // 0007 GETIDX R2 R2 R1
- 0x8C080515, // 0008 GETMET R2 R2 K21
- 0x7C080200, // 0009 CALL R2 1
- 0x00040311, // 000A ADD R1 R1 K17
- 0x7001FFF4, // 000B JMP #0001
- 0x5804000F, // 000C LDCONST R1 K15
- 0x6008000C, // 000D GETGBL R2 G12
- 0x880C0110, // 000E GETMBR R3 R0 K16
- 0x7C080200, // 000F CALL R2 1
- 0x14080202, // 0010 LT R2 R1 R2
- 0x780A0005, // 0011 JMPF R2 #0018
- 0x88080110, // 0012 GETMBR R2 R0 K16
- 0x94080401, // 0013 GETIDX R2 R2 R1
- 0x8C080515, // 0014 GETMET R2 R2 K21
- 0x7C080200, // 0015 CALL R2 1
- 0x00040311, // 0016 ADD R1 R1 K17
- 0x7001FFF4, // 0017 JMP #000D
- 0x60080003, // 0018 GETGBL R2 G3
- 0x5C0C0000, // 0019 MOVE R3 R0
- 0x7C080200, // 001A CALL R2 1
- 0x8C080515, // 001B GETMET R2 R2 K21
- 0x7C080200, // 001C CALL R2 1
- 0x80040000, // 001D RET 1 R0
+ ( &(const binstruction[ 6]) { /* code */
+ 0xB8060000, // 0000 GETNGBL R1 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x5C0C0000, // 0002 MOVE R3 R0
+ 0x7C040400, // 0003 CALL R1 2
+ 0x90060503, // 0004 SETMBR R1 K2 K3
+ 0x80040200, // 0005 RET 1 R1
})
)
);
@@ -13417,616 +13508,9 @@ be_local_closure(class_engine_proxy_stop, /* name */
/********************************************************************
-** Solidified function: add
+** Solidified function: smooth
********************************************************************/
-be_local_closure(class_engine_proxy_add, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_engine_proxy, /* shared constants */
- be_str_weak(add),
- &be_const_str_solidified,
- ( &(const binstruction[35]) { /* code */
- 0x6008000F, // 0000 GETGBL R2 G15
- 0x5C0C0200, // 0001 MOVE R3 R1
- 0xB8120400, // 0002 GETNGBL R4 K2
- 0x88100903, // 0003 GETMBR R4 R4 K3
- 0x7C080400, // 0004 CALL R2 2
- 0x780A0004, // 0005 JMPF R2 #000B
- 0x8C080116, // 0006 GETMET R2 R0 K22
- 0x5C100200, // 0007 MOVE R4 R1
- 0x7C080400, // 0008 CALL R2 2
- 0x80040400, // 0009 RET 1 R2
- 0x70020016, // 000A JMP #0022
- 0x6008000F, // 000B GETGBL R2 G15
- 0x5C0C0200, // 000C MOVE R3 R1
- 0xB8120400, // 000D GETNGBL R4 K2
- 0x88100905, // 000E GETMBR R4 R4 K5
- 0x7C080400, // 000F CALL R2 2
- 0x780A0004, // 0010 JMPF R2 #0016
- 0x8C080117, // 0011 GETMET R2 R0 K23
- 0x5C100200, // 0012 MOVE R4 R1
- 0x7C080400, // 0013 CALL R2 2
- 0x80040400, // 0014 RET 1 R2
- 0x7002000B, // 0015 JMP #0022
- 0x6008000F, // 0016 GETGBL R2 G15
- 0x5C0C0200, // 0017 MOVE R3 R1
- 0xB8120400, // 0018 GETNGBL R4 K2
- 0x88100902, // 0019 GETMBR R4 R4 K2
- 0x7C080400, // 001A CALL R2 2
- 0x780A0004, // 001B JMPF R2 #0021
- 0x8C080118, // 001C GETMET R2 R0 K24
- 0x5C100200, // 001D MOVE R4 R1
- 0x7C080400, // 001E CALL R2 2
- 0x80040400, // 001F RET 1 R2
- 0x70020000, // 0020 JMP #0022
- 0xB006331A, // 0021 RAISE 1 K25 K26
- 0x80000000, // 0022 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: update
-********************************************************************/
-be_local_closure(class_engine_proxy_update, /* name */
- be_nested_proto(
- 8, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_engine_proxy, /* shared constants */
- be_str_weak(update),
- &be_const_str_solidified,
- ( &(const binstruction[73]) { /* code */
- 0x90021C01, // 0000 SETMBR R0 K14 R1
- 0x88080100, // 0001 GETMBR R2 R0 K0
- 0x88080501, // 0002 GETMBR R2 R2 K1
- 0x90020202, // 0003 SETMBR R0 K1 R2
- 0x60080003, // 0004 GETGBL R2 G3
- 0x5C0C0000, // 0005 MOVE R3 R0
- 0x7C080200, // 0006 CALL R2 1
- 0x8C08051B, // 0007 GETMET R2 R2 K27
- 0x5C100200, // 0008 MOVE R4 R1
- 0x7C080400, // 0009 CALL R2 2
- 0x5808000F, // 000A LDCONST R2 K15
- 0x600C000C, // 000B GETGBL R3 G12
- 0x88100112, // 000C GETMBR R4 R0 K18
- 0x7C0C0200, // 000D CALL R3 1
- 0x14100403, // 000E LT R4 R2 R3
- 0x7812000D, // 000F JMPF R4 #001E
- 0x88100112, // 0010 GETMBR R4 R0 K18
- 0x94100802, // 0011 GETIDX R4 R4 R2
- 0x8814090C, // 0012 GETMBR R5 R4 K12
- 0x78160007, // 0013 JMPF R5 #001C
- 0x8814091C, // 0014 GETMBR R5 R4 K28
- 0x4C180000, // 0015 LDNIL R6
- 0x1C140A06, // 0016 EQ R5 R5 R6
- 0x78160000, // 0017 JMPF R5 #0019
- 0x90123801, // 0018 SETMBR R4 K28 R1
- 0x8C14091B, // 0019 GETMET R5 R4 K27
- 0x5C1C0200, // 001A MOVE R7 R1
- 0x7C140400, // 001B CALL R5 2
- 0x00080511, // 001C ADD R2 R2 K17
- 0x7001FFEF, // 001D JMP #000E
- 0x5808000F, // 001E LDCONST R2 K15
- 0x6010000C, // 001F GETGBL R4 G12
- 0x88140110, // 0020 GETMBR R5 R0 K16
- 0x7C100200, // 0021 CALL R4 1
- 0x5C0C0800, // 0022 MOVE R3 R4
- 0x14100403, // 0023 LT R4 R2 R3
- 0x7812000D, // 0024 JMPF R4 #0033
- 0x88100110, // 0025 GETMBR R4 R0 K16
- 0x94100802, // 0026 GETIDX R4 R4 R2
- 0x8814090C, // 0027 GETMBR R5 R4 K12
- 0x78160007, // 0028 JMPF R5 #0031
- 0x8814091C, // 0029 GETMBR R5 R4 K28
- 0x4C180000, // 002A LDNIL R6
- 0x1C140A06, // 002B EQ R5 R5 R6
- 0x78160000, // 002C JMPF R5 #002E
- 0x90123801, // 002D SETMBR R4 K28 R1
- 0x8C14091B, // 002E GETMET R5 R4 K27
- 0x5C1C0200, // 002F MOVE R7 R1
- 0x7C140400, // 0030 CALL R5 2
- 0x00080511, // 0031 ADD R2 R2 K17
- 0x7001FFEF, // 0032 JMP #0023
- 0x5808000F, // 0033 LDCONST R2 K15
- 0x6010000C, // 0034 GETGBL R4 G12
- 0x88140108, // 0035 GETMBR R5 R0 K8
- 0x7C100200, // 0036 CALL R4 1
- 0x5C0C0800, // 0037 MOVE R3 R4
- 0x14100403, // 0038 LT R4 R2 R3
- 0x7812000D, // 0039 JMPF R4 #0048
- 0x88100108, // 003A GETMBR R4 R0 K8
- 0x94100802, // 003B GETIDX R4 R4 R2
- 0x8814090C, // 003C GETMBR R5 R4 K12
- 0x78160007, // 003D JMPF R5 #0046
- 0x8814091C, // 003E GETMBR R5 R4 K28
- 0x4C180000, // 003F LDNIL R6
- 0x1C140A06, // 0040 EQ R5 R5 R6
- 0x78160000, // 0041 JMPF R5 #0043
- 0x90123801, // 0042 SETMBR R4 K28 R1
- 0x8C14091B, // 0043 GETMET R5 R4 K27
- 0x5C1C0200, // 0044 MOVE R7 R1
- 0x7C140400, // 0045 CALL R5 2
- 0x00080511, // 0046 ADD R2 R2 K17
- 0x7001FFEF, // 0047 JMP #0038
- 0x80000000, // 0048 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: pop_iteration_context
-********************************************************************/
-be_local_closure(class_engine_proxy_pop_iteration_context, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_engine_proxy, /* shared constants */
- be_str_weak(pop_iteration_context),
- &be_const_str_solidified,
- ( &(const binstruction[11]) { /* code */
- 0x6004000C, // 0000 GETGBL R1 G12
- 0x88080114, // 0001 GETMBR R2 R0 K20
- 0x7C040200, // 0002 CALL R1 1
- 0x2404030F, // 0003 GT R1 R1 K15
- 0x78060003, // 0004 JMPF R1 #0009
- 0x88040114, // 0005 GETMBR R1 R0 K20
- 0x8C04031D, // 0006 GETMET R1 R1 K29
- 0x7C040200, // 0007 CALL R1 1
- 0x80040200, // 0008 RET 1 R1
- 0x4C040000, // 0009 LDNIL R1
- 0x80040200, // 000A RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _remove_sequence_manager
-********************************************************************/
-be_local_closure(class_engine_proxy__remove_sequence_manager, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_engine_proxy, /* shared constants */
- be_str_weak(_remove_sequence_manager),
- &be_const_str_solidified,
- ( &(const binstruction[17]) { /* code */
- 0x88080110, // 0000 GETMBR R2 R0 K16
- 0x8C080509, // 0001 GETMET R2 R2 K9
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C080400, // 0003 CALL R2 2
- 0x4C0C0000, // 0004 LDNIL R3
- 0x200C0403, // 0005 NE R3 R2 R3
- 0x780E0006, // 0006 JMPF R3 #000E
- 0x880C0110, // 0007 GETMBR R3 R0 K16
- 0x8C0C0713, // 0008 GETMET R3 R3 K19
- 0x5C140400, // 0009 MOVE R5 R2
- 0x7C0C0400, // 000A CALL R3 2
- 0x500C0200, // 000B LDBOOL R3 1 0
- 0x80040600, // 000C RET 1 R3
- 0x70020001, // 000D JMP #0010
- 0x500C0000, // 000E LDBOOL R3 0 0
- 0x80040600, // 000F RET 1 R3
- 0x80000000, // 0010 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: is_empty
-********************************************************************/
-be_local_closure(class_engine_proxy_is_empty, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_engine_proxy, /* shared constants */
- be_str_weak(is_empty),
- &be_const_str_solidified,
- ( &(const binstruction[18]) { /* code */
- 0x6004000C, // 0000 GETGBL R1 G12
- 0x88080108, // 0001 GETMBR R2 R0 K8
- 0x7C040200, // 0002 CALL R1 1
- 0x1C04030F, // 0003 EQ R1 R1 K15
- 0x78060009, // 0004 JMPF R1 #000F
- 0x6004000C, // 0005 GETGBL R1 G12
- 0x88080110, // 0006 GETMBR R2 R0 K16
- 0x7C040200, // 0007 CALL R1 1
- 0x1C04030F, // 0008 EQ R1 R1 K15
- 0x78060004, // 0009 JMPF R1 #000F
- 0x6004000C, // 000A GETGBL R1 G12
- 0x88080112, // 000B GETMBR R2 R0 K18
- 0x7C040200, // 000C CALL R1 1
- 0x1C04030F, // 000D EQ R1 R1 K15
- 0x74060000, // 000E JMPT R1 #0010
- 0x50040001, // 000F LDBOOL R1 0 1
- 0x50040200, // 0010 LDBOOL R1 1 0
- 0x80040200, // 0011 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _sort_animations_by_priority
-********************************************************************/
-be_local_closure(class_engine_proxy__sort_animations_by_priority, /* name */
- be_nested_proto(
- 9, /* nstack */
- 1, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_engine_proxy, /* shared constants */
- be_str_weak(_sort_animations_by_priority),
- &be_const_str_solidified,
- ( &(const binstruction[48]) { /* code */
- 0x6004000C, // 0000 GETGBL R1 G12
- 0x88080108, // 0001 GETMBR R2 R0 K8
- 0x7C040200, // 0002 CALL R1 1
- 0x18080311, // 0003 LE R2 R1 K17
- 0x780A0000, // 0004 JMPF R2 #0006
- 0x80000400, // 0005 RET 0
- 0x58080011, // 0006 LDCONST R2 K17
- 0x140C0401, // 0007 LT R3 R2 R1
- 0x780E0025, // 0008 JMPF R3 #002F
- 0x880C0108, // 0009 GETMBR R3 R0 K8
- 0x940C0602, // 000A GETIDX R3 R3 R2
- 0x6010000F, // 000B GETGBL R4 G15
- 0x5C140600, // 000C MOVE R5 R3
- 0xB81A0400, // 000D GETNGBL R6 K2
- 0x88180D02, // 000E GETMBR R6 R6 K2
- 0x7C100400, // 000F CALL R4 2
- 0x74120001, // 0010 JMPT R4 #0013
- 0x00080511, // 0011 ADD R2 R2 K17
- 0x7001FFF3, // 0012 JMP #0007
- 0x5C100400, // 0013 MOVE R4 R2
- 0x2414090F, // 0014 GT R5 R4 K15
- 0x78160014, // 0015 JMPF R5 #002B
- 0x04140911, // 0016 SUB R5 R4 K17
- 0x88180108, // 0017 GETMBR R6 R0 K8
- 0x94140C05, // 0018 GETIDX R5 R6 R5
- 0x6018000F, // 0019 GETGBL R6 G15
- 0x5C1C0A00, // 001A MOVE R7 R5
- 0xB8220400, // 001B GETNGBL R8 K2
- 0x88201102, // 001C GETMBR R8 R8 K2
- 0x7C180400, // 001D CALL R6 2
- 0x781A0003, // 001E JMPF R6 #0023
- 0x88180B1E, // 001F GETMBR R6 R5 K30
- 0x881C071E, // 0020 GETMBR R7 R3 K30
- 0x28180C07, // 0021 GE R6 R6 R7
- 0x781A0000, // 0022 JMPF R6 #0024
- 0x70020006, // 0023 JMP #002B
- 0x88180108, // 0024 GETMBR R6 R0 K8
- 0x041C0911, // 0025 SUB R7 R4 K17
- 0x88200108, // 0026 GETMBR R8 R0 K8
- 0x941C1007, // 0027 GETIDX R7 R8 R7
- 0x98180807, // 0028 SETIDX R6 R4 R7
- 0x04100911, // 0029 SUB R4 R4 K17
- 0x7001FFE8, // 002A JMP #0014
- 0x88140108, // 002B GETMBR R5 R0 K8
- 0x98140803, // 002C SETIDX R5 R4 R3
- 0x00080511, // 002D ADD R2 R2 K17
- 0x7001FFD7, // 002E JMP #0007
- 0x80000000, // 002F RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: render
-********************************************************************/
-be_local_closure(class_engine_proxy_render, /* name */
- be_nested_proto(
- 14, /* nstack */
- 4, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_engine_proxy, /* shared constants */
- be_str_weak(render),
- &be_const_str_solidified,
- ( &(const binstruction[45]) { /* code */
- 0x8810010C, // 0000 GETMBR R4 R0 K12
- 0x78120002, // 0001 JMPF R4 #0005
- 0x4C100000, // 0002 LDNIL R4
- 0x1C100204, // 0003 EQ R4 R1 R4
- 0x78120001, // 0004 JMPF R4 #0007
- 0x50100000, // 0005 LDBOOL R4 0 0
- 0x80040800, // 0006 RET 1 R4
- 0x4C100000, // 0007 LDNIL R4
- 0x1C100604, // 0008 EQ R4 R3 R4
- 0x78120000, // 0009 JMPF R4 #000B
- 0x880C0101, // 000A GETMBR R3 R0 K1
- 0x50100000, // 000B LDBOOL R4 0 0
- 0x5814000F, // 000C LDCONST R5 K15
- 0x6018000C, // 000D GETGBL R6 G12
- 0x881C0108, // 000E GETMBR R7 R0 K8
- 0x7C180200, // 000F CALL R6 1
- 0x141C0A06, // 0010 LT R7 R5 R6
- 0x781E0019, // 0011 JMPF R7 #002C
- 0x881C0108, // 0012 GETMBR R7 R0 K8
- 0x941C0E05, // 0013 GETIDX R7 R7 R5
- 0x88200F0C, // 0014 GETMBR R8 R7 K12
- 0x78220013, // 0015 JMPF R8 #002A
- 0x8820011F, // 0016 GETMBR R8 R0 K31
- 0x8C201120, // 0017 GETMET R8 R8 K32
- 0x7C200200, // 0018 CALL R8 1
- 0x8C200F21, // 0019 GETMET R8 R7 K33
- 0x8828011F, // 001A GETMBR R10 R0 K31
- 0x5C2C0400, // 001B MOVE R11 R2
- 0x5C300600, // 001C MOVE R12 R3
- 0x7C200800, // 001D CALL R8 4
- 0x7822000A, // 001E JMPF R8 #002A
- 0x8C240F22, // 001F GETMET R9 R7 K34
- 0x882C011F, // 0020 GETMBR R11 R0 K31
- 0x5C300400, // 0021 MOVE R12 R2
- 0x5C340600, // 0022 MOVE R13 R3
- 0x7C240800, // 0023 CALL R9 4
- 0x8C240323, // 0024 GETMET R9 R1 K35
- 0x882C0324, // 0025 GETMBR R11 R1 K36
- 0x8830011F, // 0026 GETMBR R12 R0 K31
- 0x88301924, // 0027 GETMBR R12 R12 K36
- 0x7C240600, // 0028 CALL R9 3
- 0x50100200, // 0029 LDBOOL R4 1 0
- 0x00140B11, // 002A ADD R5 R5 K17
- 0x7001FFE3, // 002B JMP #0010
- 0x80040800, // 002C RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_current_iteration_number
-********************************************************************/
-be_local_closure(class_engine_proxy_get_current_iteration_number, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_engine_proxy, /* shared constants */
- be_str_weak(get_current_iteration_number),
- &be_const_str_solidified,
- ( &(const binstruction[11]) { /* code */
- 0x6004000C, // 0000 GETGBL R1 G12
- 0x88080114, // 0001 GETMBR R2 R0 K20
- 0x7C040200, // 0002 CALL R1 1
- 0x2404030F, // 0003 GT R1 R1 K15
- 0x78060003, // 0004 JMPF R1 #0009
- 0x88040114, // 0005 GETMBR R1 R0 K20
- 0x5409FFFE, // 0006 LDINT R2 -1
- 0x94040202, // 0007 GETIDX R1 R1 R2
- 0x80040200, // 0008 RET 1 R1
- 0x4C040000, // 0009 LDNIL R1
- 0x80040200, // 000A RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: push_iteration_context
-********************************************************************/
-be_local_closure(class_engine_proxy_push_iteration_context, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_engine_proxy, /* shared constants */
- be_str_weak(push_iteration_context),
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x88080114, // 0000 GETMBR R2 R0 K20
- 0x8C08050A, // 0001 GETMET R2 R2 K10
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C080400, // 0003 CALL R2 2
- 0x80000000, // 0004 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_animations
-********************************************************************/
-be_local_closure(class_engine_proxy_get_animations, /* name */
- be_nested_proto(
- 7, /* nstack */
- 1, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_engine_proxy, /* shared constants */
- be_str_weak(get_animations),
- &be_const_str_solidified,
- ( &(const binstruction[22]) { /* code */
- 0x60040012, // 0000 GETGBL R1 G18
- 0x7C040000, // 0001 CALL R1 0
- 0x60080010, // 0002 GETGBL R2 G16
- 0x880C0108, // 0003 GETMBR R3 R0 K8
- 0x7C080200, // 0004 CALL R2 1
- 0xA802000B, // 0005 EXBLK 0 #0012
- 0x5C0C0400, // 0006 MOVE R3 R2
- 0x7C0C0000, // 0007 CALL R3 0
- 0x6010000F, // 0008 GETGBL R4 G15
- 0x5C140600, // 0009 MOVE R5 R3
- 0xB81A0400, // 000A GETNGBL R6 K2
- 0x88180D02, // 000B GETMBR R6 R6 K2
- 0x7C100400, // 000C CALL R4 2
- 0x78120002, // 000D JMPF R4 #0011
- 0x8C10030A, // 000E GETMET R4 R1 K10
- 0x5C180600, // 000F MOVE R6 R3
- 0x7C100400, // 0010 CALL R4 2
- 0x7001FFF3, // 0011 JMP #0006
- 0x58080025, // 0012 LDCONST R2 K37
- 0xAC080200, // 0013 CATCH R2 1 0
- 0xB0080000, // 0014 RAISE 2 R0 R0
- 0x80040200, // 0015 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(class_engine_proxy_init, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_engine_proxy, /* shared constants */
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[25]) { /* code */
- 0x60080003, // 0000 GETGBL R2 G3
- 0x5C0C0000, // 0001 MOVE R3 R0
- 0x7C080200, // 0002 CALL R2 1
- 0x8C080526, // 0003 GETMET R2 R2 K38
- 0x5C100200, // 0004 MOVE R4 R1
- 0x7C080400, // 0005 CALL R2 2
- 0x88080100, // 0006 GETMBR R2 R0 K0
- 0x8808051F, // 0007 GETMBR R2 R2 K31
- 0x90023E02, // 0008 SETMBR R0 K31 R2
- 0x60080012, // 0009 GETGBL R2 G18
- 0x7C080000, // 000A CALL R2 0
- 0x90021002, // 000B SETMBR R0 K8 R2
- 0x60080012, // 000C GETGBL R2 G18
- 0x7C080000, // 000D CALL R2 0
- 0x90022002, // 000E SETMBR R0 K16 R2
- 0x60080012, // 000F GETGBL R2 G18
- 0x7C080000, // 0010 CALL R2 0
- 0x90022402, // 0011 SETMBR R0 K18 R2
- 0x60080012, // 0012 GETGBL R2 G18
- 0x7C080000, // 0013 CALL R2 0
- 0x90022802, // 0014 SETMBR R0 K20 R2
- 0x90021D0F, // 0015 SETMBR R0 K14 K15
- 0x8C080127, // 0016 GETMET R2 R0 K39
- 0x7C080200, // 0017 CALL R2 1
- 0x80000000, // 0018 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: engine_proxy
-********************************************************************/
-extern const bclass be_class_Animation;
-be_local_class(engine_proxy,
- 7,
- &be_class_Animation,
- be_nested_map(31,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(get_strip_length, -1), be_const_closure(class_engine_proxy_get_strip_length_closure) },
- { be_const_key_weak(remove, -1), be_const_closure(class_engine_proxy_remove_closure) },
- { be_const_key_weak(size_animations, 23), be_const_closure(class_engine_proxy_size_animations_closure) },
- { be_const_key_weak(_add_animation, 24), be_const_closure(class_engine_proxy__add_animation_closure) },
- { be_const_key_weak(start, -1), be_const_closure(class_engine_proxy_start_closure) },
- { be_const_key_weak(value_providers, 19), be_const_var(2) },
- { be_const_key_weak(setup_template, -1), be_const_closure(class_engine_proxy_setup_template_closure) },
- { be_const_key_weak(_remove_animation, -1), be_const_closure(class_engine_proxy__remove_animation_closure) },
- { be_const_key_weak(animations, 6), be_const_var(0) },
- { be_const_key_weak(update_current_iteration, -1), be_const_closure(class_engine_proxy_update_current_iteration_closure) },
- { be_const_key_weak(clear, -1), be_const_closure(class_engine_proxy_clear_closure) },
- { be_const_key_weak(_add_value_provider, 12), be_const_closure(class_engine_proxy__add_value_provider_closure) },
- { be_const_key_weak(stop, -1), be_const_closure(class_engine_proxy_stop_closure) },
- { be_const_key_weak(strip_length, -1), be_const_var(3) },
- { be_const_key_weak(_add_sequence_manager, -1), be_const_closure(class_engine_proxy__add_sequence_manager_closure) },
- { be_const_key_weak(push_iteration_context, 22), be_const_closure(class_engine_proxy_push_iteration_context_closure) },
- { be_const_key_weak(add, -1), be_const_closure(class_engine_proxy_add_closure) },
- { be_const_key_weak(update, -1), be_const_closure(class_engine_proxy_update_closure) },
- { be_const_key_weak(_remove_value_provider, 27), be_const_closure(class_engine_proxy__remove_value_provider_closure) },
- { be_const_key_weak(pop_iteration_context, -1), be_const_closure(class_engine_proxy_pop_iteration_context_closure) },
- { be_const_key_weak(_remove_sequence_manager, -1), be_const_closure(class_engine_proxy__remove_sequence_manager_closure) },
- { be_const_key_weak(is_empty, -1), be_const_closure(class_engine_proxy_is_empty_closure) },
- { be_const_key_weak(sequences, -1), be_const_var(1) },
- { be_const_key_weak(time_ms, 8), be_const_var(6) },
- { be_const_key_weak(_sort_animations_by_priority, -1), be_const_closure(class_engine_proxy__sort_animations_by_priority_closure) },
- { be_const_key_weak(render, 15), be_const_closure(class_engine_proxy_render_closure) },
- { be_const_key_weak(get_current_iteration_number, -1), be_const_closure(class_engine_proxy_get_current_iteration_number_closure) },
- { be_const_key_weak(iteration_stack, -1), be_const_var(5) },
- { be_const_key_weak(get_animations, -1), be_const_closure(class_engine_proxy_get_animations_closure) },
- { be_const_key_weak(init, -1), be_const_closure(class_engine_proxy_init_closure) },
- { be_const_key_weak(temp_buffer, -1), be_const_var(4) },
- })),
- be_str_weak(engine_proxy)
-);
-
-/********************************************************************
-** Solidified function: cosine_osc
-********************************************************************/
-be_local_closure(cosine_osc, /* name */
+be_local_closure(smooth, /* name */
be_nested_proto(
4, /* nstack */
1, /* argc */
@@ -14041,7 +13525,7 @@ be_local_closure(cosine_osc, /* name */
/* K1 */ be_nested_str_weak(oscillator_value),
/* K2 */ be_nested_str_weak(form),
}),
- be_str_weak(cosine_osc),
+ be_str_weak(smooth),
&be_const_str_solidified,
( &(const binstruction[ 7]) { /* code */
0xB8060000, // 0000 GETNGBL R1 K0
@@ -14056,38 +13540,157 @@ be_local_closure(cosine_osc, /* name */
);
/*******************************************************************/
+// compact class 'EventHandler' ktab size: 7, total: 11 (saved 32 bytes)
+static const bvalue be_ktab_class_EventHandler[7] = {
+ /* K0 */ be_nested_str_weak(is_active),
+ /* K1 */ be_nested_str_weak(condition),
+ /* K2 */ be_nested_str_weak(callback_func),
+ /* K3 */ be_nested_str_weak(event_name),
+ /* K4 */ be_nested_str_weak(priority),
+ /* K5 */ be_const_int(0),
+ /* K6 */ be_nested_str_weak(metadata),
+};
+
+
+extern const bclass be_class_EventHandler;
/********************************************************************
-** Solidified function: clear_all_event_handlers
+** Solidified function: set_active
********************************************************************/
-be_local_closure(clear_all_event_handlers, /* name */
+be_local_closure(class_EventHandler_set_active, /* name */
be_nested_proto(
2, /* nstack */
- 0, /* argc */
- 0, /* varg */
+ 2, /* argc */
+ 10, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(animation),
- /* K1 */ be_nested_str_weak(event_manager),
- /* K2 */ be_nested_str_weak(clear_all_handlers),
- }),
- be_str_weak(clear_all_event_handlers),
+ &be_ktab_class_EventHandler, /* shared constants */
+ be_str_weak(set_active),
&be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0xB8020000, // 0000 GETNGBL R0 K0
- 0x88000101, // 0001 GETMBR R0 R0 K1
- 0x8C000102, // 0002 GETMET R0 R0 K2
- 0x7C000200, // 0003 CALL R0 1
- 0x80000000, // 0004 RET 0
+ ( &(const binstruction[ 2]) { /* code */
+ 0x90020001, // 0000 SETMBR R0 K0 R1
+ 0x80000000, // 0001 RET 0
})
)
);
/*******************************************************************/
+
+/********************************************************************
+** Solidified function: execute
+********************************************************************/
+be_local_closure(class_EventHandler_execute, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_EventHandler, /* shared constants */
+ be_str_weak(execute),
+ &be_const_str_solidified,
+ ( &(const binstruction[25]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x740A0001, // 0001 JMPT R2 #0004
+ 0x50080000, // 0002 LDBOOL R2 0 0
+ 0x80040400, // 0003 RET 1 R2
+ 0x88080101, // 0004 GETMBR R2 R0 K1
+ 0x4C0C0000, // 0005 LDNIL R3
+ 0x20080403, // 0006 NE R2 R2 R3
+ 0x780A0005, // 0007 JMPF R2 #000E
+ 0x8C080101, // 0008 GETMET R2 R0 K1
+ 0x5C100200, // 0009 MOVE R4 R1
+ 0x7C080400, // 000A CALL R2 2
+ 0x740A0001, // 000B JMPT R2 #000E
+ 0x50080000, // 000C LDBOOL R2 0 0
+ 0x80040400, // 000D RET 1 R2
+ 0x88080102, // 000E GETMBR R2 R0 K2
+ 0x4C0C0000, // 000F LDNIL R3
+ 0x20080403, // 0010 NE R2 R2 R3
+ 0x780A0004, // 0011 JMPF R2 #0017
+ 0x8C080102, // 0012 GETMET R2 R0 K2
+ 0x5C100200, // 0013 MOVE R4 R1
+ 0x7C080400, // 0014 CALL R2 2
+ 0x50080200, // 0015 LDBOOL R2 1 0
+ 0x80040400, // 0016 RET 1 R2
+ 0x50080000, // 0017 LDBOOL R2 0 0
+ 0x80040400, // 0018 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+be_local_closure(class_EventHandler_init, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 6, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_EventHandler, /* shared constants */
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[21]) { /* code */
+ 0x90020601, // 0000 SETMBR R0 K3 R1
+ 0x90020402, // 0001 SETMBR R0 K2 R2
+ 0x4C180000, // 0002 LDNIL R6
+ 0x20180606, // 0003 NE R6 R3 R6
+ 0x781A0001, // 0004 JMPF R6 #0007
+ 0x5C180600, // 0005 MOVE R6 R3
+ 0x70020000, // 0006 JMP #0008
+ 0x58180005, // 0007 LDCONST R6 K5
+ 0x90020806, // 0008 SETMBR R0 K4 R6
+ 0x90020204, // 0009 SETMBR R0 K1 R4
+ 0x50180200, // 000A LDBOOL R6 1 0
+ 0x90020006, // 000B SETMBR R0 K0 R6
+ 0x4C180000, // 000C LDNIL R6
+ 0x20180A06, // 000D NE R6 R5 R6
+ 0x781A0001, // 000E JMPF R6 #0011
+ 0x5C180A00, // 000F MOVE R6 R5
+ 0x70020001, // 0010 JMP #0013
+ 0x60180013, // 0011 GETGBL R6 G19
+ 0x7C180000, // 0012 CALL R6 0
+ 0x90020C06, // 0013 SETMBR R0 K6 R6
+ 0x80000000, // 0014 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified class: EventHandler
+********************************************************************/
+be_local_class(EventHandler,
+ 6,
+ NULL,
+ be_nested_map(9,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(set_active, -1), be_const_closure(class_EventHandler_set_active_closure) },
+ { be_const_key_weak(execute, 2), be_const_closure(class_EventHandler_execute_closure) },
+ { be_const_key_weak(callback_func, -1), be_const_var(1) },
+ { be_const_key_weak(init, -1), be_const_closure(class_EventHandler_init_closure) },
+ { be_const_key_weak(event_name, -1), be_const_var(0) },
+ { be_const_key_weak(condition, -1), be_const_var(2) },
+ { be_const_key_weak(priority, 3), be_const_var(3) },
+ { be_const_key_weak(metadata, -1), be_const_var(5) },
+ { be_const_key_weak(is_active, -1), be_const_var(4) },
+ })),
+ be_str_weak(EventHandler)
+);
// compact class 'frame_buffer' ktab size: 20, total: 40 (saved 160 bytes)
static const bvalue be_ktab_class_frame_buffer[20] = {
/* K0 */ be_nested_str_weak(pixels),
@@ -14461,51 +14064,174 @@ be_local_class(frame_buffer,
})),
be_str_weak(frame_buffer)
);
-// compact class 'WaveAnimation' ktab size: 32, total: 52 (saved 160 bytes)
-static const bvalue be_ktab_class_WaveAnimation[32] = {
- /* K0 */ be_nested_str_weak(update),
- /* K1 */ be_nested_str_weak(wave_speed),
- /* K2 */ be_const_int(0),
- /* K3 */ be_nested_str_weak(start_time),
- /* K4 */ be_nested_str_weak(tasmota),
- /* K5 */ be_nested_str_weak(scale_uint),
- /* K6 */ be_nested_str_weak(time_offset),
- /* K7 */ be_nested_str_weak(_calculate_wave),
- /* K8 */ be_nested_str_weak(init),
- /* K9 */ be_nested_str_weak(current_colors),
- /* K10 */ be_nested_str_weak(wave_table),
- /* K11 */ be_nested_str_weak(_init_wave_table),
- /* K12 */ be_nested_str_weak(engine),
- /* K13 */ be_nested_str_weak(strip_length),
- /* K14 */ be_nested_str_weak(frequency),
- /* K15 */ be_nested_str_weak(phase),
- /* K16 */ be_nested_str_weak(amplitude),
- /* K17 */ be_nested_str_weak(center_level),
- /* K18 */ be_nested_str_weak(back_color),
- /* K19 */ be_nested_str_weak(color),
- /* K20 */ be_nested_str_weak(size),
- /* K21 */ be_nested_str_weak(resize),
- /* K22 */ be_const_int(1),
- /* K23 */ be_nested_str_weak(animation),
- /* K24 */ be_nested_str_weak(is_color_provider),
- /* K25 */ be_nested_str_weak(get_color_for_value),
- /* K26 */ be_nested_str_weak(resolve_value),
- /* K27 */ be_nested_str_weak(width),
- /* K28 */ be_nested_str_weak(set_pixel_color),
- /* K29 */ be_nested_str_weak(on_param_changed),
- /* K30 */ be_nested_str_weak(wave_type),
- /* K31 */ be_const_int(2),
+// compact class 'static_color' ktab size: 3, total: 6 (saved 24 bytes)
+static const bvalue be_ktab_class_static_color[3] = {
+ /* K0 */ be_nested_str_weak(color),
+ /* K1 */ be_nested_str_weak(brightness),
+ /* K2 */ be_nested_str_weak(apply_brightness),
};
-extern const bclass be_class_WaveAnimation;
+extern const bclass be_class_static_color;
/********************************************************************
-** Solidified function: update
+** Solidified function: produce_value
********************************************************************/
-be_local_closure(class_WaveAnimation_update, /* name */
+be_local_closure(class_static_color_produce_value, /* name */
be_nested_proto(
- 11, /* nstack */
+ 9, /* nstack */
+ 3, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_static_color, /* shared constants */
+ be_str_weak(produce_value),
+ &be_const_str_solidified,
+ ( &(const binstruction[11]) { /* code */
+ 0x880C0100, // 0000 GETMBR R3 R0 K0
+ 0x88100101, // 0001 GETMBR R4 R0 K1
+ 0x541600FE, // 0002 LDINT R5 255
+ 0x20140805, // 0003 NE R5 R4 R5
+ 0x78160004, // 0004 JMPF R5 #000A
+ 0x8C140102, // 0005 GETMET R5 R0 K2
+ 0x5C1C0600, // 0006 MOVE R7 R3
+ 0x5C200800, // 0007 MOVE R8 R4
+ 0x7C140600, // 0008 CALL R5 3
+ 0x80040A00, // 0009 RET 1 R5
+ 0x80040600, // 000A RET 1 R3
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_color_for_value
+********************************************************************/
+be_local_closure(class_static_color_get_color_for_value, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 3, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_static_color, /* shared constants */
+ be_str_weak(get_color_for_value),
+ &be_const_str_solidified,
+ ( &(const binstruction[11]) { /* code */
+ 0x880C0100, // 0000 GETMBR R3 R0 K0
+ 0x88100101, // 0001 GETMBR R4 R0 K1
+ 0x541600FE, // 0002 LDINT R5 255
+ 0x20140805, // 0003 NE R5 R4 R5
+ 0x78160004, // 0004 JMPF R5 #000A
+ 0x8C140102, // 0005 GETMET R5 R0 K2
+ 0x5C1C0600, // 0006 MOVE R7 R3
+ 0x5C200800, // 0007 MOVE R8 R4
+ 0x7C140600, // 0008 CALL R5 3
+ 0x80040A00, // 0009 RET 1 R5
+ 0x80040600, // 000A RET 1 R3
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified class: static_color
+********************************************************************/
+extern const bclass be_class_color_provider;
+be_local_class(static_color,
+ 0,
+ &be_class_color_provider,
+ be_nested_map(3,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(produce_value, 1), be_const_closure(class_static_color_produce_value_closure) },
+ { be_const_key_weak(PARAMS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(1,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(color, -1), be_const_bytes_instance(0400FF) },
+ })) ) } )) },
+ { be_const_key_weak(get_color_for_value, -1), be_const_closure(class_static_color_get_color_for_value_closure) },
+ })),
+ be_str_weak(static_color)
+);
+
+/********************************************************************
+** Solidified function: square
+********************************************************************/
+be_local_closure(square, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 0, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(animation),
+ /* K1 */ be_nested_str_weak(oscillator_value),
+ /* K2 */ be_nested_str_weak(form),
+ /* K3 */ be_const_int(3),
+ }),
+ be_str_weak(square),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 6]) { /* code */
+ 0xB8060000, // 0000 GETNGBL R1 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x5C0C0000, // 0002 MOVE R3 R0
+ 0x7C040400, // 0003 CALL R1 2
+ 0x90060503, // 0004 SETMBR R1 K2 K3
+ 0x80040200, // 0005 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+// compact class 'Animation' ktab size: 24, total: 32 (saved 64 bytes)
+static const bvalue be_ktab_class_Animation[24] = {
+ /* K0 */ be_nested_str_weak(get_color_at),
+ /* K1 */ be_const_int(0),
+ /* K2 */ be_nested_str_weak(init),
+ /* K3 */ be_nested_str_weak(member),
+ /* K4 */ be_nested_str_weak(color),
+ /* K5 */ be_nested_str_weak(fill_pixels),
+ /* K6 */ be_nested_str_weak(pixels),
+ /* K7 */ be_nested_str_weak(animation),
+ /* K8 */ be_nested_str_weak(opacity_frame),
+ /* K9 */ be_nested_str_weak(width),
+ /* K10 */ be_nested_str_weak(frame_buffer),
+ /* K11 */ be_nested_str_weak(clear),
+ /* K12 */ be_nested_str_weak(is_running),
+ /* K13 */ be_nested_str_weak(start),
+ /* K14 */ be_nested_str_weak(start_time),
+ /* K15 */ be_nested_str_weak(update),
+ /* K16 */ be_nested_str_weak(render),
+ /* K17 */ be_nested_str_weak(apply_opacity),
+ /* K18 */ be_nested_str_weak(opacity),
+ /* K19 */ be_nested_str_weak(int),
+ /* K20 */ be_nested_str_weak(_apply_opacity),
+ /* K21 */ be_nested_str_weak(get_param_value),
+ /* K22 */ be_nested_str_weak(duration),
+ /* K23 */ be_nested_str_weak(loop),
+};
+
+
+extern const bclass be_class_Animation;
+
+/********************************************************************
+** Solidified function: get_color
+********************************************************************/
+be_local_closure(class_Animation_get_color, /* name */
+ be_nested_proto(
+ 6, /* nstack */
2, /* argc */
10, /* varg */
0, /* has upvals */
@@ -14513,41 +14239,15 @@ be_local_closure(class_WaveAnimation_update, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- &be_ktab_class_WaveAnimation, /* shared constants */
- be_str_weak(update),
+ &be_ktab_class_Animation, /* shared constants */
+ be_str_weak(get_color),
&be_const_str_solidified,
- ( &(const binstruction[31]) { /* code */
- 0x60080003, // 0000 GETGBL R2 G3
- 0x5C0C0000, // 0001 MOVE R3 R0
- 0x7C080200, // 0002 CALL R2 1
- 0x8C080500, // 0003 GETMET R2 R2 K0
- 0x5C100200, // 0004 MOVE R4 R1
- 0x7C080400, // 0005 CALL R2 2
- 0x88080101, // 0006 GETMBR R2 R0 K1
- 0x240C0502, // 0007 GT R3 R2 K2
- 0x780E0011, // 0008 JMPF R3 #001B
- 0x880C0103, // 0009 GETMBR R3 R0 K3
- 0x040C0203, // 000A SUB R3 R1 R3
- 0xB8120800, // 000B GETNGBL R4 K4
- 0x8C100905, // 000C GETMET R4 R4 K5
- 0x5C180400, // 000D MOVE R6 R2
- 0x581C0002, // 000E LDCONST R7 K2
- 0x542200FE, // 000F LDINT R8 255
- 0x58240002, // 0010 LDCONST R9 K2
- 0x542A0009, // 0011 LDINT R10 10
- 0x7C100C00, // 0012 CALL R4 6
- 0x24140902, // 0013 GT R5 R4 K2
- 0x78160005, // 0014 JMPF R5 #001B
- 0x08140604, // 0015 MUL R5 R3 R4
- 0x541A03E7, // 0016 LDINT R6 1000
- 0x0C140A06, // 0017 DIV R5 R5 R6
- 0x541A00FF, // 0018 LDINT R6 256
- 0x10140A06, // 0019 MOD R5 R5 R6
- 0x90020C05, // 001A SETMBR R0 K6 R5
- 0x8C0C0107, // 001B GETMET R3 R0 K7
- 0x5C140200, // 001C MOVE R5 R1
- 0x7C0C0400, // 001D CALL R3 2
- 0x80000000, // 001E RET 0
+ ( &(const binstruction[ 5]) { /* code */
+ 0x8C080100, // 0000 GETMET R2 R0 K0
+ 0x58100001, // 0001 LDCONST R4 K1
+ 0x5C140200, // 0002 MOVE R5 R1
+ 0x7C080600, // 0003 CALL R2 3
+ 0x80040400, // 0004 RET 1 R2
})
)
);
@@ -14557,7 +14257,7 @@ be_local_closure(class_WaveAnimation_update, /* name */
/********************************************************************
** Solidified function: init
********************************************************************/
-be_local_closure(class_WaveAnimation_init, /* name */
+be_local_closure(class_Animation_init, /* name */
be_nested_proto(
5, /* nstack */
2, /* argc */
@@ -14567,217 +14267,17 @@ be_local_closure(class_WaveAnimation_init, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- &be_ktab_class_WaveAnimation, /* shared constants */
+ &be_ktab_class_Animation, /* shared constants */
be_str_weak(init),
&be_const_str_solidified,
- ( &(const binstruction[16]) { /* code */
+ ( &(const binstruction[ 7]) { /* code */
0x60080003, // 0000 GETGBL R2 G3
0x5C0C0000, // 0001 MOVE R3 R0
0x7C080200, // 0002 CALL R2 1
- 0x8C080508, // 0003 GETMET R2 R2 K8
+ 0x8C080502, // 0003 GETMET R2 R2 K2
0x5C100200, // 0004 MOVE R4 R1
0x7C080400, // 0005 CALL R2 2
- 0x60080012, // 0006 GETGBL R2 G18
- 0x7C080000, // 0007 CALL R2 0
- 0x90021202, // 0008 SETMBR R0 K9 R2
- 0x90020D02, // 0009 SETMBR R0 K6 K2
- 0x60080012, // 000A GETGBL R2 G18
- 0x7C080000, // 000B CALL R2 0
- 0x90021402, // 000C SETMBR R0 K10 R2
- 0x8C08010B, // 000D GETMET R2 R0 K11
- 0x7C080200, // 000E CALL R2 1
- 0x80000000, // 000F RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _calculate_wave
-********************************************************************/
-be_local_closure(class_WaveAnimation__calculate_wave, /* name */
- be_nested_proto(
- 27, /* nstack */
- 2, /* argc */
- 10, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- &be_ktab_class_WaveAnimation, /* shared constants */
- be_str_weak(_calculate_wave),
- &be_const_str_solidified,
- ( &(const binstruction[168]) { /* code */
- 0x8808010C, // 0000 GETMBR R2 R0 K12
- 0x8808050D, // 0001 GETMBR R2 R2 K13
- 0x880C010E, // 0002 GETMBR R3 R0 K14
- 0x8810010F, // 0003 GETMBR R4 R0 K15
- 0x88140110, // 0004 GETMBR R5 R0 K16
- 0x88180111, // 0005 GETMBR R6 R0 K17
- 0x881C0112, // 0006 GETMBR R7 R0 K18
- 0x88200113, // 0007 GETMBR R8 R0 K19
- 0x88240109, // 0008 GETMBR R9 R0 K9
- 0x8C241314, // 0009 GETMET R9 R9 K20
- 0x7C240200, // 000A CALL R9 1
- 0x20241202, // 000B NE R9 R9 R2
- 0x78260003, // 000C JMPF R9 #0011
- 0x88240109, // 000D GETMBR R9 R0 K9
- 0x8C241315, // 000E GETMET R9 R9 K21
- 0x5C2C0400, // 000F MOVE R11 R2
- 0x7C240400, // 0010 CALL R9 2
- 0x58240002, // 0011 LDCONST R9 K2
- 0x14281202, // 0012 LT R10 R9 R2
- 0x782A0092, // 0013 JMPF R10 #00A7
- 0xB82A0800, // 0014 GETNGBL R10 K4
- 0x8C281505, // 0015 GETMET R10 R10 K5
- 0x5C301200, // 0016 MOVE R12 R9
- 0x58340002, // 0017 LDCONST R13 K2
- 0x04380516, // 0018 SUB R14 R2 K22
- 0x583C0002, // 0019 LDCONST R15 K2
- 0x544200FE, // 001A LDINT R16 255
- 0x7C280C00, // 001B CALL R10 6
- 0x082C1403, // 001C MUL R11 R10 R3
- 0x5432001F, // 001D LDINT R12 32
- 0x0C2C160C, // 001E DIV R11 R11 R12
- 0x002C1604, // 001F ADD R11 R11 R4
- 0x88300106, // 0020 GETMBR R12 R0 K6
- 0x002C160C, // 0021 ADD R11 R11 R12
- 0x543200FE, // 0022 LDINT R12 255
- 0x2C2C160C, // 0023 AND R11 R11 R12
- 0x8830010A, // 0024 GETMBR R12 R0 K10
- 0x9430180B, // 0025 GETIDX R12 R12 R11
- 0xB8360800, // 0026 GETNGBL R13 K4
- 0x8C341B05, // 0027 GETMET R13 R13 K5
- 0x5C3C0A00, // 0028 MOVE R15 R5
- 0x58400002, // 0029 LDCONST R16 K2
- 0x544600FE, // 002A LDINT R17 255
- 0x58480002, // 002B LDCONST R18 K2
- 0x544E007F, // 002C LDINT R19 128
- 0x7C340C00, // 002D CALL R13 6
- 0x58380002, // 002E LDCONST R14 K2
- 0x543E007F, // 002F LDINT R15 128
- 0x283C180F, // 0030 GE R15 R12 R15
- 0x783E000D, // 0031 JMPF R15 #0040
- 0x543E007F, // 0032 LDINT R15 128
- 0x043C180F, // 0033 SUB R15 R12 R15
- 0xB8420800, // 0034 GETNGBL R16 K4
- 0x8C402105, // 0035 GETMET R16 R16 K5
- 0x5C481E00, // 0036 MOVE R18 R15
- 0x584C0002, // 0037 LDCONST R19 K2
- 0x5452007E, // 0038 LDINT R20 127
- 0x58540002, // 0039 LDCONST R21 K2
- 0x5C581A00, // 003A MOVE R22 R13
- 0x7C400C00, // 003B CALL R16 6
- 0x5C3C2000, // 003C MOVE R15 R16
- 0x00400C0F, // 003D ADD R16 R6 R15
- 0x5C382000, // 003E MOVE R14 R16
- 0x7002000C, // 003F JMP #004D
- 0x543E007F, // 0040 LDINT R15 128
- 0x043C1E0C, // 0041 SUB R15 R15 R12
- 0xB8420800, // 0042 GETNGBL R16 K4
- 0x8C402105, // 0043 GETMET R16 R16 K5
- 0x5C481E00, // 0044 MOVE R18 R15
- 0x584C0002, // 0045 LDCONST R19 K2
- 0x5452007F, // 0046 LDINT R20 128
- 0x58540002, // 0047 LDCONST R21 K2
- 0x5C581A00, // 0048 MOVE R22 R13
- 0x7C400C00, // 0049 CALL R16 6
- 0x5C3C2000, // 004A MOVE R15 R16
- 0x04400C0F, // 004B SUB R16 R6 R15
- 0x5C382000, // 004C MOVE R14 R16
- 0x543E00FE, // 004D LDINT R15 255
- 0x243C1C0F, // 004E GT R15 R14 R15
- 0x783E0001, // 004F JMPF R15 #0052
- 0x543A00FE, // 0050 LDINT R14 255
- 0x70020002, // 0051 JMP #0055
- 0x143C1D02, // 0052 LT R15 R14 K2
- 0x783E0000, // 0053 JMPF R15 #0055
- 0x58380002, // 0054 LDCONST R14 K2
- 0x5C3C0E00, // 0055 MOVE R15 R7
- 0x54420009, // 0056 LDINT R16 10
- 0x24401C10, // 0057 GT R16 R14 R16
- 0x78420049, // 0058 JMPF R16 #00A3
- 0xB8422E00, // 0059 GETNGBL R16 K23
- 0x8C402118, // 005A GETMET R16 R16 K24
- 0x5C481000, // 005B MOVE R18 R8
- 0x7C400400, // 005C CALL R16 2
- 0x78420009, // 005D JMPF R16 #0068
- 0x88401119, // 005E GETMBR R16 R8 K25
- 0x4C440000, // 005F LDNIL R17
- 0x20402011, // 0060 NE R16 R16 R17
- 0x78420005, // 0061 JMPF R16 #0068
- 0x8C401119, // 0062 GETMET R16 R8 K25
- 0x5C481C00, // 0063 MOVE R18 R14
- 0x584C0002, // 0064 LDCONST R19 K2
- 0x7C400600, // 0065 CALL R16 3
- 0x5C3C2000, // 0066 MOVE R15 R16
- 0x7002003A, // 0067 JMP #00A3
- 0x8C40011A, // 0068 GETMET R16 R0 K26
- 0x5C481000, // 0069 MOVE R18 R8
- 0x584C0013, // 006A LDCONST R19 K19
- 0x54520009, // 006B LDINT R20 10
- 0x08501C14, // 006C MUL R20 R14 R20
- 0x00500214, // 006D ADD R20 R1 R20
- 0x7C400800, // 006E CALL R16 4
- 0x5C3C2000, // 006F MOVE R15 R16
- 0x54420017, // 0070 LDINT R16 24
- 0x3C401E10, // 0071 SHR R16 R15 R16
- 0x544600FE, // 0072 LDINT R17 255
- 0x2C402011, // 0073 AND R16 R16 R17
- 0x5446000F, // 0074 LDINT R17 16
- 0x3C441E11, // 0075 SHR R17 R15 R17
- 0x544A00FE, // 0076 LDINT R18 255
- 0x2C442212, // 0077 AND R17 R17 R18
- 0x544A0007, // 0078 LDINT R18 8
- 0x3C481E12, // 0079 SHR R18 R15 R18
- 0x544E00FE, // 007A LDINT R19 255
- 0x2C482413, // 007B AND R18 R18 R19
- 0x544E00FE, // 007C LDINT R19 255
- 0x2C4C1E13, // 007D AND R19 R15 R19
- 0xB8520800, // 007E GETNGBL R20 K4
- 0x8C502905, // 007F GETMET R20 R20 K5
- 0x5C581C00, // 0080 MOVE R22 R14
- 0x585C0002, // 0081 LDCONST R23 K2
- 0x546200FE, // 0082 LDINT R24 255
- 0x58640002, // 0083 LDCONST R25 K2
- 0x5C682200, // 0084 MOVE R26 R17
- 0x7C500C00, // 0085 CALL R20 6
- 0x5C442800, // 0086 MOVE R17 R20
- 0xB8520800, // 0087 GETNGBL R20 K4
- 0x8C502905, // 0088 GETMET R20 R20 K5
- 0x5C581C00, // 0089 MOVE R22 R14
- 0x585C0002, // 008A LDCONST R23 K2
- 0x546200FE, // 008B LDINT R24 255
- 0x58640002, // 008C LDCONST R25 K2
- 0x5C682400, // 008D MOVE R26 R18
- 0x7C500C00, // 008E CALL R20 6
- 0x5C482800, // 008F MOVE R18 R20
- 0xB8520800, // 0090 GETNGBL R20 K4
- 0x8C502905, // 0091 GETMET R20 R20 K5
- 0x5C581C00, // 0092 MOVE R22 R14
- 0x585C0002, // 0093 LDCONST R23 K2
- 0x546200FE, // 0094 LDINT R24 255
- 0x58640002, // 0095 LDCONST R25 K2
- 0x5C682600, // 0096 MOVE R26 R19
- 0x7C500C00, // 0097 CALL R20 6
- 0x5C4C2800, // 0098 MOVE R19 R20
- 0x54520017, // 0099 LDINT R20 24
- 0x38502014, // 009A SHL R20 R16 R20
- 0x5456000F, // 009B LDINT R21 16
- 0x38542215, // 009C SHL R21 R17 R21
- 0x30502815, // 009D OR R20 R20 R21
- 0x54560007, // 009E LDINT R21 8
- 0x38542415, // 009F SHL R21 R18 R21
- 0x30502815, // 00A0 OR R20 R20 R21
- 0x30502813, // 00A1 OR R20 R20 R19
- 0x5C3C2800, // 00A2 MOVE R15 R20
- 0x88400109, // 00A3 GETMBR R16 R0 K9
- 0x9840120F, // 00A4 SETIDX R16 R9 R15
- 0x00241316, // 00A5 ADD R9 R9 K22
- 0x7001FF6A, // 00A6 JMP #0012
- 0x80000000, // 00A7 RET 0
+ 0x80000000, // 0006 RET 0
})
)
);
@@ -14787,7 +14287,7 @@ be_local_closure(class_WaveAnimation__calculate_wave, /* name */
/********************************************************************
** Solidified function: render
********************************************************************/
-be_local_closure(class_WaveAnimation_render, /* name */
+be_local_closure(class_Animation_render, /* name */
be_nested_proto(
9, /* nstack */
4, /* argc */
@@ -14797,30 +14297,21 @@ be_local_closure(class_WaveAnimation_render, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- &be_ktab_class_WaveAnimation, /* shared constants */
+ &be_ktab_class_Animation, /* shared constants */
be_str_weak(render),
&be_const_str_solidified,
- ( &(const binstruction[20]) { /* code */
- 0x58100002, // 0000 LDCONST R4 K2
- 0x14140803, // 0001 LT R5 R4 R3
- 0x7816000E, // 0002 JMPF R5 #0012
- 0x8814031B, // 0003 GETMBR R5 R1 K27
- 0x14140805, // 0004 LT R5 R4 R5
- 0x78160009, // 0005 JMPF R5 #0010
- 0x88140109, // 0006 GETMBR R5 R0 K9
- 0x8C140B14, // 0007 GETMET R5 R5 K20
- 0x7C140200, // 0008 CALL R5 1
- 0x14140805, // 0009 LT R5 R4 R5
- 0x78160004, // 000A JMPF R5 #0010
- 0x8C14031C, // 000B GETMET R5 R1 K28
- 0x5C1C0800, // 000C MOVE R7 R4
- 0x88200109, // 000D GETMBR R8 R0 K9
- 0x94201004, // 000E GETIDX R8 R8 R4
- 0x7C140600, // 000F CALL R5 3
- 0x00100916, // 0010 ADD R4 R4 K22
- 0x7001FFEE, // 0011 JMP #0001
- 0x50140200, // 0012 LDBOOL R5 1 0
- 0x80040A00, // 0013 RET 1 R5
+ ( &(const binstruction[11]) { /* code */
+ 0x8C100103, // 0000 GETMET R4 R0 K3
+ 0x58180004, // 0001 LDCONST R6 K4
+ 0x7C100400, // 0002 CALL R4 2
+ 0x20140901, // 0003 NE R5 R4 K1
+ 0x78160003, // 0004 JMPF R5 #0009
+ 0x8C140305, // 0005 GETMET R5 R1 K5
+ 0x881C0306, // 0006 GETMBR R7 R1 K6
+ 0x5C200800, // 0007 MOVE R8 R4
+ 0x7C140600, // 0008 CALL R5 3
+ 0x50140200, // 0009 LDBOOL R5 1 0
+ 0x80040A00, // 000A RET 1 R5
})
)
);
@@ -14828,9 +14319,121 @@ be_local_closure(class_WaveAnimation_render, /* name */
/********************************************************************
-** Solidified function: on_param_changed
+** Solidified function: _apply_opacity
********************************************************************/
-be_local_closure(class_WaveAnimation_on_param_changed, /* name */
+be_local_closure(class_Animation__apply_opacity, /* name */
+ be_nested_proto(
+ 11, /* nstack */
+ 5, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_Animation, /* shared constants */
+ be_str_weak(_apply_opacity),
+ &be_const_str_solidified,
+ ( &(const binstruction[43]) { /* code */
+ 0x6014000F, // 0000 GETGBL R5 G15
+ 0x5C180400, // 0001 MOVE R6 R2
+ 0xB81E0E00, // 0002 GETNGBL R7 K7
+ 0x881C0F07, // 0003 GETMBR R7 R7 K7
+ 0x7C140400, // 0004 CALL R5 2
+ 0x78160023, // 0005 JMPF R5 #002A
+ 0x5C140400, // 0006 MOVE R5 R2
+ 0x88180108, // 0007 GETMBR R6 R0 K8
+ 0x4C1C0000, // 0008 LDNIL R7
+ 0x1C180C07, // 0009 EQ R6 R6 R7
+ 0x741A0004, // 000A JMPT R6 #0010
+ 0x88180108, // 000B GETMBR R6 R0 K8
+ 0x88180D09, // 000C GETMBR R6 R6 K9
+ 0x881C0309, // 000D GETMBR R7 R1 K9
+ 0x20180C07, // 000E NE R6 R6 R7
+ 0x781A0004, // 000F JMPF R6 #0015
+ 0xB81A0E00, // 0010 GETNGBL R6 K7
+ 0x8C180D0A, // 0011 GETMET R6 R6 K10
+ 0x88200309, // 0012 GETMBR R8 R1 K9
+ 0x7C180400, // 0013 CALL R6 2
+ 0x90021006, // 0014 SETMBR R0 K8 R6
+ 0x88180108, // 0015 GETMBR R6 R0 K8
+ 0x8C180D0B, // 0016 GETMET R6 R6 K11
+ 0x7C180200, // 0017 CALL R6 1
+ 0x88180B0C, // 0018 GETMBR R6 R5 K12
+ 0x741A0002, // 0019 JMPT R6 #001D
+ 0x8C180B0D, // 001A GETMET R6 R5 K13
+ 0x8820010E, // 001B GETMBR R8 R0 K14
+ 0x7C180400, // 001C CALL R6 2
+ 0x8C180B0F, // 001D GETMET R6 R5 K15
+ 0x5C200600, // 001E MOVE R8 R3
+ 0x7C180400, // 001F CALL R6 2
+ 0x8C180B10, // 0020 GETMET R6 R5 K16
+ 0x88200108, // 0021 GETMBR R8 R0 K8
+ 0x5C240600, // 0022 MOVE R9 R3
+ 0x5C280800, // 0023 MOVE R10 R4
+ 0x7C180800, // 0024 CALL R6 4
+ 0x8C180311, // 0025 GETMET R6 R1 K17
+ 0x88200306, // 0026 GETMBR R8 R1 K6
+ 0x88240108, // 0027 GETMBR R9 R0 K8
+ 0x88241306, // 0028 GETMBR R9 R9 K6
+ 0x7C180600, // 0029 CALL R6 3
+ 0x80000000, // 002A RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: post_render
+********************************************************************/
+be_local_closure(class_Animation_post_render, /* name */
+ be_nested_proto(
+ 11, /* nstack */
+ 4, /* argc */
+ 10, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ &be_ktab_class_Animation, /* shared constants */
+ be_str_weak(post_render),
+ &be_const_str_solidified,
+ ( &(const binstruction[23]) { /* code */
+ 0x88100112, // 0000 GETMBR R4 R0 K18
+ 0x541600FE, // 0001 LDINT R5 255
+ 0x1C140805, // 0002 EQ R5 R4 R5
+ 0x78160001, // 0003 JMPF R5 #0006
+ 0x80000A00, // 0004 RET 0
+ 0x7002000F, // 0005 JMP #0016
+ 0x60140004, // 0006 GETGBL R5 G4
+ 0x5C180800, // 0007 MOVE R6 R4
+ 0x7C140200, // 0008 CALL R5 1
+ 0x1C140B13, // 0009 EQ R5 R5 K19
+ 0x78160004, // 000A JMPF R5 #0010
+ 0x8C140311, // 000B GETMET R5 R1 K17
+ 0x881C0306, // 000C GETMBR R7 R1 K6
+ 0x5C200800, // 000D MOVE R8 R4
+ 0x7C140600, // 000E CALL R5 3
+ 0x70020005, // 000F JMP #0016
+ 0x8C140114, // 0010 GETMET R5 R0 K20
+ 0x5C1C0200, // 0011 MOVE R7 R1
+ 0x5C200800, // 0012 MOVE R8 R4
+ 0x5C240400, // 0013 MOVE R9 R2
+ 0x5C280600, // 0014 MOVE R10 R3
+ 0x7C140A00, // 0015 CALL R5 5
+ 0x80000000, // 0016 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_color_at
+********************************************************************/
+be_local_closure(class_Animation_get_color_at, /* name */
be_nested_proto(
7, /* nstack */
3, /* argc */
@@ -14840,22 +14443,15 @@ be_local_closure(class_WaveAnimation_on_param_changed, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- &be_ktab_class_WaveAnimation, /* shared constants */
- be_str_weak(on_param_changed),
+ &be_ktab_class_Animation, /* shared constants */
+ be_str_weak(get_color_at),
&be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0x600C0003, // 0000 GETGBL R3 G3
- 0x5C100000, // 0001 MOVE R4 R0
- 0x7C0C0200, // 0002 CALL R3 1
- 0x8C0C071D, // 0003 GETMET R3 R3 K29
- 0x5C140200, // 0004 MOVE R5 R1
- 0x5C180400, // 0005 MOVE R6 R2
- 0x7C0C0600, // 0006 CALL R3 3
- 0x1C0C031E, // 0007 EQ R3 R1 K30
- 0x780E0001, // 0008 JMPF R3 #000B
- 0x8C0C010B, // 0009 GETMET R3 R0 K11
- 0x7C0C0200, // 000A CALL R3 1
- 0x80000000, // 000B RET 0
+ ( &(const binstruction[ 5]) { /* code */
+ 0x8C0C0115, // 0000 GETMET R3 R0 K21
+ 0x58140004, // 0001 LDCONST R5 K4
+ 0x5C180400, // 0002 MOVE R6 R2
+ 0x7C0C0600, // 0003 CALL R3 3
+ 0x80040600, // 0004 RET 1 R3
})
)
);
@@ -14863,130 +14459,40 @@ be_local_closure(class_WaveAnimation_on_param_changed, /* name */
/********************************************************************
-** Solidified function: _init_wave_table
+** Solidified function: update
********************************************************************/
-be_local_closure(class_WaveAnimation__init_wave_table, /* name */
+be_local_closure(class_Animation_update, /* name */
be_nested_proto(
- 12, /* nstack */
- 1, /* argc */
+ 8, /* nstack */
+ 2, /* argc */
10, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- &be_ktab_class_WaveAnimation, /* shared constants */
- be_str_weak(_init_wave_table),
+ &be_ktab_class_Animation, /* shared constants */
+ be_str_weak(update),
&be_const_str_solidified,
- ( &(const binstruction[108]) { /* code */
- 0x8804010A, // 0000 GETMBR R1 R0 K10
- 0x8C040315, // 0001 GETMET R1 R1 K21
- 0x540E00FF, // 0002 LDINT R3 256
- 0x7C040400, // 0003 CALL R1 2
- 0x8804011E, // 0004 GETMBR R1 R0 K30
- 0x58080002, // 0005 LDCONST R2 K2
- 0x540E00FF, // 0006 LDINT R3 256
- 0x140C0403, // 0007 LT R3 R2 R3
- 0x780E0061, // 0008 JMPF R3 #006B
- 0x580C0002, // 0009 LDCONST R3 K2
- 0x1C100302, // 000A EQ R4 R1 K2
- 0x78120035, // 000B JMPF R4 #0042
- 0x5412003F, // 000C LDINT R4 64
- 0x10100404, // 000D MOD R4 R2 R4
- 0x5416003F, // 000E LDINT R5 64
- 0x14140405, // 000F LT R5 R2 R5
- 0x78160009, // 0010 JMPF R5 #001B
- 0xB8160800, // 0011 GETNGBL R5 K4
- 0x8C140B05, // 0012 GETMET R5 R5 K5
- 0x5C1C0800, // 0013 MOVE R7 R4
- 0x58200002, // 0014 LDCONST R8 K2
- 0x5426003F, // 0015 LDINT R9 64
- 0x542A007F, // 0016 LDINT R10 128
- 0x542E00FE, // 0017 LDINT R11 255
- 0x7C140C00, // 0018 CALL R5 6
- 0x5C0C0A00, // 0019 MOVE R3 R5
- 0x70020025, // 001A JMP #0041
- 0x5416007F, // 001B LDINT R5 128
- 0x14140405, // 001C LT R5 R2 R5
- 0x7816000A, // 001D JMPF R5 #0029
- 0xB8160800, // 001E GETNGBL R5 K4
- 0x8C140B05, // 001F GETMET R5 R5 K5
- 0x541E007F, // 0020 LDINT R7 128
- 0x041C0E02, // 0021 SUB R7 R7 R2
- 0x58200002, // 0022 LDCONST R8 K2
- 0x5426003F, // 0023 LDINT R9 64
- 0x542A007F, // 0024 LDINT R10 128
- 0x542E00FE, // 0025 LDINT R11 255
- 0x7C140C00, // 0026 CALL R5 6
- 0x5C0C0A00, // 0027 MOVE R3 R5
- 0x70020017, // 0028 JMP #0041
- 0x541600BF, // 0029 LDINT R5 192
- 0x14140405, // 002A LT R5 R2 R5
- 0x7816000A, // 002B JMPF R5 #0037
- 0xB8160800, // 002C GETNGBL R5 K4
- 0x8C140B05, // 002D GETMET R5 R5 K5
- 0x541E007F, // 002E LDINT R7 128
- 0x041C0407, // 002F SUB R7 R2 R7
- 0x58200002, // 0030 LDCONST R8 K2
- 0x5426003F, // 0031 LDINT R9 64
- 0x542A007F, // 0032 LDINT R10 128
- 0x582C0002, // 0033 LDCONST R11 K2
- 0x7C140C00, // 0034 CALL R5 6
- 0x5C0C0A00, // 0035 MOVE R3 R5
- 0x70020009, // 0036 JMP #0041
- 0xB8160800, // 0037 GETNGBL R5 K4
- 0x8C140B05, // 0038 GETMET R5 R5 K5
- 0x541E00FF, // 0039 LDINT R7 256
- 0x041C0E02, // 003A SUB R7 R7 R2
- 0x58200002, // 003B LDCONST R8 K2
- 0x5426003F, // 003C LDINT R9 64
- 0x542A007F, // 003D LDINT R10 128
- 0x582C0002, // 003E LDCONST R11 K2
- 0x7C140C00, // 003F CALL R5 6
- 0x5C0C0A00, // 0040 MOVE R3 R5
- 0x70020024, // 0041 JMP #0067
- 0x1C100316, // 0042 EQ R4 R1 K22
- 0x78120017, // 0043 JMPF R4 #005C
- 0x5412007F, // 0044 LDINT R4 128
- 0x14100404, // 0045 LT R4 R2 R4
- 0x78120009, // 0046 JMPF R4 #0051
- 0xB8120800, // 0047 GETNGBL R4 K4
- 0x8C100905, // 0048 GETMET R4 R4 K5
- 0x5C180400, // 0049 MOVE R6 R2
- 0x581C0002, // 004A LDCONST R7 K2
- 0x5422007F, // 004B LDINT R8 128
- 0x58240002, // 004C LDCONST R9 K2
- 0x542A00FE, // 004D LDINT R10 255
- 0x7C100C00, // 004E CALL R4 6
- 0x5C0C0800, // 004F MOVE R3 R4
- 0x70020009, // 0050 JMP #005B
- 0xB8120800, // 0051 GETNGBL R4 K4
- 0x8C100905, // 0052 GETMET R4 R4 K5
- 0x541A00FF, // 0053 LDINT R6 256
- 0x04180C02, // 0054 SUB R6 R6 R2
- 0x581C0002, // 0055 LDCONST R7 K2
- 0x5422007F, // 0056 LDINT R8 128
- 0x58240002, // 0057 LDCONST R9 K2
- 0x542A00FE, // 0058 LDINT R10 255
- 0x7C100C00, // 0059 CALL R4 6
- 0x5C0C0800, // 005A MOVE R3 R4
- 0x7002000A, // 005B JMP #0067
- 0x1C10031F, // 005C EQ R4 R1 K31
- 0x78120007, // 005D JMPF R4 #0066
- 0x5412007F, // 005E LDINT R4 128
- 0x14100404, // 005F LT R4 R2 R4
- 0x78120001, // 0060 JMPF R4 #0063
- 0x541200FE, // 0061 LDINT R4 255
- 0x70020000, // 0062 JMP #0064
- 0x58100002, // 0063 LDCONST R4 K2
- 0x5C0C0800, // 0064 MOVE R3 R4
- 0x70020000, // 0065 JMP #0067
- 0x5C0C0400, // 0066 MOVE R3 R2
- 0x8810010A, // 0067 GETMBR R4 R0 K10
- 0x98100403, // 0068 SETIDX R4 R2 R3
- 0x00080516, // 0069 ADD R2 R2 K22
- 0x7001FF9A, // 006A JMP #0006
- 0x80000000, // 006B RET 0
+ ( &(const binstruction[18]) { /* code */
+ 0x88080116, // 0000 GETMBR R2 R0 K22
+ 0x240C0501, // 0001 GT R3 R2 K1
+ 0x780E000D, // 0002 JMPF R3 #0011
+ 0x880C010E, // 0003 GETMBR R3 R0 K14
+ 0x040C0203, // 0004 SUB R3 R1 R3
+ 0x28100602, // 0005 GE R4 R3 R2
+ 0x78120009, // 0006 JMPF R4 #0011
+ 0x88100117, // 0007 GETMBR R4 R0 K23
+ 0x78120005, // 0008 JMPF R4 #000F
+ 0x0C140602, // 0009 DIV R5 R3 R2
+ 0x8818010E, // 000A GETMBR R6 R0 K14
+ 0x081C0A02, // 000B MUL R7 R5 R2
+ 0x00180C07, // 000C ADD R6 R6 R7
+ 0x90021C06, // 000D SETMBR R0 K14 R6
+ 0x70020001, // 000E JMP #0011
+ 0x50140000, // 000F LDBOOL R5 0 0
+ 0x90021805, // 0010 SETMBR R0 K12 R5
+ 0x80000000, // 0011 RET 0
})
)
);
@@ -14994,104 +14500,96 @@ be_local_closure(class_WaveAnimation__init_wave_table, /* name */
/********************************************************************
-** Solidified class: WaveAnimation
+** Solidified class: Animation
********************************************************************/
-extern const bclass be_class_Animation;
-be_local_class(WaveAnimation,
- 3,
- &be_class_Animation,
- be_nested_map(10,
+extern const bclass be_class_parameterized_object;
+be_local_class(Animation,
+ 1,
+ &be_class_parameterized_object,
+ be_nested_map(9,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(time_offset, -1), be_const_var(1) },
- { be_const_key_weak(current_colors, -1), be_const_var(0) },
- { be_const_key_weak(on_param_changed, -1), be_const_closure(class_WaveAnimation_on_param_changed_closure) },
- { be_const_key_weak(PARAMS, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(8,
+ { be_const_key_weak(update, 1), be_const_closure(class_Animation_update_closure) },
+ { be_const_key_weak(get_color_at, -1), be_const_closure(class_Animation_get_color_at_closure) },
+ { be_const_key_weak(PARAMS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(phase, 7), be_const_bytes_instance(07000001FF000000) },
- { be_const_key_weak(center_level, 3), be_const_bytes_instance(07000001FF00018000) },
- { be_const_key_weak(amplitude, -1), be_const_bytes_instance(07000001FF00018000) },
- { be_const_key_weak(frequency, 5), be_const_bytes_instance(07000001FF000020) },
- { be_const_key_weak(wave_speed, -1), be_const_bytes_instance(07000001FF000032) },
- { be_const_key_weak(wave_type, -1), be_const_bytes_instance(07000000030000) },
- { be_const_key_weak(back_color, -1), be_const_bytes_instance(0402000000FF) },
- { be_const_key_weak(color, -1), be_const_bytes_instance(04020000FFFF) },
+ { be_const_key_weak(id, -1), be_const_bytes_instance(0C030001) },
+ { be_const_key_weak(priority, -1), be_const_bytes_instance(050000000A) },
+ { be_const_key_weak(color, -1), be_const_bytes_instance(040000) },
+ { be_const_key_weak(loop, 1), be_const_bytes_instance(0C050003) },
+ { be_const_key_weak(opacity, 2), be_const_bytes_instance(0C01FF0004) },
+ { be_const_key_weak(duration, -1), be_const_bytes_instance(0500000000) },
})) ) } )) },
- { be_const_key_weak(update, -1), be_const_closure(class_WaveAnimation_update_closure) },
- { be_const_key_weak(wave_table, 8), be_const_var(2) },
- { be_const_key_weak(_calculate_wave, -1), be_const_closure(class_WaveAnimation__calculate_wave_closure) },
- { be_const_key_weak(render, 2), be_const_closure(class_WaveAnimation_render_closure) },
- { be_const_key_weak(init, -1), be_const_closure(class_WaveAnimation_init_closure) },
- { be_const_key_weak(_init_wave_table, -1), be_const_closure(class_WaveAnimation__init_wave_table_closure) },
+ { be_const_key_weak(opacity_frame, -1), be_const_var(0) },
+ { be_const_key_weak(_apply_opacity, -1), be_const_closure(class_Animation__apply_opacity_closure) },
+ { be_const_key_weak(get_color, 8), be_const_closure(class_Animation_get_color_closure) },
+ { be_const_key_weak(init, 2), be_const_closure(class_Animation_init_closure) },
+ { be_const_key_weak(render, 0), be_const_closure(class_Animation_render_closure) },
+ { be_const_key_weak(post_render, -1), be_const_closure(class_Animation_post_render_closure) },
})),
- be_str_weak(WaveAnimation)
+ be_str_weak(Animation)
);
/********************************************************************
-** Solidified function: animation_init_strip
+** Solidified function: cosine_osc
********************************************************************/
-be_local_closure(animation_init_strip, /* name */
+be_local_closure(cosine_osc, /* name */
be_nested_proto(
- 10, /* nstack */
+ 4, /* nstack */
1, /* argc */
- 1, /* varg */
+ 0, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
- ( &(const bvalue[10]) { /* constants */
- /* K0 */ be_nested_str_weak(global),
- /* K1 */ be_nested_str_weak(animation),
- /* K2 */ be_nested_str_weak(introspect),
- /* K3 */ be_nested_str_weak(contains),
- /* K4 */ be_nested_str_weak(_engines),
- /* K5 */ be_nested_str_weak(find),
- /* K6 */ be_nested_str_weak(stop),
- /* K7 */ be_nested_str_weak(clear),
- /* K8 */ be_nested_str_weak(Leds),
- /* K9 */ be_nested_str_weak(create_engine),
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(animation),
+ /* K1 */ be_nested_str_weak(oscillator_value),
+ /* K2 */ be_nested_str_weak(form),
}),
- be_str_weak(animation_init_strip),
+ be_str_weak(cosine_osc),
&be_const_str_solidified,
- ( &(const binstruction[37]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0xA40A0200, // 0001 IMPORT R2 K1
- 0xA40E0400, // 0002 IMPORT R3 K2
- 0x8C100703, // 0003 GETMET R4 R3 K3
- 0x5C180400, // 0004 MOVE R6 R2
- 0x581C0004, // 0005 LDCONST R7 K4
- 0x7C100600, // 0006 CALL R4 3
- 0x74120002, // 0007 JMPT R4 #000B
- 0x60100013, // 0008 GETGBL R4 G19
- 0x7C100000, // 0009 CALL R4 0
- 0x900A0804, // 000A SETMBR R2 K4 R4
- 0x60100008, // 000B GETGBL R4 G8
- 0x5C140000, // 000C MOVE R5 R0
- 0x7C100200, // 000D CALL R4 1
- 0x88140504, // 000E GETMBR R5 R2 K4
- 0x8C140B05, // 000F GETMET R5 R5 K5
- 0x5C1C0800, // 0010 MOVE R7 R4
- 0x7C140400, // 0011 CALL R5 2
- 0x4C180000, // 0012 LDNIL R6
- 0x20180A06, // 0013 NE R6 R5 R6
- 0x781A0004, // 0014 JMPF R6 #001A
- 0x8C180B06, // 0015 GETMET R6 R5 K6
- 0x7C180200, // 0016 CALL R6 1
- 0x8C180B07, // 0017 GETMET R6 R5 K7
- 0x7C180200, // 0018 CALL R6 1
- 0x70020009, // 0019 JMP #0024
- 0x60180016, // 001A GETGBL R6 G22
- 0x881C0308, // 001B GETMBR R7 R1 K8
- 0x5C200000, // 001C MOVE R8 R0
- 0x7C180400, // 001D CALL R6 2
- 0x8C1C0509, // 001E GETMET R7 R2 K9
- 0x5C240C00, // 001F MOVE R9 R6
- 0x7C1C0400, // 0020 CALL R7 2
- 0x5C140E00, // 0021 MOVE R5 R7
- 0x881C0504, // 0022 GETMBR R7 R2 K4
- 0x981C0805, // 0023 SETIDX R7 R4 R5
- 0x80040A00, // 0024 RET 1 R5
+ ( &(const binstruction[ 7]) { /* code */
+ 0xB8060000, // 0000 GETNGBL R1 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x5C0C0000, // 0002 MOVE R3 R0
+ 0x7C040400, // 0003 CALL R1 2
+ 0x540A0003, // 0004 LDINT R2 4
+ 0x90060402, // 0005 SETMBR R1 K2 R2
+ 0x80040200, // 0006 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: clear_all_event_handlers
+********************************************************************/
+be_local_closure(clear_all_event_handlers, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 0, /* argc */
+ 0, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(animation),
+ /* K1 */ be_nested_str_weak(event_manager),
+ /* K2 */ be_nested_str_weak(clear_all_handlers),
+ }),
+ be_str_weak(clear_all_event_handlers),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 5]) { /* code */
+ 0xB8020000, // 0000 GETNGBL R0 K0
+ 0x88000101, // 0001 GETMBR R0 R0 K1
+ 0x8C000102, // 0002 GETMET R0 R0 K2
+ 0x7C000200, // 0003 CALL R0 1
+ 0x80000000, // 0004 RET 0
})
)
);
@@ -15144,6 +14642,334 @@ be_local_class(iteration_number,
be_str_weak(iteration_number)
);
+extern const bclass be_class_beacon;
+
+/********************************************************************
+** Solidified function: render
+********************************************************************/
+be_local_closure(class_beacon_render, /* name */
+ be_nested_proto(
+ 25, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[15]) { /* constants */
+ /* K0 */ be_nested_str_weak(back_color),
+ /* K1 */ be_nested_str_weak(pos),
+ /* K2 */ be_nested_str_weak(slew_size),
+ /* K3 */ be_nested_str_weak(beacon_size),
+ /* K4 */ be_nested_str_weak(color),
+ /* K5 */ be_nested_str_weak(right_edge),
+ /* K6 */ be_const_int(-16777216),
+ /* K7 */ be_const_int(0),
+ /* K8 */ be_nested_str_weak(fill_pixels),
+ /* K9 */ be_nested_str_weak(pixels),
+ /* K10 */ be_const_int(1),
+ /* K11 */ be_nested_str_weak(tasmota),
+ /* K12 */ be_nested_str_weak(scale_int),
+ /* K13 */ be_nested_str_weak(blend_linear),
+ /* K14 */ be_nested_str_weak(set_pixel_color),
+ }),
+ be_str_weak(render),
+ &be_const_str_solidified,
+ ( &(const binstruction[106]) { /* code */
+ 0x88100100, // 0000 GETMBR R4 R0 K0
+ 0x88140101, // 0001 GETMBR R5 R0 K1
+ 0x88180102, // 0002 GETMBR R6 R0 K2
+ 0x881C0103, // 0003 GETMBR R7 R0 K3
+ 0x88200104, // 0004 GETMBR R8 R0 K4
+ 0x88240105, // 0005 GETMBR R9 R0 K5
+ 0x20280906, // 0006 NE R10 R4 K6
+ 0x782A0006, // 0007 JMPF R10 #000F
+ 0x2C280906, // 0008 AND R10 R4 K6
+ 0x20281507, // 0009 NE R10 R10 K7
+ 0x782A0003, // 000A JMPF R10 #000F
+ 0x8C280308, // 000B GETMET R10 R1 K8
+ 0x88300309, // 000C GETMBR R12 R1 K9
+ 0x5C340800, // 000D MOVE R13 R4
+ 0x7C280600, // 000E CALL R10 3
+ 0x4C280000, // 000F LDNIL R10
+ 0x1C2C130A, // 0010 EQ R11 R9 K10
+ 0x782E0003, // 0011 JMPF R11 #0016
+ 0x042C0A07, // 0012 SUB R11 R5 R7
+ 0x002C170A, // 0013 ADD R11 R11 K10
+ 0x5C281600, // 0014 MOVE R10 R11
+ 0x70020000, // 0015 JMP #0017
+ 0x5C280A00, // 0016 MOVE R10 R5
+ 0x5C2C1400, // 0017 MOVE R11 R10
+ 0x00301407, // 0018 ADD R12 R10 R7
+ 0x14341707, // 0019 LT R13 R11 K7
+ 0x78360000, // 001A JMPF R13 #001C
+ 0x582C0007, // 001B LDCONST R11 K7
+ 0x28341803, // 001C GE R13 R12 R3
+ 0x78360000, // 001D JMPF R13 #001F
+ 0x5C300600, // 001E MOVE R12 R3
+ 0x8C340308, // 001F GETMET R13 R1 K8
+ 0x883C0309, // 0020 GETMBR R15 R1 K9
+ 0x5C401000, // 0021 MOVE R16 R8
+ 0x5C441600, // 0022 MOVE R17 R11
+ 0x5C481800, // 0023 MOVE R18 R12
+ 0x7C340A00, // 0024 CALL R13 5
+ 0x4C340000, // 0025 LDNIL R13
+ 0x24380D07, // 0026 GT R14 R6 K7
+ 0x783A003F, // 0027 JMPF R14 #0068
+ 0x04381406, // 0028 SUB R14 R10 R6
+ 0x5C3C1400, // 0029 MOVE R15 R10
+ 0x14401D07, // 002A LT R16 R14 K7
+ 0x78420000, // 002B JMPF R16 #002D
+ 0x58380007, // 002C LDCONST R14 K7
+ 0x28401E03, // 002D GE R16 R15 R3
+ 0x78420000, // 002E JMPF R16 #0030
+ 0x5C3C0600, // 002F MOVE R15 R3
+ 0x5C341C00, // 0030 MOVE R13 R14
+ 0x14401A0F, // 0031 LT R16 R13 R15
+ 0x78420013, // 0032 JMPF R16 #0047
+ 0xB8421600, // 0033 GETNGBL R16 K11
+ 0x8C40210C, // 0034 GETMET R16 R16 K12
+ 0x5C481A00, // 0035 MOVE R18 R13
+ 0x044C1406, // 0036 SUB R19 R10 R6
+ 0x044C270A, // 0037 SUB R19 R19 K10
+ 0x5C501400, // 0038 MOVE R20 R10
+ 0x545600FE, // 0039 LDINT R21 255
+ 0x58580007, // 003A LDCONST R22 K7
+ 0x7C400C00, // 003B CALL R16 6
+ 0x8C44030D, // 003C GETMET R17 R1 K13
+ 0x5C4C0800, // 003D MOVE R19 R4
+ 0x5C501000, // 003E MOVE R20 R8
+ 0x5C542000, // 003F MOVE R21 R16
+ 0x7C440800, // 0040 CALL R17 4
+ 0x8C48030E, // 0041 GETMET R18 R1 K14
+ 0x5C501A00, // 0042 MOVE R20 R13
+ 0x5C542200, // 0043 MOVE R21 R17
+ 0x7C480600, // 0044 CALL R18 3
+ 0x00341B0A, // 0045 ADD R13 R13 K10
+ 0x7001FFE9, // 0046 JMP #0031
+ 0x00401407, // 0047 ADD R16 R10 R7
+ 0x00441407, // 0048 ADD R17 R10 R7
+ 0x00442206, // 0049 ADD R17 R17 R6
+ 0x14482107, // 004A LT R18 R16 K7
+ 0x784A0000, // 004B JMPF R18 #004D
+ 0x58400007, // 004C LDCONST R16 K7
+ 0x28482203, // 004D GE R18 R17 R3
+ 0x784A0000, // 004E JMPF R18 #0050
+ 0x5C440600, // 004F MOVE R17 R3
+ 0x5C342000, // 0050 MOVE R13 R16
+ 0x14481A11, // 0051 LT R18 R13 R17
+ 0x784A0014, // 0052 JMPF R18 #0068
+ 0xB84A1600, // 0053 GETNGBL R18 K11
+ 0x8C48250C, // 0054 GETMET R18 R18 K12
+ 0x5C501A00, // 0055 MOVE R20 R13
+ 0x00541407, // 0056 ADD R21 R10 R7
+ 0x04542B0A, // 0057 SUB R21 R21 K10
+ 0x00581407, // 0058 ADD R22 R10 R7
+ 0x00582C06, // 0059 ADD R22 R22 R6
+ 0x585C0007, // 005A LDCONST R23 K7
+ 0x546200FE, // 005B LDINT R24 255
+ 0x7C480C00, // 005C CALL R18 6
+ 0x8C4C030D, // 005D GETMET R19 R1 K13
+ 0x5C540800, // 005E MOVE R21 R4
+ 0x5C581000, // 005F MOVE R22 R8
+ 0x5C5C2400, // 0060 MOVE R23 R18
+ 0x7C4C0800, // 0061 CALL R19 4
+ 0x8C50030E, // 0062 GETMET R20 R1 K14
+ 0x5C581A00, // 0063 MOVE R22 R13
+ 0x5C5C2600, // 0064 MOVE R23 R19
+ 0x7C500600, // 0065 CALL R20 3
+ 0x00341B0A, // 0066 ADD R13 R13 K10
+ 0x7001FFE8, // 0067 JMP #0051
+ 0x50380200, // 0068 LDBOOL R14 1 0
+ 0x80041C00, // 0069 RET 1 R14
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified class: beacon
+********************************************************************/
+extern const bclass be_class_Animation;
+be_local_class(beacon,
+ 0,
+ &be_class_Animation,
+ be_nested_map(2,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(render, -1), be_const_closure(class_beacon_render_closure) },
+ { be_const_key_weak(PARAMS, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(5,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(pos, 1), be_const_bytes_instance(040000) },
+ { be_const_key_weak(slew_size, 4), be_const_bytes_instance(0500000000) },
+ { be_const_key_weak(back_color, 0), be_const_bytes_instance(0402000000FF) },
+ { be_const_key_weak(beacon_size, -1), be_const_bytes_instance(0500000001) },
+ { be_const_key_weak(right_edge, -1), be_const_bytes_instance(1400000200000001) },
+ })) ) } )) },
+ })),
+ be_str_weak(beacon)
+);
+
+extern const bclass be_class_crenel;
+
+/********************************************************************
+** Solidified function: render
+********************************************************************/
+be_local_closure(class_crenel_render, /* name */
+ be_nested_proto(
+ 16, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[11]) { /* constants */
+ /* K0 */ be_nested_str_weak(back_color),
+ /* K1 */ be_nested_str_weak(pos),
+ /* K2 */ be_nested_str_weak(pulse_size),
+ /* K3 */ be_nested_str_weak(low_size),
+ /* K4 */ be_nested_str_weak(nb_pulse),
+ /* K5 */ be_nested_str_weak(color),
+ /* K6 */ be_const_int(0),
+ /* K7 */ be_nested_str_weak(fill_pixels),
+ /* K8 */ be_nested_str_weak(pixels),
+ /* K9 */ be_const_int(1),
+ /* K10 */ be_nested_str_weak(set_pixel_color),
+ }),
+ be_str_weak(render),
+ &be_const_str_solidified,
+ ( &(const binstruction[64]) { /* code */
+ 0x88100100, // 0000 GETMBR R4 R0 K0
+ 0x88140101, // 0001 GETMBR R5 R0 K1
+ 0x88180102, // 0002 GETMBR R6 R0 K2
+ 0x881C0103, // 0003 GETMBR R7 R0 K3
+ 0x88200104, // 0004 GETMBR R8 R0 K4
+ 0x88240105, // 0005 GETMBR R9 R0 K5
+ 0x60280009, // 0006 GETGBL R10 G9
+ 0x002C0C07, // 0007 ADD R11 R6 R7
+ 0x7C280200, // 0008 CALL R10 1
+ 0x202C0906, // 0009 NE R11 R4 K6
+ 0x782E0003, // 000A JMPF R11 #000F
+ 0x8C2C0307, // 000B GETMET R11 R1 K7
+ 0x88340308, // 000C GETMBR R13 R1 K8
+ 0x5C380800, // 000D MOVE R14 R4
+ 0x7C2C0600, // 000E CALL R11 3
+ 0x182C1506, // 000F LE R11 R10 K6
+ 0x782E0000, // 0010 JMPF R11 #0012
+ 0x58280009, // 0011 LDCONST R10 K9
+ 0x1C2C1106, // 0012 EQ R11 R8 K6
+ 0x782E0001, // 0013 JMPF R11 #0016
+ 0x502C0200, // 0014 LDBOOL R11 1 0
+ 0x80041600, // 0015 RET 1 R11
+ 0x142C1106, // 0016 LT R11 R8 K6
+ 0x782E0006, // 0017 JMPF R11 #001F
+ 0x002C0A06, // 0018 ADD R11 R5 R6
+ 0x042C1709, // 0019 SUB R11 R11 K9
+ 0x102C160A, // 001A MOD R11 R11 R10
+ 0x042C1606, // 001B SUB R11 R11 R6
+ 0x002C1709, // 001C ADD R11 R11 K9
+ 0x5C141600, // 001D MOVE R5 R11
+ 0x70020007, // 001E JMP #0027
+ 0x442C1400, // 001F NEG R11 R10
+ 0x142C0A0B, // 0020 LT R11 R5 R11
+ 0x782E0004, // 0021 JMPF R11 #0027
+ 0x202C1106, // 0022 NE R11 R8 K6
+ 0x782E0002, // 0023 JMPF R11 #0027
+ 0x00140A0A, // 0024 ADD R5 R5 R10
+ 0x04201109, // 0025 SUB R8 R8 K9
+ 0x7001FFF7, // 0026 JMP #001F
+ 0x142C0A03, // 0027 LT R11 R5 R3
+ 0x782E0014, // 0028 JMPF R11 #003E
+ 0x202C1106, // 0029 NE R11 R8 K6
+ 0x782E0012, // 002A JMPF R11 #003E
+ 0x582C0006, // 002B LDCONST R11 K6
+ 0x14300B06, // 002C LT R12 R5 K6
+ 0x78320001, // 002D JMPF R12 #0030
+ 0x44300A00, // 002E NEG R12 R5
+ 0x5C2C1800, // 002F MOVE R11 R12
+ 0x14301606, // 0030 LT R12 R11 R6
+ 0x78320008, // 0031 JMPF R12 #003B
+ 0x00300A0B, // 0032 ADD R12 R5 R11
+ 0x14301803, // 0033 LT R12 R12 R3
+ 0x78320005, // 0034 JMPF R12 #003B
+ 0x8C30030A, // 0035 GETMET R12 R1 K10
+ 0x00380A0B, // 0036 ADD R14 R5 R11
+ 0x5C3C1200, // 0037 MOVE R15 R9
+ 0x7C300600, // 0038 CALL R12 3
+ 0x002C1709, // 0039 ADD R11 R11 K9
+ 0x7001FFF4, // 003A JMP #0030
+ 0x00140A0A, // 003B ADD R5 R5 R10
+ 0x04201109, // 003C SUB R8 R8 K9
+ 0x7001FFE8, // 003D JMP #0027
+ 0x502C0200, // 003E LDBOOL R11 1 0
+ 0x80041600, // 003F RET 1 R11
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified class: crenel
+********************************************************************/
+extern const bclass be_class_Animation;
+be_local_class(crenel,
+ 0,
+ &be_class_Animation,
+ be_nested_map(2,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(render, -1), be_const_closure(class_crenel_render_closure) },
+ { be_const_key_weak(PARAMS, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(5,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(nb_pulse, -1), be_const_bytes_instance(0400FF) },
+ { be_const_key_weak(low_size, 4), be_const_bytes_instance(0500000003) },
+ { be_const_key_weak(pos, 1), be_const_bytes_instance(040000) },
+ { be_const_key_weak(pulse_size, -1), be_const_bytes_instance(0500000001) },
+ { be_const_key_weak(back_color, -1), be_const_bytes_instance(040000) },
+ })) ) } )) },
+ })),
+ be_str_weak(crenel)
+);
+
+/********************************************************************
+** Solidified function: ease_out
+********************************************************************/
+be_local_closure(ease_out, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 0, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL, /* no sub protos */
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(animation),
+ /* K1 */ be_nested_str_weak(oscillator_value),
+ /* K2 */ be_nested_str_weak(form),
+ }),
+ be_str_weak(ease_out),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0xB8060000, // 0000 GETNGBL R1 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x5C0C0000, // 0002 MOVE R3 R0
+ 0x7C040400, // 0003 CALL R1 2
+ 0x540A0006, // 0004 LDINT R2 7
+ 0x90060402, // 0005 SETMBR R1 K2 R2
+ 0x80040200, // 0006 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: sawtooth
********************************************************************/
@@ -15258,91 +15084,87 @@ be_local_closure(register_user_function, /* name */
********************************************************************/
be_local_module(animation,
"animation",
- be_nested_map(83,
+ be_nested_map(79,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(register_user_function, -1), be_const_closure(register_user_function_closure) },
- { be_const_key_weak(rich_palette_animation, 71), be_const_class(be_class_RichPaletteAnimation) },
- { be_const_key_weak(gradient_animation, -1), be_const_class(be_class_GradientAnimation) },
- { be_const_key_weak(BOUNCE, -1), be_const_int(9) },
- { be_const_key_weak(EASE_OUT, 17), be_const_int(7) },
- { be_const_key_weak(event_handler, 25), be_const_class(be_class_EventHandler) },
- { be_const_key_weak(resolve, -1), be_const_closure(animation_resolve_closure) },
- { be_const_key_weak(value_provider, 37), be_const_class(be_class_value_provider) },
- { be_const_key_weak(palette_meter_animation, -1), be_const_class(be_class_GradientMeterAnimation) },
- { be_const_key_weak(EventManager, -1), be_const_class(be_class_EventManager) },
- { be_const_key_weak(SAWTOOTH, 24), be_const_int(1) },
- { be_const_key_weak(ELASTIC, -1), be_const_int(8) },
- { be_const_key_weak(sawtooth, 65), be_const_closure(sawtooth_closure) },
- { be_const_key_weak(animation, -1), be_const_class(be_class_Animation) },
- { be_const_key_weak(VERSION, -1), be_const_int(65536) },
- { be_const_key_weak(register_event_handler, -1), be_const_closure(register_event_handler_closure) },
- { be_const_key_weak(twinkle, 7), be_const_class(be_class_twinkle) },
- { be_const_key_weak(init_strip, 68), be_const_closure(animation_init_strip_closure) },
- { be_const_key_weak(ramp, 31), be_const_closure(ramp_closure) },
- { be_const_key_weak(oscillator_value, -1), be_const_class(be_class_oscillator_value) },
- { be_const_key_weak(color_provider, 70), be_const_class(be_class_color_provider) },
- { be_const_key_weak(engine_proxy, -1), be_const_class(be_class_engine_proxy) },
- { be_const_key_weak(trigger_event, -1), be_const_closure(trigger_event_closure) },
- { be_const_key_weak(wave_animation, 53), be_const_class(be_class_WaveAnimation) },
- { be_const_key_weak(frame_buffer, -1), be_const_class(be_class_frame_buffer) },
- { be_const_key_weak(clear_all_event_handlers, -1), be_const_closure(clear_all_event_handlers_closure) },
- { be_const_key_weak(linear, -1), be_const_closure(linear_closure) },
- { be_const_key_weak(ease_in, -1), be_const_closure(ease_in_closure) },
- { be_const_key_weak(cosine_osc, -1), be_const_closure(cosine_osc_closure) },
- { be_const_key_weak(wave_rainbow_sine, -1), be_const_closure(wave_rainbow_sine_closure) },
- { be_const_key_weak(is_color_provider, -1), be_const_closure(is_color_provider_closure) },
- { be_const_key_weak(static_color, -1), be_const_class(be_class_static_color) },
- { be_const_key_weak(wave_custom, -1), be_const_closure(wave_custom_closure) },
- { be_const_key_weak(is_value_provider, 28), be_const_closure(is_value_provider_closure) },
- { be_const_key_weak(pulsating_animation, -1), be_const_closure(pulsating_animation_closure) },
- { be_const_key_weak(beacon_animation, -1), be_const_class(be_class_BeaconAnimation) },
- { be_const_key_weak(fire_animation, -1), be_const_class(be_class_FireAnimation) },
- { be_const_key_weak(triangle, -1), be_const_closure(triangle_closure) },
- { be_const_key_weak(breathe_color, 23), be_const_class(be_class_breathe_color) },
- { be_const_key_weak(solid, 50), be_const_closure(solid_closure) },
- { be_const_key_weak(get_user_function, -1), be_const_closure(get_user_function_closure) },
- { be_const_key_weak(get_event_handlers, -1), be_const_closure(get_event_handlers_closure) },
- { be_const_key_weak(wave_single_sine, 63), be_const_closure(wave_single_sine_closure) },
- { be_const_key_weak(set_event_active, -1), be_const_closure(set_event_active_closure) },
- { be_const_key_weak(SQUARE, -1), be_const_int(3) },
- { be_const_key_weak(rich_palette_color, 12), be_const_class(be_class_rich_palette_color) },
- { be_const_key_weak(PALETTE_RAINBOW2, 82), be_const_bytes_instance(FFFC0000FFFF8000FFFFFF00FF00FF00FF00FFFFFF0080FFFF8000FFFFFC0000) },
- { be_const_key_weak(PALETTE_RAINBOW, -1), be_const_bytes_instance(FFFC0000FFFF8000FFFFFF00FF00FF00FF00FFFFFF0080FFFF8000FF) },
- { be_const_key_weak(get_registered_events, -1), be_const_closure(get_registered_events_closure) },
- { be_const_key_weak(init, -1), be_const_closure(animation_init_closure) },
- { be_const_key_weak(smooth, -1), be_const_closure(smooth_closure) },
- { be_const_key_weak(PALETTE_FIRE, -1), be_const_bytes_instance(FF000000FF800000FFFF0000FFFF8000FFFFFF00) },
- { be_const_key_weak(COSINE, -1), be_const_int(4) },
- { be_const_key_weak(parameterized_object, -1), be_const_class(be_class_parameterized_object) },
- { be_const_key_weak(strip_length, 51), be_const_class(be_class_strip_length) },
- { be_const_key_weak(square, -1), be_const_closure(square_closure) },
- { be_const_key_weak(palette_gradient_animation, -1), be_const_class(be_class_PaletteGradientAnimation) },
- { be_const_key_weak(unregister_event_handler, 72), be_const_closure(unregister_event_handler_closure) },
- { be_const_key_weak(SINE, -1), be_const_int(5) },
- { be_const_key_weak(breathe_animation, -1), be_const_class(be_class_BreatheAnimation) },
- { be_const_key_weak(EASE_IN, -1), be_const_int(6) },
- { be_const_key_weak(create_closure_value, 58), be_const_closure(create_closure_value_closure) },
- { be_const_key_weak(PALETTE_RAINBOW_W2, 13), be_const_bytes_instance(FFFC0000FFFF8000FFFFFF00FF00FF00FF00FFFFFF0080FFFF8000FFFFCCCCCCFFFC0000) },
- { be_const_key_weak(sine_osc, -1), be_const_closure(sine_osc_closure) },
{ be_const_key_weak(iteration_number, -1), be_const_class(be_class_iteration_number) },
- { be_const_key_weak(bounce, -1), be_const_closure(bounce_closure) },
- { be_const_key_weak(enc_params, -1), be_const_closure(encode_constraints_closure) },
- { be_const_key_weak(create_engine, -1), be_const_class(be_class_AnimationEngine) },
- { be_const_key_weak(is_user_function, -1), be_const_closure(is_user_function_closure) },
- { be_const_key_weak(sequence_manager, 67), be_const_class(be_class_sequence_manager) },
+ { be_const_key_weak(linear, -1), be_const_closure(linear_closure) },
{ be_const_key_weak(list_user_functions, -1), be_const_closure(list_user_functions_closure) },
- { be_const_key_weak(comet_animation, -1), be_const_class(be_class_CometAnimation) },
- { be_const_key_weak(crenel_animation, 60), be_const_class(be_class_CrenelPositionAnimation) },
- { be_const_key_weak(_math, -1), be_const_class(be_class_AnimationMath) },
- { be_const_key_weak(LINEAR, -1), be_const_int(1) },
- { be_const_key_weak(elastic, 0), be_const_closure(elastic_closure) },
- { be_const_key_weak(TRIANGLE, 29), be_const_int(2) },
- { be_const_key_weak(static_value, -1), be_const_class(be_class_static_value) },
- { be_const_key_weak(color_cycle, 48), be_const_class(be_class_ColorCycleColorProvider) },
- { be_const_key_weak(PALETTE_RAINBOW_W, -1), be_const_bytes_instance(FFFC0000FFFF8000FFFFFF00FF00FF00FF00FFFFFF0080FFFF8000FFFFCCCCCC) },
- { be_const_key_weak(ease_out, 47), be_const_closure(ease_out_closure) },
+ { be_const_key_weak(sine_osc, -1), be_const_closure(sine_osc_closure) },
+ { be_const_key_weak(is_color_provider, 32), be_const_closure(is_color_provider_closure) },
+ { be_const_key_weak(rich_palette, -1), be_const_class(be_class_rich_palette) },
+ { be_const_key_weak(PALETTE_FIRE, 33), be_const_bytes_instance(FF000000FF800000FFFF0000FFFF8000FFFFFF00) },
+ { be_const_key_weak(SAWTOOTH, -1), be_const_int(1) },
+ { be_const_key_weak(register_user_function, 47), be_const_closure(register_user_function_closure) },
+ { be_const_key_weak(EASE_IN, -1), be_const_int(6) },
+ { be_const_key_weak(init, 57), be_const_closure(animation_init_closure) },
+ { be_const_key_weak(get_user_function, -1), be_const_closure(get_user_function_closure) },
+ { be_const_key_weak(LINEAR, 15), be_const_int(1) },
+ { be_const_key_weak(PALETTE_RAINBOW_W2, 25), be_const_bytes_instance(FFFC0000FFFF8000FFFFFF00FF00FF00FF00FFFFFF0080FFFF8000FFFFCCCCCCFFFC0000) },
+ { be_const_key_weak(triangle, -1), be_const_closure(triangle_closure) },
+ { be_const_key_weak(color_provider, -1), be_const_class(be_class_color_provider) },
+ { be_const_key_weak(PALETTE_RAINBOW_W, 48), be_const_bytes_instance(FFFC0000FFFF8000FFFFFF00FF00FF00FF00FFFFFF0080FFFF8000FFFFCCCCCC) },
+ { be_const_key_weak(PALETTE_RAINBOW, -1), be_const_bytes_instance(FFFC0000FFFF8000FFFFFF00FF00FF00FF00FFFFFF0080FFFF8000FF) },
{ be_const_key_weak(closure_value, -1), be_const_class(be_class_closure_value) },
- { be_const_key_weak(PALETTE_RGB, -1), be_const_bytes_instance(FFFF0000FF00FF00FF0000FF) },
+ { be_const_key_weak(strip_length, 60), be_const_class(be_class_strip_length) },
+ { be_const_key_weak(BOUNCE, -1), be_const_int(9) },
+ { be_const_key_weak(breathe_color, -1), be_const_class(be_class_breathe_color) },
+ { be_const_key_weak(twinkle, 53), be_const_class(be_class_twinkle) },
+ { be_const_key_weak(is_value_provider, 8), be_const_closure(is_value_provider_closure) },
+ { be_const_key_weak(comet, -1), be_const_class(be_class_comet) },
+ { be_const_key_weak(sawtooth, 54), be_const_closure(sawtooth_closure) },
+ { be_const_key_weak(value_provider, -1), be_const_class(be_class_value_provider) },
+ { be_const_key_weak(palette_meter, -1), be_const_class(be_class_palette_meter) },
+ { be_const_key_weak(breathe, -1), be_const_class(be_class_breathe) },
+ { be_const_key_weak(crenel, -1), be_const_class(be_class_crenel) },
+ { be_const_key_weak(beacon, 58), be_const_class(be_class_beacon) },
+ { be_const_key_weak(create_closure_value, -1), be_const_closure(create_closure_value_closure) },
+ { be_const_key_weak(clear_all_event_handlers, -1), be_const_closure(clear_all_event_handlers_closure) },
+ { be_const_key_weak(cosine_osc, 51), be_const_closure(cosine_osc_closure) },
+ { be_const_key_weak(sequence_manager, -1), be_const_class(be_class_sequence_manager) },
+ { be_const_key_weak(get_registered_events, -1), be_const_closure(get_registered_events_closure) },
+ { be_const_key_weak(animation, -1), be_const_class(be_class_Animation) },
+ { be_const_key_weak(_math, -1), be_const_class(be_class_AnimationMath) },
+ { be_const_key_weak(enc_params, -1), be_const_closure(encode_constraints_closure) },
+ { be_const_key_weak(square, -1), be_const_closure(square_closure) },
+ { be_const_key_weak(unregister_event_handler, -1), be_const_closure(unregister_event_handler_closure) },
+ { be_const_key_weak(solid, -1), be_const_closure(solid_closure) },
+ { be_const_key_weak(register_event_handler, -1), be_const_closure(register_event_handler_closure) },
+ { be_const_key_weak(ramp, -1), be_const_closure(ramp_closure) },
+ { be_const_key_weak(elastic, -1), be_const_closure(elastic_closure) },
+ { be_const_key_weak(PALETTE_RAINBOW2, 61), be_const_bytes_instance(FFFC0000FFFF8000FFFFFF00FF00FF00FF00FFFFFF0080FFFF8000FFFFFC0000) },
+ { be_const_key_weak(oscillator_value, -1), be_const_class(be_class_oscillator_value) },
+ { be_const_key_weak(static_color, -1), be_const_class(be_class_static_color) },
+ { be_const_key_weak(frame_buffer, -1), be_const_class(be_class_frame_buffer) },
+ { be_const_key_weak(engine_proxy, -1), be_const_class(be_class_engine_proxy) },
+ { be_const_key_weak(ease_in, -1), be_const_closure(ease_in_closure) },
+ { be_const_key_weak(is_user_function, -1), be_const_closure(is_user_function_closure) },
+ { be_const_key_weak(bounce, -1), be_const_closure(bounce_closure) },
+ { be_const_key_weak(smooth, 68), be_const_closure(smooth_closure) },
+ { be_const_key_weak(palette_gradient, -1), be_const_class(be_class_palette_gradient) },
+ { be_const_key_weak(create_engine, -1), be_const_class(be_class_AnimationEngine) },
+ { be_const_key_weak(set_event_active, -1), be_const_closure(set_event_active_closure) },
+ { be_const_key_weak(parameterized_object, -1), be_const_class(be_class_parameterized_object) },
+ { be_const_key_weak(SINE, 63), be_const_int(5) },
+ { be_const_key_weak(rich_palette_color, 29), be_const_class(be_class_rich_palette_color) },
+ { be_const_key_weak(TRIANGLE, 66), be_const_int(2) },
+ { be_const_key_weak(EventManager, 62), be_const_class(be_class_EventManager) },
+ { be_const_key_weak(resolve, -1), be_const_closure(animation_resolve_closure) },
+ { be_const_key_weak(COSINE, 71), be_const_int(4) },
+ { be_const_key_weak(color_cycle, 75), be_const_class(be_class_color_cycle) },
+ { be_const_key_weak(event_handler, 20), be_const_class(be_class_EventHandler) },
+ { be_const_key_weak(SQUARE, -1), be_const_int(3) },
+ { be_const_key_weak(get_event_handlers, 36), be_const_closure(get_event_handlers_closure) },
+ { be_const_key_weak(fire, -1), be_const_class(be_class_fire) },
+ { be_const_key_weak(init_strip, -1), be_const_closure(animation_init_strip_closure) },
+ { be_const_key_weak(ELASTIC, -1), be_const_int(8) },
+ { be_const_key_weak(wave, 69), be_const_class(be_class_wave) },
+ { be_const_key_weak(trigger_event, -1), be_const_closure(trigger_event_closure) },
+ { be_const_key_weak(ease_out, -1), be_const_closure(ease_out_closure) },
+ { be_const_key_weak(VERSION, -1), be_const_int(65536) },
+ { be_const_key_weak(static_value, -1), be_const_class(be_class_static_value) },
+ { be_const_key_weak(gradient, 55), be_const_class(be_class_gradient) },
+ { be_const_key_weak(EASE_OUT, 30), be_const_int(7) },
+ { be_const_key_weak(PALETTE_RGB, 39), be_const_bytes_instance(FFFF0000FF00FF00FF0000FF) },
}))
);
BE_EXPORT_VARIABLE be_define_const_native_module(animation);
diff --git a/lib/libesp32/berry_animation/src/solidify/solidified_animation_dsl.h b/lib/libesp32/berry_animation/src/solidify/solidified_animation_dsl.h
index f6faca21a..3db32f7b6 100644
--- a/lib/libesp32/berry_animation/src/solidify/solidified_animation_dsl.h
+++ b/lib/libesp32/berry_animation/src/solidify/solidified_animation_dsl.h
@@ -17031,7 +17031,7 @@ be_local_class(AnimationWebUI,
{ be_const_key_weak(page_main, -1), be_const_closure(class_AnimationWebUI_page_main_closure) },
{ be_const_key_weak(handle_request, -1), be_const_closure(class_AnimationWebUI_handle_request_closure) },
{ be_const_key_weak(last_dsl_code, -1), be_const_var(0) },
- { be_const_key_weak(DEFAULT_DSL, -1), be_nested_str_long(_X23_X20Simple_X20Berry_X20Animation_X20Example_X20_X2D_X20Cylon_X20red_X20eye_X0A_X0Aset_X20strip_len_X20_X3D_X20strip_length_X28_X29_X0A_X0Aanimation_X20red_eye_X20_X3D_X20beacon_animation_X28_X0A_X20_X20color_X20_X3D_X20red_X0A_X20_X20pos_X20_X3D_X20smooth_X28min_value_X20_X3D_X200_X2C_X20max_value_X20_X3D_X20strip_len_X20_X2D_X202_X2C_X20duration_X20_X3D_X205s_X29_X0A_X20_X20beacon_size_X20_X3D_X203_X20_X20_X20_X20_X20_X20_X20_X23_X20small_X203_X20pixels_X20eye_X0A_X20_X20slew_size_X20_X3D_X202_X20_X20_X20_X20_X20_X20_X20_X20_X20_X23_X20with_X202_X20pixel_X20shading_X20around_X0A_X29_X0A_X0Arun_X20red_eye_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X23_X20run_X20the_X20animation_X0A) },
+ { be_const_key_weak(DEFAULT_DSL, -1), be_nested_str_long(_X23_X20Simple_X20Berry_X20Animation_X20Example_X20_X2D_X20Cylon_X20red_X20eye_X0A_X0Aset_X20strip_len_X20_X3D_X20strip_length_X28_X29_X0A_X0Aanimation_X20red_eye_X20_X3D_X20beacon_X28_X0A_X20_X20color_X20_X3D_X20red_X0A_X20_X20pos_X20_X3D_X20smooth_X28min_value_X20_X3D_X200_X2C_X20max_value_X20_X3D_X20strip_len_X20_X2D_X202_X2C_X20duration_X20_X3D_X205s_X29_X0A_X20_X20beacon_size_X20_X3D_X203_X20_X20_X20_X20_X20_X20_X20_X23_X20small_X203_X20pixels_X20eye_X0A_X20_X20slew_size_X20_X3D_X202_X20_X20_X20_X20_X20_X20_X20_X20_X20_X23_X20with_X202_X20pixel_X20shading_X20around_X0A_X29_X0A_X0Arun_X20red_eye_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X23_X20run_X20the_X20animation_X0A) },
{ be_const_key_weak(deinit, 3), be_const_closure(class_AnimationWebUI_deinit_closure) },
{ be_const_key_weak(web_add_handler, 2), be_const_closure(class_AnimationWebUI_web_add_handler_closure) },
{ be_const_key_weak(last_berry_code, 7), be_const_var(1) },
diff --git a/lib/libesp32/berry_animation/src/tests/beacon_animation_test.be b/lib/libesp32/berry_animation/src/tests/beacon_animation_test.be
index 45258efc3..4dae7f172 100644
--- a/lib/libesp32/berry_animation/src/tests/beacon_animation_test.be
+++ b/lib/libesp32/berry_animation/src/tests/beacon_animation_test.be
@@ -31,7 +31,7 @@ def run_tests()
print("==================================================")
# Test 1: Basic construction
- var pulse = animation.beacon_animation(engine)
+ var pulse = animation.beacon(engine)
test_assert(pulse != nil, "Pulse position animation creation")
# Set parameters using virtual member assignment
diff --git a/lib/libesp32/berry_animation/src/tests/breathe_animation_test.be b/lib/libesp32/berry_animation/src/tests/breathe_animation_test.be
index 1144b6f3a..ced9df508 100644
--- a/lib/libesp32/berry_animation/src/tests/breathe_animation_test.be
+++ b/lib/libesp32/berry_animation/src/tests/breathe_animation_test.be
@@ -1,11 +1,11 @@
# Test file for Breathe animation effect
#
-# This file contains tests for the BreatheAnimation class following parameterized class specification
+# This file contains tests for the breathe class following parameterized class specification
#
# Command to run test is:
# ./berry -s -g -m lib/libesp32/berry_animation -e "import tasmota" lib/libesp32/berry_animation/tests/breathe_animation_test.be
-print("Testing BreatheAnimation...")
+print("Testing breathe...")
# Import the core animation module
import animation
@@ -17,7 +17,7 @@ var engine = animation.create_engine(strip)
print("Created LED strip and animation engine")
# Create a breathe animation with engine-only parameter
-var anim = animation.breathe_animation(engine)
+var anim = animation.breathe(engine)
print("Created breathe animation with defaults")
# Test default values
@@ -28,7 +28,7 @@ print(f"Default period: {anim.period}")
print(f"Default curve_factor: {anim.curve_factor}")
# Create another breathe animation and set custom parameters using virtual member assignment
-var blue_breathe = animation.breathe_animation(engine)
+var blue_breathe = animation.breathe(engine)
blue_breathe.color = 0xFF0000FF
blue_breathe.min_brightness = 20
blue_breathe.max_brightness = 200
@@ -42,7 +42,7 @@ print(f"Blue breathe animation period: {blue_breathe.period}")
print(f"Blue breathe animation curve_factor: {blue_breathe.curve_factor}")
# Create red breathe animation with different parameters
-var red_breathe = animation.breathe_animation(engine)
+var red_breathe = animation.breathe(engine)
red_breathe.color = 0xFFFF0000
red_breathe.min_brightness = 10
red_breathe.max_brightness = 180
diff --git a/lib/libesp32/berry_animation/src/tests/color_cycle_animation_test.be b/lib/libesp32/berry_animation/src/tests/color_cycle_animation_test.be
index d1d412eee..cfdd2d0c4 100644
--- a/lib/libesp32/berry_animation/src/tests/color_cycle_animation_test.be
+++ b/lib/libesp32/berry_animation/src/tests/color_cycle_animation_test.be
@@ -1,4 +1,4 @@
-# Test file for animation.solid with ColorCycleColorProvider
+# Test file for animation.solid with color_cycle
#
# This file contains tests for the animation.solid class with color cycle provider
#
@@ -21,14 +21,14 @@ class ColorCycleAnimationTest
self.passed = 0
self.failed = 0
- print("Running animation.solid with ColorCycleColorProvider Tests")
+ print("Running animation.solid with color_cycle Tests")
self.test_initialization()
self.test_update_and_render()
self.test_manual_only_mode()
self.test_direct_creation()
- print(f"animation.solid with ColorCycleColorProvider Tests: {self.passed} passed, {self.failed} failed")
+ print(f"animation.solid with color_cycle Tests: {self.passed} passed, {self.failed} failed")
end
def assert_equal(actual, expected, test_name)
diff --git a/lib/libesp32/berry_animation/src/tests/color_cycle_bytes_test.be b/lib/libesp32/berry_animation/src/tests/color_cycle_bytes_test.be
index d402225c2..be5a03529 100644
--- a/lib/libesp32/berry_animation/src/tests/color_cycle_bytes_test.be
+++ b/lib/libesp32/berry_animation/src/tests/color_cycle_bytes_test.be
@@ -1,6 +1,6 @@
#!/usr/bin/env berry
-# Test for ColorCycleColorProvider with bytes palette in AARRGGBB format
+# Test for color_cycle with bytes palette in AARRGGBB format
import animation
import animation_dsl
@@ -18,7 +18,7 @@ class MockEngine
end
def test_color_cycle_bytes_format()
- print("Testing ColorCycleColorProvider with bytes palette (AARRGGBB format)...")
+ print("Testing color_cycle with bytes palette (AARRGGBB format)...")
var engine = MockEngine()
@@ -110,7 +110,7 @@ def test_color_cycle_bytes_format()
var empty_color = provider.produce_value("color", 1000)
assert(empty_color == 0x00000000, f"Empty palette should return transparent")
- print("✓ All ColorCycleColorProvider bytes format tests passed!")
+ print("✓ All color_cycle bytes format tests passed!")
end
def test_bytes_parameter_validation()
@@ -143,4 +143,4 @@ end
# Run the tests
test_color_cycle_bytes_format()
test_bytes_parameter_validation()
-print("✓ All ColorCycleColorProvider tests completed successfully!")
\ No newline at end of file
+print("✓ All color_cycle tests completed successfully!")
\ No newline at end of file
diff --git a/lib/libesp32/berry_animation/src/tests/color_cycle_palette_size_test.be b/lib/libesp32/berry_animation/src/tests/color_cycle_palette_size_test.be
index 7f2f8f760..1b3155f30 100644
--- a/lib/libesp32/berry_animation/src/tests/color_cycle_palette_size_test.be
+++ b/lib/libesp32/berry_animation/src/tests/color_cycle_palette_size_test.be
@@ -1,6 +1,6 @@
#!/usr/bin/env berry
-# Test for ColorCycleColorProvider palette_size read-only parameter
+# Test for color_cycle palette_size read-only parameter
import animation
# Mock engine for testing
@@ -194,4 +194,4 @@ test_palette_size_updates_with_palette_changes()
test_palette_size_with_new_instances()
test_palette_size_parameter_metadata()
-print("✓ All ColorCycleColorProvider palette_size tests completed successfully!")
\ No newline at end of file
+print("✓ All color_cycle palette_size tests completed successfully!")
\ No newline at end of file
diff --git a/lib/libesp32/berry_animation/src/tests/comet_animation_test.be b/lib/libesp32/berry_animation/src/tests/comet_animation_test.be
index fa5091d04..e1574fa76 100644
--- a/lib/libesp32/berry_animation/src/tests/comet_animation_test.be
+++ b/lib/libesp32/berry_animation/src/tests/comet_animation_test.be
@@ -1,5 +1,5 @@
# Comet Animation Test Suite
-# Comprehensive tests for the CometAnimation class following parameterized class specification
+# Comprehensive tests for the comet class following parameterized class specification
#
# Command to run:
# ./berry -s -g -m lib/libesp32/berry_animation -e "import tasmota" lib/libesp32/berry_animation/tests/comet_animation_test.be
@@ -45,7 +45,7 @@ print("Created LED strip and animation engine")
# Test 1: Basic Construction
print("\n--- Test 1: Basic Construction ---")
-var comet = animation.comet_animation(engine)
+var comet = animation.comet(engine)
assert_not_nil(comet, "Comet animation should be created")
assert_equals(comet.engine, engine, "Animation should have correct engine reference")
@@ -77,7 +77,7 @@ assert_equals(comet.priority, 15, "Priority should be set correctly")
# Test 2: Multiple Comet Animations
print("\n--- Test 2: Multiple Comet Animations ---")
-var comet2 = animation.comet_animation(engine)
+var comet2 = animation.comet(engine)
comet2.color = 0xFF00FF00
comet2.tail_length = 8
comet2.speed = 3840
@@ -85,7 +85,7 @@ assert_not_nil(comet2, "Second comet should be created")
assert_equals(comet2.tail_length, 8, "Second comet tail length should be correct")
assert_equals(comet2.speed, 3840, "Second comet speed should be correct")
-var comet3 = animation.comet_animation(engine)
+var comet3 = animation.comet(engine)
comet3.color = 0xFF0000FF
comet3.tail_length = 6
comet3.speed = 3072
@@ -141,7 +141,7 @@ end
print("\n--- Test 4: Position Updates ---")
# Create comet for position testing
-var pos_comet = animation.comet_animation(engine)
+var pos_comet = animation.comet(engine)
pos_comet.color = 0xFFFFFFFF
pos_comet.tail_length = 3
pos_comet.speed = 2560 # 10 pixels/sec (10 * 256)
@@ -165,7 +165,7 @@ assert_test(pos_comet.head_position >= (expected_pos - 256) && pos_comet.head_po
# Test 5: Direction Changes
print("\n--- Test 5: Direction Changes ---")
-var dir_comet = animation.comet_animation(engine)
+var dir_comet = animation.comet(engine)
dir_comet.color = 0xFFFFFFFF
dir_comet.tail_length = 3
dir_comet.speed = 2560 # 10 pixels/sec
@@ -192,7 +192,7 @@ var small_strip = global.Leds(10)
var small_engine = animation.create_engine(small_strip)
# Test wrap around
-var wrap_comet = animation.comet_animation(small_engine)
+var wrap_comet = animation.comet(small_engine)
wrap_comet.color = 0xFFFFFFFF
wrap_comet.tail_length = 3
wrap_comet.speed = 25600 # Very fast (100 pixels/sec)
@@ -210,7 +210,7 @@ assert_test(wrap_comet.head_position >= 0 && wrap_comet.head_position < strip_le
f"Wrapped position should be within strip bounds (position: {wrap_comet.head_position})")
# Test bounce
-var bounce_comet = animation.comet_animation(small_engine)
+var bounce_comet = animation.comet(small_engine)
bounce_comet.color = 0xFFFFFFFF
bounce_comet.tail_length = 3
bounce_comet.speed = 25600 # Very fast
@@ -231,7 +231,7 @@ assert_test(bounce_comet.direction == -1,
print("\n--- Test 7: Frame Buffer Rendering ---")
var frame = animation.frame_buffer(10)
-var render_comet = animation.comet_animation(small_engine)
+var render_comet = animation.comet(small_engine)
render_comet.color = 0xFFFF0000 # Red
render_comet.tail_length = 3
render_comet.speed = 256 # Slow (1 pixel/sec)
@@ -265,7 +265,7 @@ print("\n--- Test 8: Color Provider Integration ---")
# Test with solid color provider
var solid_provider = animation.static_color(engine)
solid_provider.color = 0xFF00FFFF
-var provider_comet = animation.comet_animation(engine)
+var provider_comet = animation.comet(engine)
provider_comet.color = solid_provider
provider_comet.tail_length = 4
provider_comet.speed = 1280
@@ -285,7 +285,7 @@ assert_equals(resolved_color, 0xFF00FFFF, "Resolved color should match provider
# Test 9: Engine Integration
print("\n--- Test 9: Engine Integration ---")
-var engine_comet = animation.comet_animation(engine)
+var engine_comet = animation.comet(engine)
engine_comet.color = 0xFFFFFFFF
engine_comet.tail_length = 5
engine_comet.speed = 2560
diff --git a/lib/libesp32/berry_animation/src/tests/computed_values_test.be b/lib/libesp32/berry_animation/src/tests/computed_values_test.be
index 3e68b85f9..0a8760036 100644
--- a/lib/libesp32/berry_animation/src/tests/computed_values_test.be
+++ b/lib/libesp32/berry_animation/src/tests/computed_values_test.be
@@ -13,7 +13,7 @@ def test_basic_computed_values()
print("Testing basic computed values...")
var dsl_source = "set strip_len = strip_length()\n" +
- "animation stream1 = comet_animation(\n" +
+ "animation stream1 = comet(\n" +
" color=red\n" +
" tail_length=strip_len / 4\n" +
" speed=1.5\n" +
@@ -66,7 +66,7 @@ def test_complex_computed_values()
var dsl_source = "set strip_len = strip_length()\n" +
"set base_speed = 2.0\n" +
- "animation complex_anim = comet_animation(\n" +
+ "animation complex_anim = comet(\n" +
" color=blue\n" +
" tail_length=strip_len / 4 + 2\n" +
" speed=base_speed * 1.5\n" +
@@ -96,7 +96,7 @@ end
def test_static_values_no_closures()
print("Testing static values don't create closures...")
- var dsl_source = "animation simple_anim = comet_animation(\n" +
+ var dsl_source = "animation simple_anim = comet(\n" +
" color=red\n" +
" tail_length=5\n" +
" speed=1.0\n" +
diff --git a/lib/libesp32/berry_animation/src/tests/constraint_encoding_test.be b/lib/libesp32/berry_animation/src/tests/constraint_encoding_test.be
index ae944b098..63b7ccaab 100644
--- a/lib/libesp32/berry_animation/src/tests/constraint_encoding_test.be
+++ b/lib/libesp32/berry_animation/src/tests/constraint_encoding_test.be
@@ -209,7 +209,7 @@ assert_equal(animation.parameterized_object.constraint_mask(encoded_4_3, "nillab
# ============================================================================
print("\n--- Test Group 5: Real-World PARAMS ---")
-# Test 5.1: BeaconAnimation PARAMS
+# Test 5.1: beacon PARAMS
var beacon_params = {
"color": {"default": 0xFFFFFFFF},
"back_color": {"default": 0xFF000000},
@@ -221,7 +221,7 @@ var beacon_encoded = animation.enc_params(beacon_params)
assert_equal(animation.parameterized_object.constraint_find(beacon_encoded["color"], "default", nil), 0xFFFFFFFF, "5.1a: beacon color")
assert_equal(animation.parameterized_object.constraint_find(beacon_encoded["beacon_size"], "min", nil), 0, "5.1b: beacon_size min")
-# Test 5.2: CometAnimation PARAMS
+# Test 5.2: comet PARAMS
var comet_params = {
"tail_length": {"min": 1, "max": 50, "default": 5},
"speed": {"min": 1, "max": 25600, "default": 2560},
@@ -250,7 +250,7 @@ assert_equal(animation.parameterized_object.constraint_find(animation_encoded["n
assert_equal(animation.parameterized_object.constraint_find(animation_encoded["loop"], "type", nil), "bool", "5.3c: loop type")
assert_equal(animation.parameterized_object.constraint_find(animation_encoded["opacity"], "type", nil), "any", "5.3d: opacity type")
-# Test 5.4: GradientAnimation PARAMS (with nillable)
+# Test 5.4: gradient PARAMS (with nillable)
var gradient_params = {
"color": {"default": nil, "nillable": true},
"gradient_type": {"min": 0, "max": 1, "default": 0},
@@ -272,7 +272,7 @@ var oscillator_encoded = animation.enc_params(oscillator_params)
var form_enum = animation.parameterized_object.constraint_find(oscillator_encoded["form"], "enum", nil)
assert_array_equal(form_enum, [1, 2, 3, 4, 5, 6, 7, 8, 9], "5.5a: form enum")
-# Test 5.6: BreatheAnimation PARAMS
+# Test 5.6: breathe PARAMS
var breathe_params = {
"base_color": {"default": 0xFFFFFFFF},
"min_brightness": {"min": 0, "max": 255, "default": 0},
diff --git a/lib/libesp32/berry_animation/src/tests/crenel_position_animation_test.be b/lib/libesp32/berry_animation/src/tests/crenel_position_animation_test.be
index 9fe0d6158..c8de5def7 100644
--- a/lib/libesp32/berry_animation/src/tests/crenel_position_animation_test.be
+++ b/lib/libesp32/berry_animation/src/tests/crenel_position_animation_test.be
@@ -1,6 +1,6 @@
# Unit tests for Crenel Position Animation
#
-# This file contains comprehensive tests for the CrenelPositionAnimation class
+# This file contains comprehensive tests for the crenel class
# to ensure it works correctly with various parameters and edge cases.
#
# Command to run tests:
@@ -31,7 +31,7 @@ def run_tests()
var engine = animation.create_engine(strip)
# Test 1: Basic construction with new parameterized pattern
- var crenel = animation.crenel_animation(engine)
+ var crenel = animation.crenel(engine)
test_assert(crenel != nil, "Crenel position animation creation")
# Set parameters via virtual member assignment
diff --git a/lib/libesp32/berry_animation/src/tests/crenel_position_color_test.be b/lib/libesp32/berry_animation/src/tests/crenel_position_color_test.be
index 45c6af294..87d709a77 100644
--- a/lib/libesp32/berry_animation/src/tests/crenel_position_color_test.be
+++ b/lib/libesp32/berry_animation/src/tests/crenel_position_color_test.be
@@ -1,14 +1,14 @@
-# Test suite for CrenelPositionAnimation color handling
+# Test suite for crenel color handling
#
-# This test verifies that CrenelPositionAnimation correctly handles both
+# This test verifies that crenel correctly handles both
# integer colors and color_provider instances.
import string
import animation
-# Test CrenelPositionAnimation with integer color
+# Test crenel with integer color
def test_crenel_with_integer_color()
- print("Testing CrenelPositionAnimation with integer color...")
+ print("Testing crenel with integer color...")
# Create engine and strip for testing
var strip = global.Leds(10)
@@ -18,7 +18,7 @@ def test_crenel_with_integer_color()
var red_color = 0xFFFF0000 # Red
# Create animation with new parameterized pattern
- var crenel = animation.crenel_animation(engine)
+ var crenel = animation.crenel(engine)
# Set parameters via virtual member assignment
crenel.color = red_color
@@ -41,12 +41,12 @@ def test_crenel_with_integer_color()
assert(result == true, "Render should succeed with integer color")
assert(crenel.is_running == true, "Animation should be running")
- print("✓ CrenelPositionAnimation with integer color test passed")
+ print("✓ crenel with integer color test passed")
end
-# Test CrenelPositionAnimation with color_provider
+# Test crenel with color_provider
def test_crenel_with_color_provider()
- print("Testing CrenelPositionAnimation with color_provider...")
+ print("Testing crenel with color_provider...")
# Create engine and strip for testing
var strip = global.Leds(10)
@@ -60,7 +60,7 @@ def test_crenel_with_color_provider()
color_provider.color = blue_color
# Create animation with new parameterized pattern
- var crenel = animation.crenel_animation(engine)
+ var crenel = animation.crenel(engine)
# Set parameters via virtual member assignment
crenel.color = color_provider # color_provider
@@ -83,12 +83,12 @@ def test_crenel_with_color_provider()
assert(result == true, "Render should succeed with color_provider")
assert(crenel.is_running == true, "Animation should be running")
- print("✓ CrenelPositionAnimation with color_provider test passed")
+ print("✓ crenel with color_provider test passed")
end
-# Test CrenelPositionAnimation with dynamic color_provider
+# Test crenel with dynamic color_provider
def test_crenel_with_dynamic_color_provider()
- print("Testing CrenelPositionAnimation with dynamic color_provider...")
+ print("Testing crenel with dynamic color_provider...")
# Create engine and strip for testing
var strip = global.Leds(10)
@@ -102,7 +102,7 @@ def test_crenel_with_dynamic_color_provider()
palette_provider.period = 2000 # 2 second cycle
# Create animation with new parameterized pattern
- var crenel = animation.crenel_animation(engine)
+ var crenel = animation.crenel(engine)
# Set parameters via virtual member assignment
crenel.color = palette_provider # dynamic color_provider
@@ -132,12 +132,12 @@ def test_crenel_with_dynamic_color_provider()
var result2 = crenel.render(frame, engine.time_ms, engine.strip_length)
assert(result2 == true, "Second render should succeed")
- print("✓ CrenelPositionAnimation with dynamic color_provider test passed")
+ print("✓ crenel with dynamic color_provider test passed")
end
-# Test CrenelPositionAnimation with generic value_provider
+# Test crenel with generic value_provider
def test_crenel_with_generic_value_provider()
- print("Testing CrenelPositionAnimation with generic value_provider...")
+ print("Testing crenel with generic value_provider...")
# Create engine and strip for testing
var strip = global.Leds(10)
@@ -150,7 +150,7 @@ def test_crenel_with_generic_value_provider()
static_provider.value = 0xFFFF00FF # Magenta
# Create animation with new parameterized pattern
- var crenel = animation.crenel_animation(engine)
+ var crenel = animation.crenel(engine)
# Set parameters via virtual member assignment
crenel.color = static_provider # generic value_provider
@@ -173,12 +173,12 @@ def test_crenel_with_generic_value_provider()
assert(result == true, "Render should succeed with generic value_provider")
assert(crenel.is_running == true, "Animation should be running")
- print("✓ CrenelPositionAnimation with generic value_provider test passed")
+ print("✓ crenel with generic value_provider test passed")
end
# Test direct color assignment with both types
def test_crenel_set_color_methods()
- print("Testing CrenelPositionAnimation direct color assignment...")
+ print("Testing crenel direct color assignment...")
# Create engine and strip for testing
var strip = global.Leds(5)
@@ -187,7 +187,7 @@ def test_crenel_set_color_methods()
var frame = animation.frame_buffer(5)
# Create animation with new parameterized pattern
- var crenel = animation.crenel_animation(engine)
+ var crenel = animation.crenel(engine)
# Set initial parameters
crenel.color = 0xFFFF0000 # red
@@ -219,19 +219,19 @@ def test_crenel_set_color_methods()
var result2 = crenel.render(frame, engine.time_ms, engine.strip_length)
assert(result2 == true, "Render with color_provider should succeed")
- print("✓ CrenelPositionAnimation direct color assignment test passed")
+ print("✓ crenel direct color assignment test passed")
end
# Test tostring method with both color types
def test_crenel_tostring()
- print("Testing CrenelPositionAnimation tostring method...")
+ print("Testing crenel tostring method...")
# Create engine and strip for testing
var strip = global.Leds(5)
var engine = animation.create_engine(strip)
# Test with integer color
- var crenel_int = animation.crenel_animation(engine)
+ var crenel_int = animation.crenel(engine)
crenel_int.color = 0xFFFF0000
crenel_int.back_color = 0x00000000 # transparent (default)
crenel_int.pos = 0
@@ -252,7 +252,7 @@ def test_crenel_tostring()
var color_provider = animation.static_color(engine)
color_provider.color = 0xFF00FF00
- var crenel_provider = animation.crenel_animation(engine)
+ var crenel_provider = animation.crenel(engine)
crenel_provider.color = color_provider
crenel_provider.back_color = 0x00000000 # transparent (default)
crenel_provider.pos = 0
@@ -269,12 +269,12 @@ def test_crenel_tostring()
assert(size(str_provider) > 0, "String representation should not be empty")
print(f"color_provider string: {str_provider}")
- print("✓ CrenelPositionAnimation tostring method test passed")
+ print("✓ crenel tostring method test passed")
end
# Run all tests
def run_crenel_color_tests()
- print("=== CrenelPositionAnimation Color Handling Tests ===")
+ print("=== crenel Color Handling Tests ===")
try
test_crenel_with_integer_color()
@@ -284,7 +284,7 @@ def run_crenel_color_tests()
test_crenel_set_color_methods()
test_crenel_tostring()
- print("=== All CrenelPositionAnimation color tests passed! ===")
+ print("=== All crenel color tests passed! ===")
return true
except .. as e, msg
print(f"Test failed: {e} - {msg}")
diff --git a/lib/libesp32/berry_animation/src/tests/demo_shutter_infinite_loop_test.be b/lib/libesp32/berry_animation/src/tests/demo_shutter_infinite_loop_test.be
index f7a90d93f..9df9e84dd 100644
--- a/lib/libesp32/berry_animation/src/tests/demo_shutter_infinite_loop_test.be
+++ b/lib/libesp32/berry_animation/src/tests/demo_shutter_infinite_loop_test.be
@@ -77,8 +77,8 @@ def test_demo_shutter_patterns()
return false
end
- # Test 4: Complex expressions in beacon_animation
- print(" Testing complex beacon_animation expressions...")
+ # Test 4: Complex expressions in beacon
+ print(" Testing complex beacon expressions...")
var complex_beacon = "template shutter_central {\n" +
" param colors type palette\n" +
" param duration\n" +
@@ -89,7 +89,7 @@ def test_demo_shutter_patterns()
" \n" +
" color col1 = color_cycle(palette=colors, period=0)\n" +
" \n" +
- " animation shutter_anim = beacon_animation(\n" +
+ " animation shutter_anim = beacon(\n" +
" color = col1\n" +
" back_color = red\n" +
" pos = strip_len2 - (shutter_size + 1) / 2\n" +
@@ -105,11 +105,11 @@ def test_demo_shutter_patterns()
"shutter_central(rainbow, 1s)"
try
- print(" Compiling complex beacon_animation...")
+ print(" Compiling complex beacon...")
var result4 = animation_dsl.compile(complex_beacon)
- print(" ✓ Complex beacon_animation works")
+ print(" ✓ Complex beacon works")
except .. as e, msg
- print(f" ✗ Complex beacon_animation failed: {e}: {msg}")
+ print(f" ✗ Complex beacon failed: {e}: {msg}")
return false
end
@@ -127,7 +127,7 @@ def test_demo_shutter_patterns()
" color col2 = color_cycle(palette=colors, period=0)\n" +
" col2.next = 1\n" +
" \n" +
- " animation shutter_inout = beacon_animation(\n" +
+ " animation shutter_inout = beacon(\n" +
" color = col2\n" +
" back_color = col1\n" +
" pos = strip_len2 - (shutter_size + 1) / 2\n" +
@@ -136,7 +136,7 @@ def test_demo_shutter_patterns()
" priority = 5\n" +
" )\n" +
" \n" +
- " animation shutter_outin = beacon_animation(\n" +
+ " animation shutter_outin = beacon(\n" +
" color = col1\n" +
" back_color = col2\n" +
" pos = strip_len2 - (strip_len - shutter_size + 1) / 2\n" +
diff --git a/lib/libesp32/berry_animation/src/tests/dsl_berry_code_blocks_test.be b/lib/libesp32/berry_animation/src/tests/dsl_berry_code_blocks_test.be
index 69f0b7976..792363e4f 100644
--- a/lib/libesp32/berry_animation/src/tests/dsl_berry_code_blocks_test.be
+++ b/lib/libesp32/berry_animation/src/tests/dsl_berry_code_blocks_test.be
@@ -114,7 +114,7 @@ def test_complex_berry_content()
'print("Complex berry block initialized")\n' +
'"""\n' +
'color purple_custom = 0x800080\n' +
- 'animation pulse = pulsating_animation(color=purple_custom, period=2s)\n' +
+ 'animation pulse = breathe(color=purple_custom, period=2s)\n' +
'run pulse'
var berry_code = animation_dsl.compile(dsl_source)
@@ -136,7 +136,7 @@ def test_berry_dsl_interaction()
print("Testing berry code block interaction with DSL objects...")
var dsl_source = 'color red_custom = 0xFF0000\n' +
- 'animation test_anim = pulsating_animation(color=red_custom, period=3s)\n' +
+ 'animation test_anim = breathe(color=red_custom, period=3s)\n' +
'berry """\n' +
'# Modify DSL-generated animation\n' +
'test_anim_.opacity = 150\n' +
@@ -148,7 +148,7 @@ def test_berry_dsl_interaction()
var berry_code = animation_dsl.compile(dsl_source)
assert(berry_code != nil, "Should generate Berry code")
- assert(string.find(berry_code, "var test_anim_ = animation.pulsating_animation(engine)") >= 0, "Should create animation")
+ assert(string.find(berry_code, "var test_anim_ = animation.breathe(engine)") >= 0, "Should create animation")
assert(string.find(berry_code, "test_anim_.opacity = 150") >= 0, "Should modify animation opacity")
assert(string.find(berry_code, "test_anim_.priority = 10") >= 0, "Should modify animation priority")
assert(string.find(berry_code, 'print("Animation modified via berry code")') >= 0, "Should include print statement")
@@ -396,7 +396,7 @@ def test_external_function_complex()
'extern function rand_meter\n' +
'extern function breathing_effect\n' +
'palette rainbow = [0xFF0000, 0x00FF00, 0x0000FF]\n' +
- 'animation meter = palette_meter_animation(level = rand_meter())\n' +
+ 'animation meter = palette_meter(level = rand_meter())\n' +
'animation breath = solid(color=blue)\n' +
'breath.opacity = breathing_effect\n' +
'run meter'
diff --git a/lib/libesp32/berry_animation/src/tests/dsl_berry_integration_test.be b/lib/libesp32/berry_animation/src/tests/dsl_berry_integration_test.be
index c67747796..aa6d56278 100644
--- a/lib/libesp32/berry_animation/src/tests/dsl_berry_integration_test.be
+++ b/lib/libesp32/berry_animation/src/tests/dsl_berry_integration_test.be
@@ -22,8 +22,8 @@ def test_mathematical_integration()
'end\n' +
'"""\n' +
'color wave_color = 0x0080FF\n' +
- 'animation wave1 = pulsating_animation(color=wave_color, period=2s)\n' +
- 'animation wave2 = pulsating_animation(color=wave_color, period=3s)\n' +
+ 'animation wave1 = breathe(color=wave_color, period=2s)\n' +
+ 'animation wave2 = breathe(color=wave_color, period=3s)\n' +
'berry """\n' +
'wave1_.period = calculate_period(4000, 2.0) # 2000ms\n' +
'wave1_.opacity = calculate_opacity(80) # 204\n' +
@@ -80,10 +80,10 @@ def test_configuration_management()
'"""\n' +
'color fire_red = 0xFF4500\n' +
'color ocean_blue = 0x006994\n' +
- 'animation fire_anim = pulsating_animation(color=fire_red, period=2s)\n' +
- 'animation ocean_anim = pulsating_animation(color=ocean_blue, period=3s)\n' +
+ 'animation fire_anim = breathe(color=fire_red, period=2s)\n' +
+ 'animation ocean_anim = breathe(color=ocean_blue, period=3s)\n' +
'berry """\n' +
- 'apply_config_to_animation(fire_anim_, "fire_animation")\n' +
+ 'apply_config_to_animation(fire_anim_, "fire")\n' +
'apply_config_to_animation(ocean_anim_, "ocean_animation")\n' +
'log_debug("Configuration applied to all animations")\n' +
'"""\n' +
@@ -121,7 +121,7 @@ def test_dynamic_animation_creation()
'var animation_counter = 0\n' +
'def create_numbered_animation(base_color, period_ms)\n' +
' animation_counter += 1\n' +
- ' var anim = animation.pulsating_animation(engine)\n' +
+ ' var anim = animation.breathe(engine)\n' +
' anim.color = base_color\n' +
' anim.period = period_ms\n' +
' anim.priority = animation_counter\n' +
@@ -146,7 +146,7 @@ def test_dynamic_animation_creation()
# Verify dynamic creation function is included
assert(string.find(berry_code, "def create_numbered_animation(base_color, period_ms)") >= 0, "Should include dynamic creation function")
- assert(string.find(berry_code, "var anim = animation.pulsating_animation(engine)") >= 0, "Should create animations dynamically")
+ assert(string.find(berry_code, "var anim = animation.breathe(engine)") >= 0, "Should create animations dynamically")
assert(string.find(berry_code, "engine.add(anim)") >= 0, "Should add animations to engine")
# Test execution
@@ -186,7 +186,7 @@ def test_state_management()
'end\n' +
'"""\n' +
'color status_color = 0x00FFFF\n' +
- 'animation status_anim = pulsating_animation(color=status_color, period=2s)\n' +
+ 'animation status_anim = breathe(color=status_color, period=2s)\n' +
'berry """\n' +
'set_mode("bright")\n' +
'status_anim_.opacity = get_brightness_for_mode()\n' +
@@ -243,7 +243,7 @@ def test_error_handling_integration()
'end\n' +
'"""\n' +
'color safe_color = 0xFF8000\n' +
- 'animation safe_anim = pulsating_animation(color=safe_color, period=1s)\n' +
+ 'animation safe_anim = breathe(color=safe_color, period=1s)\n' +
'berry """\n' +
'var calculated_period = safe_divide(4000, 2) # Should work\n' +
'safe_set_period(safe_anim_, int(calculated_period * 1000))\n' +
diff --git a/lib/libesp32/berry_animation/src/tests/dsl_compilation_test.be b/lib/libesp32/berry_animation/src/tests/dsl_compilation_test.be
index 4826e067d..7458f0772 100644
--- a/lib/libesp32/berry_animation/src/tests/dsl_compilation_test.be
+++ b/lib/libesp32/berry_animation/src/tests/dsl_compilation_test.be
@@ -53,12 +53,12 @@ def test_successful_compilation()
# Test animation definitions
var animation_dsl_code =
- "animation test = pulsating_animation(color=0xFF0000FF, min_brightness=(0+1))\n" +
+ "animation test = breathe(color=0xFF0000FF, min_brightness=(0+1))\n" +
"test.priority = 10\n"
berry_code = animation_dsl.compile(animation_dsl_code)
assert(berry_code != nil, "Should compile animation definitions")
- assert(string.find(berry_code, "animation.pulsating_animation(engine)") >= 0, "Should create pulsating animation")
+ assert(string.find(berry_code, "animation.breathe(engine)") >= 0, "Should create pulsating animation")
assert(string.find(berry_code, "test_.color = 0xFF0000FF") >= 0, "Should set color parameter")
assert(string.find(berry_code, "test_.priority = 10") >= 0, "Should set priority property")
@@ -175,7 +175,7 @@ def test_compilation_failures()
end
# Test invalid parameter name
- var invalid_param_dsl = "animation pulse = pulsating_animation(invalid_param=123)"
+ var invalid_param_dsl = "animation pulse = breathe(invalid_param=123)"
try
var berry_code = animation_dsl.compile(invalid_param_dsl)
@@ -188,7 +188,7 @@ def test_compilation_failures()
# Test invalid property assignment
var invalid_property_dsl =
- "animation pulse = pulsating_animation(color=red, period=2s)\n" +
+ "animation pulse = breathe(color=red, period=2s)\n" +
"pulse.wrong_property = 15"
try
@@ -201,7 +201,7 @@ def test_compilation_failures()
end
# Test undefined color reference
- var undefined_color_dsl = "animation pulse = pulsating_animation(color=undefined_color)"
+ var undefined_color_dsl = "animation pulse = breathe(color=undefined_color)"
try
var berry_code = animation_dsl.compile(undefined_color_dsl)
@@ -378,7 +378,7 @@ def test_complete_example()
"shutter_size.min_value = rand_demo()\n" +
"shutter_size.max_value = strip_len\n" +
"shutter_size.min_value = strip_len / 2\n" +
- "animation test = pulsating_animation(color=0xFF0000FF, min_brightness=(0+1))\n" +
+ "animation test = breathe(color=0xFF0000FF, min_brightness=(0+1))\n" +
"palette col1 = [red, orange, yellow, green, blue, indigo, white]\n" +
"set zz = strip_len - 2\n" +
"set z1 = x\n" +
@@ -407,7 +407,7 @@ def test_complete_example()
assert(string.find(berry_code, "var r1_ = animation.create_closure_value(engine") >= 0, "Should create user function closures")
assert(string.find(berry_code, "var x_ = 3000") >= 0, "Should convert time values")
assert(string.find(berry_code, "animation.sawtooth(engine)") >= 0, "Should create sawtooth providers")
- assert(string.find(berry_code, "animation.pulsating_animation(engine)") >= 0, "Should create animations")
+ assert(string.find(berry_code, "animation.breathe(engine)") >= 0, "Should create animations")
assert(string.find(berry_code, 'bytes("FFFF0000"') >= 0, "Should create palette bytes")
assert(string.find(berry_code, "animation.sequence_manager(engine") >= 0, "Should create sequences")
assert(string.find(berry_code, "push_repeat_subsequence") >= 0, "Should create repeat loops")
diff --git a/lib/libesp32/berry_animation/src/tests/dsl_core_processing_test.be b/lib/libesp32/berry_animation/src/tests/dsl_core_processing_test.be
index e751c5141..5158ebf75 100644
--- a/lib/libesp32/berry_animation/src/tests/dsl_core_processing_test.be
+++ b/lib/libesp32/berry_animation/src/tests/dsl_core_processing_test.be
@@ -116,8 +116,8 @@ def test_animation_processing()
# Test pulse animations with named arguments
var pulse_tests = [
["animation solid_red = solid(color=red)\n"
- "animation pulse_red = pulsating_animation(color=red, period=2000)",
- "var pulse_red_ = animation.pulsating_animation(engine)\npulse_red_.color = 0xFFFF0000\npulse_red_.period = 2000"]
+ "animation pulse_red = breathe(color=red, period=2000)",
+ "var pulse_red_ = animation.breathe(engine)\npulse_red_.color = 0xFFFF0000\npulse_red_.period = 2000"]
]
for test : pulse_tests
@@ -282,7 +282,7 @@ def test_property_assignments()
"red_anim_.priority = 15"],
["animation test_anim = solid(color=red)\ntest_anim.opacity = 128",
"test_anim_.opacity = 128"],
- ["animation solid_red = solid(color=red)\nanimation pulse_anim = pulsating_animation(color=red, period=2000)\npulse_anim.priority = 5",
+ ["animation solid_red = solid(color=red)\nanimation pulse_anim = breathe(color=red, period=2000)\npulse_anim.priority = 5",
"pulse_anim_.priority = 5"]
]
diff --git a/lib/libesp32/berry_animation/src/tests/dsl_newline_syntax_test.be b/lib/libesp32/berry_animation/src/tests/dsl_newline_syntax_test.be
index 34eec4cf4..14b977b27 100644
--- a/lib/libesp32/berry_animation/src/tests/dsl_newline_syntax_test.be
+++ b/lib/libesp32/berry_animation/src/tests/dsl_newline_syntax_test.be
@@ -14,7 +14,7 @@ def test_animation_newline_parameters()
var dsl_source =
"color custom_red = 0xFF0000\n" +
- "animation stream1 = comet_animation(\n" +
+ "animation stream1 = comet(\n" +
" color=custom_red\n" +
" tail_length=15\n" +
" speed=1.5s\n" +
@@ -25,7 +25,7 @@ def test_animation_newline_parameters()
var berry_code = animation_dsl.compile(dsl_source)
assert(berry_code != nil, "Should compile DSL with newline parameters")
- assert(string.find(berry_code, "var stream1_ = animation.comet_animation(engine)") >= 0, "Should generate animation creation")
+ assert(string.find(berry_code, "var stream1_ = animation.comet(engine)") >= 0, "Should generate animation creation")
assert(string.find(berry_code, "stream1_.color = custom_red_") >= 0, "Should generate color assignment")
assert(string.find(berry_code, "stream1_.tail_length = 15") >= 0, "Should generate tail_length assignment")
assert(string.find(berry_code, "stream1_.speed = 1500") >= 0, "Should generate speed assignment")
@@ -66,7 +66,7 @@ def test_mixed_syntax()
var dsl_source =
"color custom_red = 0xFF0000\n" +
- "animation mixed = comet_animation(\n" +
+ "animation mixed = comet(\n" +
" color=custom_red, tail_length=15\n" +
" speed=1.5s\n" +
" priority=10, direction=1\n" +
@@ -92,7 +92,7 @@ def test_traditional_comma_syntax()
var dsl_source =
"color custom_red = 0xFF0000\n" +
- "animation traditional = comet_animation(color=custom_red, tail_length=15, speed=1.5s, priority=10)\n" +
+ "animation traditional = comet(color=custom_red, tail_length=15, speed=1.5s, priority=10)\n" +
"run traditional"
var berry_code = animation_dsl.compile(dsl_source)
@@ -136,7 +136,7 @@ def test_nested_function_calls()
print("Testing nested function calls with newline syntax...")
var dsl_source =
- "animation nested = pulsating_animation(\n" +
+ "animation nested = breathe(\n" +
" color=solid(color=red)\n" +
" period=triangle(\n" +
" min_value=1000\n" +
@@ -149,7 +149,7 @@ def test_nested_function_calls()
var berry_code = animation_dsl.compile(dsl_source)
assert(berry_code != nil, "Should compile nested function calls with newline syntax")
- assert(string.find(berry_code, "var nested_ = animation.pulsating_animation(engine)") >= 0, "Should generate main animation")
+ assert(string.find(berry_code, "var nested_ = animation.breathe(engine)") >= 0, "Should generate main animation")
assert(string.find(berry_code, "nested_.color = (def (engine)") >= 0, "Should generate nested solid call as anonymous function")
assert(string.find(berry_code, "nested_.period = (def (engine)") >= 0, "Should generate nested triangle call as anonymous function")
assert(string.find(berry_code, "var provider = animation.solid(engine)") >= 0, "Should generate solid provider in anonymous function")
@@ -179,7 +179,7 @@ def test_complex_example()
" brightness=255\n" +
")\n" +
"\n" +
- "animation stream = comet_animation(\n" +
+ "animation stream = comet(\n" +
" color=stream_pattern # color source\n" +
" tail_length=15 # long tail\n" +
" speed=1.5s # speed\n" +
@@ -193,7 +193,7 @@ def test_complex_example()
assert(berry_code != nil, "Should compile complex real-world example")
assert(string.find(berry_code, "var matrix_greens_ = bytes(") >= 0, "Should generate palette")
assert(string.find(berry_code, "var stream_pattern_ = animation.rich_palette_color(engine)") >= 0, "Should generate color provider")
- assert(string.find(berry_code, "var stream_ = animation.comet_animation(engine)") >= 0, "Should generate animation")
+ assert(string.find(berry_code, "var stream_ = animation.comet(engine)") >= 0, "Should generate animation")
print("✓ Complex example test passed")
return true
diff --git a/lib/libesp32/berry_animation/src/tests/dsl_parameter_validation_test.be b/lib/libesp32/berry_animation/src/tests/dsl_parameter_validation_test.be
index bf91edca6..cf0bcc283 100644
--- a/lib/libesp32/berry_animation/src/tests/dsl_parameter_validation_test.be
+++ b/lib/libesp32/berry_animation/src/tests/dsl_parameter_validation_test.be
@@ -29,7 +29,7 @@ class DSLParameterValidationTest
def test_valid_parameters()
var dsl_code =
"# strip length 30 # TEMPORARILY DISABLED\n"
- "animation breathe_test = breathe_animation(color=0xFF0000FF, period=2000, min_brightness=50)\n"
+ "animation breathe_test = breathe(color=0xFF0000FF, period=2000, min_brightness=50)\n"
"run breathe_test"
var berry_code = animation_dsl.compile_dsl(dsl_code)
@@ -56,7 +56,7 @@ class DSLParameterValidationTest
def test_invalid_parameter()
var dsl_code =
"# strip length 30 # TEMPORARILY DISABLED\n"
- "animation breathe_test = breathe_animation(color=0xFF0000FF, invalid_param=123)\n"
+ "animation breathe_test = breathe(color=0xFF0000FF, invalid_param=123)\n"
"run breathe_test"
var compilation_failed = false
@@ -86,7 +86,7 @@ class DSLParameterValidationTest
def test_mixed_parameters()
var dsl_code =
"# strip length 30 # TEMPORARILY DISABLED\n"
- "animation breathe_test = breathe_animation(color=0xFF0000FF, period=2000, nonexistent_param=456)\n"
+ "animation breathe_test = breathe(color=0xFF0000FF, period=2000, nonexistent_param=456)\n"
"run breathe_test"
var compilation_failed = false
@@ -116,7 +116,7 @@ class DSLParameterValidationTest
def test_nested_function_invalid_parameters()
var dsl_code =
"# strip length 30 # TEMPORARILY DISABLED\n"
- "animation main_anim = pulsating_animation(color=breathe_animation(color=0xFF0000FF, bad_param=789))\n"
+ "animation main_anim = breathe(color=breathe(color=0xFF0000FF, bad_param=789))\n"
"run main_anim"
var compilation_failed = false
@@ -146,7 +146,7 @@ class DSLParameterValidationTest
def test_user_function_not_validated()
# First register a user function
animation.register_user_function("my_custom_anim", def(engine, param1, param2)
- return animation.breathe_animation(engine)
+ return animation.breathe(engine)
end)
var dsl_code =
@@ -171,8 +171,8 @@ class DSLParameterValidationTest
def test_multiple_animations_validation()
var dsl_code =
"# strip length 30 # TEMPORARILY DISABLED\n"
- "animation valid_anim = breathe_animation(color=0xFF0000FF, period=2000)\n"
- "animation invalid_anim = breathe_animation(color=0xFF00FF00, wrong_param=999)\n"
+ "animation valid_anim = breathe(color=0xFF0000FF, period=2000)\n"
+ "animation invalid_anim = breathe(color=0xFF00FF00, wrong_param=999)\n"
"run valid_anim"
var compilation_failed = false
@@ -201,8 +201,8 @@ class DSLParameterValidationTest
# Test valid object property references - should compile successfully
def test_valid_object_property_references()
var dsl_code =
- "animation red_eye = beacon_animation(color=red, pos=10)\n"
- "animation green_eye = beacon_animation(color=green, pos=red_eye.pos)\n"
+ "animation red_eye = beacon(color=red, pos=10)\n"
+ "animation green_eye = beacon(color=green, pos=red_eye.pos)\n"
"run red_eye\n"
"run green_eye"
@@ -222,8 +222,8 @@ class DSLParameterValidationTest
def test_invalid_object_property_references()
var dsl_code =
"# strip length 30 # TEMPORARILY DISABLED\n"
- "animation red_eye = beacon_animation(color=red, pos=10)\n"
- "animation green_eye = beacon_animation(color=green, pos=red_eye.invalid_param)\n"
+ "animation red_eye = beacon(color=red, pos=10)\n"
+ "animation green_eye = beacon(color=green, pos=red_eye.invalid_param)\n"
"run red_eye\n"
"run green_eye"
@@ -249,9 +249,9 @@ class DSLParameterValidationTest
raise "error_message_error", f"Error message should mention 'invalid_param', got: {error_message}"
end
- # Check that the error message mentions it's a BeaconAnimation parameter issue
- if string.find(error_message, "BeaconAnimation") == -1
- raise "error_message_error", f"Error message should mention 'BeaconAnimation', got: {error_message}"
+ # Check that the error message mentions it's a beacon parameter issue
+ if string.find(error_message, "beacon") == -1
+ raise "error_message_error", f"Error message should mention 'beacon', got: {error_message}"
end
end
@@ -259,8 +259,8 @@ class DSLParameterValidationTest
def test_object_property_references_in_expressions()
var dsl_code =
"set strip_len = strip_length()\n"
- "animation red_eye = beacon_animation(color=red, pos=10)\n"
- "animation blue_eye = beacon_animation(color=blue, pos=strip_len - red_eye.nonexistent)\n"
+ "animation red_eye = beacon(color=red, pos=10)\n"
+ "animation blue_eye = beacon(color=blue, pos=strip_len - red_eye.nonexistent)\n"
"run red_eye\n"
"run blue_eye"
@@ -293,7 +293,7 @@ class DSLParameterValidationTest
"sequence demo {\n"
" play solid(color=red) for 5s\n"
"}\n"
- "animation test = beacon_animation(color=blue, pos=demo.pos)\n"
+ "animation test = beacon(color=blue, pos=demo.pos)\n"
"run test"
var compilation_failed = false
@@ -323,8 +323,8 @@ class DSLParameterValidationTest
def test_valid_computed_object_property_references()
var dsl_code =
"set strip_len = strip_length()\n"
- "animation red_eye = beacon_animation(color=red, pos=10)\n"
- "animation blue_eye = beacon_animation(color=blue, pos=strip_len - red_eye.pos)\n"
+ "animation red_eye = beacon(color=red, pos=10)\n"
+ "animation blue_eye = beacon(color=blue, pos=strip_len - red_eye.pos)\n"
"run red_eye\n"
"run blue_eye"
diff --git a/lib/libesp32/berry_animation/src/tests/dsl_restart_test.be b/lib/libesp32/berry_animation/src/tests/dsl_restart_test.be
index 46c088375..6b9c1a950 100644
--- a/lib/libesp32/berry_animation/src/tests/dsl_restart_test.be
+++ b/lib/libesp32/berry_animation/src/tests/dsl_restart_test.be
@@ -82,7 +82,7 @@ def test_restart_animations()
print("Testing restart with animations...")
var dsl_source = "set osc_val = triangle(min_value=0, max_value=10, duration=2s)\n" +
- "animation pulse_anim = pulsating_animation(color=red, period=3s)\n" +
+ "animation pulse_anim = breathe(color=red, period=3s)\n" +
"animation solid_anim = solid(color=blue)\n" +
"\n" +
"sequence demo {\n" +
@@ -257,7 +257,7 @@ def test_complex_scenario()
"set cosine_val = cosine_osc(min_value = 0, max_value = strip_len - 2, duration = 5s)\n" +
"set triangle_val = triangle(min_value = 0, max_value = strip_len - 2, duration = 5s)\n" +
"\n" +
- "animation red_eye = beacon_animation(\n" +
+ "animation red_eye = beacon(\n" +
" color = eye_color\n" +
" pos = cosine_val\n" +
" beacon_size = 3\n" +
diff --git a/lib/libesp32/berry_animation/src/tests/dsl_template_animation_test.be b/lib/libesp32/berry_animation/src/tests/dsl_template_animation_test.be
index 1c38401de..5530ede75 100644
--- a/lib/libesp32/berry_animation/src/tests/dsl_template_animation_test.be
+++ b/lib/libesp32/berry_animation/src/tests/dsl_template_animation_test.be
@@ -117,7 +117,7 @@ class DSLTemplateAnimationTest
" param my_duration type time\n" +
" \n" +
" color col = color_cycle(colors=my_color, period=0)\n" +
- " animation test = pulsating_animation(color=col, period=my_duration)\n" +
+ " animation test = breathe(color=col, period=my_duration)\n" +
" run test\n" +
"}\n"
@@ -147,7 +147,7 @@ class DSLTemplateAnimationTest
" set strip_len = strip_length()\n" +
" set computed_size = strip_len / 2\n" +
" \n" +
- " animation test = beacon_animation(beacon_size=base_size)\n" +
+ " animation test = beacon(beacon_size=base_size)\n" +
" run test\n" +
"}\n"
@@ -207,7 +207,7 @@ class DSLTemplateAnimationTest
" set strip_len = strip_length()\n" +
" set oscillator = sawtooth(min_value=0, max_value=strip_len, duration=duration)\n" +
" \n" +
- " animation test = beacon_animation(pos=oscillator)\n" +
+ " animation test = beacon(pos=oscillator)\n" +
" run test\n" +
"}\n"
@@ -475,7 +475,7 @@ class DSLTemplateAnimationTest
" set shutter_size = sawtooth(min_value=0, max_value=strip_len, duration=duration)\n" +
" \n" +
" color col = color_cycle(colors=colors, period=0)\n" +
- " animation test = beacon_animation(color=col, beacon_size=shutter_size)\n" +
+ " animation test = beacon(color=col, beacon_size=shutter_size)\n" +
" \n" +
" sequence seq repeat forever {\n" +
" play test for period\n" +
@@ -550,7 +550,7 @@ class DSLTemplateAnimationTest
" color col2 = color_cycle(colors=colors, period=0)\n" +
" col2.next = 1\n" +
" \n" +
- " animation shutter = beacon_animation(\n" +
+ " animation shutter = beacon(\n" +
" color=col1\n" +
" back_color=col2\n" +
" pos=strip_len2\n" +
diff --git a/lib/libesp32/berry_animation/src/tests/dsl_transpiler_test.be b/lib/libesp32/berry_animation/src/tests/dsl_transpiler_test.be
index 8d84a10bb..df8d05984 100644
--- a/lib/libesp32/berry_animation/src/tests/dsl_transpiler_test.be
+++ b/lib/libesp32/berry_animation/src/tests/dsl_transpiler_test.be
@@ -266,7 +266,7 @@ print(repeat_berry_code)
"set cosine_val = cosine_osc(min_value = 0, max_value = strip_len - 2, duration = 5s)\n" +
"set triangle_val = triangle(min_value = 0, max_value = strip_len - 2, duration = 5s)\n" +
"\n" +
- "animation red_eye = beacon_animation(\n" +
+ "animation red_eye = beacon(\n" +
" color = eye_color\n" +
" pos = cosine_val\n" +
" beacon_size = 3\n" +
@@ -489,7 +489,7 @@ def test_computed_values()
# Test computed values with single resolve calls (regression test for double resolve issue)
var computed_dsl = "set strip_len = strip_length()\n" +
- "animation stream1 = comet_animation(\n" +
+ "animation stream1 = comet(\n" +
" color=red\n" +
" tail_length=abs(strip_len / 4)\n" +
" speed=1.5\n" +
@@ -519,7 +519,7 @@ def test_computed_values()
# Test complex expressions with single closure (regression test for nested closure issue)
var complex_expr_dsl = "set strip_len = strip_length()\n" +
"set base_value = 5\n" +
- "animation stream2 = comet_animation(\n" +
+ "animation stream2 = comet(\n" +
" color=blue\n" +
" tail_length=strip_len / 8 + (2 * strip_len) - 10\n" +
" speed=(base_value + strip_len) * 2.5\n" +
@@ -575,7 +575,7 @@ def test_computed_values()
# Test simple expressions that don't need closures
var simple_expr_dsl = "set strip_len = strip_length()\n" +
- "animation simple = comet_animation(\n" +
+ "animation simple = comet(\n" +
" color=red\n" +
" tail_length=strip_len\n" +
" speed=1.5\n" +
@@ -590,7 +590,7 @@ def test_computed_values()
# Test mathematical functions in computed expressions
var math_expr_dsl = "set strip_len = strip_length()\n" +
- "animation math_test = comet_animation(\n" +
+ "animation math_test = comet(\n" +
" color=red\n" +
" tail_length=max(1, min(strip_len, 20))\n" +
" speed=abs(strip_len - 30)\n" +
@@ -641,7 +641,7 @@ def test_forward_references()
print("Testing forward references...")
var dsl_source = "# Forward reference: animation uses color defined later\n" +
- "animation fire_gradient = gradient_animation(color=red)\n" +
+ "animation fire_gradient = gradient(color=red)\n" +
"color red = 0xFF0000\n" +
"color orange = 0xFF8000"
@@ -686,8 +686,8 @@ def test_complex_dsl()
"set brightness = 80%\n" +
"\n" +
"# Animation Definitions\n" +
- "animation red_pulse = pulsating_animation(color=red, period=2000)\n" +
- "animation blue_breathe = breathe_animation(color=blue, period=4000)\n" +
+ "animation red_pulse = breathe(color=red, period=2000)\n" +
+ "animation blue_breathe = breathe(color=blue, period=4000)\n" +
"\n" +
"# Sequence Definition with Control Flow\n" +
"sequence demo {\n" +
@@ -758,11 +758,11 @@ def test_core_processing_methods()
# Test pulse animation generation
var pulse_dsl = "color custom_red = 0xFF0000\n" +
"animation solid_red = solid(color=custom_red)\n" +
- "animation pulse_red = pulsating_animation(color=custom_red, period=2000)"
+ "animation pulse_red = breathe(color=custom_red, period=2000)"
var berry_code = animation_dsl.compile(pulse_dsl)
assert(berry_code != nil, "Should compile pulse animation")
- assert(string.find(berry_code, "animation.pulsating_animation(engine)") >= 0, "Should generate pulse animation")
+ assert(string.find(berry_code, "animation.breathe(engine)") >= 0, "Should generate pulse animation")
# Test control flow
var control_dsl = "color custom_blue = 0x0000FF\n" +
@@ -969,13 +969,13 @@ def test_animation_type_checking()
# Test valid animation factory functions
var valid_animation_dsl = "# strip length 30 # TEMPORARILY DISABLED\n" +
"color custom_red = 0xFF0000\n" +
- "animation pulse_red = pulsating_animation(color=custom_red, period=2000)\n" +
+ "animation pulse_red = breathe(color=custom_red, period=2000)\n" +
"animation solid_blue = solid(color=0x0000FF)\n" +
"run pulse_red"
var berry_code = animation_dsl.compile(valid_animation_dsl)
assert(berry_code != nil, "Should compile valid animation factories")
- assert(string.find(berry_code, "animation.pulsating_animation(engine)") >= 0, "Should generate pulsating_animation call")
+ assert(string.find(berry_code, "animation.breathe(engine)") >= 0, "Should generate breathe call")
assert(string.find(berry_code, "animation.solid(engine)") >= 0, "Should generate solid call")
# Test invalid animation factory function (should fail at transpile time)
diff --git a/lib/libesp32/berry_animation/src/tests/dsl_value_provider_validation_test.be b/lib/libesp32/berry_animation/src/tests/dsl_value_provider_validation_test.be
index 90515459c..8290e2a9a 100644
--- a/lib/libesp32/berry_animation/src/tests/dsl_value_provider_validation_test.be
+++ b/lib/libesp32/berry_animation/src/tests/dsl_value_provider_validation_test.be
@@ -40,7 +40,7 @@ class DSLvalue_providerValidationTest
def test_valid_value_provider_parameters()
var dsl_code =
"# strip length 30 # TEMPORARILY DISABLED\n"
- "animation test = pulsating_animation(color=0xFF0000FF, min_brightness=oscillator_value(min_value=0, max_value=100))\n"
+ "animation test = breathe(color=0xFF0000FF, min_brightness=oscillator_value(min_value=0, max_value=100))\n"
"run test"
var berry_code = animation_dsl.compile_dsl(dsl_code)
@@ -59,7 +59,7 @@ class DSLvalue_providerValidationTest
def test_invalid_value_provider_parameter()
var dsl_code =
"# strip length 30 # TEMPORARILY DISABLED\n"
- "animation test = pulsating_animation(color=0xFF0000FF, min_brightness=oscillator_value(min_value=0, invalid_param=123))\n"
+ "animation test = breathe(color=0xFF0000FF, min_brightness=oscillator_value(min_value=0, invalid_param=123))\n"
"run test"
var compilation_failed = false
@@ -89,7 +89,7 @@ class DSLvalue_providerValidationTest
def test_nonexistent_value_provider()
var dsl_code =
"# strip length 30 # TEMPORARILY DISABLED\n"
- "animation test = pulsating_animation(color=0xFF0000FF, min_brightness=nonexistent_provider(param=123))\n"
+ "animation test = breathe(color=0xFF0000FF, min_brightness=nonexistent_provider(param=123))\n"
"run test"
var compilation_failed = false
@@ -119,7 +119,7 @@ class DSLvalue_providerValidationTest
def test_nested_value_providers()
var dsl_code =
"# strip length 30 # TEMPORARILY DISABLED\n"
- "animation test = pulsating_animation(color=color_cycle(colors=[0xFF0000FF, 0xFF00FF00], period=oscillator_value(min_value=1000, bad_param=456)))\n"
+ "animation test = breathe(color=color_cycle(colors=[0xFF0000FF, 0xFF00FF00], period=oscillator_value(min_value=1000, bad_param=456)))\n"
"run test"
var compilation_failed = false
diff --git a/lib/libesp32/berry_animation/src/tests/engine_proxy_test.be b/lib/libesp32/berry_animation/src/tests/engine_proxy_test.be
index 01330934c..e6fcff634 100644
--- a/lib/libesp32/berry_animation/src/tests/engine_proxy_test.be
+++ b/lib/libesp32/berry_animation/src/tests/engine_proxy_test.be
@@ -93,7 +93,7 @@ print("\n=== Test 9: Engine Proxy with Own Rendering ===")
var proxy2 = animation.engine_proxy(engine)
proxy2.color = 0xFF0000FF # Blue background
-var pulse = animation.breathe_animation(engine)
+var pulse = animation.breathe(engine)
pulse.color = 0xFFFFFF00 # Yellow
pulse.period = 2000
diff --git a/lib/libesp32/berry_animation/src/tests/fire_animation_test.be b/lib/libesp32/berry_animation/src/tests/fire_animation_test.be
index 2c6e9748f..9ef2a8f76 100644
--- a/lib/libesp32/berry_animation/src/tests/fire_animation_test.be
+++ b/lib/libesp32/berry_animation/src/tests/fire_animation_test.be
@@ -1,5 +1,5 @@
# Fire Animation Test
-# Tests the FireAnimation class functionality
+# Tests the fire class functionality
import animation
@@ -11,7 +11,7 @@ var engine = animation.create_engine(strip)
# Test 1: Basic Fire Animation Creation
print("\n1. Testing basic fire animation creation...")
-var fire = animation.fire_animation(engine)
+var fire = animation.fire(engine)
# Set parameters using virtual member assignment
fire.intensity = 180
fire.flicker_speed = 8
@@ -37,16 +37,16 @@ print(f"Set flicker_speed to 25 (invalid): {result4}")
# Test 3: Factory Methods (if they exist)
print("\n3. Testing direct class instantiation...")
-var fire_classic = animation.fire_animation(engine)
+var fire_classic = animation.fire(engine)
fire_classic.intensity = 150
fire_classic.priority = 30
-var fire_solid = animation.fire_animation(engine)
+var fire_solid = animation.fire(engine)
fire_solid.color = 0xFFFF4500 # Orange red
fire_solid.intensity = 180
fire_solid.priority = 30
-var fire_palette = animation.fire_animation(engine)
+var fire_palette = animation.fire(engine)
fire_palette.intensity = 200
fire_palette.priority = 30
@@ -120,11 +120,11 @@ print("Set back to fire palette")
# Test 9: Multiple Fire Animations
print("\n9. Testing multiple fire animations...")
-var fire1 = animation.fire_animation(engine)
+var fire1 = animation.fire(engine)
fire1.intensity = 180
fire1.priority = 15
-var fire2 = animation.fire_animation(engine)
+var fire2 = animation.fire(engine)
fire2.color = 0xFFFF4500
fire2.intensity = 150
fire2.priority = 15
@@ -146,7 +146,7 @@ print("\n10. Testing edge cases...")
# Very small strip
var tiny_strip = global.Leds(1)
var tiny_engine = animation.create_engine(tiny_strip)
-var tiny_fire = animation.fire_animation(tiny_engine)
+var tiny_fire = animation.fire(tiny_engine)
tiny_fire.intensity = 180
tiny_fire.priority = 1
tiny_fire.start()
@@ -159,7 +159,7 @@ print("Tiny fire (1 pixel) created and rendered successfully")
# Zero intensity
var dim_strip = global.Leds(10)
var dim_engine = animation.create_engine(dim_strip)
-var dim_fire = animation.fire_animation(dim_engine)
+var dim_fire = animation.fire(dim_engine)
dim_fire.intensity = 0
dim_fire.priority = 10
dim_fire.start()
diff --git a/lib/libesp32/berry_animation/src/tests/gradient_animation_test.be b/lib/libesp32/berry_animation/src/tests/gradient_animation_test.be
index 1830bb0a6..a34b56dc3 100644
--- a/lib/libesp32/berry_animation/src/tests/gradient_animation_test.be
+++ b/lib/libesp32/berry_animation/src/tests/gradient_animation_test.be
@@ -1,20 +1,20 @@
-# Test suite for GradientAnimation
+# Test suite for gradient
#
-# This test verifies that the simplified GradientAnimation works correctly
+# This test verifies that the simplified gradient works correctly
# with linear and radial gradients using beacon-based rendering.
import animation
# Test basic gradient animation creation
def test_gradient_creation()
- print("Testing GradientAnimation creation...")
+ print("Testing gradient creation...")
# Create LED strip and engine for testing
var strip = global.Leds(10)
var engine = animation.create_engine(strip)
# Test default gradient
- var gradient = animation.gradient_animation(engine)
+ var gradient = animation.gradient(engine)
assert(gradient != nil, "Should create gradient animation")
assert(gradient.gradient_type == 0, "Should default to linear gradient")
assert(gradient.direction == 0, "Should default to forward direction")
@@ -22,23 +22,23 @@ def test_gradient_creation()
assert(gradient.color2 == 0xFF0000FF, "Should default to blue color2")
# Test radial gradient
- var radial_gradient = animation.gradient_animation(engine)
+ var radial_gradient = animation.gradient(engine)
radial_gradient.gradient_type = 1
radial_gradient.color1 = 0xFF000000
radial_gradient.color2 = 0xFFFFFFFF
assert(radial_gradient != nil, "Should create radial gradient")
assert(radial_gradient.gradient_type == 1, "Should be radial gradient")
- print("✓ GradientAnimation creation test passed")
+ print("✓ gradient creation test passed")
end
# Test gradient parameter changes
def test_gradient_parameters()
- print("Testing GradientAnimation parameters...")
+ print("Testing gradient parameters...")
var strip = global.Leds(10)
var engine = animation.create_engine(strip)
- var gradient = animation.gradient_animation(engine)
+ var gradient = animation.gradient(engine)
# Test parameter setting via virtual members
gradient.gradient_type = 1
@@ -57,16 +57,16 @@ def test_gradient_parameters()
assert(gradient.set_param("gradient_type", 5) == false, "Should reject invalid gradient type")
assert(gradient.set_param("direction", 5) == false, "Should reject invalid direction")
- print("✓ GradientAnimation parameters test passed")
+ print("✓ gradient parameters test passed")
end
# Test gradient animation updates
def test_gradient_updates()
- print("Testing GradientAnimation updates...")
+ print("Testing gradient updates...")
var strip = global.Leds(5)
var engine = animation.create_engine(strip)
- var gradient = animation.gradient_animation(engine)
+ var gradient = animation.gradient(engine)
gradient.color1 = 0xFF000000
gradient.color2 = 0xFF00FF00
@@ -81,16 +81,16 @@ def test_gradient_updates()
gradient.update(1500)
assert(gradient.is_running == true, "Should be running after update at 500ms")
- print("✓ GradientAnimation updates test passed")
+ print("✓ gradient updates test passed")
end
# Test gradient rendering
def test_gradient_rendering()
- print("Testing GradientAnimation rendering...")
+ print("Testing gradient rendering...")
var strip = global.Leds(5)
var engine = animation.create_engine(strip)
- var gradient = animation.gradient_animation(engine)
+ var gradient = animation.gradient(engine)
gradient.color1 = 0xFF000000 # Black
gradient.color2 = 0xFFFF0000 # Red
@@ -112,18 +112,18 @@ def test_gradient_rendering()
# Colors should be different in a gradient (black to red)
assert(first_color != last_color, "First and last pixels should be different in gradient")
- print("✓ GradientAnimation rendering test passed")
+ print("✓ gradient rendering test passed")
end
# Test linear gradient direction
def test_gradient_direction()
- print("Testing GradientAnimation direction...")
+ print("Testing gradient direction...")
var strip = global.Leds(10)
var engine = animation.create_engine(strip)
# Test forward direction (color1 -> color2)
- var forward_gradient = animation.gradient_animation(engine)
+ var forward_gradient = animation.gradient(engine)
forward_gradient.color1 = 0xFF000000 # Black
forward_gradient.color2 = 0xFFFF0000 # Red
forward_gradient.direction = 0
@@ -137,7 +137,7 @@ def test_gradient_direction()
var forward_last = frame1.get_pixel_color(9)
# Test reverse direction (color2 -> color1)
- var reverse_gradient = animation.gradient_animation(engine)
+ var reverse_gradient = animation.gradient(engine)
reverse_gradient.color1 = 0xFF000000 # Black
reverse_gradient.color2 = 0xFFFF0000 # Red
reverse_gradient.direction = 1
@@ -155,17 +155,17 @@ def test_gradient_direction()
print(f" Forward: first=0x{forward_first:08X}, last=0x{forward_last:08X}")
print(f" Reverse: first=0x{reverse_first:08X}, last=0x{reverse_last:08X}")
- print("✓ GradientAnimation direction test passed")
+ print("✓ gradient direction test passed")
end
# Test radial gradient
def test_radial_gradient()
- print("Testing GradientAnimation radial mode...")
+ print("Testing gradient radial mode...")
var strip = global.Leds(10)
var engine = animation.create_engine(strip)
- var radial_gradient = animation.gradient_animation(engine)
+ var radial_gradient = animation.gradient(engine)
radial_gradient.gradient_type = 1 # Radial
radial_gradient.color1 = 0xFF000000 # Black at center
radial_gradient.color2 = 0xFFFFFFFF # White at edges
@@ -188,12 +188,12 @@ def test_radial_gradient()
var center_brightness = ((center_color >> 16) & 0xFF) + ((center_color >> 8) & 0xFF) + (center_color & 0xFF)
assert(edge_brightness > center_brightness, "Edge should be brighter than center in radial gradient")
- print("✓ GradientAnimation radial mode test passed")
+ print("✓ gradient radial mode test passed")
end
# Run all tests
def run_gradient_animation_tests()
- print("=== GradientAnimation Tests ===")
+ print("=== gradient Tests ===")
try
test_gradient_creation()
@@ -203,7 +203,7 @@ def run_gradient_animation_tests()
test_gradient_direction()
test_radial_gradient()
- print("=== All GradientAnimation tests passed! ===")
+ print("=== All gradient tests passed! ===")
return true
except .. as e, msg
print(f"Test failed: {e} - {msg}")
diff --git a/lib/libesp32/berry_animation/src/tests/gradient_lut_integration_test.be b/lib/libesp32/berry_animation/src/tests/gradient_lut_integration_test.be
index 3dce846f8..2994dd81c 100644
--- a/lib/libesp32/berry_animation/src/tests/gradient_lut_integration_test.be
+++ b/lib/libesp32/berry_animation/src/tests/gradient_lut_integration_test.be
@@ -1,7 +1,7 @@
# Integration test for gradient animation with LUT optimization
#
-# This test verifies that palette_gradient_animation works correctly
-# with the LUT-optimized RichPaletteColorProvider
+# This test verifies that palette_gradient works correctly
+# with the LUT-optimized rich_palette_color
import animation
import animation_dsl
@@ -33,7 +33,7 @@ var rainbow_with_white = bytes(
)
# Create a rich palette color provider
-var rainbow_rich_color = animation.rich_palette(engine)
+var rainbow_rich_color = animation.rich_palette_color(engine)
rainbow_rich_color.colors = rainbow_with_white
rainbow_rich_color.period = 10000 # 10 seconds
rainbow_rich_color.transition_type = animation.SINE
@@ -49,7 +49,7 @@ period_osc.max_value = (3 * strip_len) / 2
period_osc.duration = 5000 # 5 seconds
# Create gradient animation
-var back_pattern = animation.palette_gradient_animation(engine)
+var back_pattern = animation.palette_gradient(engine)
back_pattern.color_source = rainbow_rich_color
back_pattern.spatial_period = strip_len # Start with full strip
back_pattern.shift_period = 0 # Static for testing
diff --git a/lib/libesp32/berry_animation/src/tests/gradient_rainbow_test.be b/lib/libesp32/berry_animation/src/tests/gradient_rainbow_test.be
index 9459c8542..52908981f 100644
--- a/lib/libesp32/berry_animation/src/tests/gradient_rainbow_test.be
+++ b/lib/libesp32/berry_animation/src/tests/gradient_rainbow_test.be
@@ -8,7 +8,7 @@ var strip = global.Leds(10)
var engine = animation.create_engine(strip)
# Test linear gradient with two colors
-var gradient = animation.gradient_animation(engine)
+var gradient = animation.gradient(engine)
gradient.color1 = 0xFF0000FF # Blue
gradient.color2 = 0xFFFF0000 # Red
gradient.gradient_type = 0 # Linear
diff --git a/lib/libesp32/berry_animation/src/tests/gradient_simple_test.be b/lib/libesp32/berry_animation/src/tests/gradient_simple_test.be
index dde7d5a47..c45583c7b 100644
--- a/lib/libesp32/berry_animation/src/tests/gradient_simple_test.be
+++ b/lib/libesp32/berry_animation/src/tests/gradient_simple_test.be
@@ -1,14 +1,14 @@
-# Simple test for GradientAnimation
+# Simple test for gradient
import animation
-print("Testing basic GradientAnimation functionality...")
+print("Testing basic gradient functionality...")
# Create LED strip and engine
var strip = global.Leds(5)
var engine = animation.create_engine(strip)
# Test basic creation
-var gradient = animation.gradient_animation(engine)
+var gradient = animation.gradient(engine)
assert(gradient != nil, "Should create gradient animation")
# Test parameter setting
@@ -35,6 +35,6 @@ var frame = animation.frame_buffer(5)
var result = gradient.render(frame, 1000, engine.strip_length)
assert(result == true, "Should render successfully")
-print("✓ Basic GradientAnimation test passed!")
+print("✓ Basic gradient test passed!")
return true
diff --git a/lib/libesp32/berry_animation/src/tests/nested_function_calls_test.be b/lib/libesp32/berry_animation/src/tests/nested_function_calls_test.be
index 7fbabda33..844832f1b 100644
--- a/lib/libesp32/berry_animation/src/tests/nested_function_calls_test.be
+++ b/lib/libesp32/berry_animation/src/tests/nested_function_calls_test.be
@@ -13,7 +13,7 @@ def test_basic_nested_calls()
var dsl_code =
"# strip length 30 # TEMPORARILY DISABLED\n"
"color custom_red = 0xFF0000\n"
- "animation pulse_red = pulsating_animation(color=static_color(color=custom_red), period=3s)\n"
+ "animation pulse_red = breathe(color=static_color(color=custom_red), period=3s)\n"
"run pulse_red"
try
@@ -22,8 +22,8 @@ def test_basic_nested_calls()
# Check that the generated code contains the new engine-based pattern
import string
- assert(string.find(berry_code, "animation.pulsating_animation(engine)") >= 0,
- "Generated code should contain pulsating_animation with engine parameter")
+ assert(string.find(berry_code, "animation.breathe(engine)") >= 0,
+ "Generated code should contain breathe with engine parameter")
assert(string.find(berry_code, "animation.static_color(engine)") >= 0,
"Generated code should contain nested static_color function call")
except "dsl_compilation_error" as e, msg
@@ -39,7 +39,7 @@ def test_deep_nesting()
var dsl_code =
"# strip length 30 # TEMPORARILY DISABLED\n"
- "animation complex = pulsating_animation(color=static_color(color=red), period=2s)\n"
+ "animation complex = breathe(color=static_color(color=red), period=2s)\n"
"run complex"
try
@@ -48,7 +48,7 @@ def test_deep_nesting()
# Check that the generated code contains nested calls
import string
- assert(string.find(berry_code, "animation.pulsating_animation(") >= 0, "Should contain pulsating_animation function")
+ assert(string.find(berry_code, "animation.breathe(") >= 0, "Should contain breathe function")
assert(string.find(berry_code, "animation.static_color(") >= 0, "Should contain static_color function")
except "dsl_compilation_error" as e, msg
assert(false, f"DSL compilation should not fail: {msg}")
@@ -63,7 +63,7 @@ def test_mixed_parameter_types()
var dsl_code =
"# strip length 30 # TEMPORARILY DISABLED\n"
- "animation mixed = pulsating_animation(color=static_color(color=blue), period=2s, max_brightness=80%)\n"
+ "animation mixed = breathe(color=static_color(color=blue), period=2s, max_brightness=80%)\n"
"run mixed"
try
@@ -89,7 +89,7 @@ def test_nested_calls_in_arrays()
var dsl_code =
"# strip length 30 # TEMPORARILY DISABLED\n"
- "animation cycle = pulsating_animation(color=static_color(color=red), period=5s)\n"
+ "animation cycle = breathe(color=static_color(color=red), period=5s)\n"
"run cycle"
try
@@ -98,8 +98,8 @@ def test_nested_calls_in_arrays()
# Check that nested calls in arrays work
import string
- assert(string.find(berry_code, "animation.pulsating_animation(engine)") >= 0,
- "Should contain pulsating_animation function call")
+ assert(string.find(berry_code, "animation.breathe(engine)") >= 0,
+ "Should contain breathe function call")
assert(string.find(berry_code, "animation.static_color(engine)") >= 0,
"Should contain nested static_color function call")
except "dsl_compilation_error" as e, msg
@@ -116,7 +116,7 @@ def test_error_handling()
# Test unclosed parentheses
var dsl_code1 =
"# strip length 30 # TEMPORARILY DISABLED\n"
- "animation bad = pulsating_animation(color=static_color(color=red)\n" # Missing closing paren
+ "animation bad = breathe(color=static_color(color=red)\n" # Missing closing paren
"run bad"
try
@@ -150,7 +150,7 @@ def test_complex_real_world_example()
var dsl_code =
"# strip length 60 # TEMPORARILY DISABLED\n"
"color sunset_red = 0xFF4500\n"
- "animation evening = pulsating_animation(\n"
+ "animation evening = breathe(\n"
" color=static_color(color=sunset_red),\n"
" period=10s\n"
")\n"
@@ -162,7 +162,7 @@ def test_complex_real_world_example()
# Verify the structure is preserved
import string
- assert(string.find(berry_code, "animation.pulsating_animation(") >= 0, "Should contain pulsating_animation")
+ assert(string.find(berry_code, "animation.breathe(") >= 0, "Should contain breathe")
assert(string.find(berry_code, "animation.static_color(") >= 0, "Should contain static_color")
except "dsl_compilation_error" as e, msg
assert(false, f"DSL compilation should not fail: {msg}")
@@ -178,7 +178,7 @@ def test_generated_code_validity()
var dsl_code =
"# strip length 30 # TEMPORARILY DISABLED\n"
"color custom_red = 0xFF0000\n"
- "animation test = pulsating_animation(color=static_color(color=custom_red), period=3s)\n"
+ "animation test = breathe(color=static_color(color=custom_red), period=3s)\n"
"run test"
try
diff --git a/lib/libesp32/berry_animation/src/tests/nillable_parameter_test.be b/lib/libesp32/berry_animation/src/tests/nillable_parameter_test.be
index abb9acdc9..11ca938fb 100644
--- a/lib/libesp32/berry_animation/src/tests/nillable_parameter_test.be
+++ b/lib/libesp32/berry_animation/src/tests/nillable_parameter_test.be
@@ -46,7 +46,7 @@ assert(success == true, "Should accept valid value for non-nillable parameter")
assert(test_obj.non_nillable_param == 100, "Should store valid value for non-nillable parameter")
# Test gradient animation color parameter
-var gradient = animation.gradient_animation(engine)
+var gradient = animation.gradient(engine)
# Test setting a valid color (should work)
gradient.color = 0xFFFF0000
diff --git a/lib/libesp32/berry_animation/src/tests/palette_meter_animation_test.be b/lib/libesp32/berry_animation/src/tests/palette_meter_animation_test.be
index c30177742..49782f298 100644
--- a/lib/libesp32/berry_animation/src/tests/palette_meter_animation_test.be
+++ b/lib/libesp32/berry_animation/src/tests/palette_meter_animation_test.be
@@ -1,4 +1,4 @@
-# Test suite for GradientMeterAnimation (palette_meter_animation)
+# Test suite for palette_meter (palette_meter)
#
# Tests the VU meter style animation with gradient colors and peak hold.
@@ -6,27 +6,27 @@ import animation
# Test basic creation
def test_gradient_meter_creation()
- print("Testing GradientMeterAnimation creation...")
+ print("Testing palette_meter creation...")
var strip = global.Leds(10)
var engine = animation.create_engine(strip)
- var meter = animation.palette_meter_animation(engine)
+ var meter = animation.palette_meter(engine)
assert(meter != nil, "Should create gradient meter animation")
assert(meter.level == 255, "Should default to level 255")
assert(meter.peak_hold == 1000, "Should default to peak_hold 1000ms")
assert(meter.shift_period == 0, "Should default to static gradient")
- print("✓ GradientMeterAnimation creation test passed")
+ print("✓ palette_meter creation test passed")
end
# Test level parameter
def test_gradient_meter_level()
- print("Testing GradientMeterAnimation level...")
+ print("Testing palette_meter level...")
var strip = global.Leds(10)
var engine = animation.create_engine(strip)
- var meter = animation.palette_meter_animation(engine)
+ var meter = animation.palette_meter(engine)
# Test level setting
meter.level = 128
@@ -42,16 +42,16 @@ def test_gradient_meter_level()
assert(meter.set_param("level", 300) == false, "Should reject level > 255")
assert(meter.set_param("level", -1) == false, "Should reject level < 0")
- print("✓ GradientMeterAnimation level test passed")
+ print("✓ palette_meter level test passed")
end
# Test peak hold functionality
def test_gradient_meter_peak_hold()
- print("Testing GradientMeterAnimation peak hold...")
+ print("Testing palette_meter peak hold...")
var strip = global.Leds(10)
var engine = animation.create_engine(strip)
- var meter = animation.palette_meter_animation(engine)
+ var meter = animation.palette_meter(engine)
# Enable peak hold
meter.peak_hold = 1000 # 1 second hold
@@ -76,18 +76,18 @@ def test_gradient_meter_peak_hold()
meter.update(2100)
assert(meter.peak_level == 100, "Peak should drop to current level after hold expires")
- print("✓ GradientMeterAnimation peak hold test passed")
+ print("✓ palette_meter peak hold test passed")
end
# Test rendering
def test_gradient_meter_rendering()
- print("Testing GradientMeterAnimation rendering...")
+ print("Testing palette_meter rendering...")
var strip = global.Leds(10)
var engine = animation.create_engine(strip)
- var meter = animation.palette_meter_animation(engine)
+ var meter = animation.palette_meter(engine)
- # Use a color provider (required for PaletteGradientAnimation)
+ # Use a color provider (required for palette_gradient)
var color_source = animation.rich_palette_color(engine)
meter.color_source = color_source
@@ -116,16 +116,16 @@ def test_gradient_meter_rendering()
meter.update(200)
meter.render(frame, 200, 10)
- print("✓ GradientMeterAnimation rendering test passed")
+ print("✓ palette_meter rendering test passed")
end
# Test peak indicator rendering
def test_gradient_meter_peak_indicator()
- print("Testing GradientMeterAnimation peak indicator...")
+ print("Testing palette_meter peak indicator...")
var strip = global.Leds(10)
var engine = animation.create_engine(strip)
- var meter = animation.palette_meter_animation(engine)
+ var meter = animation.palette_meter(engine)
# Use a color provider
var color_source = animation.rich_palette_color(engine)
@@ -159,16 +159,16 @@ def test_gradient_meter_peak_indicator()
var peak_color = frame.get_pixel_color(peak_pixel)
assert(peak_color != 0x00000000, "Peak indicator pixel should have color")
- print("✓ GradientMeterAnimation peak indicator test passed")
+ print("✓ palette_meter peak indicator test passed")
end
# Test with color provider
def test_gradient_meter_with_color_provider()
- print("Testing GradientMeterAnimation with color provider...")
+ print("Testing palette_meter with color provider...")
var strip = global.Leds(10)
var engine = animation.create_engine(strip)
- var meter = animation.palette_meter_animation(engine)
+ var meter = animation.palette_meter(engine)
# Use a color cycle provider
var color_cycle = animation.color_cycle(engine)
@@ -184,16 +184,16 @@ def test_gradient_meter_with_color_provider()
var result = meter.render(frame, 0, 10)
assert(result == true, "Should render with color provider")
- print("✓ GradientMeterAnimation with color provider test passed")
+ print("✓ palette_meter with color provider test passed")
end
# Test tostring
def test_gradient_meter_tostring()
- print("Testing GradientMeterAnimation tostring...")
+ print("Testing palette_meter tostring...")
var strip = global.Leds(10)
var engine = animation.create_engine(strip)
- var meter = animation.palette_meter_animation(engine)
+ var meter = animation.palette_meter(engine)
meter.level = 150
meter.peak_hold = 500
@@ -201,12 +201,12 @@ def test_gradient_meter_tostring()
assert(s != nil, "Should have string representation")
assert(type(s) == "string", "Should be a string")
- print("✓ GradientMeterAnimation tostring test passed")
+ print("✓ palette_meter tostring test passed")
end
# Run all tests
def run_palette_meter_animation_tests()
- print("=== GradientMeterAnimation Tests ===")
+ print("=== palette_meter Tests ===")
try
test_gradient_meter_creation()
@@ -217,7 +217,7 @@ def run_palette_meter_animation_tests()
test_gradient_meter_with_color_provider()
test_gradient_meter_tostring()
- print("=== All GradientMeterAnimation tests passed! ===")
+ print("=== All palette_meter tests passed! ===")
return true
except .. as e, msg
print(f"Test failed: {e} - {msg}")
diff --git a/lib/libesp32/berry_animation/src/tests/palette_pattern_animation_test.be b/lib/libesp32/berry_animation/src/tests/palette_pattern_animation_test.be
index e7c13c066..008628b8c 100644
--- a/lib/libesp32/berry_animation/src/tests/palette_pattern_animation_test.be
+++ b/lib/libesp32/berry_animation/src/tests/palette_pattern_animation_test.be
@@ -38,9 +38,9 @@ class MockColorSource
end
var mock_color_source = MockColorSource()
-# Test 1: PaletteGradientAnimation
-print("Test 3: PaletteGradientAnimation")
-var gradient_anim = animation.palette_gradient_animation(mock_engine)
+# Test 1: palette_gradient
+print("Test 3: palette_gradient")
+var gradient_anim = animation.palette_gradient(mock_engine)
gradient_anim.color_source = mock_color_source
gradient_anim.shift_period = 3000 # 3 second shift period
gradient_anim.priority = 10
@@ -81,7 +81,7 @@ assert(gradient_anim.shift_period == 0, "Shift period should be updated to 0 (st
# Test 3: Changing color sources dynamically
print("Test 3: Changing color sources dynamically")
-var dynamic_anim = animation.palette_gradient_animation(mock_engine)
+var dynamic_anim = animation.palette_gradient(mock_engine)
dynamic_anim.color_source = mock_color_source
dynamic_anim.shift_period = 1000
dynamic_anim.spatial_period = 3
@@ -116,7 +116,7 @@ assert(result, "Render should return true")
# Test 4: Parameter validation
print("Test 4: Parameter validation")
-var validation_anim = animation.palette_gradient_animation(mock_engine)
+var validation_anim = animation.palette_gradient(mock_engine)
# Test valid parameter values
validation_anim.shift_period = 500
@@ -144,7 +144,7 @@ class MockRainbowColorSource
end
var rainbow_color_source = MockRainbowColorSource()
-var rich_anim = animation.palette_gradient_animation(mock_engine)
+var rich_anim = animation.palette_gradient(mock_engine)
rich_anim.color_source = rainbow_color_source
rich_anim.shift_period = 1000
@@ -165,7 +165,7 @@ print("Test 6: Animation timing and synchronization")
var sync_time = mock_engine.time_ms + 1000
# Create multiple animations
-var anim1 = animation.palette_gradient_animation(mock_engine)
+var anim1 = animation.palette_gradient(mock_engine)
anim1.color_source = mock_color_source
anim1.shift_period = 1000
anim1.spatial_period = 4
@@ -179,7 +179,7 @@ assert(anim1.start_time == sync_time, "Animation 1 should have correct start tim
# Test 7: Animation without color source (should handle gracefully)
print("Test 7: Animation without color source")
-var no_color_anim = animation.palette_gradient_animation(mock_engine)
+var no_color_anim = animation.palette_gradient(mock_engine)
no_color_anim.shift_period = 1000
no_color_anim.spatial_period = 3
# Note: no color_source set
@@ -193,7 +193,7 @@ assert(!result, "Render should return false when no color source is set")
# Test 8: String representation (uses default from Berry)
print("Test 8: String representation")
-var str_anim = animation.palette_gradient_animation(mock_engine)
+var str_anim = animation.palette_gradient(mock_engine)
var str_repr = str(str_anim)
print(f"String representation: {str_repr}")
assert(str_repr != nil, "String representation should not be nil")
diff --git a/lib/libesp32/berry_animation/src/tests/parameter_validation_test.be b/lib/libesp32/berry_animation/src/tests/parameter_validation_test.be
index be154fd82..68b29e63d 100644
--- a/lib/libesp32/berry_animation/src/tests/parameter_validation_test.be
+++ b/lib/libesp32/berry_animation/src/tests/parameter_validation_test.be
@@ -198,14 +198,14 @@ def test_dsl_parameter_validation()
import animation_dsl
# Test valid animation parameter
- var valid_dsl = "animation red_eye = beacon_animation(color = red)\n" +
+ var valid_dsl = "animation red_eye = beacon(color = red)\n" +
"red_eye.back_color = blue"
var result = animation_dsl.compile(valid_dsl)
assert(result != nil, "Valid parameter should compile successfully")
# Test invalid animation parameter
- var invalid_dsl = "animation red_eye = beacon_animation(color = red)\n" +
+ var invalid_dsl = "animation red_eye = beacon(color = red)\n" +
"red_eye.invalid_param = 123"
try
@@ -250,14 +250,14 @@ def test_dsl_object_reference_validation()
import animation_dsl
# Test valid run statement
- var valid_run = "animation red_eye = beacon_animation(color = red)\n" +
+ var valid_run = "animation red_eye = beacon(color = red)\n" +
"run red_eye"
var result = animation_dsl.compile(valid_run)
assert(result != nil, "Valid run statement should compile successfully")
# Test invalid run statement (undefined object)
- var invalid_run = "animation red_eye = beacon_animation(color = red)\n" +
+ var invalid_run = "animation red_eye = beacon(color = red)\n" +
"run undefined_animation"
try
@@ -269,7 +269,7 @@ def test_dsl_object_reference_validation()
end
# Test valid sequence with play statement
- var valid_sequence = "animation red_eye = beacon_animation(color = red)\n" +
+ var valid_sequence = "animation red_eye = beacon(color = red)\n" +
"sequence demo {\n" +
" play red_eye for 5s\n" +
" wait 1s\n" +
@@ -279,7 +279,7 @@ def test_dsl_object_reference_validation()
assert(result2 != nil, "Valid sequence should compile successfully")
# Test invalid sequence with undefined play reference
- var invalid_sequence = "animation red_eye = beacon_animation(color = red)\n" +
+ var invalid_sequence = "animation red_eye = beacon(color = red)\n" +
"sequence demo {\n" +
" play undefined_animation for 5s\n" +
" wait 1s\n" +
@@ -303,7 +303,7 @@ def test_dsl_sequence_symbol_table_registration()
import animation_dsl
# Test 1: Valid sequence should be registered and runnable
- var valid_sequence_dsl = "animation red_anim = beacon_animation(color = red)\n" +
+ var valid_sequence_dsl = "animation red_anim = beacon(color = red)\n" +
"sequence demo {\n" +
" play red_anim for 2s\n" +
"}\n" +
@@ -351,7 +351,7 @@ def test_dsl_symbol_table_mixed_types()
import animation_dsl
# Test 1: Valid property assignment on animation (instance in symbol table)
- var animation_property_dsl = "animation red_anim = beacon_animation(color = red)\n" +
+ var animation_property_dsl = "animation red_anim = beacon(color = red)\n" +
"red_anim.back_color = blue"
var result1 = animation_dsl.compile(animation_property_dsl)
@@ -365,7 +365,7 @@ def test_dsl_symbol_table_mixed_types()
assert(result2 != nil, "Color provider property assignment should work")
# Test 3: Invalid property assignment on sequence (string in symbol table)
- var sequence_property_dsl = "animation red_anim = beacon_animation(color = red)\n" +
+ var sequence_property_dsl = "animation red_anim = beacon(color = red)\n" +
"sequence demo {\n" +
" play red_anim for 2s\n" +
"}\n" +
@@ -380,7 +380,7 @@ def test_dsl_symbol_table_mixed_types()
end
# Test 4: Mixed symbol table with sequences and instances
- var mixed_dsl = "animation red_anim = beacon_animation(color = red)\n" +
+ var mixed_dsl = "animation red_anim = beacon(color = red)\n" +
"color solid_blue = static_color(color = blue)\n" +
"sequence demo {\n" +
" play red_anim for 2s\n" +
diff --git a/lib/libesp32/berry_animation/src/tests/pull_lexer_test.be b/lib/libesp32/berry_animation/src/tests/pull_lexer_test.be
index 92bbe3b50..a15b537ca 100644
--- a/lib/libesp32/berry_animation/src/tests/pull_lexer_test.be
+++ b/lib/libesp32/berry_animation/src/tests/pull_lexer_test.be
@@ -105,7 +105,7 @@ end
def test_peek_functionality()
print("Testing peek functionality...")
- var dsl_code = "animation pulse = pulsating_animation(color=red_custom, period=2s)"
+ var dsl_code = "animation pulse = breathe(color=red_custom, period=2s)"
var lexer = Lexer(dsl_code)
# Test peek without consuming
@@ -196,7 +196,7 @@ def test_position_information()
print("Testing position information...")
var dsl_code = "color red_custom = 0xFF0000\n" +
- "animation pulse = pulsating_animation(color=red_custom)"
+ "animation pulse = breathe(color=red_custom)"
var lexer = Lexer(dsl_code)
@@ -264,7 +264,7 @@ def test_complex_dsl_scenarios()
var complex_dsl = "color red_custom = 0xFF0000\n" +
"color blue_custom = 0x0000FF\n" +
"\n" +
- "animation pulse_red = pulsating_animation(\n" +
+ "animation pulse_red = breathe(\n" +
" color=red_custom,\n" +
" period=2s,\n" +
" min_brightness=50%,\n" +
@@ -371,7 +371,7 @@ def test_dsl_integration()
print("Testing DSL integration...")
var dsl_code = "color red_custom = 0xFF0000\n" +
- "animation pulse = pulsating_animation(color=red_custom, period=2s)\n" +
+ "animation pulse = breathe(color=red_custom, period=2s)\n" +
"run pulse"
var lexer = Lexer(dsl_code)
@@ -449,7 +449,7 @@ def test_interleaved_lexer_operations()
var dsl_code = "color red_custom = 0xFF0000\n" +
"color blue_custom = 0x0000FF\n" +
- "animation pulse = pulsating_animation(\n" +
+ "animation pulse = breathe(\n" +
" color=red_custom,\n" +
" period=2s\n" +
")\n" +
@@ -635,7 +635,7 @@ def test_full_template_parsing()
" \n" +
" set strip_len = strip_length()\n" +
"\n" +
- " animation eye_animation = beacon_animation(\n" +
+ " animation eye_animation = beacon(\n" +
" color = eye_color\n" +
" back_color = back_color\n" +
" pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = duration)\n" +
@@ -813,7 +813,7 @@ def test_full_template_parsing()
assert(is_type(anim_assign, 8 #-animation_dsl.Token.ASSIGN-#), "Should have assignment")
var anim_func = lexer.next_token()
- assert(is_identifier(anim_func, "beacon_animation"), "Should be 'beacon_animation' function")
+ assert(is_identifier(anim_func, "beacon"), "Should be 'beacon' function")
# Test 6: Parse function parameters with peek ahead
print(" Testing function parameter parsing...")
diff --git a/lib/libesp32/berry_animation/src/tests/pull_lexer_transpiler_test.be b/lib/libesp32/berry_animation/src/tests/pull_lexer_transpiler_test.be
index d1c7a8d93..57cc8d31f 100644
--- a/lib/libesp32/berry_animation/src/tests/pull_lexer_transpiler_test.be
+++ b/lib/libesp32/berry_animation/src/tests/pull_lexer_transpiler_test.be
@@ -8,7 +8,7 @@ def test_pull_lexer_basic()
var dsl_source = "# Simple DSL test\n" +
"color my_red = 0xFF0000\n" +
- "animation pulse = pulsating_animation(color=my_red, period=2s)\n" +
+ "animation pulse = breathe(color=my_red, period=2s)\n" +
"run pulse"
# Test with new create_lexer interface (uses pull lexer internally)
@@ -75,7 +75,7 @@ def test_pull_lexer_position_info()
print("=== Testing Pull Lexer Position Information ===")
var dsl_source = "color red = 0xFF0000\n" +
- "animation pulse = pulsating_animation(color=red)"
+ "animation pulse = breathe(color=red)"
var pull_lexer = animation_dsl.create_lexer(dsl_source)
diff --git a/lib/libesp32/berry_animation/src/tests/pulse_animation_test.be b/lib/libesp32/berry_animation/src/tests/pulse_animation_test.be
index 89e27a631..c2a67de8b 100644
--- a/lib/libesp32/berry_animation/src/tests/pulse_animation_test.be
+++ b/lib/libesp32/berry_animation/src/tests/pulse_animation_test.be
@@ -17,7 +17,7 @@ var engine = animation.create_engine(strip)
print("Created engine and LED strip")
# Create a pulse animation with new constructor (engine only)
-var anim = animation.pulsating_animation(engine)
+var anim = animation.breathe(engine)
print("Created pulse animation with defaults")
# Test default values
@@ -28,7 +28,7 @@ print(f"Default period: {anim.period}")
print(f"Default curve_factor: {anim.curve_factor}") # Should be 1 for pulsating
# Test with custom parameters using virtual member assignment
-var blue_pulse = animation.pulsating_animation(engine)
+var blue_pulse = animation.breathe(engine)
blue_pulse.color = 0xFF0000FF
blue_pulse.min_brightness = 50
blue_pulse.max_brightness = 200
@@ -40,7 +40,7 @@ print(f"Blue pulse animation period: {blue_pulse.period}")
print(f"Blue pulse animation curve_factor: {blue_pulse.curve_factor}")
# Test creating another pulse with different parameters
-var red_pulse = animation.pulsating_animation(engine)
+var red_pulse = animation.breathe(engine)
red_pulse.color = 0xFFFF0000 # Red color
red_pulse.min_brightness = 20
red_pulse.max_brightness = 180
diff --git a/lib/libesp32/berry_animation/src/tests/rich_palette_animation_class_test.be b/lib/libesp32/berry_animation/src/tests/rich_palette_animation_class_test.be
index 2d257a843..20dd501fc 100644
--- a/lib/libesp32/berry_animation/src/tests/rich_palette_animation_class_test.be
+++ b/lib/libesp32/berry_animation/src/tests/rich_palette_animation_class_test.be
@@ -1,6 +1,6 @@
-# Test file for RichPaletteAnimation class
+# Test file for rich_palette class
#
-# This file contains tests for the new RichPaletteAnimation class with parameter forwarding
+# This file contains tests for the new rich_palette class with parameter forwarding
#
# Command to run test is:
# ./berry -s -g -m lib/libesp32/berry_animation -e "import tasmota" lib/libesp32/berry_animation/tests/rich_palette_animation_class_test.be
@@ -16,7 +16,7 @@ var engine = animation.create_engine(strip)
print("Created test engine with 10 LEDs")
# Test 1: Create a rich palette animation with engine-only constructor
-var anim = animation.rich_palette_animation(engine)
+var anim = animation.rich_palette(engine)
print("Created rich palette animation with engine-only constructor")
# Test that it's created successfully
@@ -103,14 +103,14 @@ var rainbow_palette = bytes(
"FFFF0000" # Red (value 255)
)
-var rainbow_anim = animation.rich_palette_animation(engine)
+var rainbow_anim = animation.rich_palette(engine)
rainbow_anim.colors = rainbow_palette
rainbow_anim.period = 5000
rainbow_anim.brightness = 255
print("Created rainbow animation with custom palette")
# Test 9: Test static mode (period = 0)
-var static_anim = animation.rich_palette_animation(engine)
+var static_anim = animation.rich_palette(engine)
static_anim.colors = rainbow_palette
static_anim.period = 0 # Static mode
static_anim.brightness = 150
@@ -155,5 +155,5 @@ assert(static_anim != nil, "Static animation should be created")
assert(rainbow_anim.period == 5000, "Rainbow animation should have correct cycle period")
assert(static_anim.period == 0, "Static animation should have cycle period 0")
-print("All RichPaletteAnimation class tests completed successfully!")
+print("All rich_palette class tests completed successfully!")
return true
\ No newline at end of file
diff --git a/lib/libesp32/berry_animation/src/tests/simplified_transpiler_test.be b/lib/libesp32/berry_animation/src/tests/simplified_transpiler_test.be
index b2fa0b87d..8cdb916ff 100644
--- a/lib/libesp32/berry_animation/src/tests/simplified_transpiler_test.be
+++ b/lib/libesp32/berry_animation/src/tests/simplified_transpiler_test.be
@@ -13,7 +13,7 @@ def test_basic_transpilation()
"color my_red = 0xFF0000\n"
"color my_blue = 0x0000FF\n"
"animation solid_red = solid(color=my_red)\n"
- "animation pulse_red = pulsating_animation(color=my_red, period=2000)\n"
+ "animation pulse_red = breathe(color=my_red, period=2000)\n"
"sequence demo {\n"
" play pulse_red for 3s\n"
" wait 1s\n"
@@ -66,7 +66,7 @@ def test_function_calls()
var dsl_code =
"# strip length 20 # TEMPORARILY DISABLED\n"
"animation solid_red = solid(color=red)\n"
- "animation test_anim = pulsating_animation(color=red, period=1000)\n"
+ "animation test_anim = breathe(color=red, period=1000)\n"
"run test_anim"
var berry_code = animation_dsl.compile(dsl_code)
@@ -78,7 +78,7 @@ def test_function_calls()
# Check that function calls are properly generated
import string
- if string.find(berry_code, "animation.pulsating_animation(engine)") == -1
+ if string.find(berry_code, "animation.breathe(engine)") == -1
print("✗ Function call not properly generated")
return false
end
diff --git a/lib/libesp32/berry_animation/src/tests/symbol_registry_test.be b/lib/libesp32/berry_animation/src/tests/symbol_registry_test.be
index 560186898..7c312ace0 100644
--- a/lib/libesp32/berry_animation/src/tests/symbol_registry_test.be
+++ b/lib/libesp32/berry_animation/src/tests/symbol_registry_test.be
@@ -91,7 +91,7 @@ def test_builtin_reference_handling()
# DSL using built-in color names and animation functions
var dsl_source = "animation red_pattern = solid(color=red)\n" +
- "animation pulse_anim = pulsating_animation(color=red, period=2000)"
+ "animation pulse_anim = breathe(color=red, period=2000)"
var lexer = animation_dsl.create_lexer(dsl_source)
var transpiler = animation_dsl.SimpleDSLTranspiler(lexer)
@@ -104,7 +104,7 @@ def test_builtin_reference_handling()
# Check generated code
assert(string.find(berry_code, "red_pattern_.color = 0xFFFF0000") >= 0, "Should use built-in red color")
- assert(string.find(berry_code, "animation.pulsating_animation(engine)") >= 0, "Should use built-in pulsating_animation function")
+ assert(string.find(berry_code, "animation.breathe(engine)") >= 0, "Should use built-in breathe function")
print("✓ Built-in reference handling test passed")
return true
@@ -139,7 +139,7 @@ def test_complex_symbol_dependencies()
# Complex DSL with proper symbol ordering (no forward references)
var dsl_source = "color primary_color = 0xFF8000\n" +
- "animation complex_anim = pulsating_animation(color=primary_color, period=3000)\n" +
+ "animation complex_anim = breathe(color=primary_color, period=3000)\n" +
"animation gradient_pattern = solid(color=primary_color)\n" +
"sequence demo {\n" +
" play complex_anim for 5s\n" +
diff --git a/lib/libesp32/berry_animation/src/tests/test_all.be b/lib/libesp32/berry_animation/src/tests/test_all.be
index ebbdf2ebb..5cd9e5a78 100644
--- a/lib/libesp32/berry_animation/src/tests/test_all.be
+++ b/lib/libesp32/berry_animation/src/tests/test_all.be
@@ -66,8 +66,8 @@ def run_all_tests()
# "lib/libesp32/berry_animation/src/tests/pulse_animation_test.be",
# "lib/libesp32/berry_animation/src/tests/breathe_animation_test.be",
"lib/libesp32/berry_animation/src/tests/color_cycle_animation_test.be",
- "lib/libesp32/berry_animation/src/tests/color_cycle_bytes_test.be", # Tests ColorCycleColorProvider with bytes palette
- "lib/libesp32/berry_animation/src/tests/color_cycle_palette_size_test.be", # Tests ColorCycleColorProvider palette_size read-only parameter
+ "lib/libesp32/berry_animation/src/tests/color_cycle_bytes_test.be", # Tests color_cycle with bytes palette
+ "lib/libesp32/berry_animation/src/tests/color_cycle_palette_size_test.be", # Tests color_cycle palette_size read-only parameter
"lib/libesp32/berry_animation/src/tests/rich_palette_animation_test.be",
"lib/libesp32/berry_animation/src/tests/rich_palette_animation_class_test.be",
"lib/libesp32/berry_animation/src/tests/comet_animation_test.be",
diff --git a/lib/libesp32/berry_animation/src/tests/test_beacon_direction.be b/lib/libesp32/berry_animation/src/tests/test_beacon_direction.be
index 18446ae4d..d2a0873f9 100644
--- a/lib/libesp32/berry_animation/src/tests/test_beacon_direction.be
+++ b/lib/libesp32/berry_animation/src/tests/test_beacon_direction.be
@@ -31,7 +31,7 @@ def run_tests()
# Test 1: right_edge=0 (default, left edge), pos=0, beacon_size=1
# Should show 1 pixel at position 0 (left edge)
- var beacon1 = animation.beacon_animation(engine)
+ var beacon1 = animation.beacon(engine)
beacon1.color = 0xFFFF0000 # Red
beacon1.back_color = 0xFF000000 # Black
beacon1.pos = 0
@@ -51,7 +51,7 @@ def run_tests()
# Test 2: right_edge=1 (right edge), pos=0, beacon_size=1
# With right_edge=1: effective_pos = pos - beacon_size + 1 = 0 - 1 + 1 = 0
# So pixel 0 should be lit
- var beacon2 = animation.beacon_animation(engine)
+ var beacon2 = animation.beacon(engine)
beacon2.color = 0xFF00FF00 # Green
beacon2.back_color = 0xFF000000 # Black
beacon2.pos = 0
@@ -70,7 +70,7 @@ def run_tests()
# Test 3: right_edge=1, pos=5, beacon_size=3
# With right_edge=1: effective_pos = pos - beacon_size + 1 = 5 - 3 + 1 = 3
# So pixels 3,4,5 should be lit (beacon from 3 to 5, with right edge at 5)
- var beacon3 = animation.beacon_animation(engine)
+ var beacon3 = animation.beacon(engine)
beacon3.color = 0xFF0000FF # Blue
beacon3.back_color = 0xFF000000 # Black
beacon3.pos = 5
@@ -90,7 +90,7 @@ def run_tests()
# Test 4: right_edge=0, pos=2, beacon_size=3 (same params, different right_edge)
# Should show pixels 2,3,4 lit
- var beacon4 = animation.beacon_animation(engine)
+ var beacon4 = animation.beacon(engine)
beacon4.color = 0xFFFFFF00 # Yellow
beacon4.back_color = 0xFF000000 # Black
beacon4.pos = 2
@@ -109,7 +109,7 @@ def run_tests()
test_assert(frame.get_pixel_color(5) == 0xFF000000, "right_edge=0, pos=2, size=3: pixel 5 is black")
# Test 5: Default right_edge should be 0
- var beacon5 = animation.beacon_animation(engine)
+ var beacon5 = animation.beacon(engine)
test_assert(beacon5.right_edge == 0, "Default right_edge is 0")
# Test 6: Invalid right_edge value should be rejected
diff --git a/lib/libesp32/berry_animation/src/tests/test_math_method_transpilation.be b/lib/libesp32/berry_animation/src/tests/test_math_method_transpilation.be
index 05038bc7c..912b700b2 100644
--- a/lib/libesp32/berry_animation/src/tests/test_math_method_transpilation.be
+++ b/lib/libesp32/berry_animation/src/tests/test_math_method_transpilation.be
@@ -71,9 +71,9 @@ def test_non_math_functions(dsl_code)
print(" ✅ Found 'animation._math.scale(' in generated code")
end
- # Check that animation functions like 'pulsating_animation' are NOT prefixed with animation._math.
- if string.find(generated_code, "animation._math.pulsating_animation") >= 0
- print(" ❌ Found 'animation._math.pulsating_animation' - animation functions should NOT be prefixed")
+ # Check that animation functions like 'breathe' are NOT prefixed with animation._math.
+ if string.find(generated_code, "animation._math.breathe") >= 0
+ print(" ❌ Found 'animation._math.breathe' - animation functions should NOT be prefixed")
return false
else
print(" ✅ Animation functions correctly NOT prefixed with animation._math.")
@@ -102,7 +102,7 @@ def test_is_math_method_function()
end
# Test non-mathematical methods
- var non_math_methods = ["pulsating_animation", "solid", "color_cycle", "unknown_method"]
+ var non_math_methods = ["breathe", "solid", "color_cycle", "unknown_method"]
for method : non_math_methods
var entry = transpiler.symbol_table.get(method)
if entry != nil && entry.type == animation_dsl._symbol_entry.TYPE_MATH_FUNCTION
@@ -122,7 +122,7 @@ def test_math_method_transpilation()
# Test case 1: Simple mathematical function in computed parameter
var dsl_code1 =
"set value = 50\n"
- "animation test = pulsating_animation(color=red, period=2s)\n"
+ "animation test = breathe(color=red, period=2s)\n"
"test.opacity = abs(value - 100)\n"
"run test"
@@ -135,9 +135,9 @@ def test_math_method_transpilation()
var dsl_code2 =
"set x = 10\n"
"set y = 20\n"
- "animation wave = pulsating_animation(color=blue, period=3s)\n"
- "wave.min_brightness = max(min(x, y), sqrt(abs(x - y)))\n"
- "run wave"
+ "animation w = breathe(color=blue, period=3s)\n"
+ "w.min_brightness = max(min(x, y), sqrt(abs(x - y)))\n"
+ "run w"
var result2 = test_transpilation_case(dsl_code2, ["max", "min", "sqrt", "abs"], "Multiple math functions")
if !result2
@@ -147,7 +147,7 @@ def test_math_method_transpilation()
# Test case 3: Mathematical functions with complex expressions
var dsl_code3 =
"set angle = 45\n"
- "animation rotate = pulsating_animation(color=green, period=2s)\n"
+ "animation rotate = breathe(color=green, period=2s)\n"
"rotate.min_brightness = round(sin(angle) * 180 + cos(angle) * 90)\n"
"run rotate"
@@ -158,7 +158,7 @@ def test_math_method_transpilation()
# Test case 4: Ensure non-math functions are NOT prefixed with animation._math.
var dsl_code4 =
- "animation pulse = pulsating_animation(color=red, period=2s)\n"
+ "animation pulse = breathe(color=red, period=2s)\n"
"pulse.min_brightness = scale(50, 0, 100)\n"
"run pulse"
diff --git a/lib/libesp32/berry_animation/src/tests/test_user_functions_in_computed_parameters.be b/lib/libesp32/berry_animation/src/tests/test_user_functions_in_computed_parameters.be
index 187edf47f..cc1fb70f6 100644
--- a/lib/libesp32/berry_animation/src/tests/test_user_functions_in_computed_parameters.be
+++ b/lib/libesp32/berry_animation/src/tests/test_user_functions_in_computed_parameters.be
@@ -58,7 +58,7 @@ def test_user_function_detection()
end
# Check that non-user functions are not detected as user functions
- var non_user_functions = ["pulsating_animation", "solid", "abs", "min", "max", "breathing", "fire", "sparkle"]
+ var non_user_functions = ["breathe", "solid", "abs", "min", "max", "breathing", "fire", "sparkle"]
for func_name : non_user_functions
if animation.is_user_function(func_name)
@@ -79,7 +79,7 @@ def test_user_function_in_computed_parameter()
var dsl_code1 =
"import user_functions\n"
"set strip_len = strip_length()\n"
- "animation test = pulsating_animation(color=red, period=2s)\n"
+ "animation test = breathe(color=red, period=2s)\n"
"test.opacity = rand_demo()\n"
"run test"
diff --git a/lib/libesp32/berry_animation/src/tests/value_provider_integration_test.be b/lib/libesp32/berry_animation/src/tests/value_provider_integration_test.be
index 3a40d3e9f..844c8d3e8 100644
--- a/lib/libesp32/berry_animation/src/tests/value_provider_integration_test.be
+++ b/lib/libesp32/berry_animation/src/tests/value_provider_integration_test.be
@@ -19,7 +19,7 @@ def test_auto_registration_with_animation()
oscillator.duration = 2000
# Create an animation that uses the oscillator
- var beacon = animation.beacon_animation(engine)
+ var beacon = animation.beacon(engine)
beacon.color = 0xFFFF0000
beacon.pos = oscillator
beacon.beacon_size = 3
@@ -70,7 +70,7 @@ def test_multiple_providers_coordination()
color_cycle.period = 5000
# Create animation using all providers
- var beacon = animation.beacon_animation(engine)
+ var beacon = animation.beacon(engine)
beacon.color = color_cycle
beacon.pos = position_osc
beacon.opacity = brightness_osc
@@ -122,12 +122,12 @@ def test_template_animation_scenario()
sweep.duration = 4000
# Template creates animations using the provider
- var beacon1 = animation.beacon_animation(engine)
+ var beacon1 = animation.beacon(engine)
beacon1.color = 0xFFFF0000
beacon1.pos = sweep
beacon1.beacon_size = 2
- var beacon2 = animation.beacon_animation(engine)
+ var beacon2 = animation.beacon(engine)
beacon2.color = 0xFF0000FF
beacon2.pos = sweep # Same provider used by multiple animations
beacon2.beacon_size = 1
diff --git a/lib/libesp32/berry_animation/src/tests/wave_animation_test.be b/lib/libesp32/berry_animation/src/tests/wave_animation_test.be
index a493a1dbc..c2e130267 100644
--- a/lib/libesp32/berry_animation/src/tests/wave_animation_test.be
+++ b/lib/libesp32/berry_animation/src/tests/wave_animation_test.be
@@ -1,21 +1,21 @@
-# Test suite for WaveAnimation
+# Test suite for wave
#
-# This test verifies that the WaveAnimation works correctly
+# This test verifies that the wave works correctly
# with different parameters and color providers.
import animation
import string
-# Test basic WaveAnimation creation and functionality
+# Test basic wave creation and functionality
def test_wave_animation_basic()
- print("Testing basic WaveAnimation...")
+ print("Testing basic wave...")
# Create engine and animation
var strip = global.Leds(10)
var engine = animation.create_engine(strip)
- var wave_anim = animation.wave_animation(engine)
+ var wave_anim = animation.wave(engine)
- assert(wave_anim != nil, "WaveAnimation should be created")
+ assert(wave_anim != nil, "wave should be created")
assert(wave_anim.back_color == 0xFF000000, "Default background should be black")
assert(wave_anim.wave_type == 0, "Default wave_type should be 0 (sine)")
assert(wave_anim.amplitude == 128, "Default amplitude should be 128")
@@ -25,17 +25,17 @@ def test_wave_animation_basic()
assert(wave_anim.center_level == 128, "Default center_level should be 128")
assert(wave_anim.is_running == false, "Animation should not be running initially")
- print("✓ Basic WaveAnimation test passed")
+ print("✓ Basic wave test passed")
end
-# Test WaveAnimation with custom parameters
+# Test wave with custom parameters
def test_wave_animation_custom()
- print("Testing WaveAnimation with custom parameters...")
+ print("Testing wave with custom parameters...")
# Create engine and animation with custom parameters
var strip = global.Leds(20)
var engine = animation.create_engine(strip)
- var wave_anim = animation.wave_animation(engine)
+ var wave_anim = animation.wave(engine)
# Set custom parameters using virtual member access
wave_anim.color = 0xFF00FF00
@@ -61,16 +61,16 @@ def test_wave_animation_custom()
assert(wave_anim.duration == 5000, "Custom duration should be 5000")
assert(wave_anim.loop == false, "Custom loop should be false")
- print("✓ Custom WaveAnimation test passed")
+ print("✓ Custom wave test passed")
end
-# Test WaveAnimation parameter changes
+# Test wave parameter changes
def test_wave_animation_parameters()
- print("Testing WaveAnimation parameter changes...")
+ print("Testing wave parameter changes...")
var strip = global.Leds(15)
var engine = animation.create_engine(strip)
- var wave_anim = animation.wave_animation(engine)
+ var wave_anim = animation.wave(engine)
# Test parameter changes using virtual member access
wave_anim.wave_type = 1
@@ -88,16 +88,16 @@ def test_wave_animation_parameters()
wave_anim.back_color = 0xFF222222
assert(wave_anim.back_color == 0xFF222222, "Background color should be updated")
- print("✓ WaveAnimation parameter test passed")
+ print("✓ wave parameter test passed")
end
-# Test WaveAnimation update and render
+# Test wave update and render
def test_wave_animation_update_render()
- print("Testing WaveAnimation update and render...")
+ print("Testing wave update and render...")
var strip = global.Leds(10)
var engine = animation.create_engine(strip)
- var wave_anim = animation.wave_animation(engine)
+ var wave_anim = animation.wave(engine)
# Set parameters
wave_anim.color = 0xFFFF0000
@@ -135,7 +135,7 @@ def test_wave_animation_update_render()
end
assert(has_non_black == true, "Frame should have non-black pixels after render")
- print("✓ WaveAnimation update/render test passed")
+ print("✓ wave update/render test passed")
end
# Test different wave types
@@ -150,7 +150,7 @@ def test_wave_types()
var wave_types = [0, 1, 2, 3] # sine, triangle, square, sawtooth
var i = 0
while i < 4
- var wave_anim = animation.wave_animation(engine)
+ var wave_anim = animation.wave(engine)
wave_anim.color = 0xFFFF0000
wave_anim.back_color = 0xFF000000
wave_anim.wave_type = wave_types[i]
@@ -170,44 +170,13 @@ def test_wave_types()
print("✓ Wave types test passed")
end
-# Test global constructor functions
-def test_wave_constructors()
- print("Testing wave constructor functions...")
-
- var strip = global.Leds(30)
- var engine = animation.create_engine(strip)
-
- # Test wave_rainbow_sine
- var rainbow_wave = animation.wave_rainbow_sine(engine)
- assert(rainbow_wave != nil, "wave_rainbow_sine should create animation")
- assert(rainbow_wave.frequency == 32, "Rainbow wave should have default frequency")
- assert(rainbow_wave.wave_speed == 50, "Rainbow wave should have default wave_speed")
- assert(rainbow_wave.wave_type == 0, "Rainbow wave should be sine type")
-
- # Test wave_single_sine
- var single_wave = animation.wave_single_sine(engine)
- assert(single_wave != nil, "wave_single_sine should create animation")
- assert(single_wave.frequency == 32, "Single wave should have default frequency")
- assert(single_wave.wave_speed == 50, "Single wave should have default wave_speed")
- assert(single_wave.wave_type == 0, "Single wave should be sine type")
-
- # Test wave_custom
- var custom_wave = animation.wave_custom(engine)
- assert(custom_wave != nil, "wave_custom should create animation")
- assert(custom_wave.wave_type == 2, "Custom wave should have square wave type")
- assert(custom_wave.frequency == 40, "Custom wave should have correct frequency")
- assert(custom_wave.wave_speed == 30, "Custom wave should have correct wave_speed")
-
- print("✓ Wave constructor functions test passed")
-end
-
-# Test WaveAnimation string representation
+# Test wave string representation
def test_wave_tostring()
- print("Testing WaveAnimation string representation...")
+ print("Testing wave string representation...")
var strip = global.Leds(12)
var engine = animation.create_engine(strip)
- var wave_anim = animation.wave_animation(engine)
+ var wave_anim = animation.wave(engine)
# Set parameters
wave_anim.wave_type = 1
@@ -220,12 +189,12 @@ def test_wave_tostring()
assert(type(str_repr) == "string", "String representation should be a string")
- print("✓ WaveAnimation string representation test passed")
+ print("✓ wave string representation test passed")
end
# Run all tests
def run_wave_animation_tests()
- print("=== WaveAnimation Tests ===")
+ print("=== wave Tests ===")
try
test_wave_animation_basic()
@@ -233,10 +202,9 @@ def run_wave_animation_tests()
test_wave_animation_parameters()
test_wave_animation_update_render()
test_wave_types()
- test_wave_constructors()
test_wave_tostring()
- print("=== All WaveAnimation tests passed! ===")
+ print("=== All wave tests passed! ===")
return true
except .. as e, msg
print(f"Test failed: {e} - {msg}")
diff --git a/lib/libesp32/berry_animation/src/webui/animation_web_ui.be b/lib/libesp32/berry_animation/src/webui/animation_web_ui.be
index 94b01187c..761383566 100644
--- a/lib/libesp32/berry_animation/src/webui/animation_web_ui.be
+++ b/lib/libesp32/berry_animation/src/webui/animation_web_ui.be
@@ -16,7 +16,7 @@ class AnimationWebUI
"\n"
"set strip_len = strip_length()\n"
"\n"
- "animation red_eye = beacon_animation(\n"
+ "animation red_eye = beacon(\n"
" color = red\n"
" pos = smooth(min_value = 0, max_value = strip_len - 2, duration = 5s)\n"
" beacon_size = 3 # small 3 pixels eye\n"
diff --git a/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/CHANGELOG.md b/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/CHANGELOG.md
index 5a6a21846..811c063ba 100644
--- a/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/CHANGELOG.md
+++ b/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/CHANGELOG.md
@@ -47,7 +47,7 @@ All notable changes to the Animation DSL extension will be documented in this fi
- Initial release of Animation DSL syntax highlighting
- Complete syntax highlighting for all DSL constructs:
- Keywords (strip, color, palette, animation, sequence, etc.)
- - Animation functions (solid, rich_palette_animation, beacon_animation, etc.)
+ - Animation functions (solid, rich_palette, beacon, etc.)
- Oscillator functions (ramp, linear, smooth, square)
- Colors (hex colors and 30+ named colors)
- Time literals (ms, s, m, h)
diff --git a/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/README.md b/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/README.md
index be145503b..e4d56723b 100644
--- a/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/README.md
+++ b/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/README.md
@@ -6,7 +6,7 @@ This extension provides syntax highlighting, snippets, and language support for
### Syntax Highlighting
- **Keywords**: `strip`, `color`, `palette`, `animation`, `sequence`, `template`, `import`, `set`, `play`, `run`, `if`, `repeat`, `reset`, `restart`, `log`, etc.
-- **Animation Functions**: `solid`, `pulsating_animation`, `rich_palette_animation`, `beacon_animation`, `comet_animation`, etc.
+- **Animation Functions**: `solid`, `breathe`, `rich_palette`, `beacon`, `comet`, etc.
- **Value Providers**: `triangle`, `cosine_osc`, `sawtooth`, `color_cycle`, `strip_length`, `ramp`, `linear`, `smooth`, `square`
- **Mathematical Functions**: `abs`, `max`, `min`, `round`, `sqrt`, `scale`, `sin`, `cos`
- **User Functions**: `user.function_name()` syntax with proper highlighting
diff --git a/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/syntaxes/animation-dsl.tmLanguage.json b/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/syntaxes/animation-dsl.tmLanguage.json
index 48229f56e..39f5c6102 100644
--- a/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/syntaxes/animation-dsl.tmLanguage.json
+++ b/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/syntaxes/animation-dsl.tmLanguage.json
@@ -192,7 +192,7 @@
"patterns": [
{
"name": "entity.name.function.animation.animation-dsl",
- "match": "\\b(solid|pulsating_animation|beacon_animation|comet_animation|rich_palette_animation|twinkle|breathe_animation|fire_animation|crenel_animation)\\b"
+ "match": "\\b(solid|beacon|comet|rich_palette|twinkle|breathe|fire|crenel)\\b"
}
]
},