From 297e0504dad929f8990a654c4bc7a3e891ff41cb Mon Sep 17 00:00:00 2001 From: Rob Purchase Date: Sun, 27 Apr 2008 15:30:19 +0000 Subject: [PATCH] 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 --- apps/plugins/battery_bench.c | 16 ++++- apps/plugins/blackjack.c | 60 ++++++++++++++---- apps/plugins/bounce.c | 25 ++++++-- apps/plugins/brickmania.c | 26 +++++--- apps/plugins/calculator.c | 35 ++++++++--- apps/plugins/chessbox/chessbox_pgn.h | 56 +++++++++++++---- apps/plugins/chessclock.c | 33 +++++++--- apps/plugins/chip8.c | 35 +++++++++-- apps/plugins/chopper.c | 18 +++++- apps/plugins/cube.c | 47 +++++++++++--- apps/plugins/doom/i_video.c | 38 +++++++++--- apps/plugins/fireworks.c | 12 +++- apps/plugins/flashlight.c | 17 +++++- apps/plugins/flipit.c | 48 ++++++++++++--- apps/plugins/invadrox.c | 17 +++++- apps/plugins/jewels.c | 45 ++++++++++---- apps/plugins/jpeg.c | 39 +++++++++--- apps/plugins/logo.c | 22 +++++-- apps/plugins/mandelbrot.c | 47 ++++++++++---- apps/plugins/matrix.c | 18 +++++- apps/plugins/midi/midiplay.c | 26 ++++++-- apps/plugins/minesweeper.c | 34 ++++++++--- apps/plugins/mosaique.c | 15 ++++- apps/plugins/mp3_encoder.c | 18 +++++- apps/plugins/mpegplayer/mpeg_settings.c | 34 ++++++++--- apps/plugins/mpegplayer/mpegplayer.c | 31 ++++++++-- apps/plugins/oscilloscope.c | 38 +++++++++--- apps/plugins/pacbox/pacbox.h | 37 ++++++++--- apps/plugins/pegbox.c | 57 +++++++++++++---- apps/plugins/plasma.c | 34 +++++++++-- apps/plugins/pong.c | 25 ++++++-- apps/plugins/reversi/reversi-gui.h | 28 +++++++-- apps/plugins/rockblox.c | 33 ++++++++-- apps/plugins/rockboy/rockboy.c | 23 ++++--- apps/plugins/rockpaint.c | 37 ++++++++--- apps/plugins/sliding_puzzle.c | 44 +++++++++++-- apps/plugins/snake.c | 26 ++++++-- apps/plugins/snake2.c | 50 +++++++++++---- apps/plugins/sokoban.c | 61 +++++++++++++++---- apps/plugins/solitaire.c | 57 +++++++++++------ apps/plugins/spacerocks.c | 46 +++++++++++--- apps/plugins/star.c | 55 ++++++++++++++--- apps/plugins/starfield.c | 42 ++++++++++--- apps/plugins/stopwatch.c | 26 ++++++-- apps/plugins/sudoku/sudoku.h | 33 ++++++++-- apps/plugins/superdom.c | 28 +++++++-- apps/plugins/viewer.c | 30 +++++++-- apps/plugins/vu_meter.c | 35 ++++++++--- apps/plugins/wormlet.c | 41 ++++++++++--- apps/plugins/xobox.c | 26 ++++++-- apps/plugins/zxbox/keymaps.h | 28 +++++++-- apps/plugins/zxbox/zxbox_keyb.c | 27 +++++--- .../arm/tcc780x/cowond2/button-target.h | 3 +- 53 files changed, 1418 insertions(+), 364 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 #elif CONFIG_KEYPAD == COWOND2_PAD -#define BATTERY_ON BUTTON_MENU #define BATTERY_OFF BUTTON_POWER -#define BATTERY_ON_TXT "MENU - start" #define BATTERY_OFF_TXT "POWER - quit" #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef BATTERY_ON +#define BATTERY_ON BUTTON_CENTER +#endif +#ifndef BATTERY_OFF +#define BATTERY_OFF BUTTON_TOPLEFT +#endif +#ifndef BATTERY_ON_TXT +#define BATTERY_ON_TXT "CENTRE - start" +#endif +#ifndef BATTERY_OFF_TXT +#define BATTERY_OFF_TXT "TOPLEFT - quit" +#endif +#endif /****************************** Plugin Entry Point ****************************/ static 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 #define BJACK_LEFT BUTTON_RC_REW #elif CONFIG_KEYPAD == COWOND2_PAD -#define BJACK_START BUTTON_SELECT #define BJACK_QUIT BUTTON_POWER -#define BJACK_MAX BUTTON_PLUS -#define BJACK_MIN BUTTON_MINUS -#define BJACK_HIT BUTTON_SELECT -#define BJACK_STAY BUTTON_MENU -#define BJACK_DOUBLEDOWN (BUTTON_DOWN|BUTTON_MENU) -#define BJACK_SCORES (BUTTON_SELECT|BUTTON_MENU) -#define BJACK_RESUME (BUTTON_SELECT|BUTTON_PLUS) -#define BJACK_UP BUTTON_UP -#define BJACK_DOWN BUTTON_DOWN -#define BJACK_RIGHT BUTTON_RIGHT -#define BJACK_LEFT BUTTON_LEFT +#define BJACK_DOUBLEDOWN BUTTON_MINUS +#define BJACK_SCORES BUTTON_MENU #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef BJACK_START +#define BJACK_START BUTTON_CENTER +#endif +#ifndef BJACK_HIT +#define BJACK_HIT BUTTON_CENTER +#endif +#ifndef BJACK_MAX +#define BJACK_MAX BUTTON_TOPRIGHT +#endif +#ifndef BJACK_MIN +#define BJACK_MIN BUTTON_TOPLEFT +#endif +#ifndef BJACK_RESUME +#define BJACK_RESUME BUTTON_BOTTOMRIGHT +#endif +#ifndef BJACK_STAY +#define BJACK_STAY BUTTON_BOTTOMLEFT +#endif +#ifndef BJACK_UP +#define BJACK_UP BUTTON_TOPMIDDLE +#endif +#ifndef BJACK_DOWN +#define BJACK_DOWN BUTTON_BOTTOMMIDDLE +#endif +#ifndef BJACK_RIGHT +#define BJACK_RIGHT BUTTON_MIDRIGHT +#endif +#ifndef BJACK_LEFT +#define BJACK_LEFT BUTTON_MIDLEFT +#endif + +#endif + #ifdef HAVE_LCD_COLOR #define BG_COLOR LCD_RGBPACK(0,157,0) #define FG_COLOR LCD_WHITE @@ -1194,6 +1218,18 @@ static unsigned int blackjack_menu(struct game_context* bj) { rb->lcd_puts(0, 8, "MENU to view scores"); rb->snprintf(str, 21, "High Score: $%d", bj->highscores[0]); rb->lcd_puts(0, 10, str); +#elif CONFIG_KEYPAD == COWOND2_PAD + rb->lcd_puts(0, 6, "POWER to exit"); + rb->lcd_puts(0, 7, "MINUS to double down"); + rb->lcd_puts(0, 8, "MENU to view scores"); + rb->snprintf(str, 21, "High Score: $%d", bj->highscores[0]); + rb->lcd_puts(0, 10, str); +#endif + +#ifdef HAVE_TOUCHPAD + rb->lcd_puts(0, 2, "LCD CENTRE to start & to hit"); + rb->lcd_puts(0, 3, "LCD BOTTOMLEFT to stay"); + rb->lcd_puts(0, 4, "LCD BOTTOMRIGHT to save/resume"); #endif } else { 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 #define BOUNCE_MODE BUTTON_RC_MODE #elif (CONFIG_KEYPAD == COWOND2_PAD) -#define BOUNCE_LEFT BUTTON_LEFT -#define BOUNCE_RIGHT BUTTON_RIGHT -#define BOUNCE_UP BUTTON_UP -#define BOUNCE_DOWN BUTTON_DOWN #define BOUNCE_QUIT BUTTON_POWER #define BOUNCE_MODE BUTTON_MENU @@ -150,6 +146,27 @@ PLUGIN_HEADER #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef BOUNCE_LEFT +#define BOUNCE_LEFT BUTTON_MIDLEFT +#endif +#ifndef BOUNCE_RIGHT +#define BOUNCE_RIGHT BUTTON_MIDRIGHT +#endif +#ifndef BOUNCE_UP +#define BOUNCE_UP BUTTON_TOPMIDDLE +#endif +#ifndef BOUNCE_DOWN +#define BOUNCE_DOWN BUTTON_BOTTOMMIDDLE +#endif +#ifndef BOUNCE_QUIT +#define BOUNCE_QUIT BUTTON_TOPLEFT +#endif +#ifndef BOUNCE_MODE +#define BOUNCE_MODE BUTTON_CENTER +#endif +#endif + static struct plugin_api* rb; #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 #define RC_QUIT BUTTON_REC #elif CONFIG_KEYPAD == COWOND2_PAD - -#define QUIT BUTTON_POWER -#define LEFT BUTTON_LEFT -#define RIGHT BUTTON_RIGHT -#define SELECT BUTTON_SELECT -#define UP BUTTON_UP -#define DOWN BUTTON_DOWN +#define QUIT BUTTON_POWER #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef LEFT +#define LEFT BUTTON_MIDLEFT +#endif +#ifndef RIGHT +#define RIGHT BUTTON_MIDRIGHT +#endif +#ifndef SELECT +#define SELECT BUTTON_CENTER +#endif +#ifndef UP +#define UP BUTTON_TOPMIDDLE +#endif +#ifndef DOWN +#define DOWN BUTTON_BOTTOMMIDDLE +#endif +#endif + #ifndef SCROLL_FWD /* targets without scroll wheel*/ #define SCROLL_FWD(x) (0) #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 #elif (CONFIG_KEYPAD == COWOND2_PAD) -#define CALCULATOR_LEFT BUTTON_LEFT -#define CALCULATOR_RIGHT BUTTON_RIGHT -#define CALCULATOR_UP BUTTON_UP -#define CALCULATOR_DOWN BUTTON_DOWN -#define CALCULATOR_QUIT BUTTON_POWER -#define CALCULATOR_INPUT_CALC_PRE BUTTON_MINUS -#define CALCULATOR_INPUT BUTTON_PLUS -#define CALCULATOR_CALC BUTTON_SELECT -#define CALCULATOR_CLEAR BUTTON_MENU +#define CALCULATOR_QUIT BUTTON_POWER +#define CALCULATOR_CLEAR BUTTON_MENU #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef CALCULATOR_LEFT +#define CALCULATOR_LEFT BUTTON_MIDLEFT +#endif +#ifndef CALCULATOR_RIGHT +#define CALCULATOR_RIGHT BUTTON_MIDRIGHT +#endif +#ifndef CALCULATOR_UP +#define CALCULATOR_UP BUTTON_TOPMIDDLE +#endif +#ifndef CALCULATOR_DOWN +#define CALCULATOR_DOWN BUTTON_BOTTOMMIDDLE +#endif +#ifndef CALCULATOR_CALC +#define CALCULATOR_CALC BUTTON_BOTTOMRIGHT +#endif +#ifndef CALCULATOR_INPUT +#define CALCULATOR_INPUT BUTTON_CENTER +#endif +#ifndef CALCULATOR_CLEAR +#define CALCULATOR_CLEAR BUTTON_TOPRIGHT +#endif +#endif + static struct plugin_api* rb; enum { 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 @@ #define CB_RC_QUIT BUTTON_REC #elif CONFIG_KEYPAD == COWOND2_PAD -#define CB_SELECT BUTTON_SELECT -#define CB_UP BUTTON_UP -#define CB_DOWN BUTTON_DOWN -#define CB_LEFT BUTTON_LEFT -#define CB_RIGHT BUTTON_RIGHT -#define CB_PLAY BUTTON_MENU #define CB_LEVEL BUTTON_PLUS -#define CB_RESTART (BUTTON_SELECT | BUTTON_MENU) -#define CB_MENU BUTTON_POWER +#define CB_RESTART BUTTON_MINUS +#define CB_MENU (BUTTON_MENU|BUTTON_REL) -#define CB_SCROLL_UP (BUTTON_UP|BUTTON_MENU) -#define CB_SCROLL_DOWN (BUTTON_DOWN|BUTTON_MENU) -#define CB_SCROLL_LEFT (BUTTON_LEFT|BUTTON_MENU) -#define CB_SCROLL_RIGHT (BUTTON_RIGHT|BUTTON_MENU) #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef CB_LEVEL +#define CB_LEVEL BUTTON_TOPLEFT +#endif +#ifndef CB_RESTART +#define CB_RESTART BUTTON_TOPRIGHT +#endif +#ifndef CB_MENU +#define CB_MENU (BUTTON_BOTTOMLEFT|BUTTON_REL) +#endif +#ifndef CB_PLAY +#define CB_PLAY (BUTTON_CENTER|BUTTON_REPEAT) +#endif +#ifndef CB_SELECT +#define CB_SELECT BUTTON_CENTER +#endif +#ifndef CB_UP +#define CB_UP BUTTON_TOPMIDDLE +#endif +#ifndef CB_DOWN +#define CB_DOWN BUTTON_BOTTOMMIDDLE +#endif +#ifndef CB_LEFT +#define CB_LEFT BUTTON_MIDLEFT +#endif +#ifndef CB_RIGHT +#define CB_RIGHT BUTTON_MIDRIGHT +#endif +#ifndef CB_SCROLL_UP +#define CB_SCROLL_UP (BUTTON_TOPMIDDLE|BUTTON_REPEAT) +#endif +#ifndef CB_SCROLL_DOWN +#define CB_SCROLL_DOWN (BUTTON_BOTTOMMIDDLE|BUTTON_REPEAT) +#endif +#ifndef CB_SCROLL_LEFT +#define CB_SCROLL_LEFT (BUTTON_MIDLEFT|BUTTON_REPEAT) +#endif +#ifndef CB_SCROLL_RIGHT +#define CB_SCROLL_RIGHT (BUTTON_MIDRIGHT|BUTTON_REPEAT) +#endif +#endif + /* structure to represent the plies */ struct pgn_ply_node { 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 #define CHC_SETTINGS_CANCEL BUTTON_RC_REC #elif CONFIG_KEYPAD == COWOND2_PAD -#define CHC_QUIT BUTTON_POWER -#define CHC_STARTSTOP BUTTON_SELECT -#define CHC_RESET (BUTTON_SELECT|BUTTON_MENU) -#define CHC_MENU BUTTON_MENU -#define CHC_SETTINGS_INC BUTTON_UP -#define CHC_SETTINGS_DEC BUTTON_DOWN -#define CHC_SETTINGS_OK BUTTON_SELECT +#define CHC_QUIT BUTTON_POWER +#define CHC_RESET (BUTTON_CENTER|BUTTON_MENU) +#define CHC_MENU BUTTON_MENU +#define CHC_SETTINGS_INC BUTTON_PLUS +#define CHC_SETTINGS_DEC BUTTON_MINUS #define CHC_SETTINGS_CANCEL BUTTON_POWER #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef CHC_SETTINGS_OK +#define CHC_SETTINGS_OK BUTTON_CENTER +#endif +#ifndef CHC_STARTSTOP +#define CHC_STARTSTOP BUTTON_CENTER +#endif +#ifndef CHC_SETTINGS_INC +#define CHC_SETTINGS_INC BUTTON_TOPMIDDLE +#endif +#ifndef CHC_SETTINGS_DEC +#define CHC_SETTINGS_DEC BUTTON_BOTTOMMIDDLE +#endif +#ifndef CHC_RESET +#define CHC_RESET BUTTON_TOPLEFT +#endif +#ifndef CHC_MENU +#define CHC_MENU BUTTON_TOPRIGHT +#endif +#endif /* leave first line blank on bitmap display, for pause icon */ @@ -650,3 +668,4 @@ static int simple_menu(int nr, unsigned char **strarr) } } + 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) #elif (CONFIG_KEYPAD == COWOND2_PAD) #define CHIP8_OFF BUTTON_POWER -#define CHIP8_KEY2 BUTTON_DOWN -#define CHIP8_KEY4 BUTTON_LEFT -#define CHIP8_KEY5 BUTTON_SELECT -#define CHIP8_KEY6 BUTTON_RIGHT -#define CHIP8_KEY8 BUTTON_UP #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef CHIP8_OFF +#define CHIP8_OFF BUTTON_TOPLEFT +#endif +#ifndef CHIP8_KEY1 +#define CHIP8_KEY1 BUTTON_TOPRIGHT +#endif +#ifndef CHIP8_KEY2 +#define CHIP8_KEY2 BUTTON_TOPMIDDLE +#endif +#ifndef CHIP8_KEY3 +#define CHIP8_KEY3 BUTTON_BOTTOMLEFT +#endif +#ifndef CHIP8_KEY4 +#define CHIP8_KEY4 BUTTON_MIDLEFT +#endif +#ifndef CHIP8_KEY5 +#define CHIP8_KEY5 BUTTON_CENTER +#endif +#ifndef CHIP8_KEY6 +#define CHIP8_KEY6 BUTTON_MIDRIGHT +#endif +#ifndef CHIP8_KEY7 +#define CHIP8_KEY7 BUTTON_BOTTOMRIGHT +#endif +#ifndef CHIP8_KEY8 +#define CHIP8_KEY8 BUTTON_BOTTOMMIDDLE +#endif +#endif + static byte chip8_virtual_keys[16]; static byte chip8_keymap[16]; 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: #elif CONFIG_KEYPAD == COWOND2_PAD #define QUIT BUTTON_POWER -#define ACTION BUTTON_UP -#define ACTION2 BUTTON_MENU -#define ACTIONTEXT "UP" #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef QUIT +#define QUIT BUTTON_TOPLEFT +#endif +#ifndef ACTION +#define ACTION BUTTON_BOTTOMLEFT +#endif +#ifndef ACTION2 +#define ACTION2 BUTTON_BOTTOMRIGHT +#endif +#ifndef ACTIONTEXT +#define ACTIONTEXT "BOTTOMRIGHT" +#endif +#endif + static struct plugin_api* rb; #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 #elif CONFIG_KEYPAD == COWOND2_PAD #define CUBE_QUIT BUTTON_POWER -#define CUBE_X_INC BUTTON_RIGHT -#define CUBE_X_DEC BUTTON_LEFT -#define CUBE_Y_INC BUTTON_UP -#define CUBE_Y_DEC BUTTON_DOWN -#define CUBE_Z_INC BUTTON_PLUS -#define CUBE_Z_DEC BUTTON_MINUS -#define CUBE_MODE BUTTON_MENU -#define CUBE_PAUSE_PRE BUTTON_SELECT -#define CUBE_PAUSE (BUTTON_MINUS | BUTTON_REL) -#define CUBE_HIGHSPEED (BUTTON_PLUS | BUTTON_REL) #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +// not enough touchfields, so CUBE_QUIT have to be +// mapped to a real button +//ifndef CUBE_QUIT +//#define CUBE_QUIT BUTTON_TOPLEFT +//#endif +#ifndef CUBE_X_INC +#define CUBE_X_INC BUTTON_MIDRIGHT +#endif +#ifndef CUBE_X_DEC +#define CUBE_X_DEC BUTTON_MIDLEFT +#endif +#ifndef CUBE_Y_INC +#define CUBE_Y_INC BUTTON_TOPMIDDLE +#endif +#ifndef CUBE_Y_DEC +#define CUBE_Y_DEC BUTTON_BOTTOMMIDDLE +#endif +#ifndef CUBE_Z_INC +#define CUBE_Z_INC BUTTON_BOTTOMRIGHT +#endif +#ifndef CUBE_Z_DEC +#define CUBE_Z_DEC BUTTON_BOTTOMLEFT +#endif +#ifndef CUBE_MODE +#define CUBE_MODE BUTTON_TOPRIGHT +#endif +#ifndef CUBE_PAUSE +#define CUBE_PAUSE (BUTTON_CENTER | BUTTON_REL) +#endif +#ifndef CUBE_HIGHSPEED +#define CUBE_HIGHSPEED BUTTON_TOPLEFT +#endif +#endif + + #ifdef HAVE_LCD_BITMAP #define DIST (10 * MIN(LCD_HEIGHT, LCD_WIDTH) / 16) @@ -854,3 +880,4 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) return PLUGIN_OK; } + 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) #define DOOMBUTTON_WEAPON BUTTON_RC_MENU #elif CONFIG_KEYPAD == COWOND2_PAD #define DOOMBUTTON_ESC BUTTON_POWER -#define DOOMBUTTON_UP BUTTON_UP -#define DOOMBUTTON_DOWN BUTTON_DOWN -#define DOOMBUTTON_LEFT BUTTON_LEFT -#define DOOMBUTTON_RIGHT BUTTON_RIGHT -#define DOOMBUTTON_OPEN BUTTON_PLUS -#define DOOMBUTTON_SHOOT BUTTON_SELECT -#define DOOMBUTTON_ENTER BUTTON_MENU -#define DOOMBUTTON_WEAPON BUTTON_MINUS #elif CONFIG_KEYPAD == MROBE100_PAD #define DOOMBUTTON_UP BUTTON_UP #define DOOMBUTTON_DOWN BUTTON_DOWN @@ -269,6 +261,36 @@ void I_ShutdownGraphics(void) #error Keymap not defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef DOOMBUTTON_UP +#define DOOMBUTTON_UP BUTTON_TOPMIDDLE +#endif +#ifndef DOOMBUTTON_DOWN +#define DOOMBUTTON_DOWN BUTTON_BOTTOMMIDDLE +#endif +#ifndef DOOMBUTTON_LEFT +#define DOOMBUTTON_LEFT BUTTON_MIDLEFT +#endif +#ifndef DOOMBUTTON_RIGHT +#define DOOMBUTTON_RIGHT BUTTON_MIDRIGHT +#endif +#ifndef DOOMBUTTON_SHOOT +#define DOOMBUTTON_SHOOT BUTTON_CENTER +#endif +#ifndef DOOMBUTTON_OPEN +#define DOOMBUTTON_OPEN BUTTON_TOPRIGHT +#endif +#ifndef DOOMBUTTON_ESC +#define DOOMBUTTON_ESC BUTTON_TOPLEFT +#endif +#ifndef DOOMBUTTON_ENTER +#define DOOMBUTTON_ENTER BUTTON_BOTTOMLEFT +#endif +#ifndef DOOMBUTTON_WEAPON +#define DOOMBUTTON_WEAPON BUTTON_BOTTOMRIGHT +#endif +#endif + #ifdef DOOMBUTTON_SCROLLWHEEL /* Scrollwheel events are posted directly and not polled by the button 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; #define BTN_MENU BUTTON_RC_REC #define BTN_FIRE BUTTON_RC_PLAY #elif (CONFIG_KEYPAD == COWOND2_PAD) -#define BTN_MENU BUTTON_MENU -#define BTN_FIRE BUTTON_SELECT +#define BTN_MENU (BUTTON_MENU|BUTTON_REL) #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef BTN_MENU +#define BTN_MENU (BUTTON_TOPLEFT|BUTTON_REL) +#endif +#ifndef BTN_FIRE +#define BTN_FIRE BUTTON_CENTER +#endif +#endif + /* The lowdown on source terminology: * a ROCKET is launched from the LCD bottom. * 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 # define FLASHLIGHT_RIGHT BUTTON_RIGHT #elif CONFIG_KEYPAD == COWOND2_PAD -# define FLASHLIGHT_LEFT BUTTON_LEFT -# define FLASHLIGHT_RIGHT BUTTON_RIGHT #else # error Missing key definitions for this keypad #endif #endif +#ifdef HAVE_TOUCHPAD +# ifndef FLASHLIGHT_LEFT +# define FLASHLIGHT_LEFT BUTTON_MIDLEFT +# endif +# ifndef FLASHLIGHT_RIGHT +# define FLASHLIGHT_RIGHT BUTTON_MIDRIGHT +# endif +# ifndef FLASHLIGHT_NEXT +# define FLASHLIGHT_NEXT BUTTON_TOPMIDDLE +# endif +# ifndef FLASHLIGHT_PREV +# define FLASHLIGHT_PREV BUTTON_BOTTOMMIDDLE +# endif +#endif + static struct plugin_api* rb; /* global api struct pointer */ #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 #elif CONFIG_KEYPAD == COWOND2_PAD -#define FLIPIT_LEFT BUTTON_LEFT -#define FLIPIT_RIGHT BUTTON_RIGHT -#define FLIPIT_UP BUTTON_UP -#define FLIPIT_DOWN BUTTON_DOWN #define FLIPIT_QUIT BUTTON_POWER -#define FLIPIT_SHUFFLE (BUTTON_LEFT|BUTTON_MENU) -#define FLIPIT_SOLVE (BUTTON_RIGHT|BUTTON_MENU) -#define FLIPIT_STEP_BY_STEP BUTTON_MINUS -#define FLIPIT_TOGGLE_PRE BUTTON_PLUS -#define FLIPIT_TOGGLE BUTTON_SELECT #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef FLIPIT_LEFT +#define FLIPIT_LEFT BUTTON_MIDLEFT +#endif +#ifndef FLIPIT_RIGHT +#define FLIPIT_RIGHT BUTTON_MIDRIGHT +#endif +#ifndef FLIPIT_UP +#define FLIPIT_UP BUTTON_TOPMIDDLE +#endif +#ifndef FLIPIT_DOWN +#define FLIPIT_DOWN BUTTON_BOTTOMMIDDLE +#endif +#ifndef FLIPIT_QUIT +#define FLIPIT_QUIT BUTTON_TOPLEFT +#endif +#ifndef FLIPIT_SHUFFLE +#define FLIPIT_SHUFFLE BUTTON_TOPRIGHT +#endif +#ifndef FLIPIT_SOLVE +#define FLIPIT_SOLVE BUTTON_BOTTOMLEFT +#endif +#ifndef FLIPIT_STEP_BY_STEP +#define FLIPIT_STEP_BY_STEP BUTTON_BOTTOMRIGHT +#endif +#ifndef FLIPIT_TOGGLE +#define FLIPIT_TOGGLE BUTTON_CENTER +#endif +#endif + static struct plugin_api* rb; static int spots[20]; static int toggle[20]; @@ -651,6 +672,15 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) rb->lcd_putsxy(2, 38, "[MENU..] solution"); rb->lcd_putsxy(2, 48, "[MENU] step by step"); #endif + +#ifdef HAVE_TOUCHPAD + rb->lcd_putsxy(2, 8, "[BOTTOMLEFT] to stop"); + rb->lcd_putsxy(2, 18, "[CENTRE] toggle"); + rb->lcd_putsxy(2, 28, "[TOPRIGHT] shuffle"); + rb->lcd_putsxy(2, 38, "[BOTTOMLEFT] solution"); + rb->lcd_putsxy(2, 48, "[BOTTOMRIGHT] step by step"); +#endif + rb->lcd_update(); #else /* HAVE_LCD_CHARCELLS */ 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 #elif CONFIG_KEYPAD == COWOND2_PAD #define QUIT BUTTON_POWER -#define LEFT BUTTON_MINUS -#define RIGHT BUTTON_PLUS -#define FIRE BUTTON_MENU #else #error INVADROX: Unsupported keypad #endif +#ifdef HAVE_TOUCHPAD +#ifndef QUIT +#define QUIT BUTTON_TOPLEFT +#endif +#ifndef LEFT +#define LEFT BUTTON_MIDLEFT +#endif +#ifndef RIGHT +#define RIGHT BUTTON_MIDRIGHT +#endif +#ifndef FIRE +#define FIRE BUTTON_CENTER +#endif +#endif #ifndef UNUSED #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 #define JEWELS_RC_CANCEL BUTTON_REC #elif CONFIG_KEYPAD == COWOND2_PAD -#define JEWELS_UP BUTTON_UP -#define JEWELS_DOWN BUTTON_DOWN -#define JEWELS_LEFT BUTTON_LEFT -#define JEWELS_RIGHT BUTTON_RIGHT -#define JEWELS_SELECT BUTTON_SELECT #define JEWELS_CANCEL BUTTON_POWER #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef JEWELS_UP +#define JEWELS_UP BUTTON_TOPMIDDLE +#endif +#ifndef JEWELS_DOWN +#define JEWELS_DOWN BUTTON_BOTTOMMIDDLE +#endif +#ifndef JEWELS_LEFT +#define JEWELS_LEFT BUTTON_MIDLEFT +#endif +#ifndef JEWELS_RIGHT +#define JEWELS_RIGHT BUTTON_MIDRIGHT +#endif +#ifndef JEWELS_SELECT +#define JEWELS_SELECT BUTTON_CENTER +#endif +#ifndef JEWELS_CANCEL +#define JEWELS_CANCEL BUTTON_TOPLEFT +#endif +#endif + /* use 30x30 tiles (iPod Video, Gigabeat) */ #if (LCD_HEIGHT == 240) && (LCD_WIDTH == 320) || \ ((LCD_HEIGHT == 320) && (LCD_WIDTH == 240)) @@ -1574,14 +1590,6 @@ static int jewels_main(struct game_context* bj) { rb->lcd_puts(0, 11, "Long PLAY for menu"); rb->lcd_puts(0, 12, "REC to cancel"); #elif CONFIG_KEYPAD == COWOND2_PAD - rb->lcd_puts(0, 2, "Swap pairs of jewels to"); - rb->lcd_puts(0, 3, "form connected segments"); - rb->lcd_puts(0, 4, "of three or more of the"); - rb->lcd_puts(0, 5, "same type."); - rb->lcd_puts(0, 7, "Controls:"); - rb->lcd_puts(0, 8, "Directions to move"); - rb->lcd_puts(0, 9, "SELECT to select"); - rb->lcd_puts(0, 10, "Long SELECT to show menu"); rb->lcd_puts(0, 11, "POWER to cancel"); #elif CONFIG_KEYPAD == GIGABEAT_S_PAD rb->lcd_puts(0, 2, "Swap pairs of jewels to"); @@ -1596,6 +1604,17 @@ static int jewels_main(struct game_context* bj) { #else #warning: missing help text. #endif + +#ifdef HAVE_TOUCHPAD + rb->lcd_puts(0, 2, "Swap pairs of jewels to"); + rb->lcd_puts(0, 3, "form connected segments"); + rb->lcd_puts(0, 4, "of three or more of the"); + rb->lcd_puts(0, 5, "same type."); + rb->lcd_puts(0, 7, "Controls:"); + rb->lcd_puts(0, 8, "Directions to move"); + rb->lcd_puts(0, 9, "CENTER to select"); + rb->lcd_puts(0, 10, "Long CENTER to show menu"); +#endif rb->lcd_update(); while(true) { button = rb->button_get(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 #define JPEG_PREVIOUS BUTTON_RC_MENU #elif CONFIG_KEYPAD == COWOND2_PAD -#define JPEG_ZOOM_IN BUTTON_PLUS -#define JPEG_ZOOM_OUT BUTTON_MINUS -#define JPEG_UP BUTTON_UP -#define JPEG_DOWN BUTTON_DOWN -#define JPEG_LEFT BUTTON_LEFT -#define JPEG_RIGHT BUTTON_RIGHT -#define JPEG_MENU BUTTON_MENU -#define JPEG_NEXT (BUTTON_SELECT|BUTTON_PLUS) -#define JPEG_PREVIOUS (BUTTON_SELECT|BUTTON_MINUS) #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef JPEG_UP +#define JPEG_UP BUTTON_TOPMIDDLE +#endif +#ifndef JPEG_DOWN +#define JPEG_DOWN BUTTON_BOTTOMMIDDLE +#endif +#ifndef JPEG_LEFT +#define JPEG_LEFT BUTTON_MIDLEFT +#endif +#ifndef JPEG_RIGHT +#define JPEG_RIGHT BUTTON_MIDRIGHT +#endif +#ifndef JPEG_ZOOM_IN +#define JPEG_ZOOM_IN BUTTON_TOPRIGHT +#endif +#ifndef JPEG_ZOOM_OUT +#define JPEG_ZOOM_OUT BUTTON_TOPLEFT +#endif +#ifndef JPEG_MENU +#define JPEG_MENU (BUTTON_CENTER|BUTTON_REL) +#endif +#ifndef JPEG_NEXT +#define JPEG_NEXT BUTTON_BOTTOMRIGHT +#endif +#ifndef JPEG_PREVIOUS +#define JPEG_PREVIOUS BUTTON_BOTTOMLEFT +#endif +#endif + /* different graphics libraries */ #if LCD_DEPTH < 8 #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[] = { #elif CONFIG_KEYPAD == COWOND2_PAD #define LP_QUIT BUTTON_POWER -#define LP_DEC_X BUTTON_LEFT -#define LP_INC_X BUTTON_RIGHT -#define LP_DEC_Y BUTTON_DOWN -#define LP_INC_Y BUTTON_UP #else #define LP_QUIT BUTTON_OFF @@ -162,6 +158,23 @@ const unsigned char rockbox16x7[] = { #endif #endif /* CONFIG_REMOTE_KEYPAD */ +#ifdef HAVE_TOUCHPAD +#ifndef LP_QUIT +#define LP_QUIT BUTTON_TOPLEFT +#endif +#ifndef LP_DEC_X +#define LP_DEC_X BUTTON_MIDLEFT +#endif +#ifndef LP_INC_X +#define LP_INC_X BUTTON_MIDRIGHT +#endif +#ifndef LP_DEC_Y +#define LP_DEC_Y BUTTON_TOPMIDDLE +#endif +#ifndef LP_INC_Y +#define LP_INC_Y BUTTON_BOTTOMMIDDLE +#endif +#endif enum plugin_status plugin_start(struct plugin_api* api, void* parameter) { int button; @@ -289,3 +302,4 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) { } } + 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 #elif CONFIG_KEYPAD == COWOND2_PAD #define MANDELBROT_QUIT BUTTON_POWER -#define MANDELBROT_UP BUTTON_UP -#define MANDELBROT_DOWN BUTTON_DOWN -#define MANDELBROT_LEFT BUTTON_LEFT -#define MANDELBROT_RIGHT BUTTON_RIGHT -#define MANDELBROT_ZOOM_IN_PRE BUTTON_SELECT -#define MANDELBROT_ZOOM_IN (BUTTON_SELECT | BUTTON_PLUS) -#define MANDELBROT_ZOOM_OUT_PRE BUTTON_SELECT -#define MANDELBROT_ZOOM_OUT (BUTTON_SELECT | BUTTON_MINUS) -#define MANDELBROT_MAXITER_INC BUTTON_PLUS -#define MANDELBROT_MAXITER_DEC BUTTON_MINUS -#define MANDELBROT_RESET BUTTON_MENU #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef MANDELBROT_UP +#define MANDELBROT_UP BUTTON_TOPMIDDLE +#endif +#ifndef MANDELBROT_DOWN +#define MANDELBROT_DOWN BUTTON_BOTTOMMIDDLE +#endif +#ifndef MANDELBROT_LEFT +#define MANDELBROT_LEFT BUTTON_MIDLEFT +#endif +#ifndef MANDELBROT_RIGHT +#define MANDELBROT_RIGHT BUTTON_MIDRIGHT +#endif +#ifndef MANDELBROT_ZOOM_IN_PRE +#define MANDELBROT_ZOOM_IN_PRE BUTTON_TOPRIGHT +#endif +#ifndef MANDELBROT_ZOOM_IN +#define MANDELBROT_ZOOM_IN (BUTTON_TOPRIGHT | BUTTON_REL) +#endif +#ifndef MANDELBROT_ZOOM_OUT_PRE +#define MANDELBROT_ZOOM_OUT_PRE BUTTON_TOPLEFT +#endif +#ifndef MANDELBROT_ZOOM_OUT +#define MANDELBROT_ZOOM_OUT (BUTTON_TOPLEFT | BUTTON_REL) +#endif +#ifndef MANDELBROT_MAXITER_INC +#define MANDELBROT_MAXITER_INC BUTTON_BOTTOMRIGHT +#endif +#ifndef MANDELBROT_MAXITER_DEC +#define MANDELBROT_MAXITER_DEC BUTTON_BOTTOMLEFT +#endif +#ifndef MANDELBROT_RESET +#define MANDELBROT_RESET BUTTON_CENTER +#endif +#endif + #if LCD_DEPTH < 8 #define USEGSLIB #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[]; #define MATRIX_PAUSE BUTTON_RC_PLAY #elif (CONFIG_KEYPAD == COWOND2_PAD) #define MATRIX_EXIT BUTTON_POWER -#define MATRIX_SLEEP_MORE BUTTON_PLUS -#define MATRIX_SLEEP_LESS BUTTON_MINUS -#define MATRIX_PAUSE BUTTON_MENU #else #error Unsupported keypad #endif +#ifdef HAVE_TOUCHPAD +#ifndef MATRIX_EXIT +#define MATRIX_EXIT BUTTON_TOPLEFT +#endif +#ifndef MATRIX_SLEEP_MORE +#define MATRIX_SLEEP_MORE BUTTON_MIDRIGHT +#endif +#ifndef MATRIX_SLEEP_LESS +#define MATRIX_SLEEP_LESS BUTTON_MIDLEFT +#endif +#ifndef MATRIX_PAUSE +#define MATRIX_PAUSE BUTTON_CENTER +#endif +#endif + #define SLEEP HZ/50 /* 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 #elif CONFIG_KEYPAD == COWOND2_PAD #define BTN_QUIT BUTTON_POWER -#define BTN_RIGHT BUTTON_RIGHT -#define BTN_LEFT BUTTON_LEFT -#define BTN_UP BUTTON_UP -#define BTN_DOWN BUTTON_DOWN -#define BTN_PLAY BUTTON_SELECT #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef BTN_QUIT +#define BTN_QUIT BUTTON_TOPLEFT +#endif +#ifndef BTN_RIGHT +#define BTN_RIGHT BUTTON_MIDRIGHT +#endif +#ifndef BTN_LEFT +#define BTN_LEFT BUTTON_MIDLEFT +#endif +#ifndef BTN_UP +#define BTN_UP BUTTON_TOPMIDDLE +#endif +#ifndef BTN_DOWN +#define BTN_DOWN BUTTON_BOTTOMMIDDLE +#endif +#ifndef BTN_PLAY +#define BTN_PLAY BUTTON_CENTER +#endif +#endif + #undef SYNC #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 { # define MINESWP_INFO BUTTON_RC_MENU #elif (CONFIG_KEYPAD == COWOND2_PAD) -# define MINESWP_LEFT BUTTON_LEFT -# define MINESWP_RIGHT BUTTON_RIGHT -# define MINESWP_UP BUTTON_UP -# define MINESWP_DOWN BUTTON_DOWN # define MINESWP_QUIT BUTTON_POWER -# define MINESWP_TOGGLE BUTTON_SELECT -# define MINESWP_DISCOVER BUTTON_MENU -# define MINESWP_INFO (BUTTON_MENU | BUTTON_SELECT) #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef MINESWP_QUIT +# define MINESWP_QUIT BUTTON_TOPLEFT +#endif +#ifndef MINESWP_LEFT +# define MINESWP_LEFT BUTTON_MIDLEFT +#endif +#ifndef MINESWP_RIGHT +# define MINESWP_RIGHT BUTTON_MIDRIGHT +#endif +#ifndef MINESWP_UP +# define MINESWP_UP BUTTON_TOPMIDDLE +#endif +#ifndef MINESWP_DOWN +# define MINESWP_DOWN BUTTON_BOTTOMMIDDLE +#endif +#ifndef MINESWP_TOGGLE +# define MINESWP_TOGGLE BUTTON_CENTER +#endif +#ifndef MINESWP_DISCOVER +# define MINESWP_DISCOVER BUTTON_BOTTOMLEFT +#endif +#ifndef MINESWP_INFO +# define MINESWP_INFO BUTTON_BOTTOMRIGHT +#endif +#endif + /* here is a global api struct pointer. while not strictly necessary, * it's nice not to have to pass the api pointer in all function calls * 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 #elif CONFIG_KEYPAD == COWOND2_PAD #define MOSAIQUE_QUIT BUTTON_POWER -#define MOSAIQUE_SPEED BUTTON_RIGHT -#define MOSAIQUE_RESTART BUTTON_MENU #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef MOSAIQUE_QUIT +#define MOSAIQUE_QUIT BUTTON_TOPLEFT +#endif +#ifndef MOSAIQUE_SPEED +#define MOSAIQUE_SPEED BUTTON_MIDRIGHT +#endif +#ifndef MOSAIQUE_RESTART +#define MOSAIQUE_RESTART BUTTON_CENTER +#endif +#endif + enum plugin_status plugin_start(struct plugin_api* api, void* parameter) { int button; @@ -231,3 +241,4 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) } } + 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) #define MP3ENC_DONE BUTTON_RC_REC #define MP3ENC_SELECT BUTTON_RC_FF #elif CONFIG_KEYPAD == COWOND2_PAD -#define MP3ENC_PREV BUTTON_UP -#define MP3ENC_NEXT BUTTON_DOWN #define MP3ENC_DONE BUTTON_POWER -#define MP3ENC_SELECT BUTTON_SELECT #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef MP3ENC_PREV +#define MP3ENC_PREV BUTTON_MIDLEFT +#endif +#ifndef MP3ENC_NEXT +#define MP3ENC_NEXT BUTTON_MIDRIGHT +#endif +#ifndef MP3ENC_DONE +#define MP3ENC_DONE BUTTON_TOPLEFT +#endif +#ifndef MP3ENC_SELECT +#define MP3ENC_SELECT BUTTON_CENTER +#endif +#endif + enum plugin_status plugin_start(struct plugin_api* api, void* parameter) { 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; #define MPEG_START_TIME_EXIT BUTTON_RC_REC #elif CONFIG_KEYPAD == COWOND2_PAD -#define MPEG_START_TIME_SELECT BUTTON_SELECT -#define MPEG_START_TIME_SCROLL_UP BUTTON_PLUS -#define MPEG_START_TIME_SCROLL_DOWN BUTTON_MINUS -#define MPEG_START_TIME_LEFT BUTTON_LEFT -#define MPEG_START_TIME_RIGHT BUTTON_RIGHT -#define MPEG_START_TIME_UP BUTTON_UP -#define MPEG_START_TIME_DOWN BUTTON_DOWN #define MPEG_START_TIME_EXIT BUTTON_POWER #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef MPEG_START_TIME_SELECT +#define MPEG_START_TIME_SELECT BUTTON_CENTER +#endif +#ifndef MPEG_START_TIME_SCROLL_UP +#define MPEG_START_TIME_SCROLL_UP BUTTON_TOPRIGHT +#endif +#ifndef MPEG_START_TIME_SCROLL_DOWN +#define MPEG_START_TIME_SCROLL_DOWN BUTTON_TOPLEFT +#endif +#ifndef MPEG_START_TIME_LEFT +#define MPEG_START_TIME_LEFT BUTTON_MIDLEFT +#endif +#ifndef MPEG_START_TIME_RIGHT +#define MPEG_START_TIME_RIGHT BUTTON_MIDRIGHT +#endif +#ifndef MPEG_START_TIME_UP +#define MPEG_START_TIME_UP BUTTON_TOPMIDDLE +#endif +#ifndef MPEG_START_TIME_DOWN +#define MPEG_START_TIME_DOWN BUTTON_BOTTOMMIDDLE +#endif +#ifndef MPEG_START_TIME_EXIT +#define MPEG_START_TIME_EXIT BUTTON_TOPLEFT +#endif +#endif + static struct configdata config[] = { {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 #define MPEG_FF BUTTON_RC_FF #elif CONFIG_KEYPAD == COWOND2_PAD -#define MPEG_MENU BUTTON_MENU -#define MPEG_STOP BUTTON_POWER -#define MPEG_PAUSE BUTTON_SELECT +#define MPEG_MENU (BUTTON_MENU|BUTTON_REL) +//#define MPEG_STOP BUTTON_POWER #define MPEG_VOLDOWN BUTTON_MINUS #define MPEG_VOLUP BUTTON_PLUS -#define MPEG_RW BUTTON_LEFT -#define MPEG_FF BUTTON_RIGHT #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef MPEG_MENU +#define MPEG_MENU (BUTTON_TOPRIGHT|BUTTON_REL) +#endif +#ifndef MPEG_STOP +#define MPEG_STOP BUTTON_TOPLEFT +#endif +#ifndef MPEG_PAUSE +#define MPEG_PAUSE BUTTON_CENTER +#endif +#ifndef MPEG_VOLDOWN +#define MPEG_VOLDOWN BUTTON_TOPMIDDLE +#endif +#ifndef MPEG_VOLUP +#define MPEG_VOLUP BUTTON_BOTTOMMIDDLE +#endif +#ifndef MPEG_RW +#define MPEG_RW BUTTON_MIDLEFT +#endif +#ifndef MPEG_FF +#define MPEG_FF BUTTON_MIDRIGHT +#endif +#endif + struct plugin_api* rb; CACHE_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 #elif CONFIG_KEYPAD == COWOND2_PAD #define OSCILLOSCOPE_QUIT BUTTON_POWER -#define OSCILLOSCOPE_DRAWMODE_PRE (BUTTON_LEFT | BUTTON_MENU) -#define OSCILLOSCOPE_DRAWMODE (BUTTON_RIGHT | BUTTON_MENU) -#define OSCILLOSCOPE_ADVMODE (BUTTON_SELECT|BUTTON_MENU) -#define OSCILLOSCOPE_ORIENTATION_PRE (BUTTON_UP | BUTTON_MENU) -#define OSCILLOSCOPE_ORIENTATION (BUTTON_DOWN | BUTTON_MENU) -#define OSCILLOSCOPE_PAUSE BUTTON_SELECT -#define OSCILLOSCOPE_SPEED_UP BUTTON_UP -#define OSCILLOSCOPE_SPEED_DOWN BUTTON_DOWN #define OSCILLOSCOPE_VOL_UP BUTTON_PLUS #define OSCILLOSCOPE_VOL_DOWN BUTTON_MINUS @@ -198,6 +190,36 @@ PLUGIN_HEADER #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef OSCILLOSCOPE_QUIT +#define OSCILLOSCOPE_QUIT BUTTON_TOPLEFT +#endif +#ifndef OSCILLOSCOPE_DRAWMODE +#define OSCILLOSCOPE_DRAWMODE BUTTON_TOPMIDDLE +#endif +#ifndef OSCILLOSCOPE_ADVMODE +#define OSCILLOSCOPE_ADVMODE BUTTON_BOTTOMMIDDLE +#endif +#ifndef OSCILLOSCOPE_ORIENTATION +#define OSCILLOSCOPE_ORIENTATION BUTTON_BOTTOMLEFT +#endif +#ifndef OSCILLOSCOPE_PAUSE +#define OSCILLOSCOPE_PAUSE BUTTON_CENTER +#endif +#ifndef OSCILLOSCOPE_SPEED_UP +#define OSCILLOSCOPE_SPEED_UP BUTTON_MIDRIGHT +#endif +#ifndef OSCILLOSCOPE_SPEED_DOWN +#define OSCILLOSCOPE_SPEED_DOWN BUTTON_MIDLEFT +#endif +#ifndef OSCILLOSCOPE_VOL_UP +#define OSCILLOSCOPE_VOL_UP BUTTON_TOPRIGHT +#endif +#ifndef OSCILLOSCOPE_VOL_DOWN +#define OSCILLOSCOPE_VOL_DOWN BUTTON_BOTTOMRIGHT +#endif +#endif + /* colours */ #if LCD_DEPTH > 1 #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 @@ #elif CONFIG_KEYPAD == COWOND2_PAD -#define PACMAN_UP BUTTON_UP -#define PACMAN_DOWN BUTTON_DOWN -#define PACMAN_LEFT BUTTON_LEFT -#define PACMAN_RIGHT BUTTON_RIGHT -#define PACMAN_1UP BUTTON_MINUS -#define PACMAN_2UP BUTTON_PLUS -#define PACMAN_COIN_PRE BUTTON_SELECT -#define PACMAN_COIN (BUTTON_MENU | BUTTON_SELECT) -#define PACMAN_MENU BUTTON_MENU +#define PACMAN_MENU (BUTTON_MENU|BUTTON_REL) #else @@ -148,6 +140,33 @@ #endif +#ifdef HAVE_TOUCHPAD +#ifndef PACMAN_UP +#define PACMAN_UP BUTTON_TOPMIDDLE +#endif +#ifndef PACMAN_DOWN +#define PACMAN_DOWN BUTTON_BOTTOMMIDDLE +#endif +#ifndef PACMAN_LEFT +#define PACMAN_LEFT BUTTON_MIDLEFT +#endif +#ifndef PACMAN_RIGHT +#define PACMAN_RIGHT BUTTON_MIDRIGHT +#endif +#ifndef PACMAN_1UP +#define PACMAN_1UP BUTTON_BOTTOMLEFT +#endif +#ifndef PACMAN_2UP +#define PACMAN_2UP BUTTON_BOTTOMRIGHT +#endif +#ifndef PACMAN_COIN +#define PACMAN_COIN BUTTON_CENTER +#endif +#ifndef PACMAN_MENU +#define PACMAN_MENU (BUTTON_TOPLEFT|BUTTON_REL) +#endif +#endif + #if (LCD_HEIGHT >= 288) #define XOFS ((LCD_WIDTH-224)/2) #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 #define LVL_DOWN_TEXT "VOL-" #elif CONFIG_KEYPAD == COWOND2_PAD -#define PEGBOX_SAVE BUTTON_SELECT #define PEGBOX_QUIT BUTTON_POWER -#define PEGBOX_RESTART BUTTON_MENU -#define PEGBOX_LVL_UP BUTTON_PLUS -#define PEGBOX_LVL_DOWN BUTTON_MINUS -#define PEGBOX_UP BUTTON_UP -#define PEGBOX_DOWN BUTTON_DOWN -#define PEGBOX_RIGHT BUTTON_RIGHT -#define PEGBOX_LEFT BUTTON_LEFT -#define SAVE_TEXT "SELECT" #define QUIT_TEXT "POWER" -#define RESTART_TEXT "MENU" -#define LVL_UP_TEXT "PLUS" -#define LVL_DOWN_TEXT "MINUS" #else #error Unsupported keymap! #endif +#ifdef HAVE_TOUCHPAD +#ifndef PEGBOX_QUIT +#define PEGBOX_QUIT BUTTON_TOPLEFT +#endif +#ifndef PEGBOX_SAVE +#define PEGBOX_SAVE BUTTON_CENTER +#endif +#ifndef PEGBOX_RESTART +#define PEGBOX_RESTART BUTTON_TOPRIGHT +#endif +#ifndef PEGBOX_LVL_UP +#define PEGBOX_LVL_UP BUTTON_BOTTOMLEFT +#endif +#ifndef PEGBOX_LVL_DOWN +#define PEGBOX_LVL_DOWN BUTTON_BOTTOMRIGHT +#endif +#ifndef PEGBOX_UP +#define PEGBOX_UP BUTTON_TOPMIDDLE +#endif +#ifndef PEGBOX_DOWN +#define PEGBOX_DOWN BUTTON_BOTTOMMIDDLE +#endif +#ifndef PEGBOX_RIGHT +#define PEGBOX_RIGHT BUTTON_MIDRIGHT +#endif +#ifndef PEGBOX_LEFT +#define PEGBOX_LEFT BUTTON_MIDLEFT +#endif +#ifndef SAVE_TEXT +#define SAVE_TEXT "CENTER" +#endif +#ifndef QUIT_TEXT +#define QUIT_TEXT "TOPLEFT" +#endif +#ifndef RESTART_TEXT +#define RESTART_TEXT "TOPRIGHT" +#endif +#ifndef LVL_UP_TEXT +#define LVL_UP_TEXT "BOTTOMLEFT" +#endif +#ifndef LVL_DOWN_TEXT +#define LVL_DOWN_TEXT "BOTTOMRIGHT" +#endif +#endif + #if (LCD_WIDTH >= 320) && (LCD_HEIGHT >= 240) #define LEVEL_TEXT_X 59 #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; #elif (CONFIG_KEYPAD == COWOND2_PAD) #define PLASMA_QUIT BUTTON_POWER -#define PLASMA_INCREASE_FREQUENCY BUTTON_UP -#define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN -#else -#define PLASMA_QUIT BUTTON_OFF +// the new button definitions should be placed here +#endif + +#ifdef HAVE_TOUCHPAD +#ifndef PLASMA_QUIT +#define PLASMA_QUIT BUTTON_TOPLEFT +#endif +#ifndef PLASMA_INCREASE_FREQUENCY +#define PLASMA_INCREASE_FREQUENCY BUTTON_MIDRIGHT +#endif +#ifndef PLASMA_DECREASE_FREQUENCY +#define PLASMA_DECREASE_FREQUENCY BUTTON_MIDLEFT +#endif + +#endif + +// if no button definitions specified and no touchpad use default +#ifndef PLASMA_QUIT +#define PLASMA_QUIT BUTTON_OFF +#endif +#ifndef PLASMA_INCREASE_FREQUENCY #define PLASMA_INCREASE_FREQUENCY BUTTON_UP +#endif +#ifndef PLASMA_DECREASE_FREQUENCY #define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN +#endif #if (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD) #define PLASMA_RC_QUIT BUTTON_RC_STOP @@ -128,8 +148,10 @@ static int plasma_frequency; #define PLASMA_REGEN_COLORS BUTTON_SELECT #elif CONFIG_KEYPAD == GIGABEAT_S_PAD #define PLASMA_REGEN_COLORS BUTTON_SELECT -#elif CONFIG_KEYPAD == COWOND2_PAD -#define PLASMA_REGEN_COLORS BUTTON_SELECT +#endif +#ifdef HAVE_TOUCHPAD +#ifndef PLASMA_REGEN_COLORS +#define PLASMA_REGEN_COLORS BUTTON_CENTER #endif #endif 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 #elif (CONFIG_KEYPAD == COWOND2_PAD) #define PONG_QUIT BUTTON_POWER -#define PONG_LEFT_UP BUTTON_UP -#define PONG_LEFT_DOWN BUTTON_DOWN -#define PONG_RIGHT_UP BUTTON_LEFT -#define PONG_RIGHT_DOWN BUTTON_RIGHT #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef PONG_QUIT +#define PONG_QUIT BUTTON_TOPMIDDLE +#endif +#ifndef PONG_LEFT_UP +#define PONG_LEFT_UP BUTTON_TOPLEFT +#endif +#ifndef PONG_LEFT_DOWN +#define PONG_LEFT_DOWN BUTTON_BOTTOMLEFT +#endif +#ifndef PONG_RIGHT_UP +#define PONG_RIGHT_UP BUTTON_TOPRIGHT +#endif +#ifndef PONG_RIGHT_DOWN +#define PONG_RIGHT_DOWN BUTTON_BOTTOMRIGHT +#endif +#ifndef PONG_PAUSE +#define PONG_PAUSE BUTTON_CENTER +#endif +#endif + static struct plugin_api* rb; struct 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 @@ #elif CONFIG_KEYPAD == COWOND2_PAD #define REVERSI_QUIT BUTTON_POWER -#define REVERSI_BUTTON_UP BUTTON_UP -#define REVERSI_BUTTON_DOWN BUTTON_DOWN -#define REVERSI_BUTTON_LEFT BUTTON_LEFT -#define REVERSI_BUTTON_RIGHT BUTTON_RIGHT -#define REVERSI_BUTTON_MAKE_MOVE BUTTON_SELECT #define REVERSI_BUTTON_MENU BUTTON_MENU #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef REVERSI_QUIT +#define REVERSI_QUIT BUTTON_TOPLEFT +#endif +#ifndef REVERSI_BUTTON_UP +#define REVERSI_BUTTON_UP BUTTON_TOPMIDDLE +#endif +#ifndef REVERSI_BUTTON_DOWN +#define REVERSI_BUTTON_DOWN BUTTON_BOTTOMMIDDLE +#endif +#ifndef REVERSI_BUTTON_LEFT +#define REVERSI_BUTTON_LEFT BUTTON_MIDLEFT +#endif +#ifndef REVERSI_BUTTON_RIGHT +#define REVERSI_BUTTON_RIGHT BUTTON_MIDRIGHT +#endif +#ifndef REVERSI_BUTTON_MAKE_MOVE +#define REVERSI_BUTTON_MAKE_MOVE BUTTON_CENTER +#endif +#ifndef REVERSI_BUTTON_MENU +#define REVERSI_BUTTON_MENU BUTTON_TOPRIGHT +#endif +#endif /* Modes for the cursor behaviour at the board edges */ typedef 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 #elif CONFIG_KEYPAD == COWOND2_PAD #define ROCKBLOX_OFF BUTTON_POWER -#define ROCKBLOX_ROTATE_RIGHT BUTTON_PLUS -#define ROCKBLOX_ROTATE_LEFT BUTTON_MINUS -#define ROCKBLOX_DOWN BUTTON_DOWN -#define ROCKBLOX_LEFT BUTTON_LEFT -#define ROCKBLOX_RIGHT BUTTON_RIGHT -#define ROCKBLOX_DROP BUTTON_SELECT #define ROCKBLOX_RESTART BUTTON_MENU #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef ROCKBLOX_OFF +#define ROCKBLOX_OFF BUTTON_TOPLEFT +#endif +#ifndef ROCKBLOX_ROTATE_RIGHT +#define ROCKBLOX_ROTATE_RIGHT BUTTON_BOTTOMRIGHT +#endif +#ifndef ROCKBLOX_ROTATE_LEFT +#define ROCKBLOX_ROTATE_LEFT BUTTON_BOTTOMLEFT +#endif +#ifndef ROCKBLOX_DOWN +#define ROCKBLOX_DOWN BUTTON_BOTTOMMIDDLE +#endif +#ifndef ROCKBLOX_LEFT +#define ROCKBLOX_LEFT BUTTON_MIDLEFT +#endif +#ifndef ROCKBLOX_RIGHT +#define ROCKBLOX_RIGHT BUTTON_MIDRIGHT +#endif +#ifndef ROCKBLOX_DROP +#define ROCKBLOX_DROP BUTTON_CENTER +#endif +#ifndef ROCKBLOX_RESTART +#define ROCKBLOX_RESTART BUTTON_TOPRIGHT +#endif +#endif + #define BLOCKS_NUM 7 #define EMPTY_BLOCK 7 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) fd = open(optionsave, O_RDONLY); if(fd < 0) /* no options to read, set defaults */ { +#ifdef HAVE_TOUCHPAD + options.LEFT=BUTTON_MIDLEFT; + options.RIGHT=BUTTON_MIDRIGHT; +#else options.LEFT=BUTTON_LEFT; options.RIGHT=BUTTON_RIGHT; +#endif #if CONFIG_KEYPAD == IRIVER_H100_PAD options.UP=BUTTON_UP; @@ -198,18 +203,22 @@ static void setoptions (void) options.SELECT=BUTTON_RC_MODE; options.MENU=BUTTON_POWER; #elif CONFIG_KEYPAD == COWOND2_PAD - options.UP=BUTTON_UP; - options.DOWN=BUTTON_DOWN; - options.A=BUTTON_LEFT; - options.B=BUTTON_RIGHT; - options.START=BUTTON_PLUS; - options.SELECT=BUTTON_SELECT; - options.MENU=BUTTON_MENU; #else #error No Keymap Defined! #endif +#ifdef HAVE_TOUCHPAD + options.UP=BUTTON_TOPMIDDLE; + options.DOWN=BUTTON_BOTTOMMIDDLE; + + options.A=BUTTON_MIDLEFT; + options.B=BUTTON_MIDRIGHT; + options.START=BUTTON_TOPRIGHT; + options.SELECT=BUTTON_CENTER; + options.MENU=BUTTON_TOPLEFT; +#endif + options.maxskip=4; options.fps=0; 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 #elif ( CONFIG_KEYPAD == COWOND2_PAD ) #define ROCKPAINT_QUIT BUTTON_POWER -#define ROCKPAINT_DRAW BUTTON_SELECT #define ROCKPAINT_MENU BUTTON_MENU -#define ROCKPAINT_TOOLBAR BUTTON_PLUS -#define ROCKPAINT_TOOLBAR2 BUTTON_MINUS -#define ROCKPAINT_UP BUTTON_UP -#define ROCKPAINT_DOWN BUTTON_DOWN -#define ROCKPAINT_LEFT BUTTON_LEFT -#define ROCKPAINT_RIGHT BUTTON_RIGHT #else #error "Please define keys for this keypad" #endif +#ifdef HAVE_TOUCHPAD +#ifndef ROCKPAINT_QUIT +#define ROCKPAINT_QUIT BUTTON_TOPLEFT +#endif +#ifndef ROCKPAINT_DRAW +#define ROCKPAINT_DRAW BUTTON_CENTER +#endif +#ifndef ROCKPAINT_MENU +#define ROCKPAINT_MENU BUTTON_TOPRIGHT +#endif +#ifndef ROCKPAINT_TOOLBAR +#define ROCKPAINT_TOOLBAR BUTTON_BOTTOMLEFT +#endif +#ifndef ROCKPAINT_TOOLBAR2 +#define ROCKPAINT_TOOLBAR2 BUTTON_BOTTOMRIGHT +#endif +#ifndef ROCKPAINT_UP +#define ROCKPAINT_UP BUTTON_TOPMIDDLE +#endif +#ifndef ROCKPAINT_DOWN +#define ROCKPAINT_DOWN BUTTON_BOTTOMMIDDLE +#endif +#ifndef ROCKPAINT_LEFT +#define ROCKPAINT_LEFT BUTTON_MIDLEFT +#endif +#ifndef ROCKPAINT_RIGHT +#define ROCKPAINT_RIGHT BUTTON_MIDRIGHT +#endif +#endif + /*********************************************************************** * Palette Default Colors ***********************************************************************/ 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 #elif (CONFIG_KEYPAD == COWOND2_PAD) #define PUZZLE_QUIT BUTTON_POWER -#define PUZZLE_LEFT BUTTON_LEFT -#define PUZZLE_RIGHT BUTTON_RIGHT -#define PUZZLE_UP BUTTON_UP -#define PUZZLE_DOWN BUTTON_DOWN -#define PUZZLE_SHUFFLE BUTTON_MENU -#define PUZZLE_PICTURE BUTTON_SELECT +#define PUZZLE_QUIT_TEXT "[POWER]" #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef PUZZLE_QUIT +#define PUZZLE_QUIT BUTTON_TOPLEFT +#endif +#ifndef PUZZLE_LEFT +#define PUZZLE_LEFT BUTTON_MIDLEFT +#endif +#ifndef PUZZLE_RIGHT +#define PUZZLE_RIGHT BUTTON_MIDRIGHT +#endif +#ifndef PUZZLE_UP +#define PUZZLE_UP BUTTON_TOPMIDDLE +#endif +#ifndef PUZZLE_DOWN +#define PUZZLE_DOWN BUTTON_BOTTOMMIDDLE +#endif +#ifndef PUZZLE_SHUFFLE +#define PUZZLE_SHUFFLE BUTTON_BOTTOMLEFT +#endif +#ifndef PUZZLE_PICTURE +#define PUZZLE_PICTURE BUTTON_CENTER +#endif +#ifndef PUZZLE_QUIT_TEXT +#define PUZZLE_QUIT_TEXT "[TOPLEFT]" +#endif +#ifndef PUZZLE_SHUFFLE_TEXT +#define PUZZLE_SHUFFLE_TEXT "[BOTTOMLEFT]" +#endif +#ifndef PUZZLE_PICTURE_TEXT +#define PUZZLE_PICTURE_TEXT "[CENTER]" +#endif +#endif #include "sliding_puzzle.h" #define IMAGE_WIDTH BMPWIDTH_sliding_puzzle @@ -647,6 +674,11 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) rb->lcd_putsxy(0, 28, "[MODE] shuffle"); rb->lcd_putsxy(0, 38, "[MENU] change pic"); #endif +#ifdef HAVE_TOUCHPAD + rb->lcd_putsxy(0, 18, PUZZLE_QUIT_TEXT " to stop"); + rb->lcd_putsxy(0, 28, PUZZLE_SHUFFLE_TEXT " shuffle"); + rb->lcd_putsxy(0, 38, PUZZLE_PICTURE_TEXT " change pic"); +#endif #ifdef HAVE_ALBUMART rb->lcd_putsxy(0,48," pic->albumart->num"); #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 #elif (CONFIG_KEYPAD == COWOND2_PAD) #define SNAKE_QUIT BUTTON_POWER -#define SNAKE_LEFT BUTTON_LEFT -#define SNAKE_RIGHT BUTTON_RIGHT -#define SNAKE_UP BUTTON_UP -#define SNAKE_DOWN BUTTON_DOWN -#define SNAKE_PLAYPAUSE BUTTON_MENU #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef SNAKE_QUIT +#define SNAKE_QUIT BUTTON_TOPLEFT +#endif +#ifndef SNAKE_LEFT +#define SNAKE_LEFT BUTTON_MIDLEFT +#endif +#ifndef SNAKE_RIGHT +#define SNAKE_RIGHT BUTTON_MIDRIGHT +#endif +#ifndef SNAKE_UP +#define SNAKE_UP BUTTON_TOPMIDDLE +#endif +#ifndef SNAKE_DOWN +#define SNAKE_DOWN BUTTON_BOTTOMMIDDLE +#endif +#ifndef SNAKE_PLAYPAUSE +#define SNAKE_PLAYPAUSE BUTTON_CENTER +#endif +#endif + #define BOARD_WIDTH (LCD_WIDTH/4) #define BOARD_HEIGHT (LCD_HEIGHT/4) 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 #define SNAKE2_PLAYPAUSE_TEXT "Play" #elif (CONFIG_KEYPAD == COWOND2_PAD) -#define SNAKE2_LEFT BUTTON_LEFT -#define SNAKE2_RIGHT BUTTON_RIGHT -#define SNAKE2_UP BUTTON_UP -#define SNAKE2_DOWN BUTTON_DOWN #define SNAKE2_QUIT BUTTON_POWER -#define SNAKE2_LEVEL_UP BUTTON_UP -#define SNAKE2_LEVEL_DOWN BUTTON_DOWN -#define SNAKE2_MAZE_NEXT BUTTON_RIGHT -#define SNAKE2_MAZE_LAST BUTTON_LEFT -#define SNAKE2_SELECT_TYPE BUTTON_MENU -#define SNAKE2_PLAYPAUSE BUTTON_SELECT -#define SNAKE2_PLAYPAUSE_TEXT "Select" #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef SNAKE2_LEFT +#define SNAKE2_LEFT BUTTON_MIDLEFT +#endif +#ifndef SNAKE2_RIGHT +#define SNAKE2_RIGHT BUTTON_MIDRIGHT +#endif +#ifndef SNAKE2_UP +#define SNAKE2_UP BUTTON_TOPMIDDLE +#endif +#ifndef SNAKE2_DOWN +#define SNAKE2_DOWN BUTTON_BOTTOMMIDDLE +#endif +#ifndef SNAKE2_QUIT +#define SNAKE2_QUIT BUTTON_TOPLEFT +#endif +#ifndef SNAKE2_LEVEL_UP +#define SNAKE2_LEVEL_UP BUTTON_TOPRIGHT +#endif +#ifndef SNAKE2_LEVEL_DOWN +#define SNAKE2_LEVEL_DOWN BUTTON_TOPLEFT +#endif +#ifndef SNAKE2_MAZE_NEXT +#define SNAKE2_MAZE_NEXT BUTTON_TOPMIDDLE +#endif +#ifndef SNAKE2_MAZE_LAST +#define SNAKE2_MAZE_LAST BUTTON_BOTTOMMIDDLE +#endif +#ifndef SNAKE2_SELECT_TYPE +#define SNAKE2_SELECT_TYPE BUTTON_BOTTOMLEFT +#endif +#ifndef SNAKE2_PLAYPAUSE +#define SNAKE2_PLAYPAUSE BUTTON_CENTER +#endif +#ifndef SNAKE2_PLAYPAUSE_TEXT +#define SNAKE2_PLAYPAUSE_TEXT "CENTER" +#endif +#endif + static int max_levels = 0; static char (*level_cache)[HEIGHT][WIDTH]; 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[]; #define SOKOBAN_RC_MENU BUTTON_REC #elif CONFIG_KEYPAD == COWOND2_PAD -#define SOKOBAN_LEFT BUTTON_LEFT -#define SOKOBAN_RIGHT BUTTON_RIGHT -#define SOKOBAN_UP BUTTON_UP -#define SOKOBAN_DOWN BUTTON_DOWN #define SOKOBAN_MENU BUTTON_MENU -#define SOKOBAN_UNDO_PRE BUTTON_PLUS -#define SOKOBAN_UNDO (BUTTON_LEFT|BUTTON_MENU) -#define SOKOBAN_REDO (BUTTON_RIGHT | BUTTON_MENU) -#define SOKOBAN_LEVEL_DOWN (BUTTON_MENU | BUTTON_DOWN) -#define SOKOBAN_LEVEL_UP (BUTTON_MENU | BUTTON_UP) -#define SOKOBAN_LEVEL_REPEAT (BUTTON_SELECT|BUTTON_MENU) -#define SOKOBAN_PAUSE BUTTON_SELECT -#define BUTTON_SAVE BUTTON_SELECT -#define BUTTON_SAVE_NAME "SELECT" +#define SOKOBAN_MENU_NAME "[MENU]" #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef SOKOBAN_LEFT +#define SOKOBAN_LEFT BUTTON_MIDLEFT +#endif +#ifndef SOKOBAN_RIGHT +#define SOKOBAN_RIGHT BUTTON_MIDRIGHT +#endif +#ifndef SOKOBAN_UP +#define SOKOBAN_UP BUTTON_TOPMIDDLE +#endif +#ifndef SOKOBAN_DOWN +#define SOKOBAN_DOWN BUTTON_BOTTOMMIDDLE +#endif +#ifndef SOKOBAN_MENU +#define SOKOBAN_MENU BUTTON_TOPLEFT +#define SOKOBAN_MENU_NAME "[TOPLEFT]" +#endif +#ifndef SOKOBAN_UNDO +#define SOKOBAN_UNDO BUTTON_BOTTOMRIGHT +#define SOKOBAN_UNDO_NAME "[BOTTOMRIGHT]" +#endif +#ifndef SOKOBAN_REDO +#define SOKOBAN_REDO BUTTON_BOTTOMLEFT +#define SOKOBAN_REDO_NAME "[BOTTOMLEFT]" +#endif +#ifndef SOKOBAN_PAUSE +#define SOKOBAN_PAUSE BUTTON_CENTER +#define SOKOBAN_PAUSE_NAME "[CENTER]" +#endif +#ifndef SOKOBAN_LEVEL_REPEAT +#define SOKOBAN_LEVEL_REPEAT BUTTON_TOPRIGHT +#define SOKOBAN_LEVEL_REPEAT_NAME "[TOPRIGHT]" +#endif +#ifndef BUTTON_SAVE +#define BUTTON_SAVE BUTTON_CENTER +#define BUTTON_SAVE_NAME "CENTER" +#endif +#endif + #define SOKOBAN_FONT FONT_SYSFIXED @@ -1261,6 +1288,14 @@ static int sokoban_menu(void) rb->lcd_putsxy(3, 56, "[SELECT+UP] Next Level"); #endif +#ifdef HAVE_TOUCHPAD + rb->lcd_putsxy(3, 6, SOKOBAN_MENU_NAME " Menu"); + rb->lcd_putsxy(3, 16, SOKOBAN_UNDO_NAME " Undo"); + rb->lcd_putsxy(3, 26, SOKOBAN_REDO_NAME " Redo"); + rb->lcd_putsxy(3, 36, SOKOBAN_PAUSE_NAME " Pause"); + rb->lcd_putsxy(3, 46, SOKOBAN_LEVEL_REPEAT_NAME " Restart Level"); +#endif + FOR_NB_SCREENS(i) rb->screens[i]->update(); 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; #elif (CONFIG_KEYPAD == COWOND2_PAD) # define SOL_QUIT BUTTON_POWER -# define SOL_UP BUTTON_UP -# define SOL_DOWN BUTTON_DOWN -# define SOL_LEFT_PRE BUTTON_LEFT -# define SOL_LEFT (BUTTON_LEFT | BUTTON_REL) -# define SOL_RIGHT_PRE BUTTON_RIGHT -# define SOL_RIGHT (BUTTON_RIGHT | BUTTON_REL) -# define SOL_MOVE BUTTON_SELECT -# define SOL_DRAW_PRE BUTTON_LEFT -# define SOL_DRAW (BUTTON_LEFT | BUTTON_MENU) -# define SOL_REM2CUR BUTTON_PLUS -# define SOL_CUR2STACK BUTTON_MINUS -# define SOL_REM2STACK_PRE BUTTON_RIGHT -# define SOL_REM2STACK (BUTTON_RIGHT | BUTTON_MENU) -# define HK_MOVE "PLAY" -# define HK_DRAW "LEFT.." -# define HK_REM2CUR "FF" -# define HK_CUR2STACK "REW" -# define HK_REM2STACK "RIGHT.." #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +//#ifndef SOL_QUIT +//# define SOL_QUIT BUTTON_TOPLEFT +//endif +#ifndef SOL_UP +# define SOL_UP BUTTON_TOPMIDDLE +#endif +#ifndef SOL_DOWN +# define SOL_DOWN BUTTON_BOTTOMMIDDLE +#endif +#ifndef SOL_LEFT +# define SOL_LEFT BUTTON_MIDLEFT +#endif +#ifndef SOL_RIGHT +# define SOL_RIGHT BUTTON_MIDRIGHT +#endif +#ifndef SOL_MOVE +# define SOL_MOVE BUTTON_CENTER +# define HK_MOVE "CENTRE" +#endif +#ifndef SOL_DRAW +# define SOL_DRAW BUTTON_TOPLEFT +# define HK_DRAW "TOPLEFT" +#endif +#ifndef SOL_REM2CUR +# define SOL_REM2CUR BUTTON_TOPRIGHT +# define HK_REM2CUR "TOPRIGHT" +#endif +#ifndef SOL_CUR2STACK +# define SOL_CUR2STACK BUTTON_BOTTOMLEFT +# define HK_CUR2STACK "BOTTOMLEFT" +#endif +#ifndef SOL_REM2STACK +# define SOL_REM2STACK BUTTON_BOTTOMRIGHT +# define HK_REM2STACK "BOTTOMRIGHT" +#endif + +#endif + #ifndef HK_LR # define HK_LR "LEFT/RIGHT" #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 */ #define AST_FIRE_REP (BUTTON_RC_MODE | BUTTON_REPEAT) #elif (CONFIG_KEYPAD == COWOND2_PAD) -#define AST_PAUSE BUTTON_SELECT #define AST_QUIT BUTTON_POWER -#define AST_THRUST_REP BUTTON_UP | BUTTON_MENU -#define AST_THRUST BUTTON_UP -#define AST_HYPERSPACE BUTTON_DOWN -#define AST_LEFT BUTTON_LEFT -#define AST_LEFT_REP BUTTON_LEFT | BUTTON_MENU -#define AST_RIGHT BUTTON_RIGHT -#define AST_RIGHT_REP (BUTTON_RIGHT | BUTTON_MENU) -#define AST_FIRE BUTTON_PLUS -#define AST_FIRE_REP BUTTON_PLUS | BUTTON_MENU #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef AST_PAUSE +#define AST_PAUSE BUTTON_CENTER +#endif +#ifndef AST_QUIT +#define AST_QUIT BUTTON_TOPLEFT +#endif +#ifndef AST_THRUST_REP +#define AST_THRUST_REP (BUTTON_TOPMIDDLE | BUTTON_REPEAT) +#endif +#ifndef AST_THRUST +#define AST_THRUST BUTTON_TOPMIDDLE +#endif +#ifndef AST_HYPERSPACE +#define AST_HYPERSPACE BUTTON_TOPRIGHT +#endif +#ifndef AST_LEFT +#define AST_LEFT BUTTON_MIDLEFT +#endif +#ifndef AST_LEFT_REP +#define AST_LEFT_REP (BUTTON_MIDLEFT | BUTTON_REPEAT) +#endif +#ifndef AST_RIGHT +#define AST_RIGHT BUTTON_MIDRIGHT +#endif +#ifndef AST_RIGHT_REP +#define AST_RIGHT_REP (BUTTON_MIDRIGHT | BUTTON_REPEAT) +#endif +#ifndef AST_FIRE +#define AST_FIRE BUTTON_BOTTOMMIDDLE +#endif +#ifndef AST_FIRE_REP +#define AST_FIRE_REP (BUTTON_BOTTOMMIDDLE | BUTTON_MENU) +#endif +#endif + #define ABS(x) ((x)>0?(x):-(x)) #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 #elif (CONFIG_KEYPAD == COWOND2_PAD) #define STAR_QUIT BUTTON_POWER -#define STAR_LEFT BUTTON_LEFT -#define STAR_RIGHT BUTTON_RIGHT -#define STAR_UP BUTTON_UP -#define STAR_DOWN BUTTON_DOWN -#define STAR_TOGGLE_CONTROL BUTTON_SELECT -#define STAR_LEVEL_UP BUTTON_PLUS -#define STAR_LEVEL_DOWN BUTTON_MINUS -#define STAR_LEVEL_REPEAT (BUTTON_SELECT | BUTTON_MENU) +#define STAR_QUIT_NAME "[POWER]" #define STAR_MENU_RUN BUTTON_MENU #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +//#ifndef STAR_QUIT +//#define STAR_QUIT BUTTON_TOPLEFT +//#define STAR_QUIT_NAME "[TOPLEFT]" +//#endif +#ifndef STAR_MENU_RUN +#define STAR_MENU_RUN BUTTON_TOPRIGHT +#endif +#ifndef STAR_LEFT +#define STAR_LEFT BUTTON_MIDLEFT +#endif +#ifndef STAR_RIGHT +#define STAR_RIGHT BUTTON_MIDRIGHT +#endif +#ifndef STAR_UP +#define STAR_UP BUTTON_TOPMIDDLE +#endif +#ifndef STAR_DOWN +#define STAR_DOWN BUTTON_BOTTOMMIDDLE +#endif +#ifndef STAR_TOGGLE_CONTROL +#define STAR_TOGGLE_CONTROL BUTTON_CENTER +#define STAR_TOGGLE_CONTROL_NAME "[CENTER]" +#endif +#ifndef STAR_LEVEL_UP +#define STAR_LEVEL_UP BUTTON_TOPLEFT +#define STAR_LEVEL_UP_NAME "[TOPLEFT]" +#endif +#ifndef STAR_LEVEL_DOWN +#define STAR_LEVEL_DOWN BUTTON_BOTTOMLEFT +#define STAR_LEVEL_DOWN_NAME "[BOTTOMLEFT]" +#endif +#ifndef STAR_LEVEL_REPEAT +#define STAR_LEVEL_REPEAT BUTTON_BOTTOMRIGHT +#define STAR_LEVEL_REPEAT_NAME "[BOTTOMRIGHT]" +#endif +#endif + /* function returns because of USB? */ static bool usb_detected = false; @@ -1040,6 +1071,14 @@ static int star_menu(void) "[PLAY+DOWN] Prev. level\n" "[PLAY+RIGHT] Reset level\n" "[PLAY+UP] Next level", true); +#endif +#ifdef HAVE_TOUCHPAD + star_display_text("KEYS\n\n" + STAR_TOGGLE_CONTROL_NAME " Toggle Control\n" + STAR_QUIT_NAME " Exit\n" + STAR_LEVEL_DOWN_NAME " Prev. level\n" + STAR_LEVEL_REPEAT_NAME " Reset level\n" + STAR_LEVEL_UP_NAME " Next level", true); #endif break; default: 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 */ #define STARFIELD_TOGGLE_COLOR BUTTON_RC_MODE #elif (CONFIG_KEYPAD == COWOND2_PAD) #define STARFIELD_QUIT BUTTON_POWER -#define STARFIELD_INCREASE_ZMOVE BUTTON_UP -#define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN -#define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT -#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT -#define STARFIELD_TOGGLE_COLOR BUTTON_MENU +#endif -#else +#ifdef HAVE_TOUCHPAD +#ifndef STARFIELD_QUIT +#define STARFIELD_QUIT BUTTON_TOPLEFT +#endif +#ifndef STARFIELD_INCREASE_ZMOVE +#define STARFIELD_INCREASE_ZMOVE BUTTON_TOPMIDDLE +#endif +#ifndef STARFIELD_DECREASE_ZMOVE +#define STARFIELD_DECREASE_ZMOVE BUTTON_BOTTOMMIDDLE +#endif +#ifndef STARFIELD_INCREASE_NB_STARS +#define STARFIELD_INCREASE_NB_STARS BUTTON_MIDRIGHT +#endif +#ifndef STARFIELD_DECREASE_NB_STARS +#define STARFIELD_DECREASE_NB_STARS BUTTON_MIDLEFT +#endif +#ifndef STARFIELD_TOGGLE_COLOR +#define STARFIELD_TOGGLE_COLOR BUTTON_CENTER +#endif +#endif + +#ifndef STARFIELD_QUIT #define STARFIELD_QUIT BUTTON_OFF +#endif +#ifndef STARFIELD_INCREASE_ZMOVE #define STARFIELD_INCREASE_ZMOVE BUTTON_UP +#endif +#ifndef STARFIELD_DECREASE_ZMOVE #define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN +#endif +#ifndef STARFIELD_INCREASE_NB_STARS #define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT +#endif +#ifndef STARFIELD_DECREASE_NB_STARS #define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT +#endif + +#ifndef STARFIELD_TOGGLE_COLOR #ifdef BUTTON_SELECT #define STARFIELD_TOGGLE_COLOR BUTTON_SELECT #else #define STARFIELD_TOGGLE_COLOR BUTTON_PLAY #endif +#endif #if (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD) #define STARFIELD_RC_QUIT BUTTON_RC_STOP #endif -#endif #define LCD_CENTER_X (LCD_WIDTH/2) #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 #define STOPWATCH_RC_QUIT BUTTON_REC #elif CONFIG_KEYPAD == COWOND2_PAD #define STOPWATCH_QUIT BUTTON_POWER -#define STOPWATCH_START_STOP BUTTON_SELECT -#define STOPWATCH_RESET_TIMER BUTTON_MENU -#define STOPWATCH_LAP_TIMER BUTTON_PLUS -#define STOPWATCH_SCROLL_UP BUTTON_UP -#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef STOPWATCH_QUIT +#define STOPWATCH_QUIT BUTTON_TOPLEFT +#endif +#ifndef STOPWATCH_START_STOP +#define STOPWATCH_START_STOP BUTTON_CENTER +#endif +#ifndef STOPWATCH_RESET_TIMER +#define STOPWATCH_RESET_TIMER BUTTON_MIDRIGHT +#endif +#ifndef STOPWATCH_LAP_TIMER +#define STOPWATCH_LAP_TIMER BUTTON_MIDLEFT +#endif +#ifndef STOPWATCH_SCROLL_UP +#define STOPWATCH_SCROLL_UP BUTTON_TOPMIDDLE +#endif +#ifndef STOPWATCH_SCROLL_DOWN +#define STOPWATCH_SCROLL_DOWN BUTTON_BOTTOMMIDDLE +#endif +#endif + static struct plugin_api* rb; static 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 @@ #elif (CONFIG_KEYPAD == COWOND2_PAD) #define SUDOKU_BUTTON_QUIT BUTTON_POWER -#define SUDOKU_BUTTON_UP BUTTON_UP -#define SUDOKU_BUTTON_DOWN BUTTON_DOWN -#define SUDOKU_BUTTON_LEFT BUTTON_LEFT -#define SUDOKU_BUTTON_RIGHT BUTTON_RIGHT -#define SUDOKU_BUTTON_TOGGLE BUTTON_PLUS #define SUDOKU_BUTTON_MENU BUTTON_MENU -#define SUDOKU_BUTTON_POSSIBLE BUTTON_MINUS #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef SUDOKU_BUTTON_QUIT +#define SUDOKU_BUTTON_QUIT BUTTON_TOPLEFT +#endif +#ifndef SUDOKU_BUTTON_UP +#define SUDOKU_BUTTON_UP BUTTON_TOPMIDDLE +#endif +#ifndef SUDOKU_BUTTON_DOWN +#define SUDOKU_BUTTON_DOWN BUTTON_BOTTOMMIDDLE +#endif +#ifndef SUDOKU_BUTTON_LEFT +#define SUDOKU_BUTTON_LEFT BUTTON_MIDLEFT +#endif +#ifndef SUDOKU_BUTTON_RIGHT +#define SUDOKU_BUTTON_RIGHT BUTTON_MIDRIGHT +#endif +#ifndef SUDOKU_BUTTON_TOGGLE +#define SUDOKU_BUTTON_TOGGLE BUTTON_CENTER +#endif +#ifndef SUDOKU_BUTTON_MENU +#define SUDOKU_BUTTON_MENU BUTTON_TOPRIGHT +#endif +#ifndef SUDOKU_BUTTON_POSSIBLE +#define SUDOKU_BUTTON_POSSIBLE BUTTON_BOTTOMLEFT +#endif +#endif + struct sudoku_state_t { char filename[MAX_PATH]; /* Filename */ 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]; #define SUPERDOM_CANCEL BUTTON_BACK #elif CONFIG_KEYPAD == COWOND2_PAD -#define SUPERDOM_OK BUTTON_SELECT -#define SUPERDOM_UP BUTTON_UP -#define SUPERDOM_LEFT BUTTON_LEFT -#define SUPERDOM_RIGHT BUTTON_RIGHT -#define SUPERDOM_DOWN BUTTON_DOWN -#define SUPERDOM_CANCEL BUTTON_MENU +#define SUPERDOM_CANCEL BUTTON_POWER #endif +#ifdef HAVE_TOUCHPAD +#ifndef SUPERDOM_OK +#define SUPERDOM_OK BUTTON_CENTER +#endif +#ifndef SUPERDOM_UP +#define SUPERDOM_UP BUTTON_TOPMIDDLE +#endif +#ifndef SUPERDOM_LEFT +#define SUPERDOM_LEFT BUTTON_MIDLEFT +#endif +#ifndef SUPERDOM_RIGHT +#define SUPERDOM_RIGHT BUTTON_MIDRIGHT +#endif +#ifndef SUPERDOM_DOWN +#define SUPERDOM_DOWN BUTTON_BOTTOMMIDDLE +#endif +#ifndef SUPERDOM_CANCEL +#define SUPERDOM_CANCEL BUTTON_TOPLEFT +#endif +#endif + #define SUPERDOM_QUIT 23 void 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 #elif CONFIG_KEYPAD == COWOND2_PAD #define VIEWER_QUIT BUTTON_POWER -#define VIEWER_PAGE_UP BUTTON_UP -#define VIEWER_PAGE_DOWN BUTTON_DOWN -#define VIEWER_SCREEN_LEFT BUTTON_LEFT -#define VIEWER_SCREEN_RIGHT BUTTON_RIGHT #define VIEWER_MENU BUTTON_MENU -#define VIEWER_AUTOSCROLL BUTTON_SELECT #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef VIEWER_QUIT +#define VIEWER_QUIT BUTTON_TOPLEFT +#endif +#ifndef VIEWER_PAGE_UP +#define VIEWER_PAGE_UP BUTTON_TOPMIDDLE +#endif +#ifndef VIEWER_PAGE_DOWN +#define VIEWER_PAGE_DOWN BUTTON_BOTTOMMIDDLE +#endif +#ifndef VIEWER_SCREEN_LEFT +#define VIEWER_SCREEN_LEFT BUTTON_MIDLEFT +#endif +#ifndef VIEWER_SCREEN_RIGHT +#define VIEWER_SCREEN_RIGHT BUTTON_MIDRIGHT +#endif +#ifndef VIEWER_MENU +#define VIEWER_MENU BUTTON_TOPRIGHT +#endif +#ifndef VIEWER_AUTOSCROLL +#define VIEWER_AUTOSCROLL BUTTON_CENTER +#endif +#endif + /* stuff for the bookmarking */ struct bookmarked_file_info { long file_position; @@ -1620,3 +1639,4 @@ enum plugin_status plugin_start(struct plugin_api* api, void* file) return PLUGIN_OK; } + 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 #elif CONFIG_KEYPAD == COWOND2_PAD #define VUMETER_QUIT BUTTON_POWER -#define VUMETER_HELP BUTTON_SELECT #define VUMETER_MENU BUTTON_MENU -#define VUMETER_MENU_EXIT BUTTON_LEFT -#define VUMETER_MENU_EXIT2 BUTTON_POWER -#define VUMETER_UP BUTTON_UP -#define VUMETER_DOWN BUTTON_DOWN -#define LABEL_HELP "SELECT" +#define VUMETER_MENU_EXIT BUTTON_POWER #define LABEL_QUIT "POWER" #define LABEL_MENU "MENU" -#define LABEL_VOLUME "UP/DOWN" #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef VUMETER_QUIT +#define VUMETER_QUIT BUTTON_TOPLEFT +#define LABEL_QUIT "TOPLEFT" +#endif +#ifndef VUMETER_HELP +#define VUMETER_HELP BUTTON_CENTER +#define LABEL_HELP "CENTRE" +#endif +#ifndef VUMETER_MENU +#define VUMETER_MENU BUTTON_TOPRIGHT +#define LABEL_MENU "TOPRIGHT" +#endif +#ifndef VUMETER_MENU_EXIT +#define VUMETER_MENU_EXIT BUTTON_TOPLEFT +#endif +#ifndef VUMETER_UP +#define VUMETER_UP BUTTON_TOPMIDDLE +#endif +#ifndef VUMETER_DOWN +#define VUMETER_DOWN BUTTON_BOTTOMMIDDLE +#endif +#ifndef LABEL_VOLUME +#define LABEL_VOLUME "UP/DOWN" +#endif +#endif + const struct plugin_api* rb; #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 #elif (CONFIG_KEYPAD == COWOND2_PAD) -#define BTN_DIR_UP BUTTON_UP -#define BTN_DIR_DOWN BUTTON_DOWN -#define BTN_DIR_LEFT BUTTON_LEFT -#define BTN_DIR_RIGHT BUTTON_RIGHT -#define BTN_STARTPAUSE BUTTON_SELECT #define BTN_QUIT BUTTON_POWER -#define BTN_STOPRESET BUTTON_PLUS - -#define PLAYERS_TEXT "Up/Down" -#define WORMS_TEXT "Left/Right" #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef BTN_DIR_UP +#define BTN_DIR_UP BUTTON_TOPMIDDLE +#endif +#ifndef BTN_DIR_DOWN +#define BTN_DIR_DOWN BUTTON_BOTTOMMIDDLE +#endif +#ifndef BTN_DIR_LEFT +#define BTN_DIR_LEFT BUTTON_MIDLEFT +#endif +#ifndef BTN_DIR_RIGHT +#define BTN_DIR_RIGHT BUTTON_MIDRIGHT +#endif +#ifndef BTN_STARTPAUSE +#define BTN_STARTPAUSE BUTTON_CENTER +#endif +#ifndef BTN_QUIT +#define BTN_QUIT BUTTON_TOPLEFT +#endif +#ifndef BTN_STOPRESET +#define BTN_STOPRESET BUTTON_TOPRIGHT + +#endif +#ifndef PLAYERS_TEXT +#define PLAYERS_TEXT "Up/Down" +#endif +#ifndef WORMS_TEXT +#define WORMS_TEXT "Left/Right" +#endif +#endif + + #if (LCD_WIDTH == 112) && (LCD_HEIGHT == 64) #define FOOD_SIZE 3 #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 #elif CONFIG_KEYPAD == COWOND2_PAD #define QUIT BUTTON_POWER -#define LEFT BUTTON_LEFT -#define RIGHT BUTTON_RIGHT -#define UP BUTTON_UP -#define DOWN BUTTON_DOWN -#define PAUSE BUTTON_SELECT #else #error No keymap defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef QUIT +#define QUIT BUTTON_TOPLEFT +#endif +#ifndef LEFT +#define LEFT BUTTON_MIDLEFT +#endif +#ifndef RIGHT +#define RIGHT BUTTON_MIDRIGHT +#endif +#ifndef UP +#define UP BUTTON_TOPMIDDLE +#endif +#ifndef DOWN +#define DOWN BUTTON_BOTTOMMIDDLE +#endif +#ifndef PAUSE +#define PAUSE BUTTON_CENTER +#endif +#endif + #define MOVE_NO 0 /* player movement */ #define MOVE_UP 1 /* 1 */ #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 @@ #define ZX_MENU BUTTON_RC_REC #elif CONFIG_KEYPAD == COWOND2_PAD -#define ZX_UP BUTTON_UP -#define ZX_DOWN BUTTON_DOWN -#define ZX_LEFT BUTTON_LEFT -#define ZX_RIGHT BUTTON_RIGHT -#define ZX_SELECT BUTTON_SELECT -#define ZX_MENU BUTTON_MENU +#define ZX_MENU (BUTTON_MENU|BUTTON_REL) #else #error Keymap not defined! #endif +#ifdef HAVE_TOUCHPAD +#ifndef ZX_UP +#define ZX_UP BUTTON_TOPMIDDLE +#endif +#ifndef ZX_DOWN +#define ZX_DOWN BUTTON_BOTTOMMIDDLE +#endif +#ifndef ZX_LEFT +#define ZX_LEFT BUTTON_MIDLEFT +#endif +#ifndef ZX_RIGHT +#define ZX_RIGHT BUTTON_MIDRIGHT +#endif +#ifndef ZX_SELECT +#define ZX_SELECT BUTTON_CENTER +#endif +#ifndef ZX_MENU +#define ZX_MENU (BUTTON_TOPLEFT|BUTTON_REL) +#endif +#endif + #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 @@ #elif CONFIG_KEYPAD == COWOND2_PAD -/* TODO: Check keyboard mappings */ - -#define KBD_SELECT BUTTON_SELECT #define KBD_ABORT BUTTON_POWER -#define KBD_LEFT BUTTON_LEFT -#define KBD_RIGHT BUTTON_RIGHT -#define KBD_UP BUTTON_UP -#define KBD_DOWN BUTTON_DOWN #endif +#ifdef HAVE_TOUCHPAD +#ifndef KBD_SELECT +#define KBD_SELECT BUTTON_CENTER +#endif +#ifndef KBD_ABORT +#define KBD_ABORT BUTTON_TOPLEFT +#endif +#ifndef KBD_LEFT +#define KBD_LEFT BUTTON_MIDLEFT +#endif +#ifndef KBD_RIGHT +#define KBD_RIGHT BUTTON_MIDRIGHT +#endif +#ifndef KBD_UP +#define KBD_UP BUTTON_TOPMIDDLE +#endif +#ifndef KBD_DOWN +#define KBD_DOWN BUTTON_BOTTOMMIDDLE +#endif +#endif struct keyboard_parameters { 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); #define BUTTON_MINUS 0x00000004 #define BUTTON_MENU 0x00000008 -/* compatibility hacks These definatly need fixing */ +/* Compatibility hacks for flipping. Needs a somewhat better fix. */ #define BUTTON_LEFT BUTTON_MIDLEFT #define BUTTON_RIGHT BUTTON_MIDRIGHT -#define BUTTON_SELECT BUTTON_CENTER #define BUTTON_UP BUTTON_TOPMIDDLE #define BUTTON_DOWN BUTTON_BOTTOMMIDDLE