summaryrefslogtreecommitdiff
path: root/apps/plugins
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2008-03-22 10:24:28 +0000
committerJens Arnold <amiconn@rockbox.org>2008-03-22 10:24:28 +0000
commit29361abf744ed116cec04ca03e754ddd2794b76c (patch)
treed336dd19570faed037aef9064ce3c490c50ed6df /apps/plugins
parentbca8edd856cee3a3b469ef9fe2770a191b590fde (diff)
downloadrockbox-29361abf744ed116cec04ca03e754ddd2794b76c.tar.gz
rockbox-29361abf744ed116cec04ca03e754ddd2794b76c.zip
Adapt most single-file plugins to the M3 keypad and screen. It's still preliminary, as many plugins now can't be left without the remote. The plugins need to be converted to use the action API (but not pluginlib actions). Plugins are not enabled yet. * Simplify the bitmap handling in the source of some plugins.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16737 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins')
-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