empc/data/themes/empc.edc

1781 lines
58 KiB
Plaintext

#include "empc_parts.h"
/* controls size (in pixels) of event areas */
#define TOP_EVENT_SIZE 10
#define BOTTOM_EVENT_SIZE 10
#define LEFT_EVENT_SIZE 10
#define RIGHT_EVENT_SIZE 10
/* controls actions for mouse events on background
available actions:
- prev
- next
- toggle
- stop
*/
#define WHEEL_UP_ACTION "prev"
#define WHEEL_DOWN_ACTION "next"
#define LEFT_CLICK_ACTION "toggle"
#define HIDE_TIMEOUT 3.0
#define LEFT_CLICK_ACTION_TIMEOUT 0.2
#define LOCK_TIMEOUT 3.0
#define PLAYING_FILTER \
filter: "fat = buffer(\"alpha\") \
padding_set (20) \
grow ({ 8, dst = fat }) \
blur ({ 10, src = fat, color = \"black\" }) \
blur ({ 4, color = \"white\" }) \
blend ()"
#define GROUP_PLAYING_FILTER \
filter: "fat = buffer(\"alpha\") \
padding_set (20) \
grow ({ 8, dst = fat }) \
blur ({ 12, src = fat, color = 0x3499ff }) \
blur ({ 4, color = \"cyan\" }) \
blend ()"
collections {
group { "elm/layout/empc/base"; nobroadcast;
images.image: "e-logo-blue-glow.png" COMP;
script_recursion: 1;
script {
public overlay_locked;
public timer_filesystem;
public timer_controls;
public timer_playlist;
public timer_lock;
public bg_chooser;
public lyrics_visible;
public filesystem_visible;
public playlist_visible;
public controls_visible;
public info_visible;
public timer_left_click_action;
public hide_playlist() {
/* https://phab.enlightenment.org/T905 */
#define PLAYLIST_HIDE \
emit("empc,playlist,hiding", "empc"); \
if (get_int(lyrics_visible)) \
run_program(get_program_id("lyrics_show")); \
if (get_int(info_visible)) \
set_state(PART:"info_clip", "visible", 0.0); \
cancel_timer(get_int(timer_playlist)); \
set_int(playlist_visible, 0); \
set_int(timer_playlist, 0); \
run_program(get_program_id("playlist_hide_start"));
PLAYLIST_HIDE
}
public hide_controls() {
#define CONTROLS_HIDE \
emit("empc,controls,hiding", "empc"); \
cancel_timer(get_int(timer_controls)); \
set_int(timer_controls, 0); \
set_int(controls_visible, 0); \
run_program(get_program_id("controls_hide_start"));
CONTROLS_HIDE
}
public hide_filesystem() {
#define FILESYSTEM_HIDE \
emit("empc,filesystem,hiding", "empc"); \
cancel_timer(get_int(timer_filesystem)); \
set_int(timer_filesystem, 0); \
set_int(filesystem_visible, 0); \
run_program(get_program_id("filesystem_hide_start"));
FILESYSTEM_HIDE
}
public left_click_action() {
emit("empc,play,"LEFT_CLICK_ACTION, "empc");
set_int(timer_left_click_action, 0);
}
public lock_toggle() {
set_int(timer_lock, 0);
run_program(get_program_id("playlist_overlay_signal"));
}
public playlist_visible_hints() {
run_program(get_program_id("top_hint_active"));
run_program(get_program_id("left_hint_inactive"));
if (!get_int(controls_visible))
run_program(get_program_id("bottom_hint_active"));
}
}
parts {
rect { "base"; nomouse;
desc {
color: 0 0 0 255;
}
}
image { "logo"; nomouse;
desc {
image.normal: "e-logo-blue-glow.png";
fill.smooth: 0;
fixed: 1 1;
max: 215 256;
aspect_preference: HORIZONTAL;
}
}
rect { "bgchooser_active_clip"; nomouse;
desc {
}
desc { "hidden";
color: 255 255 255 0;
hid;
}
}
program { "text_show";
action: STATE_SET "default" 0.0;
transition: LINEAR 0.2 CURRENT;
target: "bgchooser_active_clip";
}
program { "text_hide";
action: STATE_SET "hidden" 0.0;
transition: LINEAR 0.2 CURRENT;
target: "bgchooser_active_clip";
}
/* BACKGROUND */
rect { "logo_obscure"; nomouse;
desc { fixed: 1 1;
rel1.to: EMPC_SWALLOW_BACKGROUND;
rel2.to: EMPC_SWALLOW_BACKGROUND;
color: 0 0 0 255;
}
}
swallow { EMPC_SWALLOW_BACKGROUND;
ignore_flags: ON_HOLD;
desc {
fixed: 1 1;
}
desc { "left";
fixed: 1 1;
rel1.relative: -1 0;
rel2.relative: -1 1;
}
desc { "right";
fixed: 1 1;
rel1.relative: 1 0;
rel2.relative: 2 1;
link.base: "load";
}
}
program { "bg_chooser_active";
signal: "empc,bg_chooser,start"; source: "empc";
script {
if ((!get_int(bg_chooser)) && (!get_int(lyrics_visible))) {
emit("empc,bg_chooser,active", "empc");
set_int(bg_chooser, 1);
run_program(get_program_id("text_hide"));
}
}
}
program { "bg_chooser_inactive";
signal: "empc,bg_chooser,stop"; source: "empc";
script {
if (get_int(bg_chooser)) {
emit("empc,bg_chooser,inactive", "empc");
set_int(bg_chooser, 0);
run_program(get_program_id("text_show"));
}
}
}
program { "bg_chooser_cancel";
signal: "empc,bg_chooser,cancel"; source: "empc";
script {
if (get_int(bg_chooser)) {
emit("empc,bg_chooser,canceled", "empc");
run_program(get_program_id("bg_chooser_inactive"));
}
}
}
program { signal: "mouse,down,1,double"; source: EMPC_SWALLOW_BACKGROUND;
script {
cancel_timer(get_int(timer_left_click_action));
set_int(timer_left_click_action, 0);
if ((!get_int(bg_chooser)) && (!get_int(lyrics_visible)))
run_program(get_program_id("bg_chooser_active"));
else
run_program(get_program_id("bg_chooser_inactive"));
}
}
program { signal: "mouse,down,1"; source: EMPC_SWALLOW_BACKGROUND;
script {
if (!get_int(bg_chooser)) {
if (get_int(timer_left_click_action)) {
cancel_timer(get_int(timer_left_click_action));
set_int(timer_left_click_action, 0);
} else
set_int(timer_left_click_action, timer(LEFT_CLICK_ACTION_TIMEOUT, "left_click_action", 0));
}
}
}
program { signal: "mouse,wheel,0,-1"; source: EMPC_SWALLOW_BACKGROUND;
script {
if (get_int(bg_chooser))
emit("empc,bg_chooser,prev", "empc");
else
emit("empc,play,"WHEEL_UP_ACTION, "empc");
}
}
program { signal: "mouse,wheel,0,1"; source: EMPC_SWALLOW_BACKGROUND;
script {
if (get_int(bg_chooser))
emit("empc,bg_chooser,next", "empc");
else
emit("empc,play,"WHEEL_DOWN_ACTION, "empc");
}
}
program { signal: "empc,bg,next"; source: "empc"; //switch to left
action: STATE_SET "left" 0.0;
target: EMPC_SWALLOW_BACKGROUND;
transition: LINEAR 0.2 CURRENT;
sequence {
script {
set_state(PART:"empc.swallow.background", "right", 0.0);
emit("empc,bg,changed", "empc");
}
}
}
program { signal: "empc,bg,prev"; source: "empc"; //switch to right
action: STATE_SET "right" 0.0;
target: EMPC_SWALLOW_BACKGROUND;
transition: LINEAR 0.2 CURRENT;
sequence {
script {
set_state(PART:"empc.swallow.background", "left", 0.0);
emit("empc,bg,changed", "empc");
}
}
}
program { signal: "empc,bg,done"; source: "empc"; //switch to center
action: STATE_SET "default" 0.0;
target: EMPC_SWALLOW_BACKGROUND;
transition: LINEAR 0.2 CURRENT;
}
/* LYRICS */
swallow { EMPC_SWALLOW_LYRICS;
clip: "bgchooser_active_clip";
desc {
//align: 0.5 0.5;
max: 1000 1000;
rel1.to_y: "info.size";
rel1.relative: 0 1;
rel2.to_y: "text_title";
rel2.relative: 1 0;
rel2.offset: -2 -15;
map {
backface_cull: 1;
on: 1;
perspective: EMPC_SWALLOW_BACKGROUND;
rotation.y: -180;
}
hid;
}
desc { "visible";
inherit: "default";
vis;
map.rotation.y: 0;
}
}
program { "lyrics_show";
action: STATE_SET "visible" 0.0;
transition: LINEAR 0.2 CURRENT;
target: EMPC_SWALLOW_LYRICS;
sequence {
action: SIGNAL_EMIT "empc,lyrics,visible" "empc";
}
}
program { "lyrics_show_start";
script {
set_int(lyrics_visible, 1);
}
after: "lyrics_show";
}
program { "lyrics_hidden";
action: SIGNAL_EMIT "empc,lyrics,hidden" "empc";
}
program { "lyrics_hide";
action: STATE_SET "default" 0.0;
transition: LINEAR 0.2 CURRENT;
target: EMPC_SWALLOW_LYRICS;
after: "lyrics_hidden";
}
program { "lyrics_hide_start";
script {
set_int(lyrics_visible, 0);
}
after: "lyrics_hide";
}
program { signal: "empc,lyrics,show"; source: "empc";
after: "lyrics_show_start";
}
program { signal: "empc,lyrics,hide"; source: "empc";
after: "lyrics_hide_start";
}
program { signal: "mouse,down,3"; source: EMPC_SWALLOW_BACKGROUND;
script {
if (!get_int(bg_chooser)) {
if (get_int(lyrics_visible))
run_program(get_program_id("lyrics_hide_start"));
else
emit("empc,lyrics,request", "empc");
}
}
}
program { signal: "mouse,down,3"; source: EMPC_SWALLOW_LYRICS;
after: "lyrics_hide_start";
}
#define TEXT_ANIMATOR(NAME, CLIP, OWNER, SOURCE, TEXTINFO) \
rect { NAME"_clip"; nomouse; \
clip: CLIP; \
desc { \
} \
desc { "left"; \
hid; \
} \
desc { "right"; \
hid; \
} \
} \
text { NAME"_animator"; nomouse; \
clip: CLIP; \
effect: GLOW; \
scale: 1; \
desc { \
fixed: 1 1; \
rel1.to: OWNER; \
rel2.to: OWNER; \
hid; \
color: 255 255 255 255; \
color2: 0 0 0 192; \
color3: 0 0 0 128; \
text {\
text_source: SOURCE; \
source: SOURCE; \
} \
} \
desc { "left"; \
inherit: "default"; \
rel1.to_x: "base"; \
rel1.relative: -1 0; \
rel2.to_x: "base"; \
rel2.relative: -1 1; \
vis; \
} \
desc { "right"; \
inherit: "default"; \
rel1.to_x: "base"; \
rel1.relative: 2 0; \
rel2.to_x: "base"; \
rel2.relative: 2 1; \
vis; \
link.base: "load"; \
} \
} \
program { signal: "empc,"NAME",change,next"; source: "empc"; \
action: STATE_SET "left" 0.0; \
target: NAME"_clip"; \
} \
program { signal: "empc,"NAME",change,prev"; source: "empc"; \
action: STATE_SET "left" 0.0; \
target: NAME"_clip"; \
} \
program { signal: "empc,"NAME",change,next"; source: "empc"; \
action: STATE_SET "left" 0.0; \
target: NAME"_animator"; \
transition: LINEAR 0.2; \
after: NAME"_left"; \
} \
program { signal: "empc,"NAME",change,prev"; source: "empc"; \
action: STATE_SET "right" 0.0; \
target: NAME"_animator"; \
transition: LINEAR 0.2; \
after: NAME"_right"; \
} \
program { NAME"_left"; \
action: STATE_SET "right" 0.0; \
target: NAME"_animator"; \
target: NAME"_clip"; \
after: NAME"2"; \
} \
program { NAME"_right"; \
action: STATE_SET "left" 0.0; \
target: NAME"_animator"; \
target: NAME"_clip"; \
after: NAME"2"; \
} \
program { NAME"2"; \
action: SIGNAL_EMIT "empc,"NAME",changed,1" "empc"; \
} \
program { signal: "empc,"NAME",change,2"; source: "empc"; \
action: STATE_SET "default" 0.0; \
target: NAME"_animator"; \
transition: LINEAR 0.2; \
after: NAME"3"; \
} \
program { NAME"3"; \
action: STATE_SET "default" 0.0; \
target: NAME"_clip"; \
after: NAME"_done"; \
} \
program { NAME"_done"; \
action: SIGNAL_EMIT NAME"_done" "empc"; \
}
/* TEXT */
spacer { "info.size";
desc {
max: 0 0;
rel2.relative: 1 0;
}
desc { "visible";
rel2.to_y: EMPC_TEXT_ALBUM;
rel2.offset: 2 10;
}
}
rect { "info_clip"; nomouse;
clip: "bgchooser_active_clip";
desc {
hid;
color: 255 255 255 0;
}
desc { "visible";
}
}
program { "info_show";
filter: EMPC_SWALLOW_PLAYLIST "default";
script {
set_int(info_visible, 1);
}
sequence {
action: STATE_SET "visible" 0.0;
transition: LINEAR 0.2;
targets: "info_clip" "info.size";
}
}
program { signal: "empc,info,show"; source: "empc";
after: "info_show";
}
program { signal: "empc,album,change,*"; source: "empc";
after: "info_show";
}
program { "info_hide";
action: STATE_SET "default" 0.0;
transition: LINEAR 0.2;
targets: "info_clip" "info.size";
}
program { "info_hide_timed";
filter: "info_clip" "visible";
in: 4.0 0.0;
script {
set_int(info_visible, 0);
run_program(get_program_id("info_hide"));
}
}
program { signal: "album_done"; source: "empc";
action: ACTION_STOP;
target: "info_hide_timed";
after: "info_hide_timed";
}
program { signal: "artist_done"; source: "empc";
action: ACTION_STOP;
target: "info_hide_timed";
after: "info_hide_timed";
}
program { signal: "empc,artist,change,*"; source: "empc";
after: "info_show";
}
program { signal: "empc,album,change,*"; source: "empc";
after: "info_show";
}
text { EMPC_TEXT_ARTIST; nomouse;
clip: "artist_clip";
effect: GLOW;
scale: 1;
desc {
fixed: 0 1;
align: 0.5 0;
rel2.relative: 1 0;
color: 255 255 255 255;
color2: 0 0 0 192;
color3: 0 0 0 128;
text { font: "Sans:style=Bold"; size: 12;
align: 0.5 0;
min: 0 1;
fit: 1 0;
size_range: 9 12;
}
}
}
TEXT_ANIMATOR("artist", "info_clip", EMPC_TEXT_ARTIST, EMPC_TEXT_ARTIST, fit: 1 0;)
text { EMPC_TEXT_ALBUM; nomouse;
clip: "album_clip";
effect: GLOW;
scale: 1;
desc {
fixed: 0 1;
align: 0.5 0;
rel1.to_y: EMPC_TEXT_ARTIST;
rel1.offset: 0 -12;
rel1.relative: 0 1;
rel2.relative: 1 0;
color: 255 255 255 255;
color2: 0 0 0 192;
color3: 0 0 0 128;
text { font: "Sans:style=Bold"; size: 11;
min: 0 1;
fit: 1 0;
size_range: 9 12;
}
}
}
TEXT_ANIMATOR("album", "info_clip", EMPC_TEXT_ALBUM, EMPC_TEXT_ALBUM, fit: 1 0;)
rect { "fader"; mouse;
desc {
color: 0 0 0 0;
hid;
}
desc { "visible";
color: 0 0 0 128;
}
}
/* MODES */
swallow { EMPC_SWALLOW_REPEAT;
clip: "bgchooser_active_clip";
scale: 1;
desc {
fixed: 1 1;
min: 16 16;
align: 0 1;
rel1.relative: 0 1;
rel2.to_y: EMPC_SWALLOW_POSITION;
rel2.relative: 0 0;
}
}
swallow { EMPC_SWALLOW_SHUFFLE;
clip: "bgchooser_active_clip";
scale: 1;
desc {
fixed: 1 1;
min: 16 16;
align: 0 1;
rel1.relative: 1 1;
rel1.to_x: EMPC_SWALLOW_REPEAT;
rel2.to_y: EMPC_SWALLOW_POSITION;
rel2.relative: 0 0;
}
}
swallow { EMPC_SWALLOW_SINGLE;
clip: "bgchooser_active_clip";
scale: 1;
desc {
fixed: 1 1;
min: 16 16;
align: 1 1;
rel1.relative: 1 1;
rel2.to_x: EMPC_SWALLOW_CONSUME;
rel2.to_y: EMPC_SWALLOW_POSITION;
rel2.relative: 0 0;
}
}
swallow { EMPC_SWALLOW_CONSUME;
clip: "bgchooser_active_clip";
scale: 1;
desc {
fixed: 1 1;
min: 16 16;
align: 1 1;
rel1.relative: 1 1;
rel2.to_y: EMPC_SWALLOW_POSITION;
rel2.relative: 1 0;
rel2.offset: -2 -3;
}
}
/* TITLE */
alias: EMPC_TEXT_TITLE "text_title:empc.text";
group { "text_title"; nomouse;
source: "empc/scroll_text/bold/11";
clip: "title_clip";
desc {
fixed: 0 1;
align: 0.5 1;
rel1.relative: 1 0;
rel1.offset: 0 -3;
rel1.to_y: "bottom_events";
rel1.to_x: EMPC_SWALLOW_SHUFFLE;
rel2.to_x: EMPC_SWALLOW_SINGLE;
rel2.to_y: EMPC_SWALLOW_POSITION;
rel2.offset: 0 2;
rel2.relative: 0 0;
program { signal: "load";
action: SIGNAL_EMIT "center" "theme";
target: "text_title";
}
}
}
TEXT_ANIMATOR("title", "bgchooser_active_clip", "text_title", EMPC_TEXT_TITLE, fit: 1 1;)
rect { "filesystem_under_clip"; nomouse;
desc {
rel1.to_y: EMPC_SWALLOW_FILESYSTEM;
rel1.relative: 0 1;
}
}
swallow { EMPC_SWALLOW_POSITION;
desc {
fixed: 0 1;
rel1.relative: 0 1;
rel1.offset: 0 8;
}
desc { "visible";//controls visible
align: 0.5 1;
fixed: 0 1;
rel1.relative: 0 1;
rel2.relative: 1 0;
rel2.to_y: EMPC_SWALLOW_CONTROLS;
}
}
swallow { EMPC_SWALLOW_PLAYLIST;
clip: "filesystem_under_clip";
desc {
fixed: 1 1;
hid;
rel1.relative: 1 0;
rel1.to_x: "base";
rel2.relative: 2 0;
rel2.to_y: "text_title";
}
desc { "visible";
inherit: "default";
rel1.relative: 0 0;
rel2.relative: 1 0;
vis;
}
}
swallow { EMPC_SWALLOW_CONTROLS;
desc {
fixed: 1 1;
align: 0.5 1;
hid;
rel1.relative: 0 1;
rel2.relative: 1 2;
}
desc { "visible";
fixed: 1 1;
align: 0.5 1;
rel1.relative: 0 1;
}
}
rect { "control_events_clip";
desc {
rel1.to: EMPC_SWALLOW_POSITION;
rel2.to: EMPC_SWALLOW_CONTROLS;
color: 0 0 0 0;
}
desc { "visible";
inherit: "default";
hid;
}
}
swallow { EMPC_SWALLOW_FILESYSTEM;
desc {
fixed: 1 1;
hid;
rel1.relative: 0 -1;
rel1.to: "base";
rel2.relative: 1 0;
rel2.to: "base";
}
desc { "visible";
fixed: 1 1;
rel2.to_y: "text_title";
rel2.relative: 1 0;
}
}
rect { "right_events"; repeat_events: 1;
clip: "bgchooser_active_clip";
desc {
min: RIGHT_EVENT_SIZE 0;
max: RIGHT_EVENT_SIZE -1;
align: 1 0.5;
fixed: 1 0;
color: 0 0 0 0;
rel1.relative: 1 0;
}
desc { "hint_activate"; inherit: "default";
color: 52 153 255 100;
}
desc { "hint_deactivate"; inherit: "default";
color: 154 25 25 100;
}
}
rect { "left_events"; repeat_events: 1;
clip: "bgchooser_active_clip";
desc {
min: LEFT_EVENT_SIZE 0;
max: LEFT_EVENT_SIZE -1;
align: 0 0.5;
fixed: 1 0;
color: 0 0 0 0;
rel2.relative: 0 1;
}
desc { "hint_activate"; inherit: "default";
color: 52 153 255 100;
}
desc { "hint_deactivate"; inherit: "default";
color: 154 25 25 100;
}
}
rect { "bottom_events"; repeat_events: 1;
clip: "bgchooser_active_clip";
desc {
min: 0 BOTTOM_EVENT_SIZE;
max: -1 BOTTOM_EVENT_SIZE;
align: 0.5 1;
fixed: 0 1;
color: 0 0 0 0;
rel1.relative: 0 1;
}
desc { "hint_activate"; inherit: "default";
color: 52 153 255 100;
}
desc { "hint_deactivate"; inherit: "default";
color: 154 25 25 100;
}
}
rect { "top_events"; repeat_events: 1;
clip: "bgchooser_active_clip";
desc {
min: 0 TOP_EVENT_SIZE;
max: -1 TOP_EVENT_SIZE;
align: 0.5 0;
fixed: 0 1;
color: 0 0 0 0;
rel2.relative: 1 0;
}
desc { "hint_activate"; inherit: "default";
color: 52 153 255 100;
}
desc { "hint_deactivate"; inherit: "default";
color: 154 25 25 100;
}
}
#define HINT_PROGRAM(SIDE) \
program { SIDE"_hint_active"; \
action: STATE_SET "hint_activate"; \
target: SIDE"_events"; \
transition: SIN 0.5; \
sequence { \
action: STATE_SET "default"; \
target: SIDE"_events"; \
transition: SIN 0.5; \
} \
} \
program { SIDE"_hint_inactive"; \
action: STATE_SET "hint_deactivate"; \
target: SIDE"_events"; \
transition: SIN 0.5; \
sequence { \
action: STATE_SET "default"; \
target: SIDE"_events"; \
transition: SIN 0.5; \
} \
}
HINT_PROGRAM("top")
HINT_PROGRAM("bottom")
HINT_PROGRAM("left")
HINT_PROGRAM("right")
alias: EMPC_LOGIN_TEXT_HEADER "login_panel:empc.text";
alias: EMPC_LOGIN_SWALLOW_HOST "login_panel:swallow.host";
alias: EMPC_LOGIN_SWALLOW_PORT "login_panel:swallow.port";
alias: EMPC_LOGIN_SWALLOW_PASSWORD "login_panel:swallow.password";
group { "login_panel"; source: "empc/layout/login"; }
program { signal: "empc,login,visible"; source: "empc";
action: SIGNAL_EMIT "login,visible" "theme";
target: "login_panel";
}
program { signal: "empc,login,hidden"; source: "empc";
action: SIGNAL_EMIT "login,hidden" "theme";
target: "login_panel";
}
program { signal: "empc,login,failed"; source: "empc";
action: SIGNAL_EMIT "login,failed" "theme";
target: "login_panel";
}
program { signal: "login_panel:close,request"; source: "theme";
action: SIGNAL_EMIT "empc,login,close,request" "empc";
}
program { "playlist_overlay_signal";
signal: "empc,overlay,toggle"; source: "empc";
script {
set_int(overlay_locked, !get_int(overlay_locked));
if (!get_int(overlay_locked)) {
run_program(get_program_id("playlist_hide"));
run_program(get_program_id("controls_hide"));
run_program(get_program_id("filesystem_hide"));
emit("empc,overlay,unlocked", "empc");
} else {
run_program(get_program_id("playlist_show"));
run_program(get_program_id("controls_show"));
cancel_timer(get_int(timer_playlist));
cancel_timer(get_int(timer_controls));
set_int(timer_playlist, 0);
set_int(timer_controls, 0);
emit("empc,overlay,locked", "empc");
}
}
}
program { signal: "mouse,wheel,*"; source: "*";
script {
reset_timer(get_int(timer_playlist));
reset_timer(get_int(timer_controls));
reset_timer(get_int(timer_filesystem));
}
}
program { signal: "empc,mouse,wheel"; source: "empc";
script {
reset_timer(get_int(timer_playlist));
reset_timer(get_int(timer_controls));
reset_timer(get_int(timer_filesystem));
}
}
program { signal: "mouse,move"; source: "*";
script {
reset_timer(get_int(timer_playlist));
reset_timer(get_int(timer_controls));
reset_timer(get_int(timer_filesystem));
}
}
program { signal: "empc,mouse,move"; source: "empc";
script {
reset_timer(get_int(timer_playlist));
reset_timer(get_int(timer_controls));
reset_timer(get_int(timer_filesystem));
}
}
program { signal: "load";
script {
set_int(timer_playlist, timer(HIDE_TIMEOUT, "hide_playlist", 0));
set_int(timer_controls, timer(HIDE_TIMEOUT, "hide_controls", 0));
set_int(overlay_locked, 0);
run_program(get_program_id("playlist_show"));
run_program(get_program_id("controls_show"));
}
}
/* PLAYLIST */
program { signal: "mouse,in"; source: "right_events";
script {
if (!get_int(overlay_locked)) {
cancel_timer(get_int(timer_playlist));
set_int(timer_playlist, 0);
run_program(get_program_id("playlist_show"));
set_int(timer_lock, timer(LOCK_TIMEOUT, "lock_toggle", 0));
}
}
}
program { signal: "mouse,out"; source: "right_events";
script {
if (!get_int(overlay_locked)) {
set_int(timer_playlist, timer(HIDE_TIMEOUT, "hide_playlist", 0));
cancel_timer(get_int(timer_lock));
set_int(timer_lock, 0);
}
}
}
program { "playlist_show";
filter: EMPC_SWALLOW_PLAYLIST "default";
signal: "empc,playlist,show"; source: "empc";
script {
if ((!get_int(playlist_visible)) && (!get_int(bg_chooser))) {
if (get_int(info_visible))
run_program(get_program_id("info_hide_timed"));
emit("empc,playlist,showing", "empc");
set_int(playlist_visible, 1);
run_program(get_program_id("lyrics_hide"));
run_program(get_program_id("playlist_show_start"));
}
}
}
program { "playlist_show_start";
action: STATE_SET "visible" 0.0;
targets: EMPC_SWALLOW_PLAYLIST "fader";
transition: LINEAR 0.2 CURRENT;
after: "playlist_show_done";
}
program { "playlist_show_done";
script {
emit("empc,playlist,visible", "empc");
playlist_visible_hints();
}
}
program { "playlist_hide";
filter: EMPC_SWALLOW_PLAYLIST "visible";
signal: "empc,playlist,hide"; source: "empc";
script {
PLAYLIST_HIDE
}
}
program { "playlist_hide_start";
action: STATE_SET "default" 0.0;
targets: EMPC_SWALLOW_PLAYLIST "fader";
transition: LINEAR 0.2 CURRENT;
after: "playlist_hide_done";
}
program { "playlist_hide_done";
script {
emit("empc,playlist,hidden", "empc");
run_program(get_program_id("right_hint_active"));
if (!get_int(controls_visible))
run_program(get_program_id("bottom_hint_active"));
}
}
program { signal: "mouse,in"; source: "left_events";
script {
if ((!get_int(overlay_locked)) && (!get_int(filesystem_visible)) && get_int(playlist_visible))
run_program(get_program_id("playlist_hide"));
else if (get_int(overlay_locked) && (!get_int(filesystem_visible)))
set_int(timer_lock, timer(LOCK_TIMEOUT, "lock_toggle", 0));
}
}
program { signal: "mouse,out"; source: "left_events";
script {
if (get_int(overlay_locked) && (!get_int(filesystem_visible))) {
cancel_timer(get_int(timer_lock));
set_int(timer_lock, 0);
}
}
}
/* CONTROLS */
program { signal: "mouse,in"; source: "bottom_events";
script {
if (get_int(filesystem_visible))
run_program(get_program_id("filesystem_hide"));
else if (!get_int(overlay_locked)) {
cancel_timer(get_int(timer_controls));
set_int(timer_controls, 0);
run_program(get_program_id("controls_show"));
}
}
}
program { signal: "mouse,out"; source: "bottom_events";
script {
if (!get_int(overlay_locked)) {
set_int(timer_controls, timer(HIDE_TIMEOUT, "hide_controls", 0));
}
}
}
program { "controls_show";
filter: EMPC_SWALLOW_CONTROLS "default";
signal: "empc,controls,show"; source: "empc";
script {
if ((!get_int(controls_visible)) && (!get_int(bg_chooser))) {
set_int(controls_visible, 1);
emit("empc,controls,showing", "empc");
run_program(get_program_id("controls_show_start"));
}
}
}
program { "controls_show_start";
action: STATE_SET "visible" 0.0;
targets: EMPC_SWALLOW_CONTROLS EMPC_SWALLOW_POSITION "control_events_clip";
transition: LINEAR 0.2 CURRENT;
sequence {
action: SIGNAL_EMIT "empc,controls,visible" "empc";
}
}
program { "controls_hide";
filter: EMPC_SWALLOW_CONTROLS "visible";
signal: "empc,controls,hide"; source: "empc";
script {
CONTROLS_HIDE
}
}
program { "controls_hide_start";
action: STATE_SET "default" 0.0;
targets: EMPC_SWALLOW_CONTROLS EMPC_SWALLOW_POSITION "control_events_clip";
transition: LINEAR 0.2 CURRENT;
sequence {
action: SIGNAL_EMIT "empc,controls,hidden" "empc";
}
}
/* FILESYSTEM */
program { signal: "mouse,in"; source: "top_events";
script {
if (get_int(playlist_visible)) {
cancel_timer(get_int(timer_filesystem));
set_int(timer_filesystem, 0);
run_program(get_program_id("filesystem_show"));
}
}
}
program { signal: "mouse,out"; source: "top_events";
script {
if (get_int(filesystem_visible) && (!get_int(overlay_locked))) {
set_int(timer_filesystem, timer(HIDE_TIMEOUT, "hide_filesystem", 0));
}
}
}
program { "filesystem_show";
filter: EMPC_SWALLOW_FILESYSTEM "default";
signal: "empc,filesystem,show"; source: "empc";
script {
if ((!get_int(filesystem_visible)) && (!get_int(bg_chooser))) {
set_int(filesystem_visible, 1);
emit("empc,filesystem,showing", "empc");
run_program(get_program_id("filesystem_show_start"));
}
}
}
program { "filesystem_show_start";
action: STATE_SET "visible" 0.0;
target: EMPC_SWALLOW_FILESYSTEM;
transition: LINEAR 0.2 CURRENT;
after: "filesystem_show_done";
}
program { "filesystem_show_done";
script {
emit("empc,filesystem,visible", "empc");
run_program(get_program_id("bottom_hint_inactive"));
}
}
program { "filesystem_hide";
filter: EMPC_SWALLOW_FILESYSTEM "visible";
signal: "empc,filesystem,hide"; source: "empc";
script {
FILESYSTEM_HIDE
}
}
program { "filesystem_hide_start";
action: STATE_SET "default" 0.0;
target: EMPC_SWALLOW_FILESYSTEM;
transition: LINEAR 0.2 CURRENT;
after: "filesystem_hide_done";
}
program { "filesystem_hide_done";
script {
emit("empc,filesystem,hidden", "empc");
playlist_visible_hints();
}
}
program { signal: "empc,key,down"; source: "empc";
filter: EMPC_SWALLOW_FILESYSTEM "visible";
script {
reset_timer(get_int(timer_filesystem));
}
}
}
}
group { "elm/layout/empc/dummy";
parts {
rect { "clip"; nomouse;
}
swallow { "empc.swallow.content";
clip: "clip";
}
}
}
group { "elm/layout/empc/filesystem";
parts {
text { "empc.text.path"; nomouse;
scale: 1;
desc {
fixed: 1 1;
min: 16 16;
rel1.offset: -20 -45;
rel1.relative: 1 0;
rel1.to_x: "empc.swallow.back";
rel2.relative: 1 0;
rel2.offset: 0 40;
color: 255 255 255 255;
color_class: "text_item_playing";
text { font: "Sans:style=Bold"; size: 10;
min: 0 1;
align: 0.5 1;
PLAYING_FILTER;
}
}
desc { "hidden";
inherit: "default";
rel1.relative: 1 -1;
rel2.relative: 1 -1;
hid;
}
}
swallow { "empc.swallow.back";
desc {
fixed: 1 1;
min: 32 32;
align: 0.0 0;
rel2.relative: 0 0;
}
desc { "hidden";
inherit: "default";
rel1.relative: 0 -1;
hid;
}
}
program { signal: "empc,back,hide"; source: "empc";
action: STATE_SET "hidden" 0.0;
targets: "empc.text.path" "empc.swallow.back";
transition: LINEAR 0.2 CURRENT;
}
program { signal: "empc,back,show"; source: "empc";
action: STATE_SET "default" 0.0;
targets: "empc.text.path" "empc.swallow.back";
transition: LINEAR 0.2 CURRENT;
}
swallow { EMPC_SWALLOW_FILESYSTEM;
desc {
rel1.to_y: "empc.swallow.back";
rel1.relative: 0 1;
rel2.to_y: "empc.swallow.buttons";
rel2.relative: 1 0;
}
}
swallow { "empc.swallow.search";
desc {
min: 32 16;
fixed: 0 1;
align: 0 1;
rel2.to_y: "empc.swallow.buttons";
rel2.relative: 1 0;
rel2.offset: -1 -3;
color: 255 255 255 0;
hid;
}
desc { "visible";
inherit: "default";
color: 255 255 255 255;
vis;
}
}
program { signal: "empc,search,hide"; source: "empc";
filter: "empc.swallow.search" "visible";
action: STATE_SET "default" 0.0;
target: "empc.swallow.search";
transition: LINEAR 0.2;
sequence {
action: SIGNAL_EMIT "empc,search,hidden" "empc";
}
}
program { signal: "empc,search,show"; source: "empc";
filter: "empc.swallow.search" "default";
action: STATE_SET "visible" 0.0;
target: "empc.swallow.search";
transition: LINEAR 0.2;
sequence {
action: SIGNAL_EMIT "empc,search,visible" "empc";
}
}
swallow { "empc.swallow.buttons";
desc {
min: 16 16;
fixed: 1 1;
align: 0.5 1;
rel1.relative: 0 1;
}
desc { "hidden";
inherit: "default";
rel1.relative: 1 1;
rel2.relative: 2 1;
hid;
}
}
program { signal: "empc,buttons,hide"; source: "empc";
action: STATE_SET "hidden" 0.0;
target: "empc.swallow.buttons";
transition: LINEAR 0.2;
}
program { signal: "empc,buttons,show"; source: "empc";
action: STATE_SET "default" 0.0;
target: "empc.swallow.buttons";
transition: LINEAR 0.2;
}
}
}
group { "elm/layout/empc/tooltip"; nomouse;
data.item: "empc.infos" "artist album time track index";
parts {
rect { "outline";
desc {
color: 200 200 200 200;
fixed: 1 1;
rel1.to: "empc.swallow.icon";
rel1.offset: -1 -1;
rel2.to: "empc.swallow.icon";
rel2.offset: 0 0;
}
}
swallow { "empc.swallow.icon";
desc {
align: 0 0;
fixed: 1 0;
rel1.offset: 1 1;
rel2.relative: 0 1;
rel2.offset: -2 -2;
}
}
table { "empc.table";
desc {
align: 0 0.5;
rel1.to_x: "outline";
rel1.relative: 1 0;
rel1.offset: 5 0;
table {
align: 0.5 0.5;
padding: 5 2;
min: 1 1;
}
}
}
}
}
group { "empc/scroll_text/bold/11"; nomouse;
script {
public st;
public animating;
public first;
public retry;
public playing;
public offset;
public play_offset;
public ready;
public attempts;
public hidden;
public set_visibility() {
if (get_int(playing)) {
set_state(PART:"playing_clip", "default", 0.0);
set_state(PART:"not_playing_clip", "hidden", 0.0);
} else {
set_state(PART:"playing_clip", "hidden", 0.0);
set_state(PART:"not_playing_clip", "default", 0.0);
}
}
public reset_states() {
set_state(PART:"empc.text", "default", get_float(st));
set_state(PART:"text2", "default", get_float(st));
stop_program(get_program_id("anim_left"));
stop_program(get_program_id("anim_center"));
stop_program(get_program_id("anim_right"));
stop_program(get_program_id("anim_start"));
}
public recalc_scr() {
new buf[32];
new len;
get_text(PART:"empc.text", buf, 32);
len = strlen(buf);
if (len) {
new x, y, w, h, tx, ty, tw, th;
get_geometry(PART:"clip", x, y, w, h);
if (get_int(playing)) {
get_geometry(PART:"text2", tx, ty, tw, th);
tw -= get_int(play_offset);
} else {
get_geometry(PART:"empc.text", tx, ty, tw, th);
tw -= get_int(offset);
}
set_int(first, 1);
if (tw > w) {
new t;
t = get_int(retry);
set_int(retry, 0);
if ((w <= (len * 2)) || (tw <= len * 2) || (th < 5)) {
if (t)
cancel_timer(t);
if (!get_int(hidden))
set_int(retry, timer(0.8, "recalc_scr", 0));
set_int(ready, 0);
} else {
if (get_int(ready)) {
if (t)
cancel_timer(t);
if (!get_int(animating)) {
set_int(animating, 1);
if (!get_int(hidden)) {
set_int(retry, timer(0.29, "recalc_scr", 0));
run_program(get_program_id("anim_start"));
}
} else
set_int(ready, 0);
} else {
if (t)
cancel_timer(t);
if (!get_int(hidden))
set_int(retry, timer(0.3, "recalc_scr", 0));
set_int(ready, 1);
}
}
} else {
reset_states();
set_int(animating, 0);
set_int(ready, 0);
cancel_timer(get_int(retry));
set_int(retry, 0);
}
set_int(attempts, 0);
} else {
new at;
if (get_int(first)) {
reset_states();
set_int(animating, 0);
}
cancel_timer(get_int(retry));
set_int(retry, 0);
at = get_int(attempts);
if (at < 10) {
set_int(attempts, at + 1);
if (!get_int(hidden))
set_int(retry, timer(0.8, "recalc_scr", 0));
} else
set_int(attempts, 0);
set_int(ready, 0);
}
}
}
parts {
program { "on_load"; signal: "load";
script {
set_int(play_offset, 45);
}
}
rect { "clip"; }
rect { "not_playing_clip"; clip: "clip";
desc {}
desc { "hidden"; hid; }
}
text { "empc.text"; clip: "not_playing_clip";
scale: 1;
effect: GLOW;
desc {
fixed: 1 0;
align: 0.0 0.5;
color: 255 255 255 255;
color2: 0 0 0 192;
color3: 0 0 0 128;
text { text: " ";
font: "Sans:style=Bold"; size: 11;
min: 1 1;
max: 1 1;
ellipsis: -1;
align: 0.0 0.5;
}
limit: WIDTH;
link.base: "limit,width,over" "empc.text";
link.after: "recalc";
}
desc { state: "default" 0.5; inherit: "default";
align: 0.5 0.5;
text.align: 0.5 0.5;
}
desc { state: "default" 1.0; inherit: "default";
align: 1.0 0.5;
text.align: 1.0 0.5;
}
desc { "init"; //prevents infinite "not stable during recalc" errors
fixed: 1 1;
min: 1 1;
max: 1 1;
link.base: "load";
program { signal: "limit,width,zero"; source: "empc.text";
script {
set_state(PART:"empc.text", "init", 0.0);
set_int(ready, 0);
if (get_int(retry))
cancel_timer(get_int(retry));
set_int(retry, 0);
set_int(animating, 0);
stop_programs_on(PART:"empc.text");
stop_programs_on(PART:"text2");
}
}
}
}
rect { "playing_clip"; inherit: "not_playing_clip";
desc { "hidden";
link.base: "load";
}
}
text { "text2"; inherit: "empc.text";
clip: "playing_clip";
desc { "default";
align: 0.0 0.5;
rel1.offset: 1 -20;
rel2.offset: 0 20;
color_class: "text_item_playing";
text { font: "Sans:style=Bold"; size: 11;
text_source: "empc.text";
PLAYING_FILTER;
}
}
desc { state: "default" 0.5; inherit: "default";
align: 0.5 0.5;
text.align: 0.5 0.5;
}
desc { state: "default" 1.0; inherit: "default";
align: 1.0 0.5;
text.align: 1.0 0.5;
}
}
program { "recalc"; signal: "resize";
script {
set_int(ready, 0);
if (get_int(hidden)) {
set_int(animating, 0);
} else {
if (get_int(retry))
cancel_timer(get_int(retry));
set_int(retry, 0);
set_int(animating, 0);
reset_states();
recalc_scr();
}
}
}
program { "text_hide"; signal: "hide";
script {
set_int(hidden, 1);
if (get_int(retry))
cancel_timer(get_int(retry));
set_int(retry, 0);
set_int(ready, 0);
set_int(animating, 0);
reset_states();
}
}
program { "text_show"; signal: "show";
script {
set_int(hidden, 0);
recalc_scr();
}
}
target_group: "text" "empc.text" "text2";
program { "anim_start";
in: 0.3 0.0;
after: "anim_left";
}
program { "anim_left";
action: STATE_SET "default";
transition: DECEL 1.2 CURRENT;
groups: "text";
in: 0.5 0;
after: "anim_center";
}
program { "anim_center";
action: STATE_SET "default" 0.5;
transition: DECEL 0.8 CURRENT;
groups: "text";
in: 0.5 0;
after: "anim_right";
}
program { "anim_right";
action: STATE_SET "default" 1.0;
transition: DECEL 0.8 CURRENT;
groups: "text";
in: 0.5 0;
after: "anim_start";
}
program { "set_left"; signal: "left"; source: "theme";
script {
set_float(st, 0.0);
if (get_int(first) && (!get_int(animating)))
reset_states();
}
}
program { "set_center"; signal: "center"; source: "theme";
script {
set_float(st, 0.5);
if (get_int(first) && (!get_int(animating)))
reset_states();
}
}
program { "set_right"; signal: "right"; source: "theme";
script {
set_float(st, 1.0);
if (get_int(first) && (!get_int(animating)))
reset_states();
}
}
program {
signal: "empc,state,playing"; source: "empc";
script {
set_int(playing, 1);
set_visibility();
reset_states();
set_int(animating, 0);
set_int(ready, 0);
if (get_int(retry))
cancel_timer(get_int(retry));
set_int(retry, timer(0.8, "recalc_scr", 0));
}
}
program {
signal: "empc,state,not_playing"; source: "empc";
script {
set_int(playing, 0);
set_visibility();
reset_states();
set_int(animating, 0);
set_int(ready, 0);
if (get_int(retry))
cancel_timer(get_int(retry));
set_int(retry, timer(0.8, "recalc_scr", 0));
}
}
}
}
/* 11 normal, 11:bold playing */
group { "empc/scroll_text/11/bold"; inherit: "empc/scroll_text/bold/11";
parts {
program { "on_load"; signal: "load";
script {
set_int(play_offset, 50);
}
}
text { "empc.text";
desc { "default";
text.font: "Sans";
}
desc { state: "default" 0.5; inherit: "default";
align: 0.5 0.5;
text.align: 0.5 0.5;
}
desc { state: "default" 1.0; inherit: "default";
align: 1.0 0.5;
text.align: 1.0 0.5;
}
}
text { "text2";
desc { "default";
rel1.offset: -15 -22;
rel2.offset: 0 20;
}
desc { state: "default" 0.5; inherit: "default";
align: 0.5 0.5;
text.align: 0.5 0.5;
}
desc { state: "default" 1.0; inherit: "default";
align: 1.0 0.5;
text.align: 1.0 0.5;
}
}
}
}
/* 11 normal, 11:bold:blue playing */
group { "empc/scroll_text/11/bold/blue"; inherit: "empc/scroll_text/11/bold";
parts {
program { "on_load"; signal: "load";
script {
set_int(play_offset, 80);
}
}
text { "text2";
desc { "default";
rel1.offset: 3 -20;
text {
GROUP_PLAYING_FILTER;
}
}
desc { state: "default" 0.5; inherit: "default";
align: 0.5 0.5;
text.align: 0.5 0.5;
}
desc { state: "default" 1.0; inherit: "default";
align: 1.0 0.5;
text.align: 1.0 0.5;
}
}
}
}
group { "empc/layout/login"; nomouse;
parts {
rect { "fader"; clip: "clip";
desc { color: 0 0 0 192; }
desc { "fail";
color: 200 200 200 192;
link.base: "login,failed" "theme";
link.transition: LINEAR 0.1;
link.after: "fader_reset";
}
}
program { "fader_reset";
action: STATE_SET "default";
transition: LINEAR 0.1;
target: "fader";
}
rect { "clip";
desc {
max: 1 1;
rel1.relative: 0.5 0.5;
rel2.relative: 0.5 0.5;
hid;
link.base: "login,hidden" "theme";
link.transition: LINEAR 0.2;
}
desc { "vis";
link.base: "login,visible" "theme";
link.transition: LINEAR 0.2;
}
}
program { signal: "mouse,down,*"; source: "event";
action: SIGNAL_EMIT "close,request" "theme";
}
rect { "event"; clip: "clip"; mouse;
desc {
color: 0 0 0 0;
}
}
rect { "base"; clip: "clip"; mouse;
desc {
fixed: 1 1;
rel1.to: "host";
rel2.to: "swallow.password";
color: 0 0 0 255;
}
}
text { "empc.text"; clip: "clip";
scale: 1;
effect: GLOW;
desc {
fixed: 0 1;
align: 0.5 0.0;
//rel1.offset: -20 -40;
rel1.relative: 0 0.25;
rel2.relative: 1 0;
//rel2.offset: 20 40;
color: 255 255 255 255;
color2: 0 0 0 192;
color3: 52 153 255 160;
text { font: "Sans:style=Bold"; size: 13;
min: 1 1;
ellipsis: -1;
align: 0.5 1.0;
//brokenGROUP_PLAYING_FILTER;
}
}
desc { "fail"; inherit: "default";
color2: 52 153 255 255;
color3: 52 153 255 255;
}
}
target_group: "text" "empc.text" "host" "port" "password";
text { "host"; inherit: "empc.text";
desc { "default";
align: 0.0 0.0;
fixed: 1 1;
rel1.offset: 1 0;
rel2.offset: 1 1;
rel1.relative: 0 1;
rel1.to_y: "empc.text";
text.text: "Host:";
text {
align: 0.0 0.0;
filter: "fat = buffer(\"alpha\") \
grow ({ 8, dst = fat }) \
blur ({ 12, src = fat, color = \"black\" }) \
blur ({ 4, color = \"white\" }) \
blend () \
padding_set (0)";
}
}
desc { "fail"; inherit: "default";
color2: 0 0 0 192;
color3: 52 153 255 160;
rel1.relative: 0 0;
rel1.to_y: "";
}
}
program { signal: "login,failed"; source: "theme";
action: STATE_SET "fail";
transition: LINEAR 0.1;
after: "fail2";
groups: "text";
}
program { "fail2";
action: STATE_SET "default";
transition: LINEAR 0.1;
groups: "text";
}
swallow { "swallow.host"; mouse; clip: "clip";
desc {
min: 40 10;
fixed: 1 1;
align: 1.0 0.0;
rel1.to: "host";
rel1.relative: 1 0;
rel2.relative: 1 0;
}
}
text { "port"; inherit: "host";
desc { "default";
rel1.to_y: "host";
text.text: "Port:";
}
desc { "fail"; inherit: "default";
align: 0.0 0.5;
rel1.to_y: "";
map.rotation.x: 360;
map.on: 1;
}
}
swallow { "swallow.port"; inherit: "swallow.host";
desc { "default";
rel1.to: "port";
}
}
text { "password"; inherit: "host";
desc { "default";
rel1.to_y: "port";
text.text: "Password:";
}
desc { "fail"; inherit: "default";
rel1.to: "";
}
}
swallow { "swallow.password"; inherit: "swallow.port";
desc { "default";
rel1.to: "password";
}
}
}
}
#include "bgselector.edc"
#include "elm.edc"
#include "scroller.edc"
#define IC(Name, File, Min, Max) \
group { "elm/icon/"##Name##"/default"; min: Min Min; max: Max Max; \
images.image: File COMP; parts { part { "base"; \
desc { aspect: 1.0 1.0; aspect_preference: BOTH; \
image.normal: File; } } } }
IC("repeat", "playlist-repeat.png", 16, 0);
IC("shuffle", "playlist-shuffle.png", 16, 0);
IC("consume", "playlist-consume.png", 16, 0);
IC("single", "playlist-single.png", 16, 0);
IC("add", "add.png", 16, 0);
IC("fs-back", "arrow-back.png", 16, 0);
IC("replace", "replace.png", 16, 0);
}