summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/plugins/bounce.c270
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 34static 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;