summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorWill Robertson <aliask@rockbox.org>2008-02-17 12:23:02 +0000
committerWill Robertson <aliask@rockbox.org>2008-02-17 12:23:02 +0000
commit8215b34fdb7228283a055b1e4f04eb15cdf89d58 (patch)
tree6f3b3aa2098a514da27350d2d58f9c9c8ffe219b /apps
parentdf71f4c50930da1ea7121786d2ba3961d5426abf (diff)
Plugins now enabled and working for the Gigabeat S.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16323 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/keymaps/keymap-gigabeat-s.c16
-rw-r--r--apps/plugins/SUBDIRS2
-rw-r--r--apps/plugins/battery_bench.c7
-rw-r--r--apps/plugins/blackjack.c15
-rw-r--r--apps/plugins/bounce.c5
-rw-r--r--apps/plugins/brickmania.c8
-rw-r--r--apps/plugins/calculator.c10
-rw-r--r--apps/plugins/chessclock.c10
-rw-r--r--apps/plugins/chip8.c12
-rw-r--r--apps/plugins/chopper.c6
-rw-r--r--apps/plugins/cube.c13
-rw-r--r--apps/plugins/dict.c2
-rw-r--r--apps/plugins/disktidy.c3
-rw-r--r--apps/plugins/fireworks.c3
-rw-r--r--apps/plugins/flipit.c10
-rw-r--r--apps/plugins/invadrox.c7
-rw-r--r--apps/plugins/jewels.c8
-rw-r--r--apps/plugins/jpeg.c11
-rw-r--r--apps/plugins/lib/pluginlib_actions.c15
-rw-r--r--apps/plugins/logo.c7
-rw-r--r--apps/plugins/mandelbrot.c12
-rw-r--r--apps/plugins/matrix.c5
-rw-r--r--apps/plugins/mazezam.c12
-rw-r--r--apps/plugins/minesweeper.c8
-rw-r--r--apps/plugins/mosaique.c5
-rw-r--r--apps/plugins/mp3_encoder.c5
-rw-r--r--apps/plugins/oscilloscope.c12
-rw-r--r--apps/plugins/plasma.c6
-rw-r--r--apps/plugins/plugin.lds6
-rw-r--r--apps/plugins/pong.c7
-rw-r--r--apps/plugins/rockblox.c11
-rw-r--r--apps/plugins/rockpaint.c11
-rw-r--r--apps/plugins/sliding_puzzle.c7
-rw-r--r--apps/plugins/snake.c6
-rw-r--r--apps/plugins/snake2.c12
-rw-r--r--apps/plugins/snow.c2
-rw-r--r--apps/plugins/sokoban.c13
-rw-r--r--apps/plugins/solitaire.c18
-rw-r--r--apps/plugins/spacerocks.c13
-rw-r--r--apps/plugins/star.c11
-rw-r--r--apps/plugins/starfield.c7
-rw-r--r--apps/plugins/stats.c3
-rw-r--r--apps/plugins/stopwatch.c7
-rw-r--r--apps/plugins/superdom.c8
-rw-r--r--apps/plugins/viewer.c9
-rw-r--r--apps/plugins/vu_meter.c9
-rw-r--r--apps/plugins/wormlet.c13
-rw-r--r--apps/plugins/xobox.c9
48 files changed, 403 insertions, 14 deletions
diff --git a/apps/keymaps/keymap-gigabeat-s.c b/apps/keymaps/keymap-gigabeat-s.c
index dfe2bc852e..09d9f62376 100644
--- a/apps/keymaps/keymap-gigabeat-s.c
+++ b/apps/keymaps/keymap-gigabeat-s.c
@@ -247,21 +247,21 @@ static const struct button_mapping button_context_keyboard[] = {
{ ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
{ ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
- { ACTION_KBD_CURSOR_LEFT, BUTTON_BACK|BUTTON_LEFT, BUTTON_NONE },
- { ACTION_KBD_CURSOR_LEFT, BUTTON_BACK|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
- { ACTION_KBD_CURSOR_RIGHT, BUTTON_BACK|BUTTON_RIGHT, BUTTON_NONE },
- { ACTION_KBD_CURSOR_RIGHT, BUTTON_BACK|BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_KBD_CURSOR_LEFT, BUTTON_PREV, BUTTON_NONE },
+ { ACTION_KBD_CURSOR_LEFT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_KBD_CURSOR_RIGHT, BUTTON_NEXT, BUTTON_NONE },
+ { ACTION_KBD_CURSOR_RIGHT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_KBD_SELECT, BUTTON_SELECT, BUTTON_NONE },
- { ACTION_KBD_PAGE_FLIP, BUTTON_BACK|BUTTON_MENU, BUTTON_NONE },
- { ACTION_KBD_DONE, BUTTON_BACK|BUTTON_REL, BUTTON_BACK },
- { ACTION_KBD_ABORT, BUTTON_POWER|BUTTON_REL, BUTTON_POWER },
+ { ACTION_KBD_PAGE_FLIP, BUTTON_BACK|BUTTON_MENU, BUTTON_NONE },
+ { ACTION_KBD_DONE, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY },
+ { ACTION_KBD_ABORT, BUTTON_POWER|BUTTON_REL, BUTTON_POWER },
{ ACTION_KBD_BACKSPACE, BUTTON_MENU, BUTTON_NONE },
{ ACTION_KBD_BACKSPACE, BUTTON_MENU|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_KBD_UP, BUTTON_UP, BUTTON_NONE },
{ ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE },
{ ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
- { ACTION_KBD_MORSE_INPUT, BUTTON_BACK|BUTTON_POWER, BUTTON_NONE },
+ { ACTION_KBD_MORSE_INPUT, BUTTON_BACK|BUTTON_POWER, BUTTON_NONE },
{ ACTION_KBD_MORSE_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE },
LAST_ITEM_IN_LIST
diff --git a/apps/plugins/SUBDIRS b/apps/plugins/SUBDIRS
index 4052d91e78..d664c12c96 100644
--- a/apps/plugins/SUBDIRS
+++ b/apps/plugins/SUBDIRS
@@ -1,4 +1,4 @@
-#if !defined(IRIVER_IFP7XX_SERIES) && !defined(OLYMPUS_MROBE_100) && !defined(COWON_D2)
+#if !defined(IRIVER_IFP7XX_SERIES) && !defined(OLYMPUS_MROBE_100) && !defined(COWON_D2) && !defined(GIGABEAT_S)
/* For all targets */
shortcuts
diff --git a/apps/plugins/battery_bench.c b/apps/plugins/battery_bench.c
index 2b995952ea..9135208984 100644
--- a/apps/plugins/battery_bench.c
+++ b/apps/plugins/battery_bench.c
@@ -114,6 +114,13 @@ PLUGIN_HEADER
#define BATTERY_ON_TXT "SELECT - start"
#define BATTERY_OFF_TXT "POWER - quit"
+#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
+
+#define BATTERY_ON BUTTON_SELECT
+#define BATTERY_OFF BUTTON_BACK
+#define BATTERY_ON_TXT "SELECT - start"
+#define BATTERY_OFF_TXT "BACK - quit"
+
#elif CONFIG_KEYPAD == MROBE500_PAD
#define BATTERY_ON BUTTON_RC_PLAY
diff --git a/apps/plugins/blackjack.c b/apps/plugins/blackjack.c
index c2d4ea0f09..896a3ab8ad 100644
--- a/apps/plugins/blackjack.c
+++ b/apps/plugins/blackjack.c
@@ -203,6 +203,21 @@ PLUGIN_HEADER
#define BJACK_RIGHT BUTTON_RIGHT
#define BJACK_LEFT BUTTON_LEFT
+#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
+#define BJACK_START BUTTON_PLAY
+#define BJACK_QUIT BUTTON_BACK
+#define BJACK_MAX BUTTON_VOL_UP
+#define BJACK_MIN BUTTON_VOL_DOWN
+#define BJACK_HIT BUTTON_VOL_UP
+#define BJACK_STAY BUTTON_VOL_DOWN
+#define BJACK_DOUBLEDOWN BUTTON_SELECT
+#define BJACK_SCORES BUTTON_RIGHT
+#define BJACK_RESUME BUTTON_MENU
+#define BJACK_UP BUTTON_UP
+#define BJACK_DOWN BUTTON_DOWN
+#define BJACK_RIGHT BUTTON_RIGHT
+#define BJACK_LEFT BUTTON_LEFT
+
#else
#error BLACKJACK: Unsupported keypad
#endif
diff --git a/apps/plugins/bounce.c b/apps/plugins/bounce.c
index 67375021b5..db9e7a49a5 100644
--- a/apps/plugins/bounce.c
+++ b/apps/plugins/bounce.c
@@ -94,6 +94,11 @@ PLUGIN_HEADER
#define BOUNCE_QUIT BUTTON_POWER
#define BOUNCE_MODE BUTTON_PLAY
+#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD)
+#define BOUNCE_UP BUTTON_UP
+#define BOUNCE_DOWN BUTTON_DOWN
+#define BOUNCE_QUIT BUTTON_BACK
+#define BOUNCE_MODE BUTTON_MENU
#endif
static struct plugin_api* rb;
diff --git a/apps/plugins/brickmania.c b/apps/plugins/brickmania.c
index 52102eb037..5cefe1bc6d 100644
--- a/apps/plugins/brickmania.c
+++ b/apps/plugins/brickmania.c
@@ -135,6 +135,14 @@ PLUGIN_HEADER
#define UP BUTTON_SCROLL_UP
#define DOWN BUTTON_SCROLL_DOWN
+#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
+
+#define QUIT BUTTON_BACK
+#define LEFT BUTTON_LEFT
+#define RIGHT BUTTON_RIGHT
+#define SELECT BUTTON_SELECT
+#define UP BUTTON_UP
+#define DOWN BUTTON_DOWN
#else
#error Unsupported keypad
diff --git a/apps/plugins/calculator.c b/apps/plugins/calculator.c
index 103ce50a07..b16094203c 100644
--- a/apps/plugins/calculator.c
+++ b/apps/plugins/calculator.c
@@ -196,6 +196,16 @@ PLUGIN_HEADER
#define CALCULATOR_CALC BUTTON_PLAY
#define CALCULATOR_CLEAR BUTTON_REW
+#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD)
+
+#define CALCULATOR_UP BUTTON_UP
+#define CALCULATOR_DOWN BUTTON_DOWN
+#define CALCULATOR_QUIT BUTTON_BACK
+#define CALCULATOR_INPUT_CALC_PRE BUTTON_MENU
+#define CALCULATOR_INPUT (BUTTON_MENU | BUTTON_REL)
+#define CALCULATOR_CALC BUTTON_SELECT
+#define CALCULATOR_CLEAR BUTTON_PLAY
+
#endif
static struct plugin_api* rb;
diff --git a/apps/plugins/chessclock.c b/apps/plugins/chessclock.c
index 439ebb1c1d..3b8917496b 100644
--- a/apps/plugins/chessclock.c
+++ b/apps/plugins/chessclock.c
@@ -150,6 +150,16 @@ PLUGIN_HEADER
#define CHC_SETTINGS_OK BUTTON_RC_PLAY
#define CHC_SETTINGS_CANCEL BUTTON_POWER
+#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
+#define CHC_QUIT BUTTON_BACK
+#define CHC_STARTSTOP BUTTON_PLAY
+#define CHC_RESET BUTTON_PREV
+#define CHC_MENU BUTTON_MENU
+#define CHC_SETTINGS_INC BUTTON_UP
+#define CHC_SETTINGS_DEC BUTTON_DOWN
+#define CHC_SETTINGS_OK BUTTON_SELECT
+#define CHC_SETTINGS_CANCEL BUTTON_BACK
+
#endif
diff --git a/apps/plugins/chip8.c b/apps/plugins/chip8.c
index 4fd28d357a..752aa7b4c8 100644
--- a/apps/plugins/chip8.c
+++ b/apps/plugins/chip8.c
@@ -1044,6 +1044,18 @@ STATIC void chip8 (void)
#define CHIP8_KEY6 BUTTON_RIGHT
#define CHIP8_KEY8 BUTTON_SCROLL_DOWN
+#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD)
+#define CHIP8_OFF BUTTON_BACK
+#define CHIP8_KEY1 BUTTON_MENU
+#define CHIP8_KEY2 BUTTON_UP
+#define CHIP8_KEY3 BUTTON_VOL_DOWN
+#define CHIP8_KEY4 BUTTON_LEFT
+#define CHIP8_KEY5 BUTTON_SELECT
+#define CHIP8_KEY6 BUTTON_RIGHT
+#define CHIP8_KEY7 BUTTON_VOL_UP
+#define CHIP8_KEY8 BUTTON_DOWN
+#define CHIP8_KEY9 BUTTON_PLAY
+
#endif
static byte chip8_virtual_keys[16];
diff --git a/apps/plugins/chopper.c b/apps/plugins/chopper.c
index 46acf2c74e..d9e02142b0 100644
--- a/apps/plugins/chopper.c
+++ b/apps/plugins/chopper.c
@@ -86,6 +86,12 @@ Still To do:
#define ACTION2 BUTTON_MENU
#define ACTIONTEXT "UP"
+#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
+#define QUIT BUTTON_BACK
+#define ACTION BUTTON_SELECT
+#define ACTION2 BUTTON_MENU
+#define ACTIONTEXT "SELECT"
+
#else
#error Unsupported keypad
#endif
diff --git a/apps/plugins/cube.c b/apps/plugins/cube.c
index 187fcad1c1..164c139110 100644
--- a/apps/plugins/cube.c
+++ b/apps/plugins/cube.c
@@ -204,6 +204,19 @@ PLUGIN_HEADER
#define CUBE_PAUSE (BUTTON_RC_HEART | BUTTON_REL)
#define CUBE_HIGHSPEED BUTTON_RC_HEART
+#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
+#define CUBE_QUIT BUTTON_BACK
+#define CUBE_X_INC BUTTON_LEFT
+#define CUBE_X_DEC BUTTON_RIGHT
+#define CUBE_Y_INC BUTTON_UP
+#define CUBE_Y_DEC BUTTON_DOWN
+#define CUBE_Z_INC BUTTON_VOL_UP
+#define CUBE_Z_DEC BUTTON_VOL_DOWN
+#define CUBE_MODE BUTTON_PREV
+#define CUBE_PAUSE_PRE BUTTON_PLAY
+#define CUBE_PAUSE (BUTTON_PLAY | BUTTON_REL)
+#define CUBE_HIGHSPEED (BUTTON_NEXT | BUTTON_REL)
+
#endif
#ifdef HAVE_LCD_BITMAP
diff --git a/apps/plugins/dict.c b/apps/plugins/dict.c
index 38e86fbed7..73037e7527 100644
--- a/apps/plugins/dict.c
+++ b/apps/plugins/dict.c
@@ -121,6 +121,8 @@ long reverse (long N) {
#define LP_QUIT BUTTON_POWER
#elif CONFIG_KEYPAD == MROBE500_PAD
#define LP_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
+#define LP_QUIT BUTTON_BACK
#else
#define LP_QUIT BUTTON_OFF
#endif
diff --git a/apps/plugins/disktidy.c b/apps/plugins/disktidy.c
index a1c51d762a..e682f33b84 100644
--- a/apps/plugins/disktidy.c
+++ b/apps/plugins/disktidy.c
@@ -73,6 +73,9 @@ enum tidy_system
#elif CONFIG_KEYPAD == IRIVER_H10_PAD
#define TIDY_STOP BUTTON_POWER
+#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
+#define TIDY_STOP BUTTON_BACK
+
#else
#error DISKTIDY: Unsupported keypad
#endif
diff --git a/apps/plugins/fireworks.c b/apps/plugins/fireworks.c
index 4ad487d242..50be236f14 100644
--- a/apps/plugins/fireworks.c
+++ b/apps/plugins/fireworks.c
@@ -54,7 +54,8 @@ static struct plugin_api* rb;
#elif (CONFIG_KEYPAD == IRIVER_IFP7XX_PAD)
#define BTN_MENU BUTTON_MODE
#define BTN_FIRE BUTTON_SELECT
-#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
+#elif (CONFIG_KEYPAD == GIGABEAT_PAD) || \
+(CONFIG_KEYPAD == GIGABEAT_S_PAD)
#define BTN_MENU BUTTON_MENU
#define BTN_FIRE BUTTON_SELECT
#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
diff --git a/apps/plugins/flipit.c b/apps/plugins/flipit.c
index bdb9e68360..382e6619c3 100644
--- a/apps/plugins/flipit.c
+++ b/apps/plugins/flipit.c
@@ -129,6 +129,16 @@ PLUGIN_HEADER
#define FLIPIT_TOGGLE_PRE BUTTON_REW
#define FLIPIT_TOGGLE (BUTTON_REW | BUTTON_REL)
+#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
+
+#define FLIPIT_UP BUTTON_UP
+#define FLIPIT_DOWN BUTTON_DOWN
+#define FLIPIT_QUIT BUTTON_BACK
+#define FLIPIT_SHUFFLE BUTTON_MENU
+#define FLIPIT_SOLVE BUTTON_VOL_UP
+#define FLIPIT_STEP_BY_STEP BUTTON_VOL_DOWN
+#define FLIPIT_TOGGLE BUTTON_SELECT
+
#endif
static struct plugin_api* rb;
diff --git a/apps/plugins/invadrox.c b/apps/plugins/invadrox.c
index 527ec9587f..2fab94a04c 100644
--- a/apps/plugins/invadrox.c
+++ b/apps/plugins/invadrox.c
@@ -107,6 +107,13 @@ PLUGIN_HEADER
#define RIGHT BUTTON_RIGHT
#define FIRE BUTTON_MENU
+#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
+
+#define QUIT BUTTON_BACK
+#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 2a2e5d99f7..5285cf912a 100644
--- a/apps/plugins/jewels.c
+++ b/apps/plugins/jewels.c
@@ -112,6 +112,14 @@ PLUGIN_HEADER
#define JEWELS_SELECT BUTTON_PLAY
#define JEWELS_CANCEL BUTTON_POWER
+#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
+#define JEWELS_UP BUTTON_UP
+#define JEWELS_DOWN BUTTON_DOWN
+#define JEWELS_LEFT BUTTON_LEFT
+#define JEWELS_RIGHT BUTTON_RIGHT
+#define JEWELS_SELECT BUTTON_SELECT
+#define JEWELS_CANCEL BUTTON_BACK
+
#else
#error JEWELS: Unsupported keypad
#endif
diff --git a/apps/plugins/jpeg.c b/apps/plugins/jpeg.c
index 4ad92eea3c..27c7c215c8 100644
--- a/apps/plugins/jpeg.c
+++ b/apps/plugins/jpeg.c
@@ -176,6 +176,17 @@ PLUGIN_HEADER
#define JPEG_NEXT BUTTON_RC_HEART
#define JPEG_PREVIOUS BUTTON_RC_MODE
+#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
+#define JPEG_ZOOM_IN BUTTON_VOL_UP
+#define JPEG_ZOOM_OUT BUTTON_VOL_DOWN
+#define JPEG_UP BUTTON_UP
+#define JPEG_DOWN BUTTON_DOWN
+#define JPEG_LEFT BUTTON_LEFT
+#define JPEG_RIGHT BUTTON_RIGHT
+#define JPEG_MENU BUTTON_MENU
+#define JPEG_NEXT BUTTON_NEXT
+#define JPEG_PREVIOUS BUTTON_PREV
+
#endif
/* different graphics libraries */
diff --git a/apps/plugins/lib/pluginlib_actions.c b/apps/plugins/lib/pluginlib_actions.c
index f358bb59f6..ce90ad9004 100644
--- a/apps/plugins/lib/pluginlib_actions.c
+++ b/apps/plugins/lib/pluginlib_actions.c
@@ -72,7 +72,8 @@ const struct button_mapping generic_directions[] =
|| (CONFIG_KEYPAD == RECORDER_PAD) \
|| (CONFIG_KEYPAD == ARCHOS_AV300_PAD) \
|| (CONFIG_KEYPAD == IRIVER_IFP7XX_PAD) \
- || (CONFIG_KEYPAD == SANSA_C200_PAD)
+ || (CONFIG_KEYPAD == SANSA_C200_PAD) \
+ || (CONFIG_KEYPAD == GIGABEAT_S_PAD)
{ PLA_UP, BUTTON_UP, BUTTON_NONE},
{ PLA_DOWN, BUTTON_DOWN, BUTTON_NONE},
{ PLA_LEFT, BUTTON_LEFT, BUTTON_NONE},
@@ -151,7 +152,8 @@ const struct button_mapping generic_left_right_fire[] =
|| (CONFIG_KEYPAD == IRIVER_H300_PAD) \
|| (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) \
|| (CONFIG_KEYPAD == GIGABEAT_PAD) \
- || (CONFIG_KEYPAD == IRIVER_IFP7XX_PAD)
+ || (CONFIG_KEYPAD == IRIVER_IFP7XX_PAD) \
+ || (CONFIG_KEYPAD == GIGABEAT_S_PAD)
{ PLA_LEFT, BUTTON_LEFT, BUTTON_NONE},
{ PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE},
{ PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE},
@@ -268,6 +270,12 @@ const struct button_mapping generic_actions[] =
{PLA_MENU, BUTTON_MENU, BUTTON_NONE},
{PLA_FIRE, BUTTON_SELECT, BUTTON_NONE},
{PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE},
+#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
+ {PLA_QUIT, BUTTON_BACK, BUTTON_NONE},
+ {PLA_START, BUTTON_PLAY, BUTTON_NONE},
+ {PLA_MENU, BUTTON_MENU, BUTTON_NONE},
+ {PLA_FIRE, BUTTON_SELECT, BUTTON_NONE},
+ {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE},
#elif CONFIG_KEYPAD == RECORDER_PAD
{PLA_QUIT, BUTTON_OFF, BUTTON_NONE},
{PLA_START, BUTTON_ON, BUTTON_NONE},
@@ -345,7 +353,8 @@ const struct button_mapping generic_increase_decrease[] =
|| (CONFIG_KEYPAD == ARCHOS_AV300_PAD) \
|| (CONFIG_KEYPAD == IRIVER_IFP7XX_PAD) \
|| (CONFIG_KEYPAD == ONDIO_PAD) \
- || (CONFIG_KEYPAD == COWOND2_PAD)
+ || (CONFIG_KEYPAD == COWOND2_PAD) \
+ || (CONFIG_KEYPAD == GIGABEAT_S_PAD)
{PLA_INC, BUTTON_UP, BUTTON_NONE},
{PLA_DEC, BUTTON_DOWN, BUTTON_NONE},
{PLA_INC_REPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE},
diff --git a/apps/plugins/logo.c b/apps/plugins/logo.c
index db987295f0..34e14da698 100644
--- a/apps/plugins/logo.c
+++ b/apps/plugins/logo.c
@@ -111,6 +111,13 @@ const unsigned char rockbox16x7[] = {
#define LP_DEC_Y BUTTON_RC_DOWN
#define LP_INC_Y BUTTON_RC_PLAY
+#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
+#define LP_QUIT BUTTON_BACK
+#define LP_DEC_X BUTTON_LEFT
+#define LP_INC_X BUTTON_RIGHT
+#define LP_DEC_Y BUTTON_DOWN
+#define LP_INC_Y BUTTON_UP
+
#else
#define LP_QUIT BUTTON_OFF
#define LP_DEC_X BUTTON_LEFT
diff --git a/apps/plugins/mandelbrot.c b/apps/plugins/mandelbrot.c
index 11f4d34eea..b3ead229c3 100644
--- a/apps/plugins/mandelbrot.c
+++ b/apps/plugins/mandelbrot.c
@@ -176,6 +176,18 @@ PLUGIN_HEADER
#define MANDELBROT_MAXITER_DEC (BUTTON_PLAY | BUTTON_LEFT)
#define MANDELBROT_RESET BUTTON_MODE
+#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
+#define MANDELBROT_QUIT BUTTON_BACK
+#define MANDELBROT_UP BUTTON_UP
+#define MANDELBROT_DOWN BUTTON_DOWN
+#define MANDELBROT_LEFT BUTTON_LEFT
+#define MANDELBROT_RIGHT BUTTON_RIGHT
+#define MANDELBROT_ZOOM_IN BUTTON_VOL_UP
+#define MANDELBROT_ZOOM_OUT BUTTON_VOL_DOWN
+#define MANDELBROT_MAXITER_INC BUTTON_PREV
+#define MANDELBROT_MAXITER_DEC BUTTON_NEXT
+#define MANDELBROT_RESET BUTTON_MENU
+
#endif
#if LCD_DEPTH < 8
diff --git a/apps/plugins/matrix.c b/apps/plugins/matrix.c
index b12c3cdff9..827b205e7d 100644
--- a/apps/plugins/matrix.c
+++ b/apps/plugins/matrix.c
@@ -85,6 +85,11 @@ extern const fb_data matrix_normal[];
#define MATRIX_SLEEP_MORE BUTTON_UP
#define MATRIX_SLEEP_LESS BUTTON_DOWN
#define MATRIX_PAUSE BUTTON_SELECT
+#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD)
+#define MATRIX_EXIT BUTTON_BACK
+#define MATRIX_SLEEP_MORE BUTTON_UP
+#define MATRIX_SLEEP_LESS BUTTON_DOWN
+#define MATRIX_PAUSE BUTTON_SELECT
#else
#error Unsupported keypad
#endif
diff --git a/apps/plugins/mazezam.c b/apps/plugins/mazezam.c
index 41edd3a5e5..1105e4eebb 100644
--- a/apps/plugins/mazezam.c
+++ b/apps/plugins/mazezam.c
@@ -141,6 +141,18 @@ MEM_FUNCTION_WRAPPERS(rb);
#define MAZEZAM_QUIT BUTTON_POWER
#define MAZEZAM_QUIT_KEYNAME "[POWER]"
+#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD)
+#define MAZEZAM_UP BUTTON_UP
+#define MAZEZAM_DOWN BUTTON_DOWN
+#define MAZEZAM_LEFT BUTTON_LEFT
+#define MAZEZAM_RIGHT BUTTON_RIGHT
+#define MAZEZAM_SELECT BUTTON_SELECT
+
+#define MAZEZAM_RETRY BUTTON_PLAY
+#define MAZEZAM_RETRY_KEYNAME "[PLAY]"
+#define MAZEZAM_QUIT BUTTON_BACK
+#define MAZEZAM_QUIT_KEYNAME "[BACK]"
+
#endif
/* The gap for the border around the heading in text pages. In fact, 2 is
diff --git a/apps/plugins/minesweeper.c b/apps/plugins/minesweeper.c
index 0fa0bbcde4..f448b96fe2 100644
--- a/apps/plugins/minesweeper.c
+++ b/apps/plugins/minesweeper.c
@@ -133,6 +133,14 @@ enum minesweeper_status {
# define MINESWP_DISCOVER BUTTON_REW
# define MINESWP_INFO (BUTTON_REW | BUTTON_PLAY)
+#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD)
+# define MINESWP_UP BUTTON_UP
+# define MINESWP_DOWN BUTTON_DOWN
+# define MINESWP_QUIT BUTTON_BACK
+# define MINESWP_TOGGLE BUTTON_PLAY
+# define MINESWP_DISCOVER BUTTON_SELECT
+# define MINESWP_INFO BUTTON_MENU
+
#else
# warning Missing key definitions for this keypad
#endif
diff --git a/apps/plugins/mosaique.c b/apps/plugins/mosaique.c
index 8ce5c1b435..21adc7a07d 100644
--- a/apps/plugins/mosaique.c
+++ b/apps/plugins/mosaique.c
@@ -107,6 +107,11 @@ PLUGIN_HEADER
#define MOSAIQUE_SPEED BUTTON_RC_FF
#define MOSAIQUE_RESTART BUTTON_RC_PLAY
+#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
+#define MOSAIQUE_QUIT BUTTON_BACK
+#define MOSAIQUE_SPEED BUTTON_SELECT
+#define MOSAIQUE_RESTART BUTTON_MENU
+
#endif
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
diff --git a/apps/plugins/mp3_encoder.c b/apps/plugins/mp3_encoder.c
index 4558fdd56b..bd6c667873 100644
--- a/apps/plugins/mp3_encoder.c
+++ b/apps/plugins/mp3_encoder.c
@@ -2317,6 +2317,11 @@ void get_mp3_filename(char *wav_name)
#define MP3ENC_NEXT BUTTON_SCROLL_DOWN
#define MP3ENC_DONE BUTTON_POWER
#define MP3ENC_SELECT BUTTON_PLAY
+#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
+#define MP3ENC_PREV BUTTON_UP
+#define MP3ENC_NEXT BUTTON_DOWN
+#define MP3ENC_DONE BUTTON_BACK
+#define MP3ENC_SELECT BUTTON_SELECT
#endif
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
diff --git a/apps/plugins/oscilloscope.c b/apps/plugins/oscilloscope.c
index e96442afd4..dbb01355bc 100644
--- a/apps/plugins/oscilloscope.c
+++ b/apps/plugins/oscilloscope.c
@@ -146,6 +146,18 @@ PLUGIN_HEADER
#define OSCILLOSCOPE_VOL_UP BUTTON_SCROLL_UP
#define OSCILLOSCOPE_VOL_DOWN BUTTON_SCROLL_DOWN
+#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
+#define OSCILLOSCOPE_QUIT BUTTON_BACK
+#define OSCILLOSCOPE_DRAWMODE BUTTON_PREV
+#define OSCILLOSCOPE_ADVMODE BUTTON_NEXT
+#define OSCILLOSCOPE_ORIENTATION BUTTON_MENU
+#define OSCILLOSCOPE_PAUSE BUTTON_PLAY
+#define OSCILLOSCOPE_SPEED_UP BUTTON_RIGHT
+#define OSCILLOSCOPE_SPEED_DOWN BUTTON_LEFT
+#define OSCILLOSCOPE_VOL_UP BUTTON_VOL_UP
+#define OSCILLOSCOPE_VOL_DOWN BUTTON_VOL_DOWN
+
+
#endif
/* colours */
diff --git a/apps/plugins/plasma.c b/apps/plugins/plasma.c
index ce2af5c87b..a67845f2da 100644
--- a/apps/plugins/plasma.c
+++ b/apps/plugins/plasma.c
@@ -78,6 +78,10 @@ static int plasma_frequency;
#define PLASMA_QUIT BUTTON_POWER
#define PLASMA_INCREASE_FREQUENCY BUTTON_SCROLL_UP
#define PLASMA_DECREASE_FREQUENCY BUTTON_SCROLL_DOWN
+#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD)
+#define PLASMA_QUIT BUTTON_BACK
+#define PLASMA_INCREASE_FREQUENCY BUTTON_UP
+#define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN
#else
#define PLASMA_QUIT BUTTON_OFF
#define PLASMA_INCREASE_FREQUENCY BUTTON_UP
@@ -101,6 +105,8 @@ static int plasma_frequency;
#define PLASMA_REGEN_COLORS BUTTON_SELECT
#elif CONFIG_KEYPAD == GIGABEAT_PAD
#define PLASMA_REGEN_COLORS BUTTON_SELECT
+#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
+#define PLASMA_REGEN_COLORS BUTTON_SELECT
#endif
#endif
diff --git a/apps/plugins/plugin.lds b/apps/plugins/plugin.lds
index a08a4a8a54..47969e0537 100644
--- a/apps/plugins/plugin.lds
+++ b/apps/plugins/plugin.lds
@@ -22,6 +22,10 @@ OUTPUT_FORMAT(elf32-sh)
#elif CONFIG_CPU==DM320
#include "dm320.h"
#define DRAMSIZE (MEMORYSIZE * 0x100000) - PLUGIN_BUFFER_SIZE - STUBOFFSET - CODEC_SIZE - LCD_BUFFER_SIZE - TTB_SIZE
+#elif CONFIG_CPU==IMX31L
+#include "imx31l.h"
+/* Reserve 1mb for LCD buffer/TTB as in app.lds */
+#define DRAMSIZE (MEMORYSIZE * 0x100000 - 0x100000) - PLUGIN_BUFFER_SIZE - STUBOFFSET - CODEC_SIZE
#else
#define DRAMSIZE (MEMORYSIZE * 0x100000) - PLUGIN_BUFFER_SIZE - STUBOFFSET - CODEC_SIZE
#endif
@@ -52,7 +56,7 @@ OUTPUT_FORMAT(elf32-sh)
#define IRAMSIZE 4K
#define IRAM DRAM
#elif CONFIG_CPU == IMX31L
-#define DRAMORIG 0x80000000
+#define DRAMORIG 0x0
#define IRAMORIG 0x1FFFC000
#define IRAMSIZE 0x4000
#elif CONFIG_CPU==DM320
diff --git a/apps/plugins/pong.c b/apps/plugins/pong.c
index 43672a6db8..7052c0be3e 100644
--- a/apps/plugins/pong.c
+++ b/apps/plugins/pong.c
@@ -123,6 +123,13 @@ PLUGIN_HEADER
#define PONG_RIGHT_UP BUTTON_REW
#define PONG_RIGHT_DOWN BUTTON_FF
+#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD)
+#define PONG_QUIT BUTTON_BACK
+#define PONG_LEFT_UP BUTTON_UP
+#define PONG_LEFT_DOWN BUTTON_DOWN
+#define PONG_RIGHT_UP BUTTON_VOL_UP
+#define PONG_RIGHT_DOWN BUTTON_VOL_DOWN
+
#endif
static struct plugin_api* rb;
diff --git a/apps/plugins/rockblox.c b/apps/plugins/rockblox.c
index ba8a1480b7..b3444d39da 100644
--- a/apps/plugins/rockblox.c
+++ b/apps/plugins/rockblox.c
@@ -177,6 +177,17 @@ PLUGIN_HEADER
#define ROCKBLOX_DROP BUTTON_RC_HEART
#define ROCKBLOX_RESTART BUTTON_RC_MODE
+#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
+#define ROCKBLOX_OFF BUTTON_BACK
+#define ROCKBLOX_ROTATE_RIGHT BUTTON_VOL_DOWN
+#define ROCKBLOX_ROTATE_LEFT BUTTON_VOL_UP
+#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_PLAY
+
#endif
#define BLOCKS_NUM 7
diff --git a/apps/plugins/rockpaint.c b/apps/plugins/rockpaint.c
index 41519f66e1..2b37a97dd8 100644
--- a/apps/plugins/rockpaint.c
+++ b/apps/plugins/rockpaint.c
@@ -105,6 +105,17 @@ PLUGIN_HEADER
#define ROCKPAINT_LEFT BUTTON_LEFT
#define ROCKPAINT_RIGHT BUTTON_RIGHT
+#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
+#define ROCKPAINT_QUIT BUTTON_BACK
+#define ROCKPAINT_DRAW BUTTON_SELECT
+#define ROCKPAINT_MENU BUTTON_MENU
+#define ROCKPAINT_TOOLBAR BUTTON_PLAY
+#define ROCKPAINT_TOOLBAR2 ( BUTTON_PLAY | 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 f9a723cc11..f8fb0ed6bf 100644
--- a/apps/plugins/sliding_puzzle.c
+++ b/apps/plugins/sliding_puzzle.c
@@ -93,6 +93,13 @@ PLUGIN_HEADER
#define PUZZLE_SHUFFLE BUTTON_REW
#define PUZZLE_PICTURE BUTTON_PLAY
+#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD)
+#define PUZZLE_QUIT BUTTON_BACK
+#define PUZZLE_UP BUTTON_UP
+#define PUZZLE_DOWN BUTTON_DOWN
+#define PUZZLE_SHUFFLE BUTTON_SELECT
+#define PUZZLE_PICTURE BUTTON_MENU
+
#endif
diff --git a/apps/plugins/snake.c b/apps/plugins/snake.c
index 2beeaa4c5b..7d64c16bb3 100644
--- a/apps/plugins/snake.c
+++ b/apps/plugins/snake.c
@@ -96,6 +96,12 @@ PLUGIN_HEADER
#define SNAKE_DOWN BUTTON_SCROLL_DOWN
#define SNAKE_PLAYPAUSE BUTTON_PLAY
+#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD)
+#define SNAKE_QUIT BUTTON_BACK
+#define SNAKE_UP BUTTON_UP
+#define SNAKE_DOWN BUTTON_DOWN
+#define SNAKE_PLAYPAUSE BUTTON_SELECT
+
#else
#error "lacks keymapping"
#endif
diff --git a/apps/plugins/snake2.c b/apps/plugins/snake2.c
index 1d13b0523b..d2eb89f2b4 100644
--- a/apps/plugins/snake2.c
+++ b/apps/plugins/snake2.c
@@ -257,6 +257,18 @@ PLUGIN_HEADER
#define SNAKE2_PLAYPAUSE BUTTON_FF
#define SNAKE2_PLAYPAUSE_TEXT "FF"
+#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD)
+#define SNAKE2_UP BUTTON_UP
+#define SNAKE2_DOWN BUTTON_DOWN
+#define SNAKE2_QUIT BUTTON_BACK
+#define SNAKE2_LEVEL_UP BUTTON_UP
+#define SNAKE2_LEVEL_DOWN BUTTON_DOWN
+#define SNAKE2_MAZE_NEXT BUTTON_RIGHT
+#define SNAKE2_MAZE_LAST BUTTON_LEFT
+#define SNAKE2_SELECT_TYPE BUTTON_MENU
+#define SNAKE2_PLAYPAUSE BUTTON_SELECT
+#define SNAKE2_PLAYPAUSE_TEXT "Select"
+
#else
#error "lacks keymapping"
#endif
diff --git a/apps/plugins/snow.c b/apps/plugins/snow.c
index 47b182299c..f2e76b19f2 100644
--- a/apps/plugins/snow.c
+++ b/apps/plugins/snow.c
@@ -53,6 +53,8 @@ PLUGIN_HEADER
#define SNOW_QUIT BUTTON_POWER
#elif CONFIG_KEYPAD == MROBE500_PAD
#define SNOW_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
+#define SNOW_QUIT BUTTON_BACK
#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 e031f6064a..aaf314a154 100644
--- a/apps/plugins/sokoban.c
+++ b/apps/plugins/sokoban.c
@@ -217,6 +217,19 @@ extern const fb_data sokoban_tiles[];
#define BUTTON_SAVE BUTTON_SELECT
#define BUTTON_SAVE_NAME "SELECT"
+#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
+#define SOKOBAN_UP BUTTON_UP
+#define SOKOBAN_DOWN BUTTON_DOWN
+#define SOKOBAN_MENU BUTTON_MENU
+#define SOKOBAN_UNDO BUTTON_VOL_UP
+#define SOKOBAN_REDO BUTTON_VOL_DOWN
+#define SOKOBAN_LEVEL_DOWN BUTTON_PREV
+#define SOKOBAN_LEVEL_REPEAT BUTTON_PLAY
+#define SOKOBAN_LEVEL_UP BUTTON_NEXT
+#define SOKOBAN_PAUSE BUTTON_SELECT
+#define BUTTON_SAVE BUTTON_SELECT
+#define BUTTON_SAVE_NAME "SELECT"
+
#endif
#define SOKOBAN_FONT FONT_SYSFIXED
diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c
index 2176e8cb22..b8cdde05eb 100644
--- a/apps/plugins/solitaire.c
+++ b/apps/plugins/solitaire.c
@@ -239,6 +239,24 @@ static struct plugin_api* rb;
# define HK_CUR2STACK "REW"
# define HK_REM2STACK "RIGHT.."
+#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD)
+# define SOL_QUIT BUTTON_BACK
+# 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_SELECT | BUTTON_REL)
+# define SOL_DRAW BUTTON_MENU
+# define SOL_REM2CUR (BUTTON_LEFT | BUTTON_SELECT)
+# define SOL_CUR2STACK (BUTTON_SELECT | BUTTON_REPEAT)
+# define SOL_REM2STACK (BUTTON_RIGHT | BUTTON_SELECT)
+# define HK_MOVE "SELECT"
+# define HK_DRAW "MENU"
+# define HK_REM2CUR "SELECT+LEFT"
+# define HK_CUR2STACK "SELECT.."
+# define HK_REM2STACK "SELECT+RIGHT"
+
#else
# error "Unknown keypad"
#endif
diff --git a/apps/plugins/spacerocks.c b/apps/plugins/spacerocks.c
index 2ea1dc84e5..742a9700b2 100644
--- a/apps/plugins/spacerocks.c
+++ b/apps/plugins/spacerocks.c
@@ -161,6 +161,19 @@ static struct plugin_api* rb; /* global api struct pointer */
#define AST_FIRE BUTTON_REW
#define AST_FIRE_REP BUTTON_REW | BUTTON_REPEAT
+#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD)
+#define AST_PAUSE BUTTON_PLAY
+#define AST_QUIT BUTTON_BACK
+#define AST_THRUST_REP BUTTON_UP | BUTTON_REPEAT
+#define AST_THRUST BUTTON_UP
+#define AST_HYPERSPACE BUTTON_DOWN
+#define AST_LEFT BUTTON_LEFT
+#define AST_LEFT_REP BUTTON_LEFT | BUTTON_REPEAT
+#define AST_RIGHT BUTTON_RIGHT
+#define AST_RIGHT_REP (BUTTON_RIGHT | BUTTON_REPEAT)
+#define AST_FIRE BUTTON_SELECT
+#define AST_FIRE_REP BUTTON_SELECT | BUTTON_REPEAT
+
#endif
#define ABS(x) ((x)>0?(x):-(x))
diff --git a/apps/plugins/star.c b/apps/plugins/star.c
index 069981868b..25dc058666 100644
--- a/apps/plugins/star.c
+++ b/apps/plugins/star.c
@@ -168,6 +168,17 @@ PLUGIN_HEADER
#define STAR_LEVEL_REPEAT (BUTTON_PLAY | BUTTON_RIGHT)
#define STAR_MENU_RUN BUTTON_FF
+#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD)
+
+#define STAR_QUIT BUTTON_BACK
+#define STAR_UP BUTTON_UP
+#define STAR_DOWN BUTTON_DOWN
+#define STAR_TOGGLE_CONTROL BUTTON_SELECT
+#define STAR_LEVEL_UP BUTTON_VOL_UP
+#define STAR_LEVEL_DOWN BUTTON_VOL_DOWN
+#define STAR_LEVEL_REPEAT BUTTON_MENU
+#define STAR_MENU_RUN BUTTON_SELECT
+
#endif
/* function returns because of USB? */
diff --git a/apps/plugins/starfield.c b/apps/plugins/starfield.c
index ffc9f16321..2c39b05b0d 100644
--- a/apps/plugins/starfield.c
+++ b/apps/plugins/starfield.c
@@ -65,6 +65,13 @@ static struct plugin_api* rb; /* global api struct pointer */
#define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT
#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT
#define STARFIELD_TOGGLE_COLOR BUTTON_SELECT
+#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD)
+#define STARFIELD_QUIT BUTTON_BACK
+#define STARFIELD_INCREASE_ZMOVE BUTTON_UP
+#define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN
+#define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT
+#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT
+#define STARFIELD_TOGGLE_COLOR BUTTON_SELECT
#else
#define STARFIELD_QUIT BUTTON_OFF
diff --git a/apps/plugins/stats.c b/apps/plugins/stats.c
index 32d15cc1d3..993943f977 100644
--- a/apps/plugins/stats.c
+++ b/apps/plugins/stats.c
@@ -62,6 +62,9 @@ static bool abort;
#elif CONFIG_KEYPAD == MROBE500_PAD
#define STATS_STOP BUTTON_POWER
+
+#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
+#define STATS_STOP BUTTON_BACK
#endif
/* TODO: Better get the exts from the filetypes var in tree.c */
diff --git a/apps/plugins/stopwatch.c b/apps/plugins/stopwatch.c
index 3a863e8fd9..331649a3b1 100644
--- a/apps/plugins/stopwatch.c
+++ b/apps/plugins/stopwatch.c
@@ -122,6 +122,13 @@ PLUGIN_HEADER
#define STOPWATCH_LAP_TIMER BUTTON_RC_PLAY
#define STOPWATCH_SCROLL_UP BUTTON_RIGHT
#define STOPWATCH_SCROLL_DOWN BUTTON_LEFT
+#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
+#define STOPWATCH_QUIT BUTTON_BACK
+#define STOPWATCH_START_STOP BUTTON_PLAY
+#define STOPWATCH_RESET_TIMER BUTTON_MENU
+#define STOPWATCH_LAP_TIMER BUTTON_SELECT
+#define STOPWATCH_SCROLL_UP BUTTON_UP
+#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN
#endif
static struct plugin_api* rb;
diff --git a/apps/plugins/superdom.c b/apps/plugins/superdom.c
index b5e780460a..794ea9e8f0 100644
--- a/apps/plugins/superdom.c
+++ b/apps/plugins/superdom.c
@@ -119,6 +119,14 @@ char buf[255];
#define SUPERDOM_RIGHT BUTTON_RIGHT
#define SUPERDOM_CANCEL BUTTON_POWER
+#elif CONFIG_KEYPAD == GIGABEAT_S_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_BACK
+
#endif
#define SUPERDOM_QUIT 23
diff --git a/apps/plugins/viewer.c b/apps/plugins/viewer.c
index 13bb014c55..da288f1d6f 100644
--- a/apps/plugins/viewer.c
+++ b/apps/plugins/viewer.c
@@ -214,6 +214,15 @@ PLUGIN_HEADER
#define VIEWER_MENU BUTTON_RC_HEART
#define VIEWER_AUTOSCROLL BUTTON_RC_MODE
+#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
+#define VIEWER_QUIT BUTTON_BACK
+#define VIEWER_PAGE_UP BUTTON_VOL_UP
+#define VIEWER_PAGE_DOWN BUTTON_VOL_DOWN
+#define VIEWER_SCREEN_LEFT BUTTON_LEFT
+#define VIEWER_SCREEN_RIGHT BUTTON_RIGHT
+#define VIEWER_MENU BUTTON_MENU
+#define VIEWER_AUTOSCROLL BUTTON_PLAY
+
#endif
/* stuff for the bookmarking */
diff --git a/apps/plugins/vu_meter.c b/apps/plugins/vu_meter.c
index 810c600d29..a004cc7d98 100644
--- a/apps/plugins/vu_meter.c
+++ b/apps/plugins/vu_meter.c
@@ -121,6 +121,15 @@ PLUGIN_HEADER
#define VUMETER_UP BUTTON_SCROLL_UP
#define VUMETER_DOWN BUTTON_SCROLL_DOWN
+#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD)
+#define VUMETER_QUIT BUTTON_BACK
+#define VUMETER_HELP BUTTON_NEXT
+#define VUMETER_MENU BUTTON_MENU
+#define VUMETER_MENU_EXIT BUTTON_MENU
+#define VUMETER_MENU_EXIT2 BUTTON_PLAY
+#define VUMETER_UP BUTTON_UP
+#define VUMETER_DOWN BUTTON_DOWN
+
#endif
const struct plugin_api* rb;
diff --git a/apps/plugins/wormlet.c b/apps/plugins/wormlet.c
index c05918e9b4..3681446b22 100644
--- a/apps/plugins/wormlet.c
+++ b/apps/plugins/wormlet.c
@@ -176,6 +176,19 @@ PLUGIN_HEADER
#define PLAYERS_TEXT "Up/Down"
#define WORMS_TEXT "Left/Right"
+#elif (CONFIG_KEYPAD == GIGABEAT_S_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_BACK
+#define BTN_STOPRESET BUTTON_MENU
+
+#define PLAYERS_TEXT "Up/Down"
+#define WORMS_TEXT "Left/Right"
+
#endif
#if (LCD_WIDTH == 112) && (LCD_HEIGHT == 64)
diff --git a/apps/plugins/xobox.c b/apps/plugins/xobox.c
index f51e98ecff..db68e05265 100644
--- a/apps/plugins/xobox.c
+++ b/apps/plugins/xobox.c
@@ -112,6 +112,15 @@ PLUGIN_HEADER
#define UP BUTTON_UP
#define PAUSE BUTTON_MENU
+#elif (CONFIG_KEYPAD == GIGABEAT_S_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
+
#else
#error Unsupported keypad
#endif