summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2010-06-22 22:03:17 +0000
committerThomas Martitz <kugel@rockbox.org>2010-06-22 22:03:17 +0000
commitc5f24828c8277df87f56c467f745720a738e07f3 (patch)
treef8e264fb97554249ab767f37257affbcd07de5f6
parent1396c335ac4d83701c9ed699156e0e78015c174b (diff)
downloadrockbox-c5f24828c8277df87f56c467f745720a738e07f3.tar.gz
rockbox-c5f24828c8277df87f56c467f745720a738e07f3.zip
Convert plasma to use pluginlib actions.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27067 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/plugins/plasma.c173
-rw-r--r--manual/plugins/plasma.tex41
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;
57static bool boosted = false; 58static bool boosted = false;
58#endif 59#endif
59 60
60/* Key assignement, all bitmapped models */ 61static 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)
284int main(void) 154int 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 @@
4Plasma is a demo displaying a 80's style retro plasma effect. 4Plasma 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}