group { name: "e/init/splash"; images.image: "screen_circular_shadow.png" COMP; images.image: "bg_radgrad.png" COMP; images.image: "dot_pattern.png" COMP; images.image: "logo_blue_small.png" COMP; images.image: "logo_blue_small_glow.png" COMP; images.image: "led_square_base.png" COMP; images.image: "led_square_glow.png" COMP; images.image: "led_square_shading.png" COMP; images.image: "led_square_shadow.png" COMP; images.image: "led_square_shine.png" COMP; script { public is_ready; public do_end; } parts { part { name: "clip"; type: RECT; mouse_events: 0; description { state: "default" 0.0; } } part { name: "bg"; description { state: "default" 0.0; image.normal: "bg_radgrad.png"; image.scale_hint: STATIC; fill.smooth: 0; ASPECT_FILL((1024/653)) } } part { name: "pat"; description { state: "default" 0.0; image.normal: "dot_pattern.png"; TILED_PATTERN(256, 256) } } part { name: "logo"; description { state: "default" 0.0; image.normal: "logo_blue_small.png"; rel1.relative: 0.5 0.5; rel2.relative: 0.5 0.5; FIXED_SIZE(100, 127) } } part { name: "logo_glow"; description { state: "default" 0.0; image.normal: "logo_blue_small_glow.png"; rel1.to: "logo"; rel2.to: "logo"; color: 255 255 255 128; } description { state: "active" 0.0; inherit: "default" 0.0; color: 255 255 255 255; } } part { name: "e.text.title"; type: TEXT; mouse_events: 0; effect: SHADOW BOTTOM; scale: 1; description { state: "default" 0.0; align: 0.5 1.0; rel1.relative: 0.05 0.0; rel1.offset: 4 -1; rel1.to_y: "e.text.status"; rel2.relative: 0.95 0.0; rel2.offset: -5 -1; rel2.to_y: "e.text.status"; color: 255 255 255 255; color3: 0 0 0 128; text { font: "Sans:style=Bold"; size: 20; min: 0 1; text_class: "init_title"; } fixed: 0 1; } } part { name: "e.text.status"; type: TEXT; effect: GLOW; scale: 1; description { state: "default" 0.0; align: 0.5 1.0; rel1.relative: 0.05 0.0; rel1.to_y: "logo"; rel1.offset: 4 -1; rel2.relative: 0.95 0.0; rel2.offset: -5 -1; rel2.to_y: "logo"; color: 51 153 255 255; color2: 51 153 255 24; color3: 51 153 255 18; text { font: "Sans"; size: 10; min: 0 1; text_class: "init_status"; } fixed: 0 1; } } part { name: "e.text.version"; type: TEXT; effect: GLOW; description { state: "default" 0.0; align: 1.0 1.0; rel1.relative: 1.0 1.0; rel1.offset: -4 -4; rel2.relative: 1.0 1.0; rel2.offset: -4 -4; color: 51 153 255 255; color2: 51 153 255 24; color3: 51 153 255 18; text { font: "Sans"; size: 8; text: "0.17.0"; min: 1 1; align: 1.0 1.0; text_class: "init_version"; } fixed: 1 1; } } part { name: "shadow"; mouse_events: 0; clip_to: "clip"; description { state: "default" 0.0; rel1.relative: 0.0 0.0; rel2.relative: 1.0 1.0; color: 255 255 255 255; image.normal: "screen_circular_shadow.png"; fill.smooth: 0; } description { state: "visible" 0.0; inherit: "default" 0.0; rel1.relative: -1.0 -1.0; rel2.relative: 2.0 2.0; color: 255 255 255 255; } } #define LED(_NAME, _TO, _SHINE, _C00, _C01, _C10, _C11, _C20, _C21, _C30, _C31, _C40, _C41, _C50, _C51, _C60, _C61) \ part { name: _NAME"_shadow"; \ description { state: "default" 0.0; \ rel1.to: _TO; \ rel2.to: _TO; \ FIXED_SIZE(20, 20) \ image.normal: "led_square_shadow.png"; \ } \ } \ part { name: _NAME"_base"; \ description { state: "default" 0.0; \ rel1.to: _NAME"_shadow"; \ rel2.to: _NAME"_shadow"; \ image.normal: "led_square_base.png"; \ color: _C00; \ } \ description { state: "col1" 0.0; \ inherit: "default" 0.0; \ color: _C10; \ } \ description { state: "col2" 0.0; \ inherit: "default" 0.0; \ color: _C20; \ } \ description { state: "col3" 0.0; \ inherit: "default" 0.0; \ color: _C30; \ } \ description { state: "col4" 0.0; \ inherit: "default" 0.0; \ color: _C40; \ } \ description { state: "col5" 0.0; \ inherit: "default" 0.0; \ color: _C50; \ } \ description { state: "col6" 0.0; \ inherit: "default" 0.0; \ color: _C60; \ } \ } \ part { name: _NAME"_glow"; \ description { state: "default" 0.0; \ rel1.to: _NAME"_shadow"; \ rel2.to: _NAME"_shadow"; \ image.normal: "led_square_glow.png"; \ color: _C01; \ } \ description { state: "col1" 0.0; \ inherit: "default" 0.0; \ color: _C11; \ } \ description { state: "col2" 0.0; \ inherit: "default" 0.0; \ color: _C21; \ } \ description { state: "col3" 0.0; \ inherit: "default" 0.0; \ color: _C31; \ } \ description { state: "col4" 0.0; \ inherit: "default" 0.0; \ color: _C41; \ } \ description { state: "col5" 0.0; \ inherit: "default" 0.0; \ color: _C51; \ } \ description { state: "col6" 0.0; \ inherit: "default" 0.0; \ color: _C61; \ } \ } \ part { name: _NAME"_shading"; \ description { state: "default" 0.0; \ rel1.to: _NAME"_shadow"; \ rel2.to: _NAME"_shadow"; \ image.normal: "led_square_shading.png"; \ } \ } \ part { name: _NAME"_shine"; \ description { state: "default" 0.0; \ rel1.to: _NAME"_shadow"; \ rel2.to: _NAME"_shadow"; \ image.normal: "led_square_shine.png"; \ color: 255 255 255 _SHINE; \ } \ } #define WHITE 255 255 255 255 #define RED 255 40 20 255 #define GREEN 80 255 20 255 #define BLUE 51 153 255 255 #define ORANGE 255 128 32 255 #define YELLOW 255 220 64 255 #define PURPLE 200 60 255 255 #define CYAN 40 220 255 255 LED("l0", "led0", 255, BLUE, WHITE, RED, ORANGE, GREEN, YELLOW, ORANGE, YELLOW, PURPLE, YELLOW, CYAN, WHITE, YELLOW, WHITE ) LED("l-1", "led-1", 128, RED, ORANGE, BLUE, WHITE, ORANGE, YELLOW, GREEN, YELLOW, CYAN, WHITE, YELLOW, WHITE, PURPLE, YELLOW ) LED("l-2", "led-2", 64, CYAN, WHITE, GREEN, YELLOW, BLUE, WHITE, YELLOW, WHITE, ORANGE, YELLOW, PURPLE, YELLOW, RED, ORANGE ) LED("l-3", "led-3", 0, GREEN, YELLOW, PURPLE, YELLOW, YELLOW, WHITE, RED, ORANGE, CYAN, WHITE, ORANGE, YELLOW, BLUE, WHITE ) LED("l+1", "led+1", 128, YELLOW, WHITE, ORANGE, YELLOW, RED, ORANGE, PURPLE, YELLOW, BLUE, WHITE, GREEN, YELLOW, CYAN, WHITE ) LED("l+2", "led+2", 64, PURPLE, YELLOW, BLUE, WHITE, RED, ORANGE, YELLOW, WHITE, ORANGE, YELLOW, CYAN, WHITE, GREEN, YELLOW ) LED("l+3", "led+3", 0, ORANGE, YELLOW, RED, ORANGE, PURPLE, YELLOW, GREEN, YELLOW, BLUE, WHITE, YELLOW, WHITE, CYAN, WHITE ) #undef LED part { name: "led0"; type: RECT; description { state: "default" 0.0; rel1.relative: 0.5 1.0; rel1.to: "logo"; rel2.relative: 0.5 1.0; rel2.to: "logo"; align: 0.5 0.0; FIXED_SIZE(20, 20) visible: 0; } } part { name: "led-1"; type: RECT; description { state: "default" 0.0; rel1.relative: -1.0 0.0; rel1.to: "led0"; rel2.relative: -1.0 1.0; rel2.to: "led0"; align: 0.0 0.5; FIXED_SIZE(20, 20) visible: 0; } } part { name: "led-2"; type: RECT; description { state: "default" 0.0; rel1.relative: -1.0 0.0; rel1.to: "led-1"; rel2.relative: -1.0 1.0; rel2.to: "led-1"; align: 0.0 0.5; FIXED_SIZE(20, 20) visible: 0; } } part { name: "led-3"; type: RECT; description { state: "default" 0.0; rel1.relative: -1.0 0.0; rel1.to: "led-2"; rel2.relative: -1.0 1.0; rel2.to: "led-2"; align: 0.0 0.5; FIXED_SIZE(20, 20) visible: 0; } } part { name: "led+1"; type: RECT; description { state: "default" 0.0; rel1.relative: 2.0 0.0; rel1.to: "led0"; rel2.relative: 2.0 1.0; rel2.to: "led0"; align: 1.0 0.5; FIXED_SIZE(20, 20) visible: 0; } } part { name: "led+2"; type: RECT; description { state: "default" 0.0; rel1.relative: 2.0 0.0; rel1.to: "led+1"; rel2.relative: 2.0 1.0; rel2.to: "led+1"; align: 1.0 0.5; FIXED_SIZE(20, 20) visible: 0; } } part { name: "led+3"; type: RECT; description { state: "default" 0.0; rel1.relative: 2.0 0.0; rel1.to: "led+2"; rel2.relative: 2.0 1.0; rel2.to: "led+2"; align: 1.0 0.5; FIXED_SIZE(20, 20) visible: 0; } } part { name: "blanker"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 0 0 0 255; visible: 1; } description { state: "visible" 0.0; inherit: "default" 0.0; color: 0 0 0 0; visible: 0; } } } programs { program { signal: "load"; source: ""; script { set_int(is_ready, 0); set_int(do_end, 0); } } #define PROG(_NAME) \ program { name: _NAME"0"; \ signal: "show"; source: ""; \ action: STATE_SET "col1" 0.0; \ target: _NAME"_base"; \ target: _NAME"_glow"; \ transition: SINUSOIDAL 0.5; \ in: 0.2 0.5; \ after: _NAME"1"; \ } \ program { name: _NAME"1"; \ action: STATE_SET "col2" 0.0; \ target: _NAME"_base"; \ target: _NAME"_glow"; \ transition: SINUSOIDAL 0.5; \ in: 0.2 0.5; \ after: _NAME"2"; \ } \ program { name: _NAME"2"; \ action: STATE_SET "col3" 0.0; \ target: _NAME"_base"; \ target: _NAME"_glow"; \ transition: SINUSOIDAL 0.5; \ in: 0.2 0.5; \ after: _NAME"1"; \ } \ program { name: _NAME"3"; \ action: STATE_SET "col4" 0.0; \ target: _NAME"_base"; \ target: _NAME"_glow"; \ transition: SINUSOIDAL 0.5; \ in: 0.2 0.5; \ after: _NAME"1"; \ } \ program { name: _NAME"4"; \ action: STATE_SET "col5" 0.0; \ target: _NAME"_base"; \ target: _NAME"_glow"; \ transition: SINUSOIDAL 0.5; \ in: 0.2 0.5; \ after: _NAME"1"; \ } \ program { name: _NAME"5"; \ action: STATE_SET "col6" 0.0; \ target: _NAME"_base"; \ target: _NAME"_glow"; \ transition: SINUSOIDAL 0.5; \ in: 0.2 0.5; \ after: _NAME"1"; \ } \ program { name: _NAME"6"; \ action: STATE_SET "default" 0.0; \ target: _NAME"_base"; \ target: _NAME"_glow"; \ transition: SINUSOIDAL 0.5; \ in: 0.2 0.5; \ after: _NAME"1"; \ } PROG("l0") PROG("l-1") PROG("l-2") PROG("l-3") PROG("l+1") PROG("l+2") PROG("l+3") #undef PROG program { signal: "show"; source: ""; action: STATE_SET "visible" 0.0; transition: DECELERATE 1.0; target: "shadow"; target: "blanker"; after: "ready"; } program { name: "logo_pulse"; signal: "show"; source: ""; action: STATE_SET "active" 0.0; target: "logo_glow"; transition: BOUNCE 0.8 0.5 6; after: "logo_pulse2"; } program { name: "logo_pulse2"; action: STATE_SET "default" 0.0; target: "logo_glow"; transition: SINUSOIDAL 0.8; after: "logo_pulse"; } program { name: "ready"; script { new val; val = get_int(do_end); if (val == 1) run_program(PROGRAM:"exit1"); else set_int(is_ready, 1); } } program { signal: "e,state,done"; source: "e"; script { new val; val = get_int(is_ready); if (val == 1) run_program(PROGRAM:"exit1"); else set_int(do_end, 1); } } program { name: "exit1"; signal: "e,state,done"; source: "e"; action: STATE_SET "default" 0.0; transition: SINUSOIDAL 1.0 CURRENT; target: "shadow"; target: "blanker"; after: "exit2"; } program { name: "exit2"; action: SIGNAL_EMIT "e,state,done_ok" "e"; } } } group { name: "e/init/extra_screen"; images.image: "screen_circular_shadow.png" COMP; images.image: "bg_radgrad.png" COMP; images.image: "dot_pattern.png" COMP; parts { part { name: "clip"; type: RECT; mouse_events: 0; description { state: "default" 0.0; } } part { name: "bg"; description { state: "default" 0.0; image.normal: "bg_radgrad.png"; image.scale_hint: STATIC; fill.smooth: 0; ASPECT_FILL((1024/653)) } } part { name: "pat"; description { state: "default" 0.0; image.normal: "dot_pattern.png"; TILED_PATTERN(256, 256) } } part { name: "shadow"; mouse_events: 0; clip_to: "clip"; description { state: "default" 0.0; rel1.relative: 0.0 0.0; rel2.relative: 1.0 1.0; color: 255 255 255 255; image.normal: "screen_circular_shadow.png"; fill.smooth: 0; } description { state: "visible" 0.0; inherit: "default" 0.0; rel1.relative: -1.0 -1.0; rel2.relative: 2.0 2.0; color: 255 255 255 255; } } part { name: "blanker"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 0 0 0 255; visible: 1; } description { state: "visible" 0.0; inherit: "default" 0.0; color: 0 0 0 0; visible: 0; } } } programs { program { signal: "show"; source: ""; action: STATE_SET "visible" 0.0; transition: DECELERATE 1.0; target: "shadow"; target: "blanker"; } } }