summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Purchase <shotofadds@rockbox.org>2008-04-27 15:30:19 +0000
committerRob Purchase <shotofadds@rockbox.org>2008-04-27 15:30:19 +0000
commit297e0504dad929f8990a654c4bc7a3e891ff41cb (patch)
tree7def4b8fba3c184f82415e840e9c32780848970b
parent6b9b508aab29a406015e93c4808d87591173a083 (diff)
downloadrockbox-297e0504dad929f8990a654c4bc7a3e891ff41cb.tar.gz
rockbox-297e0504dad929f8990a654c4bc7a3e891ff41cb.zip
FS#8708: D2/m:robe500 touchscreen keymaps by Andreas Mueller.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17261 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/plugins/battery_bench.c16
-rw-r--r--apps/plugins/blackjack.c60
-rw-r--r--apps/plugins/bounce.c25
-rw-r--r--apps/plugins/brickmania.c26
-rw-r--r--apps/plugins/calculator.c35
-rw-r--r--apps/plugins/chessbox/chessbox_pgn.h56
-rw-r--r--apps/plugins/chessclock.c33
-rw-r--r--apps/plugins/chip8.c35
-rw-r--r--apps/plugins/chopper.c18
-rw-r--r--apps/plugins/cube.c47
-rw-r--r--apps/plugins/doom/i_video.c38
-rw-r--r--apps/plugins/fireworks.c12
-rw-r--r--apps/plugins/flashlight.c17
-rw-r--r--apps/plugins/flipit.c48
-rw-r--r--apps/plugins/invadrox.c17
-rw-r--r--apps/plugins/jewels.c43
-rw-r--r--apps/plugins/jpeg.c39
-rw-r--r--apps/plugins/logo.c22
-rw-r--r--apps/plugins/mandelbrot.c47
-rw-r--r--apps/plugins/matrix.c18
-rw-r--r--apps/plugins/midi/midiplay.c26
-rw-r--r--apps/plugins/minesweeper.c34
-rw-r--r--apps/plugins/mosaique.c15
-rw-r--r--apps/plugins/mp3_encoder.c18
-rw-r--r--apps/plugins/mpegplayer/mpeg_settings.c34
-rw-r--r--apps/plugins/mpegplayer/mpegplayer.c31
-rw-r--r--apps/plugins/oscilloscope.c38
-rw-r--r--apps/plugins/pacbox/pacbox.h37
-rw-r--r--apps/plugins/pegbox.c57
-rw-r--r--apps/plugins/plasma.c34
-rw-r--r--apps/plugins/pong.c25
-rw-r--r--apps/plugins/reversi/reversi-gui.h28
-rw-r--r--apps/plugins/rockblox.c33
-rw-r--r--apps/plugins/rockboy/rockboy.c23
-rw-r--r--apps/plugins/rockpaint.c37
-rw-r--r--apps/plugins/sliding_puzzle.c44
-rw-r--r--apps/plugins/snake.c26
-rw-r--r--apps/plugins/snake2.c50
-rw-r--r--apps/plugins/sokoban.c61
-rw-r--r--apps/plugins/solitaire.c57
-rw-r--r--apps/plugins/spacerocks.c46
-rw-r--r--apps/plugins/star.c55
-rw-r--r--apps/plugins/starfield.c42
-rw-r--r--apps/plugins/stopwatch.c26
-rw-r--r--apps/plugins/sudoku/sudoku.h33
-rw-r--r--apps/plugins/superdom.c28
-rw-r--r--apps/plugins/viewer.c30
-rw-r--r--apps/plugins/vu_meter.c35
-rw-r--r--apps/plugins/wormlet.c41
-rw-r--r--apps/plugins/xobox.c26
-rw-r--r--apps/plugins/zxbox/keymaps.h28
-rw-r--r--apps/plugins/zxbox/zxbox_keyb.c27
-rw-r--r--firmware/target/arm/tcc780x/cowond2/button-target.h3
53 files changed, 1417 insertions, 363 deletions
diff --git a/apps/plugins/battery_bench.c b/apps/plugins/battery_bench.c
index ad45d6562d..e2f76062c6 100644
--- a/apps/plugins/battery_bench.c
+++ b/apps/plugins/battery_bench.c
@@ -146,15 +146,27 @@ PLUGIN_HEADER
146 146
147#elif CONFIG_KEYPAD == COWOND2_PAD 147#elif CONFIG_KEYPAD == COWOND2_PAD
148 148
149#define BATTERY_ON BUTTON_MENU
150#define BATTERY_OFF BUTTON_POWER 149#define BATTERY_OFF BUTTON_POWER
151#define BATTERY_ON_TXT "MENU - start"
152#define BATTERY_OFF_TXT "POWER - quit" 150#define BATTERY_OFF_TXT "POWER - quit"
153 151
154#else 152#else
155#error No keymap defined! 153#error No keymap defined!
156#endif 154#endif
157 155
156#ifdef HAVE_TOUCHPAD
157#ifndef BATTERY_ON
158#define BATTERY_ON BUTTON_CENTER
159#endif
160#ifndef BATTERY_OFF
161#define BATTERY_OFF BUTTON_TOPLEFT
162#endif
163#ifndef BATTERY_ON_TXT
164#define BATTERY_ON_TXT "CENTRE - start"
165#endif
166#ifndef BATTERY_OFF_TXT
167#define BATTERY_OFF_TXT "TOPLEFT - quit"
168#endif
169#endif
158 170
159/****************************** Plugin Entry Point ****************************/ 171/****************************** Plugin Entry Point ****************************/
160static struct plugin_api* rb; 172static struct plugin_api* rb;
diff --git a/apps/plugins/blackjack.c b/apps/plugins/blackjack.c
index c9814abf89..c3d4926683 100644
--- a/apps/plugins/blackjack.c
+++ b/apps/plugins/blackjack.c
@@ -251,24 +251,48 @@ PLUGIN_HEADER
251#define BJACK_LEFT BUTTON_RC_REW 251#define BJACK_LEFT BUTTON_RC_REW
252 252
253#elif CONFIG_KEYPAD == COWOND2_PAD 253#elif CONFIG_KEYPAD == COWOND2_PAD
254#define BJACK_START BUTTON_SELECT
255#define BJACK_QUIT BUTTON_POWER 254#define BJACK_QUIT BUTTON_POWER
256#define BJACK_MAX BUTTON_PLUS 255#define BJACK_DOUBLEDOWN BUTTON_MINUS
257#define BJACK_MIN BUTTON_MINUS 256#define BJACK_SCORES BUTTON_MENU
258#define BJACK_HIT BUTTON_SELECT
259#define BJACK_STAY BUTTON_MENU
260#define BJACK_DOUBLEDOWN (BUTTON_DOWN|BUTTON_MENU)
261#define BJACK_SCORES (BUTTON_SELECT|BUTTON_MENU)
262#define BJACK_RESUME (BUTTON_SELECT|BUTTON_PLUS)
263#define BJACK_UP BUTTON_UP
264#define BJACK_DOWN BUTTON_DOWN
265#define BJACK_RIGHT BUTTON_RIGHT
266#define BJACK_LEFT BUTTON_LEFT
267 257
268#else 258#else
269#error No keymap defined! 259#error No keymap defined!
270#endif 260#endif
271 261
262#ifdef HAVE_TOUCHPAD
263#ifndef BJACK_START
264#define BJACK_START BUTTON_CENTER
265#endif
266#ifndef BJACK_HIT
267#define BJACK_HIT BUTTON_CENTER
268#endif
269#ifndef BJACK_MAX
270#define BJACK_MAX BUTTON_TOPRIGHT
271#endif
272#ifndef BJACK_MIN
273#define BJACK_MIN BUTTON_TOPLEFT
274#endif
275#ifndef BJACK_RESUME
276#define BJACK_RESUME BUTTON_BOTTOMRIGHT
277#endif
278#ifndef BJACK_STAY
279#define BJACK_STAY BUTTON_BOTTOMLEFT
280#endif
281#ifndef BJACK_UP
282#define BJACK_UP BUTTON_TOPMIDDLE
283#endif
284#ifndef BJACK_DOWN
285#define BJACK_DOWN BUTTON_BOTTOMMIDDLE
286#endif
287#ifndef BJACK_RIGHT
288#define BJACK_RIGHT BUTTON_MIDRIGHT
289#endif
290#ifndef BJACK_LEFT
291#define BJACK_LEFT BUTTON_MIDLEFT
292#endif
293
294#endif
295
272#ifdef HAVE_LCD_COLOR 296#ifdef HAVE_LCD_COLOR
273#define BG_COLOR LCD_RGBPACK(0,157,0) 297#define BG_COLOR LCD_RGBPACK(0,157,0)
274#define FG_COLOR LCD_WHITE 298#define FG_COLOR LCD_WHITE
@@ -1194,6 +1218,18 @@ static unsigned int blackjack_menu(struct game_context* bj) {
1194 rb->lcd_puts(0, 8, "MENU to view scores"); 1218 rb->lcd_puts(0, 8, "MENU to view scores");
1195 rb->snprintf(str, 21, "High Score: $%d", bj->highscores[0]); 1219 rb->snprintf(str, 21, "High Score: $%d", bj->highscores[0]);
1196 rb->lcd_puts(0, 10, str); 1220 rb->lcd_puts(0, 10, str);
1221#elif CONFIG_KEYPAD == COWOND2_PAD
1222 rb->lcd_puts(0, 6, "POWER to exit");
1223 rb->lcd_puts(0, 7, "MINUS to double down");
1224 rb->lcd_puts(0, 8, "MENU to view scores");
1225 rb->snprintf(str, 21, "High Score: $%d", bj->highscores[0]);
1226 rb->lcd_puts(0, 10, str);
1227#endif
1228
1229#ifdef HAVE_TOUCHPAD
1230 rb->lcd_puts(0, 2, "LCD CENTRE to start & to hit");
1231 rb->lcd_puts(0, 3, "LCD BOTTOMLEFT to stay");
1232 rb->lcd_puts(0, 4, "LCD BOTTOMRIGHT to save/resume");
1197#endif 1233#endif
1198 } else { 1234 } else {
1199 rb->snprintf(str, 12, "%s", "High Scores"); 1235 rb->snprintf(str, 12, "%s", "High Scores");
diff --git a/apps/plugins/bounce.c b/apps/plugins/bounce.c
index 2400325032..c8a40dec4a 100644
--- a/apps/plugins/bounce.c
+++ b/apps/plugins/bounce.c
@@ -139,10 +139,6 @@ PLUGIN_HEADER
139#define BOUNCE_MODE BUTTON_RC_MODE 139#define BOUNCE_MODE BUTTON_RC_MODE
140 140
141#elif (CONFIG_KEYPAD == COWOND2_PAD) 141#elif (CONFIG_KEYPAD == COWOND2_PAD)
142#define BOUNCE_LEFT BUTTON_LEFT
143#define BOUNCE_RIGHT BUTTON_RIGHT
144#define BOUNCE_UP BUTTON_UP
145#define BOUNCE_DOWN BUTTON_DOWN
146#define BOUNCE_QUIT BUTTON_POWER 142#define BOUNCE_QUIT BUTTON_POWER
147#define BOUNCE_MODE BUTTON_MENU 143#define BOUNCE_MODE BUTTON_MENU
148 144
@@ -150,6 +146,27 @@ PLUGIN_HEADER
150#error No keymap defined! 146#error No keymap defined!
151#endif 147#endif
152 148
149#ifdef HAVE_TOUCHPAD
150#ifndef BOUNCE_LEFT
151#define BOUNCE_LEFT BUTTON_MIDLEFT
152#endif
153#ifndef BOUNCE_RIGHT
154#define BOUNCE_RIGHT BUTTON_MIDRIGHT
155#endif
156#ifndef BOUNCE_UP
157#define BOUNCE_UP BUTTON_TOPMIDDLE
158#endif
159#ifndef BOUNCE_DOWN
160#define BOUNCE_DOWN BUTTON_BOTTOMMIDDLE
161#endif
162#ifndef BOUNCE_QUIT
163#define BOUNCE_QUIT BUTTON_TOPLEFT
164#endif
165#ifndef BOUNCE_MODE
166#define BOUNCE_MODE BUTTON_CENTER
167#endif
168#endif
169
153static struct plugin_api* rb; 170static struct plugin_api* rb;
154 171
155#define LETTER_WIDTH 11 172#define LETTER_WIDTH 11
diff --git a/apps/plugins/brickmania.c b/apps/plugins/brickmania.c
index bae8dededf..f0059ba633 100644
--- a/apps/plugins/brickmania.c
+++ b/apps/plugins/brickmania.c
@@ -165,18 +165,30 @@ PLUGIN_HEADER
165#define RC_QUIT BUTTON_REC 165#define RC_QUIT BUTTON_REC
166 166
167#elif CONFIG_KEYPAD == COWOND2_PAD 167#elif CONFIG_KEYPAD == COWOND2_PAD
168 168#define QUIT BUTTON_POWER
169#define QUIT BUTTON_POWER
170#define LEFT BUTTON_LEFT
171#define RIGHT BUTTON_RIGHT
172#define SELECT BUTTON_SELECT
173#define UP BUTTON_UP
174#define DOWN BUTTON_DOWN
175 169
176#else 170#else
177#error No keymap defined! 171#error No keymap defined!
178#endif 172#endif
179 173
174#ifdef HAVE_TOUCHPAD
175#ifndef LEFT
176#define LEFT BUTTON_MIDLEFT
177#endif
178#ifndef RIGHT
179#define RIGHT BUTTON_MIDRIGHT
180#endif
181#ifndef SELECT
182#define SELECT BUTTON_CENTER
183#endif
184#ifndef UP
185#define UP BUTTON_TOPMIDDLE
186#endif
187#ifndef DOWN
188#define DOWN BUTTON_BOTTOMMIDDLE
189#endif
190#endif
191
180#ifndef SCROLL_FWD /* targets without scroll wheel*/ 192#ifndef SCROLL_FWD /* targets without scroll wheel*/
181#define SCROLL_FWD(x) (0) 193#define SCROLL_FWD(x) (0)
182#define SCROLL_BACK(x) (0) 194#define SCROLL_BACK(x) (0)
diff --git a/apps/plugins/calculator.c b/apps/plugins/calculator.c
index 979705fbe1..38a97f0b46 100644
--- a/apps/plugins/calculator.c
+++ b/apps/plugins/calculator.c
@@ -251,20 +251,37 @@ PLUGIN_HEADER
251 251
252#elif (CONFIG_KEYPAD == COWOND2_PAD) 252#elif (CONFIG_KEYPAD == COWOND2_PAD)
253 253
254#define CALCULATOR_LEFT BUTTON_LEFT 254#define CALCULATOR_QUIT BUTTON_POWER
255#define CALCULATOR_RIGHT BUTTON_RIGHT 255#define CALCULATOR_CLEAR BUTTON_MENU
256#define CALCULATOR_UP BUTTON_UP
257#define CALCULATOR_DOWN BUTTON_DOWN
258#define CALCULATOR_QUIT BUTTON_POWER
259#define CALCULATOR_INPUT_CALC_PRE BUTTON_MINUS
260#define CALCULATOR_INPUT BUTTON_PLUS
261#define CALCULATOR_CALC BUTTON_SELECT
262#define CALCULATOR_CLEAR BUTTON_MENU
263 256
264#else 257#else
265#error No keymap defined! 258#error No keymap defined!
266#endif 259#endif
267 260
261#ifdef HAVE_TOUCHPAD
262#ifndef CALCULATOR_LEFT
263#define CALCULATOR_LEFT BUTTON_MIDLEFT
264#endif
265#ifndef CALCULATOR_RIGHT
266#define CALCULATOR_RIGHT BUTTON_MIDRIGHT
267#endif
268#ifndef CALCULATOR_UP
269#define CALCULATOR_UP BUTTON_TOPMIDDLE
270#endif
271#ifndef CALCULATOR_DOWN
272#define CALCULATOR_DOWN BUTTON_BOTTOMMIDDLE
273#endif
274#ifndef CALCULATOR_CALC
275#define CALCULATOR_CALC BUTTON_BOTTOMRIGHT
276#endif
277#ifndef CALCULATOR_INPUT
278#define CALCULATOR_INPUT BUTTON_CENTER
279#endif
280#ifndef CALCULATOR_CLEAR
281#define CALCULATOR_CLEAR BUTTON_TOPRIGHT
282#endif
283#endif
284
268static struct plugin_api* rb; 285static struct plugin_api* rb;
269 286
270enum { 287enum {
diff --git a/apps/plugins/chessbox/chessbox_pgn.h b/apps/plugins/chessbox/chessbox_pgn.h
index a6b647b034..7a7baf6ad8 100644
--- a/apps/plugins/chessbox/chessbox_pgn.h
+++ b/apps/plugins/chessbox/chessbox_pgn.h
@@ -248,25 +248,57 @@
248#define CB_RC_QUIT BUTTON_REC 248#define CB_RC_QUIT BUTTON_REC
249 249
250#elif CONFIG_KEYPAD == COWOND2_PAD 250#elif CONFIG_KEYPAD == COWOND2_PAD
251#define CB_SELECT BUTTON_SELECT
252#define CB_UP BUTTON_UP
253#define CB_DOWN BUTTON_DOWN
254#define CB_LEFT BUTTON_LEFT
255#define CB_RIGHT BUTTON_RIGHT
256#define CB_PLAY BUTTON_MENU
257#define CB_LEVEL BUTTON_PLUS 251#define CB_LEVEL BUTTON_PLUS
258#define CB_RESTART (BUTTON_SELECT | BUTTON_MENU) 252#define CB_RESTART BUTTON_MINUS
259#define CB_MENU BUTTON_POWER 253#define CB_MENU (BUTTON_MENU|BUTTON_REL)
260 254
261#define CB_SCROLL_UP (BUTTON_UP|BUTTON_MENU)
262#define CB_SCROLL_DOWN (BUTTON_DOWN|BUTTON_MENU)
263#define CB_SCROLL_LEFT (BUTTON_LEFT|BUTTON_MENU)
264#define CB_SCROLL_RIGHT (BUTTON_RIGHT|BUTTON_MENU)
265 255
266#else 256#else
267#error No keymap defined! 257#error No keymap defined!
268#endif 258#endif
269 259
260#ifdef HAVE_TOUCHPAD
261#ifndef CB_LEVEL
262#define CB_LEVEL BUTTON_TOPLEFT
263#endif
264#ifndef CB_RESTART
265#define CB_RESTART BUTTON_TOPRIGHT
266#endif
267#ifndef CB_MENU
268#define CB_MENU (BUTTON_BOTTOMLEFT|BUTTON_REL)
269#endif
270#ifndef CB_PLAY
271#define CB_PLAY (BUTTON_CENTER|BUTTON_REPEAT)
272#endif
273#ifndef CB_SELECT
274#define CB_SELECT BUTTON_CENTER
275#endif
276#ifndef CB_UP
277#define CB_UP BUTTON_TOPMIDDLE
278#endif
279#ifndef CB_DOWN
280#define CB_DOWN BUTTON_BOTTOMMIDDLE
281#endif
282#ifndef CB_LEFT
283#define CB_LEFT BUTTON_MIDLEFT
284#endif
285#ifndef CB_RIGHT
286#define CB_RIGHT BUTTON_MIDRIGHT
287#endif
288#ifndef CB_SCROLL_UP
289#define CB_SCROLL_UP (BUTTON_TOPMIDDLE|BUTTON_REPEAT)
290#endif
291#ifndef CB_SCROLL_DOWN
292#define CB_SCROLL_DOWN (BUTTON_BOTTOMMIDDLE|BUTTON_REPEAT)
293#endif
294#ifndef CB_SCROLL_LEFT
295#define CB_SCROLL_LEFT (BUTTON_MIDLEFT|BUTTON_REPEAT)
296#endif
297#ifndef CB_SCROLL_RIGHT
298#define CB_SCROLL_RIGHT (BUTTON_MIDRIGHT|BUTTON_REPEAT)
299#endif
300#endif
301
270/* structure to represent the plies */ 302/* structure to represent the plies */
271struct pgn_ply_node { 303struct pgn_ply_node {
272 unsigned short player; 304 unsigned short player;
diff --git a/apps/plugins/chessclock.c b/apps/plugins/chessclock.c
index 34eeb6b0db..d3e39e04ad 100644
--- a/apps/plugins/chessclock.c
+++ b/apps/plugins/chessclock.c
@@ -181,19 +181,37 @@ PLUGIN_HEADER
181#define CHC_SETTINGS_CANCEL BUTTON_RC_REC 181#define CHC_SETTINGS_CANCEL BUTTON_RC_REC
182 182
183#elif CONFIG_KEYPAD == COWOND2_PAD 183#elif CONFIG_KEYPAD == COWOND2_PAD
184#define CHC_QUIT BUTTON_POWER 184#define CHC_QUIT BUTTON_POWER
185#define CHC_STARTSTOP BUTTON_SELECT 185#define CHC_RESET (BUTTON_CENTER|BUTTON_MENU)
186#define CHC_RESET (BUTTON_SELECT|BUTTON_MENU) 186#define CHC_MENU BUTTON_MENU
187#define CHC_MENU BUTTON_MENU 187#define CHC_SETTINGS_INC BUTTON_PLUS
188#define CHC_SETTINGS_INC BUTTON_UP 188#define CHC_SETTINGS_DEC BUTTON_MINUS
189#define CHC_SETTINGS_DEC BUTTON_DOWN
190#define CHC_SETTINGS_OK BUTTON_SELECT
191#define CHC_SETTINGS_CANCEL BUTTON_POWER 189#define CHC_SETTINGS_CANCEL BUTTON_POWER
192 190
193#else 191#else
194#error No keymap defined! 192#error No keymap defined!
195#endif 193#endif
196 194
195#ifdef HAVE_TOUCHPAD
196#ifndef CHC_SETTINGS_OK
197#define CHC_SETTINGS_OK BUTTON_CENTER
198#endif
199#ifndef CHC_STARTSTOP
200#define CHC_STARTSTOP BUTTON_CENTER
201#endif
202#ifndef CHC_SETTINGS_INC
203#define CHC_SETTINGS_INC BUTTON_TOPMIDDLE
204#endif
205#ifndef CHC_SETTINGS_DEC
206#define CHC_SETTINGS_DEC BUTTON_BOTTOMMIDDLE
207#endif
208#ifndef CHC_RESET
209#define CHC_RESET BUTTON_TOPLEFT
210#endif
211#ifndef CHC_MENU
212#define CHC_MENU BUTTON_TOPRIGHT
213#endif
214#endif
197 215
198 216
199/* leave first line blank on bitmap display, for pause icon */ 217/* leave first line blank on bitmap display, for pause icon */
@@ -650,3 +668,4 @@ static int simple_menu(int nr, unsigned char **strarr)
650 } 668 }
651} 669}
652 670
671
diff --git a/apps/plugins/chip8.c b/apps/plugins/chip8.c
index 0f7e24b551..e00e4213e8 100644
--- a/apps/plugins/chip8.c
+++ b/apps/plugins/chip8.c
@@ -1079,16 +1079,41 @@ STATIC void chip8 (void)
1079 1079
1080#elif (CONFIG_KEYPAD == COWOND2_PAD) 1080#elif (CONFIG_KEYPAD == COWOND2_PAD)
1081#define CHIP8_OFF BUTTON_POWER 1081#define CHIP8_OFF BUTTON_POWER
1082#define CHIP8_KEY2 BUTTON_DOWN
1083#define CHIP8_KEY4 BUTTON_LEFT
1084#define CHIP8_KEY5 BUTTON_SELECT
1085#define CHIP8_KEY6 BUTTON_RIGHT
1086#define CHIP8_KEY8 BUTTON_UP
1087 1082
1088#else 1083#else
1089#error No keymap defined! 1084#error No keymap defined!
1090#endif 1085#endif
1091 1086
1087#ifdef HAVE_TOUCHPAD
1088#ifndef CHIP8_OFF
1089#define CHIP8_OFF BUTTON_TOPLEFT
1090#endif
1091#ifndef CHIP8_KEY1
1092#define CHIP8_KEY1 BUTTON_TOPRIGHT
1093#endif
1094#ifndef CHIP8_KEY2
1095#define CHIP8_KEY2 BUTTON_TOPMIDDLE
1096#endif
1097#ifndef CHIP8_KEY3
1098#define CHIP8_KEY3 BUTTON_BOTTOMLEFT
1099#endif
1100#ifndef CHIP8_KEY4
1101#define CHIP8_KEY4 BUTTON_MIDLEFT
1102#endif
1103#ifndef CHIP8_KEY5
1104#define CHIP8_KEY5 BUTTON_CENTER
1105#endif
1106#ifndef CHIP8_KEY6
1107#define CHIP8_KEY6 BUTTON_MIDRIGHT
1108#endif
1109#ifndef CHIP8_KEY7
1110#define CHIP8_KEY7 BUTTON_BOTTOMRIGHT
1111#endif
1112#ifndef CHIP8_KEY8
1113#define CHIP8_KEY8 BUTTON_BOTTOMMIDDLE
1114#endif
1115#endif
1116
1092static byte chip8_virtual_keys[16]; 1117static byte chip8_virtual_keys[16];
1093static byte chip8_keymap[16]; 1118static byte chip8_keymap[16];
1094 1119
diff --git a/apps/plugins/chopper.c b/apps/plugins/chopper.c
index 71f62f44cc..2ab7c09d1c 100644
--- a/apps/plugins/chopper.c
+++ b/apps/plugins/chopper.c
@@ -105,14 +105,26 @@ Still To do:
105 105
106#elif CONFIG_KEYPAD == COWOND2_PAD 106#elif CONFIG_KEYPAD == COWOND2_PAD
107#define QUIT BUTTON_POWER 107#define QUIT BUTTON_POWER
108#define ACTION BUTTON_UP
109#define ACTION2 BUTTON_MENU
110#define ACTIONTEXT "UP"
111 108
112#else 109#else
113#error No keymap defined! 110#error No keymap defined!
114#endif 111#endif
115 112
113#ifdef HAVE_TOUCHPAD
114#ifndef QUIT
115#define QUIT BUTTON_TOPLEFT
116#endif
117#ifndef ACTION
118#define ACTION BUTTON_BOTTOMLEFT
119#endif
120#ifndef ACTION2
121#define ACTION2 BUTTON_BOTTOMRIGHT
122#endif
123#ifndef ACTIONTEXT
124#define ACTIONTEXT "BOTTOMRIGHT"
125#endif
126#endif
127
116static struct plugin_api* rb; 128static struct plugin_api* rb;
117 129
118#define NUMBER_OF_BLOCKS 8 130#define NUMBER_OF_BLOCKS 8
diff --git a/apps/plugins/cube.c b/apps/plugins/cube.c
index 7dca203f7c..aed27329ec 100644
--- a/apps/plugins/cube.c
+++ b/apps/plugins/cube.c
@@ -243,21 +243,47 @@ PLUGIN_HEADER
243 243
244#elif CONFIG_KEYPAD == COWOND2_PAD 244#elif CONFIG_KEYPAD == COWOND2_PAD
245#define CUBE_QUIT BUTTON_POWER 245#define CUBE_QUIT BUTTON_POWER
246#define CUBE_X_INC BUTTON_RIGHT
247#define CUBE_X_DEC BUTTON_LEFT
248#define CUBE_Y_INC BUTTON_UP
249#define CUBE_Y_DEC BUTTON_DOWN
250#define CUBE_Z_INC BUTTON_PLUS
251#define CUBE_Z_DEC BUTTON_MINUS
252#define CUBE_MODE BUTTON_MENU
253#define CUBE_PAUSE_PRE BUTTON_SELECT
254#define CUBE_PAUSE (BUTTON_MINUS | BUTTON_REL)
255#define CUBE_HIGHSPEED (BUTTON_PLUS | BUTTON_REL)
256 246
257#else 247#else
258#error No keymap defined! 248#error No keymap defined!
259#endif 249#endif
260 250
251#ifdef HAVE_TOUCHPAD
252// not enough touchfields, so CUBE_QUIT have to be
253// mapped to a real button
254//ifndef CUBE_QUIT
255//#define CUBE_QUIT BUTTON_TOPLEFT
256//#endif
257#ifndef CUBE_X_INC
258#define CUBE_X_INC BUTTON_MIDRIGHT
259#endif
260#ifndef CUBE_X_DEC
261#define CUBE_X_DEC BUTTON_MIDLEFT
262#endif
263#ifndef CUBE_Y_INC
264#define CUBE_Y_INC BUTTON_TOPMIDDLE
265#endif
266#ifndef CUBE_Y_DEC
267#define CUBE_Y_DEC BUTTON_BOTTOMMIDDLE
268#endif
269#ifndef CUBE_Z_INC
270#define CUBE_Z_INC BUTTON_BOTTOMRIGHT
271#endif
272#ifndef CUBE_Z_DEC
273#define CUBE_Z_DEC BUTTON_BOTTOMLEFT
274#endif
275#ifndef CUBE_MODE
276#define CUBE_MODE BUTTON_TOPRIGHT
277#endif
278#ifndef CUBE_PAUSE
279#define CUBE_PAUSE (BUTTON_CENTER | BUTTON_REL)
280#endif
281#ifndef CUBE_HIGHSPEED
282#define CUBE_HIGHSPEED BUTTON_TOPLEFT
283#endif
284#endif
285
286
261#ifdef HAVE_LCD_BITMAP 287#ifdef HAVE_LCD_BITMAP
262 288
263#define DIST (10 * MIN(LCD_HEIGHT, LCD_WIDTH) / 16) 289#define DIST (10 * MIN(LCD_HEIGHT, LCD_WIDTH) / 16)
@@ -854,3 +880,4 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
854 return PLUGIN_OK; 880 return PLUGIN_OK;
855} 881}
856 882
883
diff --git a/apps/plugins/doom/i_video.c b/apps/plugins/doom/i_video.c
index 3e781270ff..117c2b921b 100644
--- a/apps/plugins/doom/i_video.c
+++ b/apps/plugins/doom/i_video.c
@@ -247,14 +247,6 @@ void I_ShutdownGraphics(void)
247#define DOOMBUTTON_WEAPON BUTTON_RC_MENU 247#define DOOMBUTTON_WEAPON BUTTON_RC_MENU
248#elif CONFIG_KEYPAD == COWOND2_PAD 248#elif CONFIG_KEYPAD == COWOND2_PAD
249#define DOOMBUTTON_ESC BUTTON_POWER 249#define DOOMBUTTON_ESC BUTTON_POWER
250#define DOOMBUTTON_UP BUTTON_UP
251#define DOOMBUTTON_DOWN BUTTON_DOWN
252#define DOOMBUTTON_LEFT BUTTON_LEFT
253#define DOOMBUTTON_RIGHT BUTTON_RIGHT
254#define DOOMBUTTON_OPEN BUTTON_PLUS
255#define DOOMBUTTON_SHOOT BUTTON_SELECT
256#define DOOMBUTTON_ENTER BUTTON_MENU
257#define DOOMBUTTON_WEAPON BUTTON_MINUS
258#elif CONFIG_KEYPAD == MROBE100_PAD 250#elif CONFIG_KEYPAD == MROBE100_PAD
259#define DOOMBUTTON_UP BUTTON_UP 251#define DOOMBUTTON_UP BUTTON_UP
260#define DOOMBUTTON_DOWN BUTTON_DOWN 252#define DOOMBUTTON_DOWN BUTTON_DOWN
@@ -269,6 +261,36 @@ void I_ShutdownGraphics(void)
269#error Keymap not defined! 261#error Keymap not defined!
270#endif 262#endif
271 263
264#ifdef HAVE_TOUCHPAD
265#ifndef DOOMBUTTON_UP
266#define DOOMBUTTON_UP BUTTON_TOPMIDDLE
267#endif
268#ifndef DOOMBUTTON_DOWN
269#define DOOMBUTTON_DOWN BUTTON_BOTTOMMIDDLE
270#endif
271#ifndef DOOMBUTTON_LEFT
272#define DOOMBUTTON_LEFT BUTTON_MIDLEFT
273#endif
274#ifndef DOOMBUTTON_RIGHT
275#define DOOMBUTTON_RIGHT BUTTON_MIDRIGHT
276#endif
277#ifndef DOOMBUTTON_SHOOT
278#define DOOMBUTTON_SHOOT BUTTON_CENTER
279#endif
280#ifndef DOOMBUTTON_OPEN
281#define DOOMBUTTON_OPEN BUTTON_TOPRIGHT
282#endif
283#ifndef DOOMBUTTON_ESC
284#define DOOMBUTTON_ESC BUTTON_TOPLEFT
285#endif
286#ifndef DOOMBUTTON_ENTER
287#define DOOMBUTTON_ENTER BUTTON_BOTTOMLEFT
288#endif
289#ifndef DOOMBUTTON_WEAPON
290#define DOOMBUTTON_WEAPON BUTTON_BOTTOMRIGHT
291#endif
292#endif
293
272#ifdef DOOMBUTTON_SCROLLWHEEL 294#ifdef DOOMBUTTON_SCROLLWHEEL
273/* Scrollwheel events are posted directly and not polled by the button 295/* Scrollwheel events are posted directly and not polled by the button
274 driver - synthesize polling */ 296 driver - synthesize polling */
diff --git a/apps/plugins/fireworks.c b/apps/plugins/fireworks.c
index 3af9bdf39d..361930f1c8 100644
--- a/apps/plugins/fireworks.c
+++ b/apps/plugins/fireworks.c
@@ -70,12 +70,20 @@ static struct plugin_api* rb;
70#define BTN_MENU BUTTON_RC_REC 70#define BTN_MENU BUTTON_RC_REC
71#define BTN_FIRE BUTTON_RC_PLAY 71#define BTN_FIRE BUTTON_RC_PLAY
72#elif (CONFIG_KEYPAD == COWOND2_PAD) 72#elif (CONFIG_KEYPAD == COWOND2_PAD)
73#define BTN_MENU BUTTON_MENU 73#define BTN_MENU (BUTTON_MENU|BUTTON_REL)
74#define BTN_FIRE BUTTON_SELECT
75#else 74#else
76#error No keymap defined! 75#error No keymap defined!
77#endif 76#endif
78 77
78#ifdef HAVE_TOUCHPAD
79#ifndef BTN_MENU
80#define BTN_MENU (BUTTON_TOPLEFT|BUTTON_REL)
81#endif
82#ifndef BTN_FIRE
83#define BTN_FIRE BUTTON_CENTER
84#endif
85#endif
86
79/* The lowdown on source terminology: 87/* The lowdown on source terminology:
80 * a ROCKET is launched from the LCD bottom. 88 * a ROCKET is launched from the LCD bottom.
81 * FIREWORKs are ejected from the rocket when it explodes. */ 89 * FIREWORKs are ejected from the rocket when it explodes. */
diff --git a/apps/plugins/flashlight.c b/apps/plugins/flashlight.c
index c3c061b590..e502d0e227 100644
--- a/apps/plugins/flashlight.c
+++ b/apps/plugins/flashlight.c
@@ -70,14 +70,27 @@ PLUGIN_HEADER
70# define FLASHLIGHT_RIGHT BUTTON_RIGHT 70# define FLASHLIGHT_RIGHT BUTTON_RIGHT
71 71
72#elif CONFIG_KEYPAD == COWOND2_PAD 72#elif CONFIG_KEYPAD == COWOND2_PAD
73# define FLASHLIGHT_LEFT BUTTON_LEFT
74# define FLASHLIGHT_RIGHT BUTTON_RIGHT
75 73
76#else 74#else
77# error Missing key definitions for this keypad 75# error Missing key definitions for this keypad
78#endif 76#endif
79#endif 77#endif
80 78
79#ifdef HAVE_TOUCHPAD
80# ifndef FLASHLIGHT_LEFT
81# define FLASHLIGHT_LEFT BUTTON_MIDLEFT
82# endif
83# ifndef FLASHLIGHT_RIGHT
84# define FLASHLIGHT_RIGHT BUTTON_MIDRIGHT
85# endif
86# ifndef FLASHLIGHT_NEXT
87# define FLASHLIGHT_NEXT BUTTON_TOPMIDDLE
88# endif
89# ifndef FLASHLIGHT_PREV
90# define FLASHLIGHT_PREV BUTTON_BOTTOMMIDDLE
91# endif
92#endif
93
81static struct plugin_api* rb; /* global api struct pointer */ 94static struct plugin_api* rb; /* global api struct pointer */
82 95
83#ifdef HAVE_LCD_COLOR 96#ifdef HAVE_LCD_COLOR
diff --git a/apps/plugins/flipit.c b/apps/plugins/flipit.c
index 58948262d9..874ddf41f7 100644
--- a/apps/plugins/flipit.c
+++ b/apps/plugins/flipit.c
@@ -208,21 +208,42 @@ PLUGIN_HEADER
208 208
209#elif CONFIG_KEYPAD == COWOND2_PAD 209#elif CONFIG_KEYPAD == COWOND2_PAD
210 210
211#define FLIPIT_LEFT BUTTON_LEFT
212#define FLIPIT_RIGHT BUTTON_RIGHT
213#define FLIPIT_UP BUTTON_UP
214#define FLIPIT_DOWN BUTTON_DOWN
215#define FLIPIT_QUIT BUTTON_POWER 211#define FLIPIT_QUIT BUTTON_POWER
216#define FLIPIT_SHUFFLE (BUTTON_LEFT|BUTTON_MENU)
217#define FLIPIT_SOLVE (BUTTON_RIGHT|BUTTON_MENU)
218#define FLIPIT_STEP_BY_STEP BUTTON_MINUS
219#define FLIPIT_TOGGLE_PRE BUTTON_PLUS
220#define FLIPIT_TOGGLE BUTTON_SELECT
221 212
222#else 213#else
223#error No keymap defined! 214#error No keymap defined!
224#endif 215#endif
225 216
217#ifdef HAVE_TOUCHPAD
218#ifndef FLIPIT_LEFT
219#define FLIPIT_LEFT BUTTON_MIDLEFT
220#endif
221#ifndef FLIPIT_RIGHT
222#define FLIPIT_RIGHT BUTTON_MIDRIGHT
223#endif
224#ifndef FLIPIT_UP
225#define FLIPIT_UP BUTTON_TOPMIDDLE
226#endif
227#ifndef FLIPIT_DOWN
228#define FLIPIT_DOWN BUTTON_BOTTOMMIDDLE
229#endif
230#ifndef FLIPIT_QUIT
231#define FLIPIT_QUIT BUTTON_TOPLEFT
232#endif
233#ifndef FLIPIT_SHUFFLE
234#define FLIPIT_SHUFFLE BUTTON_TOPRIGHT
235#endif
236#ifndef FLIPIT_SOLVE
237#define FLIPIT_SOLVE BUTTON_BOTTOMLEFT
238#endif
239#ifndef FLIPIT_STEP_BY_STEP
240#define FLIPIT_STEP_BY_STEP BUTTON_BOTTOMRIGHT
241#endif
242#ifndef FLIPIT_TOGGLE
243#define FLIPIT_TOGGLE BUTTON_CENTER
244#endif
245#endif
246
226static struct plugin_api* rb; 247static struct plugin_api* rb;
227static int spots[20]; 248static int spots[20];
228static int toggle[20]; 249static int toggle[20];
@@ -651,6 +672,15 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
651 rb->lcd_putsxy(2, 38, "[MENU..] solution"); 672 rb->lcd_putsxy(2, 38, "[MENU..] solution");
652 rb->lcd_putsxy(2, 48, "[MENU] step by step"); 673 rb->lcd_putsxy(2, 48, "[MENU] step by step");
653#endif 674#endif
675
676#ifdef HAVE_TOUCHPAD
677 rb->lcd_putsxy(2, 8, "[BOTTOMLEFT] to stop");
678 rb->lcd_putsxy(2, 18, "[CENTRE] toggle");
679 rb->lcd_putsxy(2, 28, "[TOPRIGHT] shuffle");
680 rb->lcd_putsxy(2, 38, "[BOTTOMLEFT] solution");
681 rb->lcd_putsxy(2, 48, "[BOTTOMRIGHT] step by step");
682#endif
683
654 rb->lcd_update(); 684 rb->lcd_update();
655#else /* HAVE_LCD_CHARCELLS */ 685#else /* HAVE_LCD_CHARCELLS */
656 if (!init_gfx()) 686 if (!init_gfx())
diff --git a/apps/plugins/invadrox.c b/apps/plugins/invadrox.c
index d7439ee19e..946e36d05a 100644
--- a/apps/plugins/invadrox.c
+++ b/apps/plugins/invadrox.c
@@ -117,14 +117,25 @@ PLUGIN_HEADER
117#elif CONFIG_KEYPAD == COWOND2_PAD 117#elif CONFIG_KEYPAD == COWOND2_PAD
118 118
119#define QUIT BUTTON_POWER 119#define QUIT BUTTON_POWER
120#define LEFT BUTTON_MINUS
121#define RIGHT BUTTON_PLUS
122#define FIRE BUTTON_MENU
123 120
124#else 121#else
125 #error INVADROX: Unsupported keypad 122 #error INVADROX: Unsupported keypad
126#endif 123#endif
127 124
125#ifdef HAVE_TOUCHPAD
126#ifndef QUIT
127#define QUIT BUTTON_TOPLEFT
128#endif
129#ifndef LEFT
130#define LEFT BUTTON_MIDLEFT
131#endif
132#ifndef RIGHT
133#define RIGHT BUTTON_MIDRIGHT
134#endif
135#ifndef FIRE
136#define FIRE BUTTON_CENTER
137#endif
138#endif
128 139
129#ifndef UNUSED 140#ifndef UNUSED
130#define UNUSED __attribute__ ((unused)) 141#define UNUSED __attribute__ ((unused))
diff --git a/apps/plugins/jewels.c b/apps/plugins/jewels.c
index f93ea62114..ddd659d2a1 100644
--- a/apps/plugins/jewels.c
+++ b/apps/plugins/jewels.c
@@ -149,17 +149,33 @@ PLUGIN_HEADER
149#define JEWELS_RC_CANCEL BUTTON_REC 149#define JEWELS_RC_CANCEL BUTTON_REC
150 150
151#elif CONFIG_KEYPAD == COWOND2_PAD 151#elif CONFIG_KEYPAD == COWOND2_PAD
152#define JEWELS_UP BUTTON_UP
153#define JEWELS_DOWN BUTTON_DOWN
154#define JEWELS_LEFT BUTTON_LEFT
155#define JEWELS_RIGHT BUTTON_RIGHT
156#define JEWELS_SELECT BUTTON_SELECT
157#define JEWELS_CANCEL BUTTON_POWER 152#define JEWELS_CANCEL BUTTON_POWER
158 153
159#else 154#else
160#error No keymap defined! 155#error No keymap defined!
161#endif 156#endif
162 157
158#ifdef HAVE_TOUCHPAD
159#ifndef JEWELS_UP
160#define JEWELS_UP BUTTON_TOPMIDDLE
161#endif
162#ifndef JEWELS_DOWN
163#define JEWELS_DOWN BUTTON_BOTTOMMIDDLE
164#endif
165#ifndef JEWELS_LEFT
166#define JEWELS_LEFT BUTTON_MIDLEFT
167#endif
168#ifndef JEWELS_RIGHT
169#define JEWELS_RIGHT BUTTON_MIDRIGHT
170#endif
171#ifndef JEWELS_SELECT
172#define JEWELS_SELECT BUTTON_CENTER
173#endif
174#ifndef JEWELS_CANCEL
175#define JEWELS_CANCEL BUTTON_TOPLEFT
176#endif
177#endif
178
163/* use 30x30 tiles (iPod Video, Gigabeat) */ 179/* use 30x30 tiles (iPod Video, Gigabeat) */
164#if (LCD_HEIGHT == 240) && (LCD_WIDTH == 320) || \ 180#if (LCD_HEIGHT == 240) && (LCD_WIDTH == 320) || \
165 ((LCD_HEIGHT == 320) && (LCD_WIDTH == 240)) 181 ((LCD_HEIGHT == 320) && (LCD_WIDTH == 240))
@@ -1574,6 +1590,8 @@ static int jewels_main(struct game_context* bj) {
1574 rb->lcd_puts(0, 11, "Long PLAY for menu"); 1590 rb->lcd_puts(0, 11, "Long PLAY for menu");
1575 rb->lcd_puts(0, 12, "REC to cancel"); 1591 rb->lcd_puts(0, 12, "REC to cancel");
1576#elif CONFIG_KEYPAD == COWOND2_PAD 1592#elif CONFIG_KEYPAD == COWOND2_PAD
1593 rb->lcd_puts(0, 11, "POWER to cancel");
1594#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
1577 rb->lcd_puts(0, 2, "Swap pairs of jewels to"); 1595 rb->lcd_puts(0, 2, "Swap pairs of jewels to");
1578 rb->lcd_puts(0, 3, "form connected segments"); 1596 rb->lcd_puts(0, 3, "form connected segments");
1579 rb->lcd_puts(0, 4, "of three or more of the"); 1597 rb->lcd_puts(0, 4, "of three or more of the");
@@ -1582,19 +1600,20 @@ static int jewels_main(struct game_context* bj) {
1582 rb->lcd_puts(0, 8, "Directions to move"); 1600 rb->lcd_puts(0, 8, "Directions to move");
1583 rb->lcd_puts(0, 9, "SELECT to select"); 1601 rb->lcd_puts(0, 9, "SELECT to select");
1584 rb->lcd_puts(0, 10, "Long SELECT to show menu"); 1602 rb->lcd_puts(0, 10, "Long SELECT to show menu");
1585 rb->lcd_puts(0, 11, "POWER to cancel"); 1603 rb->lcd_puts(0, 11, "BACK to cancel");
1586#elif CONFIG_KEYPAD == GIGABEAT_S_PAD 1604#else
1605 #warning: missing help text.
1606#endif
1607
1608#ifdef HAVE_TOUCHPAD
1587 rb->lcd_puts(0, 2, "Swap pairs of jewels to"); 1609 rb->lcd_puts(0, 2, "Swap pairs of jewels to");
1588 rb->lcd_puts(0, 3, "form connected segments"); 1610 rb->lcd_puts(0, 3, "form connected segments");
1589 rb->lcd_puts(0, 4, "of three or more of the"); 1611 rb->lcd_puts(0, 4, "of three or more of the");
1590 rb->lcd_puts(0, 5, "same type."); 1612 rb->lcd_puts(0, 5, "same type.");
1591 rb->lcd_puts(0, 7, "Controls:"); 1613 rb->lcd_puts(0, 7, "Controls:");
1592 rb->lcd_puts(0, 8, "Directions to move"); 1614 rb->lcd_puts(0, 8, "Directions to move");
1593 rb->lcd_puts(0, 9, "SELECT to select"); 1615 rb->lcd_puts(0, 9, "CENTER to select");
1594 rb->lcd_puts(0, 10, "Long SELECT to show menu"); 1616 rb->lcd_puts(0, 10, "Long CENTER to show menu");
1595 rb->lcd_puts(0, 11, "BACK to cancel");
1596#else
1597 #warning: missing help text.
1598#endif 1617#endif
1599 rb->lcd_update(); 1618 rb->lcd_update();
1600 while(true) { 1619 while(true) {
diff --git a/apps/plugins/jpeg.c b/apps/plugins/jpeg.c
index 596d4d73e7..cac8038418 100644
--- a/apps/plugins/jpeg.c
+++ b/apps/plugins/jpeg.c
@@ -211,20 +211,41 @@ PLUGIN_HEADER
211#define JPEG_PREVIOUS BUTTON_RC_MENU 211#define JPEG_PREVIOUS BUTTON_RC_MENU
212 212
213#elif CONFIG_KEYPAD == COWOND2_PAD 213#elif CONFIG_KEYPAD == COWOND2_PAD
214#define JPEG_ZOOM_IN BUTTON_PLUS
215#define JPEG_ZOOM_OUT BUTTON_MINUS
216#define JPEG_UP BUTTON_UP
217#define JPEG_DOWN BUTTON_DOWN
218#define JPEG_LEFT BUTTON_LEFT
219#define JPEG_RIGHT BUTTON_RIGHT
220#define JPEG_MENU BUTTON_MENU
221#define JPEG_NEXT (BUTTON_SELECT|BUTTON_PLUS)
222#define JPEG_PREVIOUS (BUTTON_SELECT|BUTTON_MINUS)
223 214
224#else 215#else
225#error No keymap defined! 216#error No keymap defined!
226#endif 217#endif
227 218
219#ifdef HAVE_TOUCHPAD
220#ifndef JPEG_UP
221#define JPEG_UP BUTTON_TOPMIDDLE
222#endif
223#ifndef JPEG_DOWN
224#define JPEG_DOWN BUTTON_BOTTOMMIDDLE
225#endif
226#ifndef JPEG_LEFT
227#define JPEG_LEFT BUTTON_MIDLEFT
228#endif
229#ifndef JPEG_RIGHT
230#define JPEG_RIGHT BUTTON_MIDRIGHT
231#endif
232#ifndef JPEG_ZOOM_IN
233#define JPEG_ZOOM_IN BUTTON_TOPRIGHT
234#endif
235#ifndef JPEG_ZOOM_OUT
236#define JPEG_ZOOM_OUT BUTTON_TOPLEFT
237#endif
238#ifndef JPEG_MENU
239#define JPEG_MENU (BUTTON_CENTER|BUTTON_REL)
240#endif
241#ifndef JPEG_NEXT
242#define JPEG_NEXT BUTTON_BOTTOMRIGHT
243#endif
244#ifndef JPEG_PREVIOUS
245#define JPEG_PREVIOUS BUTTON_BOTTOMLEFT
246#endif
247#endif
248
228/* different graphics libraries */ 249/* different graphics libraries */
229#if LCD_DEPTH < 8 250#if LCD_DEPTH < 8
230#define USEGSLIB 251#define USEGSLIB
diff --git a/apps/plugins/logo.c b/apps/plugins/logo.c
index 7a1a746d4a..f08ca3a62a 100644
--- a/apps/plugins/logo.c
+++ b/apps/plugins/logo.c
@@ -138,10 +138,6 @@ const unsigned char rockbox16x7[] = {
138 138
139#elif CONFIG_KEYPAD == COWOND2_PAD 139#elif CONFIG_KEYPAD == COWOND2_PAD
140#define LP_QUIT BUTTON_POWER 140#define LP_QUIT BUTTON_POWER
141#define LP_DEC_X BUTTON_LEFT
142#define LP_INC_X BUTTON_RIGHT
143#define LP_DEC_Y BUTTON_DOWN
144#define LP_INC_Y BUTTON_UP
145 141
146#else 142#else
147#define LP_QUIT BUTTON_OFF 143#define LP_QUIT BUTTON_OFF
@@ -162,6 +158,23 @@ const unsigned char rockbox16x7[] = {
162#endif 158#endif
163#endif /* CONFIG_REMOTE_KEYPAD */ 159#endif /* CONFIG_REMOTE_KEYPAD */
164 160
161#ifdef HAVE_TOUCHPAD
162#ifndef LP_QUIT
163#define LP_QUIT BUTTON_TOPLEFT
164#endif
165#ifndef LP_DEC_X
166#define LP_DEC_X BUTTON_MIDLEFT
167#endif
168#ifndef LP_INC_X
169#define LP_INC_X BUTTON_MIDRIGHT
170#endif
171#ifndef LP_DEC_Y
172#define LP_DEC_Y BUTTON_TOPMIDDLE
173#endif
174#ifndef LP_INC_Y
175#define LP_INC_Y BUTTON_BOTTOMMIDDLE
176#endif
177#endif
165 178
166enum plugin_status plugin_start(struct plugin_api* api, void* parameter) { 179enum plugin_status plugin_start(struct plugin_api* api, void* parameter) {
167 int button; 180 int button;
@@ -289,3 +302,4 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) {
289 } 302 }
290} 303}
291 304
305
diff --git a/apps/plugins/mandelbrot.c b/apps/plugins/mandelbrot.c
index 244d94b157..1576b875dd 100644
--- a/apps/plugins/mandelbrot.c
+++ b/apps/plugins/mandelbrot.c
@@ -220,22 +220,47 @@ PLUGIN_HEADER
220 220
221#elif CONFIG_KEYPAD == COWOND2_PAD 221#elif CONFIG_KEYPAD == COWOND2_PAD
222#define MANDELBROT_QUIT BUTTON_POWER 222#define MANDELBROT_QUIT BUTTON_POWER
223#define MANDELBROT_UP BUTTON_UP
224#define MANDELBROT_DOWN BUTTON_DOWN
225#define MANDELBROT_LEFT BUTTON_LEFT
226#define MANDELBROT_RIGHT BUTTON_RIGHT
227#define MANDELBROT_ZOOM_IN_PRE BUTTON_SELECT
228#define MANDELBROT_ZOOM_IN (BUTTON_SELECT | BUTTON_PLUS)
229#define MANDELBROT_ZOOM_OUT_PRE BUTTON_SELECT
230#define MANDELBROT_ZOOM_OUT (BUTTON_SELECT | BUTTON_MINUS)
231#define MANDELBROT_MAXITER_INC BUTTON_PLUS
232#define MANDELBROT_MAXITER_DEC BUTTON_MINUS
233#define MANDELBROT_RESET BUTTON_MENU
234 223
235#else 224#else
236#error No keymap defined! 225#error No keymap defined!
237#endif 226#endif
238 227
228#ifdef HAVE_TOUCHPAD
229#ifndef MANDELBROT_UP
230#define MANDELBROT_UP BUTTON_TOPMIDDLE
231#endif
232#ifndef MANDELBROT_DOWN
233#define MANDELBROT_DOWN BUTTON_BOTTOMMIDDLE
234#endif
235#ifndef MANDELBROT_LEFT
236#define MANDELBROT_LEFT BUTTON_MIDLEFT
237#endif
238#ifndef MANDELBROT_RIGHT
239#define MANDELBROT_RIGHT BUTTON_MIDRIGHT
240#endif
241#ifndef MANDELBROT_ZOOM_IN_PRE
242#define MANDELBROT_ZOOM_IN_PRE BUTTON_TOPRIGHT
243#endif
244#ifndef MANDELBROT_ZOOM_IN
245#define MANDELBROT_ZOOM_IN (BUTTON_TOPRIGHT | BUTTON_REL)
246#endif
247#ifndef MANDELBROT_ZOOM_OUT_PRE
248#define MANDELBROT_ZOOM_OUT_PRE BUTTON_TOPLEFT
249#endif
250#ifndef MANDELBROT_ZOOM_OUT
251#define MANDELBROT_ZOOM_OUT (BUTTON_TOPLEFT | BUTTON_REL)
252#endif
253#ifndef MANDELBROT_MAXITER_INC
254#define MANDELBROT_MAXITER_INC BUTTON_BOTTOMRIGHT
255#endif
256#ifndef MANDELBROT_MAXITER_DEC
257#define MANDELBROT_MAXITER_DEC BUTTON_BOTTOMLEFT
258#endif
259#ifndef MANDELBROT_RESET
260#define MANDELBROT_RESET BUTTON_CENTER
261#endif
262#endif
263
239#if LCD_DEPTH < 8 264#if LCD_DEPTH < 8
240#define USEGSLIB 265#define USEGSLIB
241#define MYLCD(fn) grey_ub_ ## fn 266#define MYLCD(fn) grey_ub_ ## fn
diff --git a/apps/plugins/matrix.c b/apps/plugins/matrix.c
index c445867d62..008600794f 100644
--- a/apps/plugins/matrix.c
+++ b/apps/plugins/matrix.c
@@ -97,13 +97,25 @@ extern const fb_data matrix_normal[];
97#define MATRIX_PAUSE BUTTON_RC_PLAY 97#define MATRIX_PAUSE BUTTON_RC_PLAY
98#elif (CONFIG_KEYPAD == COWOND2_PAD) 98#elif (CONFIG_KEYPAD == COWOND2_PAD)
99#define MATRIX_EXIT BUTTON_POWER 99#define MATRIX_EXIT BUTTON_POWER
100#define MATRIX_SLEEP_MORE BUTTON_PLUS
101#define MATRIX_SLEEP_LESS BUTTON_MINUS
102#define MATRIX_PAUSE BUTTON_MENU
103#else 100#else
104#error Unsupported keypad 101#error Unsupported keypad
105#endif 102#endif
106 103
104#ifdef HAVE_TOUCHPAD
105#ifndef MATRIX_EXIT
106#define MATRIX_EXIT BUTTON_TOPLEFT
107#endif
108#ifndef MATRIX_SLEEP_MORE
109#define MATRIX_SLEEP_MORE BUTTON_MIDRIGHT
110#endif
111#ifndef MATRIX_SLEEP_LESS
112#define MATRIX_SLEEP_LESS BUTTON_MIDLEFT
113#endif
114#ifndef MATRIX_PAUSE
115#define MATRIX_PAUSE BUTTON_CENTER
116#endif
117#endif
118
107#define SLEEP HZ/50 119#define SLEEP HZ/50
108 120
109/* Codec api pointer */ 121/* Codec api pointer */
diff --git a/apps/plugins/midi/midiplay.c b/apps/plugins/midi/midiplay.c
index 84bfe30034..f99fafcb2d 100644
--- a/apps/plugins/midi/midiplay.c
+++ b/apps/plugins/midi/midiplay.c
@@ -137,17 +137,33 @@ PLUGIN_IRAM_DECLARE
137 137
138#elif CONFIG_KEYPAD == COWOND2_PAD 138#elif CONFIG_KEYPAD == COWOND2_PAD
139#define BTN_QUIT BUTTON_POWER 139#define BTN_QUIT BUTTON_POWER
140#define BTN_RIGHT BUTTON_RIGHT
141#define BTN_LEFT BUTTON_LEFT
142#define BTN_UP BUTTON_UP
143#define BTN_DOWN BUTTON_DOWN
144#define BTN_PLAY BUTTON_SELECT
145 140
146 141
147#else 142#else
148#error No keymap defined! 143#error No keymap defined!
149#endif 144#endif
150 145
146#ifdef HAVE_TOUCHPAD
147#ifndef BTN_QUIT
148#define BTN_QUIT BUTTON_TOPLEFT
149#endif
150#ifndef BTN_RIGHT
151#define BTN_RIGHT BUTTON_MIDRIGHT
152#endif
153#ifndef BTN_LEFT
154#define BTN_LEFT BUTTON_MIDLEFT
155#endif
156#ifndef BTN_UP
157#define BTN_UP BUTTON_TOPMIDDLE
158#endif
159#ifndef BTN_DOWN
160#define BTN_DOWN BUTTON_BOTTOMMIDDLE
161#endif
162#ifndef BTN_PLAY
163#define BTN_PLAY BUTTON_CENTER
164#endif
165#endif
166
151#undef SYNC 167#undef SYNC
152 168
153#ifdef SIMULATOR 169#ifdef SIMULATOR
diff --git a/apps/plugins/minesweeper.c b/apps/plugins/minesweeper.c
index 5066844347..e4b8c939b4 100644
--- a/apps/plugins/minesweeper.c
+++ b/apps/plugins/minesweeper.c
@@ -184,19 +184,39 @@ enum minesweeper_status {
184# define MINESWP_INFO BUTTON_RC_MENU 184# define MINESWP_INFO BUTTON_RC_MENU
185 185
186#elif (CONFIG_KEYPAD == COWOND2_PAD) 186#elif (CONFIG_KEYPAD == COWOND2_PAD)
187# define MINESWP_LEFT BUTTON_LEFT
188# define MINESWP_RIGHT BUTTON_RIGHT
189# define MINESWP_UP BUTTON_UP
190# define MINESWP_DOWN BUTTON_DOWN
191# define MINESWP_QUIT BUTTON_POWER 187# define MINESWP_QUIT BUTTON_POWER
192# define MINESWP_TOGGLE BUTTON_SELECT
193# define MINESWP_DISCOVER BUTTON_MENU
194# define MINESWP_INFO (BUTTON_MENU | BUTTON_SELECT)
195 188
196#else 189#else
197#error No keymap defined! 190#error No keymap defined!
198#endif 191#endif
199 192
193#ifdef HAVE_TOUCHPAD
194#ifndef MINESWP_QUIT
195# define MINESWP_QUIT BUTTON_TOPLEFT
196#endif
197#ifndef MINESWP_LEFT
198# define MINESWP_LEFT BUTTON_MIDLEFT
199#endif
200#ifndef MINESWP_RIGHT
201# define MINESWP_RIGHT BUTTON_MIDRIGHT
202#endif
203#ifndef MINESWP_UP
204# define MINESWP_UP BUTTON_TOPMIDDLE
205#endif
206#ifndef MINESWP_DOWN
207# define MINESWP_DOWN BUTTON_BOTTOMMIDDLE
208#endif
209#ifndef MINESWP_TOGGLE
210# define MINESWP_TOGGLE BUTTON_CENTER
211#endif
212#ifndef MINESWP_DISCOVER
213# define MINESWP_DISCOVER BUTTON_BOTTOMLEFT
214#endif
215#ifndef MINESWP_INFO
216# define MINESWP_INFO BUTTON_BOTTOMRIGHT
217#endif
218#endif
219
200/* here is a global api struct pointer. while not strictly necessary, 220/* here is a global api struct pointer. while not strictly necessary,
201 * it's nice not to have to pass the api pointer in all function calls 221 * it's nice not to have to pass the api pointer in all function calls
202 * in the plugin 222 * in the plugin
diff --git a/apps/plugins/mosaique.c b/apps/plugins/mosaique.c
index 8163685366..9545f89f59 100644
--- a/apps/plugins/mosaique.c
+++ b/apps/plugins/mosaique.c
@@ -124,13 +124,23 @@ PLUGIN_HEADER
124 124
125#elif CONFIG_KEYPAD == COWOND2_PAD 125#elif CONFIG_KEYPAD == COWOND2_PAD
126#define MOSAIQUE_QUIT BUTTON_POWER 126#define MOSAIQUE_QUIT BUTTON_POWER
127#define MOSAIQUE_SPEED BUTTON_RIGHT
128#define MOSAIQUE_RESTART BUTTON_MENU
129 127
130#else 128#else
131#error No keymap defined! 129#error No keymap defined!
132#endif 130#endif
133 131
132#ifdef HAVE_TOUCHPAD
133#ifndef MOSAIQUE_QUIT
134#define MOSAIQUE_QUIT BUTTON_TOPLEFT
135#endif
136#ifndef MOSAIQUE_SPEED
137#define MOSAIQUE_SPEED BUTTON_MIDRIGHT
138#endif
139#ifndef MOSAIQUE_RESTART
140#define MOSAIQUE_RESTART BUTTON_CENTER
141#endif
142#endif
143
134enum plugin_status plugin_start(struct plugin_api* api, void* parameter) 144enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
135{ 145{
136 int button; 146 int button;
@@ -231,3 +241,4 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
231 } 241 }
232} 242}
233 243
244
diff --git a/apps/plugins/mp3_encoder.c b/apps/plugins/mp3_encoder.c
index 2f7a9905aa..a344bdc7dc 100644
--- a/apps/plugins/mp3_encoder.c
+++ b/apps/plugins/mp3_encoder.c
@@ -2333,14 +2333,26 @@ void get_mp3_filename(char *wav_name)
2333#define MP3ENC_DONE BUTTON_RC_REC 2333#define MP3ENC_DONE BUTTON_RC_REC
2334#define MP3ENC_SELECT BUTTON_RC_FF 2334#define MP3ENC_SELECT BUTTON_RC_FF
2335#elif CONFIG_KEYPAD == COWOND2_PAD 2335#elif CONFIG_KEYPAD == COWOND2_PAD
2336#define MP3ENC_PREV BUTTON_UP
2337#define MP3ENC_NEXT BUTTON_DOWN
2338#define MP3ENC_DONE BUTTON_POWER 2336#define MP3ENC_DONE BUTTON_POWER
2339#define MP3ENC_SELECT BUTTON_SELECT
2340#else 2337#else
2341#error No keymap defined! 2338#error No keymap defined!
2342#endif 2339#endif
2343 2340
2341#ifdef HAVE_TOUCHPAD
2342#ifndef MP3ENC_PREV
2343#define MP3ENC_PREV BUTTON_MIDLEFT
2344#endif
2345#ifndef MP3ENC_NEXT
2346#define MP3ENC_NEXT BUTTON_MIDRIGHT
2347#endif
2348#ifndef MP3ENC_DONE
2349#define MP3ENC_DONE BUTTON_TOPLEFT
2350#endif
2351#ifndef MP3ENC_SELECT
2352#define MP3ENC_SELECT BUTTON_CENTER
2353#endif
2354#endif
2355
2344enum plugin_status plugin_start(struct plugin_api* api, void* parameter) 2356enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
2345{ 2357{
2346 int rat, srat, nrat; /* for rate selection */ 2358 int rat, srat, nrat; /* for rate selection */
diff --git a/apps/plugins/mpegplayer/mpeg_settings.c b/apps/plugins/mpegplayer/mpeg_settings.c
index b7b7def729..4d9e5625f9 100644
--- a/apps/plugins/mpegplayer/mpeg_settings.c
+++ b/apps/plugins/mpegplayer/mpeg_settings.c
@@ -111,19 +111,39 @@ struct mpeg_settings settings;
111#define MPEG_START_TIME_EXIT BUTTON_RC_REC 111#define MPEG_START_TIME_EXIT BUTTON_RC_REC
112 112
113#elif CONFIG_KEYPAD == COWOND2_PAD 113#elif CONFIG_KEYPAD == COWOND2_PAD
114#define MPEG_START_TIME_SELECT BUTTON_SELECT
115#define MPEG_START_TIME_SCROLL_UP BUTTON_PLUS
116#define MPEG_START_TIME_SCROLL_DOWN BUTTON_MINUS
117#define MPEG_START_TIME_LEFT BUTTON_LEFT
118#define MPEG_START_TIME_RIGHT BUTTON_RIGHT
119#define MPEG_START_TIME_UP BUTTON_UP
120#define MPEG_START_TIME_DOWN BUTTON_DOWN
121#define MPEG_START_TIME_EXIT BUTTON_POWER 114#define MPEG_START_TIME_EXIT BUTTON_POWER
122 115
123#else 116#else
124#error No keymap defined! 117#error No keymap defined!
125#endif 118#endif
126 119
120#ifdef HAVE_TOUCHPAD
121#ifndef MPEG_START_TIME_SELECT
122#define MPEG_START_TIME_SELECT BUTTON_CENTER
123#endif
124#ifndef MPEG_START_TIME_SCROLL_UP
125#define MPEG_START_TIME_SCROLL_UP BUTTON_TOPRIGHT
126#endif
127#ifndef MPEG_START_TIME_SCROLL_DOWN
128#define MPEG_START_TIME_SCROLL_DOWN BUTTON_TOPLEFT
129#endif
130#ifndef MPEG_START_TIME_LEFT
131#define MPEG_START_TIME_LEFT BUTTON_MIDLEFT
132#endif
133#ifndef MPEG_START_TIME_RIGHT
134#define MPEG_START_TIME_RIGHT BUTTON_MIDRIGHT
135#endif
136#ifndef MPEG_START_TIME_UP
137#define MPEG_START_TIME_UP BUTTON_TOPMIDDLE
138#endif
139#ifndef MPEG_START_TIME_DOWN
140#define MPEG_START_TIME_DOWN BUTTON_BOTTOMMIDDLE
141#endif
142#ifndef MPEG_START_TIME_EXIT
143#define MPEG_START_TIME_EXIT BUTTON_TOPLEFT
144#endif
145#endif
146
127static struct configdata config[] = 147static struct configdata config[] =
128{ 148{
129 {TYPE_INT, 0, 2, &settings.showfps, "Show FPS", NULL, NULL}, 149 {TYPE_INT, 0, 2, &settings.showfps, "Show FPS", NULL, NULL},
diff --git a/apps/plugins/mpegplayer/mpegplayer.c b/apps/plugins/mpegplayer/mpegplayer.c
index 8a947904a3..e63246b648 100644
--- a/apps/plugins/mpegplayer/mpegplayer.c
+++ b/apps/plugins/mpegplayer/mpegplayer.c
@@ -212,18 +212,39 @@ PLUGIN_IRAM_DECLARE
212#define MPEG_FF BUTTON_RC_FF 212#define MPEG_FF BUTTON_RC_FF
213 213
214#elif CONFIG_KEYPAD == COWOND2_PAD 214#elif CONFIG_KEYPAD == COWOND2_PAD
215#define MPEG_MENU BUTTON_MENU 215#define MPEG_MENU (BUTTON_MENU|BUTTON_REL)
216#define MPEG_STOP BUTTON_POWER 216//#define MPEG_STOP BUTTON_POWER
217#define MPEG_PAUSE BUTTON_SELECT
218#define MPEG_VOLDOWN BUTTON_MINUS 217#define MPEG_VOLDOWN BUTTON_MINUS
219#define MPEG_VOLUP BUTTON_PLUS 218#define MPEG_VOLUP BUTTON_PLUS
220#define MPEG_RW BUTTON_LEFT
221#define MPEG_FF BUTTON_RIGHT
222 219
223#else 220#else
224#error No keymap defined! 221#error No keymap defined!
225#endif 222#endif
226 223
224#ifdef HAVE_TOUCHPAD
225#ifndef MPEG_MENU
226#define MPEG_MENU (BUTTON_TOPRIGHT|BUTTON_REL)
227#endif
228#ifndef MPEG_STOP
229#define MPEG_STOP BUTTON_TOPLEFT
230#endif
231#ifndef MPEG_PAUSE
232#define MPEG_PAUSE BUTTON_CENTER
233#endif
234#ifndef MPEG_VOLDOWN
235#define MPEG_VOLDOWN BUTTON_TOPMIDDLE
236#endif
237#ifndef MPEG_VOLUP
238#define MPEG_VOLUP BUTTON_BOTTOMMIDDLE
239#endif
240#ifndef MPEG_RW
241#define MPEG_RW BUTTON_MIDLEFT
242#endif
243#ifndef MPEG_FF
244#define MPEG_FF BUTTON_MIDRIGHT
245#endif
246#endif
247
227struct plugin_api* rb; 248struct plugin_api* rb;
228 249
229CACHE_FUNCTION_WRAPPERS(rb); 250CACHE_FUNCTION_WRAPPERS(rb);
diff --git a/apps/plugins/oscilloscope.c b/apps/plugins/oscilloscope.c
index d576c81d88..eae1a7bc4c 100644
--- a/apps/plugins/oscilloscope.c
+++ b/apps/plugins/oscilloscope.c
@@ -183,14 +183,6 @@ PLUGIN_HEADER
183 183
184#elif CONFIG_KEYPAD == COWOND2_PAD 184#elif CONFIG_KEYPAD == COWOND2_PAD
185#define OSCILLOSCOPE_QUIT BUTTON_POWER 185#define OSCILLOSCOPE_QUIT BUTTON_POWER
186#define OSCILLOSCOPE_DRAWMODE_PRE (BUTTON_LEFT | BUTTON_MENU)
187#define OSCILLOSCOPE_DRAWMODE (BUTTON_RIGHT | BUTTON_MENU)
188#define OSCILLOSCOPE_ADVMODE (BUTTON_SELECT|BUTTON_MENU)
189#define OSCILLOSCOPE_ORIENTATION_PRE (BUTTON_UP | BUTTON_MENU)
190#define OSCILLOSCOPE_ORIENTATION (BUTTON_DOWN | BUTTON_MENU)
191#define OSCILLOSCOPE_PAUSE BUTTON_SELECT
192#define OSCILLOSCOPE_SPEED_UP BUTTON_UP
193#define OSCILLOSCOPE_SPEED_DOWN BUTTON_DOWN
194#define OSCILLOSCOPE_VOL_UP BUTTON_PLUS 186#define OSCILLOSCOPE_VOL_UP BUTTON_PLUS
195#define OSCILLOSCOPE_VOL_DOWN BUTTON_MINUS 187#define OSCILLOSCOPE_VOL_DOWN BUTTON_MINUS
196 188
@@ -198,6 +190,36 @@ PLUGIN_HEADER
198#error No keymap defined! 190#error No keymap defined!
199#endif 191#endif
200 192
193#ifdef HAVE_TOUCHPAD
194#ifndef OSCILLOSCOPE_QUIT
195#define OSCILLOSCOPE_QUIT BUTTON_TOPLEFT
196#endif
197#ifndef OSCILLOSCOPE_DRAWMODE
198#define OSCILLOSCOPE_DRAWMODE BUTTON_TOPMIDDLE
199#endif
200#ifndef OSCILLOSCOPE_ADVMODE
201#define OSCILLOSCOPE_ADVMODE BUTTON_BOTTOMMIDDLE
202#endif
203#ifndef OSCILLOSCOPE_ORIENTATION
204#define OSCILLOSCOPE_ORIENTATION BUTTON_BOTTOMLEFT
205#endif
206#ifndef OSCILLOSCOPE_PAUSE
207#define OSCILLOSCOPE_PAUSE BUTTON_CENTER
208#endif
209#ifndef OSCILLOSCOPE_SPEED_UP
210#define OSCILLOSCOPE_SPEED_UP BUTTON_MIDRIGHT
211#endif
212#ifndef OSCILLOSCOPE_SPEED_DOWN
213#define OSCILLOSCOPE_SPEED_DOWN BUTTON_MIDLEFT
214#endif
215#ifndef OSCILLOSCOPE_VOL_UP
216#define OSCILLOSCOPE_VOL_UP BUTTON_TOPRIGHT
217#endif
218#ifndef OSCILLOSCOPE_VOL_DOWN
219#define OSCILLOSCOPE_VOL_DOWN BUTTON_BOTTOMRIGHT
220#endif
221#endif
222
201/* colours */ 223/* colours */
202#if LCD_DEPTH > 1 224#if LCD_DEPTH > 1
203#ifdef HAVE_LCD_COLOR 225#ifdef HAVE_LCD_COLOR
diff --git a/apps/plugins/pacbox/pacbox.h b/apps/plugins/pacbox/pacbox.h
index d316b70e71..8350e4e939 100644
--- a/apps/plugins/pacbox/pacbox.h
+++ b/apps/plugins/pacbox/pacbox.h
@@ -132,15 +132,7 @@
132 132
133#elif CONFIG_KEYPAD == COWOND2_PAD 133#elif CONFIG_KEYPAD == COWOND2_PAD
134 134
135#define PACMAN_UP BUTTON_UP 135#define PACMAN_MENU (BUTTON_MENU|BUTTON_REL)
136#define PACMAN_DOWN BUTTON_DOWN
137#define PACMAN_LEFT BUTTON_LEFT
138#define PACMAN_RIGHT BUTTON_RIGHT
139#define PACMAN_1UP BUTTON_MINUS
140#define PACMAN_2UP BUTTON_PLUS
141#define PACMAN_COIN_PRE BUTTON_SELECT
142#define PACMAN_COIN (BUTTON_MENU | BUTTON_SELECT)
143#define PACMAN_MENU BUTTON_MENU
144 136
145#else 137#else
146 138
@@ -148,6 +140,33 @@
148 140
149#endif 141#endif
150 142
143#ifdef HAVE_TOUCHPAD
144#ifndef PACMAN_UP
145#define PACMAN_UP BUTTON_TOPMIDDLE
146#endif
147#ifndef PACMAN_DOWN
148#define PACMAN_DOWN BUTTON_BOTTOMMIDDLE
149#endif
150#ifndef PACMAN_LEFT
151#define PACMAN_LEFT BUTTON_MIDLEFT
152#endif
153#ifndef PACMAN_RIGHT
154#define PACMAN_RIGHT BUTTON_MIDRIGHT
155#endif
156#ifndef PACMAN_1UP
157#define PACMAN_1UP BUTTON_BOTTOMLEFT
158#endif
159#ifndef PACMAN_2UP
160#define PACMAN_2UP BUTTON_BOTTOMRIGHT
161#endif
162#ifndef PACMAN_COIN
163#define PACMAN_COIN BUTTON_CENTER
164#endif
165#ifndef PACMAN_MENU
166#define PACMAN_MENU (BUTTON_TOPLEFT|BUTTON_REL)
167#endif
168#endif
169
151#if (LCD_HEIGHT >= 288) 170#if (LCD_HEIGHT >= 288)
152#define XOFS ((LCD_WIDTH-224)/2) 171#define XOFS ((LCD_WIDTH-224)/2)
153#define YOFS ((LCD_HEIGHT-288)/2) 172#define YOFS ((LCD_HEIGHT-288)/2)
diff --git a/apps/plugins/pegbox.c b/apps/plugins/pegbox.c
index 45c830a5a0..e41c724da6 100644
--- a/apps/plugins/pegbox.c
+++ b/apps/plugins/pegbox.c
@@ -273,25 +273,58 @@ PLUGIN_HEADER
273#define LVL_DOWN_TEXT "VOL-" 273#define LVL_DOWN_TEXT "VOL-"
274 274
275#elif CONFIG_KEYPAD == COWOND2_PAD 275#elif CONFIG_KEYPAD == COWOND2_PAD
276#define PEGBOX_SAVE BUTTON_SELECT
277#define PEGBOX_QUIT BUTTON_POWER 276#define PEGBOX_QUIT BUTTON_POWER
278#define PEGBOX_RESTART BUTTON_MENU
279#define PEGBOX_LVL_UP BUTTON_PLUS
280#define PEGBOX_LVL_DOWN BUTTON_MINUS
281#define PEGBOX_UP BUTTON_UP
282#define PEGBOX_DOWN BUTTON_DOWN
283#define PEGBOX_RIGHT BUTTON_RIGHT
284#define PEGBOX_LEFT BUTTON_LEFT
285 277
286#define SAVE_TEXT "SELECT"
287#define QUIT_TEXT "POWER" 278#define QUIT_TEXT "POWER"
288#define RESTART_TEXT "MENU"
289#define LVL_UP_TEXT "PLUS"
290#define LVL_DOWN_TEXT "MINUS"
291#else 279#else
292#error Unsupported keymap! 280#error Unsupported keymap!
293#endif 281#endif
294 282
283#ifdef HAVE_TOUCHPAD
284#ifndef PEGBOX_QUIT
285#define PEGBOX_QUIT BUTTON_TOPLEFT
286#endif
287#ifndef PEGBOX_SAVE
288#define PEGBOX_SAVE BUTTON_CENTER
289#endif
290#ifndef PEGBOX_RESTART
291#define PEGBOX_RESTART BUTTON_TOPRIGHT
292#endif
293#ifndef PEGBOX_LVL_UP
294#define PEGBOX_LVL_UP BUTTON_BOTTOMLEFT
295#endif
296#ifndef PEGBOX_LVL_DOWN
297#define PEGBOX_LVL_DOWN BUTTON_BOTTOMRIGHT
298#endif
299#ifndef PEGBOX_UP
300#define PEGBOX_UP BUTTON_TOPMIDDLE
301#endif
302#ifndef PEGBOX_DOWN
303#define PEGBOX_DOWN BUTTON_BOTTOMMIDDLE
304#endif
305#ifndef PEGBOX_RIGHT
306#define PEGBOX_RIGHT BUTTON_MIDRIGHT
307#endif
308#ifndef PEGBOX_LEFT
309#define PEGBOX_LEFT BUTTON_MIDLEFT
310#endif
311#ifndef SAVE_TEXT
312#define SAVE_TEXT "CENTER"
313#endif
314#ifndef QUIT_TEXT
315#define QUIT_TEXT "TOPLEFT"
316#endif
317#ifndef RESTART_TEXT
318#define RESTART_TEXT "TOPRIGHT"
319#endif
320#ifndef LVL_UP_TEXT
321#define LVL_UP_TEXT "BOTTOMLEFT"
322#endif
323#ifndef LVL_DOWN_TEXT
324#define LVL_DOWN_TEXT "BOTTOMRIGHT"
325#endif
326#endif
327
295#if (LCD_WIDTH >= 320) && (LCD_HEIGHT >= 240) 328#if (LCD_WIDTH >= 320) && (LCD_HEIGHT >= 240)
296#define LEVEL_TEXT_X 59 329#define LEVEL_TEXT_X 59
297#define PEGS_TEXT_X 276 330#define PEGS_TEXT_X 276
diff --git a/apps/plugins/plasma.c b/apps/plugins/plasma.c
index f013cefb85..3090e1a2d0 100644
--- a/apps/plugins/plasma.c
+++ b/apps/plugins/plasma.c
@@ -99,13 +99,33 @@ static int plasma_frequency;
99 99
100#elif (CONFIG_KEYPAD == COWOND2_PAD) 100#elif (CONFIG_KEYPAD == COWOND2_PAD)
101#define PLASMA_QUIT BUTTON_POWER 101#define PLASMA_QUIT BUTTON_POWER
102#define PLASMA_INCREASE_FREQUENCY BUTTON_UP
103#define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN
104 102
105#else 103// the new button definitions should be placed here
106#define PLASMA_QUIT BUTTON_OFF 104#endif
105
106#ifdef HAVE_TOUCHPAD
107#ifndef PLASMA_QUIT
108#define PLASMA_QUIT BUTTON_TOPLEFT
109#endif
110#ifndef PLASMA_INCREASE_FREQUENCY
111#define PLASMA_INCREASE_FREQUENCY BUTTON_MIDRIGHT
112#endif
113#ifndef PLASMA_DECREASE_FREQUENCY
114#define PLASMA_DECREASE_FREQUENCY BUTTON_MIDLEFT
115#endif
116
117#endif
118
119// if no button definitions specified and no touchpad use default
120#ifndef PLASMA_QUIT
121#define PLASMA_QUIT BUTTON_OFF
122#endif
123#ifndef PLASMA_INCREASE_FREQUENCY
107#define PLASMA_INCREASE_FREQUENCY BUTTON_UP 124#define PLASMA_INCREASE_FREQUENCY BUTTON_UP
125#endif
126#ifndef PLASMA_DECREASE_FREQUENCY
108#define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN 127#define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN
128#endif
109 129
110#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD) 130#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD)
111#define PLASMA_RC_QUIT BUTTON_RC_STOP 131#define PLASMA_RC_QUIT BUTTON_RC_STOP
@@ -128,8 +148,10 @@ static int plasma_frequency;
128#define PLASMA_REGEN_COLORS BUTTON_SELECT 148#define PLASMA_REGEN_COLORS BUTTON_SELECT
129#elif CONFIG_KEYPAD == GIGABEAT_S_PAD 149#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
130#define PLASMA_REGEN_COLORS BUTTON_SELECT 150#define PLASMA_REGEN_COLORS BUTTON_SELECT
131#elif CONFIG_KEYPAD == COWOND2_PAD 151#endif
132#define PLASMA_REGEN_COLORS BUTTON_SELECT 152#ifdef HAVE_TOUCHPAD
153#ifndef PLASMA_REGEN_COLORS
154#define PLASMA_REGEN_COLORS BUTTON_CENTER
133#endif 155#endif
134#endif 156#endif
135 157
diff --git a/apps/plugins/pong.c b/apps/plugins/pong.c
index b1e53d3dcc..8163915fb6 100644
--- a/apps/plugins/pong.c
+++ b/apps/plugins/pong.c
@@ -148,15 +148,32 @@ PLUGIN_HEADER
148 148
149#elif (CONFIG_KEYPAD == COWOND2_PAD) 149#elif (CONFIG_KEYPAD == COWOND2_PAD)
150#define PONG_QUIT BUTTON_POWER 150#define PONG_QUIT BUTTON_POWER
151#define PONG_LEFT_UP BUTTON_UP
152#define PONG_LEFT_DOWN BUTTON_DOWN
153#define PONG_RIGHT_UP BUTTON_LEFT
154#define PONG_RIGHT_DOWN BUTTON_RIGHT
155 151
156#else 152#else
157#error No keymap defined! 153#error No keymap defined!
158#endif 154#endif
159 155
156#ifdef HAVE_TOUCHPAD
157#ifndef PONG_QUIT
158#define PONG_QUIT BUTTON_TOPMIDDLE
159#endif
160#ifndef PONG_LEFT_UP
161#define PONG_LEFT_UP BUTTON_TOPLEFT
162#endif
163#ifndef PONG_LEFT_DOWN
164#define PONG_LEFT_DOWN BUTTON_BOTTOMLEFT
165#endif
166#ifndef PONG_RIGHT_UP
167#define PONG_RIGHT_UP BUTTON_TOPRIGHT
168#endif
169#ifndef PONG_RIGHT_DOWN
170#define PONG_RIGHT_DOWN BUTTON_BOTTOMRIGHT
171#endif
172#ifndef PONG_PAUSE
173#define PONG_PAUSE BUTTON_CENTER
174#endif
175#endif
176
160static struct plugin_api* rb; 177static struct plugin_api* rb;
161 178
162struct pong { 179struct pong {
diff --git a/apps/plugins/reversi/reversi-gui.h b/apps/plugins/reversi/reversi-gui.h
index 185c2923ca..d1cea9c2bf 100644
--- a/apps/plugins/reversi/reversi-gui.h
+++ b/apps/plugins/reversi/reversi-gui.h
@@ -134,17 +134,35 @@
134 134
135#elif CONFIG_KEYPAD == COWOND2_PAD 135#elif CONFIG_KEYPAD == COWOND2_PAD
136#define REVERSI_QUIT BUTTON_POWER 136#define REVERSI_QUIT BUTTON_POWER
137#define REVERSI_BUTTON_UP BUTTON_UP
138#define REVERSI_BUTTON_DOWN BUTTON_DOWN
139#define REVERSI_BUTTON_LEFT BUTTON_LEFT
140#define REVERSI_BUTTON_RIGHT BUTTON_RIGHT
141#define REVERSI_BUTTON_MAKE_MOVE BUTTON_SELECT
142#define REVERSI_BUTTON_MENU BUTTON_MENU 137#define REVERSI_BUTTON_MENU BUTTON_MENU
143 138
144#else 139#else
145#error No keymap defined! 140#error No keymap defined!
146#endif 141#endif
147 142
143#ifdef HAVE_TOUCHPAD
144#ifndef REVERSI_QUIT
145#define REVERSI_QUIT BUTTON_TOPLEFT
146#endif
147#ifndef REVERSI_BUTTON_UP
148#define REVERSI_BUTTON_UP BUTTON_TOPMIDDLE
149#endif
150#ifndef REVERSI_BUTTON_DOWN
151#define REVERSI_BUTTON_DOWN BUTTON_BOTTOMMIDDLE
152#endif
153#ifndef REVERSI_BUTTON_LEFT
154#define REVERSI_BUTTON_LEFT BUTTON_MIDLEFT
155#endif
156#ifndef REVERSI_BUTTON_RIGHT
157#define REVERSI_BUTTON_RIGHT BUTTON_MIDRIGHT
158#endif
159#ifndef REVERSI_BUTTON_MAKE_MOVE
160#define REVERSI_BUTTON_MAKE_MOVE BUTTON_CENTER
161#endif
162#ifndef REVERSI_BUTTON_MENU
163#define REVERSI_BUTTON_MENU BUTTON_TOPRIGHT
164#endif
165#endif
148 166
149/* Modes for the cursor behaviour at the board edges */ 167/* Modes for the cursor behaviour at the board edges */
150typedef enum _cursor_wrap_mode_t { 168typedef enum _cursor_wrap_mode_t {
diff --git a/apps/plugins/rockblox.c b/apps/plugins/rockblox.c
index 82fb758dee..42efa6f308 100644
--- a/apps/plugins/rockblox.c
+++ b/apps/plugins/rockblox.c
@@ -213,18 +213,39 @@ PLUGIN_HEADER
213 213
214#elif CONFIG_KEYPAD == COWOND2_PAD 214#elif CONFIG_KEYPAD == COWOND2_PAD
215#define ROCKBLOX_OFF BUTTON_POWER 215#define ROCKBLOX_OFF BUTTON_POWER
216#define ROCKBLOX_ROTATE_RIGHT BUTTON_PLUS
217#define ROCKBLOX_ROTATE_LEFT BUTTON_MINUS
218#define ROCKBLOX_DOWN BUTTON_DOWN
219#define ROCKBLOX_LEFT BUTTON_LEFT
220#define ROCKBLOX_RIGHT BUTTON_RIGHT
221#define ROCKBLOX_DROP BUTTON_SELECT
222#define ROCKBLOX_RESTART BUTTON_MENU 216#define ROCKBLOX_RESTART BUTTON_MENU
223 217
224#else 218#else
225#error No keymap defined! 219#error No keymap defined!
226#endif 220#endif
227 221
222#ifdef HAVE_TOUCHPAD
223#ifndef ROCKBLOX_OFF
224#define ROCKBLOX_OFF BUTTON_TOPLEFT
225#endif
226#ifndef ROCKBLOX_ROTATE_RIGHT
227#define ROCKBLOX_ROTATE_RIGHT BUTTON_BOTTOMRIGHT
228#endif
229#ifndef ROCKBLOX_ROTATE_LEFT
230#define ROCKBLOX_ROTATE_LEFT BUTTON_BOTTOMLEFT
231#endif
232#ifndef ROCKBLOX_DOWN
233#define ROCKBLOX_DOWN BUTTON_BOTTOMMIDDLE
234#endif
235#ifndef ROCKBLOX_LEFT
236#define ROCKBLOX_LEFT BUTTON_MIDLEFT
237#endif
238#ifndef ROCKBLOX_RIGHT
239#define ROCKBLOX_RIGHT BUTTON_MIDRIGHT
240#endif
241#ifndef ROCKBLOX_DROP
242#define ROCKBLOX_DROP BUTTON_CENTER
243#endif
244#ifndef ROCKBLOX_RESTART
245#define ROCKBLOX_RESTART BUTTON_TOPRIGHT
246#endif
247#endif
248
228#define BLOCKS_NUM 7 249#define BLOCKS_NUM 7
229#define EMPTY_BLOCK 7 250#define EMPTY_BLOCK 7
230 251
diff --git a/apps/plugins/rockboy/rockboy.c b/apps/plugins/rockboy/rockboy.c
index 2583fa3376..44a1aecd69 100644
--- a/apps/plugins/rockboy/rockboy.c
+++ b/apps/plugins/rockboy/rockboy.c
@@ -84,8 +84,13 @@ static void setoptions (void)
84 fd = open(optionsave, O_RDONLY); 84 fd = open(optionsave, O_RDONLY);
85 if(fd < 0) /* no options to read, set defaults */ 85 if(fd < 0) /* no options to read, set defaults */
86 { 86 {
87#ifdef HAVE_TOUCHPAD
88 options.LEFT=BUTTON_MIDLEFT;
89 options.RIGHT=BUTTON_MIDRIGHT;
90#else
87 options.LEFT=BUTTON_LEFT; 91 options.LEFT=BUTTON_LEFT;
88 options.RIGHT=BUTTON_RIGHT; 92 options.RIGHT=BUTTON_RIGHT;
93#endif
89 94
90#if CONFIG_KEYPAD == IRIVER_H100_PAD 95#if CONFIG_KEYPAD == IRIVER_H100_PAD
91 options.UP=BUTTON_UP; 96 options.UP=BUTTON_UP;
@@ -198,18 +203,22 @@ static void setoptions (void)
198 options.SELECT=BUTTON_RC_MODE; 203 options.SELECT=BUTTON_RC_MODE;
199 options.MENU=BUTTON_POWER; 204 options.MENU=BUTTON_POWER;
200#elif CONFIG_KEYPAD == COWOND2_PAD 205#elif CONFIG_KEYPAD == COWOND2_PAD
201 options.UP=BUTTON_UP;
202 options.DOWN=BUTTON_DOWN;
203 206
204 options.A=BUTTON_LEFT;
205 options.B=BUTTON_RIGHT;
206 options.START=BUTTON_PLUS;
207 options.SELECT=BUTTON_SELECT;
208 options.MENU=BUTTON_MENU;
209#else 207#else
210#error No Keymap Defined! 208#error No Keymap Defined!
211#endif 209#endif
212 210
211#ifdef HAVE_TOUCHPAD
212 options.UP=BUTTON_TOPMIDDLE;
213 options.DOWN=BUTTON_BOTTOMMIDDLE;
214
215 options.A=BUTTON_MIDLEFT;
216 options.B=BUTTON_MIDRIGHT;
217 options.START=BUTTON_TOPRIGHT;
218 options.SELECT=BUTTON_CENTER;
219 options.MENU=BUTTON_TOPLEFT;
220#endif
221
213 options.maxskip=4; 222 options.maxskip=4;
214 options.fps=0; 223 options.fps=0;
215 options.showstats=0; 224 options.showstats=0;
diff --git a/apps/plugins/rockpaint.c b/apps/plugins/rockpaint.c
index 7e4aefddf2..433ebd289c 100644
--- a/apps/plugins/rockpaint.c
+++ b/apps/plugins/rockpaint.c
@@ -118,19 +118,42 @@ PLUGIN_HEADER
118 118
119#elif ( CONFIG_KEYPAD == COWOND2_PAD ) 119#elif ( CONFIG_KEYPAD == COWOND2_PAD )
120#define ROCKPAINT_QUIT BUTTON_POWER 120#define ROCKPAINT_QUIT BUTTON_POWER
121#define ROCKPAINT_DRAW BUTTON_SELECT
122#define ROCKPAINT_MENU BUTTON_MENU 121#define ROCKPAINT_MENU BUTTON_MENU
123#define ROCKPAINT_TOOLBAR BUTTON_PLUS
124#define ROCKPAINT_TOOLBAR2 BUTTON_MINUS
125#define ROCKPAINT_UP BUTTON_UP
126#define ROCKPAINT_DOWN BUTTON_DOWN
127#define ROCKPAINT_LEFT BUTTON_LEFT
128#define ROCKPAINT_RIGHT BUTTON_RIGHT
129 122
130#else 123#else
131#error "Please define keys for this keypad" 124#error "Please define keys for this keypad"
132#endif 125#endif
133 126
127#ifdef HAVE_TOUCHPAD
128#ifndef ROCKPAINT_QUIT
129#define ROCKPAINT_QUIT BUTTON_TOPLEFT
130#endif
131#ifndef ROCKPAINT_DRAW
132#define ROCKPAINT_DRAW BUTTON_CENTER
133#endif
134#ifndef ROCKPAINT_MENU
135#define ROCKPAINT_MENU BUTTON_TOPRIGHT
136#endif
137#ifndef ROCKPAINT_TOOLBAR
138#define ROCKPAINT_TOOLBAR BUTTON_BOTTOMLEFT
139#endif
140#ifndef ROCKPAINT_TOOLBAR2
141#define ROCKPAINT_TOOLBAR2 BUTTON_BOTTOMRIGHT
142#endif
143#ifndef ROCKPAINT_UP
144#define ROCKPAINT_UP BUTTON_TOPMIDDLE
145#endif
146#ifndef ROCKPAINT_DOWN
147#define ROCKPAINT_DOWN BUTTON_BOTTOMMIDDLE
148#endif
149#ifndef ROCKPAINT_LEFT
150#define ROCKPAINT_LEFT BUTTON_MIDLEFT
151#endif
152#ifndef ROCKPAINT_RIGHT
153#define ROCKPAINT_RIGHT BUTTON_MIDRIGHT
154#endif
155#endif
156
134/*********************************************************************** 157/***********************************************************************
135 * Palette Default Colors 158 * Palette Default Colors
136 ***********************************************************************/ 159 ***********************************************************************/
diff --git a/apps/plugins/sliding_puzzle.c b/apps/plugins/sliding_puzzle.c
index 1510c0b417..1e99a7adaf 100644
--- a/apps/plugins/sliding_puzzle.c
+++ b/apps/plugins/sliding_puzzle.c
@@ -140,17 +140,44 @@ PLUGIN_HEADER
140 140
141#elif (CONFIG_KEYPAD == COWOND2_PAD) 141#elif (CONFIG_KEYPAD == COWOND2_PAD)
142#define PUZZLE_QUIT BUTTON_POWER 142#define PUZZLE_QUIT BUTTON_POWER
143#define PUZZLE_LEFT BUTTON_LEFT 143#define PUZZLE_QUIT_TEXT "[POWER]"
144#define PUZZLE_RIGHT BUTTON_RIGHT
145#define PUZZLE_UP BUTTON_UP
146#define PUZZLE_DOWN BUTTON_DOWN
147#define PUZZLE_SHUFFLE BUTTON_MENU
148#define PUZZLE_PICTURE BUTTON_SELECT
149 144
150#else 145#else
151#error No keymap defined! 146#error No keymap defined!
152#endif 147#endif
153 148
149#ifdef HAVE_TOUCHPAD
150#ifndef PUZZLE_QUIT
151#define PUZZLE_QUIT BUTTON_TOPLEFT
152#endif
153#ifndef PUZZLE_LEFT
154#define PUZZLE_LEFT BUTTON_MIDLEFT
155#endif
156#ifndef PUZZLE_RIGHT
157#define PUZZLE_RIGHT BUTTON_MIDRIGHT
158#endif
159#ifndef PUZZLE_UP
160#define PUZZLE_UP BUTTON_TOPMIDDLE
161#endif
162#ifndef PUZZLE_DOWN
163#define PUZZLE_DOWN BUTTON_BOTTOMMIDDLE
164#endif
165#ifndef PUZZLE_SHUFFLE
166#define PUZZLE_SHUFFLE BUTTON_BOTTOMLEFT
167#endif
168#ifndef PUZZLE_PICTURE
169#define PUZZLE_PICTURE BUTTON_CENTER
170#endif
171#ifndef PUZZLE_QUIT_TEXT
172#define PUZZLE_QUIT_TEXT "[TOPLEFT]"
173#endif
174#ifndef PUZZLE_SHUFFLE_TEXT
175#define PUZZLE_SHUFFLE_TEXT "[BOTTOMLEFT]"
176#endif
177#ifndef PUZZLE_PICTURE_TEXT
178#define PUZZLE_PICTURE_TEXT "[CENTER]"
179#endif
180#endif
154 181
155#include "sliding_puzzle.h" 182#include "sliding_puzzle.h"
156#define IMAGE_WIDTH BMPWIDTH_sliding_puzzle 183#define IMAGE_WIDTH BMPWIDTH_sliding_puzzle
@@ -647,6 +674,11 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
647 rb->lcd_putsxy(0, 28, "[MODE] shuffle"); 674 rb->lcd_putsxy(0, 28, "[MODE] shuffle");
648 rb->lcd_putsxy(0, 38, "[MENU] change pic"); 675 rb->lcd_putsxy(0, 38, "[MENU] change pic");
649#endif 676#endif
677#ifdef HAVE_TOUCHPAD
678 rb->lcd_putsxy(0, 18, PUZZLE_QUIT_TEXT " to stop");
679 rb->lcd_putsxy(0, 28, PUZZLE_SHUFFLE_TEXT " shuffle");
680 rb->lcd_putsxy(0, 38, PUZZLE_PICTURE_TEXT " change pic");
681#endif
650#ifdef HAVE_ALBUMART 682#ifdef HAVE_ALBUMART
651 rb->lcd_putsxy(0,48," pic->albumart->num"); 683 rb->lcd_putsxy(0,48," pic->albumart->num");
652#else 684#else
diff --git a/apps/plugins/snake.c b/apps/plugins/snake.c
index fffb70c2bc..6203a07a23 100644
--- a/apps/plugins/snake.c
+++ b/apps/plugins/snake.c
@@ -142,16 +142,32 @@ PLUGIN_HEADER
142 142
143#elif (CONFIG_KEYPAD == COWOND2_PAD) 143#elif (CONFIG_KEYPAD == COWOND2_PAD)
144#define SNAKE_QUIT BUTTON_POWER 144#define SNAKE_QUIT BUTTON_POWER
145#define SNAKE_LEFT BUTTON_LEFT
146#define SNAKE_RIGHT BUTTON_RIGHT
147#define SNAKE_UP BUTTON_UP
148#define SNAKE_DOWN BUTTON_DOWN
149#define SNAKE_PLAYPAUSE BUTTON_MENU
150 145
151#else 146#else
152#error No keymap defined! 147#error No keymap defined!
153#endif 148#endif
154 149
150#ifdef HAVE_TOUCHPAD
151#ifndef SNAKE_QUIT
152#define SNAKE_QUIT BUTTON_TOPLEFT
153#endif
154#ifndef SNAKE_LEFT
155#define SNAKE_LEFT BUTTON_MIDLEFT
156#endif
157#ifndef SNAKE_RIGHT
158#define SNAKE_RIGHT BUTTON_MIDRIGHT
159#endif
160#ifndef SNAKE_UP
161#define SNAKE_UP BUTTON_TOPMIDDLE
162#endif
163#ifndef SNAKE_DOWN
164#define SNAKE_DOWN BUTTON_BOTTOMMIDDLE
165#endif
166#ifndef SNAKE_PLAYPAUSE
167#define SNAKE_PLAYPAUSE BUTTON_CENTER
168#endif
169#endif
170
155#define BOARD_WIDTH (LCD_WIDTH/4) 171#define BOARD_WIDTH (LCD_WIDTH/4)
156#define BOARD_HEIGHT (LCD_HEIGHT/4) 172#define BOARD_HEIGHT (LCD_HEIGHT/4)
157 173
diff --git a/apps/plugins/snake2.c b/apps/plugins/snake2.c
index 0c2b88868c..0452294195 100644
--- a/apps/plugins/snake2.c
+++ b/apps/plugins/snake2.c
@@ -289,23 +289,51 @@ PLUGIN_HEADER
289#define SNAKE2_PLAYPAUSE_TEXT "Play" 289#define SNAKE2_PLAYPAUSE_TEXT "Play"
290 290
291#elif (CONFIG_KEYPAD == COWOND2_PAD) 291#elif (CONFIG_KEYPAD == COWOND2_PAD)
292#define SNAKE2_LEFT BUTTON_LEFT
293#define SNAKE2_RIGHT BUTTON_RIGHT
294#define SNAKE2_UP BUTTON_UP
295#define SNAKE2_DOWN BUTTON_DOWN
296#define SNAKE2_QUIT BUTTON_POWER 292#define SNAKE2_QUIT BUTTON_POWER
297#define SNAKE2_LEVEL_UP BUTTON_UP
298#define SNAKE2_LEVEL_DOWN BUTTON_DOWN
299#define SNAKE2_MAZE_NEXT BUTTON_RIGHT
300#define SNAKE2_MAZE_LAST BUTTON_LEFT
301#define SNAKE2_SELECT_TYPE BUTTON_MENU
302#define SNAKE2_PLAYPAUSE BUTTON_SELECT
303#define SNAKE2_PLAYPAUSE_TEXT "Select"
304 293
305#else 294#else
306#error No keymap defined! 295#error No keymap defined!
307#endif 296#endif
308 297
298#ifdef HAVE_TOUCHPAD
299#ifndef SNAKE2_LEFT
300#define SNAKE2_LEFT BUTTON_MIDLEFT
301#endif
302#ifndef SNAKE2_RIGHT
303#define SNAKE2_RIGHT BUTTON_MIDRIGHT
304#endif
305#ifndef SNAKE2_UP
306#define SNAKE2_UP BUTTON_TOPMIDDLE
307#endif
308#ifndef SNAKE2_DOWN
309#define SNAKE2_DOWN BUTTON_BOTTOMMIDDLE
310#endif
311#ifndef SNAKE2_QUIT
312#define SNAKE2_QUIT BUTTON_TOPLEFT
313#endif
314#ifndef SNAKE2_LEVEL_UP
315#define SNAKE2_LEVEL_UP BUTTON_TOPRIGHT
316#endif
317#ifndef SNAKE2_LEVEL_DOWN
318#define SNAKE2_LEVEL_DOWN BUTTON_TOPLEFT
319#endif
320#ifndef SNAKE2_MAZE_NEXT
321#define SNAKE2_MAZE_NEXT BUTTON_TOPMIDDLE
322#endif
323#ifndef SNAKE2_MAZE_LAST
324#define SNAKE2_MAZE_LAST BUTTON_BOTTOMMIDDLE
325#endif
326#ifndef SNAKE2_SELECT_TYPE
327#define SNAKE2_SELECT_TYPE BUTTON_BOTTOMLEFT
328#endif
329#ifndef SNAKE2_PLAYPAUSE
330#define SNAKE2_PLAYPAUSE BUTTON_CENTER
331#endif
332#ifndef SNAKE2_PLAYPAUSE_TEXT
333#define SNAKE2_PLAYPAUSE_TEXT "CENTER"
334#endif
335#endif
336
309static int max_levels = 0; 337static int max_levels = 0;
310static char (*level_cache)[HEIGHT][WIDTH]; 338static char (*level_cache)[HEIGHT][WIDTH];
311 339
diff --git a/apps/plugins/sokoban.c b/apps/plugins/sokoban.c
index c8a6ba7c92..2b12a3da58 100644
--- a/apps/plugins/sokoban.c
+++ b/apps/plugins/sokoban.c
@@ -278,25 +278,52 @@ extern const fb_data sokoban_tiles[];
278#define SOKOBAN_RC_MENU BUTTON_REC 278#define SOKOBAN_RC_MENU BUTTON_REC
279 279
280#elif CONFIG_KEYPAD == COWOND2_PAD 280#elif CONFIG_KEYPAD == COWOND2_PAD
281#define SOKOBAN_LEFT BUTTON_LEFT
282#define SOKOBAN_RIGHT BUTTON_RIGHT
283#define SOKOBAN_UP BUTTON_UP
284#define SOKOBAN_DOWN BUTTON_DOWN
285#define SOKOBAN_MENU BUTTON_MENU 281#define SOKOBAN_MENU BUTTON_MENU
286#define SOKOBAN_UNDO_PRE BUTTON_PLUS 282#define SOKOBAN_MENU_NAME "[MENU]"
287#define SOKOBAN_UNDO (BUTTON_LEFT|BUTTON_MENU)
288#define SOKOBAN_REDO (BUTTON_RIGHT | BUTTON_MENU)
289#define SOKOBAN_LEVEL_DOWN (BUTTON_MENU | BUTTON_DOWN)
290#define SOKOBAN_LEVEL_UP (BUTTON_MENU | BUTTON_UP)
291#define SOKOBAN_LEVEL_REPEAT (BUTTON_SELECT|BUTTON_MENU)
292#define SOKOBAN_PAUSE BUTTON_SELECT
293#define BUTTON_SAVE BUTTON_SELECT
294#define BUTTON_SAVE_NAME "SELECT"
295 283
296#else 284#else
297#error No keymap defined! 285#error No keymap defined!
298#endif 286#endif
299 287
288#ifdef HAVE_TOUCHPAD
289#ifndef SOKOBAN_LEFT
290#define SOKOBAN_LEFT BUTTON_MIDLEFT
291#endif
292#ifndef SOKOBAN_RIGHT
293#define SOKOBAN_RIGHT BUTTON_MIDRIGHT
294#endif
295#ifndef SOKOBAN_UP
296#define SOKOBAN_UP BUTTON_TOPMIDDLE
297#endif
298#ifndef SOKOBAN_DOWN
299#define SOKOBAN_DOWN BUTTON_BOTTOMMIDDLE
300#endif
301#ifndef SOKOBAN_MENU
302#define SOKOBAN_MENU BUTTON_TOPLEFT
303#define SOKOBAN_MENU_NAME "[TOPLEFT]"
304#endif
305#ifndef SOKOBAN_UNDO
306#define SOKOBAN_UNDO BUTTON_BOTTOMRIGHT
307#define SOKOBAN_UNDO_NAME "[BOTTOMRIGHT]"
308#endif
309#ifndef SOKOBAN_REDO
310#define SOKOBAN_REDO BUTTON_BOTTOMLEFT
311#define SOKOBAN_REDO_NAME "[BOTTOMLEFT]"
312#endif
313#ifndef SOKOBAN_PAUSE
314#define SOKOBAN_PAUSE BUTTON_CENTER
315#define SOKOBAN_PAUSE_NAME "[CENTER]"
316#endif
317#ifndef SOKOBAN_LEVEL_REPEAT
318#define SOKOBAN_LEVEL_REPEAT BUTTON_TOPRIGHT
319#define SOKOBAN_LEVEL_REPEAT_NAME "[TOPRIGHT]"
320#endif
321#ifndef BUTTON_SAVE
322#define BUTTON_SAVE BUTTON_CENTER
323#define BUTTON_SAVE_NAME "CENTER"
324#endif
325#endif
326
300#define SOKOBAN_FONT FONT_SYSFIXED 327#define SOKOBAN_FONT FONT_SYSFIXED
301 328
302 329
@@ -1261,6 +1288,14 @@ static int sokoban_menu(void)
1261 rb->lcd_putsxy(3, 56, "[SELECT+UP] Next Level"); 1288 rb->lcd_putsxy(3, 56, "[SELECT+UP] Next Level");
1262#endif 1289#endif
1263 1290
1291#ifdef HAVE_TOUCHPAD
1292 rb->lcd_putsxy(3, 6, SOKOBAN_MENU_NAME " Menu");
1293 rb->lcd_putsxy(3, 16, SOKOBAN_UNDO_NAME " Undo");
1294 rb->lcd_putsxy(3, 26, SOKOBAN_REDO_NAME " Redo");
1295 rb->lcd_putsxy(3, 36, SOKOBAN_PAUSE_NAME " Pause");
1296 rb->lcd_putsxy(3, 46, SOKOBAN_LEVEL_REPEAT_NAME " Restart Level");
1297#endif
1298
1264 FOR_NB_SCREENS(i) 1299 FOR_NB_SCREENS(i)
1265 rb->screens[i]->update(); 1300 rb->screens[i]->update();
1266 1301
diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c
index 40f9a241ea..0907054a1c 100644
--- a/apps/plugins/solitaire.c
+++ b/apps/plugins/solitaire.c
@@ -300,29 +300,50 @@ static struct plugin_api* rb;
300 300
301#elif (CONFIG_KEYPAD == COWOND2_PAD) 301#elif (CONFIG_KEYPAD == COWOND2_PAD)
302# define SOL_QUIT BUTTON_POWER 302# define SOL_QUIT BUTTON_POWER
303# define SOL_UP BUTTON_UP
304# define SOL_DOWN BUTTON_DOWN
305# define SOL_LEFT_PRE BUTTON_LEFT
306# define SOL_LEFT (BUTTON_LEFT | BUTTON_REL)
307# define SOL_RIGHT_PRE BUTTON_RIGHT
308# define SOL_RIGHT (BUTTON_RIGHT | BUTTON_REL)
309# define SOL_MOVE BUTTON_SELECT
310# define SOL_DRAW_PRE BUTTON_LEFT
311# define SOL_DRAW (BUTTON_LEFT | BUTTON_MENU)
312# define SOL_REM2CUR BUTTON_PLUS
313# define SOL_CUR2STACK BUTTON_MINUS
314# define SOL_REM2STACK_PRE BUTTON_RIGHT
315# define SOL_REM2STACK (BUTTON_RIGHT | BUTTON_MENU)
316# define HK_MOVE "PLAY"
317# define HK_DRAW "LEFT.."
318# define HK_REM2CUR "FF"
319# define HK_CUR2STACK "REW"
320# define HK_REM2STACK "RIGHT.."
321 303
322#else 304#else
323#error No keymap defined! 305#error No keymap defined!
324#endif 306#endif
325 307
308#ifdef HAVE_TOUCHPAD
309//#ifndef SOL_QUIT
310//# define SOL_QUIT BUTTON_TOPLEFT
311//endif
312#ifndef SOL_UP
313# define SOL_UP BUTTON_TOPMIDDLE
314#endif
315#ifndef SOL_DOWN
316# define SOL_DOWN BUTTON_BOTTOMMIDDLE
317#endif
318#ifndef SOL_LEFT
319# define SOL_LEFT BUTTON_MIDLEFT
320#endif
321#ifndef SOL_RIGHT
322# define SOL_RIGHT BUTTON_MIDRIGHT
323#endif
324#ifndef SOL_MOVE
325# define SOL_MOVE BUTTON_CENTER
326# define HK_MOVE "CENTRE"
327#endif
328#ifndef SOL_DRAW
329# define SOL_DRAW BUTTON_TOPLEFT
330# define HK_DRAW "TOPLEFT"
331#endif
332#ifndef SOL_REM2CUR
333# define SOL_REM2CUR BUTTON_TOPRIGHT
334# define HK_REM2CUR "TOPRIGHT"
335#endif
336#ifndef SOL_CUR2STACK
337# define SOL_CUR2STACK BUTTON_BOTTOMLEFT
338# define HK_CUR2STACK "BOTTOMLEFT"
339#endif
340#ifndef SOL_REM2STACK
341# define SOL_REM2STACK BUTTON_BOTTOMRIGHT
342# define HK_REM2STACK "BOTTOMRIGHT"
343#endif
344
345#endif
346
326#ifndef HK_LR 347#ifndef HK_LR
327# define HK_LR "LEFT/RIGHT" 348# define HK_LR "LEFT/RIGHT"
328#endif 349#endif
diff --git a/apps/plugins/spacerocks.c b/apps/plugins/spacerocks.c
index b47aba329a..bfddb453dc 100644
--- a/apps/plugins/spacerocks.c
+++ b/apps/plugins/spacerocks.c
@@ -201,22 +201,48 @@ static struct plugin_api* rb; /* global api struct pointer */
201#define AST_FIRE_REP (BUTTON_RC_MODE | BUTTON_REPEAT) 201#define AST_FIRE_REP (BUTTON_RC_MODE | BUTTON_REPEAT)
202 202
203#elif (CONFIG_KEYPAD == COWOND2_PAD) 203#elif (CONFIG_KEYPAD == COWOND2_PAD)
204#define AST_PAUSE BUTTON_SELECT
205#define AST_QUIT BUTTON_POWER 204#define AST_QUIT BUTTON_POWER
206#define AST_THRUST_REP BUTTON_UP | BUTTON_MENU
207#define AST_THRUST BUTTON_UP
208#define AST_HYPERSPACE BUTTON_DOWN
209#define AST_LEFT BUTTON_LEFT
210#define AST_LEFT_REP BUTTON_LEFT | BUTTON_MENU
211#define AST_RIGHT BUTTON_RIGHT
212#define AST_RIGHT_REP (BUTTON_RIGHT | BUTTON_MENU)
213#define AST_FIRE BUTTON_PLUS
214#define AST_FIRE_REP BUTTON_PLUS | BUTTON_MENU
215 205
216#else 206#else
217#error No keymap defined! 207#error No keymap defined!
218#endif 208#endif
219 209
210#ifdef HAVE_TOUCHPAD
211#ifndef AST_PAUSE
212#define AST_PAUSE BUTTON_CENTER
213#endif
214#ifndef AST_QUIT
215#define AST_QUIT BUTTON_TOPLEFT
216#endif
217#ifndef AST_THRUST_REP
218#define AST_THRUST_REP (BUTTON_TOPMIDDLE | BUTTON_REPEAT)
219#endif
220#ifndef AST_THRUST
221#define AST_THRUST BUTTON_TOPMIDDLE
222#endif
223#ifndef AST_HYPERSPACE
224#define AST_HYPERSPACE BUTTON_TOPRIGHT
225#endif
226#ifndef AST_LEFT
227#define AST_LEFT BUTTON_MIDLEFT
228#endif
229#ifndef AST_LEFT_REP
230#define AST_LEFT_REP (BUTTON_MIDLEFT | BUTTON_REPEAT)
231#endif
232#ifndef AST_RIGHT
233#define AST_RIGHT BUTTON_MIDRIGHT
234#endif
235#ifndef AST_RIGHT_REP
236#define AST_RIGHT_REP (BUTTON_MIDRIGHT | BUTTON_REPEAT)
237#endif
238#ifndef AST_FIRE
239#define AST_FIRE BUTTON_BOTTOMMIDDLE
240#endif
241#ifndef AST_FIRE_REP
242#define AST_FIRE_REP (BUTTON_BOTTOMMIDDLE | BUTTON_MENU)
243#endif
244#endif
245
220#define ABS(x) ((x)>0?(x):-(x)) 246#define ABS(x) ((x)>0?(x):-(x))
221 247
222#define RES MAX(LCD_WIDTH, LCD_HEIGHT) 248#define RES MAX(LCD_WIDTH, LCD_HEIGHT)
diff --git a/apps/plugins/star.c b/apps/plugins/star.c
index c2546d2385..46780f9ea7 100644
--- a/apps/plugins/star.c
+++ b/apps/plugins/star.c
@@ -228,20 +228,51 @@ PLUGIN_HEADER
228#elif (CONFIG_KEYPAD == COWOND2_PAD) 228#elif (CONFIG_KEYPAD == COWOND2_PAD)
229 229
230#define STAR_QUIT BUTTON_POWER 230#define STAR_QUIT BUTTON_POWER
231#define STAR_LEFT BUTTON_LEFT 231#define STAR_QUIT_NAME "[POWER]"
232#define STAR_RIGHT BUTTON_RIGHT
233#define STAR_UP BUTTON_UP
234#define STAR_DOWN BUTTON_DOWN
235#define STAR_TOGGLE_CONTROL BUTTON_SELECT
236#define STAR_LEVEL_UP BUTTON_PLUS
237#define STAR_LEVEL_DOWN BUTTON_MINUS
238#define STAR_LEVEL_REPEAT (BUTTON_SELECT | BUTTON_MENU)
239#define STAR_MENU_RUN BUTTON_MENU 232#define STAR_MENU_RUN BUTTON_MENU
240 233
241#else 234#else
242#error No keymap defined! 235#error No keymap defined!
243#endif 236#endif
244 237
238#ifdef HAVE_TOUCHPAD
239//#ifndef STAR_QUIT
240//#define STAR_QUIT BUTTON_TOPLEFT
241//#define STAR_QUIT_NAME "[TOPLEFT]"
242//#endif
243#ifndef STAR_MENU_RUN
244#define STAR_MENU_RUN BUTTON_TOPRIGHT
245#endif
246#ifndef STAR_LEFT
247#define STAR_LEFT BUTTON_MIDLEFT
248#endif
249#ifndef STAR_RIGHT
250#define STAR_RIGHT BUTTON_MIDRIGHT
251#endif
252#ifndef STAR_UP
253#define STAR_UP BUTTON_TOPMIDDLE
254#endif
255#ifndef STAR_DOWN
256#define STAR_DOWN BUTTON_BOTTOMMIDDLE
257#endif
258#ifndef STAR_TOGGLE_CONTROL
259#define STAR_TOGGLE_CONTROL BUTTON_CENTER
260#define STAR_TOGGLE_CONTROL_NAME "[CENTER]"
261#endif
262#ifndef STAR_LEVEL_UP
263#define STAR_LEVEL_UP BUTTON_TOPLEFT
264#define STAR_LEVEL_UP_NAME "[TOPLEFT]"
265#endif
266#ifndef STAR_LEVEL_DOWN
267#define STAR_LEVEL_DOWN BUTTON_BOTTOMLEFT
268#define STAR_LEVEL_DOWN_NAME "[BOTTOMLEFT]"
269#endif
270#ifndef STAR_LEVEL_REPEAT
271#define STAR_LEVEL_REPEAT BUTTON_BOTTOMRIGHT
272#define STAR_LEVEL_REPEAT_NAME "[BOTTOMRIGHT]"
273#endif
274#endif
275
245/* function returns because of USB? */ 276/* function returns because of USB? */
246static bool usb_detected = false; 277static bool usb_detected = false;
247 278
@@ -1041,6 +1072,14 @@ static int star_menu(void)
1041 "[PLAY+RIGHT] Reset level\n" 1072 "[PLAY+RIGHT] Reset level\n"
1042 "[PLAY+UP] Next level", true); 1073 "[PLAY+UP] Next level", true);
1043#endif 1074#endif
1075#ifdef HAVE_TOUCHPAD
1076 star_display_text("KEYS\n\n"
1077 STAR_TOGGLE_CONTROL_NAME " Toggle Control\n"
1078 STAR_QUIT_NAME " Exit\n"
1079 STAR_LEVEL_DOWN_NAME " Prev. level\n"
1080 STAR_LEVEL_REPEAT_NAME " Reset level\n"
1081 STAR_LEVEL_UP_NAME " Next level", true);
1082#endif
1044 break; 1083 break;
1045 default: 1084 default:
1046 menu_quit = true; 1085 menu_quit = true;
diff --git a/apps/plugins/starfield.c b/apps/plugins/starfield.c
index 4f2c8b1bbe..754af24f8c 100644
--- a/apps/plugins/starfield.c
+++ b/apps/plugins/starfield.c
@@ -88,28 +88,56 @@ static struct plugin_api* rb; /* global api struct pointer */
88#define STARFIELD_TOGGLE_COLOR BUTTON_RC_MODE 88#define STARFIELD_TOGGLE_COLOR BUTTON_RC_MODE
89#elif (CONFIG_KEYPAD == COWOND2_PAD) 89#elif (CONFIG_KEYPAD == COWOND2_PAD)
90#define STARFIELD_QUIT BUTTON_POWER 90#define STARFIELD_QUIT BUTTON_POWER
91#define STARFIELD_INCREASE_ZMOVE BUTTON_UP 91#endif
92#define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN
93#define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT
94#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT
95#define STARFIELD_TOGGLE_COLOR BUTTON_MENU
96 92
97#else 93#ifdef HAVE_TOUCHPAD
94#ifndef STARFIELD_QUIT
95#define STARFIELD_QUIT BUTTON_TOPLEFT
96#endif
97#ifndef STARFIELD_INCREASE_ZMOVE
98#define STARFIELD_INCREASE_ZMOVE BUTTON_TOPMIDDLE
99#endif
100#ifndef STARFIELD_DECREASE_ZMOVE
101#define STARFIELD_DECREASE_ZMOVE BUTTON_BOTTOMMIDDLE
102#endif
103#ifndef STARFIELD_INCREASE_NB_STARS
104#define STARFIELD_INCREASE_NB_STARS BUTTON_MIDRIGHT
105#endif
106#ifndef STARFIELD_DECREASE_NB_STARS
107#define STARFIELD_DECREASE_NB_STARS BUTTON_MIDLEFT
108#endif
109#ifndef STARFIELD_TOGGLE_COLOR
110#define STARFIELD_TOGGLE_COLOR BUTTON_CENTER
111#endif
112#endif
113
114#ifndef STARFIELD_QUIT
98#define STARFIELD_QUIT BUTTON_OFF 115#define STARFIELD_QUIT BUTTON_OFF
116#endif
117#ifndef STARFIELD_INCREASE_ZMOVE
99#define STARFIELD_INCREASE_ZMOVE BUTTON_UP 118#define STARFIELD_INCREASE_ZMOVE BUTTON_UP
119#endif
120#ifndef STARFIELD_DECREASE_ZMOVE
100#define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN 121#define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN
122#endif
123#ifndef STARFIELD_INCREASE_NB_STARS
101#define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT 124#define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT
125#endif
126#ifndef STARFIELD_DECREASE_NB_STARS
102#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT 127#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT
128#endif
129
130#ifndef STARFIELD_TOGGLE_COLOR
103#ifdef BUTTON_SELECT 131#ifdef BUTTON_SELECT
104#define STARFIELD_TOGGLE_COLOR BUTTON_SELECT 132#define STARFIELD_TOGGLE_COLOR BUTTON_SELECT
105#else 133#else
106#define STARFIELD_TOGGLE_COLOR BUTTON_PLAY 134#define STARFIELD_TOGGLE_COLOR BUTTON_PLAY
107#endif 135#endif
136#endif
108#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD) 137#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD)
109#define STARFIELD_RC_QUIT BUTTON_RC_STOP 138#define STARFIELD_RC_QUIT BUTTON_RC_STOP
110#endif 139#endif
111 140
112#endif
113 141
114#define LCD_CENTER_X (LCD_WIDTH/2) 142#define LCD_CENTER_X (LCD_WIDTH/2)
115#define LCD_CENTER_Y (LCD_HEIGHT/2) 143#define LCD_CENTER_Y (LCD_HEIGHT/2)
diff --git a/apps/plugins/stopwatch.c b/apps/plugins/stopwatch.c
index d4d890df0d..18ad1c48cb 100644
--- a/apps/plugins/stopwatch.c
+++ b/apps/plugins/stopwatch.c
@@ -146,15 +146,31 @@ PLUGIN_HEADER
146#define STOPWATCH_RC_QUIT BUTTON_REC 146#define STOPWATCH_RC_QUIT BUTTON_REC
147#elif CONFIG_KEYPAD == COWOND2_PAD 147#elif CONFIG_KEYPAD == COWOND2_PAD
148#define STOPWATCH_QUIT BUTTON_POWER 148#define STOPWATCH_QUIT BUTTON_POWER
149#define STOPWATCH_START_STOP BUTTON_SELECT
150#define STOPWATCH_RESET_TIMER BUTTON_MENU
151#define STOPWATCH_LAP_TIMER BUTTON_PLUS
152#define STOPWATCH_SCROLL_UP BUTTON_UP
153#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN
154#else 149#else
155#error No keymap defined! 150#error No keymap defined!
156#endif 151#endif
157 152
153#ifdef HAVE_TOUCHPAD
154#ifndef STOPWATCH_QUIT
155#define STOPWATCH_QUIT BUTTON_TOPLEFT
156#endif
157#ifndef STOPWATCH_START_STOP
158#define STOPWATCH_START_STOP BUTTON_CENTER
159#endif
160#ifndef STOPWATCH_RESET_TIMER
161#define STOPWATCH_RESET_TIMER BUTTON_MIDRIGHT
162#endif
163#ifndef STOPWATCH_LAP_TIMER
164#define STOPWATCH_LAP_TIMER BUTTON_MIDLEFT
165#endif
166#ifndef STOPWATCH_SCROLL_UP
167#define STOPWATCH_SCROLL_UP BUTTON_TOPMIDDLE
168#endif
169#ifndef STOPWATCH_SCROLL_DOWN
170#define STOPWATCH_SCROLL_DOWN BUTTON_BOTTOMMIDDLE
171#endif
172#endif
173
158static struct plugin_api* rb; 174static struct plugin_api* rb;
159 175
160static int stopwatch = 0; 176static int stopwatch = 0;
diff --git a/apps/plugins/sudoku/sudoku.h b/apps/plugins/sudoku/sudoku.h
index 3fc8dbe0e0..2cd9198af9 100644
--- a/apps/plugins/sudoku/sudoku.h
+++ b/apps/plugins/sudoku/sudoku.h
@@ -172,18 +172,39 @@
172 172
173#elif (CONFIG_KEYPAD == COWOND2_PAD) 173#elif (CONFIG_KEYPAD == COWOND2_PAD)
174#define SUDOKU_BUTTON_QUIT BUTTON_POWER 174#define SUDOKU_BUTTON_QUIT BUTTON_POWER
175#define SUDOKU_BUTTON_UP BUTTON_UP
176#define SUDOKU_BUTTON_DOWN BUTTON_DOWN
177#define SUDOKU_BUTTON_LEFT BUTTON_LEFT
178#define SUDOKU_BUTTON_RIGHT BUTTON_RIGHT
179#define SUDOKU_BUTTON_TOGGLE BUTTON_PLUS
180#define SUDOKU_BUTTON_MENU BUTTON_MENU 175#define SUDOKU_BUTTON_MENU BUTTON_MENU
181#define SUDOKU_BUTTON_POSSIBLE BUTTON_MINUS
182 176
183#else 177#else
184#error No keymap defined! 178#error No keymap defined!
185#endif 179#endif
186 180
181#ifdef HAVE_TOUCHPAD
182#ifndef SUDOKU_BUTTON_QUIT
183#define SUDOKU_BUTTON_QUIT BUTTON_TOPLEFT
184#endif
185#ifndef SUDOKU_BUTTON_UP
186#define SUDOKU_BUTTON_UP BUTTON_TOPMIDDLE
187#endif
188#ifndef SUDOKU_BUTTON_DOWN
189#define SUDOKU_BUTTON_DOWN BUTTON_BOTTOMMIDDLE
190#endif
191#ifndef SUDOKU_BUTTON_LEFT
192#define SUDOKU_BUTTON_LEFT BUTTON_MIDLEFT
193#endif
194#ifndef SUDOKU_BUTTON_RIGHT
195#define SUDOKU_BUTTON_RIGHT BUTTON_MIDRIGHT
196#endif
197#ifndef SUDOKU_BUTTON_TOGGLE
198#define SUDOKU_BUTTON_TOGGLE BUTTON_CENTER
199#endif
200#ifndef SUDOKU_BUTTON_MENU
201#define SUDOKU_BUTTON_MENU BUTTON_TOPRIGHT
202#endif
203#ifndef SUDOKU_BUTTON_POSSIBLE
204#define SUDOKU_BUTTON_POSSIBLE BUTTON_BOTTOMLEFT
205#endif
206#endif
207
187struct sudoku_state_t { 208struct sudoku_state_t {
188 char filename[MAX_PATH]; /* Filename */ 209 char filename[MAX_PATH]; /* Filename */
189 char startboard[9][9]; /* The initial state of the game */ 210 char startboard[9][9]; /* The initial state of the game */
diff --git a/apps/plugins/superdom.c b/apps/plugins/superdom.c
index 9e3f984c6f..e99d456454 100644
--- a/apps/plugins/superdom.c
+++ b/apps/plugins/superdom.c
@@ -128,15 +128,31 @@ char buf[255];
128#define SUPERDOM_CANCEL BUTTON_BACK 128#define SUPERDOM_CANCEL BUTTON_BACK
129 129
130#elif CONFIG_KEYPAD == COWOND2_PAD 130#elif CONFIG_KEYPAD == COWOND2_PAD
131#define SUPERDOM_OK BUTTON_SELECT 131#define SUPERDOM_CANCEL BUTTON_POWER
132#define SUPERDOM_UP BUTTON_UP
133#define SUPERDOM_LEFT BUTTON_LEFT
134#define SUPERDOM_RIGHT BUTTON_RIGHT
135#define SUPERDOM_DOWN BUTTON_DOWN
136#define SUPERDOM_CANCEL BUTTON_MENU
137 132
138#endif 133#endif
139 134
135#ifdef HAVE_TOUCHPAD
136#ifndef SUPERDOM_OK
137#define SUPERDOM_OK BUTTON_CENTER
138#endif
139#ifndef SUPERDOM_UP
140#define SUPERDOM_UP BUTTON_TOPMIDDLE
141#endif
142#ifndef SUPERDOM_LEFT
143#define SUPERDOM_LEFT BUTTON_MIDLEFT
144#endif
145#ifndef SUPERDOM_RIGHT
146#define SUPERDOM_RIGHT BUTTON_MIDRIGHT
147#endif
148#ifndef SUPERDOM_DOWN
149#define SUPERDOM_DOWN BUTTON_BOTTOMMIDDLE
150#endif
151#ifndef SUPERDOM_CANCEL
152#define SUPERDOM_CANCEL BUTTON_TOPLEFT
153#endif
154#endif
155
140#define SUPERDOM_QUIT 23 156#define SUPERDOM_QUIT 23
141 157
142void gen_interest(void); 158void gen_interest(void);
diff --git a/apps/plugins/viewer.c b/apps/plugins/viewer.c
index a2afbc0641..885ac70bea 100644
--- a/apps/plugins/viewer.c
+++ b/apps/plugins/viewer.c
@@ -246,17 +246,36 @@ PLUGIN_HEADER
246 246
247#elif CONFIG_KEYPAD == COWOND2_PAD 247#elif CONFIG_KEYPAD == COWOND2_PAD
248#define VIEWER_QUIT BUTTON_POWER 248#define VIEWER_QUIT BUTTON_POWER
249#define VIEWER_PAGE_UP BUTTON_UP
250#define VIEWER_PAGE_DOWN BUTTON_DOWN
251#define VIEWER_SCREEN_LEFT BUTTON_LEFT
252#define VIEWER_SCREEN_RIGHT BUTTON_RIGHT
253#define VIEWER_MENU BUTTON_MENU 249#define VIEWER_MENU BUTTON_MENU
254#define VIEWER_AUTOSCROLL BUTTON_SELECT
255 250
256#else 251#else
257#error No keymap defined! 252#error No keymap defined!
258#endif 253#endif
259 254
255#ifdef HAVE_TOUCHPAD
256#ifndef VIEWER_QUIT
257#define VIEWER_QUIT BUTTON_TOPLEFT
258#endif
259#ifndef VIEWER_PAGE_UP
260#define VIEWER_PAGE_UP BUTTON_TOPMIDDLE
261#endif
262#ifndef VIEWER_PAGE_DOWN
263#define VIEWER_PAGE_DOWN BUTTON_BOTTOMMIDDLE
264#endif
265#ifndef VIEWER_SCREEN_LEFT
266#define VIEWER_SCREEN_LEFT BUTTON_MIDLEFT
267#endif
268#ifndef VIEWER_SCREEN_RIGHT
269#define VIEWER_SCREEN_RIGHT BUTTON_MIDRIGHT
270#endif
271#ifndef VIEWER_MENU
272#define VIEWER_MENU BUTTON_TOPRIGHT
273#endif
274#ifndef VIEWER_AUTOSCROLL
275#define VIEWER_AUTOSCROLL BUTTON_CENTER
276#endif
277#endif
278
260/* stuff for the bookmarking */ 279/* stuff for the bookmarking */
261struct bookmarked_file_info { 280struct bookmarked_file_info {
262 long file_position; 281 long file_position;
@@ -1620,3 +1639,4 @@ enum plugin_status plugin_start(struct plugin_api* api, void* file)
1620 return PLUGIN_OK; 1639 return PLUGIN_OK;
1621} 1640}
1622 1641
1642
diff --git a/apps/plugins/vu_meter.c b/apps/plugins/vu_meter.c
index 5a893d7407..bdbab8ccf5 100644
--- a/apps/plugins/vu_meter.c
+++ b/apps/plugins/vu_meter.c
@@ -202,21 +202,42 @@ PLUGIN_HEADER
202 202
203#elif CONFIG_KEYPAD == COWOND2_PAD 203#elif CONFIG_KEYPAD == COWOND2_PAD
204#define VUMETER_QUIT BUTTON_POWER 204#define VUMETER_QUIT BUTTON_POWER
205#define VUMETER_HELP BUTTON_SELECT
206#define VUMETER_MENU BUTTON_MENU 205#define VUMETER_MENU BUTTON_MENU
207#define VUMETER_MENU_EXIT BUTTON_LEFT 206#define VUMETER_MENU_EXIT BUTTON_POWER
208#define VUMETER_MENU_EXIT2 BUTTON_POWER
209#define VUMETER_UP BUTTON_UP
210#define VUMETER_DOWN BUTTON_DOWN
211#define LABEL_HELP "SELECT"
212#define LABEL_QUIT "POWER" 207#define LABEL_QUIT "POWER"
213#define LABEL_MENU "MENU" 208#define LABEL_MENU "MENU"
214#define LABEL_VOLUME "UP/DOWN"
215 209
216#else 210#else
217#error No keymap defined! 211#error No keymap defined!
218#endif 212#endif
219 213
214#ifdef HAVE_TOUCHPAD
215#ifndef VUMETER_QUIT
216#define VUMETER_QUIT BUTTON_TOPLEFT
217#define LABEL_QUIT "TOPLEFT"
218#endif
219#ifndef VUMETER_HELP
220#define VUMETER_HELP BUTTON_CENTER
221#define LABEL_HELP "CENTRE"
222#endif
223#ifndef VUMETER_MENU
224#define VUMETER_MENU BUTTON_TOPRIGHT
225#define LABEL_MENU "TOPRIGHT"
226#endif
227#ifndef VUMETER_MENU_EXIT
228#define VUMETER_MENU_EXIT BUTTON_TOPLEFT
229#endif
230#ifndef VUMETER_UP
231#define VUMETER_UP BUTTON_TOPMIDDLE
232#endif
233#ifndef VUMETER_DOWN
234#define VUMETER_DOWN BUTTON_BOTTOMMIDDLE
235#endif
236#ifndef LABEL_VOLUME
237#define LABEL_VOLUME "UP/DOWN"
238#endif
239#endif
240
220const struct plugin_api* rb; 241const struct plugin_api* rb;
221 242
222#if defined(SIMULATOR) && (CONFIG_CODEC != SWCODEC) 243#if defined(SIMULATOR) && (CONFIG_CODEC != SWCODEC)
diff --git a/apps/plugins/wormlet.c b/apps/plugins/wormlet.c
index 8b752bf6f5..f84fad9e4b 100644
--- a/apps/plugins/wormlet.c
+++ b/apps/plugins/wormlet.c
@@ -217,21 +217,44 @@ PLUGIN_HEADER
217 217
218#elif (CONFIG_KEYPAD == COWOND2_PAD) 218#elif (CONFIG_KEYPAD == COWOND2_PAD)
219 219
220#define BTN_DIR_UP BUTTON_UP
221#define BTN_DIR_DOWN BUTTON_DOWN
222#define BTN_DIR_LEFT BUTTON_LEFT
223#define BTN_DIR_RIGHT BUTTON_RIGHT
224#define BTN_STARTPAUSE BUTTON_SELECT
225#define BTN_QUIT BUTTON_POWER 220#define BTN_QUIT BUTTON_POWER
226#define BTN_STOPRESET BUTTON_PLUS
227
228#define PLAYERS_TEXT "Up/Down"
229#define WORMS_TEXT "Left/Right"
230 221
231#else 222#else
232#error No keymap defined! 223#error No keymap defined!
233#endif 224#endif
234 225
226#ifdef HAVE_TOUCHPAD
227#ifndef BTN_DIR_UP
228#define BTN_DIR_UP BUTTON_TOPMIDDLE
229#endif
230#ifndef BTN_DIR_DOWN
231#define BTN_DIR_DOWN BUTTON_BOTTOMMIDDLE
232#endif
233#ifndef BTN_DIR_LEFT
234#define BTN_DIR_LEFT BUTTON_MIDLEFT
235#endif
236#ifndef BTN_DIR_RIGHT
237#define BTN_DIR_RIGHT BUTTON_MIDRIGHT
238#endif
239#ifndef BTN_STARTPAUSE
240#define BTN_STARTPAUSE BUTTON_CENTER
241#endif
242#ifndef BTN_QUIT
243#define BTN_QUIT BUTTON_TOPLEFT
244#endif
245#ifndef BTN_STOPRESET
246#define BTN_STOPRESET BUTTON_TOPRIGHT
247
248#endif
249#ifndef PLAYERS_TEXT
250#define PLAYERS_TEXT "Up/Down"
251#endif
252#ifndef WORMS_TEXT
253#define WORMS_TEXT "Left/Right"
254#endif
255#endif
256
257
235#if (LCD_WIDTH == 112) && (LCD_HEIGHT == 64) 258#if (LCD_WIDTH == 112) && (LCD_HEIGHT == 64)
236#define FOOD_SIZE 3 259#define FOOD_SIZE 3
237#define ARGH_SIZE 4 260#define ARGH_SIZE 4
diff --git a/apps/plugins/xobox.c b/apps/plugins/xobox.c
index 879d0e65f7..331650eddc 100644
--- a/apps/plugins/xobox.c
+++ b/apps/plugins/xobox.c
@@ -142,16 +142,32 @@ PLUGIN_HEADER
142#elif CONFIG_KEYPAD == COWOND2_PAD 142#elif CONFIG_KEYPAD == COWOND2_PAD
143 143
144#define QUIT BUTTON_POWER 144#define QUIT BUTTON_POWER
145#define LEFT BUTTON_LEFT
146#define RIGHT BUTTON_RIGHT
147#define UP BUTTON_UP
148#define DOWN BUTTON_DOWN
149#define PAUSE BUTTON_SELECT
150 145
151#else 146#else
152#error No keymap defined! 147#error No keymap defined!
153#endif 148#endif
154 149
150#ifdef HAVE_TOUCHPAD
151#ifndef QUIT
152#define QUIT BUTTON_TOPLEFT
153#endif
154#ifndef LEFT
155#define LEFT BUTTON_MIDLEFT
156#endif
157#ifndef RIGHT
158#define RIGHT BUTTON_MIDRIGHT
159#endif
160#ifndef UP
161#define UP BUTTON_TOPMIDDLE
162#endif
163#ifndef DOWN
164#define DOWN BUTTON_BOTTOMMIDDLE
165#endif
166#ifndef PAUSE
167#define PAUSE BUTTON_CENTER
168#endif
169#endif
170
155#define MOVE_NO 0 /* player movement */ 171#define MOVE_NO 0 /* player movement */
156#define MOVE_UP 1 /* 1 */ 172#define MOVE_UP 1 /* 1 */
157#define MOVE_DN 2 /* 3 0 4 */ 173#define MOVE_DN 2 /* 3 0 4 */
diff --git a/apps/plugins/zxbox/keymaps.h b/apps/plugins/zxbox/keymaps.h
index 791149c86c..49156c2f11 100644
--- a/apps/plugins/zxbox/keymaps.h
+++ b/apps/plugins/zxbox/keymaps.h
@@ -103,16 +103,32 @@
103#define ZX_MENU BUTTON_RC_REC 103#define ZX_MENU BUTTON_RC_REC
104 104
105#elif CONFIG_KEYPAD == COWOND2_PAD 105#elif CONFIG_KEYPAD == COWOND2_PAD
106#define ZX_UP BUTTON_UP 106#define ZX_MENU (BUTTON_MENU|BUTTON_REL)
107#define ZX_DOWN BUTTON_DOWN
108#define ZX_LEFT BUTTON_LEFT
109#define ZX_RIGHT BUTTON_RIGHT
110#define ZX_SELECT BUTTON_SELECT
111#define ZX_MENU BUTTON_MENU
112 107
113#else 108#else
114#error Keymap not defined! 109#error Keymap not defined!
115 110
116#endif 111#endif
117 112
113#ifdef HAVE_TOUCHPAD
114#ifndef ZX_UP
115#define ZX_UP BUTTON_TOPMIDDLE
116#endif
117#ifndef ZX_DOWN
118#define ZX_DOWN BUTTON_BOTTOMMIDDLE
119#endif
120#ifndef ZX_LEFT
121#define ZX_LEFT BUTTON_MIDLEFT
122#endif
123#ifndef ZX_RIGHT
124#define ZX_RIGHT BUTTON_MIDRIGHT
125#endif
126#ifndef ZX_SELECT
127#define ZX_SELECT BUTTON_CENTER
128#endif
129#ifndef ZX_MENU
130#define ZX_MENU (BUTTON_TOPLEFT|BUTTON_REL)
131#endif
132#endif
133
118#endif 134#endif
diff --git a/apps/plugins/zxbox/zxbox_keyb.c b/apps/plugins/zxbox/zxbox_keyb.c
index f1de0a051c..33d44512a7 100644
--- a/apps/plugins/zxbox/zxbox_keyb.c
+++ b/apps/plugins/zxbox/zxbox_keyb.c
@@ -124,17 +124,30 @@
124 124
125#elif CONFIG_KEYPAD == COWOND2_PAD 125#elif CONFIG_KEYPAD == COWOND2_PAD
126 126
127/* TODO: Check keyboard mappings */
128
129#define KBD_SELECT BUTTON_SELECT
130#define KBD_ABORT BUTTON_POWER 127#define KBD_ABORT BUTTON_POWER
131#define KBD_LEFT BUTTON_LEFT
132#define KBD_RIGHT BUTTON_RIGHT
133#define KBD_UP BUTTON_UP
134#define KBD_DOWN BUTTON_DOWN
135 128
136#endif 129#endif
137 130
131#ifdef HAVE_TOUCHPAD
132#ifndef KBD_SELECT
133#define KBD_SELECT BUTTON_CENTER
134#endif
135#ifndef KBD_ABORT
136#define KBD_ABORT BUTTON_TOPLEFT
137#endif
138#ifndef KBD_LEFT
139#define KBD_LEFT BUTTON_MIDLEFT
140#endif
141#ifndef KBD_RIGHT
142#define KBD_RIGHT BUTTON_MIDRIGHT
143#endif
144#ifndef KBD_UP
145#define KBD_UP BUTTON_TOPMIDDLE
146#endif
147#ifndef KBD_DOWN
148#define KBD_DOWN BUTTON_BOTTOMMIDDLE
149#endif
150#endif
138 151
139struct keyboard_parameters { 152struct keyboard_parameters {
140 const unsigned char* default_kbd; 153 const unsigned char* default_kbd;
diff --git a/firmware/target/arm/tcc780x/cowond2/button-target.h b/firmware/target/arm/tcc780x/cowond2/button-target.h
index 051ed39689..f947a239b6 100644
--- a/firmware/target/arm/tcc780x/cowond2/button-target.h
+++ b/firmware/target/arm/tcc780x/cowond2/button-target.h
@@ -36,10 +36,9 @@ void button_set_touch_available(void);
36#define BUTTON_MINUS 0x00000004 36#define BUTTON_MINUS 0x00000004
37#define BUTTON_MENU 0x00000008 37#define BUTTON_MENU 0x00000008
38 38
39/* compatibility hacks These definatly need fixing */ 39/* Compatibility hacks for flipping. Needs a somewhat better fix. */
40#define BUTTON_LEFT BUTTON_MIDLEFT 40#define BUTTON_LEFT BUTTON_MIDLEFT
41#define BUTTON_RIGHT BUTTON_MIDRIGHT 41#define BUTTON_RIGHT BUTTON_MIDRIGHT
42#define BUTTON_SELECT BUTTON_CENTER
43#define BUTTON_UP BUTTON_TOPMIDDLE 42#define BUTTON_UP BUTTON_TOPMIDDLE
44#define BUTTON_DOWN BUTTON_BOTTOMMIDDLE 43#define BUTTON_DOWN BUTTON_BOTTOMMIDDLE
45 44