summaryrefslogtreecommitdiff
path: root/apps/plugins/pegbox.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/pegbox.c')
-rw-r--r--apps/plugins/pegbox.c271
1 files changed, 124 insertions, 147 deletions
diff --git a/apps/plugins/pegbox.c b/apps/plugins/pegbox.c
index 341018472e..67714fee9d 100644
--- a/apps/plugins/pegbox.c
+++ b/apps/plugins/pegbox.c
@@ -44,7 +44,7 @@ PLUGIN_HEADER
44#define PLAYER 7 44#define PLAYER 7
45 45
46#if CONFIG_KEYPAD == RECORDER_PAD 46#if CONFIG_KEYPAD == RECORDER_PAD
47#define PEGBOX_SAVE BUTTON_ON 47#define PEGBOX_SELECT BUTTON_ON
48#define PEGBOX_QUIT BUTTON_OFF 48#define PEGBOX_QUIT BUTTON_OFF
49#define PEGBOX_RESTART BUTTON_F2 49#define PEGBOX_RESTART BUTTON_F2
50#define PEGBOX_LVL_UP BUTTON_F1 50#define PEGBOX_LVL_UP BUTTON_F1
@@ -54,14 +54,14 @@ PLUGIN_HEADER
54#define PEGBOX_RIGHT BUTTON_RIGHT 54#define PEGBOX_RIGHT BUTTON_RIGHT
55#define PEGBOX_LEFT BUTTON_LEFT 55#define PEGBOX_LEFT BUTTON_LEFT
56 56
57#define SAVE_TEXT "ON" 57#define SELECT_TEXT "ON"
58#define QUIT_TEXT "OFF" 58#define QUIT_TEXT "OFF"
59#define RESTART_TEXT "F2" 59#define RESTART_TEXT "F2"
60#define LVL_UP_TEXT "F1" 60#define LVL_UP_TEXT "F1"
61#define LVL_DOWN_TEXT "F3" 61#define LVL_DOWN_TEXT "F3"
62 62
63#elif CONFIG_KEYPAD == ONDIO_PAD 63#elif CONFIG_KEYPAD == ONDIO_PAD
64#define PEGBOX_SAVE BUTTON_OFF 64#define PEGBOX_SELECT BUTTON_OFF
65#define PEGBOX_QUIT (BUTTON_MENU | BUTTON_LEFT) 65#define PEGBOX_QUIT (BUTTON_MENU | BUTTON_LEFT)
66#define PEGBOX_RESTART (BUTTON_MENU | BUTTON_RIGHT) 66#define PEGBOX_RESTART (BUTTON_MENU | BUTTON_RIGHT)
67#define PEGBOX_LVL_UP (BUTTON_MENU | BUTTON_UP) 67#define PEGBOX_LVL_UP (BUTTON_MENU | BUTTON_UP)
@@ -71,7 +71,7 @@ PLUGIN_HEADER
71#define PEGBOX_RIGHT BUTTON_RIGHT 71#define PEGBOX_RIGHT BUTTON_RIGHT
72#define PEGBOX_LEFT BUTTON_LEFT 72#define PEGBOX_LEFT BUTTON_LEFT
73 73
74#define SAVE_TEXT "OFF" 74#define SELECT_TEXT "OFF"
75#define QUIT_TEXT "M+LEFT" 75#define QUIT_TEXT "M+LEFT"
76#define RESTART_TEXT "M+RIGHT" 76#define RESTART_TEXT "M+RIGHT"
77#define LVL_UP_TEXT "M+UP" 77#define LVL_UP_TEXT "M+UP"
@@ -79,7 +79,7 @@ PLUGIN_HEADER
79 79
80#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ 80#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
81 (CONFIG_KEYPAD == IRIVER_H300_PAD) 81 (CONFIG_KEYPAD == IRIVER_H300_PAD)
82#define PEGBOX_SAVE BUTTON_SELECT 82#define PEGBOX_SELECT BUTTON_SELECT
83#define PEGBOX_QUIT BUTTON_OFF 83#define PEGBOX_QUIT BUTTON_OFF
84#define PEGBOX_RESTART BUTTON_ON 84#define PEGBOX_RESTART BUTTON_ON
85#define PEGBOX_LVL_UP BUTTON_MODE 85#define PEGBOX_LVL_UP BUTTON_MODE
@@ -89,7 +89,7 @@ PLUGIN_HEADER
89#define PEGBOX_RIGHT BUTTON_RIGHT 89#define PEGBOX_RIGHT BUTTON_RIGHT
90#define PEGBOX_LEFT BUTTON_LEFT 90#define PEGBOX_LEFT BUTTON_LEFT
91 91
92#define SAVE_TEXT "NAVI" 92#define SELECT_TEXT "NAVI"
93#define QUIT_TEXT "OFF" 93#define QUIT_TEXT "OFF"
94#define RESTART_TEXT "ON" 94#define RESTART_TEXT "ON"
95#define LVL_UP_TEXT "AB" 95#define LVL_UP_TEXT "AB"
@@ -98,7 +98,7 @@ PLUGIN_HEADER
98#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ 98#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
99 (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 99 (CONFIG_KEYPAD == IPOD_3G_PAD) || \
100 (CONFIG_KEYPAD == IPOD_1G2G_PAD) 100 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
101#define PEGBOX_SAVE (BUTTON_SELECT|BUTTON_RIGHT) 101#define PEGBOX_SELECT (BUTTON_SELECT|BUTTON_RIGHT)
102#define PEGBOX_QUIT (BUTTON_SELECT|BUTTON_PLAY) 102#define PEGBOX_QUIT (BUTTON_SELECT|BUTTON_PLAY)
103#define PEGBOX_RESTART (BUTTON_SELECT|BUTTON_LEFT) 103#define PEGBOX_RESTART (BUTTON_SELECT|BUTTON_LEFT)
104#define PEGBOX_LVL_UP (BUTTON_SELECT|BUTTON_MENU) 104#define PEGBOX_LVL_UP (BUTTON_SELECT|BUTTON_MENU)
@@ -107,14 +107,14 @@ PLUGIN_HEADER
107#define PEGBOX_RIGHT BUTTON_RIGHT 107#define PEGBOX_RIGHT BUTTON_RIGHT
108#define PEGBOX_LEFT BUTTON_LEFT 108#define PEGBOX_LEFT BUTTON_LEFT
109 109
110#define SAVE_TEXT "SELECT+RIGHT" 110#define SELECT_TEXT "SELECT+RIGHT"
111#define QUIT_TEXT "SELECT+PLAY" 111#define QUIT_TEXT "SELECT+PLAY"
112#define RESTART_TEXT "SELECT+LEFT" 112#define RESTART_TEXT "SELECT+LEFT"
113#define LVL_UP_TEXT "SELECT+MENU" 113#define LVL_UP_TEXT "SELECT+MENU"
114#define LVL_DOWN_TEXT "-" 114#define LVL_DOWN_TEXT "-"
115 115
116#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD 116#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD
117#define PEGBOX_SAVE BUTTON_SELECT 117#define PEGBOX_SELECT BUTTON_SELECT
118#define PEGBOX_QUIT BUTTON_POWER 118#define PEGBOX_QUIT BUTTON_POWER
119#define PEGBOX_RESTART BUTTON_REC 119#define PEGBOX_RESTART BUTTON_REC
120#define PEGBOX_LVL_UP BUTTON_PLAY 120#define PEGBOX_LVL_UP BUTTON_PLAY
@@ -123,14 +123,14 @@ PLUGIN_HEADER
123#define PEGBOX_RIGHT BUTTON_RIGHT 123#define PEGBOX_RIGHT BUTTON_RIGHT
124#define PEGBOX_LEFT BUTTON_LEFT 124#define PEGBOX_LEFT BUTTON_LEFT
125 125
126#define SAVE_TEXT "SELECT" 126#define SELECT_TEXT "SELECT"
127#define QUIT_TEXT "OFF" 127#define QUIT_TEXT "OFF"
128#define RESTART_TEXT "REC" 128#define RESTART_TEXT "REC"
129#define LVL_UP_TEXT "PLAY" 129#define LVL_UP_TEXT "PLAY"
130#define LVL_DOWN_TEXT "-" 130#define LVL_DOWN_TEXT "-"
131 131
132#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD 132#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
133#define PEGBOX_SAVE BUTTON_MODE 133#define PEGBOX_SELECT BUTTON_MODE
134#define PEGBOX_QUIT BUTTON_PLAY 134#define PEGBOX_QUIT BUTTON_PLAY
135#define PEGBOX_RESTART (BUTTON_EQ|BUTTON_MODE) 135#define PEGBOX_RESTART (BUTTON_EQ|BUTTON_MODE)
136#define PEGBOX_LVL_UP (BUTTON_EQ|BUTTON_UP) 136#define PEGBOX_LVL_UP (BUTTON_EQ|BUTTON_UP)
@@ -140,14 +140,14 @@ PLUGIN_HEADER
140#define PEGBOX_RIGHT BUTTON_RIGHT 140#define PEGBOX_RIGHT BUTTON_RIGHT
141#define PEGBOX_LEFT BUTTON_LEFT 141#define PEGBOX_LEFT BUTTON_LEFT
142 142
143#define SAVE_TEXT "MODE" 143#define SELECT_TEXT "MODE"
144#define QUIT_TEXT "PLAY" 144#define QUIT_TEXT "PLAY"
145#define RESTART_TEXT "EQ+MODE" 145#define RESTART_TEXT "EQ+MODE"
146#define LVL_UP_TEXT "EQ+UP" 146#define LVL_UP_TEXT "EQ+UP"
147#define LVL_DOWN_TEXT "EQ+DOWN" 147#define LVL_DOWN_TEXT "EQ+DOWN"
148 148
149#elif CONFIG_KEYPAD == IRIVER_H10_PAD 149#elif CONFIG_KEYPAD == IRIVER_H10_PAD
150#define PEGBOX_SAVE BUTTON_PLAY 150#define PEGBOX_SELECT BUTTON_PLAY
151#define PEGBOX_QUIT BUTTON_POWER 151#define PEGBOX_QUIT BUTTON_POWER
152#define PEGBOX_RESTART (BUTTON_FF|BUTTON_REPEAT) 152#define PEGBOX_RESTART (BUTTON_FF|BUTTON_REPEAT)
153#define PEGBOX_LVL_UP (BUTTON_FF|BUTTON_SCROLL_UP) 153#define PEGBOX_LVL_UP (BUTTON_FF|BUTTON_SCROLL_UP)
@@ -157,14 +157,14 @@ PLUGIN_HEADER
157#define PEGBOX_RIGHT BUTTON_RIGHT 157#define PEGBOX_RIGHT BUTTON_RIGHT
158#define PEGBOX_LEFT BUTTON_LEFT 158#define PEGBOX_LEFT BUTTON_LEFT
159 159
160#define SAVE_TEXT "PLAY" 160#define SELECT_TEXT "PLAY"
161#define QUIT_TEXT "OFF" 161#define QUIT_TEXT "OFF"
162#define RESTART_TEXT "LONG FF" 162#define RESTART_TEXT "LONG FF"
163#define LVL_UP_TEXT "FF+SCROLL_UP" 163#define LVL_UP_TEXT "FF+SCROLL_UP"
164#define LVL_DOWN_TEXT "FF+SCROLL_DOWN" 164#define LVL_DOWN_TEXT "FF+SCROLL_DOWN"
165 165
166#elif CONFIG_KEYPAD == SANSA_E200_PAD 166#elif CONFIG_KEYPAD == SANSA_E200_PAD
167#define PEGBOX_SAVE BUTTON_SELECT 167#define PEGBOX_SELECT BUTTON_SELECT
168#define PEGBOX_QUIT BUTTON_POWER 168#define PEGBOX_QUIT BUTTON_POWER
169#define PEGBOX_RESTART BUTTON_REC 169#define PEGBOX_RESTART BUTTON_REC
170#define PEGBOX_LVL_UP BUTTON_SCROLL_BACK 170#define PEGBOX_LVL_UP BUTTON_SCROLL_BACK
@@ -174,14 +174,14 @@ PLUGIN_HEADER
174#define PEGBOX_RIGHT BUTTON_RIGHT 174#define PEGBOX_RIGHT BUTTON_RIGHT
175#define PEGBOX_LEFT BUTTON_LEFT 175#define PEGBOX_LEFT BUTTON_LEFT
176 176
177#define SAVE_TEXT "SELECT" 177#define SELECT_TEXT "SELECT"
178#define QUIT_TEXT "POWER" 178#define QUIT_TEXT "POWER"
179#define RESTART_TEXT "REC" 179#define RESTART_TEXT "REC"
180#define LVL_UP_TEXT "SCROLL BACK" 180#define LVL_UP_TEXT "SCROLL BACK"
181#define LVL_DOWN_TEXT "SCROLL FWD" 181#define LVL_DOWN_TEXT "SCROLL FWD"
182 182
183#elif CONFIG_KEYPAD == SANSA_FUZE_PAD 183#elif CONFIG_KEYPAD == SANSA_FUZE_PAD
184#define PEGBOX_SAVE BUTTON_SELECT|BUTTON_REL 184#define PEGBOX_SELECT BUTTON_SELECT|BUTTON_REL
185#define PEGBOX_QUIT (BUTTON_HOME|BUTTON_REPEAT) 185#define PEGBOX_QUIT (BUTTON_HOME|BUTTON_REPEAT)
186#define PEGBOX_RESTART (BUTTON_SELECT|BUTTON_LEFT) 186#define PEGBOX_RESTART (BUTTON_SELECT|BUTTON_LEFT)
187#define PEGBOX_LVL_UP (BUTTON_SELECT|BUTTON_UP) 187#define PEGBOX_LVL_UP (BUTTON_SELECT|BUTTON_UP)
@@ -191,14 +191,14 @@ PLUGIN_HEADER
191#define PEGBOX_RIGHT BUTTON_RIGHT 191#define PEGBOX_RIGHT BUTTON_RIGHT
192#define PEGBOX_LEFT BUTTON_LEFT 192#define PEGBOX_LEFT BUTTON_LEFT
193 193
194#define SAVE_TEXT "SELECT" 194#define SELECT_TEXT "SELECT"
195#define QUIT_TEXT "HOME" 195#define QUIT_TEXT "HOME"
196#define RESTART_TEXT "SELECT & LEFT" 196#define RESTART_TEXT "SELECT & LEFT"
197#define LVL_UP_TEXT "SELECT & UP" 197#define LVL_UP_TEXT "SELECT & UP"
198#define LVL_DOWN_TEXT "SELECT & DOWN" 198#define LVL_DOWN_TEXT "SELECT & DOWN"
199 199
200#elif CONFIG_KEYPAD == GIGABEAT_PAD 200#elif CONFIG_KEYPAD == GIGABEAT_PAD
201#define PEGBOX_SAVE BUTTON_SELECT 201#define PEGBOX_SELECT BUTTON_SELECT
202#define PEGBOX_QUIT BUTTON_POWER 202#define PEGBOX_QUIT BUTTON_POWER
203#define PEGBOX_RESTART BUTTON_A 203#define PEGBOX_RESTART BUTTON_A
204#define PEGBOX_LVL_UP BUTTON_VOL_UP 204#define PEGBOX_LVL_UP BUTTON_VOL_UP
@@ -208,14 +208,14 @@ PLUGIN_HEADER
208#define PEGBOX_RIGHT BUTTON_RIGHT 208#define PEGBOX_RIGHT BUTTON_RIGHT
209#define PEGBOX_LEFT BUTTON_LEFT 209#define PEGBOX_LEFT BUTTON_LEFT
210 210
211#define SAVE_TEXT "SELECT" 211#define SELECT_TEXT "SELECT"
212#define QUIT_TEXT "POWER" 212#define QUIT_TEXT "POWER"
213#define RESTART_TEXT "A" 213#define RESTART_TEXT "A"
214#define LVL_UP_TEXT "VOL+" 214#define LVL_UP_TEXT "VOL+"
215#define LVL_DOWN_TEXT "VOL-" 215#define LVL_DOWN_TEXT "VOL-"
216 216
217#elif CONFIG_KEYPAD == GIGABEAT_S_PAD 217#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
218#define PEGBOX_SAVE BUTTON_SELECT 218#define PEGBOX_SELECT BUTTON_SELECT
219#define PEGBOX_QUIT BUTTON_BACK 219#define PEGBOX_QUIT BUTTON_BACK
220#define PEGBOX_RESTART BUTTON_MENU 220#define PEGBOX_RESTART BUTTON_MENU
221#define PEGBOX_LVL_UP BUTTON_VOL_UP 221#define PEGBOX_LVL_UP BUTTON_VOL_UP
@@ -225,14 +225,14 @@ PLUGIN_HEADER
225#define PEGBOX_RIGHT BUTTON_RIGHT 225#define PEGBOX_RIGHT BUTTON_RIGHT
226#define PEGBOX_LEFT BUTTON_LEFT 226#define PEGBOX_LEFT BUTTON_LEFT
227 227
228#define SAVE_TEXT "SELECT" 228#define SELECT_TEXT "SELECT"
229#define QUIT_TEXT "BACK" 229#define QUIT_TEXT "BACK"
230#define RESTART_TEXT "MENU" 230#define RESTART_TEXT "MENU"
231#define LVL_UP_TEXT "VOL+" 231#define LVL_UP_TEXT "VOL+"
232#define LVL_DOWN_TEXT "VOL-" 232#define LVL_DOWN_TEXT "VOL-"
233 233
234#elif CONFIG_KEYPAD == MROBE100_PAD 234#elif CONFIG_KEYPAD == MROBE100_PAD
235#define PEGBOX_SAVE BUTTON_SELECT 235#define PEGBOX_SELECT BUTTON_SELECT
236#define PEGBOX_QUIT BUTTON_POWER 236#define PEGBOX_QUIT BUTTON_POWER
237#define PEGBOX_RESTART BUTTON_PLAY 237#define PEGBOX_RESTART BUTTON_PLAY
238#define PEGBOX_LVL_UP BUTTON_MENU 238#define PEGBOX_LVL_UP BUTTON_MENU
@@ -242,14 +242,14 @@ PLUGIN_HEADER
242#define PEGBOX_RIGHT BUTTON_RIGHT 242#define PEGBOX_RIGHT BUTTON_RIGHT
243#define PEGBOX_LEFT BUTTON_LEFT 243#define PEGBOX_LEFT BUTTON_LEFT
244 244
245#define SAVE_TEXT "SELECT" 245#define SELECT_TEXT "SELECT"
246#define QUIT_TEXT "POWER" 246#define QUIT_TEXT "POWER"
247#define RESTART_TEXT "PLAY" 247#define RESTART_TEXT "PLAY"
248#define LVL_UP_TEXT "MENU" 248#define LVL_UP_TEXT "MENU"
249#define LVL_DOWN_TEXT "DISPLAY" 249#define LVL_DOWN_TEXT "DISPLAY"
250 250
251#elif CONFIG_KEYPAD == SANSA_C200_PAD 251#elif CONFIG_KEYPAD == SANSA_C200_PAD
252#define PEGBOX_SAVE BUTTON_SELECT 252#define PEGBOX_SELECT BUTTON_SELECT
253#define PEGBOX_QUIT BUTTON_POWER 253#define PEGBOX_QUIT BUTTON_POWER
254#define PEGBOX_RESTART BUTTON_REC 254#define PEGBOX_RESTART BUTTON_REC
255#define PEGBOX_LVL_UP BUTTON_VOL_UP 255#define PEGBOX_LVL_UP BUTTON_VOL_UP
@@ -259,14 +259,14 @@ PLUGIN_HEADER
259#define PEGBOX_RIGHT BUTTON_RIGHT 259#define PEGBOX_RIGHT BUTTON_RIGHT
260#define PEGBOX_LEFT BUTTON_LEFT 260#define PEGBOX_LEFT BUTTON_LEFT
261 261
262#define SAVE_TEXT "SELECT" 262#define SELECT_TEXT "SELECT"
263#define QUIT_TEXT "POWER" 263#define QUIT_TEXT "POWER"
264#define RESTART_TEXT "REC" 264#define RESTART_TEXT "REC"
265#define LVL_UP_TEXT "VOL+" 265#define LVL_UP_TEXT "VOL+"
266#define LVL_DOWN_TEXT "VOL-" 266#define LVL_DOWN_TEXT "VOL-"
267 267
268#elif CONFIG_KEYPAD == SANSA_CLIP_PAD 268#elif CONFIG_KEYPAD == SANSA_CLIP_PAD
269#define PEGBOX_SAVE BUTTON_SELECT 269#define PEGBOX_SELECT BUTTON_SELECT
270#define PEGBOX_QUIT BUTTON_POWER 270#define PEGBOX_QUIT BUTTON_POWER
271#define PEGBOX_RESTART BUTTON_HOME 271#define PEGBOX_RESTART BUTTON_HOME
272#define PEGBOX_LVL_UP BUTTON_VOL_UP 272#define PEGBOX_LVL_UP BUTTON_VOL_UP
@@ -276,14 +276,14 @@ PLUGIN_HEADER
276#define PEGBOX_RIGHT BUTTON_RIGHT 276#define PEGBOX_RIGHT BUTTON_RIGHT
277#define PEGBOX_LEFT BUTTON_LEFT 277#define PEGBOX_LEFT BUTTON_LEFT
278 278
279#define SAVE_TEXT "SELECT" 279#define SELECT_TEXT "SELECT"
280#define QUIT_TEXT "POWER" 280#define QUIT_TEXT "POWER"
281#define RESTART_TEXT "HOME" 281#define RESTART_TEXT "HOME"
282#define LVL_UP_TEXT "VOL+" 282#define LVL_UP_TEXT "VOL+"
283#define LVL_DOWN_TEXT "VOL-" 283#define LVL_DOWN_TEXT "VOL-"
284 284
285#elif CONFIG_KEYPAD == SANSA_M200_PAD 285#elif CONFIG_KEYPAD == SANSA_M200_PAD
286#define PEGBOX_SAVE (BUTTON_SELECT | BUTTON_REL) 286#define PEGBOX_SELECT (BUTTON_SELECT | BUTTON_REL)
287#define PEGBOX_QUIT BUTTON_POWER 287#define PEGBOX_QUIT BUTTON_POWER
288#define PEGBOX_RESTART (BUTTON_SELECT | BUTTON_UP) 288#define PEGBOX_RESTART (BUTTON_SELECT | BUTTON_UP)
289#define PEGBOX_LVL_UP BUTTON_VOL_UP 289#define PEGBOX_LVL_UP BUTTON_VOL_UP
@@ -293,7 +293,7 @@ PLUGIN_HEADER
293#define PEGBOX_RIGHT BUTTON_RIGHT 293#define PEGBOX_RIGHT BUTTON_RIGHT
294#define PEGBOX_LEFT BUTTON_LEFT 294#define PEGBOX_LEFT BUTTON_LEFT
295 295
296#define SAVE_TEXT "SELECT" 296#define SELECT_TEXT "SELECT"
297#define QUIT_TEXT "POWER" 297#define QUIT_TEXT "POWER"
298#define RESTART_TEXT "SELECT+UP" 298#define RESTART_TEXT "SELECT+UP"
299#define LVL_UP_TEXT "VOL+" 299#define LVL_UP_TEXT "VOL+"
@@ -301,7 +301,7 @@ PLUGIN_HEADER
301 301
302 302
303#elif CONFIG_KEYPAD == IAUDIO_M3_PAD 303#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
304#define PEGBOX_SAVE BUTTON_RC_PLAY 304#define PEGBOX_SELECT BUTTON_RC_PLAY
305#define PEGBOX_QUIT BUTTON_RC_REC 305#define PEGBOX_QUIT BUTTON_RC_REC
306#define PEGBOX_RESTART BUTTON_RC_MODE 306#define PEGBOX_RESTART BUTTON_RC_MODE
307#define PEGBOX_LVL_UP BUTTON_VOL_UP 307#define PEGBOX_LVL_UP BUTTON_VOL_UP
@@ -311,7 +311,7 @@ PLUGIN_HEADER
311#define PEGBOX_RIGHT BUTTON_RC_FF 311#define PEGBOX_RIGHT BUTTON_RC_FF
312#define PEGBOX_LEFT BUTTON_RC_REW 312#define PEGBOX_LEFT BUTTON_RC_REW
313 313
314#define SAVE_TEXT "REM. PLAY" 314#define SELECT_TEXT "REM. PLAY"
315#define QUIT_TEXT "REM. REC" 315#define QUIT_TEXT "REM. REC"
316#define RESTART_TEXT "REM. MODE" 316#define RESTART_TEXT "REM. MODE"
317#define LVL_UP_TEXT "VOL+" 317#define LVL_UP_TEXT "VOL+"
@@ -323,7 +323,7 @@ PLUGIN_HEADER
323#define QUIT_TEXT "POWER" 323#define QUIT_TEXT "POWER"
324 324
325#elif CONFIG_KEYPAD == CREATIVEZVM_PAD 325#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
326#define PEGBOX_SAVE BUTTON_CUSTOM 326#define PEGBOX_SELECT BUTTON_CUSTOM
327#define PEGBOX_QUIT BUTTON_BACK 327#define PEGBOX_QUIT BUTTON_BACK
328#define PEGBOX_RESTART BUTTON_SELECT 328#define PEGBOX_RESTART BUTTON_SELECT
329#define PEGBOX_LVL_UP BUTTON_PLAY 329#define PEGBOX_LVL_UP BUTTON_PLAY
@@ -333,14 +333,14 @@ PLUGIN_HEADER
333#define PEGBOX_RIGHT BUTTON_RIGHT 333#define PEGBOX_RIGHT BUTTON_RIGHT
334#define PEGBOX_LEFT BUTTON_LEFT 334#define PEGBOX_LEFT BUTTON_LEFT
335 335
336#define SAVE_TEXT "CUSTOM" 336#define SELECT_TEXT "CUSTOM"
337#define QUIT_TEXT "BACK" 337#define QUIT_TEXT "BACK"
338#define RESTART_TEXT "MIDDLE" 338#define RESTART_TEXT "MIDDLE"
339#define LVL_UP_TEXT "SELECT" 339#define LVL_UP_TEXT "SELECT"
340#define LVL_DOWN_TEXT "MENU" 340#define LVL_DOWN_TEXT "MENU"
341 341
342#elif CONFIG_KEYPAD == PHILIPS_HDD1630_PAD 342#elif CONFIG_KEYPAD == PHILIPS_HDD1630_PAD
343#define PEGBOX_SAVE BUTTON_VIEW 343#define PEGBOX_SELECT BUTTON_VIEW
344#define PEGBOX_QUIT BUTTON_POWER 344#define PEGBOX_QUIT BUTTON_POWER
345#define PEGBOX_RESTART BUTTON_MENU 345#define PEGBOX_RESTART BUTTON_MENU
346#define PEGBOX_LVL_UP BUTTON_VOL_UP 346#define PEGBOX_LVL_UP BUTTON_VOL_UP
@@ -350,7 +350,7 @@ PLUGIN_HEADER
350#define PEGBOX_RIGHT BUTTON_RIGHT 350#define PEGBOX_RIGHT BUTTON_RIGHT
351#define PEGBOX_LEFT BUTTON_LEFT 351#define PEGBOX_LEFT BUTTON_LEFT
352 352
353#define SAVE_TEXT "VIEW" 353#define SELECT_TEXT "VIEW"
354#define QUIT_TEXT "POWER" 354#define QUIT_TEXT "POWER"
355#define RESTART_TEXT "MENU" 355#define RESTART_TEXT "MENU"
356#define LVL_UP_TEXT "VOL+" 356#define LVL_UP_TEXT "VOL+"
@@ -369,8 +369,8 @@ PLUGIN_HEADER
369#ifndef PEGBOX_QUIT 369#ifndef PEGBOX_QUIT
370#define PEGBOX_QUIT BUTTON_TOPLEFT 370#define PEGBOX_QUIT BUTTON_TOPLEFT
371#endif 371#endif
372#ifndef PEGBOX_SAVE 372#ifndef PEGBOX_SELECT
373#define PEGBOX_SAVE BUTTON_CENTER 373#define PEGBOX_SELECT BUTTON_CENTER
374#endif 374#endif
375#ifndef PEGBOX_RESTART 375#ifndef PEGBOX_RESTART
376#define PEGBOX_RESTART BUTTON_TOPRIGHT 376#define PEGBOX_RESTART BUTTON_TOPRIGHT
@@ -393,8 +393,8 @@ PLUGIN_HEADER
393#ifndef PEGBOX_LEFT 393#ifndef PEGBOX_LEFT
394#define PEGBOX_LEFT BUTTON_MIDLEFT 394#define PEGBOX_LEFT BUTTON_MIDLEFT
395#endif 395#endif
396#ifndef SAVE_TEXT 396#ifndef SELECT_TEXT
397#define SAVE_TEXT "CENTER" 397#define SELECT_TEXT "CENTER"
398#endif 398#endif
399#ifndef QUIT_TEXT 399#ifndef QUIT_TEXT
400#define QUIT_TEXT "TOPLEFT" 400#define QUIT_TEXT "TOPLEFT"
@@ -724,16 +724,11 @@ static void pegbox_draw_board(struct game_context* pb)
724 724
725 type = pb->playboard[r][c]; 725 type = pb->playboard[r][c];
726 726
727 switch(type) { 727 if(type != SPACE) {
728 case SPACE: 728 rb->lcd_bitmap_part(pegbox_pieces, 0, (type-1)*PIECE_HEIGHT,
729 break; 729 PIECE_WIDTH, c * PIECE_WIDTH + BOARD_X,
730 730 r * PIECE_HEIGHT + BOARD_Y, PIECE_WIDTH,
731 default: 731 PIECE_HEIGHT);
732 rb->lcd_bitmap_part(pegbox_pieces, 0, (type-1)*PIECE_HEIGHT,
733 PIECE_WIDTH, c * PIECE_WIDTH + BOARD_X,
734 r * PIECE_HEIGHT + BOARD_Y, PIECE_WIDTH,
735 PIECE_HEIGHT);
736 break;
737 } 732 }
738 733
739 if(pb->playboard[r][c] == PLAYER) { 734 if(pb->playboard[r][c] == PLAYER) {
@@ -818,7 +813,7 @@ static void pegbox_new_piece(struct game_context* pb, unsigned int x_loc,
818 else if(ret.action == TS_ACTION_CLICK 813 else if(ret.action == TS_ACTION_CLICK
819 && (unsigned)ret.to.x == y_loc 814 && (unsigned)ret.to.x == y_loc
820 && (unsigned)ret.to.y == x_loc) 815 && (unsigned)ret.to.y == x_loc)
821 button = PEGBOX_SAVE; 816 button = PEGBOX_SELECT;
822 } 817 }
823#endif 818#endif
824 switch(button){ 819 switch(button){
@@ -840,8 +835,9 @@ static void pegbox_new_piece(struct game_context* pb, unsigned int x_loc,
840 else 835 else
841 pb->playboard[x_loc][y_loc] = CIRCLE; 836 pb->playboard[x_loc][y_loc] = CIRCLE;
842 break; 837 break;
843 case PEGBOX_SAVE: 838 case PEGBOX_SELECT:
844 exit=true; 839 exit=true;
840 break;
845 } 841 }
846 } 842 }
847} 843}
@@ -853,19 +849,20 @@ static void pegbox_move_player(struct game_context* pb, signed int x_dir,
853 signed int y_dir) 849 signed int y_dir)
854{ 850{
855 unsigned int type1, type2; 851 unsigned int type1, type2;
856 signed int r,c; 852 signed int r1,c1,r2,c2;
857 853
858 r = pb->player_row+y_dir; 854 r1 = pb->player_row+y_dir;
859 c = pb->player_col+x_dir; 855 c1 = pb->player_col+x_dir;
860 856 r2 = pb->player_row+y_dir*2;
861 type1 = pb->playboard[r][c]; 857 c2 = pb->player_col+x_dir*2;
862 type2 = pb->playboard[r+y_dir][c+x_dir]; 858
863 859 type1 = pb->playboard[r1][c1];
864 if (r == ROWS || c == COLS || r < 0 || c < 0 || type1 == WALL) 860 type2 = pb->playboard[r2][c2];
861
862 if (r1 == ROWS || c1 == COLS || r1 < 0 || c1 < 0 || type1 == WALL)
865 return; 863 return;
866 else if(type1 != SPACE) { 864 else if(type1 != SPACE) {
867 if (type2 == WALL || r+y_dir == ROWS || c+x_dir == COLS || 865 if (r2 == ROWS || c2 == COLS || r2 < 0 || c2 < 0 || type2 == WALL)
868 r+y_dir < 0 || c+x_dir < 0)
869 return; 866 return;
870 } 867 }
871 868
@@ -880,25 +877,25 @@ static void pegbox_move_player(struct game_context* pb, signed int x_dir,
880 pegbox_load_level(pb); 877 pegbox_load_level(pb);
881 } 878 }
882 else if (type1 == SPACE) 879 else if (type1 == SPACE)
883 pb->playboard[r][c] = PLAYER; 880 pb->playboard[r1][c1] = PLAYER;
884 else { 881 else {
885 pb->playboard[r][c] = PLAYER; 882 pb->playboard[r1][c1] = PLAYER;
886 if(type1 == type2) { 883 if(type1 == type2) {
887 if (type1 == TRIANGLE) 884 if (type1 == TRIANGLE)
888 pb->playboard[r+y_dir][c+x_dir] = WALL; 885 pb->playboard[r2][c2] = WALL;
889 else if (type1 == CROSS) { 886 else if (type1 == CROSS) {
890 pb->playboard[r][c] = SPACE; 887 pb->playboard[r1][c1] = SPACE;
891 pegbox_new_piece(pb, r+y_dir, c+x_dir); 888 pegbox_new_piece(pb, r2, c2);
892 pb->playboard[r][c] = PLAYER; 889 pb->playboard[r1][c1] = PLAYER;
893 } 890 }
894 else 891 else
895 pb->playboard[r+y_dir][c+x_dir] = SPACE; 892 pb->playboard[r2][c2] = SPACE;
896 } 893 }
897 else if (type2 == SPACE) 894 else if (type2 == SPACE)
898 pb->playboard[r+y_dir][c+x_dir] = type1; 895 pb->playboard[r2][c2] = type1;
899 else if (type2 == HOLE) { 896 else if (type2 == HOLE) {
900 if (type1 == SQUARE) 897 if (type1 == SQUARE)
901 pb->playboard[r+y_dir][c+x_dir] = SPACE; 898 pb->playboard[r2][c2] = SPACE;
902 } 899 }
903 else { 900 else {
904 rb->splash(HZ*2, "Illegal Move!"); 901 rb->splash(HZ*2, "Illegal Move!");
@@ -927,7 +924,7 @@ static bool pegbox_help(void)
927 RESTART_TEXT, "to", "restart", "level", "", 924 RESTART_TEXT, "to", "restart", "level", "",
928 LVL_UP_TEXT, "to", "go", "up", "a", "level", "", 925 LVL_UP_TEXT, "to", "go", "up", "a", "level", "",
929 LVL_DOWN_TEXT, "to", "go", "down", "a", "level", "", 926 LVL_DOWN_TEXT, "to", "go", "down", "a", "level", "",
930 SAVE_TEXT, "to", "choose", "peg", "", 927 SELECT_TEXT, "to", "choose", "peg", "",
931 QUIT_TEXT, "to", "quit" 928 QUIT_TEXT, "to", "quit"
932 }; 929 };
933 static struct style_text formation[]={ 930 static struct style_text formation[]={
@@ -954,82 +951,60 @@ static bool pegbox_help(void)
954/*********************************************************************** 951/***********************************************************************
955* pegbox_menu() is the game menu 952* pegbox_menu() is the game menu
956************************************************************************/ 953************************************************************************/
954static bool _ingame;
955static int pegbox_menu_cb(int action, const struct menu_item_ex *this_item)
956{
957 int i = (intptr_t)this_item;
958 if( action == ACTION_REQUEST_MENUITEM )
959 {
960 if((!_ingame && (i==0 || i==1)) || ( _ingame && i==2 ))
961 return ACTION_EXIT_MENUITEM;
962 }
963 return action;
964}
965
957static unsigned int pegbox_menu(struct game_context* pb, bool ingame) 966static unsigned int pegbox_menu(struct game_context* pb, bool ingame)
958{ 967{
968 int selected = 0;
969 int last_level = pb->level;
970
971 MENUITEM_STRINGLIST (main_menu, "Pegbox Menu", pegbox_menu_cb,
972 "Resume Game", "Restart Level", "Start Game",
973 "Select Level", "Help",
974 "Playback Control", "Quit");
975 _ingame = ingame;
959 rb->button_clear_queue(); 976 rb->button_clear_queue();
960 int choice = 0; 977
961 978 while (true) {
962 if (ingame) { 979 switch (rb->do_menu(&main_menu, &selected, NULL, false)) {
963 MENUITEM_STRINGLIST (main_menu, "Pegbox Menu", NULL, 980 case 0:
964 "Resume Game", 981 pb->level = last_level;
965 "Restart Level", 982 pegbox_draw_board(pb);
966 "Select Level", 983 return 0;
967 "Help", 984 case 1:
968 "Playback Control", 985 case 2:
969 "Quit"); 986 pegbox_load_level(pb);
970 987 pegbox_draw_board(pb);
971 while (true) { 988 return 0;
972 switch (rb->do_menu(&main_menu, &choice, NULL, false)) { 989 case 3:
973 case 0: 990 if(rb->set_int("Select Level", "", UNIT_INT, &pb->level,
974 pegbox_draw_board(pb); 991 NULL, 1, 1, pb->highlevel, NULL))
975 return 0;
976 case 1:
977 pegbox_load_level(pb);
978 pegbox_draw_board(pb);
979 return 0;
980 case 2:
981 rb->set_int("Select Level", "", UNIT_INT,
982 &pb->level, NULL, 1, 1,
983 pb->highlevel, NULL);
984 break;
985 case 3:
986 if (pegbox_help()==PLUGIN_USB_CONNECTED)
987 return 1;
988 break;
989 case 4:
990 playback_control(NULL);
991 break;
992 case 5:
993 return 1;
994 case MENU_ATTACHED_USB:
995 return 1; 992 return 1;
996 default: 993 break;
997 break; 994 case 4:
998 } 995 if (pegbox_help())
999 }
1000 } else {
1001 MENUITEM_STRINGLIST (main_menu, "Pegbox Menu", NULL,
1002 "Start Game",
1003 "Select Level",
1004 "Help",
1005 "Playback Control",
1006 "Quit");
1007
1008 while (true) {
1009 switch (rb->do_menu(&main_menu, &choice, NULL, false)) {
1010 case 0:
1011 pegbox_load_level(pb);
1012 pegbox_draw_board(pb);
1013 return 0;
1014 case 1:
1015 rb->set_int("Select Level", "", UNIT_INT,
1016 &pb->level, NULL, 1, 1,
1017 pb->highlevel, NULL);
1018 break;
1019 case 2:
1020 if (pegbox_help()==PLUGIN_USB_CONNECTED)
1021 return 1;
1022 break;
1023 case 3:
1024 playback_control(NULL);
1025 break;
1026 case 4:
1027 return 1; 996 return 1;
1028 case MENU_ATTACHED_USB: 997 break;
998 case 5:
999 if (playback_control(NULL))
1029 return 1; 1000 return 1;
1030 default: 1001 break;
1031 break; 1002 case 6:
1032 } 1003 return 1;
1004 case MENU_ATTACHED_USB:
1005 return 1;
1006 default:
1007 break;
1033 } 1008 }
1034 } 1009 }
1035} 1010}
@@ -1052,7 +1027,7 @@ static int pegbox_main(struct game_context* pb)
1052 { 1027 {
1053 pegbox_raster_btn.two_d_from.y = pb->player_row; 1028 pegbox_raster_btn.two_d_from.y = pb->player_row;
1054 pegbox_raster_btn.two_d_from.x = pb->player_col; 1029 pegbox_raster_btn.two_d_from.x = pb->player_col;
1055 1030
1056 struct ts_raster_button_result ret = 1031 struct ts_raster_button_result ret =
1057 touchscreen_raster_map_button(&pegbox_raster_btn, 1032 touchscreen_raster_map_button(&pegbox_raster_btn,
1058 rb->button_get_data() >> 16, 1033 rb->button_get_data() >> 16,
@@ -1087,6 +1062,8 @@ static int pegbox_main(struct game_context* pb)
1087 if (pegbox_menu(pb, true)==1) { 1062 if (pegbox_menu(pb, true)==1) {
1088 return 1; 1063 return 1;
1089 } 1064 }
1065 break;
1066
1090#ifdef PEGBOX_RESTART 1067#ifdef PEGBOX_RESTART
1091 case PEGBOX_RESTART: 1068 case PEGBOX_RESTART:
1092 pegbox_load_level(pb); 1069 pegbox_load_level(pb);
@@ -1139,7 +1116,7 @@ static int pegbox_main(struct game_context* pb)
1139 1116
1140 if(pb->level > pb->highlevel) 1117 if(pb->level > pb->highlevel)
1141 pb->highlevel = pb->level; 1118 pb->highlevel = pb->level;
1142 1119
1143 } 1120 }
1144 } 1121 }
1145 return PLUGIN_OK; 1122 return PLUGIN_OK;
@@ -1155,7 +1132,7 @@ enum plugin_status plugin_start(const void* parameter)
1155 rb->lcd_setfont(FONT_SYSFIXED); 1132 rb->lcd_setfont(FONT_SYSFIXED);
1156#if LCD_DEPTH > 1 1133#if LCD_DEPTH > 1
1157 rb->lcd_set_backdrop(NULL); 1134 rb->lcd_set_backdrop(NULL);
1158#endif 1135#endif
1159#ifdef HAVE_LCD_COLOR 1136#ifdef HAVE_LCD_COLOR
1160 rb->lcd_set_foreground(LCD_WHITE); 1137 rb->lcd_set_foreground(LCD_WHITE);
1161 rb->lcd_set_background(BG_COLOR); 1138 rb->lcd_set_background(BG_COLOR);
@@ -1168,7 +1145,7 @@ enum plugin_status plugin_start(const void* parameter)
1168 struct configdata config[] = { 1145 struct configdata config[] = {
1169 {TYPE_INT, 1, NUM_LEVELS, { .int_p = &(pb.level) }, "level", NULL}, 1146 {TYPE_INT, 1, NUM_LEVELS, { .int_p = &(pb.level) }, "level", NULL},
1170 {TYPE_INT, 1, NUM_LEVELS, { .int_p = &(pb.highlevel) }, "highlevel", NULL}, 1147 {TYPE_INT, 1, NUM_LEVELS, { .int_p = &(pb.highlevel) }, "highlevel", NULL},
1171 }; 1148 };
1172 configfile_load(CONFIG_FILE_NAME,config,2,0); 1149 configfile_load(CONFIG_FILE_NAME,config,2,0);
1173 pegbox_main(&pb); 1150 pegbox_main(&pb);
1174 configfile_save(CONFIG_FILE_NAME,config,2,0); 1151 configfile_save(CONFIG_FILE_NAME,config,2,0);