summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorTomasz Moń <desowin@gmail.com>2011-11-16 14:08:01 +0000
committerTomasz Moń <desowin@gmail.com>2011-11-16 14:08:01 +0000
commite8a8a1be43afe63079ae48ce1a9eb3052df3b1a4 (patch)
tree084e1cdf27a339ce58e24cff8fec8c31432b52db /apps
parent992d4eb775cac48e107e18d72783ebfb39c4234f (diff)
downloadrockbox-e8a8a1be43afe63079ae48ce1a9eb3052df3b1a4.tar.gz
rockbox-e8a8a1be43afe63079ae48ce1a9eb3052df3b1a4.tar.bz2
rockbox-e8a8a1be43afe63079ae48ce1a9eb3052df3b1a4.zip
Sandisk Sansa Connect port (FS #12363)
Included are drivers for buttons, backlight, lcd, audio and storage. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31000 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/SOURCES2
-rw-r--r--apps/keymaps/keymap-sansa-connect.c93
-rw-r--r--apps/plugins/battery_bench.c6
-rw-r--r--apps/plugins/blackjack.c6
-rw-r--r--apps/plugins/bounce.c3
-rw-r--r--apps/plugins/brickmania.c3
-rw-r--r--apps/plugins/calculator.c13
-rw-r--r--apps/plugins/calendar.c10
-rw-r--r--apps/plugins/chessbox/chessbox_pgn.h16
-rw-r--r--apps/plugins/chessclock.c10
-rw-r--r--apps/plugins/chip8.c13
-rw-r--r--apps/plugins/chopper.c3
-rw-r--r--apps/plugins/clix.c3
-rw-r--r--apps/plugins/cube.c10
-rw-r--r--apps/plugins/doom/i_video.c10
-rw-r--r--apps/plugins/fft/fft.c9
-rw-r--r--apps/plugins/fireworks.c3
-rw-r--r--apps/plugins/flipit.c18
-rw-r--r--apps/plugins/fractals/fractal.h12
-rw-r--r--apps/plugins/goban/goban.h13
-rw-r--r--apps/plugins/imageviewer/imageviewer_button.h15
-rw-r--r--apps/plugins/invadrox.c3
-rw-r--r--apps/plugins/jewels.c3
-rw-r--r--apps/plugins/lamp.c3
-rw-r--r--apps/plugins/lib/pluginlib_actions.c6
-rw-r--r--apps/plugins/logo.c3
-rw-r--r--apps/plugins/matrix.c3
-rw-r--r--apps/plugins/midi/midiplay.c8
-rw-r--r--apps/plugins/minesweeper.c14
-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/pacbox/pacbox.h11
-rw-r--r--apps/plugins/pegbox.c19
-rw-r--r--apps/plugins/plugin.lds2
-rw-r--r--apps/plugins/pong.c3
-rw-r--r--apps/plugins/reversi/reversi-gui.h3
-rw-r--r--apps/plugins/rockblox.c10
-rw-r--r--apps/plugins/rockblox1d.c3
-rw-r--r--apps/plugins/rockboy/rockboy.c12
-rw-r--r--apps/plugins/rockpaint.c11
-rw-r--r--apps/plugins/sliding_puzzle.c9
-rw-r--r--apps/plugins/snake.c3
-rw-r--r--apps/plugins/snake2.c3
-rw-r--r--apps/plugins/snow.c3
-rw-r--r--apps/plugins/sokoban.c22
-rw-r--r--apps/plugins/solitaire.c18
-rw-r--r--apps/plugins/spacerocks.c10
-rw-r--r--apps/plugins/star.c17
-rw-r--r--apps/plugins/starfield.c3
-rw-r--r--apps/plugins/stats.c3
-rw-r--r--apps/plugins/stopwatch.c8
-rw-r--r--apps/plugins/sudoku/sudoku.h11
-rw-r--r--apps/plugins/superdom.c8
-rw-r--r--apps/plugins/text_viewer/tv_button.h12
-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.h3
-rw-r--r--apps/plugins/zxbox/zxbox_keyb.c3
62 files changed, 568 insertions, 25 deletions
diff --git a/apps/SOURCES b/apps/SOURCES
index 7ef81a10ee..34dc202345 100644
--- a/apps/SOURCES
+++ b/apps/SOURCES
@@ -330,5 +330,7 @@ keymaps/keymap-rk27xx-generic.c
keymaps/keymap-hm60x.c
#elif CONFIG_KEYPAD == HM801_PAD
keymaps/keymap-hm801.c
+#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
+keymaps/keymap-sansa-connect.c
#endif
diff --git a/apps/keymaps/keymap-sansa-connect.c b/apps/keymaps/keymap-sansa-connect.c
new file mode 100644
index 0000000000..6f8a58496b
--- /dev/null
+++ b/apps/keymaps/keymap-sansa-connect.c
@@ -0,0 +1,93 @@
+/***************************************************************************
+ * __________ __ ___.
+ * Open \______ \ ____ ____ | | _\_ |__ _______ ___
+ * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
+ * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
+ * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
+ * \/ \/ \/ \/ \/
+ * $Id: $
+ *
+ * Copyright (C) 2011 by Tomasz Moń
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ****************************************************************************/
+
+/* Button Code Definitions for Sandisk Sansa Connect target */
+
+#include "config.h"
+#include "action.h"
+#include "button.h"
+
+/*
+ * The format of the list is as follows
+ * { Action Code, Button code, Prereq button code }
+ * if there's no need to check the previous button's value, use BUTTON_NONE
+ * Insert LAST_ITEM_IN_LIST at the end of each mapping
+ */
+static const struct button_mapping button_context_standard[] = {
+ {ACTION_STD_PREV, BUTTON_SCROLL_BACK, BUTTON_NONE},
+ {ACTION_STD_PREVREPEAT, BUTTON_SCROLL_BACK|BUTTON_REPEAT, BUTTON_NONE},
+ {ACTION_STD_NEXT, BUTTON_SCROLL_FWD, BUTTON_NONE},
+ {ACTION_STD_NEXTREPEAT, BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE},
+ {ACTION_STD_OK, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT},
+ {ACTION_STD_OK, BUTTON_RIGHT, BUTTON_NONE},
+ {ACTION_STD_CANCEL, BUTTON_LEFT, BUTTON_NONE},
+ {ACTION_STD_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE},
+ {ACTION_STD_MENU, BUTTON_DOWN|BUTTON_REL, BUTTON_DOWN},
+ {ACTION_STD_QUICKSCREEN,BUTTON_DOWN|BUTTON_REL, BUTTON_DOWN},
+ {ACTION_STD_HOTKEY, BUTTON_UP|BUTTON_REL, BUTTON_UP},
+ LAST_ITEM_IN_LIST
+}; /* button_context_standard */
+
+static const struct button_mapping button_context_wps[] = {
+ {ACTION_WPS_PLAY, BUTTON_DOWN|BUTTON_REL, BUTTON_DOWN},
+ {ACTION_WPS_SEEKBACK, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE},
+ {ACTION_WPS_SEEKFWD, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
+ {ACTION_WPS_STOPSEEK, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT|BUTTON_REPEAT},
+ {ACTION_WPS_SKIPNEXT, BUTTON_NEXT, BUTTON_NONE},
+ {ACTION_WPS_SKIPPREV, BUTTON_PREV, BUTTON_NONE},
+ {ACTION_WPS_STOP, BUTTON_POWER, BUTTON_NONE},
+ {ACTION_WPS_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE},
+ {ACTION_WPS_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE},
+ {ACTION_WPS_VOLUP, BUTTON_VOL_UP, BUTTON_NONE},
+ {ACTION_WPS_VOLUP, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE},
+ {ACTION_WPS_BROWSE, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT},
+ {ACTION_WPS_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT},
+ {ACTION_WPS_MENU, BUTTON_DOWN|BUTTON_REL, BUTTON_DOWN},
+ {ACTION_WPS_ABSETA_PREVDIR, BUTTON_POWER|BUTTON_RIGHT, BUTTON_POWER},
+ {ACTION_WPS_ABSETB_NEXTDIR, BUTTON_POWER|BUTTON_LEFT, BUTTON_POWER},
+ {ACTION_WPS_ABRESET, BUTTON_POWER|BUTTON_UP, BUTTON_POWER},
+ {ACTION_WPS_HOTKEY, BUTTON_UP|BUTTON_REL, BUTTON_UP},
+ LAST_ITEM_IN_LIST
+}; /* button_context_wps */
+
+
+
+/* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */
+const struct button_mapping* get_context_mapping(int context)
+{
+ switch (context)
+ {
+ case CONTEXT_STD:
+ return button_context_standard;
+ case CONTEXT_WPS:
+ return button_context_wps;
+
+ case CONTEXT_TREE:
+ case CONTEXT_LIST:
+ case CONTEXT_MAINMENU:
+
+ case CONTEXT_SETTINGS:
+ case CONTEXT_SETTINGS|CONTEXT_REMOTE:
+ default:
+ return button_context_standard;
+ }
+ return button_context_standard;
+}
diff --git a/apps/plugins/battery_bench.c b/apps/plugins/battery_bench.c
index 1adc30278a..b88c4dc46a 100644
--- a/apps/plugins/battery_bench.c
+++ b/apps/plugins/battery_bench.c
@@ -235,6 +235,12 @@
#define BATTERY_ON_TXT "PLAYPAUSE - start"
#define BATTERY_OFF_TXT "POWER"
+#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
+#define BATTERY_ON BUTTON_SELECT
+#define BATTERY_OFF BUTTON_POWER
+#define BATTERY_ON_TXT "SELECT - start"
+#define BATTERY_OFF_TXT "POWER"
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/blackjack.c b/apps/plugins/blackjack.c
index 578136802c..0c35306cfc 100644
--- a/apps/plugins/blackjack.c
+++ b/apps/plugins/blackjack.c
@@ -166,7 +166,8 @@ enum {
#define BJACK_RIGHT BUTTON_RIGHT
#define BJACK_LEFT BUTTON_LEFT
-#elif CONFIG_KEYPAD == SANSA_E200_PAD
+#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
+ (CONFIG_KEYPAD == SANSA_CONNECT_PAD)
#define BJACK_SELECT_NAME "SELECT"
#define BJACK_STAY_NAME "RIGHT"
#define BJACK_QUIT_NAME "POWER"
@@ -1032,7 +1033,8 @@ static signed int blackjack_get_amount(char message[20], signed int lower_limit,
(CONFIG_KEYPAD == IPOD_3G_PAD) || \
(CONFIG_KEYPAD == IPOD_1G2G_PAD) || \
(CONFIG_KEYPAD == SANSA_E200_PAD) || \
- (CONFIG_KEYPAD == SANSA_FUZE_PAD)
+ (CONFIG_KEYPAD == SANSA_FUZE_PAD) || \
+ (CONFIG_KEYPAD == SANSA_CONNECT_PAD)
rb->lcd_putsxy(LCD_WIDTH/2 - 9*w, LCD_HEIGHT/2 - h-2, " >>|: +1");
rb->lcd_putsxy(LCD_WIDTH/2 - 9*w, LCD_HEIGHT/2 - 1, " |<<: -1");
rb->lcd_putsxy(LCD_WIDTH/2 - 9*w, LCD_HEIGHT/2 + h, "SCROLL+: +10");
diff --git a/apps/plugins/bounce.c b/apps/plugins/bounce.c
index c3a0dc9657..6880e269e2 100644
--- a/apps/plugins/bounce.c
+++ b/apps/plugins/bounce.c
@@ -110,7 +110,8 @@
#elif CONFIG_KEYPAD == SANSA_C200_PAD || \
CONFIG_KEYPAD == SANSA_CLIP_PAD || \
- CONFIG_KEYPAD == SANSA_M200_PAD
+ CONFIG_KEYPAD == SANSA_M200_PAD || \
+ CONFIG_KEYPAD == SANSA_CONNECT_PAD
#define BOUNCE_LEFT BUTTON_LEFT
#define BOUNCE_RIGHT BUTTON_RIGHT
#define BOUNCE_UP BUTTON_UP
diff --git a/apps/plugins/brickmania.c b/apps/plugins/brickmania.c
index 993a3c488b..c362ffe702 100644
--- a/apps/plugins/brickmania.c
+++ b/apps/plugins/brickmania.c
@@ -139,7 +139,8 @@
#elif CONFIG_KEYPAD == SANSA_C200_PAD || \
CONFIG_KEYPAD == SANSA_CLIP_PAD || \
-CONFIG_KEYPAD == SANSA_M200_PAD
+CONFIG_KEYPAD == SANSA_M200_PAD || \
+CONFIG_KEYPAD == SANSA_CONNECT_PAD
#define QUIT BUTTON_POWER
#define LEFT BUTTON_LEFT
#define RIGHT BUTTON_RIGHT
diff --git a/apps/plugins/calculator.c b/apps/plugins/calculator.c
index 994b066e7b..8288f34c28 100644
--- a/apps/plugins/calculator.c
+++ b/apps/plugins/calculator.c
@@ -418,6 +418,19 @@ F3: equal to "="
#define CALCULATOR_CALC BUTTON_PLAYPAUSE
#define CALCULATOR_CLEAR BUTTON_BACK
+#elif (CONFIG_KEYPAD == SANSA_CONNECT_PAD)
+#define CALCULATOR_LEFT BUTTON_LEFT
+#define CALCULATOR_RIGHT BUTTON_RIGHT
+#define CALCULATOR_UP BUTTON_UP
+#define CALCULATOR_DOWN BUTTON_DOWN
+#define CALCULATOR_UP_W_SHIFT BUTTON_SCROLL_BACK
+#define CALCULATOR_DOWN_W_SHIFT BUTTON_SCROLL_FWD
+#define CALCULATOR_QUIT BUTTON_POWER
+#define CALCULATOR_INPUT_CALC_PRE BUTTON_SELECT
+#define CALCULATOR_INPUT (BUTTON_SELECT|BUTTON_REL)
+#define CALCULATOR_CALC BUTTON_NEXT
+#define CALCULATOR_CLEAR BUTTON_PREV
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/calendar.c b/apps/plugins/calendar.c
index 0a94dfcffc..d8d8f1ad12 100644
--- a/apps/plugins/calendar.c
+++ b/apps/plugins/calendar.c
@@ -298,6 +298,16 @@
#define CALENDAR_NEXT_MONTH BUTTON_PLAYPAUSE
#define CALENDAR_PREV_MONTH BUTTON_BACK
+#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
+#define CALENDAR_QUIT BUTTON_POWER
+#define CALENDAR_SELECT BUTTON_SELECT
+#define CALENDAR_NEXT_WEEK BUTTON_RIGHT
+#define CALENDAR_PREV_WEEK BUTTON_LEFT
+#define CALENDAR_NEXT_DAY BUTTON_UP
+#define CALENDAR_PREV_DAY BUTTON_DOWN
+#define CALENDAR_NEXT_MONTH BUTTON_NEXT
+#define CALENDAR_PREV_MONTH BUTTON_PREV
+
#else
#error "No keypad setting."
#endif
diff --git a/apps/plugins/chessbox/chessbox_pgn.h b/apps/plugins/chessbox/chessbox_pgn.h
index 9f25eb97aa..1627426cef 100644
--- a/apps/plugins/chessbox/chessbox_pgn.h
+++ b/apps/plugins/chessbox/chessbox_pgn.h
@@ -406,6 +406,22 @@
#define CB_LEVEL BUTTON_BACK
#define CB_MENU (BUTTON_PLAYPAUSE | BUTTON_REPEAT)
+#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
+#define CB_SELECT BUTTON_SELECT
+#define CB_UP BUTTON_UP
+#define CB_DOWN BUTTON_DOWN
+#define CB_LEFT BUTTON_LEFT
+#define CB_RIGHT BUTTON_RIGHT
+#define CB_PLAY BUTTON_NEXT
+#define CB_LEVEL BUTTON_VOL_DOWN
+#define CB_RESTART BUTTON_PREV
+#define CB_MENU BUTTON_POWER
+
+#define CB_SCROLL_UP (BUTTON_SCROLL_UP|BUTTON_REPEAT)
+#define CB_SCROLL_DOWN (BUTTON_SCROLL_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 b05e849e83..dca5c4040e 100644
--- a/apps/plugins/chessclock.c
+++ b/apps/plugins/chessclock.c
@@ -316,6 +316,16 @@
#define CHC_SETTINGS_OK BUTTON_SELECT
#define CHC_SETTINGS_CANCEL BUTTON_BACK
+#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
+#define CHC_QUIT BUTTON_POWER
+#define CHC_STARTSTOP BUTTON_NEXT
+#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_LEFT
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/chip8.c b/apps/plugins/chip8.c
index 71024b27a2..97d8351fe9 100644
--- a/apps/plugins/chip8.c
+++ b/apps/plugins/chip8.c
@@ -1180,6 +1180,19 @@ CONFIG_KEYPAD == MROBE500_PAD
#define CHIP8_KEY8 BUTTON_VOL_DOWN
#define CHIP8_KEY9 BUTTON_VOL_UP
+#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
+
+#define CHIP8_OFF BUTTON_POWER
+#define CHIP8_KEY1 BUTTON_LEFT
+#define CHIP8_KEY2 BUTTON_UP
+#define CHIP8_KEY3 BUTTON_RIGHT
+#define CHIP8_KEY4 BUTTON_DOWN
+#define CHIP8_KEY5 BUTTON_NEXT
+#define CHIP8_KEY6 BUTTON_PREV
+#define CHIP8_KEY7 BUTTON_SELECT
+#define CHIP8_KEY8 BUTTON_VOL_DOWN
+#define CHIP8_KEY9 BUTTON_VOL_UP
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/chopper.c b/apps/plugins/chopper.c
index ef1f8aacf3..71ea8f835f 100644
--- a/apps/plugins/chopper.c
+++ b/apps/plugins/chopper.c
@@ -70,7 +70,8 @@ Still To do:
#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
(CONFIG_KEYPAD == SANSA_C200_PAD) || \
(CONFIG_KEYPAD == SANSA_CLIP_PAD) || \
- (CONFIG_KEYPAD == SANSA_M200_PAD)
+ (CONFIG_KEYPAD == SANSA_M200_PAD) || \
+ (CONFIG_KEYPAD == SANSA_CONNECT_PAD)
#define QUIT BUTTON_POWER
#define ACTION BUTTON_SELECT
#define ACTIONTEXT "SELECT"
diff --git a/apps/plugins/clix.c b/apps/plugins/clix.c
index 14a758f1a6..378e9813e6 100644
--- a/apps/plugins/clix.c
+++ b/apps/plugins/clix.c
@@ -24,7 +24,8 @@
-#if (CONFIG_KEYPAD == SANSA_E200_PAD)
+#if (CONFIG_KEYPAD == SANSA_E200_PAD) || \
+ (CONFIG_KEYPAD == SANSA_CONNECT_PAD)
#define CLIX_BUTTON_QUIT BUTTON_POWER
#define CLIX_BUTTON_UP BUTTON_UP
#define CLIX_BUTTON_DOWN BUTTON_DOWN
diff --git a/apps/plugins/cube.c b/apps/plugins/cube.c
index 5f4a0f6a69..7e97eaf569 100644
--- a/apps/plugins/cube.c
+++ b/apps/plugins/cube.c
@@ -319,6 +319,16 @@
#define CUBE_PAUSE BUTTON_PLAYPAUSE
#define CUBE_HIGHSPEED BUTTON_BACK
+#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
+#define CUBE_QUIT BUTTON_POWER
+#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_SELECT
+#define CUBE_PAUSE BUTTON_DOWN
+#define CUBE_HIGHSPEED BUTTON_LEFT
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/doom/i_video.c b/apps/plugins/doom/i_video.c
index 473ce49f8c..d12799cac4 100644
--- a/apps/plugins/doom/i_video.c
+++ b/apps/plugins/doom/i_video.c
@@ -413,6 +413,16 @@ void I_ShutdownGraphics(void)
#define DOOMBUTTON_ESC BUTTON_BACK
#define DOOMBUTTON_ENTER (BUTTON_PLAYPAUSE|BUTTON_REPEAT)
#define DOOMBUTTON_WEAPON (BUTTON_SELECT|BUTTON_REPEAT)
+#elif CONFIG_KEYPAD == SANSA_CONNECT_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_SELECT
+#define DOOMBUTTON_OPEN BUTTON_VOL_DOWN
+#define DOOMBUTTON_ESC BUTTON_VOL_UP
+#define DOOMBUTTON_ENTER BUTTON_NEXT
+#define DOOMBUTTON_WEAPON BUTTON_PREV
#else
#error Keymap not defined!
diff --git a/apps/plugins/fft/fft.c b/apps/plugins/fft/fft.c
index fa08848f03..11bdfc8e74 100644
--- a/apps/plugins/fft/fft.c
+++ b/apps/plugins/fft/fft.c
@@ -248,6 +248,15 @@ GREY_INFO_STRUCT
# define FFT_AMP_SCALE BUTTON_PLAYPAUSE
# define FFT_QUIT BUTTON_POWER
+#elif (CONFIG_KEYPAD == SANSA_CONNECT_PAD)
+# define FFT_PREV_GRAPH BUTTON_LEFT
+# define FFT_NEXT_GRAPH BUTTON_RIGHT
+# define FFT_ORIENTATION BUTTON_SELECT
+# define FFT_WINDOW BUTTON_VOL_DOWN
+# define FFT_AMP_SCALE BUTTON_UP
+# define FFT_FREQ_SCALE BUTTON_DOWN
+# define FFT_QUIT BUTTON_POWER
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/fireworks.c b/apps/plugins/fireworks.c
index 69c7be0bc4..e3a391035a 100644
--- a/apps/plugins/fireworks.c
+++ b/apps/plugins/fireworks.c
@@ -68,7 +68,8 @@
#define BTN_FIRE BUTTON_SELECT
#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
- (CONFIG_KEYPAD == SANSA_C200_PAD)
+ (CONFIG_KEYPAD == SANSA_C200_PAD) || \
+ (CONFIG_KEYPAD == SANSA_CONNECT_PAD)
#define BTN_MENU BUTTON_POWER
#define BTN_FIRE BUTTON_SELECT
diff --git a/apps/plugins/flipit.c b/apps/plugins/flipit.c
index 70d35ec100..ffc691c720 100644
--- a/apps/plugins/flipit.c
+++ b/apps/plugins/flipit.c
@@ -368,6 +368,18 @@
#define FLIPIT_STEP_BY_STEP (BUTTON_BACK|BUTTON_PLAYPAUSE)
#define FLIPIT_TOGGLE BUTTON_SELECT
+#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
+
+#define FLIPIT_LEFT BUTTON_LEFT
+#define FLIPIT_RIGHT BUTTON_RIGHT
+#define FLIPIT_UP BUTTON_UP
+#define FLIPIT_DOWN BUTTON_DOWN
+#define FLIPIT_QUIT BUTTON_POWER
+#define FLIPIT_SHUFFLE BUTTON_VOL_UP
+#define FLIPIT_SOLVE BUTTON_PREV
+#define FLIPIT_STEP_BY_STEP BUTTON_NEXT
+#define FLIPIT_TOGGLE BUTTON_SELECT
+
#else
#error No keymap defined!
#endif
@@ -838,6 +850,12 @@ enum plugin_status plugin_start(const void* parameter)
rb->lcd_putsxy(2, 28, "[MODE] shuffle");
rb->lcd_putsxy(2, 38, "[MENU..] solution");
rb->lcd_putsxy(2, 48, "[MENU] step by step");
+#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
+ rb->lcd_putsxy(2, 8, "[POWER] to stop");
+ rb->lcd_putsxy(2, 18, "[SELECT] toggle");
+ rb->lcd_putsxy(2, 28, "[VOL+] shuffle");
+ rb->lcd_putsxy(2, 38, "[PREV] solution");
+ rb->lcd_putsxy(2, 48, "[NEXT] step by step");
#endif
#ifdef HAVE_TOUCHSCREEN
diff --git a/apps/plugins/fractals/fractal.h b/apps/plugins/fractals/fractal.h
index b0fa93752c..76f3229399 100644
--- a/apps/plugins/fractals/fractal.h
+++ b/apps/plugins/fractals/fractal.h
@@ -366,6 +366,18 @@
#define FRACTAL_PRECISION_DEC (BUTTON_PLAYPAUSE|BUTTON_RIGHT)
#define FRACTAL_RESET BUTTON_BACK
+#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
+#define FRACTAL_QUIT BUTTON_POWER
+#define FRACTAL_UP BUTTON_UP
+#define FRACTAL_DOWN BUTTON_DOWN
+#define FRACTAL_LEFT BUTTON_LEFT
+#define FRACTAL_RIGHT BUTTON_RIGHT
+#define FRACTAL_ZOOM_IN BUTTON_SCROLL_FWD
+#define FRACTAL_ZOOM_OUT BUTTON_SCROLL_BACK
+#define FRACTAL_PRECISION_INC BUTTON_VOL_UP
+#define FRACTAL_PRECISION_DEC BUTTON_VOL_DOWN
+#define FRACTAL_RESET BUTTON_PREV
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/goban/goban.h b/apps/plugins/goban/goban.h
index 1931311d2d..d03bc82474 100644
--- a/apps/plugins/goban/goban.h
+++ b/apps/plugins/goban/goban.h
@@ -138,6 +138,19 @@
#define GBN_BUTTON_CONTEXT BUTTON_SELECT | BUTTON_REPEAT
/* No next var */
+#elif (CONFIG_KEYPAD == SANSA_CONNECT_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_RETREAT BUTTON_VOL_DOWN
+#define GBN_BUTTON_ADVANCE BUTTON_VOL_UP
+#define GBN_BUTTON_MENU BUTTON_POWER
+#define GBN_BUTTON_PLAY BUTTON_SELECT | BUTTON_REL
+#define GBN_BUTTON_CONTEXT BUTTON_SELECT | BUTTON_REPEAT
+#define GBN_BUTTON_NEXT_VAR BUTTON_NEXT
+
+
#elif (CONFIG_KEYPAD == CREATIVEZVM_PAD) \
|| (CONFIG_KEYPAD == CREATIVEZV_PAD)
#define GBN_BUTTON_UP BUTTON_UP
diff --git a/apps/plugins/imageviewer/imageviewer_button.h b/apps/plugins/imageviewer/imageviewer_button.h
index 198b35c14c..9f345d83f3 100644
--- a/apps/plugins/imageviewer/imageviewer_button.h
+++ b/apps/plugins/imageviewer/imageviewer_button.h
@@ -364,6 +364,21 @@
#define IMGVIEW_MENU BUTTON_SELECT
#define IMGVIEW_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
+#define IMGVIEW_ZOOM_PRE BUTTON_SELECT
+#define IMGVIEW_ZOOM_IN BUTTON_VOL_UP
+#define IMGVIEW_ZOOM_OUT BUTTON_VOL_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_SCROLL_FWD
+#define IMGVIEW_NEXT_REPEAT (BUTTON_SCROLL_FWD|BUTTON_REPEAT)
+#define IMGVIEW_PREVIOUS BUTTON_SCROLL_BACK
+#define IMGVIEW_PREVIOUS_REPEAT (BUTTON_SCROLL_BACK|BUTTON_REPEAT)
+#define IMGVIEW_MENU BUTTON_POWER
+#define IMGVIEW_SLIDE_SHOW BUTTON_NEXT
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/invadrox.c b/apps/plugins/invadrox.c
index 94d079f2b4..96e04a976f 100644
--- a/apps/plugins/invadrox.c
+++ b/apps/plugins/invadrox.c
@@ -129,7 +129,8 @@
#define RIGHT BUTTON_RIGHT
#define FIRE BUTTON_SELECT
-#elif CONFIG_KEYPAD == SANSA_E200_PAD
+#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
+ (CONFIG_KEYPAD == SANSA_CONNECT_PAD)
#define QUIT BUTTON_POWER
#define LEFT BUTTON_LEFT
diff --git a/apps/plugins/jewels.c b/apps/plugins/jewels.c
index ae6105bcb0..4d5a5b6ce9 100644
--- a/apps/plugins/jewels.c
+++ b/apps/plugins/jewels.c
@@ -123,7 +123,8 @@
#define HK_SELECT "SELECT"
#define HK_CANCEL "POWER"
-#elif CONFIG_KEYPAD == SANSA_E200_PAD
+#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
+ (CONFIG_KEYPAD == SANSA_CONNECT_PAD)
#define JEWELS_SCROLLWHEEL
#define JEWELS_UP BUTTON_UP
#define JEWELS_DOWN BUTTON_DOWN
diff --git a/apps/plugins/lamp.c b/apps/plugins/lamp.c
index 7389811a59..d9ad70b946 100644
--- a/apps/plugins/lamp.c
+++ b/apps/plugins/lamp.c
@@ -64,7 +64,8 @@
# define LAMP_DOWN BUTTON_DOWN
#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
- (CONFIG_KEYPAD == SANSA_FUZE_PAD)
+ (CONFIG_KEYPAD == SANSA_FUZE_PAD) || \
+ (CONFIG_KEYPAD == SANSA_CONNECT_PAD)
# define LAMP_LEFT BUTTON_LEFT
# define LAMP_RIGHT BUTTON_RIGHT
# define LAMP_UP BUTTON_SCROLL_FWD
diff --git a/apps/plugins/lib/pluginlib_actions.c b/apps/plugins/lib/pluginlib_actions.c
index 4b0f3a6945..0a2f12da50 100644
--- a/apps/plugins/lib/pluginlib_actions.c
+++ b/apps/plugins/lib/pluginlib_actions.c
@@ -115,7 +115,8 @@ const struct button_mapping pla_main_ctx[] =
|| (CONFIG_KEYPAD == SANSA_E200_PAD) \
|| (CONFIG_KEYPAD == SANSA_FUZE_PAD) \
|| (CONFIG_KEYPAD == SAMSUNG_YH_PAD) \
- || (CONFIG_KEYPAD == SANSA_FUZEPLUS_PAD))
+ || (CONFIG_KEYPAD == SANSA_FUZEPLUS_PAD) \
+ || (CONFIG_KEYPAD == SANSA_CONNECT_PAD))
{ PLA_UP, BUTTON_UP, BUTTON_NONE },
{ PLA_DOWN, BUTTON_DOWN, BUTTON_NONE },
{ PLA_LEFT, BUTTON_LEFT, BUTTON_NONE },
@@ -270,7 +271,8 @@ const struct button_mapping pla_main_ctx[] =
|| CONFIG_KEYPAD == SANSA_CLIP_PAD \
|| CONFIG_KEYPAD == SANSA_M200_PAD \
|| CONFIG_KEYPAD == MROBE100_PAD \
- || CONFIG_KEYPAD == PHILIPS_HDD1630_PAD)
+ || CONFIG_KEYPAD == PHILIPS_HDD1630_PAD \
+ || CONFIG_KEYPAD == SANSA_CONNECT_PAD)
{PLA_CANCEL, BUTTON_POWER|BUTTON_REL, BUTTON_POWER},
{PLA_EXIT, BUTTON_POWER|BUTTON_REPEAT, BUTTON_NONE},
{PLA_SELECT, BUTTON_SELECT, BUTTON_NONE},
diff --git a/apps/plugins/logo.c b/apps/plugins/logo.c
index dc0db8e95a..d651c2f634 100644
--- a/apps/plugins/logo.c
+++ b/apps/plugins/logo.c
@@ -98,7 +98,8 @@ const unsigned char rockbox16x7[] = {
#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
(CONFIG_KEYPAD == SANSA_C200_PAD) || \
(CONFIG_KEYPAD == SANSA_CLIP_PAD) || \
- (CONFIG_KEYPAD == SANSA_M200_PAD)
+ (CONFIG_KEYPAD == SANSA_M200_PAD) || \
+ (CONFIG_KEYPAD == SANSA_CONNECT_PAD)
#define LP_QUIT BUTTON_POWER
#define LP_DEC_X BUTTON_LEFT
#define LP_INC_X BUTTON_RIGHT
diff --git a/apps/plugins/matrix.c b/apps/plugins/matrix.c
index d1a672cd96..1a1008073c 100644
--- a/apps/plugins/matrix.c
+++ b/apps/plugins/matrix.c
@@ -82,7 +82,8 @@
#define MATRIX_SLEEP_LESS BUTTON_DOWN
#define MATRIX_PAUSE BUTTON_SELECT
-#elif CONFIG_KEYPAD == SANSA_E200_PAD
+#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
+ (CONFIG_KEYPAD == SANSA_CONNECT_PAD)
#define MATRIX_EXIT BUTTON_POWER
#define MATRIX_SLEEP_MORE BUTTON_SCROLL_BACK|BUTTON_REPEAT
#define MATRIX_SLEEP_LESS BUTTON_SCROLL_FWD|BUTTON_REPEAT
diff --git a/apps/plugins/midi/midiplay.c b/apps/plugins/midi/midiplay.c
index 3066502dda..1b5d18465b 100644
--- a/apps/plugins/midi/midiplay.c
+++ b/apps/plugins/midi/midiplay.c
@@ -225,6 +225,14 @@
#define BTN_DOWN BUTTON_DOWN
#define BTN_PLAY BUTTON_PLAYPAUSE
+#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
+#define BTN_QUIT BUTTON_POWER
+#define BTN_RIGHT BUTTON_RIGHT
+#define BTN_LEFT BUTTON_LEFT
+#define BTN_UP BUTTON_UP
+#define BTN_DOWN BUTTON_DOWN
+#define BTN_PLAY BUTTON_SELECT
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/minesweeper.c b/apps/plugins/minesweeper.c
index d8313fb741..ad67b1dd67 100644
--- a/apps/plugins/minesweeper.c
+++ b/apps/plugins/minesweeper.c
@@ -297,6 +297,20 @@ CONFIG_KEYPAD == MROBE500_PAD
# define MINESWP_DISCOVER BUTTON_PLAYPAUSE
# define MINESWP_INFO BUTTON_BACK
+#elif (CONFIG_KEYPAD == SANSA_CONNECT_PAD)
+
+# define MINESWP_SCROLLWHEEL
+# define MINESWP_LEFT BUTTON_LEFT
+# define MINESWP_RIGHT BUTTON_RIGHT
+# define MINESWP_UP BUTTON_UP
+# define MINESWP_DOWN BUTTON_DOWN
+# define MINESWP_QUIT BUTTON_POWER
+# define MINESWP_NEXT BUTTON_SCROLL_FWD
+# define MINESWP_PREV BUTTON_SCROLL_BACK
+# define MINESWP_TOGGLE BUTTON_NEXT
+# define MINESWP_DISCOVER BUTTON_SELECT
+# define MINESWP_INFO BUTTON_PREV
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/mosaique.c b/apps/plugins/mosaique.c
index f0f260fc13..ec41c8c02b 100644
--- a/apps/plugins/mosaique.c
+++ b/apps/plugins/mosaique.c
@@ -188,6 +188,11 @@
#define MOSAIQUE_SPEED BUTTON_PLAYPAUSE
#define MOSAIQUE_RESTART BUTTON_BACK
+#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
+#define MOSAIQUE_QUIT BUTTON_POWER
+#define MOSAIQUE_SPEED BUTTON_SELECT
+#define MOSAIQUE_RESTART BUTTON_DOWN
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/mp3_encoder.c b/apps/plugins/mp3_encoder.c
index ac6a0baf73..a70e316f06 100644
--- a/apps/plugins/mp3_encoder.c
+++ b/apps/plugins/mp3_encoder.c
@@ -2507,6 +2507,12 @@ CONFIG_KEYPAD == MROBE500_PAD
#define MP3ENC_DONE BUTTON_PLAYPAUSE
#define MP3ENC_SELECT BUTTON_SELECT
+#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
+#define MP3ENC_PREV BUTTON_PREV
+#define MP3ENC_NEXT BUTTON_NEXT
+#define MP3ENC_DONE BUTTON_DOWN
+#define MP3ENC_SELECT BUTTON_SELECT
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/mpegplayer/mpeg_settings.c b/apps/plugins/mpegplayer/mpeg_settings.c
index 093d8ec2c0..90b547893e 100644
--- a/apps/plugins/mpegplayer/mpeg_settings.c
+++ b/apps/plugins/mpegplayer/mpeg_settings.c
@@ -240,6 +240,14 @@ struct mpeg_settings settings;
#define MPEG_START_TIME_DOWN BUTTON_DOWN
#define MPEG_START_TIME_EXIT BUTTON_POWER
+#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
+#define MPEG_START_TIME_SELECT BUTTON_SELECT
+#define MPEG_START_TIME_LEFT BUTTON_LEFT
+#define MPEG_START_TIME_RIGHT BUTTON_RIGHT
+#define MPEG_START_TIME_UP BUTTON_UP
+#define MPEG_START_TIME_DOWN BUTTON_DOWN
+#define MPEG_START_TIME_EXIT BUTTON_POWER
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/mpegplayer/mpegplayer.c b/apps/plugins/mpegplayer/mpegplayer.c
index 2491bb1aec..e3d9865e12 100644
--- a/apps/plugins/mpegplayer/mpegplayer.c
+++ b/apps/plugins/mpegplayer/mpegplayer.c
@@ -353,6 +353,15 @@ CONFIG_KEYPAD == SANSA_M200_PAD
#define MPEG_RW BUTTON_LEFT
#define MPEG_FF BUTTON_RIGHT
+#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
+#define MPEG_MENU BUTTON_POWER
+#define MPEG_PAUSE (BUTTON_SELECT | BUTTON_REL)
+#define MPEG_STOP (BUTTON_SELECT | BUTTON_REPEAT)
+#define MPEG_VOLDOWN BUTTON_VOL_DOWN
+#define MPEG_VOLUP BUTTON_VOL_UP
+#define MPEG_RW BUTTON_LEFT
+#define MPEG_FF BUTTON_RIGHT
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/oscilloscope.c b/apps/plugins/oscilloscope.c
index 52cef65d64..4469a92e12 100644
--- a/apps/plugins/oscilloscope.c
+++ b/apps/plugins/oscilloscope.c
@@ -331,6 +331,17 @@
#define OSCILLOSCOPE_VOL_UP BUTTON_VOL_UP
#define OSCILLOSCOPE_VOL_DOWN BUTTON_VOL_DOWN
+#elif (CONFIG_KEYPAD == SANSA_CONNECT_PAD)
+#define OSCILLOSCOPE_QUIT BUTTON_POWER
+#define OSCILLOSCOPE_DRAWMODE BUTTON_SELECT
+#define OSCILLOSCOPE_ADVMODE BUTTON_DOWN
+#define OSCILLOSCOPE_ORIENTATION BUTTON_UP
+#define OSCILLOSCOPE_PAUSE BUTTON_NEXT
+#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
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/pacbox/pacbox.h b/apps/plugins/pacbox/pacbox.h
index d9b8ec7460..3c906ac0aa 100644
--- a/apps/plugins/pacbox/pacbox.h
+++ b/apps/plugins/pacbox/pacbox.h
@@ -254,6 +254,17 @@
#define PACMAN_COIN BUTTON_PLAYPAUSE
#define PACMAN_MENU BUTTON_POWER
+#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
+
+#define PACMAN_UP BUTTON_UP
+#define PACMAN_DOWN BUTTON_DOWN
+#define PACMAN_LEFT BUTTON_LEFT
+#define PACMAN_RIGHT BUTTON_RIGHT
+#define PACMAN_1UP BUTTON_SELECT
+#define PACMAN_2UP BUTTON_NEXT
+#define PACMAN_COIN BUTTON_VOL_DOWN
+#define PACMAN_MENU BUTTON_POWER
+
#else
#error Keymap not defined!
diff --git a/apps/plugins/pegbox.c b/apps/plugins/pegbox.c
index babe653e93..3eb6008f76 100644
--- a/apps/plugins/pegbox.c
+++ b/apps/plugins/pegbox.c
@@ -491,6 +491,25 @@ CONFIG_KEYPAD == MROBE500_PAD
#define LVL_DOWN_TEXT "Vol-"
#define SELECT_TEXT "SELECT"
+#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
+#define PEGBOX_SELECT BUTTON_SELECT
+#define PEGBOX_QUIT BUTTON_POWER
+#define PEGBOX_SAVE BUTTON_VOL_UP
+#define PEGBOX_RESTART BUTTON_VOL_DOWN
+#define PEGBOX_LVL_UP BUTTON_NEXT
+#define PEGBOX_LVL_DOWN BUTTON_PREV
+#define PEGBOX_UP BUTTON_UP
+#define PEGBOX_DOWN BUTTON_DOWN
+#define PEGBOX_RIGHT BUTTON_RIGHT
+#define PEGBOX_LEFT BUTTON_LEFT
+
+#define SAVE_TEXT "Vol+"
+#define QUIT_TEXT "POWER"
+#define RESTART_TEXT "Vol-"
+#define LVL_UP_TEXT "NEXT"
+#define LVL_DOWN_TEXT "PREV"
+#define SELECT_TEXT "SELECT"
+
#else
#error Unsupported keymap!
#endif
diff --git a/apps/plugins/plugin.lds b/apps/plugins/plugin.lds
index 7a20ddd219..1da9065760 100644
--- a/apps/plugins/plugin.lds
+++ b/apps/plugins/plugin.lds
@@ -120,7 +120,7 @@ OUTPUT_FORMAT(elf32-littlemips)
#define IRAMSIZE 0
#elif CONFIG_CPU==DM320
-#define DRAMORIG 0x00900000 + STUBOFFSET
+#define DRAMORIG CONFIG_SDRAM_START + STUBOFFSET
#define IRAM DRAM
/* The bit of IRAM that is available is used in the core */
#define IRAMSIZE 0
diff --git a/apps/plugins/pong.c b/apps/plugins/pong.c
index 37d71155ee..d3875f39e4 100644
--- a/apps/plugins/pong.c
+++ b/apps/plugins/pong.c
@@ -105,7 +105,8 @@
#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
(CONFIG_KEYPAD == SANSA_CLIP_PAD) || \
- (CONFIG_KEYPAD == SANSA_M200_PAD)
+ (CONFIG_KEYPAD == SANSA_M200_PAD) || \
+ (CONFIG_KEYPAD == SANSA_CONNECT_PAD)
#define PONG_QUIT BUTTON_POWER
#define PONG_PAUSE BUTTON_SELECT
#define PONG_LEFT_UP BUTTON_LEFT
diff --git a/apps/plugins/reversi/reversi-gui.h b/apps/plugins/reversi/reversi-gui.h
index baeb343005..a36efe51cb 100644
--- a/apps/plugins/reversi/reversi-gui.h
+++ b/apps/plugins/reversi/reversi-gui.h
@@ -108,7 +108,8 @@
#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
(CONFIG_KEYPAD == SANSA_C200_PAD) || \
(CONFIG_KEYPAD == SANSA_CLIP_PAD) || \
-(CONFIG_KEYPAD == SANSA_M200_PAD)
+(CONFIG_KEYPAD == SANSA_M200_PAD) || \
+(CONFIG_KEYPAD == SANSA_CONNECT_PAD)
#define REVERSI_BUTTON_QUIT BUTTON_POWER
#define REVERSI_BUTTON_UP BUTTON_UP
#define REVERSI_BUTTON_DOWN BUTTON_DOWN
diff --git a/apps/plugins/rockblox.c b/apps/plugins/rockblox.c
index 07e9c16b79..9354d10f5a 100644
--- a/apps/plugins/rockblox.c
+++ b/apps/plugins/rockblox.c
@@ -369,6 +369,16 @@
#define ROCKBLOX_DROP BUTTON_PLAYPAUSE
#define ROCKBLOX_RESTART BUTTON_BACK
+#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
+#define ROCKBLOX_OFF BUTTON_POWER
+#define ROCKBLOX_ROTATE_CW BUTTON_NEXT
+#define ROCKBLOX_ROTATE_CCW BUTTON_PREV
+#define ROCKBLOX_DOWN BUTTON_DOWN
+#define ROCKBLOX_LEFT BUTTON_LEFT
+#define ROCKBLOX_RIGHT BUTTON_RIGHT
+#define ROCKBLOX_DROP BUTTON_SELECT
+#define ROCKBLOX_RESTART BUTTON_VOL_DOWN
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/rockblox1d.c b/apps/plugins/rockblox1d.c
index 073bc30f06..49219c2eba 100644
--- a/apps/plugins/rockblox1d.c
+++ b/apps/plugins/rockblox1d.c
@@ -56,7 +56,8 @@
#elif CONFIG_KEYPAD == SANSA_E200_PAD || \
CONFIG_KEYPAD == SANSA_C200_PAD || \
CONFIG_KEYPAD == SANSA_CLIP_PAD || \
- CONFIG_KEYPAD == SANSA_M200_PAD
+ CONFIG_KEYPAD == SANSA_M200_PAD || \
+ CONFIG_KEYPAD == SANSA_CONNECT_PAD
#define ONEDROCKBLOX_DOWN BUTTON_SELECT
#define ONEDROCKBLOX_QUIT BUTTON_POWER
diff --git a/apps/plugins/rockboy/rockboy.c b/apps/plugins/rockboy/rockboy.c
index f3ca002e5d..37f0566b21 100644
--- a/apps/plugins/rockboy/rockboy.c
+++ b/apps/plugins/rockboy/rockboy.c
@@ -330,6 +330,18 @@ static void setoptions (void)
options.SELECT = (BUTTON_PLAYPAUSE | BUTTON_REPEAT);
options.MENU = (BUTTON_SELECT | BUTTON_REPEAT);
+#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
+ options.UP = BUTTON_UP;
+ options.DOWN = BUTTON_DOWN;
+ options.LEFT = BUTTON_LEFT;
+ options.RIGHT = BUTTON_RIGHT;
+
+ options.A = BUTTON_VOL_UP;
+ options.B = BUTTON_VOL_DOWN;
+ options.START = BUTTON_PREV;
+ options.SELECT = BUTTON_NEXT;
+ options.MENU = BUTTON_SELECT;
+
#else
#error No Keymap Defined!
#endif
diff --git a/apps/plugins/rockpaint.c b/apps/plugins/rockpaint.c
index 9ec289fce4..7f16bf2763 100644
--- a/apps/plugins/rockpaint.c
+++ b/apps/plugins/rockpaint.c
@@ -232,6 +232,17 @@
#define ROCKPAINT_LEFT BUTTON_LEFT
#define ROCKPAINT_RIGHT BUTTON_RIGHT
+#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
+#define ROCKPAINT_QUIT BUTTON_POWER
+#define ROCKPAINT_DRAW BUTTON_SELECT
+#define ROCKPAINT_MENU BUTTON_VOL_DOWN
+#define ROCKPAINT_TOOLBAR BUTTON_PREV
+#define ROCKPAINT_TOOLBAR2 BUTTON_NEXT
+#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 1d857c0198..653099a547 100644
--- a/apps/plugins/sliding_puzzle.c
+++ b/apps/plugins/sliding_puzzle.c
@@ -254,6 +254,15 @@ CONFIG_KEYPAD == MROBE500_PAD
#define PUZZLE_SHUFFLE BUTTON_PLAYPAUSE
#define PUZZLE_PICTURE BUTTON_SELECT
+#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
+#define PUZZLE_QUIT BUTTON_POWER
+#define PUZZLE_LEFT BUTTON_LEFT
+#define PUZZLE_RIGHT BUTTON_RIGHT
+#define PUZZLE_UP BUTTON_UP
+#define PUZZLE_DOWN BUTTON_DOWN
+#define PUZZLE_SHUFFLE BUTTON_VOL_DOWN
+#define PUZZLE_PICTURE BUTTON_SELECT
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/snake.c b/apps/plugins/snake.c
index 2223887f94..09e72a5fff 100644
--- a/apps/plugins/snake.c
+++ b/apps/plugins/snake.c
@@ -105,7 +105,8 @@ dir is the current direction of the snake - 0=up, 1=right, 2=down, 3=left;
#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
(CONFIG_KEYPAD == SANSA_C200_PAD) || \
(CONFIG_KEYPAD == SANSA_CLIP_PAD) || \
- (CONFIG_KEYPAD == SANSA_M200_PAD)
+ (CONFIG_KEYPAD == SANSA_M200_PAD) || \
+ (CONFIG_KEYPAD == SANSA_CONNECT_PAD)
#define SNAKE_QUIT BUTTON_POWER
#define SNAKE_LEFT BUTTON_LEFT
#define SNAKE_RIGHT BUTTON_RIGHT
diff --git a/apps/plugins/snake2.c b/apps/plugins/snake2.c
index c23772ab1c..0e7b499271 100644
--- a/apps/plugins/snake2.c
+++ b/apps/plugins/snake2.c
@@ -200,7 +200,8 @@ Head and Tail are stored
#define SNAKE2_PLAYPAUSE_TEXT "Select"
#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
-(CONFIG_KEYPAD == SANSA_C200_PAD)
+(CONFIG_KEYPAD == SANSA_C200_PAD) || \
+(CONFIG_KEYPAD == SANSA_CONNECT_PAD)
#define SNAKE2_LEFT BUTTON_LEFT
#define SNAKE2_RIGHT BUTTON_RIGHT
#define SNAKE2_UP BUTTON_UP
diff --git a/apps/plugins/snow.c b/apps/plugins/snow.c
index 2a3ba17fcc..8a2de39707 100644
--- a/apps/plugins/snow.c
+++ b/apps/plugins/snow.c
@@ -59,7 +59,8 @@
(CONFIG_KEYPAD == ONDAVX747_PAD) || \
(CONFIG_KEYPAD == ONDAVX777_PAD) || \
(CONFIG_KEYPAD == GIGABEAT_PAD) || \
-(CONFIG_KEYPAD == IAUDIO_X5M5_PAD)
+(CONFIG_KEYPAD == IAUDIO_X5M5_PAD) || \
+(CONFIG_KEYPAD == SANSA_CONNECT_PAD)
#define SNOW_QUIT BUTTON_POWER
#elif (CONFIG_KEYPAD == SANSA_FUZE_PAD)
diff --git a/apps/plugins/sokoban.c b/apps/plugins/sokoban.c
index c5ba706047..ddc95290da 100644
--- a/apps/plugins/sokoban.c
+++ b/apps/plugins/sokoban.c
@@ -511,6 +511,21 @@
#define BUTTON_SAVE (BUTTON_SELECT|BUTTON_REPEAT)
#define BUTTON_SAVE_NAME "SELECT LONG"
+#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
+#define SOKOBAN_LEFT BUTTON_LEFT
+#define SOKOBAN_RIGHT BUTTON_RIGHT
+#define SOKOBAN_UP BUTTON_UP
+#define SOKOBAN_DOWN BUTTON_DOWN
+#define SOKOBAN_MENU BUTTON_POWER
+#define SOKOBAN_UNDO BUTTON_PREV
+#define SOKOBAN_REDO BUTTON_NEXT
+#define SOKOBAN_LEVEL_DOWN BUTTON_VOL_DOWN
+#define SOKOBAN_LEVEL_REPEAT (BUTTON_NEXT|BUTTON_PREV)
+#define SOKOBAN_LEVEL_UP BUTTON_VOL_UP
+#define SOKOBAN_PAUSE BUTTON_SELECT
+#define BUTTON_SAVE (BUTTON_SELECT|BUTTON_REPEAT)
+#define BUTTON_SAVE_NAME "SELECT LONG"
+
#else
#error No keymap defined!
#endif
@@ -1487,6 +1502,13 @@ static int sokoban_menu(void)
rb->lcd_putsxy(3, 36, "[PREV] Previous Level");
rb->lcd_putsxy(3, 46, "[PLAY] Restart Level");
rb->lcd_putsxy(3, 56, "[NEXT] Next Level");
+#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
+ rb->lcd_putsxy(3, 6, "[POWER] Menu");
+ rb->lcd_putsxy(3, 16, "[PREV] Undo");
+ rb->lcd_putsxy(3, 26, "[NEXT] Redo");
+ rb->lcd_putsxy(3, 36, "[VOL-] Previous Level");
+ rb->lcd_putsxy(3, 46, "[NEXT+PREV] Restart Level");
+ rb->lcd_putsxy(3, 56, "[VOL+] Next Level");
#endif
#ifdef HAVE_TOUCHSCREEN
diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c
index b011d1d248..91ef346221 100644
--- a/apps/plugins/solitaire.c
+++ b/apps/plugins/solitaire.c
@@ -526,6 +526,24 @@ CONFIG_KEYPAD == MROBE500_PAD
# define HK_CUR2STACK "DOUBLE SELECT"
# define HK_REM2STACK "LEFT"
+#elif (CONFIG_KEYPAD == SANSA_CONNECT_PAD)
+# define SOL_QUIT BUTTON_POWER
+# define SOL_UP BUTTON_UP
+# define SOL_DOWN BUTTON_DOWN
+# define SOL_LEFT BUTTON_SCROLL_BACK
+# define SOL_RIGHT BUTTON_SCROLL_FWD
+# define SOL_MOVE BUTTON_SELECT
+# define SOL_DRAW BUTTON_VOL_UP
+# define SOL_REM2CUR BUTTON_LEFT
+# define SOL_CUR2STACK_PRE BUTTON_VOL_DOWN
+# define SOL_CUR2STACK BUTTON_NEXT
+# define SOL_REM2STACK BUTTON_PREV
+# define HK_MOVE "SELECT"
+# define HK_DRAW "Vol+"
+# define HK_REM2CUR "LEFT"
+# define HK_CUR2STACK "NEXT"
+# define HK_REM2STACK "PREV"
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/spacerocks.c b/apps/plugins/spacerocks.c
index d0826408e0..0c03a3183b 100644
--- a/apps/plugins/spacerocks.c
+++ b/apps/plugins/spacerocks.c
@@ -268,6 +268,16 @@
#define AST_RIGHT BUTTON_RIGHT
#define AST_FIRE BUTTON_SELECT
+#elif (CONFIG_KEYPAD == SANSA_CONNECT_PAD)
+
+#define ALT_PAUSE BUTTON_VOL_DOWN
+#define AST_QUIT BUTTON_POWER
+#define AST_THRUST BUTTON_UP
+#define AST_HYPERSPACE BUTTON_DOWN
+#define AST_LEFT BUTTON_LEFT
+#define AST_RIGHT BUTTON_RIGHT
+#define AST_FIRE BUTTON_SELECT
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/star.c b/apps/plugins/star.c
index ebdaca58c3..620cddf77e 100644
--- a/apps/plugins/star.c
+++ b/apps/plugins/star.c
@@ -463,6 +463,23 @@
#define STAR_LEVEL_DOWN_NAME "Vol-"
#define STAR_LEVEL_REPEAT_NAME "BACK LONG"
+#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
+
+#define STAR_QUIT BUTTON_POWER
+#define STAR_LEFT BUTTON_LEFT
+#define STAR_RIGHT BUTTON_RIGHT
+#define STAR_UP BUTTON_UP
+#define STAR_DOWN BUTTON_DOWN
+#define STAR_TOGGLE_CONTROL BUTTON_SELECT
+#define STAR_LEVEL_UP BUTTON_VOL_UP
+#define STAR_LEVEL_DOWN BUTTON_VOL_DOWN
+#define STAR_LEVEL_REPEAT (BUTTON_PREV | BUTTON_REPEAT)
+#define STAR_TOGGLE_CONTROL_NAME "SELECT"
+#define STAR_QUIT_NAME "POWER"
+#define STAR_LEVEL_UP_NAME "Vol+"
+#define STAR_LEVEL_DOWN_NAME "Vol-"
+#define STAR_LEVEL_REPEAT_NAME "PREV LONG"
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/starfield.c b/apps/plugins/starfield.c
index 6ead68fb3a..e3b5634978 100644
--- a/apps/plugins/starfield.c
+++ b/apps/plugins/starfield.c
@@ -61,7 +61,8 @@
#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
(CONFIG_KEYPAD == SANSA_C200_PAD) || \
(CONFIG_KEYPAD == SANSA_CLIP_PAD) || \
- (CONFIG_KEYPAD == SANSA_M200_PAD)
+ (CONFIG_KEYPAD == SANSA_M200_PAD) || \
+ (CONFIG_KEYPAD == SANSA_CONNECT_PAD)
#define STARFIELD_QUIT BUTTON_POWER
#define STARFIELD_INCREASE_ZMOVE BUTTON_UP
#define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN
diff --git a/apps/plugins/stats.c b/apps/plugins/stats.c
index 1bfd10788a..c5ff31e2bd 100644
--- a/apps/plugins/stats.c
+++ b/apps/plugins/stats.c
@@ -58,7 +58,8 @@ static bool cancel;
#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
(CONFIG_KEYPAD == SANSA_C200_PAD) || \
(CONFIG_KEYPAD == SANSA_CLIP_PAD) || \
-(CONFIG_KEYPAD == SANSA_M200_PAD)
+(CONFIG_KEYPAD == SANSA_M200_PAD) || \
+(CONFIG_KEYPAD == SANSA_CONNECT_PAD)
#define STATS_STOP BUTTON_POWER
#elif (CONFIG_KEYPAD == SANSA_FUZE_PAD)
diff --git a/apps/plugins/stopwatch.c b/apps/plugins/stopwatch.c
index 03f183e916..94785dc352 100644
--- a/apps/plugins/stopwatch.c
+++ b/apps/plugins/stopwatch.c
@@ -255,6 +255,14 @@
#define STOPWATCH_SCROLL_UP BUTTON_UP
#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN
+#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
+#define STOPWATCH_QUIT BUTTON_POWER
+#define STOPWATCH_START_STOP BUTTON_SELECT
+#define STOPWATCH_RESET_TIMER BUTTON_LEFT
+#define STOPWATCH_LAP_TIMER BUTTON_RIGHT
+#define STOPWATCH_SCROLL_UP BUTTON_UP
+#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/sudoku/sudoku.h b/apps/plugins/sudoku/sudoku.h
index 86a8b33a35..456e4fd9ee 100644
--- a/apps/plugins/sudoku/sudoku.h
+++ b/apps/plugins/sudoku/sudoku.h
@@ -318,6 +318,17 @@
#define SUDOKU_BUTTON_TOGGLEBACK BUTTON_DOWN
#define SUDOKU_BUTTON_POSSIBLE BUTTON_PLAYPAUSE
+#elif (CONFIG_KEYPAD == SANSA_CONNECT_PAD)
+#define SUDOKU_BUTTON_QUIT BUTTON_POWER
+#define SUDOKU_BUTTON_UP BUTTON_UP
+#define SUDOKU_BUTTON_DOWN BUTTON_DOWN
+#define SUDOKU_BUTTON_LEFT BUTTON_LEFT
+#define SUDOKU_BUTTON_RIGHT BUTTON_RIGHT
+#define SUDOKU_BUTTON_TOGGLEBACK BUTTON_PREV
+#define SUDOKU_BUTTON_TOGGLE BUTTON_NEXT
+#define SUDOKU_BUTTON_MENU BUTTON_SELECT
+#define SUDOKU_BUTTON_POSSIBLE BUTTON_VOL_DOWN
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/superdom.c b/apps/plugins/superdom.c
index 2dfd142bde..b4e25afdb1 100644
--- a/apps/plugins/superdom.c
+++ b/apps/plugins/superdom.c
@@ -190,6 +190,14 @@ char buf[255];
#define SUPERDOM_RIGHT BUTTON_RIGHT
#define SUPERDOM_CANCEL BUTTON_BACK
+#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
+#define SUPERDOM_OK BUTTON_SELECT
+#define SUPERDOM_UP BUTTON_UP
+#define SUPERDOM_DOWN BUTTON_DOWN
+#define SUPERDOM_LEFT BUTTON_LEFT
+#define SUPERDOM_RIGHT BUTTON_RIGHT
+#define SUPERDOM_CANCEL BUTTON_POWER
+
#endif
#ifdef HAVE_TOUCHSCREEN
diff --git a/apps/plugins/text_viewer/tv_button.h b/apps/plugins/text_viewer/tv_button.h
index 3de276228c..697076e643 100644
--- a/apps/plugins/text_viewer/tv_button.h
+++ b/apps/plugins/text_viewer/tv_button.h
@@ -424,6 +424,18 @@
#define TV_AUTOSCROLL BUTTON_BACK
#define TV_BOOKMARK BUTTON_PLAYPAUSE
+#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
+#define TV_QUIT BUTTON_POWER
+#define TV_SCROLL_UP BUTTON_UP
+#define TV_SCROLL_DOWN BUTTON_DOWN
+#define TV_SCREEN_LEFT BUTTON_LEFT
+#define TV_SCREEN_RIGHT BUTTON_RIGHT
+#define TV_MENU BUTTON_SELECT
+#define TV_AUTOSCROLL BUTTON_VOL_DOWN
+#define TV_LINE_UP BUTTON_SCROLL_BACK
+#define TV_LINE_DOWN BUTTON_SCROLL_FWD
+#define TV_BOOKMARK (BUTTON_DOWN|BUTTON_SELECT)
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/vu_meter.c b/apps/plugins/vu_meter.c
index 27f9fe06df..cf66070c6b 100644
--- a/apps/plugins/vu_meter.c
+++ b/apps/plugins/vu_meter.c
@@ -327,6 +327,17 @@
#define LABEL_MENU "BACK"
#define LABEL_VOLUME "UP/DOWN"
+#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
+#define VUMETER_QUIT BUTTON_POWER
+#define VUMETER_HELP BUTTON_NEXT
+#define VUMETER_MENU BUTTON_PREV
+#define VUMETER_UP BUTTON_UP
+#define VUMETER_DOWN BUTTON_DOWN
+#define LABEL_HELP "NEXT"
+#define LABEL_QUIT "POWER"
+#define LABEL_MENU "PREV"
+#define LABEL_VOLUME "VOL+/VOL-"
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/wormlet.c b/apps/plugins/wormlet.c
index bb3526991d..016c4ad31b 100644
--- a/apps/plugins/wormlet.c
+++ b/apps/plugins/wormlet.c
@@ -310,6 +310,16 @@ CONFIG_KEYPAD == MROBE500_PAD
#define BTN_QUIT BUTTON_POWER
#define BTN_STOPRESET BUTTON_BACK
+#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
+
+#define BTN_DIR_UP BUTTON_UP
+#define BTN_DIR_DOWN BUTTON_DOWN
+#define BTN_DIR_LEFT BUTTON_LEFT
+#define BTN_DIR_RIGHT BUTTON_RIGHT
+#define BTN_STARTPAUSE BUTTON_SELECT
+#define BTN_QUIT BUTTON_POWER
+#define BTN_STOPRESET BUTTON_VOL_DOWN
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/xobox.c b/apps/plugins/xobox.c
index 33cf823c4d..8de0c8fe16 100644
--- a/apps/plugins/xobox.c
+++ b/apps/plugins/xobox.c
@@ -268,6 +268,15 @@ CONFIG_KEYPAD == MROBE500_PAD
#define DOWN BUTTON_DOWN
#define PAUSE BUTTON_PLAYPAUSE
+#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
+
+#define QUIT BUTTON_POWER
+#define LEFT BUTTON_LEFT
+#define RIGHT BUTTON_RIGHT
+#define UP BUTTON_UP
+#define DOWN BUTTON_DOWN
+#define PAUSE BUTTON_SELECT
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/zxbox/keymaps.h b/apps/plugins/zxbox/keymaps.h
index 5f216fda14..4e5d73a343 100644
--- a/apps/plugins/zxbox/keymaps.h
+++ b/apps/plugins/zxbox/keymaps.h
@@ -89,7 +89,8 @@
#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
(CONFIG_KEYPAD == SANSA_C200_PAD) || \
(CONFIG_KEYPAD == SANSA_CLIP_PAD) || \
- (CONFIG_KEYPAD == SANSA_M200_PAD)
+ (CONFIG_KEYPAD == SANSA_M200_PAD) || \
+ (CONFIG_KEYPAD == SANSA_CONNECT_PAD)
#define ZX_SELECT BUTTON_SELECT
#define ZX_MENU BUTTON_POWER
#define ZX_LEFT BUTTON_LEFT
diff --git a/apps/plugins/zxbox/zxbox_keyb.c b/apps/plugins/zxbox/zxbox_keyb.c
index 92a56a8a4d..fc5ed41169 100644
--- a/apps/plugins/zxbox/zxbox_keyb.c
+++ b/apps/plugins/zxbox/zxbox_keyb.c
@@ -117,7 +117,8 @@
(CONFIG_KEYPAD == SANSA_CLIP_PAD) || \
(CONFIG_KEYPAD == SANSA_M200_PAD) || \
(CONFIG_KEYPAD == SANSA_FUZE_PAD) || \
-(CONFIG_KEYPAD == MROBE100_PAD)
+(CONFIG_KEYPAD == MROBE100_PAD) || \
+(CONFIG_KEYPAD == SANSA_CONNECT_PAD)
/* TODO: Check keyboard mappings */