summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/plugins/battery_bench.c11
-rw-r--r--apps/plugins/bitmaps/mono/SOURCES4
-rw-r--r--apps/plugins/bitmaps/mono/bubbles_bubble.128x96x1.bmpbin0 -> 100 bytes
-rw-r--r--apps/plugins/bitmaps/mono/flipit_cursor.21x21x1.bmpbin0 -> 148 bytes
-rw-r--r--apps/plugins/bitmaps/native/SOURCES18
-rw-r--r--apps/plugins/bitmaps/native/brickmania_ball.4x4x2.bmpbin0 -> 112 bytes
-rw-r--r--apps/plugins/bitmaps/native/brickmania_bricks.128x96x2.bmpbin0 -> 1316 bytes
-rw-r--r--apps/plugins/bitmaps/native/brickmania_menu_bg.160x128x2.bmpbin3676 -> 2956 bytes
-rw-r--r--apps/plugins/bitmaps/native/bubbles_emblem.128x96x2.bmpbin0 -> 280 bytes
-rw-r--r--apps/plugins/bitmaps/native/flipit_tokens.21x42x2.bmpbin0 -> 1080 bytes
-rw-r--r--apps/plugins/bitmaps/native/jewels.128x96x2.bmpbin0 -> 4392 bytes
-rw-r--r--apps/plugins/bitmaps/native/rockblox_background.128x96x2.bmpbin0 -> 12360 bytes
-rw-r--r--apps/plugins/blackjack.c16
-rw-r--r--apps/plugins/bounce.c40
-rw-r--r--apps/plugins/brickmania.c64
-rw-r--r--apps/plugins/bubbles.c69
-rw-r--r--apps/plugins/calculator.c51
-rw-r--r--apps/plugins/chessclock.c10
-rw-r--r--apps/plugins/chip8.c10
-rw-r--r--apps/plugins/chopper.c6
-rw-r--r--apps/plugins/cube.c12
-rw-r--r--apps/plugins/dict.c2
-rw-r--r--apps/plugins/disktidy.c3
-rw-r--r--apps/plugins/fireworks.c6
-rw-r--r--apps/plugins/flipit.c52
-rw-r--r--apps/plugins/jewels.c28
-rw-r--r--apps/plugins/lib/SOURCES3
-rw-r--r--apps/plugins/lib/pluginlib_actions.c27
-rw-r--r--apps/plugins/logo.c11
-rw-r--r--apps/plugins/matrix.c5
-rw-r--r--apps/plugins/mazezam.c12
-rw-r--r--apps/plugins/minesweeper.c54
-rw-r--r--apps/plugins/mosaique.c5
-rw-r--r--apps/plugins/mp3_encoder.c5
-rw-r--r--apps/plugins/oscilloscope.c13
-rw-r--r--apps/plugins/pong.c8
-rw-r--r--apps/plugins/rockblox.c66
-rw-r--r--apps/plugins/sliding_puzzle.c35
-rw-r--r--apps/plugins/snake.c36
-rw-r--r--apps/plugins/snake2.c111
-rw-r--r--apps/plugins/snow.c3
-rw-r--r--apps/plugins/sokoban.c50
-rw-r--r--apps/plugins/solitaire.c27
-rw-r--r--apps/plugins/spacerocks.c13
-rw-r--r--apps/plugins/star.c41
-rw-r--r--apps/plugins/starfield.c7
-rw-r--r--apps/plugins/stats.c4
-rw-r--r--apps/plugins/stopwatch.c8
-rw-r--r--apps/plugins/test_codec.c4
-rw-r--r--apps/plugins/test_fps.c2
-rw-r--r--apps/plugins/test_scanrate.c10
-rw-r--r--apps/plugins/viewer.c12
-rw-r--r--apps/plugins/vu_meter.c9
-rw-r--r--apps/plugins/wormlet.c18
-rw-r--r--apps/plugins/xobox.c9
55 files changed, 817 insertions, 193 deletions
diff --git a/apps/plugins/battery_bench.c b/apps/plugins/battery_bench.c
index 658dfca0ec..6b52a4d489 100644
--- a/apps/plugins/battery_bench.c
+++ b/apps/plugins/battery_bench.c
@@ -135,6 +135,15 @@ PLUGIN_HEADER
135#define BATTERY_ON_TXT "SELECT - start" 135#define BATTERY_ON_TXT "SELECT - start"
136#define BATTERY_OFF_TXT "POWER - quit" 136#define BATTERY_OFF_TXT "POWER - quit"
137 137
138#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
139
140#define BATTERY_ON BUTTON_PLAY
141#define BATTERY_OFF BUTTON_REC
142#define BATTERY_RC_ON BUTTON_RC_PLAY
143#define BATTERY_RC_OFF BUTTON_RC_REC
144#define BATTERY_ON_TXT "PLAY - start"
145#define BATTERY_OFF_TXT "REC - quit"
146
138#else 147#else
139#error No keymap defined! 148#error No keymap defined!
140#endif 149#endif
@@ -231,7 +240,7 @@ void thread(void)
231 int fd, buffelements, tick = 1, i = 0, skipped = 0, exit = 0; 240 int fd, buffelements, tick = 1, i = 0, skipped = 0, exit = 0;
232 int fst = 0, lst = 0; /* first and last skipped tick */ 241 int fst = 0, lst = 0; /* first and last skipped tick */
233 unsigned int last_voltage = 0; 242 unsigned int last_voltage = 0;
234#if CONFIG_CHARGING || defined(HAVE_USB_POWER) 243#if CONFIG_CHARGING || defined(HAVE_USB_POWER)
235 unsigned int last_state = 0; 244 unsigned int last_state = 0;
236#endif 245#endif
237 long sleep_time = 5 * HZ; 246 long sleep_time = 5 * HZ;
diff --git a/apps/plugins/bitmaps/mono/SOURCES b/apps/plugins/bitmaps/mono/SOURCES
index a7ce0b51f3..d2952d1ef7 100644
--- a/apps/plugins/bitmaps/mono/SOURCES
+++ b/apps/plugins/bitmaps/mono/SOURCES
@@ -5,6 +5,8 @@
5bubbles_bubble.112x64x1.bmp 5bubbles_bubble.112x64x1.bmp
6#elif (LCD_WIDTH == 132) && (LCD_HEIGHT == 80) 6#elif (LCD_WIDTH == 132) && (LCD_HEIGHT == 80)
7bubbles_bubble.132x80x16.bmp 7bubbles_bubble.132x80x16.bmp
8#elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 96)
9bubbles_bubble.128x96x1.bmp
8#elif ((LCD_WIDTH == 160) && (LCD_HEIGHT == 128)) || \ 10#elif ((LCD_WIDTH == 160) && (LCD_HEIGHT == 128)) || \
9 ((LCD_WIDTH == 128) && (LCD_HEIGHT == 128)) 11 ((LCD_WIDTH == 128) && (LCD_HEIGHT == 128))
10bubbles_bubble.160x128x1.bmp 12bubbles_bubble.160x128x1.bmp
@@ -35,6 +37,8 @@ rockblox_background.160x128x1.bmp
35flipit_cursor.28x28x1.bmp 37flipit_cursor.28x28x1.bmp
36#elif LCD_WIDTH >= 125 && LCD_HEIGHT >= 110 38#elif LCD_WIDTH >= 125 && LCD_HEIGHT >= 110
37flipit_cursor.25x25x1.bmp 39flipit_cursor.25x25x1.bmp
40#elif LCD_WIDTH >= 105 && LCD_HEIGHT >= 96
41flipit_cursor.21x21x1.bmp
38#elif LCD_WIDTH >= 80 && LCD_HEIGHT >= 62 42#elif LCD_WIDTH >= 80 && LCD_HEIGHT >= 62
39flipit_cursor.16x13x1.bmp 43flipit_cursor.16x13x1.bmp
40#endif 44#endif
diff --git a/apps/plugins/bitmaps/mono/bubbles_bubble.128x96x1.bmp b/apps/plugins/bitmaps/mono/bubbles_bubble.128x96x1.bmp
new file mode 100644
index 0000000000..a58ef9ce63
--- /dev/null
+++ b/apps/plugins/bitmaps/mono/bubbles_bubble.128x96x1.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/mono/flipit_cursor.21x21x1.bmp b/apps/plugins/bitmaps/mono/flipit_cursor.21x21x1.bmp
new file mode 100644
index 0000000000..950426da11
--- /dev/null
+++ b/apps/plugins/bitmaps/mono/flipit_cursor.21x21x1.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/SOURCES b/apps/plugins/bitmaps/native/SOURCES
index b1393cf199..c7ed52b9cb 100644
--- a/apps/plugins/bitmaps/native/SOURCES
+++ b/apps/plugins/bitmaps/native/SOURCES
@@ -59,15 +59,19 @@ brickmania_break.132x80x16.bmp
59#elif LCD_DEPTH > 1 59#elif LCD_DEPTH > 1
60brickmania_gameover.86x43x2.bmp 60brickmania_gameover.86x43x2.bmp
61brickmania_menu_items.160x128x2.bmp 61brickmania_menu_items.160x128x2.bmp
62brickmania_ball.5x5x2.bmp
63brickmania_menu_bg.160x128x2.bmp 62brickmania_menu_bg.160x128x2.bmp
64brickmania_pads.160x128x2.bmp 63brickmania_pads.160x128x2.bmp
65brickmania_powerups.160x128x2.bmp 64brickmania_powerups.160x128x2.bmp
66brickmania_break.160x128x2.bmp 65//brickmania_break.160x128x2.bmp
67#if (LCD_WIDTH >= 160) 66#if (LCD_WIDTH >= 160)
67brickmania_ball.5x5x2.bmp
68brickmania_bricks.160x128x2.bmp 68brickmania_bricks.160x128x2.bmp
69#else /* Mini currently */ 69#elif LCD_WIDTH >= 138
70brickmania_ball.5x5x2.bmp
70brickmania_bricks.138x110x2.bmp 71brickmania_bricks.138x110x2.bmp
72#else /* M3 currently */
73brickmania_ball.4x4x2.bmp
74brickmania_bricks.128x96x2.bmp
71#endif 75#endif
72#else /* mono */ 76#else /* mono */
73brickmania_gameover.59x30x1.bmp 77brickmania_gameover.59x30x1.bmp
@@ -113,6 +117,8 @@ bubbles_background.132x80x16.bmp
113bubbles_emblem.160x128x2.bmp 117bubbles_emblem.160x128x2.bmp
114#elif (LCD_WIDTH >= 138) && (LCD_HEIGHT >= 110) 118#elif (LCD_WIDTH >= 138) && (LCD_HEIGHT >= 110)
115bubbles_emblem.138x110x2.bmp 119bubbles_emblem.138x110x2.bmp
120#elif (LCD_WIDTH >= 128) && (LCD_HEIGHT >= 96)
121bubbles_emblem.128x96x2.bmp
116#elif (LCD_WIDTH >= 112) && (LCD_HEIGHT >= 64) 122#elif (LCD_WIDTH >= 112) && (LCD_HEIGHT >= 64)
117bubbles_emblem.112x64x1.bmp 123bubbles_emblem.112x64x1.bmp
118#endif 124#endif
@@ -235,6 +241,8 @@ flipit_tokens.17x34x16.bmp
235flipit_tokens.28x56x2.bmp 241flipit_tokens.28x56x2.bmp
236#elif LCD_WIDTH >= 125 && LCD_HEIGHT >= 110 242#elif LCD_WIDTH >= 125 && LCD_HEIGHT >= 110
237flipit_tokens.25x50x2.bmp 243flipit_tokens.25x50x2.bmp
244#elif LCD_WIDTH >= 105 && LCD_HEIGHT >= 96
245flipit_tokens.21x42x2.bmp
238#endif 246#endif
239#else /* monochrome */ 247#else /* monochrome */
240#if LCD_WIDTH >= 140 && LCD_HEIGHT >= 122 248#if LCD_WIDTH >= 140 && LCD_HEIGHT >= 122
@@ -279,6 +287,8 @@ jewels.112x64x1.bmp
279jewels.128x128x16.bmp 287jewels.128x128x16.bmp
280#elif (LCD_WIDTH == 132) && (LCD_HEIGHT == 80) 288#elif (LCD_WIDTH == 132) && (LCD_HEIGHT == 80)
281jewels.132x80x16.bmp 289jewels.132x80x16.bmp
290#elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 96)
291jewels.128x96x2.bmp
282#elif (LCD_WIDTH == 138) && (LCD_HEIGHT == 110) 292#elif (LCD_WIDTH == 138) && (LCD_HEIGHT == 110)
283jewels.138x110x2.bmp 293jewels.138x110x2.bmp
284#elif (LCD_WIDTH == 160) && (LCD_HEIGHT == 128) && !defined(HAVE_LCD_COLOR) 294#elif (LCD_WIDTH == 160) && (LCD_HEIGHT == 128) && !defined(HAVE_LCD_COLOR)
@@ -333,6 +343,8 @@ rockblox_background.132x80x16.bmp
333rockblox_background.160x128x2.bmp 343rockblox_background.160x128x2.bmp
334#elif (LCD_WIDTH == 138) && (LCD_HEIGHT == 110) && (LCD_DEPTH == 2) 344#elif (LCD_WIDTH == 138) && (LCD_HEIGHT == 110) && (LCD_DEPTH == 2)
335rockblox_background.138x110x2.bmp 345rockblox_background.138x110x2.bmp
346#elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 96) && (LCD_DEPTH == 2)
347rockblox_background.128x96x2.bmp
336#endif 348#endif
337 349
338/* Rockpaint */ 350/* Rockpaint */
diff --git a/apps/plugins/bitmaps/native/brickmania_ball.4x4x2.bmp b/apps/plugins/bitmaps/native/brickmania_ball.4x4x2.bmp
new file mode 100644
index 0000000000..78329d958c
--- /dev/null
+++ b/apps/plugins/bitmaps/native/brickmania_ball.4x4x2.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/brickmania_bricks.128x96x2.bmp b/apps/plugins/bitmaps/native/brickmania_bricks.128x96x2.bmp
new file mode 100644
index 0000000000..fe126921a9
--- /dev/null
+++ b/apps/plugins/bitmaps/native/brickmania_bricks.128x96x2.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/brickmania_menu_bg.160x128x2.bmp b/apps/plugins/bitmaps/native/brickmania_menu_bg.160x128x2.bmp
index 4526af9025..40e6a21685 100644
--- a/apps/plugins/bitmaps/native/brickmania_menu_bg.160x128x2.bmp
+++ b/apps/plugins/bitmaps/native/brickmania_menu_bg.160x128x2.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/bubbles_emblem.128x96x2.bmp b/apps/plugins/bitmaps/native/bubbles_emblem.128x96x2.bmp
new file mode 100644
index 0000000000..2b5293bc3c
--- /dev/null
+++ b/apps/plugins/bitmaps/native/bubbles_emblem.128x96x2.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/flipit_tokens.21x42x2.bmp b/apps/plugins/bitmaps/native/flipit_tokens.21x42x2.bmp
new file mode 100644
index 0000000000..dba7d6af92
--- /dev/null
+++ b/apps/plugins/bitmaps/native/flipit_tokens.21x42x2.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/jewels.128x96x2.bmp b/apps/plugins/bitmaps/native/jewels.128x96x2.bmp
new file mode 100644
index 0000000000..adf9711b52
--- /dev/null
+++ b/apps/plugins/bitmaps/native/jewels.128x96x2.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/rockblox_background.128x96x2.bmp b/apps/plugins/bitmaps/native/rockblox_background.128x96x2.bmp
new file mode 100644
index 0000000000..3f2623cff0
--- /dev/null
+++ b/apps/plugins/bitmaps/native/rockblox_background.128x96x2.bmp
Binary files differ
diff --git a/apps/plugins/blackjack.c b/apps/plugins/blackjack.c
index b4f0da4b96..fc2f542077 100644
--- a/apps/plugins/blackjack.c
+++ b/apps/plugins/blackjack.c
@@ -234,6 +234,22 @@ PLUGIN_HEADER
234#define BJACK_RIGHT BUTTON_RIGHT 234#define BJACK_RIGHT BUTTON_RIGHT
235#define BJACK_LEFT BUTTON_LEFT 235#define BJACK_LEFT BUTTON_LEFT
236 236
237#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
238
239#define BJACK_START BUTTON_RC_PLAY
240#define BJACK_QUIT BUTTON_RC_REC
241#define BJACK_MAX (BUTTON_RC_PLAY|BUTTON_RC_VOL_UP)
242#define BJACK_MIN (BUTTON_RC_PLAY|BUTTON_RC_VOL_DOWN)
243#define BJACK_HIT BUTTON_RC_PLAY
244#define BJACK_STAY BUTTON_RC_FF
245#define BJACK_DOUBLEDOWN BUTTON_RC_REW
246#define BJACK_SCORES BUTTON_RC_MENU
247#define BJACK_RESUME BUTTON_RC_MODE
248#define BJACK_UP BUTTON_RC_VOL_UP
249#define BJACK_DOWN BUTTON_RC_VOL_DOWN
250#define BJACK_RIGHT BUTTON_RC_FF
251#define BJACK_LEFT BUTTON_RC_REW
252
237#else 253#else
238#error No keymap defined! 254#error No keymap defined!
239#endif 255#endif
diff --git a/apps/plugins/bounce.c b/apps/plugins/bounce.c
index f83d99306a..8216a396e9 100644
--- a/apps/plugins/bounce.c
+++ b/apps/plugins/bounce.c
@@ -30,18 +30,24 @@ PLUGIN_HEADER
30 30
31/* variable button definitions */ 31/* variable button definitions */
32#if CONFIG_KEYPAD == RECORDER_PAD 32#if CONFIG_KEYPAD == RECORDER_PAD
33#define BOUNCE_LEFT BUTTON_LEFT
34#define BOUNCE_RIGHT BUTTON_RIGHT
33#define BOUNCE_UP BUTTON_UP 35#define BOUNCE_UP BUTTON_UP
34#define BOUNCE_DOWN BUTTON_DOWN 36#define BOUNCE_DOWN BUTTON_DOWN
35#define BOUNCE_QUIT (BUTTON_OFF | BUTTON_REL) 37#define BOUNCE_QUIT (BUTTON_OFF | BUTTON_REL)
36#define BOUNCE_MODE (BUTTON_ON | BUTTON_REL) 38#define BOUNCE_MODE (BUTTON_ON | BUTTON_REL)
37 39
38#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD 40#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
41#define BOUNCE_LEFT BUTTON_LEFT
42#define BOUNCE_RIGHT BUTTON_RIGHT
39#define BOUNCE_UP BUTTON_UP 43#define BOUNCE_UP BUTTON_UP
40#define BOUNCE_DOWN BUTTON_DOWN 44#define BOUNCE_DOWN BUTTON_DOWN
41#define BOUNCE_QUIT (BUTTON_OFF | BUTTON_REL) 45#define BOUNCE_QUIT (BUTTON_OFF | BUTTON_REL)
42#define BOUNCE_MODE (BUTTON_ON | BUTTON_REL) 46#define BOUNCE_MODE (BUTTON_ON | BUTTON_REL)
43 47
44#elif CONFIG_KEYPAD == ONDIO_PAD 48#elif CONFIG_KEYPAD == ONDIO_PAD
49#define BOUNCE_LEFT BUTTON_LEFT
50#define BOUNCE_RIGHT BUTTON_RIGHT
45#define BOUNCE_UP BUTTON_UP 51#define BOUNCE_UP BUTTON_UP
46#define BOUNCE_DOWN BUTTON_DOWN 52#define BOUNCE_DOWN BUTTON_DOWN
47#define BOUNCE_QUIT (BUTTON_OFF | BUTTON_REL) 53#define BOUNCE_QUIT (BUTTON_OFF | BUTTON_REL)
@@ -49,6 +55,8 @@ PLUGIN_HEADER
49 55
50#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ 56#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
51 (CONFIG_KEYPAD == IRIVER_H300_PAD) 57 (CONFIG_KEYPAD == IRIVER_H300_PAD)
58#define BOUNCE_LEFT BUTTON_LEFT
59#define BOUNCE_RIGHT BUTTON_RIGHT
52#define BOUNCE_UP BUTTON_UP 60#define BOUNCE_UP BUTTON_UP
53#define BOUNCE_DOWN BUTTON_DOWN 61#define BOUNCE_DOWN BUTTON_DOWN
54#define BOUNCE_QUIT (BUTTON_OFF | BUTTON_REL) 62#define BOUNCE_QUIT (BUTTON_OFF | BUTTON_REL)
@@ -59,53 +67,77 @@ PLUGIN_HEADER
59#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ 67#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
60 (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 68 (CONFIG_KEYPAD == IPOD_3G_PAD) || \
61 (CONFIG_KEYPAD == IPOD_1G2G_PAD) 69 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
70#define BOUNCE_LEFT BUTTON_LEFT
71#define BOUNCE_RIGHT BUTTON_RIGHT
62#define BOUNCE_UP BUTTON_SCROLL_BACK 72#define BOUNCE_UP BUTTON_SCROLL_BACK
63#define BOUNCE_DOWN BUTTON_SCROLL_FWD 73#define BOUNCE_DOWN BUTTON_SCROLL_FWD
64#define BOUNCE_QUIT (BUTTON_MENU | BUTTON_REL) 74#define BOUNCE_QUIT (BUTTON_MENU | BUTTON_REL)
65#define BOUNCE_MODE (BUTTON_SELECT | BUTTON_REL) 75#define BOUNCE_MODE (BUTTON_SELECT | BUTTON_REL)
66 76
67#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) 77#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD)
78#define BOUNCE_LEFT BUTTON_LEFT
79#define BOUNCE_RIGHT BUTTON_RIGHT
68#define BOUNCE_UP BUTTON_UP 80#define BOUNCE_UP BUTTON_UP
69#define BOUNCE_DOWN BUTTON_DOWN 81#define BOUNCE_DOWN BUTTON_DOWN
70#define BOUNCE_QUIT BUTTON_POWER 82#define BOUNCE_QUIT BUTTON_POWER
71#define BOUNCE_MODE BUTTON_PLAY 83#define BOUNCE_MODE BUTTON_PLAY
72 84
73#elif (CONFIG_KEYPAD == GIGABEAT_PAD) 85#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
86#define BOUNCE_LEFT BUTTON_LEFT
87#define BOUNCE_RIGHT BUTTON_RIGHT
74#define BOUNCE_UP BUTTON_UP 88#define BOUNCE_UP BUTTON_UP
75#define BOUNCE_DOWN BUTTON_DOWN 89#define BOUNCE_DOWN BUTTON_DOWN
76#define BOUNCE_QUIT BUTTON_POWER 90#define BOUNCE_QUIT BUTTON_POWER
77#define BOUNCE_MODE BUTTON_A 91#define BOUNCE_MODE BUTTON_A
78 92
79#elif CONFIG_KEYPAD == SANSA_E200_PAD 93#elif CONFIG_KEYPAD == SANSA_E200_PAD
94#define BOUNCE_LEFT BUTTON_LEFT
95#define BOUNCE_RIGHT BUTTON_RIGHT
80#define BOUNCE_UP BUTTON_SCROLL_BACK 96#define BOUNCE_UP BUTTON_SCROLL_BACK
81#define BOUNCE_DOWN BUTTON_SCROLL_FWD 97#define BOUNCE_DOWN BUTTON_SCROLL_FWD
82#define BOUNCE_QUIT BUTTON_POWER 98#define BOUNCE_QUIT BUTTON_POWER
83#define BOUNCE_MODE BUTTON_SELECT 99#define BOUNCE_MODE BUTTON_SELECT
84 100
85#elif CONFIG_KEYPAD == SANSA_C200_PAD 101#elif CONFIG_KEYPAD == SANSA_C200_PAD
102#define BOUNCE_LEFT BUTTON_LEFT
103#define BOUNCE_RIGHT BUTTON_RIGHT
86#define BOUNCE_UP BUTTON_UP 104#define BOUNCE_UP BUTTON_UP
87#define BOUNCE_DOWN BUTTON_DOWN 105#define BOUNCE_DOWN BUTTON_DOWN
88#define BOUNCE_QUIT BUTTON_POWER 106#define BOUNCE_QUIT BUTTON_POWER
89#define BOUNCE_MODE BUTTON_SELECT 107#define BOUNCE_MODE BUTTON_SELECT
90 108
91#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 109#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
110#define BOUNCE_LEFT BUTTON_LEFT
111#define BOUNCE_RIGHT BUTTON_RIGHT
92#define BOUNCE_UP BUTTON_SCROLL_UP 112#define BOUNCE_UP BUTTON_SCROLL_UP
93#define BOUNCE_DOWN BUTTON_SCROLL_DOWN 113#define BOUNCE_DOWN BUTTON_SCROLL_DOWN
94#define BOUNCE_QUIT BUTTON_POWER 114#define BOUNCE_QUIT BUTTON_POWER
95#define BOUNCE_MODE BUTTON_PLAY 115#define BOUNCE_MODE BUTTON_PLAY
96 116
97#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) 117#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD)
118#define BOUNCE_LEFT BUTTON_LEFT
119#define BOUNCE_RIGHT BUTTON_RIGHT
98#define BOUNCE_UP BUTTON_UP 120#define BOUNCE_UP BUTTON_UP
99#define BOUNCE_DOWN BUTTON_DOWN 121#define BOUNCE_DOWN BUTTON_DOWN
100#define BOUNCE_QUIT BUTTON_BACK 122#define BOUNCE_QUIT BUTTON_BACK
101#define BOUNCE_MODE BUTTON_MENU 123#define BOUNCE_MODE BUTTON_MENU
102 124
103#elif (CONFIG_KEYPAD == MROBE100_PAD) 125#elif (CONFIG_KEYPAD == MROBE100_PAD)
126#define BOUNCE_LEFT BUTTON_LEFT
127#define BOUNCE_RIGHT BUTTON_RIGHT
104#define BOUNCE_UP BUTTON_UP 128#define BOUNCE_UP BUTTON_UP
105#define BOUNCE_DOWN BUTTON_DOWN 129#define BOUNCE_DOWN BUTTON_DOWN
106#define BOUNCE_QUIT BUTTON_POWER 130#define BOUNCE_QUIT BUTTON_POWER
107#define BOUNCE_MODE BUTTON_DISPLAY 131#define BOUNCE_MODE BUTTON_DISPLAY
108 132
133#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
134#define BOUNCE_LEFT BUTTON_RC_REW
135#define BOUNCE_RIGHT BUTTON_RC_FF
136#define BOUNCE_UP BUTTON_RC_VOL_UP
137#define BOUNCE_DOWN BUTTON_RC_VOL_DOWN
138#define BOUNCE_QUIT BUTTON_RC_REC
139#define BOUNCE_MODE BUTTON_RC_MODE
140
109#else 141#else
110#error No keymap defined! 142#error No keymap defined!
111#endif 143#endif
@@ -477,12 +509,12 @@ static int loopit(void)
477#endif 509#endif
478 if(timeout) { 510 if(timeout) {
479 switch(b) { 511 switch(b) {
480 case BUTTON_LEFT: 512 case BOUNCE_LEFT:
481 case BUTTON_LEFT|BUTTON_REPEAT: 513 case BOUNCE_LEFT|BUTTON_REPEAT:
482 values[show].num--; 514 values[show].num--;
483 break; 515 break;
484 case BUTTON_RIGHT: 516 case BOUNCE_RIGHT:
485 case BUTTON_RIGHT|BUTTON_REPEAT: 517 case BOUNCE_RIGHT|BUTTON_REPEAT:
486 values[show].num++; 518 values[show].num++;
487 break; 519 break;
488 case BOUNCE_UP: 520 case BOUNCE_UP:
diff --git a/apps/plugins/brickmania.c b/apps/plugins/brickmania.c
index b37dd97800..d376ad20d0 100644
--- a/apps/plugins/brickmania.c
+++ b/apps/plugins/brickmania.c
@@ -153,6 +153,17 @@ PLUGIN_HEADER
153#define UP BUTTON_UP 153#define UP BUTTON_UP
154#define DOWN BUTTON_DOWN 154#define DOWN BUTTON_DOWN
155 155
156#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
157
158#define QUIT BUTTON_RC_REC
159#define LEFT BUTTON_RC_REW
160#define RIGHT BUTTON_RC_FF
161#define SELECT BUTTON_RC_PLAY
162#define UP BUTTON_RC_VOL_UP
163#define DOWN BUTTON_RC_VOL_DOWN
164
165#define RC_QUIT BUTTON_REC
166
156#else 167#else
157#error No keymap defined! 168#error No keymap defined!
158#endif 169#endif
@@ -177,26 +188,6 @@ enum menu_items {
177 BM_SEL_QUIT, 188 BM_SEL_QUIT,
178}; 189};
179 190
180/* External bitmaps */
181#if (LCD_WIDTH != 112) && (LCD_HEIGHT != 64)
182extern const fb_data brickmania_menu_bg[];
183extern const fb_data brickmania_gameover[];
184#endif
185extern const fb_data brickmania_menu_items[];
186extern const fb_data brickmania_ball[];
187#ifdef HAVE_LCD_COLOR
188extern const fb_data brickmania_break[];
189#endif
190
191/* normal, glue, fire */
192extern const fb_data brickmania_pads[];
193
194/* +life, -life, glue, fire, normal */
195extern const fb_data brickmania_powerups[];
196
197/* purple, red, blue, pink, green, yellow orange */
198extern const fb_data brickmania_bricks[];
199
200#include "brickmania_pads.h" 191#include "brickmania_pads.h"
201#include "brickmania_bricks.h" 192#include "brickmania_bricks.h"
202#include "brickmania_powerups.h" 193#include "brickmania_powerups.h"
@@ -225,6 +216,9 @@ extern const fb_data brickmania_bricks[];
225#define MENU_BGWIDTH BMPWIDTH_brickmania_menu_bg 216#define MENU_BGWIDTH BMPWIDTH_brickmania_menu_bg
226#endif 217#endif
227 218
219#ifdef HAVE_LCD_COLOR /* currently no transparency for non-colour */
220#include "brickmania_break.h"
221#endif
228 222
229#if (LCD_WIDTH == 320) && (LCD_HEIGHT == 240) 223#if (LCD_WIDTH == 320) && (LCD_HEIGHT == 240)
230 224
@@ -350,7 +344,26 @@ extern const fb_data brickmania_bricks[];
350#define STRINGPOS_NAVI 44 344#define STRINGPOS_NAVI 44
351#define STRINGPOS_FLIP 44 345#define STRINGPOS_FLIP 44
352 346
347/* iAudio M3 */
348#elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 96)
349/* The time (in ms) for one iteration through the game loop - decrease this
350 to speed up the game - note that current_tick is (currently) only accurate
351 to 10ms.
352*/
353#define CYCLETIME 50
354
355#define TOPMARGIN 10
356
357#define BMPYOFS_start 42
358#define HIGHSCORE_XPOS 65
359#define HIGHSCORE_YPOS 25
360
361#define STRINGPOS_FINISH 54
362#define STRINGPOS_CONGRATS 44
363#define STRINGPOS_NAVI 44
364#define STRINGPOS_FLIP 44
353 365
366/* Archos */
354#elif (LCD_WIDTH == 112) && (LCD_HEIGHT == 64) 367#elif (LCD_WIDTH == 112) && (LCD_HEIGHT == 64)
355/* The time (in ms) for one iteration through the game loop - decrease this 368/* The time (in ms) for one iteration through the game loop - decrease this
356 to speed up the game - note that current_tick is (currently) only accurate 369 to speed up the game - note that current_tick is (currently) only accurate
@@ -1072,7 +1085,7 @@ int help(int when)
1072#if CONFIG_KEYPAD == ONDIO_PAD 1085#if CONFIG_KEYPAD == ONDIO_PAD
1073 rb->lcd_putsxy(1+xoffset, 7*(h+2)+yoffset, 1086 rb->lcd_putsxy(1+xoffset, 7*(h+2)+yoffset,
1074 "MENU Releases the ball/Fire!"); 1087 "MENU Releases the ball/Fire!");
1075#elif CONFIG_KEYPAD == RECORDER_PAD 1088#elif (CONFIG_KEYPAD == RECORDER_PAD) || (CONFIG_KEYPAD == IAUDIO_M3_PAD)
1076 rb->lcd_putsxy(1+xoffset, 7*(h+2)+yoffset, 1089 rb->lcd_putsxy(1+xoffset, 7*(h+2)+yoffset,
1077 "PLAY Releases the ball/Fire!"); 1090 "PLAY Releases the ball/Fire!");
1078#elif CONFIG_KEYPAD == IRIVER_H300_PAD 1091#elif CONFIG_KEYPAD == IRIVER_H300_PAD
@@ -1082,7 +1095,11 @@ int help(int when)
1082 rb->lcd_putsxy(1+xoffset, 7*(h+2)+yoffset, 1095 rb->lcd_putsxy(1+xoffset, 7*(h+2)+yoffset,
1083 "SELECT Releases the ball/Fire!"); 1096 "SELECT Releases the ball/Fire!");
1084#endif 1097#endif
1098#if CONFIG_KEYPAD == IAUDIO_M3_PAD
1099 rb->lcd_putsxy(1+xoffset, 8*(h+2)+yoffset, "REC Opens menu/Quit");
1100#else
1085 rb->lcd_putsxy(1+xoffset, 8*(h+2)+yoffset, "STOP Opens menu/Quit"); 1101 rb->lcd_putsxy(1+xoffset, 8*(h+2)+yoffset, "STOP Opens menu/Quit");
1102#endif
1086#ifdef HAVE_LCD_COLOR 1103#ifdef HAVE_LCD_COLOR
1087 rb->lcd_set_foreground(LCD_RGBPACK(245,0,0)); 1104 rb->lcd_set_foreground(LCD_RGBPACK(245,0,0));
1088 rb->lcd_putsxy(1+xoffset, 10*(h+2)+yoffset, "Specials"); 1105 rb->lcd_putsxy(1+xoffset, 10*(h+2)+yoffset, "Specials");
@@ -1291,6 +1308,8 @@ int game_loop(void)
1291 rb->snprintf(s, sizeof(s), "MENU To Continue"); 1308 rb->snprintf(s, sizeof(s), "MENU To Continue");
1292#elif CONFIG_KEYPAD == IRIVER_H300_PAD 1309#elif CONFIG_KEYPAD == IRIVER_H300_PAD
1293 rb->snprintf(s, sizeof(s), "Press NAVI To Continue"); 1310 rb->snprintf(s, sizeof(s), "Press NAVI To Continue");
1311#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
1312 rb->snprintf(s, sizeof(s), "PLAY To Continue");
1294#else 1313#else
1295 rb->snprintf(s, sizeof(s), "Press SELECT To Continue"); 1314 rb->snprintf(s, sizeof(s), "Press SELECT To Continue");
1296#endif 1315#endif
@@ -1794,7 +1813,8 @@ int game_loop(void)
1794 int button_right,button_left; 1813 int button_right,button_left;
1795 button=rb->button_get(false); 1814 button=rb->button_get(false);
1796 1815
1797#ifdef HAS_BUTTON_HOLD 1816#if defined(HAS_BUTTON_HOLD) && !defined(HAVE_REMOTE_LCD_AS_MAIN)
1817 /* FIXME: Should probably check remote hold here */
1798 if (rb->button_hold()) 1818 if (rb->button_hold())
1799 button = QUIT; 1819 button = QUIT;
1800#endif 1820#endif
diff --git a/apps/plugins/bubbles.c b/apps/plugins/bubbles.c
index 05ce15d75b..85cde59188 100644
--- a/apps/plugins/bubbles.c
+++ b/apps/plugins/bubbles.c
@@ -95,14 +95,21 @@ PLUGIN_HEADER
95 95
96#endif 96#endif
97 97
98/* external bitmaps */
99#ifdef HAVE_LCD_COLOR
100#include "bubbles_background.h"
101#endif
102#include "bubbles_bubble.h"
103#include "bubbles_emblem.h"
104
105#define BUBBLE_WIDTH BMPWIDTH_bubbles_bubble
106#define BUBBLE_HEIGHT BMPHEIGHT_bubbles_bubble
107#define EMBLEM_WIDTH BMPWIDTH_bubbles_emblem
108#define EMBLEM_HEIGHT (BMPHEIGHT_bubbles_emblem/8)
98 109
99/* bubbles will consume height of ROW_HEIGHT*(BB_HEIGHT-1)+BUBBLE_HEIGHT*3/2 */ 110/* bubbles will consume height of ROW_HEIGHT*(BB_HEIGHT-1)+BUBBLE_HEIGHT*3/2 */
100/* 22x22 bubbles (iPod Video) */ 111/* 22x22 bubbles (iPod Video) */
101#if (LCD_HEIGHT == 240) && (LCD_WIDTH == 320) 112#if (LCD_HEIGHT == 240) && (LCD_WIDTH == 320)
102#define BUBBLE_WIDTH 22
103#define BUBBLE_HEIGHT 22
104#define EMBLEM_WIDTH 16
105#define EMBLEM_HEIGHT 16
106#define XOFS 72 113#define XOFS 72
107#define ROW_HEIGHT 18 114#define ROW_HEIGHT 18
108#define ROW_INDENT 11 115#define ROW_INDENT 11
@@ -110,10 +117,6 @@ PLUGIN_HEADER
110 117
111/* 22x22 bubbles (Gigabeat) */ 118/* 22x22 bubbles (Gigabeat) */
112#elif (LCD_HEIGHT == 320) && (LCD_WIDTH == 240) 119#elif (LCD_HEIGHT == 320) && (LCD_WIDTH == 240)
113#define BUBBLE_WIDTH 22
114#define BUBBLE_HEIGHT 22
115#define EMBLEM_WIDTH 16
116#define EMBLEM_HEIGHT 16
117#define XOFS 64 120#define XOFS 64
118#define ROW_HEIGHT 18 121#define ROW_HEIGHT 18
119#define ROW_INDENT 11 122#define ROW_INDENT 11
@@ -121,10 +124,6 @@ PLUGIN_HEADER
121 124
122/* 16x16 bubbles (H300, iPod Color) */ 125/* 16x16 bubbles (H300, iPod Color) */
123#elif (LCD_HEIGHT == 176) && (LCD_WIDTH == 220) 126#elif (LCD_HEIGHT == 176) && (LCD_WIDTH == 220)
124#define BUBBLE_WIDTH 16
125#define BUBBLE_HEIGHT 16
126#define EMBLEM_WIDTH 12
127#define EMBLEM_HEIGHT 12
128#define XOFS 46 127#define XOFS 46
129#define ROW_HEIGHT 14 128#define ROW_HEIGHT 14
130#define ROW_INDENT 8 129#define ROW_INDENT 8
@@ -132,10 +131,6 @@ PLUGIN_HEADER
132 131
133/* 16x16 bubbles (Sansa E200) */ 132/* 16x16 bubbles (Sansa E200) */
134#elif (LCD_HEIGHT == 220) && (LCD_WIDTH == 176) 133#elif (LCD_HEIGHT == 220) && (LCD_WIDTH == 176)
135#define BUBBLE_WIDTH 16
136#define BUBBLE_HEIGHT 16
137#define EMBLEM_WIDTH 12
138#define EMBLEM_HEIGHT 12
139#define XOFS 48 134#define XOFS 48
140#define ROW_HEIGHT 14 135#define ROW_HEIGHT 14
141#define ROW_INDENT 8 136#define ROW_INDENT 8
@@ -143,10 +138,6 @@ PLUGIN_HEADER
143 138
144/* 12x12 bubbles (iPod Nano) */ 139/* 12x12 bubbles (iPod Nano) */
145#elif (LCD_HEIGHT == 132) && (LCD_WIDTH == 176) 140#elif (LCD_HEIGHT == 132) && (LCD_WIDTH == 176)
146#define BUBBLE_WIDTH 12
147#define BUBBLE_HEIGHT 12
148#define EMBLEM_WIDTH 8
149#define EMBLEM_HEIGHT 8
150#define XOFS 40 141#define XOFS 40
151#define ROW_HEIGHT 10 142#define ROW_HEIGHT 10
152#define ROW_INDENT 6 143#define ROW_INDENT 6
@@ -154,10 +145,6 @@ PLUGIN_HEADER
154 145
155/* 12x12 bubbles (H100, H10, iAudio X5, iPod 3G, iPod 4G grayscale) */ 146/* 12x12 bubbles (H100, H10, iAudio X5, iPod 3G, iPod 4G grayscale) */
156#elif (LCD_HEIGHT == 128) && ((LCD_WIDTH == 160) || (LCD_WIDTH == 128)) 147#elif (LCD_HEIGHT == 128) && ((LCD_WIDTH == 160) || (LCD_WIDTH == 128))
157#define BUBBLE_WIDTH 12
158#define BUBBLE_HEIGHT 12
159#define EMBLEM_WIDTH 8
160#define EMBLEM_HEIGHT 8
161#define XOFS 33 148#define XOFS 33
162#define ROW_HEIGHT 10 149#define ROW_HEIGHT 10
163#define ROW_INDENT 6 150#define ROW_INDENT 6
@@ -165,21 +152,20 @@ PLUGIN_HEADER
165 152
166/* 10x10 bubbles (iPod Mini) */ 153/* 10x10 bubbles (iPod Mini) */
167#elif (LCD_HEIGHT == 110) && (LCD_WIDTH == 138) 154#elif (LCD_HEIGHT == 110) && (LCD_WIDTH == 138)
168#define BUBBLE_WIDTH 10
169#define BUBBLE_HEIGHT 10
170#define EMBLEM_WIDTH 6
171#define EMBLEM_HEIGHT 6
172#define XOFS 33 155#define XOFS 33
173#define ROW_HEIGHT 8 156#define ROW_HEIGHT 8
174#define ROW_INDENT 5 157#define ROW_INDENT 5
175#define MAX_FPS 30 158#define MAX_FPS 30
176 159
160/* 9x9 bubbles (iAudio M3) */
161#elif (LCD_HEIGHT == 96) && (LCD_WIDTH == 128)
162#define XOFS 45
163#define ROW_HEIGHT 7
164#define ROW_INDENT 4
165#define MAX_FPS 30
166
177/* 8x8 bubbles (Sansa C200) */ 167/* 8x8 bubbles (Sansa C200) */
178#elif (LCD_HEIGHT == 80) && (LCD_WIDTH == 132) 168#elif (LCD_HEIGHT == 80) && (LCD_WIDTH == 132)
179#define BUBBLE_WIDTH 8
180#define BUBBLE_HEIGHT 8
181#define EMBLEM_WIDTH 6
182#define EMBLEM_HEIGHT 6
183#define XOFS 45 169#define XOFS 45
184#define ROW_HEIGHT 6 170#define ROW_HEIGHT 6
185#define ROW_INDENT 4 171#define ROW_INDENT 4
@@ -187,10 +173,6 @@ PLUGIN_HEADER
187 173
188/* 8x7 bubbles (Archos recorder, Ondio) */ 174/* 8x7 bubbles (Archos recorder, Ondio) */
189#elif (LCD_HEIGHT == 64) && (LCD_WIDTH == 112) 175#elif (LCD_HEIGHT == 64) && (LCD_WIDTH == 112)
190#define BUBBLE_WIDTH 8
191#define BUBBLE_HEIGHT 7
192#define EMBLEM_WIDTH 7
193#define EMBLEM_HEIGHT 5
194#define XOFS 33 176#define XOFS 33
195#define ROW_HEIGHT 5 177#define ROW_HEIGHT 5
196#define ROW_INDENT 4 178#define ROW_INDENT 4
@@ -209,13 +191,6 @@ PLUGIN_HEADER
209/* collision distance squared */ 191/* collision distance squared */
210#define MIN_DISTANCE ((BUBBLE_WIDTH*8)/10)*((BUBBLE_HEIGHT*8)/10) 192#define MIN_DISTANCE ((BUBBLE_WIDTH*8)/10)*((BUBBLE_HEIGHT*8)/10)
211 193
212/* external bitmaps */
213extern const fb_data bubbles_bubble[];
214extern const fb_data bubbles_emblem[];
215#ifdef HAVE_LCD_COLOR
216extern const fb_data bubbles_background[];
217#endif
218
219/* global rockbox api */ 194/* global rockbox api */
220static struct plugin_api* rb; 195static struct plugin_api* rb;
221 196
@@ -2473,6 +2448,14 @@ static int bubbles(struct game_context* bb) {
2473 rb->lcd_puts(0, 4, "POWER to exit"); 2448 rb->lcd_puts(0, 4, "POWER to exit");
2474 rb->lcd_puts_scroll(0, 5, "SELECT to fire and show high scores, " 2449 rb->lcd_puts_scroll(0, 5, "SELECT to fire and show high scores, "
2475 "LEFT/RIGHT to aim and change level"); 2450 "LEFT/RIGHT to aim and change level");
2451#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
2452 rb->lcd_puts(0, 2, "PLAY to start/pause");
2453 rb->lcd_puts(0, 3, "MENU to save/resume");
2454 rb->lcd_puts(0, 4, "REC to exit");
2455 rb->lcd_puts(0, 5, "MODE to fire");
2456 rb->lcd_puts(0, 6, " and show high scores");
2457 rb->lcd_puts(0, 7, "REW/FF to aim");
2458 rb->lcd_puts(0, 8, "VOL UP/DN to change level");
2476#endif 2459#endif
2477#if LCD_WIDTH >= 138 2460#if LCD_WIDTH >= 138
2478 rb->snprintf(str, 28, "Start on level %d of %d", startlevel+1, 2461 rb->snprintf(str, 28, "Start on level %d of %d", startlevel+1,
diff --git a/apps/plugins/calculator.c b/apps/plugins/calculator.c
index cfc0f76448..53be78fdd9 100644
--- a/apps/plugins/calculator.c
+++ b/apps/plugins/calculator.c
@@ -108,6 +108,8 @@ PLUGIN_HEADER
108 108
109/* variable button definitions */ 109/* variable button definitions */
110#if CONFIG_KEYPAD == RECORDER_PAD 110#if CONFIG_KEYPAD == RECORDER_PAD
111#define CALCULATOR_LEFT BUTTON_LEFT
112#define CALCULATOR_RIGHT BUTTON_RIGHT
111#define CALCULATOR_UP BUTTON_UP 113#define CALCULATOR_UP BUTTON_UP
112#define CALCULATOR_DOWN BUTTON_DOWN 114#define CALCULATOR_DOWN BUTTON_DOWN
113#define CALCULATOR_QUIT BUTTON_OFF 115#define CALCULATOR_QUIT BUTTON_OFF
@@ -117,6 +119,8 @@ PLUGIN_HEADER
117#define CALCULATOR_CLEAR BUTTON_F1 119#define CALCULATOR_CLEAR BUTTON_F1
118 120
119#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD 121#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
122#define CALCULATOR_LEFT BUTTON_LEFT
123#define CALCULATOR_RIGHT BUTTON_RIGHT
120#define CALCULATOR_UP BUTTON_UP 124#define CALCULATOR_UP BUTTON_UP
121#define CALCULATOR_DOWN BUTTON_DOWN 125#define CALCULATOR_DOWN BUTTON_DOWN
122#define CALCULATOR_QUIT BUTTON_OFF 126#define CALCULATOR_QUIT BUTTON_OFF
@@ -126,6 +130,8 @@ PLUGIN_HEADER
126#define CALCULATOR_CLEAR BUTTON_F1 130#define CALCULATOR_CLEAR BUTTON_F1
127 131
128#elif CONFIG_KEYPAD == ONDIO_PAD 132#elif CONFIG_KEYPAD == ONDIO_PAD
133#define CALCULATOR_LEFT BUTTON_LEFT
134#define CALCULATOR_RIGHT BUTTON_RIGHT
129#define CALCULATOR_UP BUTTON_UP 135#define CALCULATOR_UP BUTTON_UP
130#define CALCULATOR_DOWN BUTTON_DOWN 136#define CALCULATOR_DOWN BUTTON_DOWN
131#define CALCULATOR_QUIT BUTTON_OFF 137#define CALCULATOR_QUIT BUTTON_OFF
@@ -135,6 +141,8 @@ PLUGIN_HEADER
135 141
136#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ 142#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
137 (CONFIG_KEYPAD == IRIVER_H300_PAD) 143 (CONFIG_KEYPAD == IRIVER_H300_PAD)
144#define CALCULATOR_LEFT BUTTON_LEFT
145#define CALCULATOR_RIGHT BUTTON_RIGHT
138#define CALCULATOR_UP BUTTON_UP 146#define CALCULATOR_UP BUTTON_UP
139#define CALCULATOR_DOWN BUTTON_DOWN 147#define CALCULATOR_DOWN BUTTON_DOWN
140#define CALCULATOR_QUIT BUTTON_OFF 148#define CALCULATOR_QUIT BUTTON_OFF
@@ -149,6 +157,8 @@ PLUGIN_HEADER
149 (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 157 (CONFIG_KEYPAD == IPOD_3G_PAD) || \
150 (CONFIG_KEYPAD == IPOD_1G2G_PAD) 158 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
151 159
160#define CALCULATOR_LEFT BUTTON_LEFT
161#define CALCULATOR_RIGHT BUTTON_RIGHT
152#define CALCULATOR_UP BUTTON_SCROLL_BACK 162#define CALCULATOR_UP BUTTON_SCROLL_BACK
153#define CALCULATOR_DOWN BUTTON_SCROLL_FWD 163#define CALCULATOR_DOWN BUTTON_SCROLL_FWD
154#define CALCULATOR_QUIT BUTTON_MENU 164#define CALCULATOR_QUIT BUTTON_MENU
@@ -158,6 +168,8 @@ PLUGIN_HEADER
158 168
159#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) 169#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD)
160 170
171#define CALCULATOR_LEFT BUTTON_LEFT
172#define CALCULATOR_RIGHT BUTTON_RIGHT
161#define CALCULATOR_UP BUTTON_UP 173#define CALCULATOR_UP BUTTON_UP
162#define CALCULATOR_DOWN BUTTON_DOWN 174#define CALCULATOR_DOWN BUTTON_DOWN
163#define CALCULATOR_QUIT BUTTON_POWER 175#define CALCULATOR_QUIT BUTTON_POWER
@@ -168,6 +180,8 @@ PLUGIN_HEADER
168 180
169#elif (CONFIG_KEYPAD == GIGABEAT_PAD) 181#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
170 182
183#define CALCULATOR_LEFT BUTTON_LEFT
184#define CALCULATOR_RIGHT BUTTON_RIGHT
171#define CALCULATOR_UP BUTTON_UP 185#define CALCULATOR_UP BUTTON_UP
172#define CALCULATOR_DOWN BUTTON_DOWN 186#define CALCULATOR_DOWN BUTTON_DOWN
173#define CALCULATOR_QUIT BUTTON_POWER 187#define CALCULATOR_QUIT BUTTON_POWER
@@ -177,6 +191,8 @@ PLUGIN_HEADER
177 191
178#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ 192#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
179(CONFIG_KEYPAD == SANSA_C200_PAD) 193(CONFIG_KEYPAD == SANSA_C200_PAD)
194#define CALCULATOR_LEFT BUTTON_LEFT
195#define CALCULATOR_RIGHT BUTTON_RIGHT
180#define CALCULATOR_UP BUTTON_UP 196#define CALCULATOR_UP BUTTON_UP
181#define CALCULATOR_DOWN BUTTON_DOWN 197#define CALCULATOR_DOWN BUTTON_DOWN
182#define CALCULATOR_QUIT BUTTON_POWER 198#define CALCULATOR_QUIT BUTTON_POWER
@@ -187,6 +203,8 @@ PLUGIN_HEADER
187 203
188#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 204#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
189 205
206#define CALCULATOR_LEFT BUTTON_LEFT
207#define CALCULATOR_RIGHT BUTTON_RIGHT
190#define CALCULATOR_UP BUTTON_SCROLL_UP 208#define CALCULATOR_UP BUTTON_SCROLL_UP
191#define CALCULATOR_DOWN BUTTON_SCROLL_DOWN 209#define CALCULATOR_DOWN BUTTON_SCROLL_DOWN
192#define CALCULATOR_QUIT BUTTON_POWER 210#define CALCULATOR_QUIT BUTTON_POWER
@@ -197,6 +215,8 @@ PLUGIN_HEADER
197 215
198#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) 216#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD)
199 217
218#define CALCULATOR_LEFT BUTTON_LEFT
219#define CALCULATOR_RIGHT BUTTON_RIGHT
200#define CALCULATOR_UP BUTTON_UP 220#define CALCULATOR_UP BUTTON_UP
201#define CALCULATOR_DOWN BUTTON_DOWN 221#define CALCULATOR_DOWN BUTTON_DOWN
202#define CALCULATOR_QUIT BUTTON_BACK 222#define CALCULATOR_QUIT BUTTON_BACK
@@ -207,6 +227,8 @@ PLUGIN_HEADER
207 227
208#elif (CONFIG_KEYPAD == MROBE100_PAD) 228#elif (CONFIG_KEYPAD == MROBE100_PAD)
209 229
230#define CALCULATOR_LEFT BUTTON_LEFT
231#define CALCULATOR_RIGHT BUTTON_RIGHT
210#define CALCULATOR_UP BUTTON_UP 232#define CALCULATOR_UP BUTTON_UP
211#define CALCULATOR_DOWN BUTTON_DOWN 233#define CALCULATOR_DOWN BUTTON_DOWN
212#define CALCULATOR_QUIT BUTTON_POWER 234#define CALCULATOR_QUIT BUTTON_POWER
@@ -214,6 +236,19 @@ PLUGIN_HEADER
214#define CALCULATOR_CALC BUTTON_MENU 236#define CALCULATOR_CALC BUTTON_MENU
215#define CALCULATOR_CLEAR BUTTON_DISPLAY 237#define CALCULATOR_CLEAR BUTTON_DISPLAY
216 238
239#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
240
241#define CALCULATOR_LEFT BUTTON_RC_REW
242#define CALCULATOR_RIGHT BUTTON_RC_FF
243#define CALCULATOR_UP BUTTON_RC_VOL_UP
244#define CALCULATOR_DOWN BUTTON_RC_VOL_DOWN
245#define CALCULATOR_QUIT BUTTON_RC_REC
246#define CALCULATOR_INPUT BUTTON_RC_PLAY
247#define CALCULATOR_CALC BUTTON_RC_MODE
248#define CALCULATOR_CLEAR BUTTON_RC_MENU
249
250#define CALCULATOR_RC_QUIT BUTTON_REC
251
217#else 252#else
218#error No keymap defined! 253#error No keymap defined!
219#endif 254#endif
@@ -763,16 +798,16 @@ Invert display new button, invert back previous button
763----------------------------------------------------------------------- */ 798----------------------------------------------------------------------- */
764void moveButton(void){ 799void moveButton(void){
765 switch(btn){ 800 switch(btn){
766 case BUTTON_LEFT: 801 case CALCULATOR_LEFT:
767 case BUTTON_LEFT | BUTTON_REPEAT: 802 case CALCULATOR_LEFT | BUTTON_REPEAT:
768 if (n == 0) 803 if (n == 0)
769 n = 4; 804 n = 4;
770 else 805 else
771 n--; 806 n--;
772 break; 807 break;
773 808
774 case BUTTON_RIGHT: 809 case CALCULATOR_RIGHT:
775 case BUTTON_RIGHT | BUTTON_REPEAT: 810 case CALCULATOR_RIGHT | BUTTON_REPEAT:
776 if (n == 4) 811 if (n == 4)
777 n = 0; 812 n = 0;
778 else 813 else
@@ -1458,10 +1493,10 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
1458 break; 1493 break;
1459#endif 1494#endif
1460 1495
1461 case BUTTON_LEFT: 1496 case CALCULATOR_LEFT:
1462 case BUTTON_LEFT | BUTTON_REPEAT: 1497 case CALCULATOR_LEFT | BUTTON_REPEAT:
1463 case BUTTON_RIGHT: 1498 case CALCULATOR_RIGHT:
1464 case BUTTON_RIGHT | BUTTON_REPEAT: 1499 case CALCULATOR_RIGHT | BUTTON_REPEAT:
1465 case CALCULATOR_UP: 1500 case CALCULATOR_UP:
1466 case CALCULATOR_UP | BUTTON_REPEAT: 1501 case CALCULATOR_UP | BUTTON_REPEAT:
1467 case CALCULATOR_DOWN: 1502 case CALCULATOR_DOWN:
diff --git a/apps/plugins/chessclock.c b/apps/plugins/chessclock.c
index 6523021b6d..7d16c7c629 100644
--- a/apps/plugins/chessclock.c
+++ b/apps/plugins/chessclock.c
@@ -170,6 +170,16 @@ PLUGIN_HEADER
170#define CHC_SETTINGS_OK BUTTON_SELECT 170#define CHC_SETTINGS_OK BUTTON_SELECT
171#define CHC_SETTINGS_CANCEL BUTTON_POWER 171#define CHC_SETTINGS_CANCEL BUTTON_POWER
172 172
173#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
174#define CHC_QUIT BUTTON_RC_REC
175#define CHC_STARTSTOP BUTTON_RC_PLAY
176#define CHC_RESET BUTTON_RC_REW
177#define CHC_MENU BUTTON_RC_MENU
178#define CHC_SETTINGS_INC BUTTON_RC_VOL_UP
179#define CHC_SETTINGS_DEC BUTTON_RC_VOL_DOWN
180#define CHC_SETTINGS_OK BUTTON_RC_PLAY
181#define CHC_SETTINGS_CANCEL BUTTON_RC_REC
182
173#else 183#else
174#error No keymap defined! 184#error No keymap defined!
175#endif 185#endif
diff --git a/apps/plugins/chip8.c b/apps/plugins/chip8.c
index ab685e5288..5fbf1be7fb 100644
--- a/apps/plugins/chip8.c
+++ b/apps/plugins/chip8.c
@@ -1067,6 +1067,16 @@ STATIC void chip8 (void)
1067#define CHIP8_KEY7 BUTTON_DISPLAY 1067#define CHIP8_KEY7 BUTTON_DISPLAY
1068#define CHIP8_KEY8 BUTTON_DOWN 1068#define CHIP8_KEY8 BUTTON_DOWN
1069 1069
1070#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
1071#define CHIP8_OFF BUTTON_RC_REC
1072#define CHIP8_KEY1 BUTTON_RC_MENU
1073#define CHIP8_KEY2 BUTTON_RC_VOL_UP
1074#define CHIP8_KEY3 BUTTON_RC_MODE
1075#define CHIP8_KEY4 BUTTON_RC_REW
1076#define CHIP8_KEY5 BUTTON_RC_PLAY
1077#define CHIP8_KEY6 BUTTON_RC_FF
1078#define CHIP8_KEY8 BUTTON_RC_VOL_DOWN
1079
1070#else 1080#else
1071#error No keymap defined! 1081#error No keymap defined!
1072#endif 1082#endif
diff --git a/apps/plugins/chopper.c b/apps/plugins/chopper.c
index 92b01cd859..02cc2ffd92 100644
--- a/apps/plugins/chopper.c
+++ b/apps/plugins/chopper.c
@@ -97,6 +97,12 @@ Still To do:
97#define ACTION BUTTON_SELECT 97#define ACTION BUTTON_SELECT
98#define ACTIONTEXT "SELECT" 98#define ACTIONTEXT "SELECT"
99 99
100#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
101#define QUIT BUTTON_RC_REC
102#define ACTION BUTTON_RC_PLAY
103#define ACTION2 BUTTON_RC_MODE
104#define ACTIONTEXT "PLAY"
105
100#else 106#else
101#error No keymap defined! 107#error No keymap defined!
102#endif 108#endif
diff --git a/apps/plugins/cube.c b/apps/plugins/cube.c
index dfc6bb329b..96d95fc4d0 100644
--- a/apps/plugins/cube.c
+++ b/apps/plugins/cube.c
@@ -229,6 +229,18 @@ PLUGIN_HEADER
229#define CUBE_PAUSE BUTTON_PLAY 229#define CUBE_PAUSE BUTTON_PLAY
230#define CUBE_HIGHSPEED BUTTON_SELECT 230#define CUBE_HIGHSPEED BUTTON_SELECT
231 231
232#elif (CONFIG_KEYPAD == IAUDIO_M3_PAD)
233#define CUBE_QUIT BUTTON_RC_REC
234#define CUBE_X_INC BUTTON_RC_FF
235#define CUBE_X_DEC BUTTON_RC_REW
236#define CUBE_Y_INC BUTTON_RC_VOL_UP
237#define CUBE_Y_DEC BUTTON_RC_VOL_DOWN
238#define CUBE_Z_INC BUTTON_VOL_UP /* FIXME: quick hack */
239#define CUBE_Z_DEC BUTTON_VOL_DOWN
240#define CUBE_MODE BUTTON_RC_MODE
241#define CUBE_PAUSE BUTTON_RC_PLAY
242#define CUBE_HIGHSPEED BUTTON_RC_MENU
243
232#else 244#else
233#error No keymap defined! 245#error No keymap defined!
234#endif 246#endif
diff --git a/apps/plugins/dict.c b/apps/plugins/dict.c
index e354097a2a..159d1c669f 100644
--- a/apps/plugins/dict.c
+++ b/apps/plugins/dict.c
@@ -125,6 +125,8 @@ long reverse (long N) {
125#define LP_QUIT BUTTON_POWER 125#define LP_QUIT BUTTON_POWER
126#elif CONFIG_KEYPAD == GIGABEAT_S_PAD 126#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
127#define LP_QUIT BUTTON_BACK 127#define LP_QUIT BUTTON_BACK
128#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
129#define LP_QUIT BUTTON_RC_REC
128#else 130#else
129#define LP_QUIT BUTTON_OFF 131#define LP_QUIT BUTTON_OFF
130#endif 132#endif
diff --git a/apps/plugins/disktidy.c b/apps/plugins/disktidy.c
index be3407e13e..3bf8f3507d 100644
--- a/apps/plugins/disktidy.c
+++ b/apps/plugins/disktidy.c
@@ -79,6 +79,9 @@ enum tidy_system
79#elif CONFIG_KEYPAD == MROBE100_PAD 79#elif CONFIG_KEYPAD == MROBE100_PAD
80#define TIDY_STOP BUTTON_POWER 80#define TIDY_STOP BUTTON_POWER
81 81
82#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
83#define TIDY_STOP BUTTON_RC_REC
84
82#else 85#else
83#error No keymap defined! 86#error No keymap defined!
84#endif 87#endif
diff --git a/apps/plugins/fireworks.c b/apps/plugins/fireworks.c
index e233a8ea66..68fe2ebe25 100644
--- a/apps/plugins/fireworks.c
+++ b/apps/plugins/fireworks.c
@@ -66,6 +66,12 @@ static struct plugin_api* rb;
66#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 66#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
67#define BTN_MENU BUTTON_POWER 67#define BTN_MENU BUTTON_POWER
68#define BTN_FIRE BUTTON_PLAY 68#define BTN_FIRE BUTTON_PLAY
69#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
70#define BTN_MENU BUTTON_RC_REC
71#define BTN_FIRE BUTTON_RC_PLAY
72
73#else
74#error No keymap defined!
69#endif 75#endif
70 76
71/* The lowdown on source terminology: 77/* The lowdown on source terminology:
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 */
diff --git a/apps/plugins/jewels.c b/apps/plugins/jewels.c
index 76019f56f4..5579c194e8 100644
--- a/apps/plugins/jewels.c
+++ b/apps/plugins/jewels.c
@@ -128,6 +128,16 @@ PLUGIN_HEADER
128#define JEWELS_SELECT BUTTON_SELECT 128#define JEWELS_SELECT BUTTON_SELECT
129#define JEWELS_CANCEL BUTTON_POWER 129#define JEWELS_CANCEL BUTTON_POWER
130 130
131#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
132#define JEWELS_UP BUTTON_RC_VOL_UP
133#define JEWELS_DOWN BUTTON_RC_VOL_DOWN
134#define JEWELS_LEFT BUTTON_RC_REW
135#define JEWELS_RIGHT BUTTON_RC_FF
136#define JEWELS_SELECT BUTTON_RC_PLAY
137#define JEWELS_CANCEL BUTTON_RC_REC
138
139#define JEWELS_RC_CANCEL BUTTON_REC
140
131#else 141#else
132#error No keymap defined! 142#error No keymap defined!
133#endif 143#endif
@@ -176,6 +186,13 @@ PLUGIN_HEADER
176#define YOFS 6 186#define YOFS 6
177#define NUM_SCORES 10 187#define NUM_SCORES 10
178 188
189/* use 12x12 tiles (iAudio M3) */
190#elif (LCD_HEIGHT == 96) && (LCD_WIDTH == 128)
191#define TILE_WIDTH 12
192#define TILE_HEIGHT 12
193#define YOFS 0
194#define NUM_SCORES 9
195
179/* use 10x10 tiles (Sansa c200) */ 196/* use 10x10 tiles (Sansa c200) */
180#elif (LCD_HEIGHT == 80) && (LCD_WIDTH == 132) 197#elif (LCD_HEIGHT == 80) && (LCD_WIDTH == 132)
181#define TILE_WIDTH 10 198#define TILE_WIDTH 10
@@ -1527,6 +1544,17 @@ static int jewels_main(struct game_context* bj) {
1527 rb->lcd_puts(0, 10, "PLAY to select"); 1544 rb->lcd_puts(0, 10, "PLAY to select");
1528 rb->lcd_puts(0, 11, "Long PLAY for menu"); 1545 rb->lcd_puts(0, 11, "Long PLAY for menu");
1529 rb->lcd_puts(0, 12, "POWER to cancel"); 1546 rb->lcd_puts(0, 12, "POWER to cancel");
1547#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
1548 rb->lcd_puts(0, 2, "Swap pairs of jewels");
1549 rb->lcd_puts(0, 3, "to form connected");
1550 rb->lcd_puts(0, 4, "segments of three or ");
1551 rb->lcd_puts(0, 5, "more of the");
1552 rb->lcd_puts(0, 6, "same type.");
1553 rb->lcd_puts(0, 8, "Controls:");
1554 rb->lcd_puts(0, 9, "Directions or scroll to move");
1555 rb->lcd_puts(0, 10, "PLAY to select");
1556 rb->lcd_puts(0, 11, "Long PLAY for menu");
1557 rb->lcd_puts(0, 12, "REC to cancel");
1530#else 1558#else
1531 #warning: missing help text. 1559 #warning: missing help text.
1532#endif 1560#endif
diff --git a/apps/plugins/lib/SOURCES b/apps/plugins/lib/SOURCES
index 6a44c80ffa..f1aded6122 100644
--- a/apps/plugins/lib/SOURCES
+++ b/apps/plugins/lib/SOURCES
@@ -3,7 +3,8 @@ configfile.c
3fixedpoint.c 3fixedpoint.c
4playback_control.c 4playback_control.c
5rgb_hsv.c 5rgb_hsv.c
6#if defined(HAVE_LCD_BITMAP) && (LCD_DEPTH < 4) 6#if defined(HAVE_LCD_BITMAP) && (LCD_DEPTH < 4) \
7 && !defined(IAUDIO_M3) /* TODO: Test whether it can be implemented */
7grey_core.c 8grey_core.c
8grey_draw.c 9grey_draw.c
9grey_parm.c 10grey_parm.c
diff --git a/apps/plugins/lib/pluginlib_actions.c b/apps/plugins/lib/pluginlib_actions.c
index a7fbb356e3..1cd10581e1 100644
--- a/apps/plugins/lib/pluginlib_actions.c
+++ b/apps/plugins/lib/pluginlib_actions.c
@@ -140,6 +140,15 @@ const struct button_mapping generic_directions[] =
140 { PLA_DOWN_REPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE}, 140 { PLA_DOWN_REPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE},
141 { PLA_LEFT_REPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_MENU}, 141 { PLA_LEFT_REPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_MENU},
142 { PLA_RIGHT_REPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_MENU}, 142 { PLA_RIGHT_REPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_MENU},
143#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
144 { PLA_UP, BUTTON_RC_VOL_UP, BUTTON_NONE},
145 { PLA_DOWN, BUTTON_RC_VOL_DOWN, BUTTON_NONE},
146 { PLA_LEFT, BUTTON_RC_REW, BUTTON_NONE},
147 { PLA_RIGHT, BUTTON_RC_FF, BUTTON_NONE},
148 { PLA_UP_REPEAT, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE},
149 { PLA_DOWN_REPEAT, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE},
150 { PLA_LEFT_REPEAT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE},
151 { PLA_RIGHT_REPEAT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE},
143#else 152#else
144 #error pluginlib_actions: Unsupported keypad 153 #error pluginlib_actions: Unsupported keypad
145#endif 154#endif
@@ -227,6 +236,13 @@ const struct button_mapping generic_left_right_fire[] =
227 { PLA_RIGHT_REPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE}, 236 { PLA_RIGHT_REPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE},
228 { PLA_FIRE, BUTTON_MENU, BUTTON_NONE}, 237 { PLA_FIRE, BUTTON_MENU, BUTTON_NONE},
229 { PLA_FIRE_REPEAT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_NONE}, 238 { PLA_FIRE_REPEAT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_NONE},
239#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
240 { PLA_LEFT, BUTTON_RC_REW, BUTTON_NONE},
241 { PLA_RIGHT, BUTTON_RC_FF, BUTTON_NONE},
242 { PLA_LEFT_REPEAT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE},
243 { PLA_RIGHT_REPEAT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE},
244 { PLA_FIRE, BUTTON_RC_MODE, BUTTON_NONE},
245 { PLA_FIRE_REPEAT, BUTTON_RC_MODE|BUTTON_REPEAT, BUTTON_NONE},
230#else 246#else
231 #error pluginlib_actions: Unsupported keypad 247 #error pluginlib_actions: Unsupported keypad
232#endif 248#endif
@@ -342,6 +358,12 @@ const struct button_mapping generic_actions[] =
342 {PLA_MENU, BUTTON_DOWN, BUTTON_NONE}, 358 {PLA_MENU, BUTTON_DOWN, BUTTON_NONE},
343 {PLA_FIRE, BUTTON_MENU, BUTTON_NONE}, 359 {PLA_FIRE, BUTTON_MENU, BUTTON_NONE},
344 {PLA_FIRE_REPEAT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_NONE}, 360 {PLA_FIRE_REPEAT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_NONE},
361#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
362 {PLA_QUIT, BUTTON_RC_REC, BUTTON_NONE},
363 {PLA_START, BUTTON_RC_PLAY, BUTTON_NONE},
364 {PLA_MENU, BUTTON_RC_MENU, BUTTON_NONE},
365 {PLA_FIRE, BUTTON_RC_MODE, BUTTON_NONE},
366 {PLA_FIRE_REPEAT, BUTTON_RC_MODE|BUTTON_REPEAT, BUTTON_NONE},
345#else 367#else
346 #error pluginlib_actions: Unsupported keypad 368 #error pluginlib_actions: Unsupported keypad
347#endif 369#endif
@@ -391,6 +413,11 @@ const struct button_mapping generic_increase_decrease[] =
391 {PLA_DEC, BUTTON_RC_DOWN, BUTTON_NONE}, 413 {PLA_DEC, BUTTON_RC_DOWN, BUTTON_NONE},
392 {PLA_INC_REPEAT, BUTTON_RC_PLAY|BUTTON_REPEAT, BUTTON_NONE}, 414 {PLA_INC_REPEAT, BUTTON_RC_PLAY|BUTTON_REPEAT, BUTTON_NONE},
393 {PLA_DEC_REPEAT, BUTTON_RC_DOWN|BUTTON_REPEAT, BUTTON_NONE}, 415 {PLA_DEC_REPEAT, BUTTON_RC_DOWN|BUTTON_REPEAT, BUTTON_NONE},
416#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
417 {PLA_INC, BUTTON_RC_VOL_UP, BUTTON_NONE},
418 {PLA_DEC, BUTTON_RC_VOL_DOWN, BUTTON_NONE},
419 {PLA_INC_REPEAT, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE},
420 {PLA_DEC_REPEAT, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE},
394#else 421#else
395#error pluginlib_actions: Unsupported keypad 422#error pluginlib_actions: Unsupported keypad
396#endif 423#endif
diff --git a/apps/plugins/logo.c b/apps/plugins/logo.c
index 7ac004c053..9b33108fcb 100644
--- a/apps/plugins/logo.c
+++ b/apps/plugins/logo.c
@@ -62,6 +62,7 @@ const unsigned char rockbox16x7[] = {
62#define LP_INC_X BUTTON_RIGHT 62#define LP_INC_X BUTTON_RIGHT
63#define LP_DEC_Y (BUTTON_ON | BUTTON_LEFT) 63#define LP_DEC_Y (BUTTON_ON | BUTTON_LEFT)
64#define LP_INC_Y (BUTTON_ON | BUTTON_RIGHT) 64#define LP_INC_Y (BUTTON_ON | BUTTON_RIGHT)
65
65#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ 66#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
66 (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 67 (CONFIG_KEYPAD == IPOD_3G_PAD) || \
67 (CONFIG_KEYPAD == IPOD_1G2G_PAD) 68 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
@@ -70,18 +71,21 @@ const unsigned char rockbox16x7[] = {
70#define LP_INC_X BUTTON_RIGHT 71#define LP_INC_X BUTTON_RIGHT
71#define LP_DEC_Y BUTTON_SCROLL_BACK 72#define LP_DEC_Y BUTTON_SCROLL_BACK
72#define LP_INC_Y BUTTON_SCROLL_FWD 73#define LP_INC_Y BUTTON_SCROLL_FWD
74
73#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD 75#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
74#define LP_QUIT BUTTON_PLAY 76#define LP_QUIT BUTTON_PLAY
75#define LP_DEC_X BUTTON_LEFT 77#define LP_DEC_X BUTTON_LEFT
76#define LP_INC_X BUTTON_RIGHT 78#define LP_INC_X BUTTON_RIGHT
77#define LP_DEC_Y BUTTON_DOWN 79#define LP_DEC_Y BUTTON_DOWN
78#define LP_INC_Y BUTTON_UP 80#define LP_INC_Y BUTTON_UP
81
79#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD 82#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD
80#define LP_QUIT BUTTON_POWER 83#define LP_QUIT BUTTON_POWER
81#define LP_DEC_X BUTTON_LEFT 84#define LP_DEC_X BUTTON_LEFT
82#define LP_INC_X BUTTON_RIGHT 85#define LP_INC_X BUTTON_RIGHT
83#define LP_DEC_Y BUTTON_DOWN 86#define LP_DEC_Y BUTTON_DOWN
84#define LP_INC_Y BUTTON_UP 87#define LP_INC_Y BUTTON_UP
88
85#elif CONFIG_KEYPAD == GIGABEAT_PAD 89#elif CONFIG_KEYPAD == GIGABEAT_PAD
86#define LP_QUIT BUTTON_POWER 90#define LP_QUIT BUTTON_POWER
87#define LP_DEC_X BUTTON_LEFT 91#define LP_DEC_X BUTTON_LEFT
@@ -125,6 +129,13 @@ const unsigned char rockbox16x7[] = {
125#define LP_DEC_Y BUTTON_DOWN 129#define LP_DEC_Y BUTTON_DOWN
126#define LP_INC_Y BUTTON_UP 130#define LP_INC_Y BUTTON_UP
127 131
132#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
133#define LP_QUIT BUTTON_RC_REC
134#define LP_DEC_X BUTTON_RC_REW
135#define LP_INC_X BUTTON_RC_FF
136#define LP_DEC_Y BUTTON_RC_VOL_DOWN
137#define LP_INC_Y BUTTON_RC_VOL_UP
138
128#else 139#else
129#define LP_QUIT BUTTON_OFF 140#define LP_QUIT BUTTON_OFF
130#define LP_DEC_X BUTTON_LEFT 141#define LP_DEC_X BUTTON_LEFT
diff --git a/apps/plugins/matrix.c b/apps/plugins/matrix.c
index 827b205e7d..19763b6005 100644
--- a/apps/plugins/matrix.c
+++ b/apps/plugins/matrix.c
@@ -90,6 +90,11 @@ extern const fb_data matrix_normal[];
90#define MATRIX_SLEEP_MORE BUTTON_UP 90#define MATRIX_SLEEP_MORE BUTTON_UP
91#define MATRIX_SLEEP_LESS BUTTON_DOWN 91#define MATRIX_SLEEP_LESS BUTTON_DOWN
92#define MATRIX_PAUSE BUTTON_SELECT 92#define MATRIX_PAUSE BUTTON_SELECT
93#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
94#define MATRIX_EXIT BUTTON_RC_REC
95#define MATRIX_SLEEP_MORE BUTTON_RC_VOL_UP
96#define MATRIX_SLEEP_LESS BUTTON_RC_VOL_DOWN
97#define MATRIX_PAUSE BUTTON_RC_PLAY
93#else 98#else
94#error Unsupported keypad 99#error Unsupported keypad
95#endif 100#endif
diff --git a/apps/plugins/mazezam.c b/apps/plugins/mazezam.c
index 858d554a6d..69997af9c3 100644
--- a/apps/plugins/mazezam.c
+++ b/apps/plugins/mazezam.c
@@ -165,6 +165,18 @@ MEM_FUNCTION_WRAPPERS(rb);
165#define MAZEZAM_QUIT BUTTON_POWER 165#define MAZEZAM_QUIT BUTTON_POWER
166#define MAZEZAM_QUIT_KEYNAME "[POWER]" 166#define MAZEZAM_QUIT_KEYNAME "[POWER]"
167 167
168#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
169#define MAZEZAM_UP BUTTON_RC_VOL_UP
170#define MAZEZAM_DOWN BUTTON_RC_VOL_DOWN
171#define MAZEZAM_LEFT BUTTON_RC_REW
172#define MAZEZAM_RIGHT BUTTON_RC_FF
173#define MAZEZAM_SELECT BUTTON_RC_PLAY
174
175#define MAZEZAM_RETRY BUTTON_RC_MODE
176#define MAZEZAM_RETRY_KEYNAME "[MODE]"
177#define MAZEZAM_QUIT BUTTON_RC_REC
178#define MAZEZAM_QUIT_KEYNAME "[REC]"
179
168#else 180#else
169#error No keymap defined! 181#error No keymap defined!
170#endif 182#endif
diff --git a/apps/plugins/minesweeper.c b/apps/plugins/minesweeper.c
index 8b9fe85da9..afe7a39320 100644
--- a/apps/plugins/minesweeper.c
+++ b/apps/plugins/minesweeper.c
@@ -33,6 +33,8 @@ enum minesweeper_status {
33 33
34/* variable button definitions */ 34/* variable button definitions */
35#if CONFIG_KEYPAD == RECORDER_PAD 35#if CONFIG_KEYPAD == RECORDER_PAD
36# define MINESWP_LEFT BUTTON_LEFT
37# define MINESWP_RIGHT BUTTON_RIGHT
36# define MINESWP_UP BUTTON_UP 38# define MINESWP_UP BUTTON_UP
37# define MINESWP_DOWN BUTTON_DOWN 39# define MINESWP_DOWN BUTTON_DOWN
38# define MINESWP_QUIT BUTTON_OFF 40# define MINESWP_QUIT BUTTON_OFF
@@ -43,6 +45,8 @@ enum minesweeper_status {
43# define MINESWP_INFO BUTTON_F3 45# define MINESWP_INFO BUTTON_F3
44 46
45#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD 47#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
48# define MINESWP_LEFT BUTTON_LEFT
49# define MINESWP_RIGHT BUTTON_RIGHT
46# define MINESWP_UP BUTTON_UP 50# define MINESWP_UP BUTTON_UP
47# define MINESWP_DOWN BUTTON_DOWN 51# define MINESWP_DOWN BUTTON_DOWN
48# define MINESWP_QUIT BUTTON_OFF 52# define MINESWP_QUIT BUTTON_OFF
@@ -53,6 +57,8 @@ enum minesweeper_status {
53# define MINESWP_INFO BUTTON_F3 57# define MINESWP_INFO BUTTON_F3
54 58
55#elif CONFIG_KEYPAD == ONDIO_PAD 59#elif CONFIG_KEYPAD == ONDIO_PAD
60# define MINESWP_LEFT BUTTON_LEFT
61# define MINESWP_RIGHT BUTTON_RIGHT
56# define MINESWP_UP BUTTON_UP 62# define MINESWP_UP BUTTON_UP
57# define MINESWP_DOWN BUTTON_DOWN 63# define MINESWP_DOWN BUTTON_DOWN
58# define MINESWP_QUIT BUTTON_OFF 64# define MINESWP_QUIT BUTTON_OFF
@@ -63,6 +69,8 @@ enum minesweeper_status {
63 69
64#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ 70#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
65 (CONFIG_KEYPAD == IRIVER_H300_PAD) 71 (CONFIG_KEYPAD == IRIVER_H300_PAD)
72# define MINESWP_LEFT BUTTON_LEFT
73# define MINESWP_RIGHT BUTTON_RIGHT
66# define MINESWP_UP BUTTON_UP 74# define MINESWP_UP BUTTON_UP
67# define MINESWP_DOWN BUTTON_DOWN 75# define MINESWP_DOWN BUTTON_DOWN
68# define MINESWP_QUIT BUTTON_OFF 76# define MINESWP_QUIT BUTTON_OFF
@@ -77,6 +85,8 @@ enum minesweeper_status {
77 (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 85 (CONFIG_KEYPAD == IPOD_3G_PAD) || \
78 (CONFIG_KEYPAD == IPOD_1G2G_PAD) 86 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
79# define MINESWP_SCROLLWHEEL 87# define MINESWP_SCROLLWHEEL
88# define MINESWP_LEFT BUTTON_LEFT
89# define MINESWP_RIGHT BUTTON_RIGHT
80# define MINESWP_UP BUTTON_MENU 90# define MINESWP_UP BUTTON_MENU
81# define MINESWP_DOWN BUTTON_PLAY 91# define MINESWP_DOWN BUTTON_PLAY
82# define MINESWP_NEXT BUTTON_SCROLL_FWD 92# define MINESWP_NEXT BUTTON_SCROLL_FWD
@@ -88,14 +98,18 @@ enum minesweeper_status {
88# define MINESWP_INFO (BUTTON_SELECT | BUTTON_PLAY) 98# define MINESWP_INFO (BUTTON_SELECT | BUTTON_PLAY)
89 99
90#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) 100#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD)
91# define MINESWP_UP BUTTON_UP 101# define MINESWP_LEFT BUTTON_LEFT
92# define MINESWP_DOWN BUTTON_DOWN 102# define MINESWP_RIGHT BUTTON_RIGHT
93# define MINESWP_QUIT BUTTON_POWER 103# define MINESWP_UP BUTTON_UP
94# define MINESWP_TOGGLE BUTTON_PLAY 104# define MINESWP_DOWN BUTTON_DOWN
95# define MINESWP_DISCOVER BUTTON_SELECT 105# define MINESWP_QUIT BUTTON_POWER
96# define MINESWP_INFO BUTTON_REC 106# define MINESWP_TOGGLE BUTTON_PLAY
107# define MINESWP_DISCOVER BUTTON_SELECT
108# define MINESWP_INFO BUTTON_REC
97 109
98#elif (CONFIG_KEYPAD == GIGABEAT_PAD) 110#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
111# define MINESWP_LEFT BUTTON_LEFT
112# define MINESWP_RIGHT BUTTON_RIGHT
99# define MINESWP_UP BUTTON_UP 113# define MINESWP_UP BUTTON_UP
100# define MINESWP_DOWN BUTTON_DOWN 114# define MINESWP_DOWN BUTTON_DOWN
101# define MINESWP_QUIT BUTTON_POWER 115# define MINESWP_QUIT BUTTON_POWER
@@ -105,6 +119,8 @@ enum minesweeper_status {
105 119
106#elif (CONFIG_KEYPAD == SANSA_E200_PAD) 120#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
107# define MINESWP_SCROLLWHEEL 121# define MINESWP_SCROLLWHEEL
122# define MINESWP_LEFT BUTTON_LEFT
123# define MINESWP_RIGHT BUTTON_RIGHT
108# define MINESWP_UP BUTTON_UP 124# define MINESWP_UP BUTTON_UP
109# define MINESWP_DOWN BUTTON_DOWN 125# define MINESWP_DOWN BUTTON_DOWN
110# define MINESWP_QUIT BUTTON_POWER 126# define MINESWP_QUIT BUTTON_POWER
@@ -115,6 +131,8 @@ enum minesweeper_status {
115# define MINESWP_INFO (BUTTON_REC|BUTTON_REPEAT) 131# define MINESWP_INFO (BUTTON_REC|BUTTON_REPEAT)
116 132
117#elif (CONFIG_KEYPAD == SANSA_C200_PAD) 133#elif (CONFIG_KEYPAD == SANSA_C200_PAD)
134# define MINESWP_LEFT BUTTON_LEFT
135# define MINESWP_RIGHT BUTTON_RIGHT
118# define MINESWP_UP BUTTON_UP 136# define MINESWP_UP BUTTON_UP
119# define MINESWP_DOWN BUTTON_DOWN 137# define MINESWP_DOWN BUTTON_DOWN
120# define MINESWP_QUIT BUTTON_POWER 138# define MINESWP_QUIT BUTTON_POWER
@@ -126,6 +144,8 @@ enum minesweeper_status {
126# define MINESWP_INFO BUTTON_REC 144# define MINESWP_INFO BUTTON_REC
127 145
128#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 146#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
147# define MINESWP_LEFT BUTTON_LEFT
148# define MINESWP_RIGHT BUTTON_RIGHT
129# define MINESWP_UP BUTTON_SCROLL_UP 149# define MINESWP_UP BUTTON_SCROLL_UP
130# define MINESWP_DOWN BUTTON_SCROLL_DOWN 150# define MINESWP_DOWN BUTTON_SCROLL_DOWN
131# define MINESWP_QUIT BUTTON_POWER 151# define MINESWP_QUIT BUTTON_POWER
@@ -134,6 +154,8 @@ enum minesweeper_status {
134# define MINESWP_INFO (BUTTON_REW | BUTTON_PLAY) 154# define MINESWP_INFO (BUTTON_REW | BUTTON_PLAY)
135 155
136#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) 156#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD)
157# define MINESWP_LEFT BUTTON_LEFT
158# define MINESWP_RIGHT BUTTON_RIGHT
137# define MINESWP_UP BUTTON_UP 159# define MINESWP_UP BUTTON_UP
138# define MINESWP_DOWN BUTTON_DOWN 160# define MINESWP_DOWN BUTTON_DOWN
139# define MINESWP_QUIT BUTTON_BACK 161# define MINESWP_QUIT BUTTON_BACK
@@ -142,6 +164,8 @@ enum minesweeper_status {
142# define MINESWP_INFO BUTTON_MENU 164# define MINESWP_INFO BUTTON_MENU
143 165
144#elif (CONFIG_KEYPAD == MROBE100_PAD) 166#elif (CONFIG_KEYPAD == MROBE100_PAD)
167# define MINESWP_LEFT BUTTON_LEFT
168# define MINESWP_RIGHT BUTTON_RIGHT
145# define MINESWP_UP BUTTON_UP 169# define MINESWP_UP BUTTON_UP
146# define MINESWP_DOWN BUTTON_DOWN 170# define MINESWP_DOWN BUTTON_DOWN
147# define MINESWP_QUIT BUTTON_POWER 171# define MINESWP_QUIT BUTTON_POWER
@@ -149,6 +173,16 @@ enum minesweeper_status {
149# define MINESWP_DISCOVER BUTTON_SELECT 173# define MINESWP_DISCOVER BUTTON_SELECT
150# define MINESWP_INFO BUTTON_MENU 174# define MINESWP_INFO BUTTON_MENU
151 175
176#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
177# define MINESWP_LEFT BUTTON_RC_REW
178# define MINESWP_RIGHT BUTTON_RC_FF
179# define MINESWP_UP BUTTON_RC_VOL_UP
180# define MINESWP_DOWN BUTTON_RC_VOL_DOWN
181# define MINESWP_QUIT BUTTON_RC_REC
182# define MINESWP_TOGGLE BUTTON_RC_MODE
183# define MINESWP_DISCOVER BUTTON_RC_PLAY
184# define MINESWP_INFO BUTTON_RC_MENU
185
152#else 186#else
153#error No keymap defined! 187#error No keymap defined!
154#endif 188#endif
@@ -560,14 +594,14 @@ enum minesweeper_status minesweeper( void )
560 return MINESWEEPER_QUIT; 594 return MINESWEEPER_QUIT;
561 595
562 /* move cursor left */ 596 /* move cursor left */
563 case BUTTON_LEFT: 597 case MINESWP_LEFT:
564 case BUTTON_LEFT|BUTTON_REPEAT: 598 case MINESWP_LEFT|BUTTON_REPEAT:
565 x = ( x + width - 1 )%width; 599 x = ( x + width - 1 )%width;
566 break; 600 break;
567 601
568 /* move cursor right */ 602 /* move cursor right */
569 case BUTTON_RIGHT: 603 case MINESWP_RIGHT:
570 case BUTTON_RIGHT|BUTTON_REPEAT: 604 case MINESWP_RIGHT|BUTTON_REPEAT:
571 x = ( x + 1 )%width; 605 x = ( x + 1 )%width;
572 break; 606 break;
573 607
diff --git a/apps/plugins/mosaique.c b/apps/plugins/mosaique.c
index 42037f80f5..bd1eade7f0 100644
--- a/apps/plugins/mosaique.c
+++ b/apps/plugins/mosaique.c
@@ -117,6 +117,11 @@ PLUGIN_HEADER
117#define MOSAIQUE_SPEED BUTTON_DISPLAY 117#define MOSAIQUE_SPEED BUTTON_DISPLAY
118#define MOSAIQUE_RESTART BUTTON_SELECT 118#define MOSAIQUE_RESTART BUTTON_SELECT
119 119
120#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
121#define MOSAIQUE_QUIT BUTTON_RC_REC
122#define MOSAIQUE_SPEED BUTTON_RC_MENU
123#define MOSAIQUE_RESTART BUTTON_RC_PLAY
124
120#else 125#else
121#error No keymap defined! 126#error No keymap defined!
122#endif 127#endif
diff --git a/apps/plugins/mp3_encoder.c b/apps/plugins/mp3_encoder.c
index 85ef5c1805..d0f4412087 100644
--- a/apps/plugins/mp3_encoder.c
+++ b/apps/plugins/mp3_encoder.c
@@ -2327,6 +2327,11 @@ void get_mp3_filename(char *wav_name)
2327#define MP3ENC_NEXT BUTTON_DOWN 2327#define MP3ENC_NEXT BUTTON_DOWN
2328#define MP3ENC_DONE BUTTON_POWER 2328#define MP3ENC_DONE BUTTON_POWER
2329#define MP3ENC_SELECT BUTTON_SELECT 2329#define MP3ENC_SELECT BUTTON_SELECT
2330#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
2331#define MP3ENC_PREV BUTTON_RC_VOL_UP
2332#define MP3ENC_NEXT BUTTON_RC_VOL_DOWN
2333#define MP3ENC_DONE BUTTON_RC_REC
2334#define MP3ENC_SELECT BUTTON_RC_FF
2330#else 2335#else
2331#error No keymap defined! 2336#error No keymap defined!
2332#endif 2337#endif
diff --git a/apps/plugins/oscilloscope.c b/apps/plugins/oscilloscope.c
index 13a8c4e1a6..6b816aebe7 100644
--- a/apps/plugins/oscilloscope.c
+++ b/apps/plugins/oscilloscope.c
@@ -168,6 +168,19 @@ PLUGIN_HEADER
168#define OSCILLOSCOPE_VOL_UP BUTTON_UP 168#define OSCILLOSCOPE_VOL_UP BUTTON_UP
169#define OSCILLOSCOPE_VOL_DOWN BUTTON_DOWN 169#define OSCILLOSCOPE_VOL_DOWN BUTTON_DOWN
170 170
171#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
172#define OSCILLOSCOPE_QUIT BUTTON_RC_REC
173#define OSCILLOSCOPE_DRAWMODE_PRE BUTTON_RC_MODE
174#define OSCILLOSCOPE_DRAWMODE (BUTTON_RC_MODE|BUTTON_REL)
175#define OSCILLOSCOPE_ADVMODE BUTTON_RC_MENU
176#define OSCILLOSCOPE_ORIENTATION_PRE BUTTON_RC_MODE
177#define OSCILLOSCOPE_ORIENTATION (BUTTON_RC_MODE|BUTTON_REPEAT)
178#define OSCILLOSCOPE_PAUSE BUTTON_RC_PLAY
179#define OSCILLOSCOPE_SPEED_UP BUTTON_RC_FF
180#define OSCILLOSCOPE_SPEED_DOWN BUTTON_RC_REW
181#define OSCILLOSCOPE_VOL_UP BUTTON_RC_VOL_UP
182#define OSCILLOSCOPE_VOL_DOWN BUTTON_RC_VOL_DOWN
183
171#else 184#else
172#error No keymap defined! 185#error No keymap defined!
173#endif 186#endif
diff --git a/apps/plugins/pong.c b/apps/plugins/pong.c
index 303d6b1b75..707f107d3b 100644
--- a/apps/plugins/pong.c
+++ b/apps/plugins/pong.c
@@ -138,6 +138,14 @@ PLUGIN_HEADER
138#define PONG_RIGHT_UP BUTTON_PLAY 138#define PONG_RIGHT_UP BUTTON_PLAY
139#define PONG_RIGHT_DOWN BUTTON_RIGHT 139#define PONG_RIGHT_DOWN BUTTON_RIGHT
140 140
141#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
142#define PONG_QUIT BUTTON_RC_REC
143#define PONG_PAUSE BUTTON_RC_PLAY
144#define PONG_LEFT_UP BUTTON_RC_VOL_UP
145#define PONG_LEFT_DOWN BUTTON_RC_VOL_DOWN
146#define PONG_RIGHT_UP BUTTON_VOL_UP
147#define PONG_RIGHT_DOWN BUTTON_VOL_DOWN
148
141#else 149#else
142#error No keymap defined! 150#error No keymap defined!
143#endif 151#endif
diff --git a/apps/plugins/rockblox.c b/apps/plugins/rockblox.c
index d4d9048797..f0bdd2a510 100644
--- a/apps/plugins/rockblox.c
+++ b/apps/plugins/rockblox.c
@@ -200,6 +200,17 @@ PLUGIN_HEADER
200#define ROCKBLOX_DROP BUTTON_SELECT 200#define ROCKBLOX_DROP BUTTON_SELECT
201#define ROCKBLOX_RESTART BUTTON_DISPLAY 201#define ROCKBLOX_RESTART BUTTON_DISPLAY
202 202
203#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
204
205#define ROCKBLOX_OFF BUTTON_RC_REC
206#define ROCKBLOX_ROTATE_RIGHT BUTTON_RC_VOL_DOWN
207#define ROCKBLOX_ROTATE_LEFT BUTTON_RC_VOL_UP
208#define ROCKBLOX_DOWN BUTTON_RC_MENU
209#define ROCKBLOX_LEFT BUTTON_RC_REW
210#define ROCKBLOX_RIGHT BUTTON_RC_FF
211#define ROCKBLOX_DROP BUTTON_RC_PLAY
212#define ROCKBLOX_RESTART BUTTON_RC_MODE
213
203#else 214#else
204#error No keymap defined! 215#error No keymap defined!
205#endif 216#endif
@@ -325,6 +336,32 @@ PLUGIN_HEADER
325#define LEVEL_Y 49 336#define LEVEL_Y 49
326#define LINES_Y 82 337#define LINES_Y 82
327 338
339#elif (LCD_WIDTH == 138) && (LCD_HEIGHT == 110)
340
341#define BLOCK_WIDTH 5
342#define BLOCK_HEIGHT 5
343#define BOARD_X 14
344#define BOARD_Y 0
345#define PREVIEW_X 98
346#define PREVIEW_Y 88
347#define LABEL_X 80
348#define SCORE_Y 15
349#define LEVEL_Y 45
350#define LINES_Y 74
351
352#elif (LCD_WIDTH == 132) && (LCD_HEIGHT == 80)
353
354#define BLOCK_WIDTH 4
355#define BLOCK_HEIGHT 4
356#define BOARD_X 10
357#define BOARD_Y 0
358#define PREVIEW_X 89
359#define PREVIEW_Y 61
360#define LABEL_X 78
361#define SCORE_Y 10
362#define LEVEL_Y 30
363#define LINES_Y 50
364
328#elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 128) 365#elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 128)
329 366
330#define BLOCK_WIDTH 6 367#define BLOCK_WIDTH 6
@@ -338,18 +375,18 @@ PLUGIN_HEADER
338#define LEVEL_Y 49 375#define LEVEL_Y 49
339#define LINES_Y 82 376#define LINES_Y 82
340 377
341#elif (LCD_WIDTH == 132) && (LCD_HEIGHT == 80) 378#elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 96)
342 379
343#define BLOCK_WIDTH 4 380#define BLOCK_WIDTH 4
344#define BLOCK_HEIGHT 4 381#define BLOCK_HEIGHT 4
345#define BOARD_X 10 382#define BOARD_X 14
346#define BOARD_Y 0 383#define BOARD_Y 2
347#define PREVIEW_X 89 384#define PREVIEW_X 89
348#define PREVIEW_Y 61 385#define PREVIEW_Y 76
349#define LABEL_X 78 386#define LABEL_X 70
350#define SCORE_Y 10 387#define SCORE_Y 14
351#define LEVEL_Y 30 388#define LEVEL_Y 39
352#define LINES_Y 50 389#define LINES_Y 64
353 390
354#elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 64) 391#elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 64)
355 392
@@ -378,19 +415,6 @@ PLUGIN_HEADER
378#define LEVEL_X 78 415#define LEVEL_X 78
379#define LINES_Y 51 416#define LINES_Y 51
380 417
381#elif (LCD_WIDTH == 138) && (LCD_HEIGHT == 110)
382
383#define BLOCK_WIDTH 5
384#define BLOCK_HEIGHT 5
385#define BOARD_X 14
386#define BOARD_Y 0
387#define PREVIEW_X 98
388#define PREVIEW_Y 88
389#define LABEL_X 80
390#define SCORE_Y 15
391#define LEVEL_Y 45
392#define LINES_Y 74
393
394#endif 418#endif
395 419
396#ifndef LEVEL_X 420#ifndef LEVEL_X
diff --git a/apps/plugins/sliding_puzzle.c b/apps/plugins/sliding_puzzle.c
index 6da6b8bef1..8d57ede13c 100644
--- a/apps/plugins/sliding_puzzle.c
+++ b/apps/plugins/sliding_puzzle.c
@@ -25,6 +25,8 @@ PLUGIN_HEADER
25/* variable button definitions */ 25/* variable button definitions */
26#if CONFIG_KEYPAD == RECORDER_PAD 26#if CONFIG_KEYPAD == RECORDER_PAD
27#define PUZZLE_QUIT BUTTON_OFF 27#define PUZZLE_QUIT BUTTON_OFF
28#define PUZZLE_LEFT BUTTON_LEFT
29#define PUZZLE_RIGHT BUTTON_RIGHT
28#define PUZZLE_UP BUTTON_UP 30#define PUZZLE_UP BUTTON_UP
29#define PUZZLE_DOWN BUTTON_DOWN 31#define PUZZLE_DOWN BUTTON_DOWN
30#define PUZZLE_SHUFFLE BUTTON_F1 32#define PUZZLE_SHUFFLE BUTTON_F1
@@ -32,6 +34,8 @@ PLUGIN_HEADER
32 34
33#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD 35#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
34#define PUZZLE_QUIT BUTTON_OFF 36#define PUZZLE_QUIT BUTTON_OFF
37#define PUZZLE_LEFT BUTTON_LEFT
38#define PUZZLE_RIGHT BUTTON_RIGHT
35#define PUZZLE_UP BUTTON_UP 39#define PUZZLE_UP BUTTON_UP
36#define PUZZLE_DOWN BUTTON_DOWN 40#define PUZZLE_DOWN BUTTON_DOWN
37#define PUZZLE_SHUFFLE BUTTON_F1 41#define PUZZLE_SHUFFLE BUTTON_F1
@@ -39,6 +43,8 @@ PLUGIN_HEADER
39 43
40#elif CONFIG_KEYPAD == ONDIO_PAD 44#elif CONFIG_KEYPAD == ONDIO_PAD
41#define PUZZLE_QUIT BUTTON_OFF 45#define PUZZLE_QUIT BUTTON_OFF
46#define PUZZLE_LEFT BUTTON_LEFT
47#define PUZZLE_RIGHT BUTTON_RIGHT
42#define PUZZLE_UP BUTTON_UP 48#define PUZZLE_UP BUTTON_UP
43#define PUZZLE_DOWN BUTTON_DOWN 49#define PUZZLE_DOWN BUTTON_DOWN
44#define PUZZLE_SHUFFLE_PICTURE_PRE BUTTON_MENU 50#define PUZZLE_SHUFFLE_PICTURE_PRE BUTTON_MENU
@@ -48,6 +54,8 @@ PLUGIN_HEADER
48#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ 54#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
49 (CONFIG_KEYPAD == IRIVER_H300_PAD) 55 (CONFIG_KEYPAD == IRIVER_H300_PAD)
50#define PUZZLE_QUIT BUTTON_OFF 56#define PUZZLE_QUIT BUTTON_OFF
57#define PUZZLE_LEFT BUTTON_LEFT
58#define PUZZLE_RIGHT BUTTON_RIGHT
51#define PUZZLE_UP BUTTON_UP 59#define PUZZLE_UP BUTTON_UP
52#define PUZZLE_DOWN BUTTON_DOWN 60#define PUZZLE_DOWN BUTTON_DOWN
53#define PUZZLE_SHUFFLE BUTTON_SELECT 61#define PUZZLE_SHUFFLE BUTTON_SELECT
@@ -59,6 +67,8 @@ PLUGIN_HEADER
59 (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 67 (CONFIG_KEYPAD == IPOD_3G_PAD) || \
60 (CONFIG_KEYPAD == IPOD_1G2G_PAD) 68 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
61#define PUZZLE_QUIT (BUTTON_SELECT | BUTTON_MENU) 69#define PUZZLE_QUIT (BUTTON_SELECT | BUTTON_MENU)
70#define PUZZLE_LEFT BUTTON_LEFT
71#define PUZZLE_RIGHT BUTTON_RIGHT
62#define PUZZLE_UP BUTTON_MENU 72#define PUZZLE_UP BUTTON_MENU
63#define PUZZLE_DOWN BUTTON_PLAY 73#define PUZZLE_DOWN BUTTON_PLAY
64#define PUZZLE_SHUFFLE (BUTTON_SELECT | BUTTON_LEFT) 74#define PUZZLE_SHUFFLE (BUTTON_SELECT | BUTTON_LEFT)
@@ -66,6 +76,8 @@ PLUGIN_HEADER
66 76
67#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) 77#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD)
68#define PUZZLE_QUIT BUTTON_POWER 78#define PUZZLE_QUIT BUTTON_POWER
79#define PUZZLE_LEFT BUTTON_LEFT
80#define PUZZLE_RIGHT BUTTON_RIGHT
69#define PUZZLE_UP BUTTON_UP 81#define PUZZLE_UP BUTTON_UP
70#define PUZZLE_DOWN BUTTON_DOWN 82#define PUZZLE_DOWN BUTTON_DOWN
71#define PUZZLE_SHUFFLE BUTTON_REC 83#define PUZZLE_SHUFFLE BUTTON_REC
@@ -73,6 +85,8 @@ PLUGIN_HEADER
73 85
74#elif (CONFIG_KEYPAD == GIGABEAT_PAD) 86#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
75#define PUZZLE_QUIT BUTTON_POWER 87#define PUZZLE_QUIT BUTTON_POWER
88#define PUZZLE_LEFT BUTTON_LEFT
89#define PUZZLE_RIGHT BUTTON_RIGHT
76#define PUZZLE_UP BUTTON_UP 90#define PUZZLE_UP BUTTON_UP
77#define PUZZLE_DOWN BUTTON_DOWN 91#define PUZZLE_DOWN BUTTON_DOWN
78#define PUZZLE_SHUFFLE BUTTON_SELECT 92#define PUZZLE_SHUFFLE BUTTON_SELECT
@@ -81,6 +95,8 @@ PLUGIN_HEADER
81#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ 95#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
82(CONFIG_KEYPAD == SANSA_C200_PAD) 96(CONFIG_KEYPAD == SANSA_C200_PAD)
83#define PUZZLE_QUIT BUTTON_POWER 97#define PUZZLE_QUIT BUTTON_POWER
98#define PUZZLE_LEFT BUTTON_LEFT
99#define PUZZLE_RIGHT BUTTON_RIGHT
84#define PUZZLE_UP BUTTON_UP 100#define PUZZLE_UP BUTTON_UP
85#define PUZZLE_DOWN BUTTON_DOWN 101#define PUZZLE_DOWN BUTTON_DOWN
86#define PUZZLE_SHUFFLE BUTTON_REC 102#define PUZZLE_SHUFFLE BUTTON_REC
@@ -88,6 +104,8 @@ PLUGIN_HEADER
88 104
89#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 105#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
90#define PUZZLE_QUIT BUTTON_POWER 106#define PUZZLE_QUIT BUTTON_POWER
107#define PUZZLE_LEFT BUTTON_LEFT
108#define PUZZLE_RIGHT BUTTON_RIGHT
91#define PUZZLE_UP BUTTON_SCROLL_UP 109#define PUZZLE_UP BUTTON_SCROLL_UP
92#define PUZZLE_DOWN BUTTON_SCROLL_DOWN 110#define PUZZLE_DOWN BUTTON_SCROLL_DOWN
93#define PUZZLE_SHUFFLE BUTTON_REW 111#define PUZZLE_SHUFFLE BUTTON_REW
@@ -95,6 +113,8 @@ PLUGIN_HEADER
95 113
96#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) 114#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD)
97#define PUZZLE_QUIT BUTTON_BACK 115#define PUZZLE_QUIT BUTTON_BACK
116#define PUZZLE_LEFT BUTTON_LEFT
117#define PUZZLE_RIGHT BUTTON_RIGHT
98#define PUZZLE_UP BUTTON_UP 118#define PUZZLE_UP BUTTON_UP
99#define PUZZLE_DOWN BUTTON_DOWN 119#define PUZZLE_DOWN BUTTON_DOWN
100#define PUZZLE_SHUFFLE BUTTON_SELECT 120#define PUZZLE_SHUFFLE BUTTON_SELECT
@@ -102,11 +122,22 @@ PLUGIN_HEADER
102 122
103#elif (CONFIG_KEYPAD == MROBE100_PAD) 123#elif (CONFIG_KEYPAD == MROBE100_PAD)
104#define PUZZLE_QUIT BUTTON_POWER 124#define PUZZLE_QUIT BUTTON_POWER
125#define PUZZLE_LEFT BUTTON_LEFT
126#define PUZZLE_RIGHT BUTTON_RIGHT
105#define PUZZLE_UP BUTTON_UP 127#define PUZZLE_UP BUTTON_UP
106#define PUZZLE_DOWN BUTTON_DOWN 128#define PUZZLE_DOWN BUTTON_DOWN
107#define PUZZLE_SHUFFLE BUTTON_SELECT 129#define PUZZLE_SHUFFLE BUTTON_SELECT
108#define PUZZLE_PICTURE BUTTON_DISPLAY 130#define PUZZLE_PICTURE BUTTON_DISPLAY
109 131
132#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
133#define PUZZLE_QUIT BUTTON_RC_REC
134#define PUZZLE_LEFT BUTTON_RC_REW
135#define PUZZLE_RIGHT BUTTON_RC_FF
136#define PUZZLE_UP BUTTON_RC_VOL_UP
137#define PUZZLE_DOWN BUTTON_RC_VOL_DOWN
138#define PUZZLE_SHUFFLE BUTTON_RC_MODE
139#define PUZZLE_PICTURE BUTTON_RC_MENU
140
110#else 141#else
111#error No keymap defined! 142#error No keymap defined!
112#endif 143#endif
@@ -502,12 +533,12 @@ static int puzzle_loop(void)
502 draw_playfield(); 533 draw_playfield();
503 break; 534 break;
504 535
505 case BUTTON_LEFT: 536 case PUZZLE_LEFT:
506 if ((hole%SPOTS_X)<(SPOTS_X-1) && !puzzle_finished()) 537 if ((hole%SPOTS_X)<(SPOTS_X-1) && !puzzle_finished())
507 move_spot(-1, 0); 538 move_spot(-1, 0);
508 break; 539 break;
509 540
510 case BUTTON_RIGHT: 541 case PUZZLE_RIGHT:
511 if ((hole%SPOTS_X)>0 && !puzzle_finished()) 542 if ((hole%SPOTS_X)>0 && !puzzle_finished())
512 move_spot(1, 0); 543 move_spot(1, 0);
513 break; 544 break;
diff --git a/apps/plugins/snake.c b/apps/plugins/snake.c
index c68b924da6..f414761ae3 100644
--- a/apps/plugins/snake.c
+++ b/apps/plugins/snake.c
@@ -38,18 +38,24 @@ PLUGIN_HEADER
38/* variable button definitions */ 38/* variable button definitions */
39#if CONFIG_KEYPAD == RECORDER_PAD 39#if CONFIG_KEYPAD == RECORDER_PAD
40#define SNAKE_QUIT BUTTON_OFF 40#define SNAKE_QUIT BUTTON_OFF
41#define SNAKE_LEFT BUTTON_LEFT
42#define SNAKE_RIGHT BUTTON_RIGHT
41#define SNAKE_UP BUTTON_UP 43#define SNAKE_UP BUTTON_UP
42#define SNAKE_DOWN BUTTON_DOWN 44#define SNAKE_DOWN BUTTON_DOWN
43#define SNAKE_PLAYPAUSE BUTTON_PLAY 45#define SNAKE_PLAYPAUSE BUTTON_PLAY
44 46
45#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD 47#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
46#define SNAKE_QUIT BUTTON_OFF 48#define SNAKE_QUIT BUTTON_OFF
49#define SNAKE_LEFT BUTTON_LEFT
50#define SNAKE_RIGHT BUTTON_RIGHT
47#define SNAKE_UP BUTTON_UP 51#define SNAKE_UP BUTTON_UP
48#define SNAKE_DOWN BUTTON_DOWN 52#define SNAKE_DOWN BUTTON_DOWN
49#define SNAKE_PLAYPAUSE BUTTON_SELECT 53#define SNAKE_PLAYPAUSE BUTTON_SELECT
50 54
51#elif CONFIG_KEYPAD == ONDIO_PAD 55#elif CONFIG_KEYPAD == ONDIO_PAD
52#define SNAKE_QUIT BUTTON_OFF 56#define SNAKE_QUIT BUTTON_OFF
57#define SNAKE_LEFT BUTTON_LEFT
58#define SNAKE_RIGHT BUTTON_RIGHT
53#define SNAKE_UP BUTTON_UP 59#define SNAKE_UP BUTTON_UP
54#define SNAKE_DOWN BUTTON_DOWN 60#define SNAKE_DOWN BUTTON_DOWN
55#define SNAKE_PLAYPAUSE BUTTON_MENU 61#define SNAKE_PLAYPAUSE BUTTON_MENU
@@ -57,6 +63,8 @@ PLUGIN_HEADER
57#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ 63#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
58 (CONFIG_KEYPAD == IRIVER_H300_PAD) 64 (CONFIG_KEYPAD == IRIVER_H300_PAD)
59#define SNAKE_QUIT BUTTON_OFF 65#define SNAKE_QUIT BUTTON_OFF
66#define SNAKE_LEFT BUTTON_LEFT
67#define SNAKE_RIGHT BUTTON_RIGHT
60#define SNAKE_UP BUTTON_UP 68#define SNAKE_UP BUTTON_UP
61#define SNAKE_DOWN BUTTON_DOWN 69#define SNAKE_DOWN BUTTON_DOWN
62#define SNAKE_PLAYPAUSE BUTTON_ON 70#define SNAKE_PLAYPAUSE BUTTON_ON
@@ -67,18 +75,24 @@ PLUGIN_HEADER
67 (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 75 (CONFIG_KEYPAD == IPOD_3G_PAD) || \
68 (CONFIG_KEYPAD == IPOD_1G2G_PAD) 76 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
69#define SNAKE_QUIT (BUTTON_SELECT|BUTTON_MENU) 77#define SNAKE_QUIT (BUTTON_SELECT|BUTTON_MENU)
78#define SNAKE_LEFT BUTTON_LEFT
79#define SNAKE_RIGHT BUTTON_RIGHT
70#define SNAKE_UP BUTTON_MENU 80#define SNAKE_UP BUTTON_MENU
71#define SNAKE_DOWN BUTTON_PLAY 81#define SNAKE_DOWN BUTTON_PLAY
72#define SNAKE_PLAYPAUSE BUTTON_SELECT 82#define SNAKE_PLAYPAUSE BUTTON_SELECT
73 83
74#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) 84#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD)
75#define SNAKE_QUIT BUTTON_POWER 85#define SNAKE_QUIT BUTTON_POWER
86#define SNAKE_LEFT BUTTON_LEFT
87#define SNAKE_RIGHT BUTTON_RIGHT
76#define SNAKE_UP BUTTON_UP 88#define SNAKE_UP BUTTON_UP
77#define SNAKE_DOWN BUTTON_DOWN 89#define SNAKE_DOWN BUTTON_DOWN
78#define SNAKE_PLAYPAUSE BUTTON_PLAY 90#define SNAKE_PLAYPAUSE BUTTON_PLAY
79 91
80#elif (CONFIG_KEYPAD == GIGABEAT_PAD) 92#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
81#define SNAKE_QUIT BUTTON_POWER 93#define SNAKE_QUIT BUTTON_POWER
94#define SNAKE_LEFT BUTTON_LEFT
95#define SNAKE_RIGHT BUTTON_RIGHT
82#define SNAKE_UP BUTTON_UP 96#define SNAKE_UP BUTTON_UP
83#define SNAKE_DOWN BUTTON_DOWN 97#define SNAKE_DOWN BUTTON_DOWN
84#define SNAKE_PLAYPAUSE BUTTON_SELECT 98#define SNAKE_PLAYPAUSE BUTTON_SELECT
@@ -86,28 +100,46 @@ PLUGIN_HEADER
86#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ 100#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
87(CONFIG_KEYPAD == SANSA_C200_PAD) 101(CONFIG_KEYPAD == SANSA_C200_PAD)
88#define SNAKE_QUIT BUTTON_POWER 102#define SNAKE_QUIT BUTTON_POWER
103#define SNAKE_LEFT BUTTON_LEFT
104#define SNAKE_RIGHT BUTTON_RIGHT
89#define SNAKE_UP BUTTON_UP 105#define SNAKE_UP BUTTON_UP
90#define SNAKE_DOWN BUTTON_DOWN 106#define SNAKE_DOWN BUTTON_DOWN
91#define SNAKE_PLAYPAUSE BUTTON_SELECT 107#define SNAKE_PLAYPAUSE BUTTON_SELECT
92 108
93#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 109#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
94#define SNAKE_QUIT BUTTON_POWER 110#define SNAKE_QUIT BUTTON_POWER
111#define SNAKE_LEFT BUTTON_LEFT
112#define SNAKE_RIGHT BUTTON_RIGHT
95#define SNAKE_UP BUTTON_SCROLL_UP 113#define SNAKE_UP BUTTON_SCROLL_UP
96#define SNAKE_DOWN BUTTON_SCROLL_DOWN 114#define SNAKE_DOWN BUTTON_SCROLL_DOWN
97#define SNAKE_PLAYPAUSE BUTTON_PLAY 115#define SNAKE_PLAYPAUSE BUTTON_PLAY
98 116
99#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) 117#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD)
100#define SNAKE_QUIT BUTTON_BACK 118#define SNAKE_QUIT BUTTON_BACK
119#define SNAKE_LEFT BUTTON_LEFT
120#define SNAKE_RIGHT BUTTON_RIGHT
101#define SNAKE_UP BUTTON_UP 121#define SNAKE_UP BUTTON_UP
102#define SNAKE_DOWN BUTTON_DOWN 122#define SNAKE_DOWN BUTTON_DOWN
103#define SNAKE_PLAYPAUSE BUTTON_SELECT 123#define SNAKE_PLAYPAUSE BUTTON_SELECT
104 124
105#elif (CONFIG_KEYPAD == MROBE100_PAD) 125#elif (CONFIG_KEYPAD == MROBE100_PAD)
106#define SNAKE_QUIT BUTTON_POWER 126#define SNAKE_QUIT BUTTON_POWER
127#define SNAKE_LEFT BUTTON_LEFT
128#define SNAKE_RIGHT BUTTON_RIGHT
107#define SNAKE_UP BUTTON_UP 129#define SNAKE_UP BUTTON_UP
108#define SNAKE_DOWN BUTTON_DOWN 130#define SNAKE_DOWN BUTTON_DOWN
109#define SNAKE_PLAYPAUSE BUTTON_SELECT 131#define SNAKE_PLAYPAUSE BUTTON_SELECT
110 132
133#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
134#define SNAKE_QUIT BUTTON_RC_REC
135#define SNAKE_LEFT BUTTON_RC_REW
136#define SNAKE_RIGHT BUTTON_RC_FF
137#define SNAKE_UP BUTTON_RC_VOL_UP
138#define SNAKE_DOWN BUTTON_RC_VOL_DOWN
139#define SNAKE_PLAYPAUSE BUTTON_RC_PLAY
140
141#define SNAKE_RC_QUIT BUTTON_REC
142
111#else 143#else
112#error No keymap defined! 144#error No keymap defined!
113#endif 145#endif
@@ -308,13 +340,13 @@ void game (void) {
308 case SNAKE_UP: 340 case SNAKE_UP:
309 if (dir!=2) dir=0; 341 if (dir!=2) dir=0;
310 break; 342 break;
311 case BUTTON_RIGHT: 343 case SNAKE_RIGHT:
312 if (dir!=3) dir=1; 344 if (dir!=3) dir=1;
313 break; 345 break;
314 case SNAKE_DOWN: 346 case SNAKE_DOWN:
315 if (dir!=0) dir=2; 347 if (dir!=0) dir=2;
316 break; 348 break;
317 case BUTTON_LEFT: 349 case SNAKE_LEFT:
318 if (dir!=1) dir=3; 350 if (dir!=1) dir=3;
319 break; 351 break;
320#ifdef SNAKE_RC_QUIT 352#ifdef SNAKE_RC_QUIT
diff --git a/apps/plugins/snake2.c b/apps/plugins/snake2.c
index bae520b9ac..07e3991c3b 100644
--- a/apps/plugins/snake2.c
+++ b/apps/plugins/snake2.c
@@ -35,6 +35,17 @@ PLUGIN_HEADER
35#define WIDTH 28 35#define WIDTH 28
36#define HEIGHT 16 36#define HEIGHT 16
37 37
38#if (LCD_WIDTH >= 160) && (LCD_HEIGHT >= 128) && (LCD_DEPTH >= 1)
39#include "snake2_header1.h"
40#include "snake2_header2.h"
41#include "snake2_left.h"
42#include "snake2_right.h"
43#include "snake2_bottom.h"
44#define BMPHEIGHT_snake2_header BMPHEIGHT_snake2_header1
45#define BMPWIDTH_snake2_header BMPWIDTH_snake2_header1
46#endif
47
48
38#if (LCD_WIDTH >= 320) && (LCD_HEIGHT >= 240) 49#if (LCD_WIDTH >= 320) && (LCD_HEIGHT >= 240)
39 #define MULTIPLIER 10 /*Modifier for porting on other screens*/ 50 #define MULTIPLIER 10 /*Modifier for porting on other screens*/
40 #define MODIFIER_1 10 51 #define MODIFIER_1 10
@@ -47,14 +58,6 @@ PLUGIN_HEADER
47 #define TOP_X4 274 /* x-coord of the lowerright item (hi-score) */ 58 #define TOP_X4 274 /* x-coord of the lowerright item (hi-score) */
48 #define TOP_Y1 4 /* y-coord of the top row of items */ 59 #define TOP_Y1 4 /* y-coord of the top row of items */
49 #define TOP_Y2 25 /* y-coord of the bottom row of items */ 60 #define TOP_Y2 25 /* y-coord of the bottom row of items */
50 #define BMPHEIGHT_snake2_header 38
51 #define BMPWIDTH_snake2_header 320
52 #define BMPHEIGHT_snake2_right 192
53 #define BMPWIDTH_snake2_right 10
54 #define BMPHEIGHT_snake2_left 192
55 #define BMPWIDTH_snake2_left 10
56 #define BMPHEIGHT_snake2_bottom 10
57 #define BMPWIDTH_snake2_bottom 320
58#elif (LCD_WIDTH >= 240) && (LCD_HEIGHT >= 168) 61#elif (LCD_WIDTH >= 240) && (LCD_HEIGHT >= 168)
59 #define MULTIPLIER 8 62 #define MULTIPLIER 8
60 #define MODIFIER_1 8 63 #define MODIFIER_1 8
@@ -67,14 +70,6 @@ PLUGIN_HEADER
67 #define TOP_X4 194 70 #define TOP_X4 194
68 #define TOP_Y1 4 71 #define TOP_Y1 4
69 #define TOP_Y2 25 72 #define TOP_Y2 25
70 #define BMPHEIGHT_snake2_header 38
71 #define BMPWIDTH_snake2_header 240
72 #define BMPHEIGHT_snake2_right 120
73 #define BMPWIDTH_snake2_right 10
74 #define BMPHEIGHT_snake2_left 120
75 #define BMPWIDTH_snake2_left 10
76 #define BMPHEIGHT_snake2_bottom 10
77 #define BMPWIDTH_snake2_bottom 240
78#elif (LCD_WIDTH >= 220) && (LCD_HEIGHT >= 176) 73#elif (LCD_WIDTH >= 220) && (LCD_HEIGHT >= 176)
79 #define MULTIPLIER 7 74 #define MULTIPLIER 7
80 #define MODIFIER_1 7 75 #define MODIFIER_1 7
@@ -87,14 +82,6 @@ PLUGIN_HEADER
87 #define TOP_X4 174 82 #define TOP_X4 174
88 #define TOP_Y1 4 83 #define TOP_Y1 4
89 #define TOP_Y2 25 84 #define TOP_Y2 25
90 #define BMPHEIGHT_snake2_header 38
91 #define BMPWIDTH_snake2_header 220
92 #define BMPHEIGHT_snake2_right 128
93 #define BMPWIDTH_snake2_right 10
94 #define BMPHEIGHT_snake2_left 128
95 #define BMPWIDTH_snake2_left 10
96 #define BMPHEIGHT_snake2_bottom 10
97 #define BMPWIDTH_snake2_bottom 220
98#elif (LCD_WIDTH >= 176) && (LCD_HEIGHT >= 132) 85#elif (LCD_WIDTH >= 176) && (LCD_HEIGHT >= 132)
99 #define MULTIPLIER 5 86 #define MULTIPLIER 5
100 #define MODIFIER_1 5 87 #define MODIFIER_1 5
@@ -107,14 +94,6 @@ PLUGIN_HEADER
107 #define TOP_X4 130 94 #define TOP_X4 130
108 #define TOP_Y1 4 95 #define TOP_Y1 4
109 #define TOP_Y2 25 96 #define TOP_Y2 25
110 #define BMPHEIGHT_snake2_header 38
111 #define BMPWIDTH_snake2_header 176
112 #define BMPHEIGHT_snake2_right 84
113 #define BMPWIDTH_snake2_right 10
114 #define BMPHEIGHT_snake2_left 84
115 #define BMPWIDTH_snake2_left 10
116 #define BMPHEIGHT_snake2_bottom 10
117 #define BMPWIDTH_snake2_bottom 176
118#elif (LCD_WIDTH >= 160) && (LCD_HEIGHT >= 128) 97#elif (LCD_WIDTH >= 160) && (LCD_HEIGHT >= 128)
119 #define MULTIPLIER 5 98 #define MULTIPLIER 5
120 #define MODIFIER_1 5 99 #define MODIFIER_1 5
@@ -127,14 +106,6 @@ PLUGIN_HEADER
127 #define TOP_X4 114 106 #define TOP_X4 114
128 #define TOP_Y1 4 107 #define TOP_Y1 4
129 #define TOP_Y2 25 108 #define TOP_Y2 25
130 #define BMPHEIGHT_snake2_header 38
131 #define BMPWIDTH_snake2_header 160
132 #define BMPHEIGHT_snake2_right 80
133 #define BMPWIDTH_snake2_right 10
134 #define BMPHEIGHT_snake2_left 80
135 #define BMPWIDTH_snake2_left 10
136 #define BMPHEIGHT_snake2_bottom 10
137 #define BMPWIDTH_snake2_bottom 160
138#else 109#else
139 #define MULTIPLIER 4 110 #define MULTIPLIER 4
140 #define MODIFIER_1 4 111 #define MODIFIER_1 4
@@ -146,6 +117,8 @@ PLUGIN_HEADER
146 117
147/* variable button definitions */ 118/* variable button definitions */
148#if CONFIG_KEYPAD == RECORDER_PAD 119#if CONFIG_KEYPAD == RECORDER_PAD
120#define SNAKE2_LEFT BUTTON_LEFT
121#define SNAKE2_RIGHT BUTTON_RIGHT
149#define SNAKE2_UP BUTTON_UP 122#define SNAKE2_UP BUTTON_UP
150#define SNAKE2_DOWN BUTTON_DOWN 123#define SNAKE2_DOWN BUTTON_DOWN
151#define SNAKE2_QUIT BUTTON_OFF 124#define SNAKE2_QUIT BUTTON_OFF
@@ -158,6 +131,8 @@ PLUGIN_HEADER
158#define SNAKE2_PLAYPAUSE_TEXT "Play" 131#define SNAKE2_PLAYPAUSE_TEXT "Play"
159 132
160#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD 133#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
134#define SNAKE2_LEFT BUTTON_LEFT
135#define SNAKE2_RIGHT BUTTON_RIGHT
161#define SNAKE2_UP BUTTON_UP 136#define SNAKE2_UP BUTTON_UP
162#define SNAKE2_DOWN BUTTON_DOWN 137#define SNAKE2_DOWN BUTTON_DOWN
163#define SNAKE2_QUIT BUTTON_OFF 138#define SNAKE2_QUIT BUTTON_OFF
@@ -170,6 +145,8 @@ PLUGIN_HEADER
170#define SNAKE2_PLAYPAUSE_TEXT "Select" 145#define SNAKE2_PLAYPAUSE_TEXT "Select"
171 146
172#elif CONFIG_KEYPAD == ONDIO_PAD 147#elif CONFIG_KEYPAD == ONDIO_PAD
148#define SNAKE2_LEFT BUTTON_LEFT
149#define SNAKE2_RIGHT BUTTON_RIGHT
173#define SNAKE2_UP BUTTON_UP 150#define SNAKE2_UP BUTTON_UP
174#define SNAKE2_DOWN BUTTON_DOWN 151#define SNAKE2_DOWN BUTTON_DOWN
175#define SNAKE2_QUIT BUTTON_OFF 152#define SNAKE2_QUIT BUTTON_OFF
@@ -182,6 +159,8 @@ PLUGIN_HEADER
182 159
183#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ 160#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
184 (CONFIG_KEYPAD == IRIVER_H300_PAD) 161 (CONFIG_KEYPAD == IRIVER_H300_PAD)
162#define SNAKE2_LEFT BUTTON_LEFT
163#define SNAKE2_RIGHT BUTTON_RIGHT
185#define SNAKE2_UP BUTTON_UP 164#define SNAKE2_UP BUTTON_UP
186#define SNAKE2_DOWN BUTTON_DOWN 165#define SNAKE2_DOWN BUTTON_DOWN
187#define SNAKE2_QUIT BUTTON_OFF 166#define SNAKE2_QUIT BUTTON_OFF
@@ -197,6 +176,8 @@ PLUGIN_HEADER
197#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ 176#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
198 (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 177 (CONFIG_KEYPAD == IPOD_3G_PAD) || \
199 (CONFIG_KEYPAD == IPOD_1G2G_PAD) 178 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
179#define SNAKE2_LEFT BUTTON_LEFT
180#define SNAKE2_RIGHT BUTTON_RIGHT
200#define SNAKE2_UP BUTTON_MENU 181#define SNAKE2_UP BUTTON_MENU
201#define SNAKE2_DOWN BUTTON_PLAY 182#define SNAKE2_DOWN BUTTON_PLAY
202#define SNAKE2_QUIT (BUTTON_SELECT | BUTTON_MENU) 183#define SNAKE2_QUIT (BUTTON_SELECT | BUTTON_MENU)
@@ -209,6 +190,8 @@ PLUGIN_HEADER
209#define SNAKE2_PLAYPAUSE_TEXT "Select" 190#define SNAKE2_PLAYPAUSE_TEXT "Select"
210 191
211#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) 192#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD)
193#define SNAKE2_LEFT BUTTON_LEFT
194#define SNAKE2_RIGHT BUTTON_RIGHT
212#define SNAKE2_UP BUTTON_UP 195#define SNAKE2_UP BUTTON_UP
213#define SNAKE2_DOWN BUTTON_DOWN 196#define SNAKE2_DOWN BUTTON_DOWN
214#define SNAKE2_QUIT BUTTON_POWER 197#define SNAKE2_QUIT BUTTON_POWER
@@ -221,6 +204,8 @@ PLUGIN_HEADER
221#define SNAKE2_PLAYPAUSE_TEXT "Select" 204#define SNAKE2_PLAYPAUSE_TEXT "Select"
222 205
223#elif (CONFIG_KEYPAD == GIGABEAT_PAD) 206#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
207#define SNAKE2_LEFT BUTTON_LEFT
208#define SNAKE2_RIGHT BUTTON_RIGHT
224#define SNAKE2_UP BUTTON_UP 209#define SNAKE2_UP BUTTON_UP
225#define SNAKE2_DOWN BUTTON_DOWN 210#define SNAKE2_DOWN BUTTON_DOWN
226#define SNAKE2_QUIT BUTTON_POWER 211#define SNAKE2_QUIT BUTTON_POWER
@@ -234,6 +219,8 @@ PLUGIN_HEADER
234 219
235#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ 220#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
236(CONFIG_KEYPAD == SANSA_C200_PAD) 221(CONFIG_KEYPAD == SANSA_C200_PAD)
222#define SNAKE2_LEFT BUTTON_LEFT
223#define SNAKE2_RIGHT BUTTON_RIGHT
237#define SNAKE2_UP BUTTON_UP 224#define SNAKE2_UP BUTTON_UP
238#define SNAKE2_DOWN BUTTON_DOWN 225#define SNAKE2_DOWN BUTTON_DOWN
239#define SNAKE2_QUIT BUTTON_POWER 226#define SNAKE2_QUIT BUTTON_POWER
@@ -246,6 +233,8 @@ PLUGIN_HEADER
246#define SNAKE2_PLAYPAUSE_TEXT "Select" 233#define SNAKE2_PLAYPAUSE_TEXT "Select"
247 234
248#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 235#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
236#define SNAKE2_LEFT BUTTON_LEFT
237#define SNAKE2_RIGHT BUTTON_RIGHT
249#define SNAKE2_UP BUTTON_SCROLL_UP 238#define SNAKE2_UP BUTTON_SCROLL_UP
250#define SNAKE2_DOWN BUTTON_SCROLL_DOWN 239#define SNAKE2_DOWN BUTTON_SCROLL_DOWN
251#define SNAKE2_QUIT BUTTON_POWER 240#define SNAKE2_QUIT BUTTON_POWER
@@ -258,6 +247,8 @@ PLUGIN_HEADER
258#define SNAKE2_PLAYPAUSE_TEXT "FF" 247#define SNAKE2_PLAYPAUSE_TEXT "FF"
259 248
260#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) 249#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD)
250#define SNAKE2_LEFT BUTTON_LEFT
251#define SNAKE2_RIGHT BUTTON_RIGHT
261#define SNAKE2_UP BUTTON_UP 252#define SNAKE2_UP BUTTON_UP
262#define SNAKE2_DOWN BUTTON_DOWN 253#define SNAKE2_DOWN BUTTON_DOWN
263#define SNAKE2_QUIT BUTTON_BACK 254#define SNAKE2_QUIT BUTTON_BACK
@@ -270,6 +261,8 @@ PLUGIN_HEADER
270#define SNAKE2_PLAYPAUSE_TEXT "Select" 261#define SNAKE2_PLAYPAUSE_TEXT "Select"
271 262
272#elif (CONFIG_KEYPAD == MROBE100_PAD) 263#elif (CONFIG_KEYPAD == MROBE100_PAD)
264#define SNAKE2_LEFT BUTTON_LEFT
265#define SNAKE2_RIGHT BUTTON_RIGHT
273#define SNAKE2_UP BUTTON_UP 266#define SNAKE2_UP BUTTON_UP
274#define SNAKE2_DOWN BUTTON_DOWN 267#define SNAKE2_DOWN BUTTON_DOWN
275#define SNAKE2_QUIT BUTTON_POWER 268#define SNAKE2_QUIT BUTTON_POWER
@@ -281,6 +274,20 @@ PLUGIN_HEADER
281#define SNAKE2_PLAYPAUSE BUTTON_SELECT 274#define SNAKE2_PLAYPAUSE BUTTON_SELECT
282#define SNAKE2_PLAYPAUSE_TEXT "Select" 275#define SNAKE2_PLAYPAUSE_TEXT "Select"
283 276
277#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
278#define SNAKE2_LEFT BUTTON_RC_REW
279#define SNAKE2_RIGHT BUTTON_RC_FF
280#define SNAKE2_UP BUTTON_RC_VOL_UP
281#define SNAKE2_DOWN BUTTON_RC_VOL_DOWN
282#define SNAKE2_QUIT BUTTON_RC_REC
283#define SNAKE2_LEVEL_UP BUTTON_RC_VOL_UP
284#define SNAKE2_LEVEL_DOWN BUTTON_RC_VOL_DOWN
285#define SNAKE2_MAZE_NEXT BUTTON_RC_FF
286#define SNAKE2_MAZE_LAST BUTTON_RC_REW
287#define SNAKE2_SELECT_TYPE BUTTON_RC_MODE
288#define SNAKE2_PLAYPAUSE BUTTON_RC_PLAY
289#define SNAKE2_PLAYPAUSE_TEXT "Play"
290
284#else 291#else
285#error No keymap defined! 292#error No keymap defined!
286#endif 293#endif
@@ -314,22 +321,6 @@ static int game_b_level=0;
314static int applecount=0; 321static int applecount=0;
315static char phscore[30]; 322static char phscore[30];
316 323
317#if (LCD_WIDTH >= 160) && (LCD_HEIGHT >= 128)
318#ifdef HAVE_LCD_COLOR
319extern const unsigned short snake2_header1[];
320extern const unsigned short snake2_header2[];
321extern const unsigned short snake2_left[];
322extern const unsigned short snake2_right[];
323extern const unsigned short snake2_bottom[];
324#else
325extern const unsigned char snake2_header1[];
326extern const unsigned char snake2_header2[];
327extern const unsigned char snake2_left[];
328extern const unsigned char snake2_right[];
329extern const unsigned char snake2_bottom[];
330#endif
331#endif
332
333#define NORTH 1 324#define NORTH 1
334#define EAST 2 325#define EAST 2
335#define SOUTH 4 326#define SOUTH 4
@@ -1196,8 +1187,8 @@ void game (void)
1196 if (dir != SOUTH) set_direction(NORTH); 1187 if (dir != SOUTH) set_direction(NORTH);
1197 break; 1188 break;
1198 1189
1199 case BUTTON_RIGHT: 1190 case SNAKE2_RIGHT:
1200 case BUTTON_RIGHT | BUTTON_REPEAT: 1191 case SNAKE2_RIGHT | BUTTON_REPEAT:
1201 if (dir != WEST) set_direction(EAST); 1192 if (dir != WEST) set_direction(EAST);
1202 break; 1193 break;
1203 1194
@@ -1206,8 +1197,8 @@ void game (void)
1206 if (dir != NORTH) set_direction(SOUTH); 1197 if (dir != NORTH) set_direction(SOUTH);
1207 break; 1198 break;
1208 1199
1209 case BUTTON_LEFT: 1200 case SNAKE2_LEFT:
1210 case BUTTON_LEFT | BUTTON_REPEAT: 1201 case SNAKE2_LEFT | BUTTON_REPEAT:
1211 if (dir != EAST) set_direction(WEST); 1202 if (dir != EAST) set_direction(WEST);
1212 break; 1203 break;
1213 1204
diff --git a/apps/plugins/snow.c b/apps/plugins/snow.c
index 56ebb2eae4..43a7d00cd5 100644
--- a/apps/plugins/snow.c
+++ b/apps/plugins/snow.c
@@ -57,6 +57,9 @@ PLUGIN_HEADER
57#define SNOW_QUIT BUTTON_POWER 57#define SNOW_QUIT BUTTON_POWER
58#elif CONFIG_KEYPAD == GIGABEAT_S_PAD 58#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
59#define SNOW_QUIT BUTTON_BACK 59#define SNOW_QUIT BUTTON_BACK
60#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
61#define SNOW_QUIT BUTTON_REC
62#define SNOW_RC_QUIT BUTTON_RC_REC
60#else 63#else
61#define SNOW_QUIT BUTTON_OFF 64#define SNOW_QUIT BUTTON_OFF
62#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD) 65#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD)
diff --git a/apps/plugins/sokoban.c b/apps/plugins/sokoban.c
index 66492fd3d5..d665a0a622 100644
--- a/apps/plugins/sokoban.c
+++ b/apps/plugins/sokoban.c
@@ -105,6 +105,8 @@ extern const fb_data sokoban_tiles[];
105/* variable button definitions */ 105/* variable button definitions */
106#if (CONFIG_KEYPAD == RECORDER_PAD) || \ 106#if (CONFIG_KEYPAD == RECORDER_PAD) || \
107 (CONFIG_KEYPAD == ARCHOS_AV300_PAD) 107 (CONFIG_KEYPAD == ARCHOS_AV300_PAD)
108#define SOKOBAN_LEFT BUTTON_LEFT
109#define SOKOBAN_RIGHT BUTTON_RIGHT
108#define SOKOBAN_UP BUTTON_UP 110#define SOKOBAN_UP BUTTON_UP
109#define SOKOBAN_DOWN BUTTON_DOWN 111#define SOKOBAN_DOWN BUTTON_DOWN
110#define SOKOBAN_MENU BUTTON_OFF 112#define SOKOBAN_MENU BUTTON_OFF
@@ -118,6 +120,8 @@ extern const fb_data sokoban_tiles[];
118#define BUTTON_SAVE_NAME "ON" 120#define BUTTON_SAVE_NAME "ON"
119 121
120#elif CONFIG_KEYPAD == ONDIO_PAD 122#elif CONFIG_KEYPAD == ONDIO_PAD
123#define SOKOBAN_LEFT BUTTON_LEFT
124#define SOKOBAN_RIGHT BUTTON_RIGHT
121#define SOKOBAN_UP BUTTON_UP 125#define SOKOBAN_UP BUTTON_UP
122#define SOKOBAN_DOWN BUTTON_DOWN 126#define SOKOBAN_DOWN BUTTON_DOWN
123#define SOKOBAN_MENU BUTTON_OFF 127#define SOKOBAN_MENU BUTTON_OFF
@@ -133,6 +137,8 @@ extern const fb_data sokoban_tiles[];
133 137
134#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ 138#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
135 (CONFIG_KEYPAD == IRIVER_H300_PAD) 139 (CONFIG_KEYPAD == IRIVER_H300_PAD)
140#define SOKOBAN_LEFT BUTTON_LEFT
141#define SOKOBAN_RIGHT BUTTON_RIGHT
136#define SOKOBAN_UP BUTTON_UP 142#define SOKOBAN_UP BUTTON_UP
137#define SOKOBAN_DOWN BUTTON_DOWN 143#define SOKOBAN_DOWN BUTTON_DOWN
138#define SOKOBAN_MENU BUTTON_OFF 144#define SOKOBAN_MENU BUTTON_OFF
@@ -150,6 +156,8 @@ extern const fb_data sokoban_tiles[];
150#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ 156#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
151 (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 157 (CONFIG_KEYPAD == IPOD_3G_PAD) || \
152 (CONFIG_KEYPAD == IPOD_1G2G_PAD) 158 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
159#define SOKOBAN_LEFT BUTTON_LEFT
160#define SOKOBAN_RIGHT BUTTON_RIGHT
153#define SOKOBAN_UP BUTTON_MENU 161#define SOKOBAN_UP BUTTON_MENU
154#define SOKOBAN_DOWN BUTTON_PLAY 162#define SOKOBAN_DOWN BUTTON_PLAY
155#define SOKOBAN_MENU (BUTTON_SELECT | BUTTON_MENU) 163#define SOKOBAN_MENU (BUTTON_SELECT | BUTTON_MENU)
@@ -165,6 +173,8 @@ extern const fb_data sokoban_tiles[];
165/* FIXME: if/when simultaneous button presses work for X5/M5, 173/* FIXME: if/when simultaneous button presses work for X5/M5,
166 * add level up/down */ 174 * add level up/down */
167#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD 175#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD
176#define SOKOBAN_LEFT BUTTON_LEFT
177#define SOKOBAN_RIGHT BUTTON_RIGHT
168#define SOKOBAN_UP BUTTON_UP 178#define SOKOBAN_UP BUTTON_UP
169#define SOKOBAN_DOWN BUTTON_DOWN 179#define SOKOBAN_DOWN BUTTON_DOWN
170#define SOKOBAN_MENU BUTTON_POWER 180#define SOKOBAN_MENU BUTTON_POWER
@@ -177,6 +187,8 @@ extern const fb_data sokoban_tiles[];
177#define BUTTON_SAVE_NAME "SELECT" 187#define BUTTON_SAVE_NAME "SELECT"
178 188
179#elif CONFIG_KEYPAD == IRIVER_H10_PAD 189#elif CONFIG_KEYPAD == IRIVER_H10_PAD
190#define SOKOBAN_LEFT BUTTON_LEFT
191#define SOKOBAN_RIGHT BUTTON_RIGHT
180#define SOKOBAN_UP BUTTON_SCROLL_UP 192#define SOKOBAN_UP BUTTON_SCROLL_UP
181#define SOKOBAN_DOWN BUTTON_SCROLL_DOWN 193#define SOKOBAN_DOWN BUTTON_SCROLL_DOWN
182#define SOKOBAN_MENU BUTTON_POWER 194#define SOKOBAN_MENU BUTTON_POWER
@@ -191,6 +203,8 @@ extern const fb_data sokoban_tiles[];
191#define BUTTON_SAVE_NAME "PLAY" 203#define BUTTON_SAVE_NAME "PLAY"
192 204
193#elif CONFIG_KEYPAD == GIGABEAT_PAD 205#elif CONFIG_KEYPAD == GIGABEAT_PAD
206#define SOKOBAN_LEFT BUTTON_LEFT
207#define SOKOBAN_RIGHT BUTTON_RIGHT
194#define SOKOBAN_UP BUTTON_UP 208#define SOKOBAN_UP BUTTON_UP
195#define SOKOBAN_DOWN BUTTON_DOWN 209#define SOKOBAN_DOWN BUTTON_DOWN
196#define SOKOBAN_MENU BUTTON_POWER 210#define SOKOBAN_MENU BUTTON_POWER
@@ -204,6 +218,8 @@ extern const fb_data sokoban_tiles[];
204#define BUTTON_SAVE_NAME "SELECT" 218#define BUTTON_SAVE_NAME "SELECT"
205 219
206#elif CONFIG_KEYPAD == SANSA_E200_PAD 220#elif CONFIG_KEYPAD == SANSA_E200_PAD
221#define SOKOBAN_LEFT BUTTON_LEFT
222#define SOKOBAN_RIGHT BUTTON_RIGHT
207#define SOKOBAN_UP BUTTON_UP 223#define SOKOBAN_UP BUTTON_UP
208#define SOKOBAN_DOWN BUTTON_DOWN 224#define SOKOBAN_DOWN BUTTON_DOWN
209#define SOKOBAN_MENU BUTTON_POWER 225#define SOKOBAN_MENU BUTTON_POWER
@@ -218,6 +234,8 @@ extern const fb_data sokoban_tiles[];
218#define BUTTON_SAVE_NAME "SELECT" 234#define BUTTON_SAVE_NAME "SELECT"
219 235
220#elif CONFIG_KEYPAD == GIGABEAT_S_PAD 236#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
237#define SOKOBAN_LEFT BUTTON_LEFT
238#define SOKOBAN_RIGHT BUTTON_RIGHT
221#define SOKOBAN_UP BUTTON_UP 239#define SOKOBAN_UP BUTTON_UP
222#define SOKOBAN_DOWN BUTTON_DOWN 240#define SOKOBAN_DOWN BUTTON_DOWN
223#define SOKOBAN_MENU BUTTON_MENU 241#define SOKOBAN_MENU BUTTON_MENU
@@ -231,6 +249,8 @@ extern const fb_data sokoban_tiles[];
231#define BUTTON_SAVE_NAME "SELECT" 249#define BUTTON_SAVE_NAME "SELECT"
232 250
233#elif CONFIG_KEYPAD == MROBE100_PAD 251#elif CONFIG_KEYPAD == MROBE100_PAD
252#define SOKOBAN_LEFT BUTTON_LEFT
253#define SOKOBAN_RIGHT BUTTON_RIGHT
234#define SOKOBAN_UP BUTTON_UP 254#define SOKOBAN_UP BUTTON_UP
235#define SOKOBAN_DOWN BUTTON_DOWN 255#define SOKOBAN_DOWN BUTTON_DOWN
236#define SOKOBAN_MENU BUTTON_POWER 256#define SOKOBAN_MENU BUTTON_POWER
@@ -243,6 +263,20 @@ extern const fb_data sokoban_tiles[];
243#define BUTTON_SAVE BUTTON_SELECT 263#define BUTTON_SAVE BUTTON_SELECT
244#define BUTTON_SAVE_NAME "SELECT" 264#define BUTTON_SAVE_NAME "SELECT"
245 265
266#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
267#define SOKOBAN_LEFT BUTTON_RC_REW
268#define SOKOBAN_RIGHT BUTTON_RC_FF
269#define SOKOBAN_UP BUTTON_RC_VOL_UP
270#define SOKOBAN_DOWN BUTTON_RC_VOL_DOWN
271#define SOKOBAN_MENU BUTTON_RC_REC
272#define SOKOBAN_UNDO BUTTON_RC_MODE
273#define SOKOBAN_REDO BUTTON_RC_MENU
274#define SOKOBAN_PAUSE BUTTON_RC_PLAY
275#define BUTTON_SAVE BUTTON_RC_PLAY
276#define BUTTON_SAVE_NAME "PLAY"
277
278#define SOKOBAN_RC_MENU BUTTON_REC
279
246#else 280#else
247#error No keymap defined! 281#error No keymap defined!
248#endif 282#endif
@@ -1043,8 +1077,8 @@ static bool load(char *filename, bool silent)
1043 paused = !paused; 1077 paused = !paused;
1044 break; 1078 break;
1045 1079
1046 case BUTTON_LEFT: 1080 case SOKOBAN_LEFT:
1047 case BUTTON_LEFT | BUTTON_REPEAT: 1081 case SOKOBAN_LEFT | BUTTON_REPEAT:
1048 /* Go back one move */ 1082 /* Go back one move */
1049 if (paused) { 1083 if (paused) {
1050 if (undo()) 1084 if (undo())
@@ -1054,8 +1088,8 @@ static bool load(char *filename, bool silent)
1054 } 1088 }
1055 break; 1089 break;
1056 1090
1057 case BUTTON_RIGHT: 1091 case SOKOBAN_RIGHT:
1058 case BUTTON_RIGHT | BUTTON_REPEAT: 1092 case SOKOBAN_RIGHT | BUTTON_REPEAT:
1059 /* Go forward one move */ 1093 /* Go forward one move */
1060 if (paused) { 1094 if (paused) {
1061 if (redo()) 1095 if (redo())
@@ -1336,13 +1370,13 @@ static bool sokoban_loop(void)
1336 break; 1370 break;
1337#endif 1371#endif
1338 1372
1339 case BUTTON_LEFT: 1373 case SOKOBAN_LEFT:
1340 case BUTTON_LEFT | BUTTON_REPEAT: 1374 case SOKOBAN_LEFT | BUTTON_REPEAT:
1341 moved = move(SOKOBAN_MOVE_LEFT, false); 1375 moved = move(SOKOBAN_MOVE_LEFT, false);
1342 break; 1376 break;
1343 1377
1344 case BUTTON_RIGHT: 1378 case SOKOBAN_RIGHT:
1345 case BUTTON_RIGHT | BUTTON_REPEAT: 1379 case SOKOBAN_RIGHT | BUTTON_REPEAT:
1346 moved = move(SOKOBAN_MOVE_RIGHT, false); 1380 moved = move(SOKOBAN_MOVE_RIGHT, false);
1347 break; 1381 break;
1348 1382
diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c
index fba2bf55a4..62f60c7eb4 100644
--- a/apps/plugins/solitaire.c
+++ b/apps/plugins/solitaire.c
@@ -275,11 +275,36 @@ static struct plugin_api* rb;
275# define HK_CUR2STACK "SELECT.." 275# define HK_CUR2STACK "SELECT.."
276# define HK_REM2STACK "DISPLAY+RIGHT" 276# define HK_REM2STACK "DISPLAY+RIGHT"
277 277
278#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
279# define SOL_QUIT BUTTON_RC_REC
280# define SOL_UP BUTTON_RC_VOL_UP
281# define SOL_DOWN BUTTON_RC_VOL_DOWN
282# define SOL_LEFT BUTTON_RC_REW
283# define SOL_RIGHT BUTTON_RC_FF
284# define SOL_MOVE BUTTON_RC_PLAY
285# define SOL_DRAW_PRE BUTTON_RC_MENU
286# define SOL_DRAW (BUTTON_RC_MENU | BUTTON_REL)
287# define SOL_REM2CUR_PRE BUTTON_RC_MENU
288# define SOL_REM2CUR (BUTTON_RC_MENU | BUTTON_REPEAT)
289# define SOL_CUR2STACK_PRE BUTTON_RC_MODE
290# define SOL_CUR2STACK (BUTTON_RC_MODE | BUTTON_REL)
291# define SOL_REM2STACK_PRE BUTTON_RC_MODE
292# define SOL_REM2STACK (BUTTON_RC_MODE | BUTTON_REPEAT)
293# define HK_LR "REW/FF"
294# define HK_UD "VOL UP/DOWN"
295# define HK_MOVE "PLAY"
296# define HK_DRAW "MENU"
297# define HK_REM2CUR "MENU.."
298# define HK_CUR2STACK "MODE"
299# define HK_REM2STACK "MODE.."
300
278#else 301#else
279#error No keymap defined! 302#error No keymap defined!
280#endif 303#endif
281 304
282#define HK_LR "LEFT/RIGHT" 305#ifndef HK_LR
306# define HK_LR "LEFT/RIGHT"
307#endif
283#ifndef HK_UD 308#ifndef HK_UD
284# define HK_UD "UP/DOWN" 309# define HK_UD "UP/DOWN"
285#endif 310#endif
diff --git a/apps/plugins/spacerocks.c b/apps/plugins/spacerocks.c
index 5d5a1bac6b..7de18e5459 100644
--- a/apps/plugins/spacerocks.c
+++ b/apps/plugins/spacerocks.c
@@ -187,6 +187,19 @@ static struct plugin_api* rb; /* global api struct pointer */
187#define AST_FIRE BUTTON_SELECT 187#define AST_FIRE BUTTON_SELECT
188#define AST_FIRE_REP BUTTON_SELECT | BUTTON_REPEAT 188#define AST_FIRE_REP BUTTON_SELECT | BUTTON_REPEAT
189 189
190#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
191#define AST_PAUSE BUTTON_RC_PLAY
192#define AST_QUIT BUTTON_RC_REC
193#define AST_THRUST_REP BUTTON_RC_VOL_UP | BUTTON_REPEAT
194#define AST_THRUST BUTTON_RC_VOL_UP
195#define AST_HYPERSPACE BUTTON_RC_VOL_DOWN
196#define AST_LEFT BUTTON_RC_REW
197#define AST_LEFT_REP (BUTTON_RC_REW | BUTTON_REPEAT)
198#define AST_RIGHT BUTTON_RC_FF
199#define AST_RIGHT_REP (BUTTON_RC_FF | BUTTON_REPEAT)
200#define AST_FIRE BUTTON_RC_MODE
201#define AST_FIRE_REP (BUTTON_RC_MODE | BUTTON_REPEAT)
202
190#else 203#else
191#error No keymap defined! 204#error No keymap defined!
192#endif 205#endif
diff --git a/apps/plugins/star.c b/apps/plugins/star.c
index 56fe89c4d3..04b6642ede 100644
--- a/apps/plugins/star.c
+++ b/apps/plugins/star.c
@@ -55,6 +55,8 @@ PLUGIN_HEADER
55/* variable button definitions */ 55/* variable button definitions */
56#if CONFIG_KEYPAD == RECORDER_PAD 56#if CONFIG_KEYPAD == RECORDER_PAD
57#define STAR_QUIT BUTTON_OFF 57#define STAR_QUIT BUTTON_OFF
58#define STAR_LEFT BUTTON_LEFT
59#define STAR_RIGHT BUTTON_RIGHT
58#define STAR_UP BUTTON_UP 60#define STAR_UP BUTTON_UP
59#define STAR_DOWN BUTTON_DOWN 61#define STAR_DOWN BUTTON_DOWN
60#define STAR_TOGGLE_CONTROL BUTTON_ON 62#define STAR_TOGGLE_CONTROL BUTTON_ON
@@ -68,6 +70,8 @@ PLUGIN_HEADER
68 70
69#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD 71#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
70#define STAR_QUIT BUTTON_OFF 72#define STAR_QUIT BUTTON_OFF
73#define STAR_LEFT BUTTON_LEFT
74#define STAR_RIGHT BUTTON_RIGHT
71#define STAR_UP BUTTON_UP 75#define STAR_UP BUTTON_UP
72#define STAR_DOWN BUTTON_DOWN 76#define STAR_DOWN BUTTON_DOWN
73#define STAR_TOGGLE_CONTROL BUTTON_ON 77#define STAR_TOGGLE_CONTROL BUTTON_ON
@@ -81,6 +85,8 @@ PLUGIN_HEADER
81 85
82#elif CONFIG_KEYPAD == ONDIO_PAD 86#elif CONFIG_KEYPAD == ONDIO_PAD
83#define STAR_QUIT BUTTON_OFF 87#define STAR_QUIT BUTTON_OFF
88#define STAR_LEFT BUTTON_LEFT
89#define STAR_RIGHT BUTTON_RIGHT
84#define STAR_UP BUTTON_UP 90#define STAR_UP BUTTON_UP
85#define STAR_DOWN BUTTON_DOWN 91#define STAR_DOWN BUTTON_DOWN
86#define STAR_TOGGLE_CONTROL_PRE BUTTON_MENU 92#define STAR_TOGGLE_CONTROL_PRE BUTTON_MENU
@@ -93,6 +99,8 @@ PLUGIN_HEADER
93#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ 99#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
94 (CONFIG_KEYPAD == IRIVER_H300_PAD) 100 (CONFIG_KEYPAD == IRIVER_H300_PAD)
95#define STAR_QUIT BUTTON_OFF 101#define STAR_QUIT BUTTON_OFF
102#define STAR_LEFT BUTTON_LEFT
103#define STAR_RIGHT BUTTON_RIGHT
96#define STAR_UP BUTTON_UP 104#define STAR_UP BUTTON_UP
97#define STAR_DOWN BUTTON_DOWN 105#define STAR_DOWN BUTTON_DOWN
98#define STAR_TOGGLE_CONTROL BUTTON_MODE 106#define STAR_TOGGLE_CONTROL BUTTON_MODE
@@ -109,6 +117,8 @@ PLUGIN_HEADER
109 (CONFIG_KEYPAD == IPOD_1G2G_PAD) 117 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
110 118
111#define STAR_QUIT (BUTTON_SELECT | BUTTON_MENU) 119#define STAR_QUIT (BUTTON_SELECT | BUTTON_MENU)
120#define STAR_LEFT BUTTON_LEFT
121#define STAR_RIGHT BUTTON_RIGHT
112#define STAR_UP BUTTON_MENU 122#define STAR_UP BUTTON_MENU
113#define STAR_DOWN BUTTON_PLAY 123#define STAR_DOWN BUTTON_PLAY
114#define STAR_TOGGLE_CONTROL_PRE BUTTON_SELECT 124#define STAR_TOGGLE_CONTROL_PRE BUTTON_SELECT
@@ -122,6 +132,8 @@ PLUGIN_HEADER
122#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) 132#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD)
123 133
124#define STAR_QUIT BUTTON_POWER 134#define STAR_QUIT BUTTON_POWER
135#define STAR_LEFT BUTTON_LEFT
136#define STAR_RIGHT BUTTON_RIGHT
125#define STAR_UP BUTTON_UP 137#define STAR_UP BUTTON_UP
126#define STAR_DOWN BUTTON_DOWN 138#define STAR_DOWN BUTTON_DOWN
127#define STAR_TOGGLE_CONTROL BUTTON_SELECT 139#define STAR_TOGGLE_CONTROL BUTTON_SELECT
@@ -136,6 +148,8 @@ PLUGIN_HEADER
136#elif (CONFIG_KEYPAD == GIGABEAT_PAD) 148#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
137 149
138#define STAR_QUIT BUTTON_POWER 150#define STAR_QUIT BUTTON_POWER
151#define STAR_LEFT BUTTON_LEFT
152#define STAR_RIGHT BUTTON_RIGHT
139#define STAR_UP BUTTON_UP 153#define STAR_UP BUTTON_UP
140#define STAR_DOWN BUTTON_DOWN 154#define STAR_DOWN BUTTON_DOWN
141#define STAR_TOGGLE_CONTROL BUTTON_SELECT 155#define STAR_TOGGLE_CONTROL BUTTON_SELECT
@@ -148,6 +162,8 @@ PLUGIN_HEADER
148(CONFIG_KEYPAD == SANSA_C200_PAD) 162(CONFIG_KEYPAD == SANSA_C200_PAD)
149 163
150#define STAR_QUIT BUTTON_POWER 164#define STAR_QUIT BUTTON_POWER
165#define STAR_LEFT BUTTON_LEFT
166#define STAR_RIGHT BUTTON_RIGHT
151#define STAR_UP BUTTON_UP 167#define STAR_UP BUTTON_UP
152#define STAR_DOWN BUTTON_DOWN 168#define STAR_DOWN BUTTON_DOWN
153#define STAR_TOGGLE_CONTROL BUTTON_SELECT 169#define STAR_TOGGLE_CONTROL BUTTON_SELECT
@@ -160,6 +176,8 @@ PLUGIN_HEADER
160#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 176#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
161 177
162#define STAR_QUIT BUTTON_POWER 178#define STAR_QUIT BUTTON_POWER
179#define STAR_LEFT BUTTON_LEFT
180#define STAR_RIGHT BUTTON_RIGHT
163#define STAR_UP BUTTON_SCROLL_UP 181#define STAR_UP BUTTON_SCROLL_UP
164#define STAR_DOWN BUTTON_SCROLL_DOWN 182#define STAR_DOWN BUTTON_SCROLL_DOWN
165#define STAR_TOGGLE_CONTROL BUTTON_REW 183#define STAR_TOGGLE_CONTROL BUTTON_REW
@@ -171,6 +189,8 @@ PLUGIN_HEADER
171#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) 189#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD)
172 190
173#define STAR_QUIT BUTTON_BACK 191#define STAR_QUIT BUTTON_BACK
192#define STAR_LEFT BUTTON_LEFT
193#define STAR_RIGHT BUTTON_RIGHT
174#define STAR_UP BUTTON_UP 194#define STAR_UP BUTTON_UP
175#define STAR_DOWN BUTTON_DOWN 195#define STAR_DOWN BUTTON_DOWN
176#define STAR_TOGGLE_CONTROL BUTTON_SELECT 196#define STAR_TOGGLE_CONTROL BUTTON_SELECT
@@ -182,6 +202,8 @@ PLUGIN_HEADER
182#elif (CONFIG_KEYPAD == MROBE100_PAD) 202#elif (CONFIG_KEYPAD == MROBE100_PAD)
183 203
184#define STAR_QUIT BUTTON_POWER 204#define STAR_QUIT BUTTON_POWER
205#define STAR_LEFT BUTTON_LEFT
206#define STAR_RIGHT BUTTON_RIGHT
185#define STAR_UP BUTTON_UP 207#define STAR_UP BUTTON_UP
186#define STAR_DOWN BUTTON_DOWN 208#define STAR_DOWN BUTTON_DOWN
187#define STAR_TOGGLE_CONTROL BUTTON_SELECT 209#define STAR_TOGGLE_CONTROL BUTTON_SELECT
@@ -190,6 +212,19 @@ PLUGIN_HEADER
190#define STAR_LEVEL_REPEAT BUTTON_DISPLAY 212#define STAR_LEVEL_REPEAT BUTTON_DISPLAY
191#define STAR_MENU_RUN BUTTON_SELECT 213#define STAR_MENU_RUN BUTTON_SELECT
192 214
215#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
216
217#define STAR_QUIT BUTTON_RC_REC
218#define STAR_LEFT BUTTON_RC_REW
219#define STAR_RIGHT BUTTON_RC_FF
220#define STAR_UP BUTTON_RC_VOL_UP
221#define STAR_DOWN BUTTON_RC_VOL_DOWN
222#define STAR_TOGGLE_CONTROL BUTTON_RC_MODE
223#define STAR_LEVEL_UP (BUTTON_RC_PLAY|BUTTON_RC_VOL_UP)
224#define STAR_LEVEL_DOWN (BUTTON_RC_PLAY|BUTTON_RC_VOL_DOWN)
225#define STAR_LEVEL_REPEAT (BUTTON_RC_PLAY|BUTTON_RC_MENU)
226#define STAR_MENU_RUN BUTTON_RC_FF
227
193#else 228#else
194#error No keymap defined! 229#error No keymap defined!
195#endif 230#endif
@@ -514,7 +549,7 @@ void star_display_text(char *str, bool waitkey)
514 switch (key) 549 switch (key)
515 { 550 {
516 case STAR_QUIT: 551 case STAR_QUIT:
517 case BUTTON_LEFT: 552 case STAR_LEFT:
518 case STAR_DOWN: 553 case STAR_DOWN:
519 go_on = true; 554 go_on = true;
520 break; 555 break;
@@ -769,11 +804,11 @@ static int star_run_game(int current_level)
769 case STAR_QUIT: 804 case STAR_QUIT:
770 return -1; 805 return -1;
771 806
772 case BUTTON_LEFT: 807 case STAR_LEFT:
773 move_x = -1; 808 move_x = -1;
774 break; 809 break;
775 810
776 case BUTTON_RIGHT: 811 case STAR_RIGHT:
777 move_x = 1; 812 move_x = 1;
778 break; 813 break;
779 814
diff --git a/apps/plugins/starfield.c b/apps/plugins/starfield.c
index de994ab13e..163d72ba39 100644
--- a/apps/plugins/starfield.c
+++ b/apps/plugins/starfield.c
@@ -79,6 +79,13 @@ static struct plugin_api* rb; /* global api struct pointer */
79#define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT 79#define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT
80#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT 80#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT
81#define STARFIELD_TOGGLE_COLOR BUTTON_SELECT 81#define STARFIELD_TOGGLE_COLOR BUTTON_SELECT
82#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
83#define STARFIELD_QUIT BUTTON_RC_REC
84#define STARFIELD_INCREASE_ZMOVE BUTTON_RC_VOL_UP
85#define STARFIELD_DECREASE_ZMOVE BUTTON_RC_VOL_DOWN
86#define STARFIELD_INCREASE_NB_STARS BUTTON_RC_FF
87#define STARFIELD_DECREASE_NB_STARS BUTTON_RC_REW
88#define STARFIELD_TOGGLE_COLOR BUTTON_RC_MODE
82 89
83#else 90#else
84#define STARFIELD_QUIT BUTTON_OFF 91#define STARFIELD_QUIT BUTTON_OFF
diff --git a/apps/plugins/stats.c b/apps/plugins/stats.c
index 12125a33e8..e72b4bc2f5 100644
--- a/apps/plugins/stats.c
+++ b/apps/plugins/stats.c
@@ -69,6 +69,10 @@ static bool abort;
69#elif CONFIG_KEYPAD == MROBE100_PAD 69#elif CONFIG_KEYPAD == MROBE100_PAD
70#define STATS_STOP BUTTON_POWER 70#define STATS_STOP BUTTON_POWER
71 71
72#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
73#define STATS_STOP BUTTON_REC
74#define STATS_STOP_REMOTE BUTTON_RC_REC
75
72#else 76#else
73#error No keymap defined! 77#error No keymap defined!
74#endif 78#endif
diff --git a/apps/plugins/stopwatch.c b/apps/plugins/stopwatch.c
index 53f79ee6f7..ac3c7b70fb 100644
--- a/apps/plugins/stopwatch.c
+++ b/apps/plugins/stopwatch.c
@@ -136,6 +136,14 @@ PLUGIN_HEADER
136#define STOPWATCH_LAP_TIMER BUTTON_MENU 136#define STOPWATCH_LAP_TIMER BUTTON_MENU
137#define STOPWATCH_SCROLL_UP BUTTON_UP 137#define STOPWATCH_SCROLL_UP BUTTON_UP
138#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN 138#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN
139#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
140#define STOPWATCH_QUIT BUTTON_RC_REC
141#define STOPWATCH_START_STOP BUTTON_RC_PLAY
142#define STOPWATCH_RESET_TIMER BUTTON_RC_REW
143#define STOPWATCH_LAP_TIMER BUTTON_RC_FF
144#define STOPWATCH_SCROLL_UP BUTTON_RC_VOL_UP
145#define STOPWATCH_SCROLL_DOWN BUTTON_RC_VOL_DOWN
146#define STOPWATCH_RC_QUIT BUTTON_REC
139#else 147#else
140#error No keymap defined! 148#error No keymap defined!
141#endif 149#endif
diff --git a/apps/plugins/test_codec.c b/apps/plugins/test_codec.c
index 9cbfa70614..28e3d18431 100644
--- a/apps/plugins/test_codec.c
+++ b/apps/plugins/test_codec.c
@@ -20,10 +20,12 @@
20 20
21PLUGIN_HEADER 21PLUGIN_HEADER
22 22
23/* All swcodec targets have BUTTON_SELECT apart from the H10 */ 23/* All swcodec targets have BUTTON_SELECT apart from the H10 and M3 */
24 24
25#if CONFIG_KEYPAD == IRIVER_H10_PAD 25#if CONFIG_KEYPAD == IRIVER_H10_PAD
26#define TESTCODEC_EXITBUTTON BUTTON_RIGHT 26#define TESTCODEC_EXITBUTTON BUTTON_RIGHT
27#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
28#define TESTCODEC_EXITBUTTON BUTTON_RC_PLAY
27#else 29#else
28#define TESTCODEC_EXITBUTTON BUTTON_SELECT 30#define TESTCODEC_EXITBUTTON BUTTON_SELECT
29#endif 31#endif
diff --git a/apps/plugins/test_fps.c b/apps/plugins/test_fps.c
index edb6a68123..e8ceaed7a1 100644
--- a/apps/plugins/test_fps.c
+++ b/apps/plugins/test_fps.c
@@ -27,6 +27,8 @@ PLUGIN_IRAM_DECLARE
27#if (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 27#if (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \
28 (CONFIG_KEYPAD == IPOD_1G2G_PAD) 28 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
29#define FPS_QUIT BUTTON_MENU 29#define FPS_QUIT BUTTON_MENU
30#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
31#define FPS_QUIT BUTTON_RC_REC
30#elif defined(BUTTON_OFF) 32#elif defined(BUTTON_OFF)
31#define FPS_QUIT BUTTON_OFF 33#define FPS_QUIT BUTTON_OFF
32#else 34#else
diff --git a/apps/plugins/test_scanrate.c b/apps/plugins/test_scanrate.c
index c61a9d70fc..e6ed1aa084 100644
--- a/apps/plugins/test_scanrate.c
+++ b/apps/plugins/test_scanrate.c
@@ -38,6 +38,13 @@ PLUGIN_HEADER
38#define SCANRATE_INC BUTTON_RIGHT 38#define SCANRATE_INC BUTTON_RIGHT
39#define SCANRATE_DEC BUTTON_LEFT 39#define SCANRATE_DEC BUTTON_LEFT
40 40
41#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
42#define SCANRATE_DONE BUTTON_RC_REC
43#define SCANRATE_FASTINC BUTTON_RC_VOL_UP
44#define SCANRATE_FASTDEC BUTTON_RC_VOL_DOWN
45#define SCANRATE_INC BUTTON_RC_FF
46#define SCANRATE_DEC BUTTON_RC_REW
47
41#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) \ 48#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) \
42 || (CONFIG_KEYPAD == IPOD_1G2G_PAD) 49 || (CONFIG_KEYPAD == IPOD_1G2G_PAD)
43#define SCANRATE_DONE BUTTON_MENU 50#define SCANRATE_DONE BUTTON_MENU
@@ -67,6 +74,9 @@ PLUGIN_HEADER
67#define DEFAULT_SCAN_RATE 800 74#define DEFAULT_SCAN_RATE 800
68#elif CONFIG_LCD == LCD_IPODMINI 75#elif CONFIG_LCD == LCD_IPODMINI
69#define DEFAULT_SCAN_RATE 880 76#define DEFAULT_SCAN_RATE 880
77#else
78#define DEFAULT_SCAN_RATE 700
79#warning Generic default scanrate
70#endif 80#endif
71 81
72#if defined(CPU_PP) && defined(HAVE_ADJUSTABLE_CPU_FREQ) 82#if defined(CPU_PP) && defined(HAVE_ADJUSTABLE_CPU_FREQ)
diff --git a/apps/plugins/viewer.c b/apps/plugins/viewer.c
index ea33314c99..a7be5db33c 100644
--- a/apps/plugins/viewer.c
+++ b/apps/plugins/viewer.c
@@ -232,6 +232,18 @@ PLUGIN_HEADER
232#define VIEWER_MENU BUTTON_MENU 232#define VIEWER_MENU BUTTON_MENU
233#define VIEWER_AUTOSCROLL BUTTON_DISPLAY 233#define VIEWER_AUTOSCROLL BUTTON_DISPLAY
234 234
235/* iAUdio M3 keys */
236#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
237#define VIEWER_QUIT BUTTON_RC_REC
238#define VIEWER_PAGE_UP BUTTON_RC_VOL_UP
239#define VIEWER_PAGE_DOWN BUTTON_RC_VOL_DOWN
240#define VIEWER_SCREEN_LEFT BUTTON_RC_REW
241#define VIEWER_SCREEN_RIGHT BUTTON_RC_FF
242#define VIEWER_MENU BUTTON_RC_MENU
243#define VIEWER_AUTOSCROLL BUTTON_RC_MODE
244
245#define VIEWER_RC_QUIT BUTTON_REC
246
235#else 247#else
236#error No keymap defined! 248#error No keymap defined!
237#endif 249#endif
diff --git a/apps/plugins/vu_meter.c b/apps/plugins/vu_meter.c
index 4a02a58850..9f0957895a 100644
--- a/apps/plugins/vu_meter.c
+++ b/apps/plugins/vu_meter.c
@@ -139,6 +139,15 @@ PLUGIN_HEADER
139#define VUMETER_UP BUTTON_UP 139#define VUMETER_UP BUTTON_UP
140#define VUMETER_DOWN BUTTON_DOWN 140#define VUMETER_DOWN BUTTON_DOWN
141 141
142#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
143#define VUMETER_QUIT BUTTON_RC_REC
144#define VUMETER_HELP BUTTON_RC_MODE
145#define VUMETER_MENU BUTTON_RC_MENU
146#define VUMETER_MENU_EXIT BUTTON_RC_MENU
147#define VUMETER_MENU_EXIT2 BUTTON_RC_REC
148#define VUMETER_UP BUTTON_RC_VOL_UP
149#define VUMETER_DOWN BUTTON_RC_VOL_DOWN
150
142#else 151#else
143#error No keymap defined! 152#error No keymap defined!
144#endif 153#endif
diff --git a/apps/plugins/wormlet.c b/apps/plugins/wormlet.c
index 65e9d85ff4..0da929d0a3 100644
--- a/apps/plugins/wormlet.c
+++ b/apps/plugins/wormlet.c
@@ -202,6 +202,19 @@ PLUGIN_HEADER
202#define PLAYERS_TEXT "Up/Down" 202#define PLAYERS_TEXT "Up/Down"
203#define WORMS_TEXT "Left/Right" 203#define WORMS_TEXT "Left/Right"
204 204
205#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
206
207#define BTN_DIR_UP BUTTON_RC_VOL_UP
208#define BTN_DIR_DOWN BUTTON_RC_VOL_DOWN
209#define BTN_DIR_LEFT BUTTON_RC_REW
210#define BTN_DIR_RIGHT BUTTON_RC_FF
211#define BTN_STARTPAUSE BUTTON_RC_PLAY
212#define BTN_QUIT BUTTON_RC_REC
213#define BTN_STOPRESET BUTTON_RC_MODE
214
215#define PLAYERS_TEXT "VOL UP/DN"
216#define WORMS_TEXT "REW/FF"
217
205#else 218#else
206#error No keymap defined! 219#error No keymap defined!
207#endif 220#endif
@@ -216,6 +229,11 @@ PLUGIN_HEADER
216#define ARGH_SIZE 4 229#define ARGH_SIZE 4
217#define SPEED 14 230#define SPEED 14
218#define MAX_WORM_SEGMENTS 128 231#define MAX_WORM_SEGMENTS 128
232#elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 96)
233#define FOOD_SIZE 3
234#define ARGH_SIZE 4
235#define SPEED 12
236#define MAX_WORM_SEGMENTS 128
219#elif (LCD_WIDTH == 138) && (LCD_HEIGHT == 110) 237#elif (LCD_WIDTH == 138) && (LCD_HEIGHT == 110)
220#define FOOD_SIZE 4 238#define FOOD_SIZE 4
221#define ARGH_SIZE 5 239#define ARGH_SIZE 5
diff --git a/apps/plugins/xobox.c b/apps/plugins/xobox.c
index dcffbdcef5..d0d8049900 100644
--- a/apps/plugins/xobox.c
+++ b/apps/plugins/xobox.c
@@ -130,6 +130,15 @@ PLUGIN_HEADER
130#define DOWN BUTTON_DOWN 130#define DOWN BUTTON_DOWN
131#define PAUSE BUTTON_DISPLAY 131#define PAUSE BUTTON_DISPLAY
132 132
133#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
134
135#define QUIT BUTTON_RC_REC
136#define LEFT BUTTON_RC_REW
137#define RIGHT BUTTON_RC_FF
138#define UP BUTTON_RC_VOL_UP
139#define DOWN BUTTON_RC_VOL_DOWN
140#define PAUSE BUTTON_RC_PLAY
141
133#else 142#else
134#error No keymap defined! 143#error No keymap defined!
135#endif 144#endif