summaryrefslogtreecommitdiff
path: root/apps/plugins
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2007-05-22 06:31:44 +0000
committerMichael Sevakis <jethead71@rockbox.org>2007-05-22 06:31:44 +0000
commit8970055ec107a2387eedbb373889d0f540745121 (patch)
tree369d5eebe74858a6d767c1d039d8213097caa884 /apps/plugins
parent1e8f0e7c6428cc8f11005b077e8c9e1551ca5f69 (diff)
downloadrockbox-8970055ec107a2387eedbb373889d0f540745121.tar.gz
rockbox-8970055ec107a2387eedbb373889d0f540745121.zip
Hopefully take care of the scrollwheel difficulties in plugins on e200.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13460 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins')
-rw-r--r--apps/plugins/bounce.c4
-rw-r--r--apps/plugins/brickmania.c15
-rw-r--r--apps/plugins/demystify.c18
-rw-r--r--apps/plugins/doom/i_video.c32
-rw-r--r--apps/plugins/jpeg.c28
-rw-r--r--apps/plugins/oscilloscope.c4
-rw-r--r--apps/plugins/rockboy/sys_rockbox.c35
-rw-r--r--apps/plugins/spacerocks.c8
-rw-r--r--apps/plugins/vu_meter.c6
9 files changed, 118 insertions, 32 deletions
diff --git a/apps/plugins/bounce.c b/apps/plugins/bounce.c
index 1f890fa8a1..2b79e36ddd 100644
--- a/apps/plugins/bounce.c
+++ b/apps/plugins/bounce.c
@@ -457,16 +457,20 @@ static int loopit(void)
457 if(timeout) { 457 if(timeout) {
458 switch(b) { 458 switch(b) {
459 case BUTTON_LEFT: 459 case BUTTON_LEFT:
460 case BUTTON_LEFT|BUTTON_REPEAT:
460 values[show].num--; 461 values[show].num--;
461 break; 462 break;
462 case BUTTON_RIGHT: 463 case BUTTON_RIGHT:
464 case BUTTON_RIGHT|BUTTON_REPEAT:
463 values[show].num++; 465 values[show].num++;
464 break; 466 break;
465 case BOUNCE_UP: 467 case BOUNCE_UP:
468 case BOUNCE_UP|BUTTON_REPEAT:
466 if(++show == NUM_LAST) 469 if(++show == NUM_LAST)
467 show=0; 470 show=0;
468 break; 471 break;
469 case BOUNCE_DOWN: 472 case BOUNCE_DOWN:
473 case BOUNCE_DOWN|BUTTON_REPEAT:
470 if(--show < 0) 474 if(--show < 0)
471 show=NUM_LAST-1; 475 show=NUM_LAST-1;
472 break; 476 break;
diff --git a/apps/plugins/brickmania.c b/apps/plugins/brickmania.c
index 2557738984..93b759d48c 100644
--- a/apps/plugins/brickmania.c
+++ b/apps/plugins/brickmania.c
@@ -117,14 +117,15 @@ PLUGIN_HEADER
117 117
118#elif CONFIG_KEYPAD == SANSA_E200_PAD 118#elif CONFIG_KEYPAD == SANSA_E200_PAD
119 119
120#define QUIT BUTTON_POWER 120#define QUIT BUTTON_POWER
121#define LEFT BUTTON_LEFT 121#define LEFT BUTTON_LEFT
122#define RIGHT BUTTON_RIGHT 122#define RIGHT BUTTON_RIGHT
123#define SELECT BUTTON_SELECT 123#define SELECT BUTTON_SELECT
124#define UP BUTTON_SCROLL_UP 124#define UP BUTTON_SCROLL_UP
125#define DOWN BUTTON_SCROLL_DOWN 125#define DOWN BUTTON_SCROLL_DOWN
126#define SCROLL_FWD(x) (0) 126
127#define SCROLL_BACK(x) (0) 127#define SCROLL_FWD(x) ((x) & BUTTON_SCROLL_DOWN)
128#define SCROLL_BACK(x) ((x) & BUTTON_SCROLL_UP)
128 129
129#elif CONFIG_KEYPAD == IRIVER_H10_PAD /* grayscale at the moment */ 130#elif CONFIG_KEYPAD == IRIVER_H10_PAD /* grayscale at the moment */
130 131
diff --git a/apps/plugins/demystify.c b/apps/plugins/demystify.c
index 3fe5966eaa..c5162c6fa2 100644
--- a/apps/plugins/demystify.c
+++ b/apps/plugins/demystify.c
@@ -34,11 +34,13 @@ PLUGIN_HEADER
34#define DEMYSTIFY_INCREASE_SPEED BUTTON_SCROLL_FWD 34#define DEMYSTIFY_INCREASE_SPEED BUTTON_SCROLL_FWD
35#define DEMYSTIFY_DECREASE_SPEED BUTTON_SCROLL_BACK 35#define DEMYSTIFY_DECREASE_SPEED BUTTON_SCROLL_BACK
36#elif (CONFIG_KEYPAD == SANSA_E200_PAD) 36#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
37#define DEMYSTIFY_QUIT BUTTON_POWER 37#define DEMYSTIFY_QUIT BUTTON_POWER
38#define DEMYSTIFY_ADD_POLYGON BUTTON_RIGHT 38#define DEMYSTIFY_ADD_POLYGON BUTTON_RIGHT
39#define DEMYSTIFY_REMOVE_POLYGON BUTTON_LEFT 39#define DEMYSTIFY_REMOVE_POLYGON BUTTON_LEFT
40#define DEMYSTIFY_INCREASE_SPEED BUTTON_SCROLL_UP 40#define DEMYSTIFY_INCREASE_SPEED BUTTON_SCROLL_DOWN
41#define DEMYSTIFY_DECREASE_SPEED BUTTON_SCROLL_DOWN 41#define DEMYSTIFY_INCREASE_SPEED_REP (BUTTON_SCROLL_DOWN|BUTTON_REPEAT)
42#define DEMYSTIFY_DECREASE_SPEED BUTTON_SCROLL_UP
43#define DEMYSTIFY_DECREASE_SPEED_REP (BUTTON_SCROLL_UP|BUTTON_REPEAT)
42#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 44#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
43#define DEMYSTIFY_QUIT BUTTON_POWER 45#define DEMYSTIFY_QUIT BUTTON_POWER
44#define DEMYSTIFY_ADD_POLYGON BUTTON_RIGHT 46#define DEMYSTIFY_ADD_POLYGON BUTTON_RIGHT
@@ -417,6 +419,9 @@ int plugin_main(void)
417#ifdef DEMYSTIFY_RC_INCREASE_SPEED 419#ifdef DEMYSTIFY_RC_INCREASE_SPEED
418 case DEMYSTIFY_RC_INCREASE_SPEED: 420 case DEMYSTIFY_RC_INCREASE_SPEED:
419#endif 421#endif
422#ifdef DEMYSTIFY_INCREASE_SPEED_REP
423 case DEMYSTIFY_INCREASE_SPEED_REP:
424#endif
420 case DEMYSTIFY_INCREASE_SPEED: 425 case DEMYSTIFY_INCREASE_SPEED:
421 if(sleep_time>=0) 426 if(sleep_time>=0)
422 --sleep_time; 427 --sleep_time;
@@ -425,6 +430,9 @@ int plugin_main(void)
425#ifdef DEMYSTIFY_RC_DECREASE_SPEED 430#ifdef DEMYSTIFY_RC_DECREASE_SPEED
426 case DEMYSTIFY_RC_DECREASE_SPEED: 431 case DEMYSTIFY_RC_DECREASE_SPEED:
427#endif 432#endif
433#ifdef DEMYSTIFY_DECREASE_SPEED_REP
434 case DEMYSTIFY_DECREASE_SPEED_REP:
435#endif
428 case DEMYSTIFY_DECREASE_SPEED: 436 case DEMYSTIFY_DECREASE_SPEED:
429 ++sleep_time; 437 ++sleep_time;
430 break; 438 break;
diff --git a/apps/plugins/doom/i_video.c b/apps/plugins/doom/i_video.c
index c3ac30f272..6bac32b8ea 100644
--- a/apps/plugins/doom/i_video.c
+++ b/apps/plugins/doom/i_video.c
@@ -179,6 +179,9 @@ void I_ShutdownGraphics(void)
179#define DOOMBUTTON_ENTER BUTTON_REW 179#define DOOMBUTTON_ENTER BUTTON_REW
180#define DOOMBUTTON_WEAPON BUTTON_FF 180#define DOOMBUTTON_WEAPON BUTTON_FF
181#elif CONFIG_KEYPAD == SANSA_E200_PAD 181#elif CONFIG_KEYPAD == SANSA_E200_PAD
182#define DOOMBUTTON_SCROLLWHEEL
183#define DOOMBUTTON_SCROLLWHEEL_CC BUTTON_SCROLL_UP
184#define DOOMBUTTON_SCROLLWHEEL_CW BUTTON_SCROLL_DOWN
182#define DOOMBUTTON_UP BUTTON_UP 185#define DOOMBUTTON_UP BUTTON_UP
183#define DOOMBUTTON_DOWN BUTTON_DOWN 186#define DOOMBUTTON_DOWN BUTTON_DOWN
184#define DOOMBUTTON_LEFT BUTTON_LEFT 187#define DOOMBUTTON_LEFT BUTTON_LEFT
@@ -186,8 +189,8 @@ void I_ShutdownGraphics(void)
186#define DOOMBUTTON_SHOOT BUTTON_SELECT 189#define DOOMBUTTON_SHOOT BUTTON_SELECT
187#define DOOMBUTTON_OPEN BUTTON_REC 190#define DOOMBUTTON_OPEN BUTTON_REC
188#define DOOMBUTTON_ESC BUTTON_POWER 191#define DOOMBUTTON_ESC BUTTON_POWER
189#define DOOMBUTTON_ENTER BUTTON_SCROLL_UP 192#define DOOMBUTTON_ENTER BUTTON_SELECT
190#define DOOMBUTTON_WEAPON BUTTON_SCROLL_DOWN 193#define DOOMBUTTON_WEAPON DOOMBUTTON_SCROLLWHEEL_CW
191#elif CONFIG_KEYPAD == GIGABEAT_PAD 194#elif CONFIG_KEYPAD == GIGABEAT_PAD
192#define DOOMBUTTON_UP BUTTON_UP 195#define DOOMBUTTON_UP BUTTON_UP
193#define DOOMBUTTON_DOWN BUTTON_DOWN 196#define DOOMBUTTON_DOWN BUTTON_DOWN
@@ -211,6 +214,27 @@ void I_ShutdownGraphics(void)
211#define DOOMBUTTON_WEAPON BUTTON_ON 214#define DOOMBUTTON_WEAPON BUTTON_ON
212#endif 215#endif
213 216
217#ifdef DOOMBUTTON_SCROLLWHEEL
218/* Scrollwheel events are posted directly and not polled by the button
219 driver - synthesize polling */
220static inline unsigned int read_scroll_wheel(void)
221{
222 unsigned int buttons = BUTTON_NONE;
223 unsigned int btn;
224
225 /* Empty out the button queue and see if any scrollwheel events were
226 posted */
227 do
228 {
229 btn = rb->button_get_w_tmo(0);
230 buttons |= btn;
231 }
232 while (btn != BUTTON_NONE);
233
234 return buttons & (DOOMBUTTON_SCROLLWHEEL_CC | DOOMBUTTON_SCROLLWHEEL_CW);
235}
236#endif
237
214inline void getkey() 238inline void getkey()
215{ 239{
216 event_t event; 240 event_t event;
@@ -247,6 +271,10 @@ inline void getkey()
247#endif 271#endif
248 272
249 newbuttonstate = rb->button_status(); 273 newbuttonstate = rb->button_status();
274#ifdef DOOMBUTTON_SCROLLWHEEL
275 newbuttonstate |= read_scroll_wheel();
276#endif
277
250 if(newbuttonstate==oldbuttonstate) /* Don't continue, nothing left to do */ 278 if(newbuttonstate==oldbuttonstate) /* Don't continue, nothing left to do */
251 return; 279 return;
252 released = ~newbuttonstate & oldbuttonstate; 280 released = ~newbuttonstate & oldbuttonstate;
diff --git a/apps/plugins/jpeg.c b/apps/plugins/jpeg.c
index 255b82faae..ff6df6d4e3 100644
--- a/apps/plugins/jpeg.c
+++ b/apps/plugins/jpeg.c
@@ -126,16 +126,18 @@ PLUGIN_HEADER
126#define JPEG_PREVIOUS (BUTTON_A | BUTTON_LEFT) 126#define JPEG_PREVIOUS (BUTTON_A | BUTTON_LEFT)
127 127
128#elif CONFIG_KEYPAD == SANSA_E200_PAD 128#elif CONFIG_KEYPAD == SANSA_E200_PAD
129#define JPEG_ZOOM_PRE BUTTON_SELECT 129#define JPEG_ZOOM_PRE BUTTON_SELECT
130#define JPEG_ZOOM_IN (BUTTON_SELECT | BUTTON_REL) 130#define JPEG_ZOOM_IN (BUTTON_SELECT | BUTTON_REL)
131#define JPEG_ZOOM_OUT (BUTTON_SELECT | BUTTON_REPEAT) 131#define JPEG_ZOOM_OUT (BUTTON_SELECT | BUTTON_REPEAT)
132#define JPEG_UP BUTTON_UP 132#define JPEG_UP BUTTON_UP
133#define JPEG_DOWN BUTTON_DOWN 133#define JPEG_DOWN BUTTON_DOWN
134#define JPEG_LEFT BUTTON_LEFT 134#define JPEG_LEFT BUTTON_LEFT
135#define JPEG_RIGHT BUTTON_RIGHT 135#define JPEG_RIGHT BUTTON_RIGHT
136#define JPEG_MENU BUTTON_REC 136#define JPEG_MENU BUTTON_REC
137#define JPEG_NEXT BUTTON_SCROLL_DOWN 137#define JPEG_NEXT BUTTON_SCROLL_DOWN
138#define JPEG_PREVIOUS BUTTON_SCROLL_UP 138#define JPEG_NEXT_REPEAT (BUTTON_SCROLL_DOWN|BUTTON_REPEAT)
139#define JPEG_PREVIOUS BUTTON_SCROLL_UP
140#define JPEG_PREVIOUS_REPEAT (BUTTON_SCROLL_UP|BUTTON_REPEAT)
139 141
140#elif CONFIG_KEYPAD == IRIVER_H10_PAD 142#elif CONFIG_KEYPAD == IRIVER_H10_PAD
141#define JPEG_ZOOM_PRE BUTTON_PLAY 143#define JPEG_ZOOM_PRE BUTTON_PLAY
@@ -2715,11 +2717,17 @@ int scroll_bmp(struct t_disp* pdisp)
2715 if (entries > 0) 2717 if (entries > 0)
2716 return change_filename(DIR_NEXT); 2718 return change_filename(DIR_NEXT);
2717 break; 2719 break;
2720#ifdef JPEG_NEXT_REPEAT
2721 case JPEG_NEXT_REPEAT:
2722#endif
2718 case JPEG_NEXT: 2723 case JPEG_NEXT:
2719 if (entries > 0) 2724 if (entries > 0)
2720 return change_filename(DIR_NEXT); 2725 return change_filename(DIR_NEXT);
2721 break; 2726 break;
2722 2727
2728#ifdef JPEG_PREVIOUS_REPEAT
2729 case JPEG_PREVIOUS_REPEAT:
2730#endif
2723 case JPEG_PREVIOUS: 2731 case JPEG_PREVIOUS:
2724 if (entries > 0) 2732 if (entries > 0)
2725 return change_filename(DIR_PREV); 2733 return change_filename(DIR_PREV);
diff --git a/apps/plugins/oscilloscope.c b/apps/plugins/oscilloscope.c
index 57067ab3e3..67d258d7e6 100644
--- a/apps/plugins/oscilloscope.c
+++ b/apps/plugins/oscilloscope.c
@@ -104,8 +104,8 @@ PLUGIN_HEADER
104#define OSCILLOSCOPE_PAUSE BUTTON_REC 104#define OSCILLOSCOPE_PAUSE BUTTON_REC
105#define OSCILLOSCOPE_SPEED_UP BUTTON_RIGHT 105#define OSCILLOSCOPE_SPEED_UP BUTTON_RIGHT
106#define OSCILLOSCOPE_SPEED_DOWN BUTTON_LEFT 106#define OSCILLOSCOPE_SPEED_DOWN BUTTON_LEFT
107#define OSCILLOSCOPE_VOL_UP BUTTON_SCROLL_UP 107#define OSCILLOSCOPE_VOL_UP BUTTON_SCROLL_DOWN
108#define OSCILLOSCOPE_VOL_DOWN BUTTON_SCROLL_DOWN 108#define OSCILLOSCOPE_VOL_DOWN BUTTON_SCROLL_UP
109 109
110#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD 110#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD
111#define OSCILLOSCOPE_QUIT BUTTON_POWER 111#define OSCILLOSCOPE_QUIT BUTTON_POWER
diff --git a/apps/plugins/rockboy/sys_rockbox.c b/apps/plugins/rockboy/sys_rockbox.c
index 783accd01b..6cbbe523f7 100644
--- a/apps/plugins/rockboy/sys_rockbox.c
+++ b/apps/plugins/rockboy/sys_rockbox.c
@@ -38,6 +38,16 @@
38#define ROCKBOY_PAD_UP BUTTON_SCROLL_UP 38#define ROCKBOY_PAD_UP BUTTON_SCROLL_UP
39#define ROCKBOY_PAD_DOWN BUTTON_SCROLL_DOWN 39#define ROCKBOY_PAD_DOWN BUTTON_SCROLL_DOWN
40 40
41#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
42
43#define ROCKBOY_SCROLLWHEEL
44#define ROCKBOY_SCROLLWHEEL_CC BUTTON_SCROLL_UP
45#define ROCKBOY_SCROLLWHEEL_CW BUTTON_SCROLL_DOWN
46#define ROCKBOY_PAD_LEFT BUTTON_LEFT
47#define ROCKBOY_PAD_RIGHT BUTTON_RIGHT
48#define ROCKBOY_PAD_UP BUTTON_UP
49#define ROCKBOY_PAD_DOWN BUTTON_DOWN
50
41#else 51#else
42 52
43#define ROCKBOY_PAD_LEFT BUTTON_LEFT 53#define ROCKBOY_PAD_LEFT BUTTON_LEFT
@@ -69,10 +79,35 @@ static int wheelmap[8] = {
69 79
70int released, pressed; 80int released, pressed;
71 81
82
83#ifdef ROCKBOY_SCROLLWHEEL
84/* Scrollwheel events are posted directly and not polled by the button
85 driver - synthesize polling */
86static inline unsigned int read_scroll_wheel(void)
87{
88 unsigned int buttons = BUTTON_NONE;
89 unsigned int btn;
90
91 /* Empty out the button queue and see if any scrollwheel events were
92 posted */
93 do
94 {
95 btn = rb->button_get_w_tmo(0);
96 buttons |= btn;
97 }
98 while (btn != BUTTON_NONE);
99
100 return buttons & (ROCKBOY_SCROLLWHEEL_CC | ROCKBOY_SCROLLWHEEL_CW);
101}
102#endif
103
72void ev_poll(void) 104void ev_poll(void)
73{ 105{
74 event_t ev; 106 event_t ev;
75 newbuttonstate = rb->button_status(); 107 newbuttonstate = rb->button_status();
108#ifdef ROCKBOY_SCROLLWHEEL
109 newbuttonstate |= read_scroll_wheel();
110#endif
76 released = ~newbuttonstate & oldbuttonstate; 111 released = ~newbuttonstate & oldbuttonstate;
77 pressed = newbuttonstate & ~oldbuttonstate; 112 pressed = newbuttonstate & ~oldbuttonstate;
78 oldbuttonstate = newbuttonstate; 113 oldbuttonstate = newbuttonstate;
diff --git a/apps/plugins/spacerocks.c b/apps/plugins/spacerocks.c
index 85445a0dd4..fd8637cd5f 100644
--- a/apps/plugins/spacerocks.c
+++ b/apps/plugins/spacerocks.c
@@ -125,10 +125,10 @@ static struct plugin_api* rb; /* global api struct pointer */
125#define AST_THRUST_REP (BUTTON_UP | BUTTON_REPEAT) 125#define AST_THRUST_REP (BUTTON_UP | BUTTON_REPEAT)
126#define AST_THRUST BUTTON_UP 126#define AST_THRUST BUTTON_UP
127#define AST_HYPERSPACE BUTTON_DOWN 127#define AST_HYPERSPACE BUTTON_DOWN
128#define AST_LEFT BUTTON_LEFT 128#define AST_LEFT BUTTON_SCROLL_UP
129#define AST_LEFT_REP (BUTTON_LEFT | BUTTON_REPEAT) 129#define AST_LEFT_REP (BUTTON_SCROLL_UP | BUTTON_REPEAT)
130#define AST_RIGHT BUTTON_RIGHT 130#define AST_RIGHT BUTTON_SCROLL_DOWN
131#define AST_RIGHT_REP (BUTTON_RIGHT | BUTTON_REPEAT) 131#define AST_RIGHT_REP (BUTTON_SCROLL_DOWN | BUTTON_REPEAT)
132#define AST_FIRE BUTTON_SELECT 132#define AST_FIRE BUTTON_SELECT
133#define AST_FIRE_REP (BUTTON_SELECT | BUTTON_REPEAT) 133#define AST_FIRE_REP (BUTTON_SELECT | BUTTON_REPEAT)
134 134
diff --git a/apps/plugins/vu_meter.c b/apps/plugins/vu_meter.c
index 275cea326e..ae378b07de 100644
--- a/apps/plugins/vu_meter.c
+++ b/apps/plugins/vu_meter.c
@@ -102,8 +102,8 @@ PLUGIN_HEADER
102#define VUMETER_MENU_EXIT2 BUTTON_POWER 102#define VUMETER_MENU_EXIT2 BUTTON_POWER
103#define VUMETER_LEFT BUTTON_LEFT 103#define VUMETER_LEFT BUTTON_LEFT
104#define VUMETER_RIGHT BUTTON_RIGHT 104#define VUMETER_RIGHT BUTTON_RIGHT
105#define VUMETER_UP BUTTON_UP 105#define VUMETER_UP BUTTON_SCROLL_DOWN
106#define VUMETER_DOWN BUTTON_DOWN 106#define VUMETER_DOWN BUTTON_SCROLL_UP
107 107
108#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD 108#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD
109#define VUMETER_QUIT BUTTON_POWER 109#define VUMETER_QUIT BUTTON_POWER
@@ -480,10 +480,12 @@ void change_settings(void)
480 break; 480 break;
481 481
482 case VUMETER_UP: 482 case VUMETER_UP:
483 case VUMETER_UP|BUTTON_REPEAT:
483 selected_setting == 3 ? selected_setting=0 : selected_setting++; 484 selected_setting == 3 ? selected_setting=0 : selected_setting++;
484 break; 485 break;
485 486
486 case VUMETER_DOWN: 487 case VUMETER_DOWN:
488 case VUMETER_DOWN|BUTTON_REPEAT:
487 selected_setting == 0 ? selected_setting=3 : selected_setting--; 489 selected_setting == 0 ? selected_setting=3 : selected_setting--;
488 } 490 }
489 } 491 }