summaryrefslogtreecommitdiff
path: root/apps/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins')
-rw-r--r--apps/plugins/SOURCES3
-rw-r--r--apps/plugins/SUBDIRS1
-rw-r--r--apps/plugins/battery_bench.c6
-rw-r--r--apps/plugins/blackjack.c14
-rw-r--r--apps/plugins/brickmania.c8
-rw-r--r--apps/plugins/calculator.c11
-rw-r--r--apps/plugins/calendar.c10
-rw-r--r--apps/plugins/chessbox/chessbox_pgn.h10
-rw-r--r--apps/plugins/chessclock.c10
-rw-r--r--apps/plugins/chip8.c8
-rw-r--r--apps/plugins/chopper.c5
-rw-r--r--apps/plugins/clix.c10
-rw-r--r--apps/plugins/cube.c10
-rw-r--r--apps/plugins/doom/i_video.c13
-rw-r--r--apps/plugins/fft/fft.c9
-rw-r--r--apps/plugins/flipit.c12
-rw-r--r--apps/plugins/fractals/fractal.h12
-rw-r--r--apps/plugins/goban/goban.h12
-rw-r--r--apps/plugins/imageviewer/imageviewer_button.h12
-rw-r--r--apps/plugins/invadrox.c7
-rw-r--r--apps/plugins/jewels.c10
-rw-r--r--apps/plugins/lib/pluginlib_actions.c6
-rw-r--r--apps/plugins/midi/midiplay.c8
-rw-r--r--apps/plugins/minesweeper.c11
-rw-r--r--apps/plugins/mp3_encoder.c6
-rw-r--r--apps/plugins/mpegplayer/mpeg_settings.c8
-rw-r--r--apps/plugins/mpegplayer/mpegplayer.c9
-rw-r--r--apps/plugins/oscilloscope.c11
-rw-r--r--apps/plugins/pacbox/pacbox.h11
-rw-r--r--apps/plugins/pegbox.c19
-rw-r--r--apps/plugins/pong.c8
-rw-r--r--apps/plugins/reversi/reversi-gui.h8
-rw-r--r--apps/plugins/rockblox.c12
-rw-r--r--apps/plugins/rockpaint.c11
-rw-r--r--apps/plugins/sliding_puzzle.c9
-rw-r--r--apps/plugins/snake.c8
-rw-r--r--apps/plugins/snake2.c9
-rw-r--r--apps/plugins/sokoban.c14
-rw-r--r--apps/plugins/solitaire.c18
-rw-r--r--apps/plugins/spacerocks.c9
-rw-r--r--apps/plugins/star.c17
-rw-r--r--apps/plugins/stopwatch.c8
-rw-r--r--apps/plugins/sudoku/sudoku.h12
-rw-r--r--apps/plugins/superdom.c8
-rw-r--r--apps/plugins/text_viewer/tv_button.h10
-rw-r--r--apps/plugins/vu_meter.c11
-rw-r--r--apps/plugins/wormlet.c10
-rw-r--r--apps/plugins/xobox.c9
-rw-r--r--apps/plugins/zxbox/keymaps.h9
-rw-r--r--apps/plugins/zxbox/zxbox_keyb.c9
50 files changed, 488 insertions, 3 deletions
diff --git a/apps/plugins/SOURCES b/apps/plugins/SOURCES
index a72579e..db690a6 100644
--- a/apps/plugins/SOURCES
+++ b/apps/plugins/SOURCES
@@ -74,7 +74,8 @@ iriverify.c
/* Overlays loaders */
#if PLUGIN_BUFFER_SIZE <= 0x20000 && defined(HAVE_LCD_BITMAP)
-#if CONFIG_KEYPAD != ONDIO_PAD && CONFIG_KEYPAD != SANSA_M200_PAD
+#if CONFIG_KEYPAD != ONDIO_PAD && CONFIG_KEYPAD != SANSA_M200_PAD \
+ && CONFIG_KEYPAD != HM60X_PAD
/* not enough buttons for rockboy */
rockboy.c
#endif
diff --git a/apps/plugins/SUBDIRS b/apps/plugins/SUBDIRS
index d2feb72..c22977f 100644
--- a/apps/plugins/SUBDIRS
+++ b/apps/plugins/SUBDIRS
@@ -14,6 +14,7 @@ clock
#if (CONFIG_KEYPAD != ONDIO_PAD) /* not enough buttons */ \
&& (CONFIG_KEYPAD != SANSA_M200_PAD) /* not enough buttons */ \
+ && (CONFIG_KEYPAD != HM60X_PAD) /* not enough buttons */ \
&& (LCD_PIXELFORMAT != HORIZONTAL_PACKING) /* TODO */ \
&& (LCD_PIXELFORMAT != VERTICAL_INTERLEAVED) /* TODO */ \
&& (defined(HAVE_LCD_COLOR) || (LCD_HEIGHT == 64) && (LCD_DEPTH == 1) || \
diff --git a/apps/plugins/battery_bench.c b/apps/plugins/battery_bench.c
index bf40fe1..4c517a1 100644
--- a/apps/plugins/battery_bench.c
+++ b/apps/plugins/battery_bench.c
@@ -240,6 +240,12 @@
#define BATTERY_ON_TXT "SELECT - start"
#define BATTERY_OFF_TXT "POWER"
+#elif (CONFIG_KEYPAD == HM60X_PAD)
+#define BATTERY_ON BUTTON_SELECT
+#define BATTERY_OFF BUTTON_POWER
+#define BATTERY_ON_TXT "SELECT - start"
+#define BATTERY_OFF_TXT "POWER"
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/blackjack.c b/apps/plugins/blackjack.c
index 91e70e4..945048a 100644
--- a/apps/plugins/blackjack.c
+++ b/apps/plugins/blackjack.c
@@ -484,6 +484,20 @@ enum {
#define BJACK_RIGHT BUTTON_RIGHT
#define BJACK_LEFT BUTTON_LEFT
+#elif CONFIG_KEYPAD == HM60X_PAD
+#define BJACK_SELECT_NAME "SELECT"
+#define BJACK_STAY_NAME "UP+POWER"
+#define BJACK_QUIT_NAME "POWER"
+#define BJACK_DOUBLE_NAME "DOWN+POWER"
+#define BJACK_SELECT BUTTON_SELECT
+#define BJACK_QUIT BUTTON_POWER
+#define BJACK_STAY (BUTTON_UP|BUTTON_POWER)
+#define BJACK_DOUBLEDOWN (BUTTON_DOWN|BUTTON_POWER)
+#define BJACK_UP BUTTON_UP
+#define BJACK_DOWN BUTTON_DOWN
+#define BJACK_RIGHT BUTTON_RIGHT
+#define BJACK_LEFT BUTTON_LEFT
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/brickmania.c b/apps/plugins/brickmania.c
index 7fa320a..b1616a8 100644
--- a/apps/plugins/brickmania.c
+++ b/apps/plugins/brickmania.c
@@ -277,6 +277,14 @@ CONFIG_KEYPAD == SANSA_CONNECT_PAD
#define UP BUTTON_UP
#define DOWN BUTTON_DOWN
+#elif CONFIG_KEYPAD == HM60X_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
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/calculator.c b/apps/plugins/calculator.c
index b8d7d85..44e4aed 100644
--- a/apps/plugins/calculator.c
+++ b/apps/plugins/calculator.c
@@ -443,6 +443,17 @@ F3: equal to "="
#define CALCULATOR_CALC BUTTON_MENU
#define CALCULATOR_CLEAR BUTTON_USER
+#elif (CONFIG_KEYPAD == HM60X_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 BUTTON_SELECT
+#define CALCULATOR_CALC (BUTTON_UP|BUTTON_POWER)
+#define CALCULATOR_CLEAR (BUTTON_DOWN|BUTTON_POWER)
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/calendar.c b/apps/plugins/calendar.c
index 7dcb8ee..ee0d431 100644
--- a/apps/plugins/calendar.c
+++ b/apps/plugins/calendar.c
@@ -318,6 +318,16 @@
#define CALENDAR_NEXT_MONTH BUTTON_POWER
#define CALENDAR_PREV_MONTH BUTTON_USER
+#elif CONFIG_KEYPAD == HM60X_PAD
+#define CALENDAR_QUIT BUTTON_POWER
+#define CALENDAR_SELECT BUTTON_SELECT
+#define CALENDAR_NEXT_WEEK BUTTON_DOWN
+#define CALENDAR_PREV_WEEK BUTTON_UP
+#define CALENDAR_NEXT_DAY BUTTON_RIGHT
+#define CALENDAR_PREV_DAY BUTTON_LEFT
+#define CALENDAR_NEXT_MONTH (BUTTON_RIGHT|BUTTON_POWER)
+#define CALENDAR_PREV_MONTH (BUTTON_LEFT|BUTTON_POWER)
+
#else
#error "No keypad setting."
#endif
diff --git a/apps/plugins/chessbox/chessbox_pgn.h b/apps/plugins/chessbox/chessbox_pgn.h
index a41fcb6..a6858ba 100644
--- a/apps/plugins/chessbox/chessbox_pgn.h
+++ b/apps/plugins/chessbox/chessbox_pgn.h
@@ -433,6 +433,16 @@
#define CB_LEVEL BUTTON_BACK
#define CB_MENU BUTTON_MENU
+#elif CONFIG_KEYPAD == HM60X_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_POWER | BUTTON_SELECT)
+#define CB_LEVEL (BUTTON_POWER | BUTTON_LEFT)
+#define CB_MENU (BUTTON_POWER | BUTTON_RIGHT)
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/chessclock.c b/apps/plugins/chessclock.c
index 64a851b..8c5f20c 100644
--- a/apps/plugins/chessclock.c
+++ b/apps/plugins/chessclock.c
@@ -336,6 +336,16 @@
#define CHC_SETTINGS_OK BUTTON_SELECT
#define CHC_SETTINGS_CANCEL BUTTON_BACK
+#elif CONFIG_KEYPAD == HM60X_PAD
+#define CHC_QUIT BUTTON_POWER
+#define CHC_STARTSTOP BUTTON_SELECT
+#define CHC_RESET BUTTON_LEFT
+#define CHC_MENU BUTTON_RIGHT
+#define CHC_SETTINGS_INC BUTTON_UP
+#define CHC_SETTINGS_DEC BUTTON_DOWN
+#define CHC_SETTINGS_OK BUTTON_SELECT
+#define CHC_SETTINGS_CANCEL BUTTON_POWER
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/chip8.c b/apps/plugins/chip8.c
index b2faed5..33f867f 100644
--- a/apps/plugins/chip8.c
+++ b/apps/plugins/chip8.c
@@ -1210,6 +1210,14 @@ CONFIG_KEYPAD == MROBE500_PAD
#define CHIP8_KEY8 BUTTON_POWER
#define CHIP8_KEY9 BUTTON_USER
+#elif (CONFIG_KEYPAD == HM60X_PAD)
+#define CHIP8_OFF BUTTON_POWER
+#define CHIP8_KEY2 BUTTON_UP
+#define CHIP8_KEY4 BUTTON_DOWN
+#define CHIP8_KEY5 BUTTON_SELECT
+#define CHIP8_KEY6 BUTTON_RIGHT
+#define CHIP8_KEY8 BUTTON_LEFT
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/chopper.c b/apps/plugins/chopper.c
index 29c9140..ed458d3 100644
--- a/apps/plugins/chopper.c
+++ b/apps/plugins/chopper.c
@@ -180,6 +180,11 @@ CONFIG_KEYPAD == MROBE500_PAD
#define ACTION BUTTON_SELECT
#define ACTIONTEXT "SELECT"
+#elif CONFIG_KEYPAD == HM60X_PAD
+#define QUIT BUTTON_POWER
+#define ACTION BUTTON_SELECT
+#define ACTIONTEXT "SELECT"
+
#elif !defined(HAVE_TOUCHSCREEN)
#error No keymap defined!
#endif
diff --git a/apps/plugins/clix.c b/apps/plugins/clix.c
index 475023f..c48106b 100644
--- a/apps/plugins/clix.c
+++ b/apps/plugins/clix.c
@@ -201,6 +201,16 @@
#define CLIX_BUTTON_SCROLL_BACK BUTTON_BOTTOMLEFT
#define CLIX_BUTTON_CLICK BUTTON_SELECT
+#elif (CONFIG_KEYPAD == HM60X_PAD)
+#define CLIX_BUTTON_QUIT BUTTON_POWER
+#define CLIX_BUTTON_UP BUTTON_UP
+#define CLIX_BUTTON_DOWN BUTTON_DOWN
+#define CLIX_BUTTON_SCROLL_FWD (BUTTON_POWER | BUTTON_UP)
+#define CLIX_BUTTON_SCROLL_BACK (BUTTON_POWER | BUTTON_DOWN)
+#define CLIX_BUTTON_LEFT BUTTON_LEFT
+#define CLIX_BUTTON_RIGHT BUTTON_RIGHT
+#define CLIX_BUTTON_CLICK BUTTON_SELECT
+
#else
#error "no keymap"
#endif
diff --git a/apps/plugins/cube.c b/apps/plugins/cube.c
index 1e80bda..962fc3a 100644
--- a/apps/plugins/cube.c
+++ b/apps/plugins/cube.c
@@ -339,6 +339,16 @@
#define CUBE_PAUSE BUTTON_USER
#define CUBE_HIGHSPEED BUTTON_SELECT
+#elif (CONFIG_KEYPAD == HM60X_PAD)
+#define CUBE_QUIT BUTTON_POWER
+#define CUBE_NEXT BUTTON_RIGHT
+#define CUBE_PREV BUTTON_LEFT
+#define CUBE_INC BUTTON_UP
+#define CUBE_DEC BUTTON_DOWN
+#define CUBE_MODE (BUTTON_SELECT|BUTTON_POWER)
+#define CUBE_PAUSE BUTTON_SELECT
+#define CUBE_HIGHSPEED (BUTTON_UP|BUTTON_POWER)
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/doom/i_video.c b/apps/plugins/doom/i_video.c
index b22ff78..d6f52b2 100644
--- a/apps/plugins/doom/i_video.c
+++ b/apps/plugins/doom/i_video.c
@@ -463,6 +463,19 @@ void I_ShutdownGraphics(void)
#define DOOMBUTTON_ENTER BUTTON_POWER
#define DOOMBUTTON_WEAPON BUTTON_USER
+#elif CONFIG_KEYPAD == HM60X_PAD
+#define DOOMBUTTON_UP BUTTON_UP
+#define DOOMBUTTON_DOWN BUTTON_DOWN
+#define DOOMBUTTON_LEFT BUTTON_LEFT
+#define DOOMBUTTON_RIGHT BUTTON_RIGHT
+#define DOOMBUTTON_OPEN (BUTTON_POWER | BUTTON_SELECT)
+#define DOOMBUTTON_QUIT BUTTON_POWER
+#define DOOMBUTTON_ESC (BUTTON_POWER | BUTTON_UP)
+#define DOOMBUTTON_ENTER BUTTON_SELECT
+#define DOOMBUTTON_SHOOT BUTTON_SELECT
+#define DOOMBUTTON_WEAPON (BUTTON_POWER | BUTTON_LEFT)
+#define DOOMBUTTON_MAP (BUTTON_POWER | BUTTON_RIGHT)
+
#else
#error Keymap not defined!
#endif
diff --git a/apps/plugins/fft/fft.c b/apps/plugins/fft/fft.c
index f7d8943..e2f52ec 100644
--- a/apps/plugins/fft/fft.c
+++ b/apps/plugins/fft/fft.c
@@ -266,6 +266,15 @@ GREY_INFO_STRUCT
# define FFT_FREQ_SCALE BUTTON_DOWN
# define FFT_QUIT BUTTON_BACK
+#elif (CONFIG_KEYPAD == HM60X_PAD)
+# define FFT_PREV_GRAPH BUTTON_LEFT
+# define FFT_NEXT_GRAPH BUTTON_RIGHT
+# define FFT_AMP_SCALE BUTTON_UP
+# define FFT_FREQ_SCALE BUTTON_DOWN
+# define FFT_ORIENTATION BUTTON_SELECT
+# define FFT_WINDOW (BUTTON_POWER|BUTTON_SELECT)
+# define FFT_QUIT BUTTON_POWER
+
#elif !defined(HAVE_TOUCHSCREEN)
#error No keymap defined!
#endif
diff --git a/apps/plugins/flipit.c b/apps/plugins/flipit.c
index baefbd6..ec03ed7 100644
--- a/apps/plugins/flipit.c
+++ b/apps/plugins/flipit.c
@@ -392,6 +392,18 @@
#define FLIPIT_STEP_BY_STEP BUTTON_POWER
#define FLIPIT_TOGGLE BUTTON_SELECT
+#elif CONFIG_KEYPAD == HM60X_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_UP|BUTTON_POWER)
+#define FLIPIT_SOLVE (BUTTON_DOWN|BUTTON_POWER)
+#define FLIPIT_STEP_BY_STEP (BUTTON_LEFT|BUTTON_POWER)
+#define FLIPIT_TOGGLE BUTTON_SELECT
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/fractals/fractal.h b/apps/plugins/fractals/fractal.h
index 5fc05c2..d48e1ed 100644
--- a/apps/plugins/fractals/fractal.h
+++ b/apps/plugins/fractals/fractal.h
@@ -390,6 +390,18 @@
#define FRACTAL_PRECISION_DEC (BUTTON_USER|BUTTON_REPEAT)
#define FRACTAL_RESET BUTTON_POWER
+#elif CONFIG_KEYPAD == HM60X_PAD
+#define FRACTAL_QUIT BUTTON_POWER
+#define FRACTAL_UP BUTTON_UP
+#define FRACTAL_DOWN BUTTON_DOWN
+#define FRACTAL_LEFT BUTTON_LEFT
+#define FRACTAL_RIGHT BUTTON_RIGHT
+#define FRACTAL_ZOOM_IN BUTTON_SELECT
+#define FRACTAL_ZOOM_OUT (BUTTON_POWER | BUTTON_SELECT)
+#define FRACTAL_PRECISION_INC (BUTTON_POWER | BUTTON_UP)
+#define FRACTAL_PRECISION_DEC (BUTTON_POWER | BUTTON_DOWN)
+#define FRACTAL_RESET (BUTTON_POWER | BUTTON_LEFT)
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/goban/goban.h b/apps/plugins/goban/goban.h
index ac9995c..ddcbd33 100644
--- a/apps/plugins/goban/goban.h
+++ b/apps/plugins/goban/goban.h
@@ -380,6 +380,18 @@
#define GBN_BUTTON_PLAY BUTTON_SELECT
#define GBN_BUTTON_MENU BUTTON_MENU
+#elif (CONFIG_KEYPAD == HM60X_PAD)
+#define GBN_BUTTON_UP BUTTON_UP
+#define GBN_BUTTON_DOWN BUTTON_DOWN
+#define GBN_BUTTON_LEFT BUTTON_LEFT
+#define GBN_BUTTON_RIGHT BUTTON_RIGHT
+#define GBN_BUTTON_MENU BUTTON_POWER
+#define GBN_BUTTON_PLAY BUTTON_SELECT
+#define GBN_BUTTON_RETREAT (BUTTON_POWER | BUTTON_LEFT)
+#define GBN_BUTTON_ADVANCE (BUTTON_POWER | BUTTON_UP)
+#define GBN_BUTTON_CONTEXT (BUTTON_POWER | BUTTON_DOWN)
+#define GBN_BUTTON_NEXT_VAR (BUTTON_POWER | BUTTON_RIGHT)
+
#else
#error Unsupported keypad
#endif
diff --git a/apps/plugins/imageviewer/imageviewer_button.h b/apps/plugins/imageviewer/imageviewer_button.h
index 37f5f40..eebfc81 100644
--- a/apps/plugins/imageviewer/imageviewer_button.h
+++ b/apps/plugins/imageviewer/imageviewer_button.h
@@ -391,6 +391,18 @@
#define IMGVIEW_MENU BUTTON_MENU
#define IMGVIEW_QUIT BUTTON_BACK
+#elif CONFIG_KEYPAD == HM60X_PAD
+#define IMGVIEW_ZOOM_IN (BUTTON_POWER | BUTTON_UP)
+#define IMGVIEW_ZOOM_OUT (BUTTON_POWER | BUTTON_DOWN)
+#define IMGVIEW_UP BUTTON_UP
+#define IMGVIEW_DOWN BUTTON_DOWN
+#define IMGVIEW_LEFT BUTTON_LEFT
+#define IMGVIEW_RIGHT BUTTON_RIGHT
+#define IMGVIEW_NEXT (BUTTON_POWER | BUTTON_RIGHT)
+#define IMGVIEW_PREVIOUS (BUTTON_POWER | BUTTON_LEFT)
+#define IMGVIEW_MENU BUTTON_SELECT
+#define IMGVIEW_QUIT BUTTON_POWER
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/invadrox.c b/apps/plugins/invadrox.c
index 0cbbe9d..69eb6fe 100644
--- a/apps/plugins/invadrox.c
+++ b/apps/plugins/invadrox.c
@@ -229,6 +229,13 @@ CONFIG_KEYPAD == MROBE500_PAD
#define RIGHT BUTTON_RIGHT
#define FIRE BUTTON_SELECT
+#elif CONFIG_KEYPAD == HM60X_PAD
+
+#define QUIT BUTTON_POWER
+#define LEFT BUTTON_LEFT
+#define RIGHT BUTTON_RIGHT
+#define FIRE BUTTON_SELECT
+
#else
#error INVADROX: Unsupported keypad
#endif
diff --git a/apps/plugins/jewels.c b/apps/plugins/jewels.c
index 6d03c9c..a15e4b4 100644
--- a/apps/plugins/jewels.c
+++ b/apps/plugins/jewels.c
@@ -315,6 +315,16 @@ CONFIG_KEYPAD == MROBE500_PAD
#define HK_SELECT "SELECT"
#define HK_CANCEL "POWER"
+#elif CONFIG_KEYPAD == HM60X_PAD
+#define JEWELS_LEFT BUTTON_LEFT
+#define JEWELS_RIGHT BUTTON_RIGHT
+#define JEWELS_UP BUTTON_UP
+#define JEWELS_DOWN BUTTON_DOWN
+#define JEWELS_SELECT BUTTON_SELECT
+#define JEWELS_CANCEL BUTTON_POWER
+#define HK_SELECT "SELECT"
+#define HK_CANCEL "POWER"
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/lib/pluginlib_actions.c b/apps/plugins/lib/pluginlib_actions.c
index e22665e..7c6e2e6 100644
--- a/apps/plugins/lib/pluginlib_actions.c
+++ b/apps/plugins/lib/pluginlib_actions.c
@@ -117,7 +117,8 @@ const struct button_mapping pla_main_ctx[] =
|| (CONFIG_KEYPAD == SAMSUNG_YH_PAD) \
|| (CONFIG_KEYPAD == SANSA_FUZEPLUS_PAD) \
|| (CONFIG_KEYPAD == SANSA_CONNECT_PAD) \
- || (CONFIG_KEYPAD == SAMSUNG_YPR0_PAD))
+ || (CONFIG_KEYPAD == SAMSUNG_YPR0_PAD) \
+ || (CONFIG_KEYPAD == HM60X_PAD))
{ PLA_UP, BUTTON_UP, BUTTON_NONE },
{ PLA_DOWN, BUTTON_DOWN, BUTTON_NONE },
{ PLA_LEFT, BUTTON_LEFT, BUTTON_NONE },
@@ -273,7 +274,8 @@ const struct button_mapping pla_main_ctx[] =
|| CONFIG_KEYPAD == SANSA_M200_PAD \
|| CONFIG_KEYPAD == MROBE100_PAD \
|| CONFIG_KEYPAD == PHILIPS_HDD1630_PAD \
- || CONFIG_KEYPAD == SANSA_CONNECT_PAD)
+ || CONFIG_KEYPAD == SANSA_CONNECT_PAD \
+ || CONFIG_KEYPAD == HM60X_PAD)
{PLA_CANCEL, BUTTON_POWER|BUTTON_REL, BUTTON_POWER},
{PLA_EXIT, BUTTON_POWER|BUTTON_REPEAT, BUTTON_NONE},
{PLA_SELECT, BUTTON_SELECT, BUTTON_NONE},
diff --git a/apps/plugins/midi/midiplay.c b/apps/plugins/midi/midiplay.c
index 1412d4c..008fbf3 100644
--- a/apps/plugins/midi/midiplay.c
+++ b/apps/plugins/midi/midiplay.c
@@ -241,6 +241,14 @@
#define BTN_DOWN BUTTON_DOWN
#define BTN_PLAY BUTTON_USER
+#elif CONFIG_KEYPAD == HM60X_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
diff --git a/apps/plugins/minesweeper.c b/apps/plugins/minesweeper.c
index da07ba6..3303569 100644
--- a/apps/plugins/minesweeper.c
+++ b/apps/plugins/minesweeper.c
@@ -323,6 +323,17 @@ CONFIG_KEYPAD == MROBE500_PAD
# define MINESWP_DISCOVER BUTTON_SELECT
# define MINESWP_INFO BUTTON_MENU
+#elif (CONFIG_KEYPAD == HM60X_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_LEFT|BUTTON_POWER)
+# define MINESWP_DISCOVER BUTTON_SELECT
+# define MINESWP_INFO (BUTTON_UP|BUTTON_POWER)
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/mp3_encoder.c b/apps/plugins/mp3_encoder.c
index 567ec5d..d98a7ff 100644
--- a/apps/plugins/mp3_encoder.c
+++ b/apps/plugins/mp3_encoder.c
@@ -2514,6 +2514,12 @@ CONFIG_KEYPAD == MROBE500_PAD
#define MP3ENC_DONE BUTTON_DOWN
#define MP3ENC_SELECT BUTTON_SELECT
+#elif CONFIG_KEYPAD == HM60X_PAD
+#define MP3ENC_PREV BUTTON_LEFT
+#define MP3ENC_NEXT BUTTON_RIGHT
+#define MP3ENC_DONE BUTTON_DOWN
+#define MP3ENC_SELECT BUTTON_SELECT
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/mpegplayer/mpeg_settings.c b/apps/plugins/mpegplayer/mpeg_settings.c
index e9b1c01..4358ce1 100644
--- a/apps/plugins/mpegplayer/mpeg_settings.c
+++ b/apps/plugins/mpegplayer/mpeg_settings.c
@@ -256,6 +256,14 @@ struct mpeg_settings settings;
#define MPEG_START_TIME_DOWN BUTTON_DOWN
#define MPEG_START_TIME_EXIT BUTTON_BACK
+#elif CONFIG_KEYPAD == HM60X_PAD
+#define MPEG_START_TIME_SELECT BUTTON_SELECT
+#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
diff --git a/apps/plugins/mpegplayer/mpegplayer.c b/apps/plugins/mpegplayer/mpegplayer.c
index f73e5f2..543eff4 100644
--- a/apps/plugins/mpegplayer/mpegplayer.c
+++ b/apps/plugins/mpegplayer/mpegplayer.c
@@ -371,6 +371,15 @@ CONFIG_KEYPAD == SANSA_M200_PAD
#define MPEG_RW BUTTON_LEFT
#define MPEG_FF BUTTON_RIGHT
+#elif CONFIG_KEYPAD == HM60X_PAD
+#define MPEG_MENU BUTTON_POWER
+#define MPEG_PAUSE BUTTON_SELECT
+#define MPEG_STOP (BUTTON_SELECT | BUTTON_POWER)
+#define MPEG_VOLDOWN (BUTTON_POWER | BUTTON_DOWN)
+#define MPEG_VOLUP (BUTTON_POWER | BUTTON_UP)
+#define MPEG_RW BUTTON_LEFT
+#define MPEG_FF BUTTON_RIGHT
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/oscilloscope.c b/apps/plugins/oscilloscope.c
index 0a0164e..8058265 100644
--- a/apps/plugins/oscilloscope.c
+++ b/apps/plugins/oscilloscope.c
@@ -353,6 +353,17 @@
#define OSCILLOSCOPE_VOL_UP BUTTON_UP
#define OSCILLOSCOPE_VOL_DOWN BUTTON_DOWN
+#elif (CONFIG_KEYPAD == HM60X_PAD)
+#define OSCILLOSCOPE_QUIT BUTTON_POWER
+#define OSCILLOSCOPE_DRAWMODE (BUTTON_POWER | BUTTON_SELECT)
+#define OSCILLOSCOPE_ADVMODE (BUTTON_POWER | BUTTON_RIGHT)
+#define OSCILLOSCOPE_ORIENTATION (BUTTON_POWER | BUTTON_LEFT)
+#define OSCILLOSCOPE_PAUSE BUTTON_SELECT
+#define OSCILLOSCOPE_SPEED_UP BUTTON_UP
+#define OSCILLOSCOPE_SPEED_DOWN BUTTON_DOWN
+#define OSCILLOSCOPE_VOL_UP BUTTON_RIGHT
+#define OSCILLOSCOPE_VOL_DOWN BUTTON_LEFT
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/pacbox/pacbox.h b/apps/plugins/pacbox/pacbox.h
index a3de867..9af714e 100644
--- a/apps/plugins/pacbox/pacbox.h
+++ b/apps/plugins/pacbox/pacbox.h
@@ -276,6 +276,17 @@
#define PACMAN_COIN BUTTON_USER
#define PACMAN_MENU BUTTON_MENU
+#elif CONFIG_KEYPAD == HM60X_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_SELECT
+#define PACMAN_2UP (BUTTON_POWER | BUTTON_UP)
+#define PACMAN_COIN (BUTTON_POWER | BUTTON_DOWN)
+#define PACMAN_MENU BUTTON_POWER
+
#else
#error Keymap not defined!
diff --git a/apps/plugins/pegbox.c b/apps/plugins/pegbox.c
index 9f68fc3..0f51cae 100644
--- a/apps/plugins/pegbox.c
+++ b/apps/plugins/pegbox.c
@@ -529,6 +529,25 @@ CONFIG_KEYPAD == MROBE500_PAD
#define LVL_DOWN_TEXT "Vol-"
#define SELECT_TEXT "SELECT"
+#elif CONFIG_KEYPAD == HM60X_PAD
+#define PEGBOX_SELECT BUTTON_SELECT
+#define PEGBOX_QUIT BUTTON_POWER
+#define PEGBOX_SAVE (BUTTON_POWER|BUTTON_SELECT)
+#define PEGBOX_RESTART (BUTTON_POWER|BUTTON_LEFT)
+#define PEGBOX_LVL_UP (BUTTON_POWER|BUTTON_UP)
+#define PEGBOX_LVL_DOWN (BUTTON_POWER|BUTTON_DOWN)
+#define PEGBOX_UP BUTTON_UP
+#define PEGBOX_DOWN BUTTON_DOWN
+#define PEGBOX_RIGHT BUTTON_RIGHT
+#define PEGBOX_LEFT BUTTON_LEFT
+
+#define SAVE_TEXT "POWER + SELECT"
+#define QUIT_TEXT "POWER"
+#define RESTART_TEXT "POWER + LEFT"
+#define LVL_UP_TEXT "POWER + UP"
+#define LVL_DOWN_TEXT "POWER + DOWN"
+#define SELECT_TEXT "SELECT"
+
#else
#error Unsupported keymap!
#endif
diff --git a/apps/plugins/pong.c b/apps/plugins/pong.c
index 7a708ae..125b508 100644
--- a/apps/plugins/pong.c
+++ b/apps/plugins/pong.c
@@ -253,6 +253,14 @@ CONFIG_KEYPAD == MROBE500_PAD
#define PONG_RIGHT_UP BUTTON_MENU
#define PONG_RIGHT_DOWN BUTTON_POWER
+#elif (CONFIG_KEYPAD == HM60X_PAD)
+#define PONG_QUIT BUTTON_POWER
+#define PONG_PAUSE BUTTON_SELECT
+#define PONG_LEFT_UP BUTTON_UP
+#define PONG_LEFT_DOWN BUTTON_DOWN
+#define PONG_RIGHT_UP BUTTON_RIGHT
+#define PONG_RIGHT_DOWN BUTTON_LEFT
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/reversi/reversi-gui.h b/apps/plugins/reversi/reversi-gui.h
index 60b35d9..2e1efa3 100644
--- a/apps/plugins/reversi/reversi-gui.h
+++ b/apps/plugins/reversi/reversi-gui.h
@@ -274,6 +274,14 @@
#define REVERSI_BUTTON_MAKE_MOVE BUTTON_SELECT
#define REVERSI_BUTTON_MENU BUTTON_MENU
+#elif CONFIG_KEYPAD == HM60X_PAD
+#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_POWER
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/rockblox.c b/apps/plugins/rockblox.c
index 7db4dd0..03cf492 100644
--- a/apps/plugins/rockblox.c
+++ b/apps/plugins/rockblox.c
@@ -395,6 +395,18 @@
#define ROCKBLOX_DROP BUTTON_SELECT
#define ROCKBLOX_RESTART BUTTON_USER
+#elif CONFIG_KEYPAD == HM60X_PAD
+
+#define ROCKBLOX_OFF BUTTON_POWER
+#define ROCKBLOX_ROTATE_CCW (BUTTON_LEFT|BUTTON_POWER)
+#define ROCKBLOX_ROTATE_CW (BUTTON_RIGHT|BUTTON_POWER)
+#define ROCKBLOX_ROTATE BUTTON_UP
+#define ROCKBLOX_DOWN BUTTON_DOWN
+#define ROCKBLOX_LEFT BUTTON_LEFT
+#define ROCKBLOX_RIGHT BUTTON_RIGHT
+#define ROCKBLOX_DROP BUTTON_SELECT
+#define ROCKBLOX_RESTART (BUTTON_DOWN|BUTTON_POWER)
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/rockpaint.c b/apps/plugins/rockpaint.c
index eeca916..df619fb 100644
--- a/apps/plugins/rockpaint.c
+++ b/apps/plugins/rockpaint.c
@@ -254,6 +254,17 @@
#define ROCKPAINT_LEFT BUTTON_LEFT
#define ROCKPAINT_RIGHT BUTTON_RIGHT
+#elif (CONFIG_KEYPAD == HM60X_PAD)
+#define ROCKPAINT_QUIT BUTTON_POWER
+#define ROCKPAINT_DRAW BUTTON_SELECT
+#define ROCKPAINT_MENU (BUTTON_POWER | BUTTON_SELECT)
+#define ROCKPAINT_TOOLBAR (BUTTON_POWER | BUTTON_UP)
+#define ROCKPAINT_TOOLBAR2 (BUTTON_POWER | BUTTON_LEFT)
+#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
diff --git a/apps/plugins/sliding_puzzle.c b/apps/plugins/sliding_puzzle.c
index 118a859..217d934 100644
--- a/apps/plugins/sliding_puzzle.c
+++ b/apps/plugins/sliding_puzzle.c
@@ -264,6 +264,15 @@ CONFIG_KEYPAD == MROBE500_PAD
#define PUZZLE_SHUFFLE BUTTON_VOL_DOWN
#define PUZZLE_PICTURE BUTTON_SELECT
+#elif (CONFIG_KEYPAD == HM60X_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_SELECT
+#define PUZZLE_PICTURE (BUTTON_POWER|BUTTON_SELECT)
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/snake.c b/apps/plugins/snake.c
index 21d5977..35db6c6 100644
--- a/apps/plugins/snake.c
+++ b/apps/plugins/snake.c
@@ -235,6 +235,14 @@ dir is the current direction of the snake - 0=up, 1=right, 2=down, 3=left;
#define SNAKE_DOWN BUTTON_DOWN
#define SNAKE_PLAYPAUSE BUTTON_PLAYPAUSE
+#elif (CONFIG_KEYPAD == HM60X_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_SELECT
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/snake2.c b/apps/plugins/snake2.c
index 95dc4c4..e83dcb6 100644
--- a/apps/plugins/snake2.c
+++ b/apps/plugins/snake2.c
@@ -347,6 +347,15 @@ CONFIG_KEYPAD == MROBE500_PAD
#define SNAKE2_PLAYPAUSE BUTTON_PLAYPAUSE
#define SNAKE2_PLAYPAUSE_TEXT "Play-Pause"
+#elif (CONFIG_KEYPAD == HM60X_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_PLAYPAUSE BUTTON_SELECT
+#define SNAKE2_PLAYPAUSE_TEXT "Select"
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/sokoban.c b/apps/plugins/sokoban.c
index 2bf90f6..39d5045 100644
--- a/apps/plugins/sokoban.c
+++ b/apps/plugins/sokoban.c
@@ -543,6 +543,20 @@
#define BUTTON_SAVE BUTTON_SELECT
#define BUTTON_SAVE_NAME "SELECT"
+#elif CONFIG_KEYPAD == HM60X_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_POWER
+#define SOKOBAN_UNDO BUTTON_SELECT
+#define SOKOBAN_REDO (BUTTON_SELECT|BUTTON_POWER)
+#define SOKOBAN_LEVEL_DOWN (BUTTON_DOWN|BUTTON_POWER)
+#define SOKOBAN_LEVEL_UP (BUTTON_UP | BUTTON_POWER)
+#define SOKOBAN_PAUSE (BUTTON_RIGHT|BUTTON_POWER)
+#define BUTTON_SAVE (BUTTON_LEFT|BUTTON_POWER)
+#define BUTTON_SAVE_NAME "LEFT + POWER"
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c
index b5376b5..fcb985b 100644
--- a/apps/plugins/solitaire.c
+++ b/apps/plugins/solitaire.c
@@ -560,6 +560,24 @@ CONFIG_KEYPAD == MROBE500_PAD
# define HK_CUR2STACK "Long Select.."
# define HK_REM2STACK "Power"
+#elif (CONFIG_KEYPAD == HM60X_PAD)
+# define SOL_QUIT BUTTON_POWER
+# define SOL_UP BUTTON_UP
+# define SOL_DOWN BUTTON_DOWN
+# define SOL_LEFT BUTTON_LEFT
+# define SOL_RIGHT BUTTON_RIGHT
+# define SOL_MOVE_PRE BUTTON_SELECT
+# define SOL_MOVE (BUTTON_POWER | BUTTON_SELECT)
+# define SOL_DRAW (BUTTON_POWER | BUTTON_UP)
+# define SOL_REM2CUR (BUTTON_POWER | BUTTON_DOWN)
+# define SOL_CUR2STACK (BUTTON_POWER | BUTTON_LEFT)
+# define SOL_REM2STACK (BUTTON_POWER | BUTTON_RIGHT)
+# define HK_MOVE "SELECT + POWER"
+# define HK_DRAW "UP + POWER"
+# define HK_REM2CUR "DOWN + POWER"
+# define HK_CUR2STACK "LEFT + POWER"
+# define HK_REM2STACK "RIGHT + POWER"
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/spacerocks.c b/apps/plugins/spacerocks.c
index a7fdcfb..4f134dd 100644
--- a/apps/plugins/spacerocks.c
+++ b/apps/plugins/spacerocks.c
@@ -287,6 +287,15 @@
#define AST_RIGHT BUTTON_RIGHT
#define AST_FIRE BUTTON_SELECT
+#elif (CONFIG_KEYPAD == HM60X_PAD)
+#define AST_PAUSE (BUTTON_SELECT|BUTTON_POWER)
+#define AST_QUIT BUTTON_POWER
+#define AST_THRUST BUTTON_UP
+#define AST_HYPERSPACE BUTTON_DOWN
+#define AST_LEFT BUTTON_LEFT
+#define AST_RIGHT BUTTON_RIGHT
+#define AST_FIRE BUTTON_SELECT
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/star.c b/apps/plugins/star.c
index e4f4857..bc70b11 100644
--- a/apps/plugins/star.c
+++ b/apps/plugins/star.c
@@ -497,6 +497,23 @@
#define STAR_LEVEL_DOWN_NAME "Power"
#define STAR_LEVEL_REPEAT_NAME "User"
+#elif (CONFIG_KEYPAD == HM60X_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_POWER | BUTTON_UP)
+#define STAR_LEVEL_DOWN (BUTTON_POWER | BUTTON_DOWN)
+#define STAR_LEVEL_REPEAT (BUTTON_POWER | BUTTON_SELECT)
+#define STAR_TOGGLE_CONTROL_NAME "SELECT"
+#define STAR_QUIT_NAME "POWER"
+#define STAR_LEVEL_UP_NAME "POWER + UP"
+#define STAR_LEVEL_DOWN_NAME "POWER + DOWN"
+#define STAR_LEVEL_REPEAT_NAME "POWER + SELECT"
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/stopwatch.c b/apps/plugins/stopwatch.c
index a676816..dcf0267 100644
--- a/apps/plugins/stopwatch.c
+++ b/apps/plugins/stopwatch.c
@@ -271,6 +271,14 @@
#define STOPWATCH_SCROLL_UP BUTTON_UP
#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN
+#elif CONFIG_KEYPAD == HM60X_PAD
+#define STOPWATCH_QUIT BUTTON_POWER
+#define STOPWATCH_START_STOP BUTTON_SELECT
+#define STOPWATCH_RESET_TIMER BUTTON_LEFT
+#define STOPWATCH_LAP_TIMER BUTTON_RIGHT
+#define STOPWATCH_SCROLL_UP BUTTON_UP
+#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/sudoku/sudoku.h b/apps/plugins/sudoku/sudoku.h
index 2fb7462..a7bb85f 100644
--- a/apps/plugins/sudoku/sudoku.h
+++ b/apps/plugins/sudoku/sudoku.h
@@ -344,6 +344,18 @@
#define SUDOKU_BUTTON_TOGGLE BUTTON_SELECT
#define SUDOKU_BUTTON_POSSIBLE BUTTON_USER
+#elif CONFIG_KEYPAD == HM60X_PAD
+#define SUDOKU_BUTTON_QUIT BUTTON_POWER
+#define SUDOKU_BUTTON_MENU (BUTTON_POWER | BUTTON_LEFT)
+#define SUDOKU_BUTTON_LEFT BUTTON_LEFT
+#define SUDOKU_BUTTON_RIGHT BUTTON_RIGHT
+#define SUDOKU_BUTTON_UP BUTTON_UP
+#define SUDOKU_BUTTON_DOWN BUTTON_DOWN
+#define SUDOKU_BUTTON_TOGGLE BUTTON_SELECT
+#define SUDOKU_BUTTON_TOGGLEBACK (BUTTON_POWER | BUTTON_RIGHT)
+#define SUDOKU_BUTTON_POSSIBLE (BUTTON_POWER | BUTTON_SELECT)
+#define SUDOKU_BUTTON_ALTTOGGLE (BUTTON_POWER | BUTTON_UP)
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/superdom.c b/apps/plugins/superdom.c
index c301367..ee12136 100644
--- a/apps/plugins/superdom.c
+++ b/apps/plugins/superdom.c
@@ -199,6 +199,14 @@ char buf[255];
#define SUPERDOM_RIGHT BUTTON_RIGHT
#define SUPERDOM_CANCEL BUTTON_POWER
+#elif CONFIG_KEYPAD == HM60X_PAD
+#define SUPERDOM_OK BUTTON_SELECT
+#define SUPERDOM_UP BUTTON_UP
+#define SUPERDOM_DOWN BUTTON_DOWN
+#define SUPERDOM_LEFT BUTTON_LEFT
+#define SUPERDOM_RIGHT BUTTON_RIGHT
+#define SUPERDOM_CANCEL BUTTON_POWER
+
#endif
#ifdef HAVE_TOUCHSCREEN
diff --git a/apps/plugins/text_viewer/tv_button.h b/apps/plugins/text_viewer/tv_button.h
index e8526e7..aa6bef9 100644
--- a/apps/plugins/text_viewer/tv_button.h
+++ b/apps/plugins/text_viewer/tv_button.h
@@ -452,6 +452,16 @@
#define TV_AUTOSCROLL BUTTON_USER
#define TV_BOOKMARK BUTTON_SELECT
+#elif CONFIG_KEYPAD == HM60X_PAD
+#define TV_QUIT BUTTON_POWER
+#define TV_SCROLL_UP BUTTON_UP
+#define TV_SCROLL_DOWN BUTTON_DOWN
+#define TV_SCREEN_LEFT BUTTON_LEFT
+#define TV_SCREEN_RIGHT BUTTON_RIGHT
+#define TV_MENU (BUTTON_POWER | BUTTON_SELECT)
+#define TV_AUTOSCROLL (BUTTON_POWER | BUTTON_UP)
+#define TV_BOOKMARK BUTTON_SELECT
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/vu_meter.c b/apps/plugins/vu_meter.c
index a1c9670..fab89a8 100644
--- a/apps/plugins/vu_meter.c
+++ b/apps/plugins/vu_meter.c
@@ -349,6 +349,17 @@
#define LABEL_MENU "Menu"
#define LABEL_VOLUME "Up/Down"
+#elif CONFIG_KEYPAD == HM60X_PAD
+#define VUMETER_QUIT BUTTON_POWER
+#define VUMETER_HELP BUTTON_RIGHT
+#define VUMETER_MENU BUTTON_LEFT
+#define VUMETER_UP BUTTON_UP
+#define VUMETER_DOWN BUTTON_DOWN
+#define LABEL_HELP "RIGHT"
+#define LABEL_QUIT "POWER"
+#define LABEL_MENU "LEFT"
+#define LABEL_VOLUME "UP/DOWN"
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/wormlet.c b/apps/plugins/wormlet.c
index 28f854b..f7b8fce 100644
--- a/apps/plugins/wormlet.c
+++ b/apps/plugins/wormlet.c
@@ -321,6 +321,16 @@ CONFIG_KEYPAD == MROBE500_PAD
#define BTN_QUIT BUTTON_POWER
#define BTN_STOPRESET BUTTON_VOL_DOWN
+#elif CONFIG_KEYPAD == HM60X_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_POWER|BUTTON_SELECT)
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/xobox.c b/apps/plugins/xobox.c
index 344e3d6..583c7ed 100644
--- a/apps/plugins/xobox.c
+++ b/apps/plugins/xobox.c
@@ -286,6 +286,15 @@ CONFIG_KEYPAD == MROBE500_PAD
#define DOWN BUTTON_DOWN
#define PAUSE BUTTON_SELECT
+#elif (CONFIG_KEYPAD == HM60X_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
diff --git a/apps/plugins/zxbox/keymaps.h b/apps/plugins/zxbox/keymaps.h
index 9075ae7..fa0e6c9 100644
--- a/apps/plugins/zxbox/keymaps.h
+++ b/apps/plugins/zxbox/keymaps.h
@@ -227,6 +227,15 @@
#define ZX_LEFT BUTTON_LEFT
#define ZX_RIGHT BUTTON_RIGHT
+#elif CONFIG_KEYPAD == HM60X_PAD
+
+#define ZX_MENU BUTTON_POWER
+#define ZX_UP BUTTON_UP
+#define ZX_DOWN BUTTON_DOWN
+#define ZX_SELECT BUTTON_SELECT
+#define ZX_LEFT BUTTON_LEFT
+#define ZX_RIGHT BUTTON_RIGHT
+
#else
#error Keymap not defined!
diff --git a/apps/plugins/zxbox/zxbox_keyb.c b/apps/plugins/zxbox/zxbox_keyb.c
index 06ca373..52a9e29 100644
--- a/apps/plugins/zxbox/zxbox_keyb.c
+++ b/apps/plugins/zxbox/zxbox_keyb.c
@@ -234,6 +234,15 @@
#define KBD_UP BUTTON_UP
#define KBD_DOWN BUTTON_DOWN
+#elif CONFIG_KEYPAD == HM60X_PAD
+
+#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_TOUCHSCREEN