summaryrefslogtreecommitdiff
path: root/apps/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins')
-rw-r--r--apps/plugins/battery_bench.c6
-rw-r--r--apps/plugins/bitmaps/native/SOURCES19
-rw-r--r--apps/plugins/blackjack.c15
-rw-r--r--apps/plugins/bounce.c8
-rw-r--r--apps/plugins/brickmania.c8
-rw-r--r--apps/plugins/calculator.c7
-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.c9
-rw-r--r--apps/plugins/chopper.c5
-rw-r--r--apps/plugins/cube.c10
-rw-r--r--apps/plugins/dict.c2
-rw-r--r--apps/plugins/doom/i_video.c10
-rw-r--r--apps/plugins/fft/fft.c8
-rw-r--r--apps/plugins/fireworks.c4
-rw-r--r--apps/plugins/flipit.c12
-rw-r--r--apps/plugins/fractals/fractal.h12
-rw-r--r--apps/plugins/goban/goban.h10
-rw-r--r--apps/plugins/imageviewer/imageviewer.h12
-rw-r--r--apps/plugins/jewels.c10
-rw-r--r--apps/plugins/lib/pluginlib_actions.c32
-rw-r--r--apps/plugins/logo.c7
-rw-r--r--apps/plugins/matrix.c6
-rw-r--r--apps/plugins/midi/midiplay.c8
-rw-r--r--apps/plugins/minesweeper.c10
-rw-r--r--apps/plugins/mosaique.c5
-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/pegbox.c19
-rw-r--r--apps/plugins/plasma.c6
-rw-r--r--apps/plugins/pong.c7
-rw-r--r--apps/plugins/reversi/reversi-gui.h10
-rw-r--r--apps/plugins/rockblox.c10
-rw-r--r--apps/plugins/rockblox1d.c4
-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/snow.c3
-rw-r--r--apps/plugins/sokoban.c15
-rw-r--r--apps/plugins/solitaire.c18
-rw-r--r--apps/plugins/spacerocks.c10
-rw-r--r--apps/plugins/star.c18
-rw-r--r--apps/plugins/starfield.c8
-rw-r--r--apps/plugins/stats.c3
-rw-r--r--apps/plugins/stopwatch.c8
-rw-r--r--apps/plugins/sudoku/sudoku.h9
-rw-r--r--apps/plugins/test_fps.c2
-rw-r--r--apps/plugins/test_grey.c8
-rw-r--r--apps/plugins/test_greylib_bitmap_scale.c2
-rw-r--r--apps/plugins/test_scanrate.c7
-rw-r--r--apps/plugins/viewer.c10
-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
59 files changed, 550 insertions, 0 deletions
diff --git a/apps/plugins/battery_bench.c b/apps/plugins/battery_bench.c
index e4e399ff7b..5c04892d61 100644
--- a/apps/plugins/battery_bench.c
+++ b/apps/plugins/battery_bench.c
@@ -210,6 +210,12 @@ PLUGIN_HEADER
#define BATTERY_ON_TXT "PLAY - start"
#define BATTERY_OFF_TXT "REC"
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define BATTERY_ON BUTTON_PLAY
+#define BATTERY_OFF BUTTON_REC
+#define BATTERY_ON_TXT "PLAY - start"
+#define BATTERY_OFF_TXT "REC"
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/bitmaps/native/SOURCES b/apps/plugins/bitmaps/native/SOURCES
index 506ecc9451..6d3257608f 100644
--- a/apps/plugins/bitmaps/native/SOURCES
+++ b/apps/plugins/bitmaps/native/SOURCES
@@ -98,6 +98,9 @@ brickmania_bricks.160x128x2.bmp
#elif LCD_WIDTH >= 138
brickmania_ball.5x5x2.bmp
brickmania_bricks.138x110x2.bmp
+#elif LCD_WIDTH >= 128
+brickmania_ball.4x4x2.bmp
+brickmania_bricks.128x128x2.bmp
#else /* M3 currently */
brickmania_ball.4x4x2.bmp
brickmania_bricks.128x96x2.bmp
@@ -251,6 +254,14 @@ clock_segments.132x80x16.bmp
clock_smallsegments.132x80x16.bmp
clock_logo.132x80x16.bmp
clock_messages.132x80x16.bmp
+#elif (LCD_WIDTH >= 128) && (LCD_HEIGHT >= 128) && (LCD_DEPTH >= 2)
+clock_binary.128x128x2.bmp
+clock_digits.128x128x2.bmp
+clock_smalldigits.128x128x2.bmp
+clock_segments.128x128x2.bmp
+clock_smallsegments.128x128x2.bmp
+clock_logo.128x128x2.bmp
+clock_messages.128x128x2.bmp
#elif (LCD_WIDTH >= 112) && (LCD_HEIGHT >= 64) && (LCD_DEPTH >= 1)
clock_binary.112x64x1.bmp
clock_digits.112x64x1.bmp
@@ -494,6 +505,8 @@ rockblox_background.128x96x2.bmp
rockblox_background.160x128x2.bmp
#elif (LCD_WIDTH == 138) && (LCD_HEIGHT == 110)
rockblox_background.138x110x2.bmp
+#elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 128)
+rockblox_background.128x128x2.bmp
#elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 96)
rockblox_background.128x96x2.bmp
#endif
@@ -698,6 +711,10 @@ sudoku_inverse.112x64x1.bmp
sudoku_start.128x96x2.bmp
sudoku_normal.128x96x2.bmp
sudoku_inverse.128x96x2.bmp
+#elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 128) && (LCD_DEPTH == 2)
+sudoku_start.128x128x2.bmp
+sudoku_normal.128x128x2.bmp
+sudoku_inverse.128x128x2.bmp
#elif (LCD_WIDTH == 138) && (LCD_HEIGHT == 110) && (LCD_DEPTH >= 2)
sudoku_start.138x110x2.bmp
sudoku_normal.138x110x2.bmp
@@ -861,6 +878,8 @@ pitch_notes.160x128x2.bmp
pitch_notes.160x128x2.bmp
#elif (LCD_WIDTH >= 132) && (LCD_HEIGHT >= 80) && (LCD_DEPTH >= 16)
pitch_notes.132x80x16.bmp
+#elif (LCD_WIDTH >= 128) && (LCD_HEIGHT >= 128) && (LCD_DEPTH >= 2)
+pitch_notes.128x128x2.bmp
#elif (LCD_WIDTH >= 128) && (LCD_HEIGHT >= 96) && (LCD_DEPTH >= 2)
pitch_notes.128x96x2.bmp
#elif (LCD_WIDTH >= 128) && (LCD_HEIGHT >= 64)
diff --git a/apps/plugins/blackjack.c b/apps/plugins/blackjack.c
index a8f92b9f5a..1af26f290f 100644
--- a/apps/plugins/blackjack.c
+++ b/apps/plugins/blackjack.c
@@ -404,6 +404,21 @@ enum {
#define BJACK_RIGHT BUTTON_NEXT
#define BJACK_LEFT BUTTON_PREV
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define BJACK_SELECT_NAME "SELECT"
+#define BJACK_STAY_NAME "RIGHT"
+#define BJACK_RESUME_NAME "PLAY"
+#define BJACK_QUIT_NAME "REC+PLAY"
+#define BJACK_DOUBLE_NAME "LEFT"
+#define BJACK_SELECT BUTTON_SELECT
+#define BJACK_QUIT (BUTTON_REC|BUTTON_PLAY)
+#define BJACK_STAY BUTTON_VOL_UP
+#define BJACK_DOUBLEDOWN BUTTON_VOL_DOWN
+#define BJACK_UP BUTTON_PREV
+#define BJACK_DOWN BUTTON_NEXT
+#define BJACK_RIGHT BUTTON_VOL_UP
+#define BJACK_LEFT BUTTON_VOL_DOWN
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/bounce.c b/apps/plugins/bounce.c
index a7f8e1847d..f193818850 100644
--- a/apps/plugins/bounce.c
+++ b/apps/plugins/bounce.c
@@ -204,6 +204,14 @@ PLUGIN_HEADER
#define BOUNCE_QUIT BUTTON_REC
#define BOUNCE_MODE BUTTON_MENU
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define BOUNCE_LEFT BUTTON_VOL_DOWN
+#define BOUNCE_RIGHT BUTTON_VOL_UP
+#define BOUNCE_UP BUTTON_PREV
+#define BOUNCE_DOWN BUTTON_NEXT
+#define BOUNCE_QUIT (BUTTON_REC | BUTTON_PLAY)
+#define BOUNCE_MODE BUTTON_SELECT
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/brickmania.c b/apps/plugins/brickmania.c
index bc446df179..60e8f3820b 100644
--- a/apps/plugins/brickmania.c
+++ b/apps/plugins/brickmania.c
@@ -243,6 +243,14 @@ CONFIG_KEYPAD == SANSA_M200_PAD
#define UP BUTTON_UP
#define DOWN BUTTON_DOWN
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define QUIT (BUTTON_REC|BUTTON_PLAY)
+#define LEFT BUTTON_VOL_DOWN
+#define RIGHT BUTTON_VOL_UP
+#define SELECT BUTTON_SELECT
+#define UP BUTTON_PREV
+#define DOWN BUTTON_NEXT
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/calculator.c b/apps/plugins/calculator.c
index 4e40625356..942f031890 100644
--- a/apps/plugins/calculator.c
+++ b/apps/plugins/calculator.c
@@ -374,6 +374,13 @@ PLUGIN_HEADER
#define CALCULATOR_CALC BUTTON_PLAY
#define CALCULATOR_CLEAR BUTTON_CANCEL
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define CALCULATOR_LEFT BUTTON_PREV
+#define CALCULATOR_RIGHT BUTTON_NEXT
+#define CALCULATOR_QUIT (BUTTON_REC|BUTTON_PLAY)
+#define CALCULATOR_INPUT BUTTON_SELECT
+#define CALCULATOR_CALC BUTTON_PLAY
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/calendar.c b/apps/plugins/calendar.c
index 9327ac6aa2..d6a1a9a4ac 100644
--- a/apps/plugins/calendar.c
+++ b/apps/plugins/calendar.c
@@ -258,6 +258,16 @@ PLUGIN_HEADER
#define CALENDAR_NEXT_MONTH BUTTON_PLAY
#define CALENDAR_PREV_MONTH BUTTON_MENU
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define CALENDAR_QUIT (BUTTON_REC|BUTTON_PLAY)
+#define CALENDAR_SELECT BUTTON_SELECT
+#define CALENDAR_NEXT_WEEK BUTTON_NEXT
+#define CALENDAR_PREV_WEEK BUTTON_PREV
+#define CALENDAR_NEXT_DAY BUTTON_VOL_UP
+#define CALENDAR_PREV_DAY BUTTON_VOL_DOWN
+#define CALENDAR_NEXT_MONTH BUTTON_PLAY
+#define CALENDAR_PREV_MONTH BUTTON_REC
+
#else
#error "No keypad setting."
#endif
diff --git a/apps/plugins/chessbox/chessbox_pgn.h b/apps/plugins/chessbox/chessbox_pgn.h
index 64cf3a5383..ee28a4fd55 100644
--- a/apps/plugins/chessbox/chessbox_pgn.h
+++ b/apps/plugins/chessbox/chessbox_pgn.h
@@ -366,6 +366,16 @@
#define CB_LEVEL BUTTON_CANCEL
#define CB_MENU BUTTON_MENU
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define CB_SELECT BUTTON_SELECT
+#define CB_UP BUTTON_PREV
+#define CB_DOWN BUTTON_NEXT
+#define CB_LEFT BUTTON_VOL_DOWN
+#define CB_RIGHT BUTTON_VOL_UP
+#define CB_PLAY BUTTON_PLAY
+#define CB_LEVEL BUTTON_REC
+#define CB_MENU (BUTTON_SELECT | BUTTON_REPEAT)
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/chessclock.c b/apps/plugins/chessclock.c
index f0a63f63dc..3afa705bf1 100644
--- a/apps/plugins/chessclock.c
+++ b/apps/plugins/chessclock.c
@@ -276,6 +276,16 @@ PLUGIN_HEADER
#define CHC_SETTINGS_OK BUTTON_OK
#define CHC_SETTINGS_CANCEL BUTTON_CANCEL
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define CHC_QUIT (BUTTON_REC|BUTTON_PLAY)
+#define CHC_STARTSTOP BUTTON_PLAY
+#define CHC_RESET BUTTON_PREV
+#define CHC_MENU BUTTON_SELECT
+#define CHC_SETTINGS_INC BUTTON_VOL_UP
+#define CHC_SETTINGS_DEC BUTTON_VOL_DOWN
+#define CHC_SETTINGS_OK BUTTON_SELECT
+#define CHC_SETTINGS_CANCEL BUTTON_REC
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/chip8.c b/apps/plugins/chip8.c
index 4aa19125f2..edc3bf0bc1 100644
--- a/apps/plugins/chip8.c
+++ b/apps/plugins/chip8.c
@@ -1136,6 +1136,15 @@ CONFIG_KEYPAD == MROBE500_PAD
#define CHIP8_KEY6 BUTTON_NEXT
#define CHIP8_KEY8 BUTTON_DOWN
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+
+#define CHIP8_OFF (BUTTON_REC|BUTTON_PLAY)
+#define CHIP8_KEY2 BUTTON_PREV
+#define CHIP8_KEY4 BUTTON_NEXT
+#define CHIP8_KEY5 BUTTON_PLAY
+#define CHIP8_KEY6 BUTTON_VOL_DOWN
+#define CHIP8_KEY8 BUTTON_VOL_UP
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/chopper.c b/apps/plugins/chopper.c
index 1217ea75ac..67cb9ee760 100644
--- a/apps/plugins/chopper.c
+++ b/apps/plugins/chopper.c
@@ -157,6 +157,11 @@ CONFIG_KEYPAD == MROBE500_PAD
#define ACTION2 BUTTON_UP
#define ACTIONTEXT "PLAY"
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define QUIT (BUTTON_REC|BUTTON_PLAY)
+#define ACTION BUTTON_SELECT
+#define ACTIONTEXT "SELECT"
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/cube.c b/apps/plugins/cube.c
index 014bcfcb79..5c6f9934eb 100644
--- a/apps/plugins/cube.c
+++ b/apps/plugins/cube.c
@@ -274,6 +274,16 @@ PLUGIN_HEADER
#define CUBE_PAUSE BUTTON_PLAY
#define CUBE_HIGHSPEED BUTTON_OK
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define CUBE_QUIT (BUTTON_REC | BUTTON_PLAY)
+#define CUBE_NEXT BUTTON_NEXT
+#define CUBE_PREV BUTTON_PREV
+#define CUBE_INC BUTTON_VOL_UP
+#define CUBE_DEC BUTTON_VOL_DOWN
+#define CUBE_MODE BUTTON_REC
+#define CUBE_PAUSE BUTTON_PLAY
+#define CUBE_HIGHSPEED BUTTON_SELECT
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/dict.c b/apps/plugins/dict.c
index bb98df7501..cdd4c651de 100644
--- a/apps/plugins/dict.c
+++ b/apps/plugins/dict.c
@@ -150,6 +150,8 @@ long reverse (long N) {
#define LP_QUIT BUTTON_LEFT
#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
#define LP_QUIT BUTTON_CANCEL
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define LP_QUIT (BUTTON_REC|BUTTON_PLAY)
#else
#define LP_QUIT BUTTON_OFF
#endif
diff --git a/apps/plugins/doom/i_video.c b/apps/plugins/doom/i_video.c
index fbe8369100..dc0374f852 100644
--- a/apps/plugins/doom/i_video.c
+++ b/apps/plugins/doom/i_video.c
@@ -360,6 +360,16 @@ void I_ShutdownGraphics(void)
#define DOOMBUTTON_ESC BUTTON_REC
#define DOOMBUTTON_ENTER BUTTON_POWER
#define DOOMBUTTON_WEAPON BUTTON_PLAY
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define DOOMBUTTON_UP BUTTON_PREV
+#define DOOMBUTTON_DOWN BUTTON_NEXT
+#define DOOMBUTTON_LEFT BUTTON_VOL_DOWN
+#define DOOMBUTTON_RIGHT BUTTON_VOL_UP
+#define DOOMBUTTON_SHOOT BUTTON_SELECT
+#define DOOMBUTTON_OPEN (BUTTON_SELECT|BUTTON_PLAY)
+#define DOOMBUTTON_ESC BUTTON_REC
+#define DOOMBUTTON_ENTER BUTTON_PLAY
+#define DOOMBUTTON_WEAPON (BUTTON_PLAY|BUTTON_REPEAT)
#else
#error Keymap not defined!
#endif
diff --git a/apps/plugins/fft/fft.c b/apps/plugins/fft/fft.c
index e62c919f88..ae07179557 100644
--- a/apps/plugins/fft/fft.c
+++ b/apps/plugins/fft/fft.c
@@ -195,6 +195,14 @@ GREY_INFO_STRUCT
# define FFT_SCALE BUTTON_PLAY
# define FFT_QUIT BUTTON_REC
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+# define FFT_PREV_GRAPH BUTTON_PREV
+# define FFT_NEXT_GRAPH BUTTON_NEXT
+# define FFT_ORIENTATION BUTTON_REC
+# define FFT_WINDOW BUTTON_SELECT
+# define FFT_SCALE BUTTON_PLAY
+# define FFT_QUIT (BUTTON_REC | BUTTON_PLAY)
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/fireworks.c b/apps/plugins/fireworks.c
index 263c05792b..1ad5f9a2ca 100644
--- a/apps/plugins/fireworks.c
+++ b/apps/plugins/fireworks.c
@@ -114,6 +114,10 @@ PLUGIN_HEADER
#define BTN_MENU BUTTON_MENU
#define BTN_FIRE BUTTON_OK
+#elif (CONFIG_KEYPAD == MPIO_HD200_PAD)
+#define BTN_MENU BUTTON_REC
+#define BTN_FIRE BUTTON_SELECT
+
#elif defined(HAVE_TOUCHSCREEN)
/* This is a touchscreen target */
#else
diff --git a/apps/plugins/flipit.c b/apps/plugins/flipit.c
index b706b63f94..d4c5702bc0 100644
--- a/apps/plugins/flipit.c
+++ b/apps/plugins/flipit.c
@@ -320,6 +320,18 @@ PLUGIN_HEADER
#define FLIPIT_STEP_BY_STEP BUTTON_CANCEL
#define FLIPIT_TOGGLE BUTTON_OK
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+
+#define FLIPIT_LEFT BUTTON_VOL_DOWN
+#define FLIPIT_RIGHT BUTTON_VOL_UP
+#define FLIPIT_UP BUTTON_PREV
+#define FLIPIT_DOWN BUTTON_NEXT
+#define FLIPIT_QUIT (BUTTON_REC|BUTTON_PLAY)
+#define FLIPIT_SHUFFLE BUTTON_SELECT
+#define FLIPIT_SOLVE BUTTON_REC
+#define FLIPIT_STEP_BY_STEP (BUTTON_PLAY|BUTTON_PREV)
+#define FLIPIT_TOGGLE (BUTTON_PLAY|BUTTON_NEXT)
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/fractals/fractal.h b/apps/plugins/fractals/fractal.h
index 2bcee1da57..557dde470a 100644
--- a/apps/plugins/fractals/fractal.h
+++ b/apps/plugins/fractals/fractal.h
@@ -318,6 +318,18 @@
#define FRACTAL_PRECISION_DEC BUTTON_CANCEL
#define FRACTAL_RESET (BUTTON_CANCEL | BUTTON_REPEAT)
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define FRACTAL_QUIT (BUTTON_REC | BUTTON_PLAY)
+#define FRACTAL_UP BUTTON_PREV
+#define FRACTAL_DOWN BUTTON_NEXT
+#define FRACTAL_LEFT BUTTON_VOL_DOWN
+#define FRACTAL_RIGHT BUTTON_VOL_UP
+#define FRACTAL_ZOOM_IN (BUTTON_PLAY|BUTTON_NEXT)
+#define FRACTAL_ZOOM_OUT (BUTTON_PLAY|BUTTON_PREV)
+#define FRACTAL_PRECISION_INC (BUTTON_PLAY | BUTTON_VOL_UP)
+#define FRACTAL_PRECISION_DEC (BUTTON_PLAY | BUTTON_VOL_DOWN)
+#define FRACTAL_RESET BUTTON_REC
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/goban/goban.h b/apps/plugins/goban/goban.h
index 6bc1e83ea9..978812ac65 100644
--- a/apps/plugins/goban/goban.h
+++ b/apps/plugins/goban/goban.h
@@ -309,6 +309,16 @@
#define GBN_BUTTON_CONTEXT BUTTON_OK
#define GBN_BUTTON_NEXT_VAR BUTTON_CANCEL
+#elif (CONFIG_KEYPAD == MPIO_HD200_PAD)
+#define GBN_BUTTON_UP BUTTON_PREV
+#define GBN_BUTTON_DOWN BUTTON_NEXT
+#define GBN_BUTTON_LEFT BUTTON_VOL_DOWN
+#define GBN_BUTTON_RIGHT BUTTON_VOL_UP
+#define GBN_BUTTON_RETREAT BUTTON_REC
+#define GBN_BUTTON_ADVANCE BUTTON_PLAY
+#define GBN_BUTTON_PLAY BUTTON_SELECT | BUTTON_REL
+#define GBN_BUTTON_MENU BUTTON_SELECT | BUTTON_REPEAT
+
#else
#error Unsupported keypad
#endif
diff --git a/apps/plugins/imageviewer/imageviewer.h b/apps/plugins/imageviewer/imageviewer.h
index a2e12911b3..b704701cda 100644
--- a/apps/plugins/imageviewer/imageviewer.h
+++ b/apps/plugins/imageviewer/imageviewer.h
@@ -316,6 +316,18 @@
#define IMGVIEW_MENU BUTTON_MENU
#define IMGVIEW_QUIT BUTTON_CANCEL
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define IMGVIEW_ZOOM_IN (BUTTON_REC|BUTTON_VOL_UP)
+#define IMGVIEW_ZOOM_OUT (BUTTON_REC|BUTTON_VOL_DOWN)
+#define IMGVIEW_UP BUTTON_PREV
+#define IMGVIEW_DOWN BUTTON_NEXT
+#define IMGVIEW_LEFT BUTTON_VOL_DOWN
+#define IMGVIEW_RIGHT BUTTON_VOL_UP
+#define IMGVIEW_NEXT (BUTTON_REC | BUTTON_NEXT)
+#define IMGVIEW_PREVIOUS (BUTTON_REC | BUTTON_PREV)
+#define IMGVIEW_MENU BUTTON_SELECT
+#define IMGVIEW_QUIT (BUTTON_REC | BUTTON_PLAY)
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/jewels.c b/apps/plugins/jewels.c
index 74e8d6ec11..6bed9bf827 100644
--- a/apps/plugins/jewels.c
+++ b/apps/plugins/jewels.c
@@ -277,6 +277,16 @@ CONFIG_KEYPAD == MROBE500_PAD
#define HK_SELECT "OK"
#define HK_CANCEL "REC"
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define JEWELS_LEFT BUTTON_VOL_DOWN
+#define JEWELS_RIGHT BUTTON_VOL_UP
+#define JEWELS_UP BUTTON_PREV
+#define JEWELS_DOWN BUTTON_NEXT
+#define JEWELS_SELECT BUTTON_SELECT
+#define JEWELS_CANCEL BUTTON_REC
+#define HK_SELECT "SELECT"
+#define HK_CANCEL "REC"
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/lib/pluginlib_actions.c b/apps/plugins/lib/pluginlib_actions.c
index 20e7bd7ea3..29c9430f64 100644
--- a/apps/plugins/lib/pluginlib_actions.c
+++ b/apps/plugins/lib/pluginlib_actions.c
@@ -199,6 +199,16 @@ const struct button_mapping generic_directions[] =
{ PLA_DOWN_REPEAT, BUTTON_DOWN, BUTTON_NONE},
{ PLA_LEFT_REPEAT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE},
{ PLA_RIGHT_REPEAT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE},
+#elif (CONFIG_KEYPAD == MPIO_HD200_PAD)
+ { PLA_UP, BUTTON_PREV, BUTTON_NONE},
+ { PLA_DOWN, BUTTON_NEXT, BUTTON_NONE},
+ { PLA_LEFT, BUTTON_VOL_DOWN, BUTTON_NONE},
+ { PLA_RIGHT, BUTTON_VOL_UP, BUTTON_NONE},
+ { PLA_UP_REPEAT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE},
+ { PLA_DOWN_REPEAT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE},
+ { PLA_LEFT_REPEAT, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE},
+ { PLA_RIGHT_REPEAT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE},
+
#else
#error pluginlib_actions: Unsupported keypad
#endif
@@ -342,6 +352,15 @@ const struct button_mapping generic_left_right_fire[] =
{ PLA_RIGHT_REPEAT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE},
{ PLA_FIRE, BUTTON_OK, BUTTON_NONE},
{ PLA_FIRE_REPEAT, BUTTON_OK|BUTTON_REPEAT, BUTTON_NONE},
+#elif (CONFIG_KEYPAD == MPIO_HD200_PAD)
+ { PLA_LEFT, BUTTON_VOL_DOWN, BUTTON_NONE},
+ { PLA_RIGHT, BUTTON_VOL_UP, BUTTON_NONE},
+ { PLA_LEFT_REPEAT, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE},
+ { PLA_RIGHT_REPEAT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE},
+ { PLA_FIRE, BUTTON_SELECT, BUTTON_NONE},
+ { PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE},
+
+
#else
#error pluginlib_actions: Unsupported keypad
#endif
@@ -521,6 +540,13 @@ const struct button_mapping generic_actions[] =
{PLA_MENU, BUTTON_MENU, BUTTON_NONE},
{PLA_FIRE, BUTTON_OK, BUTTON_NONE},
{PLA_FIRE_REPEAT, BUTTON_OK|BUTTON_REPEAT, BUTTON_NONE},
+#elif (CONFIG_KEYPAD == MPIO_HD200_PAD)
+ {PLA_QUIT, (BUTTON_REC|BUTTON_PLAY), BUTTON_NONE},
+ {PLA_START, BUTTON_PLAY, BUTTON_NONE},
+ {PLA_MENU, BUTTON_REC, BUTTON_NONE},
+ {PLA_FIRE, BUTTON_SELECT, BUTTON_NONE},
+ {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE},
+
#else
#error pluginlib_actions: Unsupported keypad
#endif
@@ -616,6 +642,12 @@ const struct button_mapping generic_increase_decrease[] =
{PLA_DEC, BUTTON_DOWN, BUTTON_NONE},
{PLA_INC_REPEAT, BUTTON_UP, BUTTON_NONE},
{PLA_DEC_REPEAT, BUTTON_DOWN, BUTTON_NONE},
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+ {PLA_INC, BUTTON_VOL_UP, BUTTON_NONE},
+ {PLA_DEC, BUTTON_VOL_DOWN, BUTTON_NONE},
+ {PLA_INC_REPEAT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE},
+ {PLA_DEC_REPEAT, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE},
+
#else
#error pluginlib_actions: Unsupported keypad
#endif
diff --git a/apps/plugins/logo.c b/apps/plugins/logo.c
index b2320237f9..59baa2d5af 100644
--- a/apps/plugins/logo.c
+++ b/apps/plugins/logo.c
@@ -193,6 +193,13 @@ const unsigned char rockbox16x7[] = {
#define LP_DEC_Y BUTTON_DOWN
#define LP_INC_Y BUTTON_UP
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define LP_QUIT (BUTTON_REC|BUTTON_PLAY)
+#define LP_DEC_X BUTTON_VOL_DOWN
+#define LP_INC_X BUTTON_VOL_UP
+#define LP_DEC_Y BUTTON_PREV
+#define LP_INC_Y BUTTON_NEXT
+
#else
#define LP_QUIT BUTTON_OFF
#define LP_DEC_X BUTTON_LEFT
diff --git a/apps/plugins/matrix.c b/apps/plugins/matrix.c
index e7326ea4f4..5a13b3aa38 100644
--- a/apps/plugins/matrix.c
+++ b/apps/plugins/matrix.c
@@ -156,6 +156,12 @@ CONFIG_KEYPAD == MROBE500_PAD
#define MATRIX_SLEEP_LESS BUTTON_NEXT
#define MATRIX_PAUSE BUTTON_PLAY
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define MATRIX_EXIT (BUTTON_REC|BUTTON_PLAY)
+#define MATRIX_SLEEP_MORE BUTTON_VOL_UP
+#define MATRIX_SLEEP_LESS BUTTON_VOL_DOWN
+#define MATRIX_PAUSE BUTTON_PLAY
+
#else
#error Unsupported keypad
#endif
diff --git a/apps/plugins/midi/midiplay.c b/apps/plugins/midi/midiplay.c
index 69c137e268..b225014fce 100644
--- a/apps/plugins/midi/midiplay.c
+++ b/apps/plugins/midi/midiplay.c
@@ -195,6 +195,14 @@ PLUGIN_IRAM_DECLARE
#define BTN_DOWN BUTTON_DOWN
#define BTN_PLAY BUTTON_PLAY
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define BTN_QUIT (BUTTON_REC | BUTTON_PLAY)
+#define BTN_RIGHT BUTTON_VOL_DOWN
+#define BTN_LEFT BUTTON_VOL_UP
+#define BTN_UP BUTTON_PREV
+#define BTN_DOWN BUTTON_NEXT
+#define BTN_PLAY BUTTON_PLAY
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/minesweeper.c b/apps/plugins/minesweeper.c
index 7b26169da7..dbf3271353 100644
--- a/apps/plugins/minesweeper.c
+++ b/apps/plugins/minesweeper.c
@@ -259,6 +259,16 @@ CONFIG_KEYPAD == MROBE500_PAD
# define MINESWP_DISCOVER BUTTON_OK
# define MINESWP_INFO BUTTON_MENU
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+# define MINESWP_LEFT BUTTON_VOL_DOWN
+# define MINESWP_RIGHT BUTTON_VOL_UP
+# define MINESWP_UP BUTTON_PREV
+# define MINESWP_DOWN BUTTON_NEXT
+# define MINESWP_QUIT (BUTTON_REC|BUTTON_PLAY)
+# define MINESWP_TOGGLE BUTTON_PLAY
+# define MINESWP_DISCOVER BUTTON_SELECT
+# define MINESWP_INFO BUTTON_REC
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/mosaique.c b/apps/plugins/mosaique.c
index d6fc11d131..6506c85560 100644
--- a/apps/plugins/mosaique.c
+++ b/apps/plugins/mosaique.c
@@ -169,6 +169,11 @@ PLUGIN_HEADER
#define MOSAIQUE_SPEED BUTTON_PLAY
#define MOSAIQUE_RESTART BUTTON_MENU
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define MOSAIQUE_QUIT (BUTTON_REC | BUTTON_PLAY)
+#define MOSAIQUE_SPEED BUTTON_SELECT
+#define MOSAIQUE_RESTART BUTTON_PLAY
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/mp3_encoder.c b/apps/plugins/mp3_encoder.c
index 070bdb199f..50aa99b2ae 100644
--- a/apps/plugins/mp3_encoder.c
+++ b/apps/plugins/mp3_encoder.c
@@ -2511,6 +2511,12 @@ CONFIG_KEYPAD == MROBE500_PAD
#define MP3ENC_DONE BUTTON_REC
#define MP3ENC_SELECT BUTTON_OK
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define MP3ENC_PREV BUTTON_PREV
+#define MP3ENC_NEXT BUTTON_NEXT
+#define MP3ENC_DONE BUTTON_PLAY
+#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 49d7f8b38d..6c8a2b8e3e 100644
--- a/apps/plugins/mpegplayer/mpeg_settings.c
+++ b/apps/plugins/mpegplayer/mpeg_settings.c
@@ -206,6 +206,14 @@ struct mpeg_settings settings;
#define MPEG_START_TIME_RIGHT2 BUTTON_CANCEL
#define MPEG_START_TIME_EXIT BUTTON_REC
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define MPEG_START_TIME_SELECT BUTTON_SELECT
+#define MPEG_START_TIME_LEFT BUTTON_PREV
+#define MPEG_START_TIME_RIGHT BUTTON_NEXT
+#define MPEG_START_TIME_UP BUTTON_VOL_UP
+#define MPEG_START_TIME_DOWN BUTTON_VOL_DOWN
+#define MPEG_START_TIME_EXIT BUTTON_REC
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/mpegplayer/mpegplayer.c b/apps/plugins/mpegplayer/mpegplayer.c
index 015aae4ad0..4c7245dc94 100644
--- a/apps/plugins/mpegplayer/mpegplayer.c
+++ b/apps/plugins/mpegplayer/mpegplayer.c
@@ -317,6 +317,15 @@ CONFIG_KEYPAD == SANSA_M200_PAD
#define MPEG_RW BUTTON_PREV
#define MPEG_FF BUTTON_NEXT
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define MPEG_MENU BUTTON_SELECT
+#define MPEG_PAUSE (BUTTON_PLAY | BUTTON_REL)
+#define MPEG_STOP (BUTTON_PLAY | BUTTON_REPEAT)
+#define MPEG_VOLDOWN BUTTON_VOL_DOWN
+#define MPEG_VOLUP BUTTON_VOL_UP
+#define MPEG_RW BUTTON_PREV
+#define MPEG_FF BUTTON_NEXT
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/oscilloscope.c b/apps/plugins/oscilloscope.c
index 69ae8bcfaf..4195d96d5f 100644
--- a/apps/plugins/oscilloscope.c
+++ b/apps/plugins/oscilloscope.c
@@ -287,6 +287,17 @@ PLUGIN_HEADER
#define OSCILLOSCOPE_VOL_UP BUTTON_UP
#define OSCILLOSCOPE_VOL_DOWN BUTTON_DOWN
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define OSCILLOSCOPE_QUIT (BUTTON_REC | BUTTON_PLAY)
+#define OSCILLOSCOPE_DRAWMODE BUTTON_SELECT
+#define OSCILLOSCOPE_ADVMODE BUTTON_REC
+#define OSCILLOSCOPE_ORIENTATION (BUTTON_SELECT|BUTTON_REPEAT)
+#define OSCILLOSCOPE_PAUSE BUTTON_PLAY
+#define OSCILLOSCOPE_SPEED_UP BUTTON_NEXT
+#define OSCILLOSCOPE_SPEED_DOWN BUTTON_PREV
+#define OSCILLOSCOPE_VOL_UP BUTTON_VOL_UP
+#define OSCILLOSCOPE_VOL_DOWN BUTTON_VOL_DOWN
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/pegbox.c b/apps/plugins/pegbox.c
index f80b163c3f..a429b00166 100644
--- a/apps/plugins/pegbox.c
+++ b/apps/plugins/pegbox.c
@@ -418,6 +418,25 @@ CONFIG_KEYPAD == MROBE500_PAD
#define LVL_DOWN_TEXT "CANCEL"
#define SELECT_TEXT "PLAY"
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define PEGBOX_SAVE (BUTTON_PLAY|BUTTON_SELECT)
+#define PEGBOX_QUIT (BUTTON_REC|BUTTON_PLAY)
+#define PEGBOX_RESTART BUTTON_REC
+#define PEGBOX_LVL_UP (BUTTON_PLAY|BUTTON_PREV)
+#define PEGBOX_LVL_DOWN (BUTTON_PLAY|BUTTON_NEXT)
+#define PEGBOX_UP BUTTON_PREV
+#define PEGBOX_DOWN BUTTON_NEXT
+#define PEGBOX_RIGHT BUTTON_VOL_UP
+#define PEGBOX_LEFT BUTTON_VOL_DOWN
+#define PEGBOX_SELECT BUTTON_SELECT
+
+#define SAVE_TEXT "PLAY + SELECT"
+#define QUIT_TEXT "REC + PLAY"
+#define RESTART_TEXT "REC"
+#define LVL_UP_TEXT "PREV"
+#define LVL_DOWN_TEXT "NEXT"
+#define SELECT_TEXT "SELECT"
+
#else
#error Unsupported keymap!
#endif
diff --git a/apps/plugins/plasma.c b/apps/plugins/plasma.c
index f91242ed9f..adf7ab532a 100644
--- a/apps/plugins/plasma.c
+++ b/apps/plugins/plasma.c
@@ -170,6 +170,12 @@ static bool boosted = false;
#define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN
#define PLASMA_REGEN_COLORS BUTTON_PLAY
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define PLASMA_QUIT (BUTTON_REC|BUTTON_PLAY)
+#define PLASMA_INCREASE_FREQUENCY BUTTON_VOL_DOWN
+#define PLASMA_DECREASE_FREQUENCY BUTTON_VOL_UP
+#define PLASMA_REGEN_COLORS BUTTON_PLAY
+
#endif
#ifdef HAVE_TOUCHSCREEN
diff --git a/apps/plugins/pong.c b/apps/plugins/pong.c
index d14db5fdbd..08899d767a 100644
--- a/apps/plugins/pong.c
+++ b/apps/plugins/pong.c
@@ -213,6 +213,13 @@ CONFIG_KEYPAD == MROBE500_PAD
#define PONG_RIGHT_UP BUTTON_PLAY
#define PONG_RIGHT_DOWN BUTTON_NEXT
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define PONG_QUIT (BUTTON_REC|BUTTON_PLAY)
+#define PONG_LEFT_UP BUTTON_PREV
+#define PONG_LEFT_DOWN BUTTON_NEXT
+#define PONG_RIGHT_UP BUTTON_VOL_UP
+#define PONG_RIGHT_DOWN BUTTON_VOL_DOWN
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/reversi/reversi-gui.h b/apps/plugins/reversi/reversi-gui.h
index 145335ce76..9b4c43ca21 100644
--- a/apps/plugins/reversi/reversi-gui.h
+++ b/apps/plugins/reversi/reversi-gui.h
@@ -216,6 +216,16 @@
#define REVERSI_BUTTON_MAKE_MOVE BUTTON_OK
#define REVERSI_BUTTON_MENU BUTTON_MENU
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define REVERSI_BUTTON_UP BUTTON_PREV
+#define REVERSI_BUTTON_DOWN BUTTON_NEXT
+#define REVERSI_BUTTON_LEFT BUTTON_VOL_DOWN
+#define REVERSI_BUTTON_RIGHT BUTTON_VOL_UP
+#define REVERSI_BUTTON_MAKE_MOVE BUTTON_SELECT
+#define REVERSI_BUTTON_MAKE_MOVE_SHORTPRESS
+#define REVERSI_BUTTON_MENU BUTTON_SELECT
+#define REVERSI_BUTTON_MENU_LONGPRESS
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/rockblox.c b/apps/plugins/rockblox.c
index 891b79be56..f1ad8399fb 100644
--- a/apps/plugins/rockblox.c
+++ b/apps/plugins/rockblox.c
@@ -326,6 +326,16 @@ PLUGIN_HEADER
#define ROCKBLOX_DROP BUTTON_OK
#define ROCKBLOX_RESTART BUTTON_CANCEL
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define ROCKBLOX_OFF (BUTTON_REC|BUTTON_PLAY)
+#define ROCKBLOX_ROTATE_CCW BUTTON_PREV
+#define ROCKBLOX_ROTATE_CW BUTTON_NEXT
+#define ROCKBLOX_DOWN BUTTON_SELECT
+#define ROCKBLOX_LEFT BUTTON_VOL_DOWN
+#define ROCKBLOX_RIGHT BUTTON_VOL_UP
+#define ROCKBLOX_DROP BUTTON_PLAY
+#define ROCKBLOX_RESTART BUTTON_REC
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/rockblox1d.c b/apps/plugins/rockblox1d.c
index d34087ab61..5006d88a2d 100644
--- a/apps/plugins/rockblox1d.c
+++ b/apps/plugins/rockblox1d.c
@@ -117,6 +117,10 @@ PLUGIN_HEADER
#define ONEDROCKBLOX_DOWN BUTTON_DOWN
#define ONEDROCKBLOX_QUIT BUTTON_REC
+#elif (CONFIG_KEYPAD == MPIO_HD200_PAD)
+#define ONEDROCKBLOX_DOWN BUTTON_SELECT
+#define ONEDROCKBLOX_QUIT (BUTTON_REC | BUTTON_PLAY)
+
#elif defined(HAVE_TOUCHSCREEN)
#define ONEDROCKBLOX_DOWN BUTTON_BOTTOMMIDDLE
diff --git a/apps/plugins/sliding_puzzle.c b/apps/plugins/sliding_puzzle.c
index f6ba83e683..7bf49c123d 100644
--- a/apps/plugins/sliding_puzzle.c
+++ b/apps/plugins/sliding_puzzle.c
@@ -221,6 +221,15 @@ CONFIG_KEYPAD == MROBE500_PAD
#define PUZZLE_SHUFFLE BUTTON_CANCEL
#define PUZZLE_PICTURE BUTTON_MENU
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define PUZZLE_QUIT (BUTTON_REC | BUTTON_PLAY)
+#define PUZZLE_LEFT BUTTON_VOL_DOWN
+#define PUZZLE_RIGHT BUTTON_VOL_UP
+#define PUZZLE_UP BUTTON_PREV
+#define PUZZLE_DOWN BUTTON_NEXT
+#define PUZZLE_SHUFFLE BUTTON_REC
+#define PUZZLE_PICTURE BUTTON_PLAY
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/snake.c b/apps/plugins/snake.c
index 1d14efea69..c3fe84e6d0 100644
--- a/apps/plugins/snake.c
+++ b/apps/plugins/snake.c
@@ -208,6 +208,14 @@ PLUGIN_HEADER
#define SNAKE_DOWN BUTTON_DOWN
#define SNAKE_PLAYPAUSE BUTTON_PLAY
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define SNAKE_QUIT (BUTTON_REC|BUTTON_PLAY)
+#define SNAKE_LEFT BUTTON_VOL_DOWN
+#define SNAKE_RIGHT BUTTON_VOL_UP
+#define SNAKE_UP BUTTON_PREV
+#define SNAKE_DOWN BUTTON_NEXT
+#define SNAKE_PLAYPAUSE BUTTON_PLAY
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/snake2.c b/apps/plugins/snake2.c
index 136952599c..d9b6542bf3 100644
--- a/apps/plugins/snake2.c
+++ b/apps/plugins/snake2.c
@@ -317,6 +317,15 @@ CONFIG_KEYPAD == MROBE500_PAD
#define SNAKE2_PLAYPAUSE BUTTON_PLAY
#define SNAKE2_PLAYPAUSE_TEXT "Play"
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define SNAKE2_LEFT BUTTON_VOL_DOWN
+#define SNAKE2_RIGHT BUTTON_VOL_UP
+#define SNAKE2_UP BUTTON_PREV
+#define SNAKE2_DOWN BUTTON_NEXT
+#define SNAKE2_QUIT (BUTTON_REC | BUTTON_PLAY)
+#define SNAKE2_PLAYPAUSE BUTTON_PLAY
+#define SNAKE2_PLAYPAUSE_TEXT "Play"
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/snow.c b/apps/plugins/snow.c
index a81e12be96..eb8870efde 100644
--- a/apps/plugins/snow.c
+++ b/apps/plugins/snow.c
@@ -82,6 +82,9 @@ PLUGIN_HEADER
#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
#define SNOW_QUIT BUTTON_REC
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define SNOW_QUIT (BUTTON_REC|BUTTON_PLAY)
+
#else
#define SNOW_QUIT BUTTON_OFF
#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD)
diff --git a/apps/plugins/sokoban.c b/apps/plugins/sokoban.c
index e7b22197e6..838b4de5b0 100644
--- a/apps/plugins/sokoban.c
+++ b/apps/plugins/sokoban.c
@@ -437,6 +437,21 @@ PLUGIN_HEADER
#define BUTTON_SAVE BUTTON_MENU
#define BUTTON_SAVE_NAME "MENU"
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define SOKOBAN_LEFT BUTTON_VOL_DOWN
+#define SOKOBAN_RIGHT BUTTON_VOL_UP
+#define SOKOBAN_UP BUTTON_PREV
+#define SOKOBAN_DOWN BUTTON_NEXT
+#define SOKOBAN_MENU BUTTON_SELECT
+#define SOKOBAN_UNDO (BUTTON_PLAY | BUTTON_PREV)
+#define SOKOBAN_REDO (BUTTON_PLAY | BUTTON_NEXT)
+#define SOKOBAN_LEVEL_DOWN (BUTTON_PLAY | BUTTON_VOL_DOWN)
+#define SOKOBAN_LEVEL_REPEAT BUTTON_REC
+#define SOKOBAN_LEVEL_UP (BUTTON_PLAY | BUTTON_VOL_UP)
+#define SOKOBAN_PAUSE BUTTON_PLAY
+#define BUTTON_SAVE (BUTTON_PLAY|BUTTON_SELECT)
+#define BUTTON_SAVE_NAME "PLAY+SELECT"
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c
index 8737275627..cf4e6475b0 100644
--- a/apps/plugins/solitaire.c
+++ b/apps/plugins/solitaire.c
@@ -457,6 +457,24 @@ CONFIG_KEYPAD == MROBE500_PAD
# define HK_CUR2STACK "PLAY"
# define HK_REM2STACK "PLAY..."
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+# define SOL_QUIT (BUTTON_REC | BUTTON_PLAY)
+# define SOL_UP BUTTON_PREV
+# define SOL_DOWN BUTTON_NEXT
+# define SOL_LEFT BUTTON_VOL_DOWN
+# define SOL_RIGHT BUTTON_VOL_UP
+# define SOL_MOVE_PRE BUTTON_SELECT
+# define SOL_MOVE (BUTTON_SELECT | BUTTON_REL)
+# define SOL_DRAW BUTTON_REC
+# define SOL_REM2CUR (BUTTON_REC | BUTTON_REPEAT)
+# define SOL_CUR2STACK BUTTON_PLAY
+# define SOL_REM2STACK (BUTTON_PLAY | BUTTON_REPEAT)
+# define HK_MOVE "SELECT"
+# define HK_DRAW "REC"
+# define HK_REM2CUR "REC.."
+# define HK_CUR2STACK "PLAY"
+# define HK_REM2STACK "PLAY...."
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/spacerocks.c b/apps/plugins/spacerocks.c
index 586beb37ab..0ade406b59 100644
--- a/apps/plugins/spacerocks.c
+++ b/apps/plugins/spacerocks.c
@@ -229,6 +229,16 @@ PLUGIN_HEADER
#define AST_RIGHT BUTTON_NEXT
#define AST_FIRE BUTTON_OK
+#elif (CONFIG_KEYPAD == MPIO_HD200_PAD)
+
+#define AST_PAUSE (BUTTON_PLAY|BUTTON_SELECT)
+#define AST_QUIT (BUTTON_REC|BUTTON_PLAY)
+#define AST_THRUST BUTTON_REC
+#define AST_HYPERSPACE BUTTON_PLAY
+#define AST_LEFT BUTTON_PREV
+#define AST_RIGHT BUTTON_NEXT
+#define AST_FIRE BUTTON_SELECT
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/star.c b/apps/plugins/star.c
index 1e8eb868a9..d11e3187db 100644
--- a/apps/plugins/star.c
+++ b/apps/plugins/star.c
@@ -393,6 +393,24 @@ PLUGIN_HEADER
#define STAR_LEVEL_DOWN_NAME "CANCEL"
#define STAR_LEVEL_REPEAT_NAME "MENU"
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+
+#define STAR_QUIT (BUTTON_REC | BUTTON_PLAY)
+#define STAR_LEFT BUTTON_VOL_DOWN
+#define STAR_RIGHT BUTTON_VOL_UP
+#define STAR_UP BUTTON_PREV
+#define STAR_DOWN BUTTON_NEXT
+#define STAR_TOGGLE_CONTROL_PRE BUTTON_SELECT
+#define STAR_TOGGLE_CONTROL (BUTTON_SELECT | BUTTON_REL)
+#define STAR_LEVEL_UP BUTTON_PLAY
+#define STAR_LEVEL_DOWN BUTTON_REC
+#define STAR_LEVEL_REPEAT (BUTTON_SELECT | BUTTON_REPEAT)
+#define STAR_TOGGLE_CONTROL_NAME "SELECT"
+#define STAR_QUIT_NAME "REC + PLAY"
+#define STAR_LEVEL_UP_NAME "PLAY"
+#define STAR_LEVEL_DOWN_NAME "REC"
+#define STAR_LEVEL_REPEAT_NAME "SELECT LONG"
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/starfield.c b/apps/plugins/starfield.c
index 4b3b0878ad..1ae0f289ff 100644
--- a/apps/plugins/starfield.c
+++ b/apps/plugins/starfield.c
@@ -158,6 +158,14 @@ PLUGIN_HEADER
#define STARFIELD_DECREASE_NB_STARS BUTTON_PREV
#define STARFIELD_TOGGLE_COLOR BUTTON_PLAY
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define STARFIELD_QUIT (BUTTON_REC|BUTTON_PLAY)
+#define STARFIELD_INCREASE_ZMOVE BUTTON_VOL_UP
+#define STARFIELD_DECREASE_ZMOVE BUTTON_VOL_DOWN
+#define STARFIELD_INCREASE_NB_STARS BUTTON_NEXT
+#define STARFIELD_DECREASE_NB_STARS BUTTON_PREV
+#define STARFIELD_TOGGLE_COLOR BUTTON_PLAY
+
#endif
#ifdef HAVE_TOUCHSCREEN
diff --git a/apps/plugins/stats.c b/apps/plugins/stats.c
index ae297841f6..eaa1055a73 100644
--- a/apps/plugins/stats.c
+++ b/apps/plugins/stats.c
@@ -105,6 +105,9 @@ static bool abort;
#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
#define STATS_STOP BUTTON_REC
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define STATS_STOP BUTTON_REC
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/stopwatch.c b/apps/plugins/stopwatch.c
index ad3b285d2f..cb85e360db 100644
--- a/apps/plugins/stopwatch.c
+++ b/apps/plugins/stopwatch.c
@@ -223,6 +223,14 @@ PLUGIN_HEADER
#define STOPWATCH_SCROLL_UP BUTTON_UP
#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define STOPWATCH_QUIT (BUTTON_REC|BUTTON_PLAY)
+#define STOPWATCH_START_STOP BUTTON_PLAY
+#define STOPWATCH_RESET_TIMER BUTTON_PREV
+#define STOPWATCH_LAP_TIMER BUTTON_NEXT
+#define STOPWATCH_SCROLL_UP BUTTON_VOL_UP
+#define STOPWATCH_SCROLL_DOWN BUTTON_VOL_DOWN
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/sudoku/sudoku.h b/apps/plugins/sudoku/sudoku.h
index 63e0718c70..8974bd8768 100644
--- a/apps/plugins/sudoku/sudoku.h
+++ b/apps/plugins/sudoku/sudoku.h
@@ -281,6 +281,15 @@
#define SUDOKU_BUTTON_MENU BUTTON_MENU
#define SUDOKU_BUTTON_POSSIBLE BUTTON_PLAY
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define SUDOKU_BUTTON_MENU BUTTON_REC
+#define SUDOKU_BUTTON_LEFT BUTTON_VOL_DOWN
+#define SUDOKU_BUTTON_RIGHT BUTTON_VOL_UP
+#define SUDOKU_BUTTON_CHANGEDIR BUTTON_SELECT
+#define SUDOKU_BUTTON_TOGGLE BUTTON_NEXT
+#define SUDOKU_BUTTON_TOGGLEBACK BUTTON_PREV
+#define SUDOKU_BUTTON_POSSIBLE BUTTON_PLAY
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/test_fps.c b/apps/plugins/test_fps.c
index f7706f64bd..52a56d5954 100644
--- a/apps/plugins/test_fps.c
+++ b/apps/plugins/test_fps.c
@@ -35,6 +35,8 @@ PLUGIN_IRAM_DECLARE
#define FPS_QUIT BUTTON_PLAY
#elif CONFIG_KEYPAD == SANSA_FUZE_PAD
#define FPS_QUIT (BUTTON_HOME|BUTTON_REPEAT)
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define FPS_QUIT (BUTTON_REC|BUTTON_PLAY)
#elif defined(BUTTON_OFF)
#define FPS_QUIT BUTTON_OFF
#else
diff --git a/apps/plugins/test_grey.c b/apps/plugins/test_grey.c
index a1189dda77..c2adaf06b5 100644
--- a/apps/plugins/test_grey.c
+++ b/apps/plugins/test_grey.c
@@ -83,6 +83,14 @@ PLUGIN_HEADER
#define GREY_UP BUTTON_UP
#define GREY_DOWN BUTTON_DOWN
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define GREY_QUIT (BUTTON_REC|BUTTON_PLAY)
+#define GREY_OK BUTTON_SELECT
+#define GREY_PREV BUTTON_PREV
+#define GREY_NEXT BUTTON_NEXT
+#define GREY_UP BUTTON_VOL_UP
+#define GREY_DOWN BUTTON_VOL_DOWN
+
#else
#error unsupported keypad
#endif
diff --git a/apps/plugins/test_greylib_bitmap_scale.c b/apps/plugins/test_greylib_bitmap_scale.c
index 7b226d4f96..892f3dc622 100644
--- a/apps/plugins/test_greylib_bitmap_scale.c
+++ b/apps/plugins/test_greylib_bitmap_scale.c
@@ -30,6 +30,8 @@
#define GBS_QUIT BUTTON_RC_REC
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
#define GBS_QUIT BUTTON_PLAY
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define GBS_QUIT (BUTTON_REC|BUTTON_PLAY)
#elif defined(BUTTON_OFF)
#define GBS_QUIT BUTTON_OFF
#else
diff --git a/apps/plugins/test_scanrate.c b/apps/plugins/test_scanrate.c
index 5f1e3cacdf..fb59193272 100644
--- a/apps/plugins/test_scanrate.c
+++ b/apps/plugins/test_scanrate.c
@@ -71,6 +71,13 @@ PLUGIN_HEADER
#define SCANRATE_INC BUTTON_UP
#define SCANRATE_DEC BUTTON_DOWN
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define SCANRATE_DONE BUTTON_PLAY
+#define SCANRATE_FASTINC BUTTON_NEXT
+#define SCANRATE_FASTDEC BUTTON_PREV
+#define SCANRATE_INC BUTTON_VOL_UP
+#define SCANRATE_DEC BUTTON_VOL_DOWN
+
#endif
/* Default refresh rates in 1/10 Hz */
diff --git a/apps/plugins/viewer.c b/apps/plugins/viewer.c
index 9ebc1d9cf6..ed84d26f28 100644
--- a/apps/plugins/viewer.c
+++ b/apps/plugins/viewer.c
@@ -486,6 +486,16 @@ PLUGIN_HEADER
#define VIEWER_AUTOSCROLL BUTTON_PLAY
#define VIEWER_BOOKMARK BUTTON_POWER
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define VIEWER_QUIT (BUTTON_REC | BUTTON_PLAY)
+#define VIEWER_PAGE_UP BUTTON_PREV
+#define VIEWER_PAGE_DOWN BUTTON_NEXT
+#define VIEWER_SCREEN_LEFT BUTTON_VOL_DOWN
+#define VIEWER_SCREEN_RIGHT BUTTON_VOL_UP
+#define VIEWER_MENU BUTTON_SELECT
+#define VIEWER_AUTOSCROLL BUTTON_PLAY
+#define VIEWER_BOOKMARK BUTTON_REC
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/vu_meter.c b/apps/plugins/vu_meter.c
index f3473c84d7..7cf5a5f00c 100644
--- a/apps/plugins/vu_meter.c
+++ b/apps/plugins/vu_meter.c
@@ -283,6 +283,17 @@ PLUGIN_HEADER
#define LABEL_MENU "MENU"
#define LABEL_VOLUME "UP/DOWN"
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define VUMETER_QUIT (BUTTON_REC|BUTTON_PLAY)
+#define VUMETER_HELP BUTTON_PLAY
+#define VUMETER_MENU BUTTON_SELECT
+#define VUMETER_UP BUTTON_VOL_UP
+#define VUMETER_DOWN BUTTON_VOL_DOWN
+#define LABEL_HELP "PLAY"
+#define LABEL_QUIT "MENU"
+#define LABEL_MENU "SELECT"
+#define LABEL_VOLUME "UP/DOWN"
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/wormlet.c b/apps/plugins/wormlet.c
index 3324d6c507..037f4005a2 100644
--- a/apps/plugins/wormlet.c
+++ b/apps/plugins/wormlet.c
@@ -268,6 +268,16 @@ CONFIG_KEYPAD == MROBE500_PAD
#define BTN_QUIT BUTTON_REC
#define BTN_STOPRESET BUTTON_CANCEL
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+
+#define BTN_DIR_UP BUTTON_REC
+#define BTN_DIR_DOWN BUTTON_PLAY
+#define BTN_DIR_LEFT BUTTON_PREV
+#define BTN_DIR_RIGHT BUTTON_NEXT
+#define BTN_STARTPAUSE BUTTON_SELECT
+#define BTN_QUIT (BUTTON_REC|BUTTON_PLAY)
+#define BTN_STOPRESET (BUTTON_SELECT|BUTTON_REPEAT)
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/xobox.c b/apps/plugins/xobox.c
index 6edc629144..4dd673c370 100644
--- a/apps/plugins/xobox.c
+++ b/apps/plugins/xobox.c
@@ -232,6 +232,15 @@ CONFIG_KEYPAD == MROBE500_PAD
#define DOWN BUTTON_DOWN
#define PAUSE BUTTON_PLAY
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+
+#define QUIT (BUTTON_REC|BUTTON_PLAY)
+#define LEFT BUTTON_VOL_DOWN
+#define RIGHT BUTTON_VOL_UP
+#define UP BUTTON_PREV
+#define DOWN BUTTON_NEXT
+#define PAUSE BUTTON_PLAY
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/zxbox/keymaps.h b/apps/plugins/zxbox/keymaps.h
index 3ca5451fdb..ee2a8d5f4a 100644
--- a/apps/plugins/zxbox/keymaps.h
+++ b/apps/plugins/zxbox/keymaps.h
@@ -189,6 +189,15 @@
#define ZX_SELECT BUTTON_OK
#define ZX_MENU BUTTON_MENU
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+
+#define ZX_MENU (BUTTON_REC|BUTTON_PLAY)
+#define ZX_UP BUTTON_PREV
+#define ZX_DOWN BUTTON_NEXT
+#define ZX_SELECT BUTTON_SELECT
+#define ZX_LEFT BUTTON_VOL_DOWN
+#define ZX_RIGHT BUTTON_VOL_UP
+
#else
#error Keymap not defined!
diff --git a/apps/plugins/zxbox/zxbox_keyb.c b/apps/plugins/zxbox/zxbox_keyb.c
index b48c5ec4ac..bc7e3aca2c 100644
--- a/apps/plugins/zxbox/zxbox_keyb.c
+++ b/apps/plugins/zxbox/zxbox_keyb.c
@@ -184,6 +184,15 @@
#define KBD_UP BUTTON_UP
#define KBD_DOWN BUTTON_DOWN
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+
+#define KBD_SELECT BUTTON_SELECT
+#define KBD_ABORT BUTTON_REC
+#define KBD_LEFT BUTTON_VOL_DOWN
+#define KBD_RIGHT BUTTON_VOL_UP
+#define KBD_UP BUTTON_PREV
+#define KBD_DOWN BUTTON_NEXT
+
#endif
#ifdef HAVE_TOUCHSCREEN