summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSolomon Peachy <pizza@shaftnet.org>2025-01-06 12:37:07 -0500
committerSolomon Peachy <pizza@shaftnet.org>2025-01-07 14:22:53 -0500
commit8b01f939d8bf9d77fb3c4b0ca984e89bb65fe864 (patch)
tree5272e36314697d9361305aba2534bc480763c58c
parent0b5f1b68e6c52c6a86d199d8608e40e03d7dbbff (diff)
downloadrockbox-8b01f939d8.tar.gz
rockbox-8b01f939d8.zip
hitiet ma8/ma9: add in keymaps for all plugins
Largely guesswork. Change-Id: I8ab8d36de4bbdcf25dcf7d3442266bfb0a370b6f
-rw-r--r--apps/plugins/battery_bench.c8
-rw-r--r--apps/plugins/blackjack.c17
-rw-r--r--apps/plugins/brickmania.c12
-rw-r--r--apps/plugins/calculator.c10
-rw-r--r--apps/plugins/calendar.c10
-rw-r--r--apps/plugins/chessbox/chessbox_pgn.h15
-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/clix.c8
-rw-r--r--apps/plugins/cube.c10
-rw-r--r--apps/plugins/doom/i_video.c12
-rw-r--r--apps/plugins/flipit.c14
-rw-r--r--apps/plugins/fractals/fractal.h12
-rw-r--r--apps/plugins/goban/goban.h8
-rw-r--r--apps/plugins/imageviewer/imageviewer_button.h16
-rw-r--r--apps/plugins/invadrox.c7
-rw-r--r--apps/plugins/jewels.c10
-rw-r--r--apps/plugins/lib/keymaps.h8
-rw-r--r--apps/plugins/lib/pluginlib_actions.c15
-rw-r--r--apps/plugins/midi/midiplay.c8
-rw-r--r--apps/plugins/minesweeper.c13
-rw-r--r--apps/plugins/mp3_encoder.c8
-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.h10
-rw-r--r--apps/plugins/pegbox.c17
-rw-r--r--apps/plugins/pong.c8
-rw-r--r--apps/plugins/reversi/reversi-gui.h9
-rw-r--r--apps/plugins/rockblox.c12
-rw-r--r--apps/plugins/rockboy/rockboy.c14
-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.c15
-rw-r--r--apps/plugins/solitaire.c20
-rw-r--r--apps/plugins/spacerocks.c9
-rw-r--r--apps/plugins/star.c17
-rw-r--r--apps/plugins/stopwatch.c10
-rw-r--r--apps/plugins/sudoku/sudoku.h9
-rw-r--r--apps/plugins/text_viewer/tv_button.h12
-rw-r--r--apps/plugins/vu_meter.c11
-rw-r--r--apps/plugins/wormlet.c9
-rw-r--r--apps/plugins/xobox.c9
-rw-r--r--apps/plugins/zxbox/keymaps.h8
-rw-r--r--apps/plugins/zxbox/zxbox_keyb.c9
-rwxr-xr-xtools/configure8
49 files changed, 511 insertions, 15 deletions
diff --git a/apps/plugins/battery_bench.c b/apps/plugins/battery_bench.c
index f258492363..6fcc9d6c0a 100644
--- a/apps/plugins/battery_bench.c
+++ b/apps/plugins/battery_bench.c
@@ -237,6 +237,12 @@
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
/* use touchscreen */
+#elif CONFIG_KEYPAD == MA_PAD
+#define BATTERY_ON BUTTON_PLAY
+#define BATTERY_OFF BUTTON_BACK
+#define BATTERY_ON_TXT "Play"
+#define BATTERY_OFF_TXT "Back"
+
#else
#error "No keymap defined!"
#endif
@@ -314,7 +320,7 @@ static int exit_tsr(bool reenter)
/* remove the thread's queue from the broadcast list */
rb->queue_delete(&thread_q);
exit_status = (reenter ? PLUGIN_TSR_TERMINATE : PLUGIN_TSR_SUSPEND);
-
+
}
else exit_status = PLUGIN_TSR_CONTINUE;
diff --git a/apps/plugins/blackjack.c b/apps/plugins/blackjack.c
index 3065802716..761cc6a882 100644
--- a/apps/plugins/blackjack.c
+++ b/apps/plugins/blackjack.c
@@ -591,6 +591,23 @@ enum {
#define BJACK_RIGHT BUTTON_RIGHT
#define BJACK_LEFT BUTTON_LEFT
+#elif CONFIG_KEYPAD == MA_PAD
+#define BJACK_SELECT_NAME "PLAY"
+#define BJACK_STAY_NAME "BACK"
+#define BJACK_QUIT_NAME "BACK+MENU"
+#define BJACK_DOUBLE_NAME "MENU"
+#define BJACK_SELECT BUTTON_PLAY
+#define BJACK_QUIT (BUTTON_BACK|BUTTON_MENU)
+#define BJACK_MAX (BUTTON_UP|BUTTON_MENU)
+#define BJACK_MIN (BUTTON_DOWN|BUTTON_MENU)
+#define BJACK_STAY BUTTON_BACK
+#define BJACK_DOUBLEDOWN BUTTON_MENU
+#define BJACK_UP BUTTON_UP
+#define BJACK_DOWN BUTTON_DOWN
+#define BJACK_RIGHT BUTTON_RIGHT
+#define BJACK_LEFT BUTTON_LEFT
+
+
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
#define BJACK_QUIT BUTTON_POWER
#define BJACK_QUIT_NAME "QUIT"
diff --git a/apps/plugins/brickmania.c b/apps/plugins/brickmania.c
index a638fcc5b9..d3a262ed22 100644
--- a/apps/plugins/brickmania.c
+++ b/apps/plugins/brickmania.c
@@ -365,6 +365,14 @@ CONFIG_KEYPAD == SANSA_M200_PAD
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
#define QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == MA_PAD
+#define QUIT BUTTON_BACK
+#define LEFT BUTTON_LEFT
+#define RIGHT BUTTON_RIGHT
+#define SELECT BUTTON_PLAY
+#define UP BUTTON_UP
+#define DOWN BUTTON_DOWN
+
#else
#error No keymap defined!
#endif
@@ -1685,7 +1693,7 @@ static void error_newround(const char * message)
rb->splash(HZ*3,"Some error happened, so the current balls will be killed.");
rb->splashf(HZ*3,"The reason is: %s",message);
rb->splash(HZ*3,"Don't worry, it's my fault, you won't lose any life for this. :)");
- newround();
+ newround();
}
static int brickmania_game_loop(void)
@@ -2538,7 +2546,7 @@ static int brickmania_game_loop(void)
resume = true;
return 0;
break;
-
+
/* MI: added suicide button in case the ball gets stuck or
whatever */
case SUICIDE:
diff --git a/apps/plugins/calculator.c b/apps/plugins/calculator.c
index 743192dab6..e27bb42da7 100644
--- a/apps/plugins/calculator.c
+++ b/apps/plugins/calculator.c
@@ -536,6 +536,16 @@ F3: equal to "="
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
#define CALCULATOR_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == MA_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_BACK|BUTTON_REPEAT)
+#define CALCULATOR_INPUT BUTTON_PLAY
+#define CALCULATOR_CALC BUTTON_MENU
+#define CALCULATOR_CLEAR BUTTON_BACK
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/calendar.c b/apps/plugins/calendar.c
index 6d1091159f..1a72d3d990 100644
--- a/apps/plugins/calendar.c
+++ b/apps/plugins/calendar.c
@@ -422,6 +422,16 @@
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
/* use touchscreen */
+#elif CONFIG_KEYPAD == MA_PAD
+#define CALENDAR_QUIT (BUTTON_BACK|BUTTON_MENU)
+#define CALENDAR_SELECT BUTTON_PLAY
+#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_MENU
+#define CALENDAR_PREV_MONTH BUTTON_BACK
+
#else
#error "No keypad setting."
#endif
diff --git a/apps/plugins/chessbox/chessbox_pgn.h b/apps/plugins/chessbox/chessbox_pgn.h
index 7d0cb795cf..e25394b4fb 100644
--- a/apps/plugins/chessbox/chessbox_pgn.h
+++ b/apps/plugins/chessbox/chessbox_pgn.h
@@ -584,6 +584,21 @@
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
/* use touchscreen */
+#elif CONFIG_KEYPAD == MA_PAD
+#define CB_SELECT BUTTON_BACK
+#define CB_UP BUTTON_UP
+#define CB_DOWN BUTTON_DOWN
+#define CB_LEFT BUTTON_LEFT
+#define CB_RIGHT BUTTON_RIGHT
+#define CB_PLAY BUTTON_PLAY
+#define CB_MENU BUTTON_MENU
+#define CB_LEVEL (BUTTON_BACK|BUTTON_REPEAT)
+#define CB_SCROLL_UP (BUTTON_UP|BUTTON_REPEAT)
+#define CB_SCROLL_DOWN (BUTTON_DOWN|BUTTON_REPEAT)
+#define CB_SCROLL_LEFT (BUTTON_LEFT|BUTTON_REPEAT)
+#define CB_SCROLL_RIGHT (BUTTON_RIGHT|BUTTON_REPEAT)
+
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/chessclock.c b/apps/plugins/chessclock.c
index 3d03cb9f6a..cf6796b572 100644
--- a/apps/plugins/chessclock.c
+++ b/apps/plugins/chessclock.c
@@ -398,6 +398,16 @@
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
#define CHC_QUIT BUTTON_POWER
+#elif (CONFIG_KEYPAD == MA_PAD)
+#define CHC_QUIT (BUTTON_BACK|BUTTON_REPEAT)
+#define CHC_STARTSTOP BUTTON_PLAY
+#define CHC_RESET BUTTON_BACK
+#define CHC_MENU BUTTON_MENU
+#define CHC_SETTINGS_INC BUTTON_UP
+#define CHC_SETTINGS_DEC BUTTON_DOWN
+#define CHC_SETTINGS_OK BUTTON_PLAY
+#define CHC_SETTINGS_CANCEL BUTTON_BACK
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/chip8.c b/apps/plugins/chip8.c
index ac7f998690..47d76aab55 100644
--- a/apps/plugins/chip8.c
+++ b/apps/plugins/chip8.c
@@ -1291,6 +1291,15 @@ CONFIG_KEYPAD == MROBE500_PAD
#define CHIP8_KEY6 BUTTON_RIGHT
#define CHIP8_KEY8 BUTTON_BACK
+#elif (CONFIG_KEYPAD == MA_PAD)
+#define CHIP8_OFF BUTTON_BACK
+#define CHIP8_KEY2 BUTTON_UP
+#define CHIP8_KEY4 BUTTON_DOWN
+#define CHIP8_KEY5 BUTTON_PLAY
+#define CHIP8_KEY6 BUTTON_RIGHT
+#define CHIP8_KEY8 BUTTON_LEFT
+
+
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
/* use touchscreen */
diff --git a/apps/plugins/chopper.c b/apps/plugins/chopper.c
index 78cc292147..d36d955552 100644
--- a/apps/plugins/chopper.c
+++ b/apps/plugins/chopper.c
@@ -202,6 +202,11 @@ CONFIG_KEYPAD == MROBE500_PAD
#define ACTION BUTTON_PLAY
#define ACTIONTEXT "PLAY"
+#elif CONFIG_KEYPAD == MA_PAD
+#define QUIT BUTTON_BACK
+#define ACTION BUTTON_PLAY
+#define ACTIONTEXT "PLAY"
+
#elif !defined(HAVE_TOUCHSCREEN)
#error No keymap defined!
#endif
diff --git a/apps/plugins/clix.c b/apps/plugins/clix.c
index 06813f3a4d..325a39685e 100644
--- a/apps/plugins/clix.c
+++ b/apps/plugins/clix.c
@@ -317,6 +317,14 @@
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
#define CLIX_BUTTON_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == MA_PAD
+#define CLIX_BUTTON_QUIT BUTTON_BACK
+#define CLIX_BUTTON_UP BUTTON_UP
+#define CLIX_BUTTON_DOWN BUTTON_DOWN
+#define CLIX_BUTTON_LEFT BUTTON_LEFT
+#define CLIX_BUTTON_RIGHT BUTTON_RIGHT
+#define CLIX_BUTTON_CLICK BUTTON_PLAY
+
#else
#error "no keymap"
#endif
diff --git a/apps/plugins/cube.c b/apps/plugins/cube.c
index 43318f5aee..6e0f3204c3 100644
--- a/apps/plugins/cube.c
+++ b/apps/plugins/cube.c
@@ -405,6 +405,16 @@
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
/* use touchscreen */
+#elif CONFIG_KEYPAD == MA_PAD
+#define CUBE_QUIT BUTTON_BACK
+#define CUBE_NEXT BUTTON_RIGHT
+#define CUBE_PREV BUTTON_LEFT
+#define CUBE_INC BUTTON_UP
+#define CUBE_DEC BUTTON_DOWN
+#define CUBE_MODE BUTTON_MENU
+#define CUBE_PAUSE BUTTON_PLAY
+#define CUBE_HIGHSPEED (BUTTON_PLAY|BUTTON_REPEAT)
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/doom/i_video.c b/apps/plugins/doom/i_video.c
index 79f3212467..71220580d5 100644
--- a/apps/plugins/doom/i_video.c
+++ b/apps/plugins/doom/i_video.c
@@ -617,6 +617,18 @@ void I_ShutdownGraphics(void)
#define DOOMBUTTON_WEAPON BUTTON_VOL_UP
#define DOOMBUTTON_MAP BUTTON_VOL_DOWN
+#elif CONFIG_KEYPAD == MA_PAD
+#define DOOMBUTTON_UP BUTTON_UP
+#define DOOMBUTTON_DOWN BUTTON_DOWN
+#define DOOMBUTTON_LEFT BUTTON_LEFT
+#define DOOMBUTTON_RIGHT BUTTON_RIGHT
+#define DOOMBUTTON_SHOOT BUTTON_PLAY
+#define DOOMBUTTON_OPEN (BUTTON_PLAY|BUTTON_REPEAT)
+#define DOOMBUTTON_ESC (BUTTON_BACK|BUTTON_REPEAT)
+#define DOOMBUTTON_ENTER BUTTON_MENU
+#define DOOMBUTTON_WEAPON BUTTON_BACK
+#define DOOMBUTTON_MAP (BUTTON_BACK|BUTTON_REPEAT)
+
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
#define DOOMBUTTON_ESC BUTTON_POWER
#define DOOMBUTTON_MAP BUTTON_PREV
diff --git a/apps/plugins/flipit.c b/apps/plugins/flipit.c
index 278c77e188..89e80f842f 100644
--- a/apps/plugins/flipit.c
+++ b/apps/plugins/flipit.c
@@ -20,8 +20,6 @@
****************************************************************************/
#include "plugin.h"
-
-
/* variable button definitions */
#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
(CONFIG_KEYPAD == IRIVER_H300_PAD)
@@ -499,6 +497,18 @@
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
/* use touchscreen */
+#elif CONFIG_KEYPAD == MA_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_BACK|BUTTON_REPEAT)
+#define FLIPIT_SHUFFLE BUTTON_MENU
+#define FLIPIT_SOLVE (BUTTON_MENU|BUTTON_REPEAT)
+#define FLIPIT_STEP_BY_STEP (BUTTON_PLAY|BUTTON_REPEAT)
+#define FLIPIT_TOGGLE BUTTON_PLAY
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/fractals/fractal.h b/apps/plugins/fractals/fractal.h
index 8432546c1e..d5c928c92b 100644
--- a/apps/plugins/fractals/fractal.h
+++ b/apps/plugins/fractals/fractal.h
@@ -507,6 +507,18 @@
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
#define FRACTAL_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == MA_PAD
+#define FRACTAL_QUIT BUTTON_BACK
+#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_MENU | BUTTON_UP)
+#define FRACTAL_ZOOM_OUT (BUTTON_MENU | BUTTON_DOWN)
+#define FRACTAL_PRECISION_INC (BUTTON_BACK | BUTTON_UP)
+#define FRACTAL_PRECISION_DEC (BUTTON_BACK | BUTTON_DOWN)
+#define FRACTAL_RESET BUTTON_PLAY
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/goban/goban.h b/apps/plugins/goban/goban.h
index 9f1a200cc2..67a07b4972 100644
--- a/apps/plugins/goban/goban.h
+++ b/apps/plugins/goban/goban.h
@@ -504,6 +504,14 @@
#define GBN_BUTTON_CONTEXT (BUTTON_SELECT|BUTTON_REPEAT)
#define GBN_BUTTON_NEXT_VAR BUTTON_BACK
+#elif CONFIG_KEYPAD == MA_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_MENU
+#define GBN_BUTTON_PLAY BUTTON_PLAY
+
#else
#error Unsupported keypad
#endif
diff --git a/apps/plugins/imageviewer/imageviewer_button.h b/apps/plugins/imageviewer/imageviewer_button.h
index d324f93292..ce359f3b25 100644
--- a/apps/plugins/imageviewer/imageviewer_button.h
+++ b/apps/plugins/imageviewer/imageviewer_button.h
@@ -543,6 +543,22 @@
#define IMGVIEW_MENU BUTTON_POWER
#define IMGVIEW_SLIDE_SHOW BUTTON_PLAY
+#elif CONFIG_KEYPAD == MA_PAD
+#define IMGVIEW_ZOOM_IN (BUTTON_MENU | BUTTON_UP)
+#define IMGVIEW_ZOOM_OUT (BUTTON_MENU | 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_BACK
+#define IMGVIEW_NEXT_REPEAT (BUTTON_BACK|BUTTON_REPEAT)
+#define IMGVIEW_PREVIOUS BUTTON_MENU
+#define IMGVIEW_PREVIOUS_REPEAT (BUTTON_MENU|BUTTON_REPEAT)
+#define IMGVIEW_MENU (BUTTON_PLAY|BUTTON_REPEAT)
+#define IMGVIEW_SLIDE_SHOW BUTTON_PLAY
+
+
+
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
/* use touchscreen */
diff --git a/apps/plugins/invadrox.c b/apps/plugins/invadrox.c
index d130ab6108..b4aa67b9c8 100644
--- a/apps/plugins/invadrox.c
+++ b/apps/plugins/invadrox.c
@@ -291,6 +291,13 @@ CONFIG_KEYPAD == MROBE500_PAD
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
/* use touchscreen */
+#elif CONFIG_KEYPAD == MA_PAD
+
+#define QUIT BUTTON_BACK
+#define LEFT BUTTON_LEFT
+#define RIGHT BUTTON_RIGHT
+#define FIRE BUTTON_PLAY
+
#else
#error INVADROX: Unsupported keypad
#endif
diff --git a/apps/plugins/jewels.c b/apps/plugins/jewels.c
index 3a65e8ba64..ab8e9ad588 100644
--- a/apps/plugins/jewels.c
+++ b/apps/plugins/jewels.c
@@ -380,6 +380,16 @@ CONFIG_KEYPAD == MROBE500_PAD
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
/* use touchscreen */
+#elif CONFIG_KEYPAD == MA_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_PLAY
+#define JEWELS_CANCEL BUTTON_BACK
+#define HK_SELECT "PLAY"
+#define HK_CANCEL "BACK"
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/lib/keymaps.h b/apps/plugins/lib/keymaps.h
index 2cbca9e5ad..86ced8c26c 100644
--- a/apps/plugins/lib/keymaps.h
+++ b/apps/plugins/lib/keymaps.h
@@ -264,6 +264,14 @@
#define BTN_UP_LEFT BUTTON_TOPLEFT
#define BTN_UP_RIGHT BUTTON_TOPRIGHT
+#elif CONFIG_KEYPAD == MA_PAD
+#define BTN_UP BUTTON_UP
+#define BTN_DOWN BUTTON_DOWN
+#define BTN_LEFT BUTTON_LEFT
+#define BTN_RIGHT BUTTON_RIGHT
+#define BTN_FIRE BUTTON_PLAY
+#define BTN_PAUSE BUTTON_MENU
+
#else
#error Unsupported keypad
#endif
diff --git a/apps/plugins/lib/pluginlib_actions.c b/apps/plugins/lib/pluginlib_actions.c
index 4115177eaa..7fe43c35d1 100644
--- a/apps/plugins/lib/pluginlib_actions.c
+++ b/apps/plugins/lib/pluginlib_actions.c
@@ -268,6 +268,15 @@ const struct button_mapping pla_main_ctx[] =
{ PLA_DOWN_REPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
{ PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
+#elif (CONFIG_KEYPAD == MA_PAD)
+ { PLA_UP, BUTTON_UP, BUTTON_NONE },
+ { PLA_DOWN, BUTTON_DOWN, BUTTON_NONE },
+ { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE },
+ { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
+ { PLA_UP_REPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
+ { PLA_DOWN_REPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
+ { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
+ { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
#else
# ifndef HAVE_TOUCHSCREEN
# error pluginlib_actions: No directions defined
@@ -501,6 +510,12 @@ const struct button_mapping pla_main_ctx[] =
{PLA_SELECT_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE},
#elif (CONFIG_KEYPAD == SHANLING_Q1_PAD)
{PLA_EXIT, BUTTON_POWER, BUTTON_NONE},
+#elif (CONFIG_KEYPAD == MA_PAD)
+ {PLA_CANCEL, BUTTON_BACK|BUTTON_REL, BUTTON_BACK},
+ {PLA_EXIT, BUTTON_BACK|BUTTON_REPEAT, BUTTON_NONE},
+ {PLA_SELECT, BUTTON_PLAY, BUTTON_NONE},
+ {PLA_SELECT_REL, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY},
+ {PLA_SELECT_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE},
#else
# ifndef HAVE_TOUCHSCREEN
# error pluginlib_actions: No actions defined
diff --git a/apps/plugins/midi/midiplay.c b/apps/plugins/midi/midiplay.c
index 6345d3c741..93d1ccdca1 100644
--- a/apps/plugins/midi/midiplay.c
+++ b/apps/plugins/midi/midiplay.c
@@ -328,6 +328,14 @@
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
/* use touchscreen */
+#elif CONFIG_KEYPAD == MA_PAD
+#define MIDI_QUIT BUTTON_BACK
+#define MIDI_FFWD BUTTON_RIGHT
+#define MIDI_REWIND BUTTON_LEFT
+#define MIDI_VOL_UP BUTTON_UP
+#define MIDI_VOL_DOWN BUTTON_DOWN
+#define MIDI_PLAYPAUSE BUTTON_PLAY
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/minesweeper.c b/apps/plugins/minesweeper.c
index a3c718d79f..78e37161ea 100644
--- a/apps/plugins/minesweeper.c
+++ b/apps/plugins/minesweeper.c
@@ -23,8 +23,6 @@
#include "lib/playback_control.h"
-
-
/* what the minesweeper() function can return */
enum minesweeper_status {
MINESWEEPER_WIN,
@@ -443,6 +441,17 @@ CONFIG_KEYPAD == MROBE500_PAD
# define MINESWP_DISCOVER (BUTTON_SELECT|BUTTON_REPEAT)
# define MINESWP_INFO BUTTON_MENU
+#elif CONFIG_KEYPAD == MA_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_BACK
+# define MINESWP_TOGGLE_PRE BUTTON_PLAY
+# define MINESWP_TOGGLE (BUTTON_PLAY|BUTTON_REL)
+# define MINESWP_DISCOVER (BUTTON_MENU|BUTTON_REPEAT)
+# define MINESWP_INFO BUTTON_MENU
+
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
/* use touchscreen */
diff --git a/apps/plugins/mp3_encoder.c b/apps/plugins/mp3_encoder.c
index 00e18dc835..a9f5fa2c0b 100644
--- a/apps/plugins/mp3_encoder.c
+++ b/apps/plugins/mp3_encoder.c
@@ -2586,6 +2586,12 @@ CONFIG_KEYPAD == MROBE500_PAD
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
/* use touchscreen */
+#elif CONFIG_KEYPAD == MA_PAD
+#define MP3ENC_PREV BUTTON_LEFT
+#define MP3ENC_NEXT BUTTON_RIGHT
+#define MP3ENC_DONE BUTTON_BACK
+#define MP3ENC_SELECT BUTTON_PLAY
+
#else
#error No keymap defined!
#endif
@@ -2691,7 +2697,7 @@ enum plugin_status plugin_start(const void* parameter)
rb->lcd_clear_display();
#if LCD_WIDTH <= 128
- rb->lcd_putsxy(0, 30, "Conversion:");
+ rb->lcd_putsxy(0, 30, "Conversion:");
rb->lcd_putsxyf(0, 40,"%ld.%02lds ", tim/100, tim%100);
tim = frames * cfg.smpl_per_frm * 100 / (cfg.samplerate != 0 ? cfg.samplerate : 1); /* unit=.01s */
rb->lcd_putsxy(0, 10, "WAV-Length:");
diff --git a/apps/plugins/mpegplayer/mpeg_settings.c b/apps/plugins/mpegplayer/mpeg_settings.c
index f9686ad689..e0a71c8f33 100644
--- a/apps/plugins/mpegplayer/mpeg_settings.c
+++ b/apps/plugins/mpegplayer/mpeg_settings.c
@@ -354,6 +354,14 @@ struct mpeg_settings settings;
#define MPEG_START_TIME_DOWN BUTTON_DOWN
#define MPEG_START_TIME_EXIT BUTTON_POWER
+#elif CONFIG_KEYPAD == MA_PAD
+#define MPEG_START_TIME_SELECT BUTTON_PLAY
+#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_BACK
+
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
#define MPEG_START_TIME_EXIT BUTTON_POWER
diff --git a/apps/plugins/mpegplayer/mpegplayer.c b/apps/plugins/mpegplayer/mpegplayer.c
index dadb8f6b8a..db04d1865b 100644
--- a/apps/plugins/mpegplayer/mpegplayer.c
+++ b/apps/plugins/mpegplayer/mpegplayer.c
@@ -486,6 +486,15 @@ CONFIG_KEYPAD == SANSA_M200_PAD
#define MPEG_RW BUTTON_LEFT
#define MPEG_FF BUTTON_RIGHT
+#elif CONFIG_KEYPAD == MA_PAD
+#define MPEG_MENU BUTTON_MENU
+#define MPEG_STOP BUTTON_BACK
+#define MPEG_PAUSE BUTTON_PLAY
+#define MPEG_VOLDOWN BUTTON_DOWN
+#define MPEG_VOLUP BUTTON_UP
+#define MPEG_RW BUTTON_LEFT
+#define MPEG_FF BUTTON_RIGHT
+
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
/* use touchscreen */
diff --git a/apps/plugins/oscilloscope.c b/apps/plugins/oscilloscope.c
index 00d03fb03e..3ff3e96059 100644
--- a/apps/plugins/oscilloscope.c
+++ b/apps/plugins/oscilloscope.c
@@ -550,6 +550,17 @@
#define OSCILLOSCOPE_VOL_UP BUTTON_VOL_UP
#define OSCILLOSCOPE_VOL_DOWN BUTTON_VOL_DOWN
+#elif CONFIG_KEYPAD == MA_PAD
+#define OSCILLOSCOPE_QUIT (BUTTON_BACK|BUTTON_REPEAT)
+#define OSCILLOSCOPE_DRAWMODE BUTTON_MENU
+#define OSCILLOSCOPE_ADVMODE (BUTTON_MENU|BUTTON_REPEAT)
+#define OSCILLOSCOPE_ORIENTATION BUTTON_BACK
+#define OSCILLOSCOPE_PAUSE BUTTON_PLAY
+#define OSCILLOSCOPE_SPEED_UP BUTTON_RIGHT
+#define OSCILLOSCOPE_SPEED_DOWN BUTTON_LEFT
+#define OSCILLOSCOPE_VOL_UP BUTTON_UP
+#define OSCILLOSCOPE_VOL_DOWN BUTTON_DOWN
+
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
/* use touchscreen */
diff --git a/apps/plugins/pacbox/pacbox.h b/apps/plugins/pacbox/pacbox.h
index aa8c41fa95..f01dcc9cea 100644
--- a/apps/plugins/pacbox/pacbox.h
+++ b/apps/plugins/pacbox/pacbox.h
@@ -408,6 +408,16 @@
#define PACMAN_2UP BUTTON_BOTTOMRIGHT
#define PACMAN_COIN BUTTON_CENTER
+#elif CONFIG_KEYPAD == MA_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_BACK
+#define PACMAN_COIN BUTTON_PLAY
+#define PACMAN_MENU BUTTON_MENU
+
#else
#error Keymap not defined!
diff --git a/apps/plugins/pegbox.c b/apps/plugins/pegbox.c
index 8b88aad052..f5d0abbf15 100644
--- a/apps/plugins/pegbox.c
+++ b/apps/plugins/pegbox.c
@@ -711,6 +711,23 @@ CONFIG_KEYPAD == MROBE500_PAD
#define LVL_UP_TEXT "VOL+"
#define LVL_DOWN_TEXT "VOL-"
+#elif CONFIG_KEYPAD == MA_PAD
+#define PEGBOX_SELECT BUTTON_PLAY
+#define PEGBOX_QUIT BUTTON_BACK
+#define PEGBOX_RESTART BUTTON_MENU
+#define PEGBOX_LVL_UP (BUTTON_UP|BUTTON_MENU)
+#define PEGBOX_LVL_DOWN (BUTTON_DOWN|BUTTON_MENU)
+#define PEGBOX_UP BUTTON_UP
+#define PEGBOX_DOWN BUTTON_DOWN
+#define PEGBOX_RIGHT BUTTON_RIGHT
+#define PEGBOX_LEFT BUTTON_LEFT
+
+#define SELECT_TEXT "PLAY"
+#define QUIT_TEXT "POWER HOLD"
+#define RESTART_TEXT "BACK"
+#define LVL_UP_TEXT "UP+MENU"
+#define LVL_DOWN_TEXT "DOWN+MENU"
+
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
/* use touchscreen */
diff --git a/apps/plugins/pong.c b/apps/plugins/pong.c
index 17e6e6ed73..7b935aa140 100644
--- a/apps/plugins/pong.c
+++ b/apps/plugins/pong.c
@@ -328,6 +328,14 @@ CONFIG_KEYPAD == MROBE500_PAD
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
/* use touchscreen */
+#elif CONFIG_KEYPAD == MA_PAD
+#define PONG_QUIT BUTTON_BACK
+#define PONG_PAUSE BUTTON_PLAY
+#define PONG_LEFT_UP BUTTON_MENU
+#define PONG_LEFT_DOWN BUTTON_LEFT
+#define PONG_RIGHT_UP BUTTON_BACK
+#define PONG_RIGHT_DOWN BUTTON_RIGHT
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/reversi/reversi-gui.h b/apps/plugins/reversi/reversi-gui.h
index 926a71e1a2..25da80a145 100644
--- a/apps/plugins/reversi/reversi-gui.h
+++ b/apps/plugins/reversi/reversi-gui.h
@@ -364,6 +364,15 @@
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
/* use touchscreen */
+#elif (CONFIG_KEYPAD == MA_PAD)
+#define REVERSI_BUTTON_QUIT BUTTON_BACK
+#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_PLAY
+#define REVERSI_BUTTON_MENU BUTTON_MENU
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/rockblox.c b/apps/plugins/rockblox.c
index a0105a1ffb..99f58d9cf3 100644
--- a/apps/plugins/rockblox.c
+++ b/apps/plugins/rockblox.c
@@ -469,6 +469,16 @@
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
/* use touchscreen */
+#elif CONFIG_KEYPAD == MA_PAD
+#define ROCKBLOX_OFF (BUTTON_BACK|BUTTON_REPEAT)
+#define ROCKBLOX_ROTATE_CCW BUTTON_UP
+#define ROCKBLOX_ROTATE_CW BUTTON_DOWN
+#define ROCKBLOX_DOWN BUTTON_PLAY
+#define ROCKBLOX_LEFT BUTTON_LEFT
+#define ROCKBLOX_RIGHT BUTTON_RIGHT
+#define ROCKBLOX_DROP BUTTON_MENU
+#define ROCKBLOX_RESTART BUTTON_BACK
+
#else
#error No keymap defined!
#endif
@@ -1505,7 +1515,7 @@ static int rockblox_loop (void)
rb->sleep(HZ/10);
/* Turn off backlight timeout */
backlight_ignore_timeout();
-
+
/* get rid of the splash text */
rb->lcd_bitmap (rockblox_background, 0, 0, LCD_WIDTH, LCD_HEIGHT);
show_details ();
diff --git a/apps/plugins/rockboy/rockboy.c b/apps/plugins/rockboy/rockboy.c
index 2d0c349507..8f28cfbf2f 100644
--- a/apps/plugins/rockboy/rockboy.c
+++ b/apps/plugins/rockboy/rockboy.c
@@ -471,6 +471,20 @@ static void setoptions (void)
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
/* use touchscreen */
+#elif CONFIG_KEYPAD == MA_PAD
+ options.UP = BUTTON_UP;
+ options.DOWN = BUTTON_DOWN;
+ options.LEFT = BUTTON_LEFT;
+ options.RIGHT = BUTTON_RIGHT;
+
+ options.A = BUTTON_PLAY;
+ options.B = BUTTON_BACK;
+
+ options.START = (BUTTON_PLAY|BUTTON_BACK);
+ options.SELECT = (BUTTON_PLAY|BUTTON_MENU);
+ options.MENU = BUTTON_MENU;
+
+
#else
#error No Keymap Defined!
#endif
diff --git a/apps/plugins/rockpaint.c b/apps/plugins/rockpaint.c
index 52281edfb0..3d5ad28fa2 100644
--- a/apps/plugins/rockpaint.c
+++ b/apps/plugins/rockpaint.c
@@ -418,6 +418,17 @@
#define ROCKPAINT_LEFT BUTTON_SCROLL_BACK
#define ROCKPAINT_RIGHT BUTTON_SCROLL_FWD
+#elif CONFIG_KEYPAD == MA_PAD
+#define ROCKPAINT_QUIT BUTTON_BACK
+#define ROCKPAINT_DRAW BUTTON_PLAY
+#define ROCKPAINT_MENU BUTTON_MENU
+#define ROCKPAINT_TOOLBAR (BUTTON_MENU|BUTTON_UP)
+#define ROCKPAINT_TOOLBAR2 (BUTTON_MENU|BUTTON_DOWN)
+#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 33d2bb68f6..bf532f7b51 100644
--- a/apps/plugins/sliding_puzzle.c
+++ b/apps/plugins/sliding_puzzle.c
@@ -360,6 +360,15 @@ CONFIG_KEYPAD == MROBE500_PAD
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
/* use touchscreen */
+#elif CONFIG_KEYPAD == MA_PAD
+#define PUZZLE_QUIT BUTTON_BACK
+#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_PLAY
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/snake.c b/apps/plugins/snake.c
index 359077c9fa..a4f79d924f 100644
--- a/apps/plugins/snake.c
+++ b/apps/plugins/snake.c
@@ -316,6 +316,14 @@ dir is the current direction of the snake - 0=up, 1=right, 2=down, 3=left;
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
/* use touchscreen */
+#elif CONFIG_KEYPAD == MA_PAD
+#define SNAKE_QUIT BUTTON_BACK
+#define SNAKE_LEFT BUTTON_LEFT
+#define SNAKE_RIGHT BUTTON_RIGHT
+#define SNAKE_UP BUTTON_UP
+#define SNAKE_DOWN BUTTON_DOWN
+#define SNAKE_PLAYPAUSE BUTTON_PLAY
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/snake2.c b/apps/plugins/snake2.c
index c71fa7f247..b6c3fc07e6 100644
--- a/apps/plugins/snake2.c
+++ b/apps/plugins/snake2.c
@@ -461,6 +461,15 @@ CONFIG_KEYPAD == MROBE500_PAD
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
/* use touchscreen */
+#elif CONFIG_KEYPAD == MA_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_BACK
+#define SNAKE2_PLAYPAUSE BUTTON_PLAY
+#define SNAKE2_PLAYPAUSE_TEXT "PLAY"
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/sokoban.c b/apps/plugins/sokoban.c
index bf61db7d88..b6b370f39c 100644
--- a/apps/plugins/sokoban.c
+++ b/apps/plugins/sokoban.c
@@ -699,6 +699,21 @@
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
/* use touchscreen */
+#elif CONFIG_KEYPAD == MA_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 (BUTTON_PLAY|BUTTON_BACK)
+#define SOKOBAN_REDO BUTTON_PLAY
+//#define SOKOBAN_LEVEL_DOWN (BUTTON_PLAY|BUTTON_VOL_DOWN)
+//#define SOKOBAN_LEVEL_UP (BUTTON_PLAY|BUTTON_VOL_UP)
+//#define SOKOBAN_LEVEL_REPEAT (BUTTON_PLAY|BUTTON_POWER)
+#define SOKOBAN_PAUSE BUTTON_BACK
+#define BUTTON_SAVE (BUTTON_MENU|BUTTON_BACK)
+#define BUTTON_SAVE_NAME "BACK"
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c
index fde3d04a0b..314610da8d 100644
--- a/apps/plugins/solitaire.c
+++ b/apps/plugins/solitaire.c
@@ -744,6 +744,26 @@ CONFIG_KEYPAD == MROBE500_PAD
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
# define SOL_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == MA_PAD
+# define SOL_QUIT (BUTTON_LEFT|BUTTON_REPEAT)
+# 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_MENU
+# define SOL_MOVE (BUTTON_MENU|BUTTON_REPEAT)
+# define SOL_DRAW BUTTON_PLAY
+# define SOL_REM2CUR (BUTTON_MENU|BUTTON_DOWN)
+# define SOL_CUR2STACK_PRE BUTTON_BACK
+# define SOL_CUR2STACK (BUTTON_BACK|BUTTON_REPEAT)
+# define SOL_REM2STACK (BUTTON_MENU|BUTTON_UP)
+# define HK_MOVE "MENU"
+# define HK_DRAW "PLAY"
+# define HK_REM2CUR "MENU+DOWN"
+# define HK_CUR2STACK "BACK"
+# define HK_REM2STACK "MENU+UP"
+
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/spacerocks.c b/apps/plugins/spacerocks.c
index 36729f8453..3cbfd13dd9 100644
--- a/apps/plugins/spacerocks.c
+++ b/apps/plugins/spacerocks.c
@@ -375,6 +375,15 @@
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
/* use touchscreen */
+#elif CONFIG_KEYPAD == MA_PAD
+#define AST_PAUSE BUTTON_MENU
+#define AST_QUIT BUTTON_BACK
+#define AST_THRUST BUTTON_PLAY
+#define AST_HYPERSPACE BUTTON_UP
+#define AST_LEFT BUTTON_LEFT
+#define AST_RIGHT BUTTON_RIGHT
+#define AST_FIRE BUTTON_DOWN
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/star.c b/apps/plugins/star.c
index 59cefa2c15..bee24fca53 100644
--- a/apps/plugins/star.c
+++ b/apps/plugins/star.c
@@ -672,6 +672,23 @@
#define STAR_QUIT BUTTON_POWER
#define STAR_QUIT_NAME "POWER"
+#elif CONFIG_KEYPAD == MA_PAD
+#define STAR_QUIT BUTTON_BACK
+#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_PLAY
+#define STAR_LEVEL_UP (BUTTON_MENU|BUTTON_UP)
+#define STAR_LEVEL_DOWN (BUTTON_MENU|BUTTON_DOWN)
+#define STAR_LEVEL_REPEAT BUTTON_MENU
+#define STAR_TOGGLE_CONTROL_NAME "PLAY"
+#define STAR_QUIT_NAME "BACK"
+#define STAR_LEVEL_UP_NAME "MENU+UP"
+#define STAR_LEVEL_DOWN_NAME "MENU+DOWN"
+#define STAR_LEVEL_REPEAT_NAME "MENU"
+
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/stopwatch.c b/apps/plugins/stopwatch.c
index bb96b8a44b..ff801095d9 100644
--- a/apps/plugins/stopwatch.c
+++ b/apps/plugins/stopwatch.c
@@ -21,8 +21,6 @@
#include "plugin.h"
-
-
#define TIMER_Y 1
#define LAP_Y TIMER_Y+1
@@ -300,6 +298,14 @@
#define STOPWATCH_SCROLL_UP BUTTON_SCROLL_BACK
#define STOPWATCH_SCROLL_DOWN BUTTON_SCROLL_FWD
+#elif CONFIG_KEYPAD == MA_PAD
+#define STOPWATCH_QUIT BUTTON_BACK
+#define STOPWATCH_START_STOP BUTTON_PLAY
+#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 e06581fdc9..1a6c2d0a38 100644
--- a/apps/plugins/sudoku/sudoku.h
+++ b/apps/plugins/sudoku/sudoku.h
@@ -460,6 +460,15 @@
#define SUDOKU_BUTTON_MENU BUTTON_MENU
#define SUDOKU_BUTTON_POSSIBLE BUTTON_BACK
+#elif CONFIG_KEYPAD == MA_PAD
+#define SUDOKU_BUTTON_MENU BUTTON_MENU
+#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_PLAY
+#define SUDOKU_BUTTON_POSSIBLE BUTTON_BACK
+
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
/* use touchscreen */
diff --git a/apps/plugins/text_viewer/tv_button.h b/apps/plugins/text_viewer/tv_button.h
index 4d45fbba03..f21faa0a41 100644
--- a/apps/plugins/text_viewer/tv_button.h
+++ b/apps/plugins/text_viewer/tv_button.h
@@ -575,6 +575,18 @@
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
#define TV_BOOKMARK BUTTON_PLAY
+#elif CONFIG_KEYPAD == MA_PAD
+#define TV_QUIT BUTTON_BACK
+#define TV_SCROLL_UP (BUTTON_MENU|BUTTON_UP)
+#define TV_SCROLL_DOWN (BUTTON_MENU|BUTTON_DOWN)
+#define TV_SCREEN_LEFT BUTTON_LEFT
+#define TV_SCREEN_RIGHT BUTTON_RIGHT
+#define TV_MENU BUTTON_MENU
+#define TV_AUTOSCROLL (BUTTON_MENU|BUTTON_BACK)
+#define TV_LINE_UP BUTTON_UP
+#define TV_LINE_DOWN BUTTON_DOWN
+#define TV_BOOKMARK (BUTTON_MENU|BUTTON_PLAY)
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/vu_meter.c b/apps/plugins/vu_meter.c
index 0dafd05845..d9c6786697 100644
--- a/apps/plugins/vu_meter.c
+++ b/apps/plugins/vu_meter.c
@@ -457,6 +457,17 @@
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
/* use touchscreen */
+#elif CONFIG_KEYPAD == MA_PAD
+#define VUMETER_QUIT BUTTON_BACK
+#define VUMETER_HELP BUTTON_LEFT
+#define VUMETER_MENU BUTTON_MENU
+#define VUMETER_UP BUTTON_UP
+#define VUMETER_DOWN BUTTON_DOWN
+#define LABEL_HELP "LEFT"
+#define LABEL_QUIT "BACK"
+#define LABEL_MENU "MENU"
+#define LABEL_VOLUME "UP/DOWN"
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/wormlet.c b/apps/plugins/wormlet.c
index 7dd814bc08..e40d9d77f3 100644
--- a/apps/plugins/wormlet.c
+++ b/apps/plugins/wormlet.c
@@ -410,6 +410,15 @@ CONFIG_KEYPAD == MROBE500_PAD
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
/* use touchscreen */
+#elif CONFIG_KEYPAD == MA_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_PLAY
+#define BTN_QUIT BUTTON_BACK
+#define BTN_STOPRESET BUTTON_MENU
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/xobox.c b/apps/plugins/xobox.c
index 336d92bd4e..5e4bc2bfaf 100644
--- a/apps/plugins/xobox.c
+++ b/apps/plugins/xobox.c
@@ -351,6 +351,15 @@ CONFIG_KEYPAD == MROBE500_PAD
#define DOWN BUTTON_DOWN
#define PAUSE BUTTON_PLAY
+#elif CONFIG_KEYPAD == MA_PAD
+
+#define QUIT BUTTON_BACK
+#define LEFT BUTTON_LEFT
+#define RIGHT BUTTON_RIGHT
+#define UP BUTTON_UP
+#define DOWN BUTTON_DOWN
+#define PAUSE BUTTON_PLAY
+
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
/* use touchscreen */
diff --git a/apps/plugins/zxbox/keymaps.h b/apps/plugins/zxbox/keymaps.h
index e95a1d8c94..1279e53931 100644
--- a/apps/plugins/zxbox/keymaps.h
+++ b/apps/plugins/zxbox/keymaps.h
@@ -293,6 +293,14 @@
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
/* use touchscreen */
+#elif CONFIG_KEYPAD == MA_PAD
+#define ZX_SELECT BUTTON_PLAY
+#define ZX_MENU BUTTON_MENU
+#define ZX_LEFT BUTTON_LEFT
+#define ZX_RIGHT BUTTON_RIGHT
+#define ZX_UP BUTTON_UP
+#define ZX_DOWN BUTTON_DOWN
+
#else
#error Keymap not defined!
diff --git a/apps/plugins/zxbox/zxbox_keyb.c b/apps/plugins/zxbox/zxbox_keyb.c
index 6e0997c339..bafd45981a 100644
--- a/apps/plugins/zxbox/zxbox_keyb.c
+++ b/apps/plugins/zxbox/zxbox_keyb.c
@@ -282,6 +282,15 @@
#define KBD_UP BUTTON_UP
#define KBD_DOWN BUTTON_DOWN
+#elif CONFIG_KEYPAD == MA_PAD
+
+#define KBD_SELECT BUTTON_PLAY
+#define KBD_ABORT BUTTON_BACK
+#define KBD_LEFT BUTTON_LEFT
+#define KBD_RIGHT BUTTON_RIGHT
+#define KBD_UP BUTTON_UP
+#define KBD_DOWN BUTTON_DOWN
+
#endif
#ifdef HAVE_TOUCHSCREEN
diff --git a/tools/configure b/tools/configure
index 7adadc9a1e..2f72f6c78a 100755
--- a/tools/configure
+++ b/tools/configure
@@ -3557,7 +3557,7 @@ fi
output="rockbox.rkw"
bootoutput="bootloader.rkw"
appextra="recorder:gui"
- plugins=""
+ plugins="yes"
# toolset is the tools within the tools directory that we build for
# this particular target.
toolset="$genericbitmaptools"
@@ -3579,7 +3579,7 @@ fi
output="rockbox.rkw"
bootoutput="bootloader.rkw"
appextra="recorder:gui"
- plugins=""
+ plugins="yes"
# toolset is the tools within the tools directory that we build for
# this particular target.
toolset="$genericbitmaptools"
@@ -3601,7 +3601,7 @@ fi
output="rockbox.rkw"
bootoutput="bootloader.rkw"
appextra="recorder:gui"
- plugins=""
+ plugins="yes"
# toolset is the tools within the tools directory that we build for
# this particular target.
toolset="$genericbitmaptools"
@@ -3623,7 +3623,7 @@ fi
output="rockbox.rkw"
bootoutput="bootloader.rkw"
appextra="recorder:gui"
- plugins=""
+ plugins="yes"
# toolset is the tools within the tools directory that we build for
# this particular target.
toolset="$genericbitmaptools"