diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/plugins/bounce.c | 270 |
1 files changed, 31 insertions, 239 deletions
diff --git a/apps/plugins/bounce.c b/apps/plugins/bounce.c index 21bec53fa7..ece8440e53 100644 --- a/apps/plugins/bounce.c +++ b/apps/plugins/bounce.c | |||
@@ -21,7 +21,7 @@ | |||
21 | #include "plugin.h" | 21 | #include "plugin.h" |
22 | #include "time.h" | 22 | #include "time.h" |
23 | #include "lib/fixedpoint.h" | 23 | #include "lib/fixedpoint.h" |
24 | 24 | #include "lib/pluginlib_actions.h" | |
25 | 25 | ||
26 | 26 | ||
27 | #define SS_TITLE "Bouncer" | 27 | #define SS_TITLE "Bouncer" |
@@ -30,238 +30,30 @@ | |||
30 | #define XSPEED 3 | 30 | #define XSPEED 3 |
31 | #define YADD -4 | 31 | #define YADD -4 |
32 | 32 | ||
33 | /* variable button definitions */ | 33 | /* this set the context to use with PLA */ |
34 | #if CONFIG_KEYPAD == RECORDER_PAD | 34 | static const struct button_mapping *plugin_contexts[] = { pla_main_ctx }; |
35 | #define BOUNCE_LEFT BUTTON_LEFT | 35 | |
36 | #define BOUNCE_RIGHT BUTTON_RIGHT | 36 | /* We set button maping with PLA */ |
37 | #define BOUNCE_UP BUTTON_UP | 37 | #define BOUNCE_UP PLA_UP |
38 | #define BOUNCE_DOWN BUTTON_DOWN | 38 | #define BOUNCE_UP_REPEAT PLA_UP_REPEAT |
39 | #define BOUNCE_QUIT (BUTTON_OFF | BUTTON_REL) | 39 | #define BOUNCE_DOWN PLA_DOWN |
40 | #define BOUNCE_MODE (BUTTON_ON | BUTTON_REL) | 40 | #define BOUNCE_DOWN_REPEAT PLA_DOWN_REPEAT |
41 | |||
42 | #elif CONFIG_KEYPAD == ARCHOS_AV300_PAD | ||
43 | #define BOUNCE_LEFT BUTTON_LEFT | ||
44 | #define BOUNCE_RIGHT BUTTON_RIGHT | ||
45 | #define BOUNCE_UP BUTTON_UP | ||
46 | #define BOUNCE_DOWN BUTTON_DOWN | ||
47 | #define BOUNCE_QUIT (BUTTON_OFF | BUTTON_REL) | ||
48 | #define BOUNCE_MODE (BUTTON_ON | BUTTON_REL) | ||
49 | |||
50 | #elif CONFIG_KEYPAD == ONDIO_PAD | ||
51 | #define BOUNCE_LEFT BUTTON_LEFT | ||
52 | #define BOUNCE_RIGHT BUTTON_RIGHT | ||
53 | #define BOUNCE_UP BUTTON_UP | ||
54 | #define BOUNCE_DOWN BUTTON_DOWN | ||
55 | #define BOUNCE_QUIT (BUTTON_OFF | BUTTON_REL) | ||
56 | #define BOUNCE_MODE (BUTTON_MENU | BUTTON_REL) | ||
57 | |||
58 | #elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ | ||
59 | (CONFIG_KEYPAD == IRIVER_H300_PAD) | ||
60 | #define BOUNCE_LEFT BUTTON_LEFT | ||
61 | #define BOUNCE_RIGHT BUTTON_RIGHT | ||
62 | #define BOUNCE_UP BUTTON_UP | ||
63 | #define BOUNCE_DOWN BUTTON_DOWN | ||
64 | #define BOUNCE_QUIT (BUTTON_OFF | BUTTON_REL) | ||
65 | #define BOUNCE_MODE (BUTTON_SELECT | BUTTON_REL) | ||
66 | |||
67 | #define BOUNCE_RC_QUIT (BUTTON_RC_STOP | BUTTON_REL) | ||
68 | |||
69 | #elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ | ||
70 | (CONFIG_KEYPAD == IPOD_3G_PAD) || \ | ||
71 | (CONFIG_KEYPAD == IPOD_1G2G_PAD) | ||
72 | #define BOUNCE_LEFT BUTTON_LEFT | ||
73 | #define BOUNCE_RIGHT BUTTON_RIGHT | ||
74 | #define BOUNCE_UP BUTTON_SCROLL_BACK | ||
75 | #define BOUNCE_DOWN BUTTON_SCROLL_FWD | ||
76 | #define BOUNCE_QUIT (BUTTON_MENU | BUTTON_REL) | ||
77 | #define BOUNCE_MODE (BUTTON_SELECT | BUTTON_REL) | ||
78 | |||
79 | #elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) | ||
80 | #define BOUNCE_LEFT BUTTON_LEFT | ||
81 | #define BOUNCE_RIGHT BUTTON_RIGHT | ||
82 | #define BOUNCE_UP BUTTON_UP | ||
83 | #define BOUNCE_DOWN BUTTON_DOWN | ||
84 | #define BOUNCE_QUIT BUTTON_POWER | ||
85 | #define BOUNCE_MODE BUTTON_PLAY | ||
86 | |||
87 | #elif (CONFIG_KEYPAD == GIGABEAT_PAD) | ||
88 | #define BOUNCE_LEFT BUTTON_LEFT | ||
89 | #define BOUNCE_RIGHT BUTTON_RIGHT | ||
90 | #define BOUNCE_UP BUTTON_UP | ||
91 | #define BOUNCE_DOWN BUTTON_DOWN | ||
92 | #define BOUNCE_QUIT BUTTON_POWER | ||
93 | #define BOUNCE_MODE BUTTON_A | ||
94 | |||
95 | #elif (CONFIG_KEYPAD == SANSA_E200_PAD) | ||
96 | #define BOUNCE_LEFT BUTTON_LEFT | ||
97 | #define BOUNCE_RIGHT BUTTON_RIGHT | ||
98 | #define BOUNCE_UP BUTTON_SCROLL_BACK | ||
99 | #define BOUNCE_DOWN BUTTON_SCROLL_FWD | ||
100 | #define BOUNCE_QUIT BUTTON_POWER | ||
101 | #define BOUNCE_MODE BUTTON_SELECT | ||
102 | |||
103 | #elif (CONFIG_KEYPAD == SANSA_FUZE_PAD) | ||
104 | #define BOUNCE_LEFT BUTTON_LEFT | ||
105 | #define BOUNCE_RIGHT BUTTON_RIGHT | ||
106 | #define BOUNCE_UP BUTTON_SCROLL_BACK | ||
107 | #define BOUNCE_DOWN BUTTON_SCROLL_FWD | ||
108 | #define BOUNCE_QUIT (BUTTON_HOME|BUTTON_REPEAT) | ||
109 | #define BOUNCE_MODE BUTTON_SELECT | ||
110 | |||
111 | #elif CONFIG_KEYPAD == SANSA_C200_PAD || \ | ||
112 | CONFIG_KEYPAD == SANSA_CLIP_PAD || \ | ||
113 | CONFIG_KEYPAD == SANSA_M200_PAD || \ | ||
114 | CONFIG_KEYPAD == SANSA_CONNECT_PAD | ||
115 | #define BOUNCE_LEFT BUTTON_LEFT | ||
116 | #define BOUNCE_RIGHT BUTTON_RIGHT | ||
117 | #define BOUNCE_UP BUTTON_UP | ||
118 | #define BOUNCE_DOWN BUTTON_DOWN | ||
119 | #define BOUNCE_QUIT BUTTON_POWER | ||
120 | #define BOUNCE_MODE BUTTON_SELECT | ||
121 | |||
122 | #elif (CONFIG_KEYPAD == IRIVER_H10_PAD) | ||
123 | #define BOUNCE_LEFT BUTTON_LEFT | ||
124 | #define BOUNCE_RIGHT BUTTON_RIGHT | ||
125 | #define BOUNCE_UP BUTTON_SCROLL_UP | ||
126 | #define BOUNCE_DOWN BUTTON_SCROLL_DOWN | ||
127 | #define BOUNCE_QUIT BUTTON_POWER | ||
128 | #define BOUNCE_MODE BUTTON_PLAY | ||
129 | |||
130 | #elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) \ | ||
131 | || (CONFIG_KEYPAD == SAMSUNG_YPR0_PAD) | ||
132 | #define BOUNCE_LEFT BUTTON_LEFT | ||
133 | #define BOUNCE_RIGHT BUTTON_RIGHT | ||
134 | #define BOUNCE_UP BUTTON_UP | ||
135 | #define BOUNCE_DOWN BUTTON_DOWN | ||
136 | #define BOUNCE_QUIT BUTTON_BACK | ||
137 | #define BOUNCE_MODE BUTTON_MENU | ||
138 | |||
139 | #elif (CONFIG_KEYPAD == MROBE100_PAD) | ||
140 | #define BOUNCE_LEFT BUTTON_LEFT | ||
141 | #define BOUNCE_RIGHT BUTTON_RIGHT | ||
142 | #define BOUNCE_UP BUTTON_UP | ||
143 | #define BOUNCE_DOWN BUTTON_DOWN | ||
144 | #define BOUNCE_QUIT BUTTON_POWER | ||
145 | #define BOUNCE_MODE BUTTON_DISPLAY | ||
146 | |||
147 | #elif CONFIG_KEYPAD == IAUDIO_M3_PAD | ||
148 | #define BOUNCE_LEFT BUTTON_RC_REW | ||
149 | #define BOUNCE_RIGHT BUTTON_RC_FF | ||
150 | #define BOUNCE_UP BUTTON_RC_VOL_UP | ||
151 | #define BOUNCE_DOWN BUTTON_RC_VOL_DOWN | ||
152 | #define BOUNCE_QUIT BUTTON_RC_REC | ||
153 | #define BOUNCE_MODE BUTTON_RC_MODE | ||
154 | |||
155 | #elif (CONFIG_KEYPAD == COWON_D2_PAD) | ||
156 | #define BOUNCE_QUIT BUTTON_POWER | ||
157 | #define BOUNCE_MODE BUTTON_MENU | ||
158 | |||
159 | #elif CONFIG_KEYPAD == CREATIVEZVM_PAD | ||
160 | #define BOUNCE_LEFT BUTTON_LEFT | ||
161 | #define BOUNCE_RIGHT BUTTON_RIGHT | ||
162 | #define BOUNCE_UP BUTTON_UP | ||
163 | #define BOUNCE_DOWN BUTTON_DOWN | ||
164 | #define BOUNCE_QUIT BUTTON_BACK | ||
165 | #define BOUNCE_MODE BUTTON_MENU | ||
166 | |||
167 | #elif CONFIG_KEYPAD == PHILIPS_HDD1630_PAD | ||
168 | #define BOUNCE_LEFT BUTTON_LEFT | ||
169 | #define BOUNCE_RIGHT BUTTON_RIGHT | ||
170 | #define BOUNCE_UP BUTTON_UP | ||
171 | #define BOUNCE_DOWN BUTTON_DOWN | ||
172 | #define BOUNCE_QUIT BUTTON_POWER | ||
173 | #define BOUNCE_MODE BUTTON_MENU | ||
174 | |||
175 | #elif CONFIG_KEYPAD == PHILIPS_HDD6330_PAD | ||
176 | #define BOUNCE_LEFT BUTTON_PREV | ||
177 | #define BOUNCE_RIGHT BUTTON_NEXT | ||
178 | #define BOUNCE_UP BUTTON_UP | ||
179 | #define BOUNCE_DOWN BUTTON_DOWN | ||
180 | #define BOUNCE_QUIT BUTTON_POWER | ||
181 | #define BOUNCE_MODE BUTTON_MENU | ||
182 | |||
183 | #elif CONFIG_KEYPAD == PHILIPS_SA9200_PAD | ||
184 | #define BOUNCE_LEFT BUTTON_PREV | ||
185 | #define BOUNCE_RIGHT BUTTON_NEXT | ||
186 | #define BOUNCE_UP BUTTON_UP | ||
187 | #define BOUNCE_DOWN BUTTON_DOWN | ||
188 | #define BOUNCE_QUIT BUTTON_POWER | ||
189 | #define BOUNCE_MODE BUTTON_MENU | ||
190 | |||
191 | #elif (CONFIG_KEYPAD == ONDAVX747_PAD) | ||
192 | #define BOUNCE_QUIT BUTTON_POWER | ||
193 | #define BOUNCE_MODE BUTTON_MENU | ||
194 | |||
195 | #elif (CONFIG_KEYPAD == ONDAVX777_PAD) | ||
196 | #define BOUNCE_QUIT BUTTON_POWER | ||
197 | |||
198 | #elif CONFIG_KEYPAD == MROBE500_PAD | ||
199 | #define BOUNCE_QUIT BUTTON_POWER | ||
200 | |||
201 | #elif CONFIG_KEYPAD == SAMSUNG_YH_PAD | ||
202 | #define BOUNCE_LEFT BUTTON_LEFT | ||
203 | #define BOUNCE_RIGHT BUTTON_RIGHT | ||
204 | #define BOUNCE_UP BUTTON_UP | ||
205 | #define BOUNCE_DOWN BUTTON_DOWN | ||
206 | #define BOUNCE_QUIT BUTTON_FFWD | ||
207 | #define BOUNCE_MODE BUTTON_PLAY | ||
208 | |||
209 | #elif CONFIG_KEYPAD == PBELL_VIBE500_PAD | ||
210 | #define BOUNCE_LEFT BUTTON_PREV | ||
211 | #define BOUNCE_RIGHT BUTTON_NEXT | ||
212 | #define BOUNCE_UP BUTTON_UP | ||
213 | #define BOUNCE_DOWN BUTTON_DOWN | ||
214 | #define BOUNCE_QUIT BUTTON_REC | ||
215 | #define BOUNCE_MODE BUTTON_MENU | ||
216 | |||
217 | #elif CONFIG_KEYPAD == MPIO_HD200_PAD | ||
218 | #define BOUNCE_LEFT BUTTON_VOL_DOWN | ||
219 | #define BOUNCE_RIGHT BUTTON_VOL_UP | ||
220 | #define BOUNCE_UP BUTTON_REW | ||
221 | #define BOUNCE_DOWN BUTTON_FF | ||
222 | #define BOUNCE_QUIT (BUTTON_REC | BUTTON_PLAY) | ||
223 | #define BOUNCE_MODE BUTTON_FUNC | ||
224 | |||
225 | #elif CONFIG_KEYPAD == MPIO_HD300_PAD | ||
226 | #define BOUNCE_LEFT BUTTON_REW | ||
227 | #define BOUNCE_RIGHT BUTTON_FF | ||
228 | #define BOUNCE_UP BUTTON_UP | ||
229 | #define BOUNCE_DOWN BUTTON_DOWN | ||
230 | #define BOUNCE_QUIT (BUTTON_MENU | BUTTON_REPEAT) | ||
231 | #define BOUNCE_MODE BUTTON_PLAY | ||
232 | |||
233 | #elif CONFIG_KEYPAD == SANSA_FUZEPLUS_PAD | ||
234 | #define BOUNCE_LEFT BUTTON_LEFT | ||
235 | #define BOUNCE_RIGHT BUTTON_RIGHT | ||
236 | #define BOUNCE_UP BUTTON_UP | ||
237 | #define BOUNCE_DOWN BUTTON_DOWN | ||
238 | #define BOUNCE_QUIT BUTTON_POWER | ||
239 | #define BOUNCE_MODE BUTTON_PLAYPAUSE | ||
240 | 41 | ||
42 | #ifdef HAVE_SCROLLWHEEL | ||
43 | #define BOUNCE_LEFT PLA_SCROLL_BACK | ||
44 | #define BOUNCE_LEFT_REPEAT PLA_SCROLL_BACK_REPEAT | ||
45 | #define BOUNCE_RIGHT PLA_SCROLL_FWD | ||
46 | #define BOUNCE_RIGHT_REPEAT PLA_SCROLL_FWD_REPEAT | ||
241 | #else | 47 | #else |
242 | #error No keymap defined! | 48 | #define BOUNCE_LEFT PLA_LEFT |
49 | #define BOUNCE_LEFT_REPEAT PLA_LEFT_REPEAT | ||
50 | #define BOUNCE_RIGHT PLA_RIGHT | ||
51 | #define BOUNCE_RIGHT_REPEAT PLA_RIGHT_REPEAT | ||
243 | #endif | 52 | #endif |
244 | 53 | ||
245 | #ifdef HAVE_TOUCHSCREEN | 54 | #define BOUNCE_QUIT PLA_EXIT |
246 | #ifndef BOUNCE_LEFT | 55 | #define BOUNCE_QUIT2 PLA_CANCEL |
247 | #define BOUNCE_LEFT BUTTON_MIDLEFT | 56 | #define BOUNCE_MODE PLA_SELECT |
248 | #endif | ||
249 | #ifndef BOUNCE_RIGHT | ||
250 | #define BOUNCE_RIGHT BUTTON_MIDRIGHT | ||
251 | #endif | ||
252 | #ifndef BOUNCE_UP | ||
253 | #define BOUNCE_UP BUTTON_TOPMIDDLE | ||
254 | #endif | ||
255 | #ifndef BOUNCE_DOWN | ||
256 | #define BOUNCE_DOWN BUTTON_BOTTOMMIDDLE | ||
257 | #endif | ||
258 | #ifndef BOUNCE_QUIT | ||
259 | #define BOUNCE_QUIT BUTTON_TOPLEFT | ||
260 | #endif | ||
261 | #ifndef BOUNCE_MODE | ||
262 | #define BOUNCE_MODE BUTTON_CENTER | ||
263 | #endif | ||
264 | #endif | ||
265 | 57 | ||
266 | #define LETTER_WIDTH 11 | 58 | #define LETTER_WIDTH 11 |
267 | #define LETTER_HEIGHT 16 | 59 | #define LETTER_HEIGHT 16 |
@@ -542,13 +334,12 @@ static int scrollit(void) | |||
542 | rb->lcd_clear_display(); | 334 | rb->lcd_clear_display(); |
543 | while(1) | 335 | while(1) |
544 | { | 336 | { |
545 | b = rb->button_get_w_tmo(HZ/10); | 337 | b = pluginlib_getaction(HZ/10, plugin_contexts, |
338 | ARRAYLEN(plugin_contexts)); | ||
546 | switch(b) | 339 | switch(b) |
547 | { | 340 | { |
548 | #ifdef BOUNCE_RC_QUIT | ||
549 | case BOUNCE_RC_QUIT : | ||
550 | #endif | ||
551 | case BOUNCE_QUIT : | 341 | case BOUNCE_QUIT : |
342 | case BOUNCE_QUIT2 : | ||
552 | return 0; | 343 | return 0; |
553 | case BOUNCE_MODE : | 344 | case BOUNCE_MODE : |
554 | return 1; | 345 | return 1; |
@@ -612,8 +403,9 @@ static int loopit(void) | |||
612 | rb->lcd_clear_display(); | 403 | rb->lcd_clear_display(); |
613 | while(1) | 404 | while(1) |
614 | { | 405 | { |
615 | b = rb->button_get_w_tmo(HZ/10); | 406 | b = pluginlib_getaction(HZ/10, plugin_contexts, |
616 | if ( b == BOUNCE_QUIT ) | 407 | ARRAYLEN(plugin_contexts)); |
408 | if (( b == BOUNCE_QUIT ) || ( b == BOUNCE_QUIT2 )) | ||
617 | return 0; | 409 | return 0; |
618 | 410 | ||
619 | if ( b == BOUNCE_MODE ) | 411 | if ( b == BOUNCE_MODE ) |
@@ -635,20 +427,20 @@ static int loopit(void) | |||
635 | if(timeout) { | 427 | if(timeout) { |
636 | switch(b) { | 428 | switch(b) { |
637 | case BOUNCE_LEFT: | 429 | case BOUNCE_LEFT: |
638 | case BOUNCE_LEFT|BUTTON_REPEAT: | 430 | case BOUNCE_LEFT_REPEAT: |
639 | values[show].num--; | 431 | values[show].num--; |
640 | break; | 432 | break; |
641 | case BOUNCE_RIGHT: | 433 | case BOUNCE_RIGHT: |
642 | case BOUNCE_RIGHT|BUTTON_REPEAT: | 434 | case BOUNCE_RIGHT_REPEAT: |
643 | values[show].num++; | 435 | values[show].num++; |
644 | break; | 436 | break; |
645 | case BOUNCE_UP: | 437 | case BOUNCE_UP: |
646 | case BOUNCE_UP|BUTTON_REPEAT: | 438 | case BOUNCE_UP_REPEAT: |
647 | if(++show == NUM_LAST) | 439 | if(++show == NUM_LAST) |
648 | show=0; | 440 | show=0; |
649 | break; | 441 | break; |
650 | case BOUNCE_DOWN: | 442 | case BOUNCE_DOWN: |
651 | case BOUNCE_DOWN|BUTTON_REPEAT: | 443 | case BOUNCE_DOWN_REPEAT: |
652 | if(--show < 0) | 444 | if(--show < 0) |
653 | show=NUM_LAST-1; | 445 | show=NUM_LAST-1; |
654 | break; | 446 | break; |