summaryrefslogtreecommitdiff
path: root/apps/plugins/flipit.c
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2008-03-22 10:24:28 +0000
committerJens Arnold <amiconn@rockbox.org>2008-03-22 10:24:28 +0000
commit29361abf744ed116cec04ca03e754ddd2794b76c (patch)
treed336dd19570faed037aef9064ce3c490c50ed6df /apps/plugins/flipit.c
parentbca8edd856cee3a3b469ef9fe2770a191b590fde (diff)
downloadrockbox-29361abf744ed116cec04ca03e754ddd2794b76c.tar.gz
rockbox-29361abf744ed116cec04ca03e754ddd2794b76c.zip
Adapt most single-file plugins to the M3 keypad and screen. It's still preliminary, as many plugins now can't be left without the remote. The plugins need to be converted to use the action API (but not pluginlib actions). Plugins are not enabled yet. * Simplify the bitmap handling in the source of some plugins.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16737 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/flipit.c')
-rw-r--r--apps/plugins/flipit.c52
1 files changed, 49 insertions, 3 deletions
diff --git a/apps/plugins/flipit.c b/apps/plugins/flipit.c
index 4292ef8e4f..831cc857ec 100644
--- a/apps/plugins/flipit.c
+++ b/apps/plugins/flipit.c
@@ -22,6 +22,8 @@ PLUGIN_HEADER
22 22
23/* variable button definitions */ 23/* variable button definitions */
24#if CONFIG_KEYPAD == RECORDER_PAD 24#if CONFIG_KEYPAD == RECORDER_PAD
25#define FLIPIT_LEFT BUTTON_LEFT
26#define FLIPIT_RIGHT BUTTON_RIGHT
25#define FLIPIT_UP BUTTON_UP 27#define FLIPIT_UP BUTTON_UP
26#define FLIPIT_DOWN BUTTON_DOWN 28#define FLIPIT_DOWN BUTTON_DOWN
27#define FLIPIT_QUIT BUTTON_OFF 29#define FLIPIT_QUIT BUTTON_OFF
@@ -31,6 +33,8 @@ PLUGIN_HEADER
31#define FLIPIT_TOGGLE BUTTON_PLAY 33#define FLIPIT_TOGGLE BUTTON_PLAY
32 34
33#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD 35#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
36#define FLIPIT_LEFT BUTTON_LEFT
37#define FLIPIT_RIGHT BUTTON_RIGHT
34#define FLIPIT_UP BUTTON_UP 38#define FLIPIT_UP BUTTON_UP
35#define FLIPIT_DOWN BUTTON_DOWN 39#define FLIPIT_DOWN BUTTON_DOWN
36#define FLIPIT_QUIT BUTTON_OFF 40#define FLIPIT_QUIT BUTTON_OFF
@@ -40,6 +44,8 @@ PLUGIN_HEADER
40#define FLIPIT_TOGGLE BUTTON_SELECT 44#define FLIPIT_TOGGLE BUTTON_SELECT
41 45
42#elif CONFIG_KEYPAD == PLAYER_PAD 46#elif CONFIG_KEYPAD == PLAYER_PAD
47#define FLIPIT_LEFT BUTTON_LEFT
48#define FLIPIT_RIGHT BUTTON_RIGHT
43#define FLIPIT_UP_PRE BUTTON_ON 49#define FLIPIT_UP_PRE BUTTON_ON
44#define FLIPIT_UP (BUTTON_ON | BUTTON_REL) 50#define FLIPIT_UP (BUTTON_ON | BUTTON_REL)
45#define FLIPIT_DOWN BUTTON_MENU 51#define FLIPIT_DOWN BUTTON_MENU
@@ -50,6 +56,8 @@ PLUGIN_HEADER
50#define FLIPIT_TOGGLE BUTTON_PLAY 56#define FLIPIT_TOGGLE BUTTON_PLAY
51 57
52#elif CONFIG_KEYPAD == ONDIO_PAD 58#elif CONFIG_KEYPAD == ONDIO_PAD
59#define FLIPIT_LEFT BUTTON_LEFT
60#define FLIPIT_RIGHT BUTTON_RIGHT
53#define FLIPIT_UP BUTTON_UP 61#define FLIPIT_UP BUTTON_UP
54#define FLIPIT_DOWN BUTTON_DOWN 62#define FLIPIT_DOWN BUTTON_DOWN
55#define FLIPIT_QUIT BUTTON_OFF 63#define FLIPIT_QUIT BUTTON_OFF
@@ -61,6 +69,8 @@ PLUGIN_HEADER
61 69
62#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ 70#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
63 (CONFIG_KEYPAD == IRIVER_H300_PAD) 71 (CONFIG_KEYPAD == IRIVER_H300_PAD)
72#define FLIPIT_LEFT BUTTON_LEFT
73#define FLIPIT_RIGHT BUTTON_RIGHT
64#define FLIPIT_UP BUTTON_UP 74#define FLIPIT_UP BUTTON_UP
65#define FLIPIT_DOWN BUTTON_DOWN 75#define FLIPIT_DOWN BUTTON_DOWN
66#define FLIPIT_QUIT BUTTON_OFF 76#define FLIPIT_QUIT BUTTON_OFF
@@ -76,6 +86,8 @@ PLUGIN_HEADER
76 (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 86 (CONFIG_KEYPAD == IPOD_3G_PAD) || \
77 (CONFIG_KEYPAD == IPOD_1G2G_PAD) 87 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
78 88
89#define FLIPIT_LEFT BUTTON_LEFT
90#define FLIPIT_RIGHT BUTTON_RIGHT
79#define FLIPIT_UP BUTTON_MENU 91#define FLIPIT_UP BUTTON_MENU
80#define FLIPIT_DOWN BUTTON_PLAY 92#define FLIPIT_DOWN BUTTON_PLAY
81#define FLIPIT_QUIT (BUTTON_SELECT | BUTTON_MENU) 93#define FLIPIT_QUIT (BUTTON_SELECT | BUTTON_MENU)
@@ -87,6 +99,8 @@ PLUGIN_HEADER
87 99
88#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD 100#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD
89 101
102#define FLIPIT_LEFT BUTTON_LEFT
103#define FLIPIT_RIGHT BUTTON_RIGHT
90#define FLIPIT_UP BUTTON_UP 104#define FLIPIT_UP BUTTON_UP
91#define FLIPIT_DOWN BUTTON_DOWN 105#define FLIPIT_DOWN BUTTON_DOWN
92#define FLIPIT_QUIT BUTTON_POWER 106#define FLIPIT_QUIT BUTTON_POWER
@@ -99,6 +113,8 @@ PLUGIN_HEADER
99 113
100#elif CONFIG_KEYPAD == GIGABEAT_PAD 114#elif CONFIG_KEYPAD == GIGABEAT_PAD
101 115
116#define FLIPIT_LEFT BUTTON_LEFT
117#define FLIPIT_RIGHT BUTTON_RIGHT
102#define FLIPIT_UP BUTTON_UP 118#define FLIPIT_UP BUTTON_UP
103#define FLIPIT_DOWN BUTTON_DOWN 119#define FLIPIT_DOWN BUTTON_DOWN
104#define FLIPIT_QUIT BUTTON_POWER 120#define FLIPIT_QUIT BUTTON_POWER
@@ -110,6 +126,8 @@ PLUGIN_HEADER
110#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ 126#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
111 (CONFIG_KEYPAD == SANSA_C200_PAD) 127 (CONFIG_KEYPAD == SANSA_C200_PAD)
112 128
129#define FLIPIT_LEFT BUTTON_LEFT
130#define FLIPIT_RIGHT BUTTON_RIGHT
113#define FLIPIT_UP BUTTON_UP 131#define FLIPIT_UP BUTTON_UP
114#define FLIPIT_DOWN BUTTON_DOWN 132#define FLIPIT_DOWN BUTTON_DOWN
115#define FLIPIT_QUIT BUTTON_POWER 133#define FLIPIT_QUIT BUTTON_POWER
@@ -120,6 +138,8 @@ PLUGIN_HEADER
120 138
121#elif CONFIG_KEYPAD == IRIVER_H10_PAD 139#elif CONFIG_KEYPAD == IRIVER_H10_PAD
122 140
141#define FLIPIT_LEFT BUTTON_LEFT
142#define FLIPIT_RIGHT BUTTON_RIGHT
123#define FLIPIT_UP BUTTON_SCROLL_UP 143#define FLIPIT_UP BUTTON_SCROLL_UP
124#define FLIPIT_DOWN BUTTON_SCROLL_DOWN 144#define FLIPIT_DOWN BUTTON_SCROLL_DOWN
125#define FLIPIT_QUIT BUTTON_POWER 145#define FLIPIT_QUIT BUTTON_POWER
@@ -131,6 +151,8 @@ PLUGIN_HEADER
131 151
132#elif CONFIG_KEYPAD == GIGABEAT_S_PAD 152#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
133 153
154#define FLIPIT_LEFT BUTTON_LEFT
155#define FLIPIT_RIGHT BUTTON_RIGHT
134#define FLIPIT_UP BUTTON_UP 156#define FLIPIT_UP BUTTON_UP
135#define FLIPIT_DOWN BUTTON_DOWN 157#define FLIPIT_DOWN BUTTON_DOWN
136#define FLIPIT_QUIT BUTTON_BACK 158#define FLIPIT_QUIT BUTTON_BACK
@@ -141,6 +163,8 @@ PLUGIN_HEADER
141 163
142#elif CONFIG_KEYPAD == MROBE100_PAD 164#elif CONFIG_KEYPAD == MROBE100_PAD
143 165
166#define FLIPIT_LEFT BUTTON_LEFT
167#define FLIPIT_RIGHT BUTTON_RIGHT
144#define FLIPIT_UP BUTTON_UP 168#define FLIPIT_UP BUTTON_UP
145#define FLIPIT_DOWN BUTTON_DOWN 169#define FLIPIT_DOWN BUTTON_DOWN
146#define FLIPIT_QUIT BUTTON_POWER 170#define FLIPIT_QUIT BUTTON_POWER
@@ -149,6 +173,22 @@ PLUGIN_HEADER
149#define FLIPIT_STEP_BY_STEP BUTTON_DISPLAY 173#define FLIPIT_STEP_BY_STEP BUTTON_DISPLAY
150#define FLIPIT_TOGGLE BUTTON_SELECT 174#define FLIPIT_TOGGLE BUTTON_SELECT
151 175
176#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
177
178#define FLIPIT_LEFT BUTTON_RC_REW
179#define FLIPIT_RIGHT BUTTON_RC_FF
180#define FLIPIT_UP BUTTON_RC_VOL_UP
181#define FLIPIT_DOWN BUTTON_RC_VOL_DOWN
182#define FLIPIT_QUIT BUTTON_RC_REC
183#define FLIPIT_SHUFFLE BUTTON_RC_MODE
184#define FLIPIT_SOLVE_PRE BUTTON_RC_MENU
185#define FLIPIT_SOLVE (BUTTON_RC_MENU|BUTTON_REPEAT)
186#define FLIPIT_STEP_PRE BUTTON_RC_MENU
187#define FLIPIT_STEP_BY_STEP (BUTTON_RC_MENU|BUTTON_REL)
188#define FLIPIT_TOGGLE BUTTON_RC_PLAY
189
190#define FLIPIT_RC_QUIT BUTTON_REC
191
152#else 192#else
153#error No keymap defined! 193#error No keymap defined!
154#endif 194#endif
@@ -174,7 +214,7 @@ static int cursor_pos, moves;
174#define GRID_TOP MAX(0, ((LCD_HEIGHT - PANEL_HEIGHT - GRID_HEIGHT)/2)) 214#define GRID_TOP MAX(0, ((LCD_HEIGHT - PANEL_HEIGHT - GRID_HEIGHT)/2))
175 215
176/* draw a spot at the coordinates (x,y), range of p is 0-19 */ 216/* draw a spot at the coordinates (x,y), range of p is 0-19 */
177static void draw_spot(int p) 217static void draw_spot(int p)
178{ 218{
179 rb->lcd_bitmap_part( flipit_tokens, 0, spots[p] * TK_HEIGHT, TK_WIDTH, 219 rb->lcd_bitmap_part( flipit_tokens, 0, spots[p] * TK_HEIGHT, TK_WIDTH,
180 GRID_LEFT + (p%5) * (TK_WIDTH+TK_SPACE), 220 GRID_LEFT + (p%5) * (TK_WIDTH+TK_SPACE),
@@ -448,11 +488,11 @@ static bool flipit_loop(void)
448 } 488 }
449 break; 489 break;
450 490
451 case BUTTON_LEFT: 491 case FLIPIT_LEFT:
452 move_cursor(-1, 0); 492 move_cursor(-1, 0);
453 break; 493 break;
454 494
455 case BUTTON_RIGHT: 495 case FLIPIT_RIGHT:
456 move_cursor(1, 0); 496 move_cursor(1, 0);
457 break; 497 break;
458 498
@@ -553,6 +593,12 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
553 rb->lcd_putsxy(2, 28, "[REC-LEFT] shuffle"); 593 rb->lcd_putsxy(2, 28, "[REC-LEFT] shuffle");
554 rb->lcd_putsxy(2, 38, "[REC-RIGHT] solution"); 594 rb->lcd_putsxy(2, 38, "[REC-RIGHT] solution");
555 rb->lcd_putsxy(2, 48, "[REC-SEL] step by step"); 595 rb->lcd_putsxy(2, 48, "[REC-SEL] step by step");
596#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
597 rb->lcd_putsxy(2, 8, "[REC] to stop");
598 rb->lcd_putsxy(2, 18, "[PLAY] toggle");
599 rb->lcd_putsxy(2, 28, "[MODE] shuffle");
600 rb->lcd_putsxy(2, 38, "[MENU..] solution");
601 rb->lcd_putsxy(2, 48, "[MENU] step by step");
556#endif 602#endif
557 rb->lcd_update(); 603 rb->lcd_update();
558#else /* HAVE_LCD_CHARCELLS */ 604#else /* HAVE_LCD_CHARCELLS */