summaryrefslogtreecommitdiff
path: root/apps/plugins/flipit.c
diff options
context:
space:
mode:
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 */