diff options
-rw-r--r-- | apps/plugins/plasma.c | 173 | ||||
-rw-r--r-- | manual/plugins/plasma.tex | 41 |
2 files changed, 38 insertions, 176 deletions
diff --git a/apps/plugins/plasma.c b/apps/plugins/plasma.c index adf7ab532a..637d948f3d 100644 --- a/apps/plugins/plasma.c +++ b/apps/plugins/plasma.c | |||
@@ -26,6 +26,7 @@ | |||
26 | 26 | ||
27 | #include "plugin.h" | 27 | #include "plugin.h" |
28 | #include "lib/helper.h" | 28 | #include "lib/helper.h" |
29 | #include "lib/pluginlib_actions.h" | ||
29 | 30 | ||
30 | #ifdef HAVE_LCD_BITMAP | 31 | #ifdef HAVE_LCD_BITMAP |
31 | 32 | ||
@@ -57,143 +58,12 @@ static int plasma_frequency; | |||
57 | static bool boosted = false; | 58 | static bool boosted = false; |
58 | #endif | 59 | #endif |
59 | 60 | ||
60 | /* Key assignement, all bitmapped models */ | 61 | static const struct button_mapping* plugin_contexts[]= { |
61 | #if (CONFIG_KEYPAD == RECORDER_PAD) || (CONFIG_KEYPAD == ONDIO_PAD) | 62 | pla_main_ctx, |
62 | #define PLASMA_QUIT BUTTON_OFF | 63 | #if defined(HAVE_REMOTE_LCD) |
63 | #define PLASMA_INCREASE_FREQUENCY BUTTON_UP | 64 | pla_remote_ctx, |
64 | #define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN | ||
65 | |||
66 | #elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD) | ||
67 | #define PLASMA_QUIT BUTTON_OFF | ||
68 | #define PLASMA_INCREASE_FREQUENCY BUTTON_UP | ||
69 | #define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN | ||
70 | #define PLASMA_REGEN_COLORS BUTTON_SELECT | ||
71 | #define PLASMA_RC_QUIT BUTTON_RC_STOP | ||
72 | |||
73 | #elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \ | ||
74 | (CONFIG_KEYPAD == IPOD_1G2G_PAD) | ||
75 | #define PLASMA_QUIT BUTTON_MENU | ||
76 | #define PLASMA_INCREASE_FREQUENCY BUTTON_SCROLL_FWD | ||
77 | #define PLASMA_DECREASE_FREQUENCY BUTTON_SCROLL_BACK | ||
78 | #define PLASMA_REGEN_COLORS BUTTON_SELECT | ||
79 | |||
80 | #elif (CONFIG_KEYPAD == GIGABEAT_PAD) | ||
81 | #define PLASMA_QUIT BUTTON_POWER | ||
82 | #define PLASMA_INCREASE_FREQUENCY BUTTON_UP | ||
83 | #define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN | ||
84 | #define PLASMA_REGEN_COLORS BUTTON_SELECT | ||
85 | |||
86 | #elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ | ||
87 | (CONFIG_KEYPAD == SANSA_C200_PAD) || \ | ||
88 | (CONFIG_KEYPAD == SANSA_CLIP_PAD) || \ | ||
89 | (CONFIG_KEYPAD == SANSA_M200_PAD) | ||
90 | #define PLASMA_QUIT BUTTON_POWER | ||
91 | #define PLASMA_INCREASE_FREQUENCY BUTTON_UP | ||
92 | #define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN | ||
93 | #define PLASMA_REGEN_COLORS BUTTON_SELECT | ||
94 | |||
95 | #elif (CONFIG_KEYPAD == SANSA_FUZE_PAD) | ||
96 | #define PLASMA_QUIT (BUTTON_HOME|BUTTON_REPEAT) | ||
97 | #define PLASMA_INCREASE_FREQUENCY BUTTON_UP | ||
98 | #define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN | ||
99 | #define PLASMA_REGEN_COLORS BUTTON_SELECT | ||
100 | |||
101 | #elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) | ||
102 | #define PLASMA_QUIT BUTTON_POWER | ||
103 | #define PLASMA_INCREASE_FREQUENCY BUTTON_UP | ||
104 | #define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN | ||
105 | #define PLASMA_REGEN_COLORS BUTTON_PLAY | ||
106 | |||
107 | #elif (CONFIG_KEYPAD == IRIVER_H10_PAD) | ||
108 | #define PLASMA_QUIT BUTTON_POWER | ||
109 | #define PLASMA_INCREASE_FREQUENCY BUTTON_SCROLL_UP | ||
110 | #define PLASMA_DECREASE_FREQUENCY BUTTON_SCROLL_DOWN | ||
111 | #define PLASMA_REGEN_COLORS BUTTON_PLAY | ||
112 | |||
113 | #elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) | ||
114 | #define PLASMA_QUIT BUTTON_BACK | ||
115 | #define PLASMA_INCREASE_FREQUENCY BUTTON_UP | ||
116 | #define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN | ||
117 | #define PLASMA_REGEN_COLORS BUTTON_SELECT | ||
118 | |||
119 | #elif (CONFIG_KEYPAD == MROBE100_PAD) | ||
120 | #define PLASMA_QUIT BUTTON_POWER | ||
121 | #define PLASMA_INCREASE_FREQUENCY BUTTON_UP | ||
122 | #define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN | ||
123 | |||
124 | #elif (CONFIG_KEYPAD == IAUDIO_M3_PAD) | ||
125 | #define PLASMA_QUIT BUTTON_RC_REC | ||
126 | #define PLASMA_INCREASE_FREQUENCY BUTTON_RC_VOL_UP | ||
127 | #define PLASMA_DECREASE_FREQUENCY BUTTON_RC_VOL_DOWN | ||
128 | #define PLASMA_RC_QUIT BUTTON_REC | ||
129 | |||
130 | #elif (CONFIG_KEYPAD == COWON_D2_PAD) | ||
131 | #define PLASMA_QUIT BUTTON_POWER | ||
132 | |||
133 | #elif (CONFIG_KEYPAD == IAUDIO67_PAD) | ||
134 | #define PLASMA_QUIT BUTTON_POWER | ||
135 | #define PLASMA_INCREASE_FREQUENCY BUTTON_RIGHT | ||
136 | #define PLASMA_DECREASE_FREQUENCY BUTTON_LEFT | ||
137 | #define PLASMA_REGEN_COLORS BUTTON_PLAY | ||
138 | #define PLASMA_RC_QUIT BUTTON_STOP | ||
139 | |||
140 | #elif CONFIG_KEYPAD == CREATIVEZVM_PAD | ||
141 | #define PLASMA_QUIT BUTTON_BACK | ||
142 | #define PLASMA_INCREASE_FREQUENCY BUTTON_UP | ||
143 | #define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN | ||
144 | #define PLASMA_REGEN_COLORS BUTTON_SELECT | ||
145 | |||
146 | #elif CONFIG_KEYPAD == PHILIPS_HDD1630_PAD | ||
147 | #define PLASMA_QUIT BUTTON_POWER | ||
148 | #define PLASMA_INCREASE_FREQUENCY BUTTON_UP | ||
149 | #define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN | ||
150 | #define PLASMA_REGEN_COLORS BUTTON_SELECT | ||
151 | |||
152 | #elif CONFIG_KEYPAD == PHILIPS_SA9200_PAD | ||
153 | #define PLASMA_QUIT BUTTON_POWER | ||
154 | #define PLASMA_INCREASE_FREQUENCY BUTTON_UP | ||
155 | #define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN | ||
156 | #define PLASMA_REGEN_COLORS BUTTON_PLAY | ||
157 | |||
158 | #elif (CONFIG_KEYPAD == ONDAVX747_PAD) || (CONFIG_KEYPAD == ONDAVX777_PAD) | ||
159 | #define PLASMA_QUIT BUTTON_POWER | ||
160 | |||
161 | #elif CONFIG_KEYPAD == SAMSUNG_YH_PAD | ||
162 | #define PLASMA_QUIT BUTTON_PLAY | ||
163 | #define PLASMA_INCREASE_FREQUENCY BUTTON_UP | ||
164 | #define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN | ||
165 | #define PLASMA_REGEN_COLORS BUTTON_LEFT | ||
166 | |||
167 | #elif CONFIG_KEYPAD == PBELL_VIBE500_PAD | ||
168 | #define PLASMA_QUIT BUTTON_REC | ||
169 | #define PLASMA_INCREASE_FREQUENCY BUTTON_UP | ||
170 | #define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN | ||
171 | #define PLASMA_REGEN_COLORS BUTTON_PLAY | ||
172 | |||
173 | #elif CONFIG_KEYPAD == MPIO_HD200_PAD | ||
174 | #define PLASMA_QUIT (BUTTON_REC|BUTTON_PLAY) | ||
175 | #define PLASMA_INCREASE_FREQUENCY BUTTON_VOL_DOWN | ||
176 | #define PLASMA_DECREASE_FREQUENCY BUTTON_VOL_UP | ||
177 | #define PLASMA_REGEN_COLORS BUTTON_PLAY | ||
178 | |||
179 | #endif | ||
180 | |||
181 | #ifdef HAVE_TOUCHSCREEN | ||
182 | #ifndef PLASMA_QUIT | ||
183 | #define PLASMA_QUIT BUTTON_TOPLEFT | ||
184 | #endif | ||
185 | #ifndef PLASMA_INCREASE_FREQUENCY | ||
186 | #define PLASMA_INCREASE_FREQUENCY BUTTON_MIDRIGHT | ||
187 | #endif | ||
188 | #ifndef PLASMA_DECREASE_FREQUENCY | ||
189 | #define PLASMA_DECREASE_FREQUENCY BUTTON_MIDLEFT | ||
190 | #endif | 65 | #endif |
191 | #ifdef HAVE_LCD_COLOR | 66 | }; |
192 | #ifndef PLASMA_REGEN_COLORS | ||
193 | #define PLASMA_REGEN_COLORS BUTTON_CENTER | ||
194 | #endif | ||
195 | #endif /* HAVE_LCD_COLOR */ | ||
196 | #endif /* HAVE_TOUCHSCREEN */ | ||
197 | 67 | ||
198 | #define WAV_AMP 90 | 68 | #define WAV_AMP 90 |
199 | 69 | ||
@@ -284,7 +154,7 @@ void cleanup(void *parameter) | |||
284 | int main(void) | 154 | int main(void) |
285 | { | 155 | { |
286 | plasma_frequency = 1; | 156 | plasma_frequency = 1; |
287 | int button, delay, x, y; | 157 | int action, delay, x, y; |
288 | unsigned char p1,p2,p3,p4,t1,t2,t3,t4, z,z0; | 158 | unsigned char p1,p2,p3,p4,t1,t2,t3,t4, z,z0; |
289 | long last_tick = *rb->current_tick; | 159 | long last_tick = *rb->current_tick; |
290 | #ifdef HAVE_ADJUSTABLE_CPU_FREQ | 160 | #ifdef HAVE_ADJUSTABLE_CPU_FREQ |
@@ -383,25 +253,34 @@ int main(void) | |||
383 | rb->cpu_boost(boosted = false); | 253 | rb->cpu_boost(boosted = false); |
384 | } | 254 | } |
385 | #endif | 255 | #endif |
386 | button = rb->button_get_w_tmo(MAX(0, delay)); | 256 | action = pluginlib_getaction(0, plugin_contexts, |
257 | ARRAYLEN(plugin_contexts)); | ||
387 | last_tick = *rb->current_tick; | 258 | last_tick = *rb->current_tick; |
388 | 259 | ||
389 | switch(button) | 260 | switch(action) |
390 | { | 261 | { |
391 | #ifdef PLASMA_RC_QUIT | 262 | case PLA_EXIT: |
392 | case PLASMA_RC_QUIT: | 263 | case PLA_CANCEL: |
393 | #endif | ||
394 | case(PLASMA_QUIT): | ||
395 | cleanup(NULL); | 264 | cleanup(NULL); |
396 | return PLUGIN_OK; | 265 | return PLUGIN_OK; |
397 | break; | 266 | break; |
398 | 267 | ||
399 | case (PLASMA_INCREASE_FREQUENCY): | 268 | #ifdef HAVE_SCROLLWHEEL |
269 | case PLA_SCROLL_FWD: | ||
270 | case PLA_SCROLL_FWD_REPEAT: | ||
271 | #endif | ||
272 | case PLA_UP: | ||
273 | case PLA_UP_REPEAT: | ||
400 | ++plasma_frequency; | 274 | ++plasma_frequency; |
401 | wave_table_generate(); | 275 | wave_table_generate(); |
402 | break; | 276 | break; |
403 | 277 | ||
404 | case (PLASMA_DECREASE_FREQUENCY): | 278 | #ifdef HAVE_SCROLLWHEEL |
279 | case PLA_SCROLL_BACK: | ||
280 | case PLA_SCROLL_BACK_REPEAT: | ||
281 | #endif | ||
282 | case PLA_DOWN: | ||
283 | case PLA_DOWN_REPEAT: | ||
405 | if(plasma_frequency>1) | 284 | if(plasma_frequency>1) |
406 | { | 285 | { |
407 | --plasma_frequency; | 286 | --plasma_frequency; |
@@ -409,7 +288,7 @@ int main(void) | |||
409 | } | 288 | } |
410 | break; | 289 | break; |
411 | #ifdef HAVE_LCD_COLOR | 290 | #ifdef HAVE_LCD_COLOR |
412 | case (PLASMA_REGEN_COLORS): | 291 | case PLA_SELECT: |
413 | redfactor=rb->rand()%4; | 292 | redfactor=rb->rand()%4; |
414 | greenfactor=rb->rand()%4; | 293 | greenfactor=rb->rand()%4; |
415 | bluefactor=rb->rand()%4; | 294 | bluefactor=rb->rand()%4; |
@@ -420,7 +299,7 @@ int main(void) | |||
420 | #endif | 299 | #endif |
421 | 300 | ||
422 | default: | 301 | default: |
423 | if (rb->default_event_handler_ex(button, cleanup, NULL) | 302 | if (rb->default_event_handler_ex(action, cleanup, NULL) |
424 | == SYS_USB_CONNECTED) | 303 | == SYS_USB_CONNECTED) |
425 | return PLUGIN_USB_CONNECTED; | 304 | return PLUGIN_USB_CONNECTED; |
426 | break; | 305 | break; |
diff --git a/manual/plugins/plasma.tex b/manual/plugins/plasma.tex index 7862d06ba7..8e5dd44a61 100644 --- a/manual/plugins/plasma.tex +++ b/manual/plugins/plasma.tex | |||
@@ -4,33 +4,16 @@ | |||
4 | Plasma is a demo displaying a 80's style retro plasma effect. | 4 | Plasma is a demo displaying a 80's style retro plasma effect. |
5 | 5 | ||
6 | \begin{btnmap} | 6 | \begin{btnmap} |
7 | \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonScrollFwd\ / \ButtonScrollBack} | 7 | \PluginUp{} / \PluginDown |
8 | \opt{IRIVER_H10_PAD}{\ButtonScrollUp\ / \ButtonScrollDown} | 8 | \opt{scrollwheel}{/ \PluginScrollFwd{} / \PluginScrollBack} |
9 | \opt{COWON_D2_PAD}{\TouchMidLeft{} / \TouchMidRight} | 9 | \opt{HAVEREMOTEKEYMAP}{& \PluginRCUp{} / \PluginRCDown} |
10 | \nopt{IPOD_4G_PAD,IPOD_3G_PAD,IRIVER_H10_PAD,COWON_D2_PAD} | 10 | & Increase / decrease Frequency\\ |
11 | {\ButtonUp\ / \ButtonDown} | 11 | |
12 | \opt{HAVEREMOTEKEYMAP}{& } | 12 | \opt{lcd_bitmap}{% |
13 | & Adjust frequency\\ | 13 | \PluginSelect |
14 | \opt{lcd_color}{ | 14 | & Change Color\\ |
15 | \opt{IRIVER_H300_PAD,IPOD_4G_PAD,IPOD_3G_PAD,SANSA_E200_PAD% | 15 | }% |
16 | ,SANSA_FUZE_PAD,SANSA_C200_PAD,GIGABEAT_PAD,GIGABEAT_S_PAD% | 16 | |
17 | ,MROBE100_PAD} | 17 | \PluginCancel{} / \PluginExit |
18 | {\ButtonSelect} | 18 | & Exit\\ |
19 | \opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,PBELL_VIBE500_PAD}{\ButtonPlay} | ||
20 | \opt{COWON_D2_PAD}{\TouchCenter} | ||
21 | \opt{HAVEREMOTEKEYMAP}{& } | ||
22 | & Change colours\\ | ||
23 | } | ||
24 | \opt{RECORDER_PAD,ONDIO_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff} | ||
25 | \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu} | ||
26 | \opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD% | ||
27 | ,GIGABEAT_PAD,MROBE100_PAD,COWON_D2_PAD} | ||
28 | {\ButtonPower} | ||
29 | \opt{SANSA_FUZE_PAD}{Long \ButtonHome} | ||
30 | \opt{GIGABEAT_S_PAD}{\ButtonBack} | ||
31 | \opt{PBELL_VIBE500_PAD}{\ButtonRec} | ||
32 | \opt{HAVEREMOTEKEYMAP}{& | ||
33 | \opt{IRIVER_RC_H100_PAD}{\ButtonRCStop} | ||
34 | } | ||
35 | & Quit\\ | ||
36 | \end{btnmap} | 19 | \end{btnmap} |