1group { name: "e/modules/mixer/main"; 2 alias: "e/gadget/mixer/main"; 3 alias: "e/gadget/mixer/main_vert"; 4 images.image: "speaker.png" COMP; 5 images.image: "inset_round_hilight.png" COMP; 6 images.image: "inset_round_shadow.png" COMP; 7 images.image: "inset_round_shading.png" COMP; 8 images.image: "led_dot_white.png" COMP; 9 max: 160 160; 10 min: 16 16; 11 script { 12 public message(Msg_Type:type, id, ...) { 13 if ((type == MSG_INT_SET) && (id == 0)) { 14 new m, l, r; 15 16 m = getarg(2); 17 l = getarg(3); 18 r = getarg(4); 19 20 if (m) { 21 run_program(PROGRAM:"mute"); 22 } else { 23 run_program(PROGRAM:"unmute"); 24 } 25 26 if (l <= 0) { 27 run_program(PROGRAM:"l0-off"); 28 run_program(PROGRAM:"l1-off"); 29 run_program(PROGRAM:"l2-off"); 30 run_program(PROGRAM:"l3-off"); 31 run_program(PROGRAM:"l4-off"); 32 } else if (l <= 20) { 33 run_program(PROGRAM:"l0-on"); 34 run_program(PROGRAM:"l1-off"); 35 run_program(PROGRAM:"l2-off"); 36 run_program(PROGRAM:"l3-off"); 37 run_program(PROGRAM:"l4-off"); 38 } else if (l <= 40) { 39 run_program(PROGRAM:"l0-on"); 40 run_program(PROGRAM:"l1-on"); 41 run_program(PROGRAM:"l2-off"); 42 run_program(PROGRAM:"l3-off"); 43 run_program(PROGRAM:"l4-off"); 44 } else if (l <= 60) { 45 run_program(PROGRAM:"l0-on"); 46 run_program(PROGRAM:"l1-on"); 47 run_program(PROGRAM:"l2-on"); 48 run_program(PROGRAM:"l3-off"); 49 run_program(PROGRAM:"l4-off"); 50 } else if (l <= 80) { 51 run_program(PROGRAM:"l0-on"); 52 run_program(PROGRAM:"l1-on"); 53 run_program(PROGRAM:"l2-on"); 54 run_program(PROGRAM:"l3-on"); 55 run_program(PROGRAM:"l4-off"); 56 } else { 57 run_program(PROGRAM:"l0-on"); 58 run_program(PROGRAM:"l1-on"); 59 run_program(PROGRAM:"l2-on"); 60 run_program(PROGRAM:"l3-on"); 61 run_program(PROGRAM:"l4-on"); 62 } 63 64 if (r <= 0) { 65 run_program(PROGRAM:"r0-off"); 66 run_program(PROGRAM:"r1-off"); 67 run_program(PROGRAM:"r2-off"); 68 run_program(PROGRAM:"r3-off"); 69 run_program(PROGRAM:"r4-off"); 70 } else if (r <= 20) { 71 run_program(PROGRAM:"r0-on"); 72 run_program(PROGRAM:"r1-off"); 73 run_program(PROGRAM:"r2-off"); 74 run_program(PROGRAM:"r3-off"); 75 run_program(PROGRAM:"r4-off"); 76 } else if (r <= 40) { 77 run_program(PROGRAM:"r0-on"); 78 run_program(PROGRAM:"r1-on"); 79 run_program(PROGRAM:"r2-off"); 80 run_program(PROGRAM:"r3-off"); 81 run_program(PROGRAM:"r4-off"); 82 } else if (r <= 60) { 83 run_program(PROGRAM:"r0-on"); 84 run_program(PROGRAM:"r1-on"); 85 run_program(PROGRAM:"r2-on"); 86 run_program(PROGRAM:"r3-off"); 87 run_program(PROGRAM:"r4-off"); 88 } else if (r <= 80) { 89 run_program(PROGRAM:"r0-on"); 90 run_program(PROGRAM:"r1-on"); 91 run_program(PROGRAM:"r2-on"); 92 run_program(PROGRAM:"r3-on"); 93 run_program(PROGRAM:"r4-off"); 94 } else { 95 run_program(PROGRAM:"r0-on"); 96 run_program(PROGRAM:"r1-on"); 97 run_program(PROGRAM:"r2-on"); 98 run_program(PROGRAM:"r3-on"); 99 run_program(PROGRAM:"r4-on"); 100 } 101 } 102 } 103 } 104 parts { 105 part { name: "base-sh"; 106 description { state: "default" 0.0; 107 rel1.to: "base"; 108 rel1.offset: 0 -1; 109 rel2.to: "base"; 110 rel2.offset: -1 -2; 111 image.normal: "inset_round_shadow.png"; 112 } 113 } 114 part { name: "base-hi"; 115 description { state: "default" 0.0; 116 rel1.to: "base"; 117 rel1.offset: 0 1; 118 rel2.to: "base"; 119 rel2.offset: -1 0; 120 image.normal: "inset_round_hilight.png"; 121 } 122 } 123 part { name: "base"; 124 description { state: "default" 0.0; 125 rel1.relative: (25/380) (25/380); 126 rel2.relative: (365/380) (365/380); 127 aspect: 1.0 1.0; aspect_preference: BOTH; 128 image.normal: "speaker.png"; 129 } 130 } 131 part { name: "state"; type: RECT; 132 description { state: "default" 0.0; 133 rel1.relative: -1.0 -1.0; 134 rel2.relative: 2.0 2.0; 135 color: 51 153 255 255; 136 } 137 description { state: "mute" 0.0; 138 inherit: "default" 0.0; 139 color: 255 153 51 255; 140 } 141 } 142#define LED(_NAME, _BASE, _X, _SIZE) \ 143 part { name: _NAME; type: RECT; \ 144 clip_to: "state"; \ 145 description { state: "default" 0.0; \ 146 fixed: 1 1; \ 147 rel1.relative: ((_BASE+(_X*8))/160) (80/160); \ 148 rel2.relative: ((_BASE+(_X*8))/160) (80/160); \ 149 min: 1 1; \ 150 max: 1 1; \ 151 visible: 0; \ 152 color: 255 255 255 0; \ 153 } \ 154 description { state: "active" 0.0; \ 155 inherit: "default" 0.0; \ 156 visible: 1; \ 157 color: 255 255 255 255; \ 158 } \ 159 } \ 160 part { name: _NAME"g"; \ 161 clip_to: "state"; \ 162 description { state: "default" 0.0; \ 163 rel1.to: _NAME; \ 164 rel2.to: _NAME; \ 165 image.normal: "led_dot_white.png"; \ 166 min: _SIZE _SIZE; \ 167 visible: 0; \ 168 color: 255 255 255 0; \ 169 } \ 170 description { state: "active" 0.0; \ 171 inherit: "default" 0.0; \ 172 visible: 1; \ 173 color: 255 255 255 255; \ 174 } \ 175 } 176 LED("r0", 99, 0, 1) 177 LED("r1", 99, 1, 9) 178 LED("r2", 99, 2, 15) 179 LED("r3", 99, 3, 21) 180 LED("r4", 99, 4, 27) 181 LED("l0", 61, 0, 1) 182 LED("l1", 61, -1, 9) 183 LED("l2", 61, -2, 15) 184 LED("l3", 61, -3, 21) 185 LED("l4", 61, -4, 27) 186#undef LED 187 part { name: "over"; type: RECT; 188 description { state: "default" 0.0; 189 color: 255 255 255 0; 190 } 191 } 192 } 193 programs { 194 program { name: "mute"; 195 action: STATE_SET "mute" 0.0; 196 transition: LINEAR 0.3; 197 target: "state"; 198 } 199 program { name: "unmute"; 200 action: STATE_SET "default" 0.0; 201 transition: LINEAR 0.2; 202 target: "state"; 203 } 204#define PROG(_NAME) \ 205 program { name: _NAME"-on"; \ 206 action: STATE_SET "active" 0.0; \ 207 target: _NAME; \ 208 target: _NAME"g"; \ 209 } \ 210 program { name: _NAME"-off"; \ 211 action: STATE_SET "default" 0.0; \ 212 target: _NAME; \ 213 target: _NAME"g"; \ 214 } 215 PROG("r0") 216 PROG("r1") 217 PROG("r2") 218 PROG("r3") 219 PROG("r4") 220 PROG("l0") 221 PROG("l1") 222 PROG("l2") 223 PROG("l3") 224 PROG("l4") 225#undef PROG 226 } 227} 228 229 230