summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmaury Pouly <amaury.pouly@gmail.com>2014-07-17 10:40:17 +0200
committerAmaury Pouly <amaury.pouly@gmail.com>2014-07-17 10:40:17 +0200
commite08331eef4555a17145d2fd2af1d5a9b5ce6d624 (patch)
treedb41fe84f8175d36525ccb7ae21995584a008253
parent2387d92c9c39f238d3d193d970edf30162d8ec9e (diff)
downloadrockbox-e08331e.tar.gz
rockbox-e08331e.tar.bz2
rockbox-e08331e.zip
zen/zenxfi/zenxfistyle/zenmozaic: implement plugin keymaps and enable plugins
Plugins on the ZEN/ZEN X-Fi require to increase the plugin buffer size. Change-Id: If4651c87b402060faa24530985c6e871379c8ea1
-rw-r--r--apps/plugins/battery_bench.c3
-rw-r--r--apps/plugins/blackjack.c14
-rw-r--r--apps/plugins/brickmania.c9
-rw-r--r--apps/plugins/calculator.c10
-rw-r--r--apps/plugins/calendar.c10
-rw-r--r--apps/plugins/chessbox/chessbox_pgn.h10
-rw-r--r--apps/plugins/chessclock.c10
-rw-r--r--apps/plugins/chip8.c8
-rw-r--r--apps/plugins/chopper.c6
-rw-r--r--apps/plugins/clix.c10
-rw-r--r--apps/plugins/cube.c10
-rw-r--r--apps/plugins/doom/i_video.c12
-rw-r--r--apps/plugins/fft/fft.c8
-rw-r--r--apps/plugins/flipit.c11
-rw-r--r--apps/plugins/fractals/fractal.h11
-rw-r--r--apps/plugins/goban/goban.h8
-rw-r--r--apps/plugins/imageviewer/imageviewer_button.h12
-rw-r--r--apps/plugins/invadrox.c7
-rw-r--r--apps/plugins/jewels.c11
-rw-r--r--apps/plugins/lib/pluginlib_actions.c5
-rw-r--r--apps/plugins/midi/midiplay.c8
-rw-r--r--apps/plugins/minesweeper.c10
-rw-r--r--apps/plugins/mp3_encoder.c7
-rw-r--r--apps/plugins/mpegplayer/mpeg_settings.c8
-rw-r--r--apps/plugins/mpegplayer/mpegplayer.c8
-rw-r--r--apps/plugins/oscilloscope.c11
-rw-r--r--apps/plugins/pacbox/pacbox.h9
-rw-r--r--apps/plugins/pegbox.c16
-rw-r--r--apps/plugins/pong.c8
-rw-r--r--apps/plugins/reversi/reversi-gui.h8
-rw-r--r--apps/plugins/rockblox.c10
-rw-r--r--apps/plugins/rockboy/rockboy.c11
-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.c8
-rw-r--r--apps/plugins/sokoban.c12
-rw-r--r--apps/plugins/solitaire.c17
-rw-r--r--apps/plugins/spacerocks.c9
-rw-r--r--apps/plugins/star.c16
-rw-r--r--apps/plugins/stopwatch.c8
-rw-r--r--apps/plugins/sudoku/sudoku.h9
-rw-r--r--apps/plugins/superdom.c8
-rw-r--r--apps/plugins/text_viewer/tv_button.h10
-rw-r--r--apps/plugins/vu_meter.c11
-rw-r--r--apps/plugins/wormlet.c9
-rw-r--r--apps/plugins/xobox.c8
-rw-r--r--apps/plugins/zxbox/keymaps.h8
-rw-r--r--apps/plugins/zxbox/zxbox_keyb.c8
-rw-r--r--firmware/export/config/creativezen.h2
-rw-r--r--firmware/export/config/creativezenxfi.h2
-rwxr-xr-xtools/configure10
52 files changed, 472 insertions, 10 deletions
diff --git a/apps/plugins/battery_bench.c b/apps/plugins/battery_bench.c
index 7ab094df7e..930d56f29a 100644
--- a/apps/plugins/battery_bench.c
+++ b/apps/plugins/battery_bench.c
@@ -126,7 +126,8 @@
#define BATTERY_OFF_TXT "POWER"
#elif CONFIG_KEYPAD == GIGABEAT_S_PAD \
- || CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
+ || CONFIG_KEYPAD == SAMSUNG_YPR0_PAD \
+ || CONFIG_KEYPAD == CREATIVE_ZEN_PAD
#define BATTERY_ON BUTTON_SELECT
#define BATTERY_OFF BUTTON_BACK
diff --git a/apps/plugins/blackjack.c b/apps/plugins/blackjack.c
index 206d4dca0c..2211f88620 100644
--- a/apps/plugins/blackjack.c
+++ b/apps/plugins/blackjack.c
@@ -527,6 +527,20 @@ enum {
#define BJACK_QUIT_NAME "Back"
#define BJACK_DOUBLE_NAME "Option+Down"
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_PAD
+#define BJACK_SELECT BUTTON_SELECT
+#define BJACK_QUIT BUTTON_BACK
+#define BJACK_STAY BUTTON_PLAYPAUSE
+#define BJACK_DOUBLEDOWN BUTTON_SHORTCUT
+#define BJACK_UP BUTTON_UP
+#define BJACK_DOWN BUTTON_DOWN
+#define BJACK_RIGHT BUTTON_RIGHT
+#define BJACK_LEFT BUTTON_LEFT
+#define BJACK_SELECT_NAME "Select"
+#define BJACK_STAY_NAME "Play/Pause"
+#define BJACK_QUIT_NAME "Back"
+#define BJACK_DOUBLE_NAME "Shortcut"
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/brickmania.c b/apps/plugins/brickmania.c
index 6cff61e004..ee72e0bf37 100644
--- a/apps/plugins/brickmania.c
+++ b/apps/plugins/brickmania.c
@@ -303,6 +303,15 @@ CONFIG_KEYPAD == SANSA_CONNECT_PAD
#define UP BUTTON_UP
#define DOWN BUTTON_DOWN
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_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 No keymap defined!
#endif
diff --git a/apps/plugins/calculator.c b/apps/plugins/calculator.c
index 5e5e7130a1..6c75595f9e 100644
--- a/apps/plugins/calculator.c
+++ b/apps/plugins/calculator.c
@@ -487,6 +487,16 @@ F3: equal to "="
#define CALCULATOR_CALC BUTTON_POWER
#define CALCULATOR_CLEAR BUTTON_BACK
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_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
+#define CALCULATOR_INPUT BUTTON_SELECT
+#define CALCULATOR_CALC BUTTON_PLAYPAUSE
+#define CALCULATOR_CLEAR BUTTON_SHORTCUT
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/calendar.c b/apps/plugins/calendar.c
index d586b4b48c..2e0577fc73 100644
--- a/apps/plugins/calendar.c
+++ b/apps/plugins/calendar.c
@@ -359,6 +359,16 @@
#define CALENDAR_NEXT_MONTH (BUTTON_POWER|BUTTON_DOWN)
#define CALENDAR_PREV_MONTH (BUTTON_POWER|BUTTON_UP)
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_PAD
+#define CALENDAR_QUIT BUTTON_BACK
+#define CALENDAR_SELECT BUTTON_SELECT
+#define CALENDAR_NEXT_DAY BUTTON_RIGHT
+#define CALENDAR_PREV_DAY BUTTON_LEFT
+#define CALENDAR_NEXT_WEEK BUTTON_DOWN
+#define CALENDAR_PREV_WEEK BUTTON_UP
+#define CALENDAR_NEXT_MONTH BUTTON_SHORTCUT
+#define CALENDAR_PREV_MONTH BUTTON_MENU
+
#else
#error "No keypad setting."
#endif
diff --git a/apps/plugins/chessbox/chessbox_pgn.h b/apps/plugins/chessbox/chessbox_pgn.h
index 1e8a9ec34f..c7aca0f939 100644
--- a/apps/plugins/chessbox/chessbox_pgn.h
+++ b/apps/plugins/chessbox/chessbox_pgn.h
@@ -475,6 +475,16 @@
#define CB_MENU BUTTON_BACK
#define CB_LEVEL BUTTON_POWER
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_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_PLAYPAUSE
+#define CB_MENU BUTTON_MENU
+#define CB_LEVEL BUTTON_BACK
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/chessclock.c b/apps/plugins/chessclock.c
index 490e588d91..cacfbbe939 100644
--- a/apps/plugins/chessclock.c
+++ b/apps/plugins/chessclock.c
@@ -377,6 +377,16 @@
#define CHC_SETTINGS_OK BUTTON_RIGHT
#define CHC_SETTINGS_CANCEL BUTTON_BACK
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_PAD
+#define CHC_QUIT BUTTON_BACK
+#define CHC_STARTSTOP BUTTON_PLAYPAUSE
+#define CHC_RESET BUTTON_SHORTCUT
+#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
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/chip8.c b/apps/plugins/chip8.c
index 873ad37df3..1616f622c0 100644
--- a/apps/plugins/chip8.c
+++ b/apps/plugins/chip8.c
@@ -1239,6 +1239,14 @@ CONFIG_KEYPAD == MROBE500_PAD
#define CHIP8_KEY6 BUTTON_RIGHT
#define CHIP8_KEY8 BUTTON_LEFT
+#elif (CONFIG_KEYPAD == CREATIVE_ZEN_PAD)
+#define CHIP8_OFF BUTTON_BACK
+#define CHIP8_KEY2 BUTTON_UP
+#define CHIP8_KEY4 BUTTON_DOWN
+#define CHIP8_KEY5 BUTTON_SELECT
+#define CHIP8_KEY6 BUTTON_RIGHT
+#define CHIP8_KEY8 BUTTON_LEFT
+
#elif (CONFIG_KEYPAD == HM801_PAD)
#define CHIP8_OFF (BUTTON_POWER|BUTTON_SELECT)
#define CHIP8_KEY1 BUTTON_PREV
diff --git a/apps/plugins/chopper.c b/apps/plugins/chopper.c
index df578ffcac..f140d841f2 100644
--- a/apps/plugins/chopper.c
+++ b/apps/plugins/chopper.c
@@ -198,6 +198,12 @@ CONFIG_KEYPAD == MROBE500_PAD
#define ACTION BUTTON_PLAY
#define ACTIONTEXT "PLAY"
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_PAD
+#define QUIT BUTTON_BACK
+#define ACTION BUTTON_SELECT
+#define ACTIONTEXT "Select"
+
+
#elif !defined(HAVE_TOUCHSCREEN)
#error No keymap defined!
#endif
diff --git a/apps/plugins/clix.c b/apps/plugins/clix.c
index 47e27a8635..c204663cf5 100644
--- a/apps/plugins/clix.c
+++ b/apps/plugins/clix.c
@@ -240,6 +240,16 @@
#define CLIX_BUTTON_RIGHT BUTTON_RIGHT
#define CLIX_BUTTON_CLICK BUTTON_PLAY
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_PAD
+#define CLIX_BUTTON_QUIT BUTTON_BACK
+#define CLIX_BUTTON_UP BUTTON_UP
+#define CLIX_BUTTON_DOWN BUTTON_DOWN
+#define CLIX_BUTTON_SCROLL_FWD BUTTON_PLAYPAUSE
+#define CLIX_BUTTON_SCROLL_BACK BUTTON_MENU
+#define CLIX_BUTTON_LEFT BUTTON_LEFT
+#define CLIX_BUTTON_RIGHT BUTTON_RIGHT
+#define CLIX_BUTTON_CLICK BUTTON_SELECT
+
#elif (CONFIG_KEYPAD == SAMSUNG_YPR1_PAD)
#define CLIX_BUTTON_QUIT BUTTON_POWER
diff --git a/apps/plugins/cube.c b/apps/plugins/cube.c
index de548ce308..5331d531db 100644
--- a/apps/plugins/cube.c
+++ b/apps/plugins/cube.c
@@ -380,6 +380,16 @@
#define CUBE_PAUSE BUTTON_PLAY
#define CUBE_HIGHSPEED (BUTTON_POWER|BUTTON_DOWN)
+#elif (CONFIG_KEYPAD == CREATIVE_ZEN_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_PLAYPAUSE
+#define CUBE_HIGHSPEED BUTTON_SHORTCUT
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/doom/i_video.c b/apps/plugins/doom/i_video.c
index 90ee93cd17..c285215e50 100644
--- a/apps/plugins/doom/i_video.c
+++ b/apps/plugins/doom/i_video.c
@@ -511,6 +511,18 @@ void I_ShutdownGraphics(void)
#define DOOMBUTTON_WEAPON BUTTON_POWER
#define DOOMBUTTON_MAP (BUTTON_POWER|BUTTON_REPEAT)
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_PAD
+#define DOOMBUTTON_UP BUTTON_UP
+#define DOOMBUTTON_DOWN BUTTON_DOWN
+#define DOOMBUTTON_LEFT BUTTON_LEFT
+#define DOOMBUTTON_RIGHT BUTTON_RIGHT
+#define DOOMBUTTON_OPEN BUTTON_PLAYPAUSE
+#define DOOMBUTTON_ESC BUTTON_BACK
+#define DOOMBUTTON_ENTER BUTTON_SELECT
+#define DOOMBUTTON_SHOOT BUTTON_SELECT
+#define DOOMBUTTON_WEAPON BUTTON_SHORTCUT
+#define DOOMBUTTON_MAP BUTTON_MENU
+
#else
#error Keymap not defined!
#endif
diff --git a/apps/plugins/fft/fft.c b/apps/plugins/fft/fft.c
index 9f51102979..d4b79b2ea7 100644
--- a/apps/plugins/fft/fft.c
+++ b/apps/plugins/fft/fft.c
@@ -311,6 +311,14 @@ GREY_INFO_STRUCT
# define FFT_ORIENTATION BUTTON_POWER
# define FFT_WINDOW BUTTON_PLAY
+#elif (CONFIG_KEYPAD == CREATIVE_ZEN_PAD)
+# define FFT_PREV_GRAPH BUTTON_LEFT
+# define FFT_NEXT_GRAPH BUTTON_RIGHT
+# define FFT_AMP_SCALE BUTTON_UP
+# define FFT_FREQ_SCALE BUTTON_DOWN
+# define FFT_QUIT BUTTON_BACK
+# define FFT_ORIENTATION BUTTON_SELECT
+# define FFT_WINDOW BUTTON_MENU
#elif !defined(HAVE_TOUCHSCREEN)
#error No keymap defined!
diff --git a/apps/plugins/flipit.c b/apps/plugins/flipit.c
index dd5f809027..6274af4f1d 100644
--- a/apps/plugins/flipit.c
+++ b/apps/plugins/flipit.c
@@ -206,6 +206,17 @@
#define FLIPIT_STEP_BY_STEP BUTTON_POWER
#define FLIPIT_TOGGLE BUTTON_PLAY
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_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
+#define FLIPIT_SHUFFLE BUTTON_SHORTCUT
+#define FLIPIT_SOLVE BUTTON_PLAYPAUSE
+#define FLIPIT_STEP_BY_STEP BUTTON_MENU
+#define FLIPIT_TOGGLE BUTTON_SELECT
+
#elif CONFIG_KEYPAD == IRIVER_H10_PAD
#define FLIPIT_LEFT BUTTON_LEFT
diff --git a/apps/plugins/fractals/fractal.h b/apps/plugins/fractals/fractal.h
index 01a80c5535..b5ab0d31c9 100644
--- a/apps/plugins/fractals/fractal.h
+++ b/apps/plugins/fractals/fractal.h
@@ -439,6 +439,17 @@
#define FRACTAL_PRECISION_DEC (BUTTON_POWER|BUTTON_LEFT)
#define FRACTAL_RESET BUTTON_PLAY
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_PAD
+#define FRACTAL_QUIT BUTTON_BACK
+#define FRACTAL_UP BUTTON_UP
+#define FRACTAL_DOWN BUTTON_DOWN
+#define FRACTAL_RIGHT BUTTON_RIGHT
+#define FRACTAL_LEFT BUTTON_LEFT
+#define FRACTAL_ZOOM_IN BUTTON_PLAYPAUSE
+#define FRACTAL_ZOOM_OUT BUTTON_MENU
+#define FRACTAL_PRECISION_INC (BUTTON_POWER|BUTTON_PLAYPAUSE)
+#define FRACTAL_PRECISION_DEC (BUTTON_POWER|BUTTON_MENU)
+#define FRACTAL_RESET BUTTON_SHORTCUT
#else
#error No keymap defined!
diff --git a/apps/plugins/goban/goban.h b/apps/plugins/goban/goban.h
index b0f6dbb3d4..c709df3281 100644
--- a/apps/plugins/goban/goban.h
+++ b/apps/plugins/goban/goban.h
@@ -400,6 +400,14 @@
#define GBN_BUTTON_PLAY BUTTON_PLAY
#define GBN_BUTTON_MENU BUTTON_BACK
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_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_PLAY BUTTON_SELECT
+#define GBN_BUTTON_MENU BUTTON_MENU
+
#elif (CONFIG_KEYPAD == HM60X_PAD)
#define GBN_BUTTON_UP BUTTON_UP
#define GBN_BUTTON_DOWN BUTTON_DOWN
diff --git a/apps/plugins/imageviewer/imageviewer_button.h b/apps/plugins/imageviewer/imageviewer_button.h
index 7695b720d3..dd3b35041f 100644
--- a/apps/plugins/imageviewer/imageviewer_button.h
+++ b/apps/plugins/imageviewer/imageviewer_button.h
@@ -440,6 +440,18 @@
#define IMGVIEW_PREVIOUS BUTTON_BACK
#define IMGVIEW_MENU (BUTTON_BACK|BUTTON_REPEAT)
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_PAD
+#define IMGVIEW_ZOOM_PRE BUTTON_PLAYPAUSE
+#define IMGVIEW_ZOOM_IN (BUTTON_PLAYPAUSE|BUTTON_REL)
+#define IMGVIEW_ZOOM_OUT (BUTTON_PLAYPAUSE|BUTTON_REPEAT)
+#define IMGVIEW_UP BUTTON_UP
+#define IMGVIEW_LEFT BUTTON_LEFT
+#define IMGVIEW_RIGHT BUTTON_RIGHT
+#define IMGVIEW_DOWN BUTTON_DOWN
+#define IMGVIEW_NEXT BUTTON_SHORTCUT
+#define IMGVIEW_PREVIOUS BUTTON_BACK
+#define IMGVIEW_MENU BUTTON_MENU
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/invadrox.c b/apps/plugins/invadrox.c
index 81b2df50d7..e77fe1e4a6 100644
--- a/apps/plugins/invadrox.c
+++ b/apps/plugins/invadrox.c
@@ -244,6 +244,13 @@ CONFIG_KEYPAD == MROBE500_PAD
#define RIGHT BUTTON_RIGHT
#define FIRE BUTTON_PLAY
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_PAD
+
+#define QUIT BUTTON_BACK
+#define LEFT BUTTON_LEFT
+#define RIGHT BUTTON_RIGHT
+#define FIRE BUTTON_SELECT
+
#elif (CONFIG_KEYPAD == HM60X_PAD) || \
(CONFIG_KEYPAD == HM801_PAD)
diff --git a/apps/plugins/jewels.c b/apps/plugins/jewels.c
index f3fbb2e80b..b4c53a96c4 100644
--- a/apps/plugins/jewels.c
+++ b/apps/plugins/jewels.c
@@ -134,6 +134,17 @@
#define HK_SELECT "PLAY"
#define HK_CANCEL "BACK"
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_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
+#define HK_SELECT "SELECT"
+#define HK_CANCEL "BACK"
+
+
#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
(CONFIG_KEYPAD == SANSA_CONNECT_PAD)
#define JEWELS_SCROLLWHEEL
diff --git a/apps/plugins/lib/pluginlib_actions.c b/apps/plugins/lib/pluginlib_actions.c
index fb54dce1c8..97dde57fbe 100644
--- a/apps/plugins/lib/pluginlib_actions.c
+++ b/apps/plugins/lib/pluginlib_actions.c
@@ -122,7 +122,8 @@ const struct button_mapping pla_main_ctx[] =
|| (CONFIG_KEYPAD == CREATIVE_ZENXFI3_PAD) \
|| (CONFIG_KEYPAD == HM60X_PAD) \
|| (CONFIG_KEYPAD == HM801_PAD) \
- || (CONFIG_KEYPAD == SONY_NWZ_PAD))
+ || (CONFIG_KEYPAD == SONY_NWZ_PAD) \
+ || (CONFIG_KEYPAD == CREATIVE_ZEN_PAD))
{ PLA_UP, BUTTON_UP, BUTTON_NONE },
{ PLA_DOWN, BUTTON_DOWN, BUTTON_NONE },
{ PLA_LEFT, BUTTON_LEFT, BUTTON_NONE },
@@ -415,7 +416,7 @@ const struct button_mapping pla_main_ctx[] =
{PLA_SELECT, BUTTON_PLAY, BUTTON_NONE},
{PLA_SELECT_REL, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY},
{PLA_SELECT_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE},
-#elif (CONFIG_KEYPAD == SANSA_FUZEPLUS_PAD)
+#elif (CONFIG_KEYPAD == SANSA_FUZEPLUS_PAD) || (CONFIG_KEYPAD == CREATIVE_ZEN_PAD)
{PLA_CANCEL, BUTTON_BACK, BUTTON_NONE},
{PLA_EXIT, BUTTON_POWER, BUTTON_NONE},
{PLA_SELECT, BUTTON_SELECT, BUTTON_NONE},
diff --git a/apps/plugins/midi/midiplay.c b/apps/plugins/midi/midiplay.c
index 773cc90196..f5edc83f9a 100644
--- a/apps/plugins/midi/midiplay.c
+++ b/apps/plugins/midi/midiplay.c
@@ -267,6 +267,14 @@
#define BTN_DOWN BUTTON_DOWN
#define BTN_PLAY BUTTON_PLAY
+#elif (CONFIG_KEYPAD == CREATIVE_ZEN_PAD)
+#define BTN_QUIT BUTTON_BACK
+#define BTN_RIGHT BUTTON_RIGHT
+#define BTN_LEFT BUTTON_LEFT
+#define BTN_UP BUTTON_UP
+#define BTN_DOWN BUTTON_DOWN
+#define BTN_PLAY BUTTON_PLAYPAUSE
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/minesweeper.c b/apps/plugins/minesweeper.c
index 030151398a..4758a1f911 100644
--- a/apps/plugins/minesweeper.c
+++ b/apps/plugins/minesweeper.c
@@ -367,6 +367,16 @@ CONFIG_KEYPAD == MROBE500_PAD
#define MINESWP_DISCOVER (BUTTON_PLAY|BUTTON_REPEAT)
#define MINESWP_INFO BUTTON_POWER
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_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 BUTTON_PLAYPAUSE
+#define MINESWP_DISCOVER BUTTON_SELECT
+#define MINESWP_INFO BUTTON_MENU
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/mp3_encoder.c b/apps/plugins/mp3_encoder.c
index 1326d4484d..7b3c18bea2 100644
--- a/apps/plugins/mp3_encoder.c
+++ b/apps/plugins/mp3_encoder.c
@@ -2534,6 +2534,13 @@ CONFIG_KEYPAD == MROBE500_PAD
#define MP3ENC_DONE BUTTON_DOWN
#define MP3ENC_SELECT BUTTON_PLAY
+#elif (CONFIG_KEYPAD == CREATIVE_ZEN_PAD)
+#define MP3ENC_PREV BUTTON_LEFT
+#define MP3ENC_NEXT BUTTON_RIGHT
+#define MP3ENC_DONE BUTTON_PLAYPAUSE
+#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 a5963ef94e..7b259395b9 100644
--- a/apps/plugins/mpegplayer/mpeg_settings.c
+++ b/apps/plugins/mpegplayer/mpeg_settings.c
@@ -281,6 +281,14 @@ struct mpeg_settings settings;
#define MPEG_START_TIME_DOWN BUTTON_DOWN
#define MPEG_START_TIME_EXIT BUTTON_BACK
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_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_BACK
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/mpegplayer/mpegplayer.c b/apps/plugins/mpegplayer/mpegplayer.c
index fbef00d884..b041094e25 100644
--- a/apps/plugins/mpegplayer/mpegplayer.c
+++ b/apps/plugins/mpegplayer/mpegplayer.c
@@ -408,6 +408,14 @@ CONFIG_KEYPAD == SANSA_M200_PAD
#define MPEG_RW BUTTON_LEFT
#define MPEG_FF BUTTON_RIGHT
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_PAD
+#define MPEG_MENU BUTTON_MENU
+#define MPEG_PAUSE BUTTON_PLAYPAUSE
+#define MPEG_STOP BUTTON_BACK
+#define MPEG_VOLDOWN BUTTON_DOWN
+#define MPEG_VOLUP BUTTON_UP
+#define MPEG_RW BUTTON_LEFT
+#define MPEG_FF BUTTON_RIGHT
#else
#error No keymap defined!
diff --git a/apps/plugins/oscilloscope.c b/apps/plugins/oscilloscope.c
index 66a2aad7a0..559d52ea06 100644
--- a/apps/plugins/oscilloscope.c
+++ b/apps/plugins/oscilloscope.c
@@ -475,6 +475,17 @@
#define OSCILLOSCOPE_VOL_UP BUTTON_UP
#define OSCILLOSCOPE_VOL_DOWN BUTTON_DOWN
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_PAD
+#define OSCILLOSCOPE_QUIT BUTTON_BACK
+#define OSCILLOSCOPE_DRAWMODE BUTTON_SELECT
+#define OSCILLOSCOPE_ADVMODE BUTTON_MENU
+#define OSCILLOSCOPE_ORIENTATION BUTTON_SHORTCUT
+#define OSCILLOSCOPE_PAUSE BUTTON_PLAYPAUSE
+#define OSCILLOSCOPE_SPEED_UP BUTTON_RIGHT
+#define OSCILLOSCOPE_SPEED_DOWN BUTTON_LEFT
+#define OSCILLOSCOPE_VOL_UP BUTTON_UP
+#define OSCILLOSCOPE_VOL_DOWN BUTTON_DOWN
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/pacbox/pacbox.h b/apps/plugins/pacbox/pacbox.h
index ebce692118..1854006a91 100644
--- a/apps/plugins/pacbox/pacbox.h
+++ b/apps/plugins/pacbox/pacbox.h
@@ -319,6 +319,15 @@
#define PACMAN_1UP BUTTON_POWER
#define PACMAN_COIN BUTTON_PLAY
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_PAD
+#define PACMAN_UP BUTTON_UP
+#define PACMAN_DOWN BUTTON_DOWN
+#define PACMAN_LEFT BUTTON_LEFT
+#define PACMAN_RIGHT BUTTON_RIGHT
+#define PACMAN_MENU BUTTON_MENU
+#define PACMAN_1UP BUTTON_SELECT
+#define PACMAN_COIN BUTTON_PLAYPAUSE
+
#else
#error Keymap not defined!
diff --git a/apps/plugins/pegbox.c b/apps/plugins/pegbox.c
index 28069a551d..fc0019fc26 100644
--- a/apps/plugins/pegbox.c
+++ b/apps/plugins/pegbox.c
@@ -599,6 +599,22 @@ CONFIG_KEYPAD == MROBE500_PAD
#define LVL_DOWN_TEXT ""
#define SELECT_TEXT "PLAY"
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_PAD
+#define PEGBOX_RIGHT BUTTON_RIGHT
+#define PEGBOX_LEFT BUTTON_LEFT
+#define PEGBOX_UP BUTTON_UP
+#define PEGBOX_DOWN BUTTON_DOWN
+#define PEGBOX_QUIT BUTTON_BACK
+#define PEGBOX_SELECT BUTTON_SELECT
+#define PEGBOX_RESTART BUTTON_SHORTCUT
+#define PEGBOX_LVL_UP BUTTON_MENU
+#define PEGBOX_LVL_DOWN BUTTON_PLAYPAUSE
+
+#define QUIT_TEXT "POWER"
+#define RESTART_TEXT "SHORTCUT"
+#define LVL_UP_TEXT "MENU"
+#define LVL_DOWN_TEXT "PLAY/PAUSE"
+#define SELECT_TEXT "SELECT"
#else
#error Unsupported keymap!
diff --git a/apps/plugins/pong.c b/apps/plugins/pong.c
index 3299ebbf3e..eb5adb3351 100644
--- a/apps/plugins/pong.c
+++ b/apps/plugins/pong.c
@@ -279,6 +279,14 @@ CONFIG_KEYPAD == MROBE500_PAD
#define PONG_RIGHT_UP BUTTON_RIGHT
#define PONG_RIGHT_DOWN BUTTON_LEFT
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_PAD
+#define PONG_QUIT BUTTON_BACK
+#define PONG_PAUSE BUTTON_PLAYPAUSE
+#define PONG_LEFT_UP BUTTON_UP
+#define PONG_LEFT_DOWN BUTTON_DOWN
+#define PONG_RIGHT_UP BUTTON_RIGHT
+#define PONG_RIGHT_DOWN BUTTON_LEFT
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/reversi/reversi-gui.h b/apps/plugins/reversi/reversi-gui.h
index ef54945fec..5c43ce2373 100644
--- a/apps/plugins/reversi/reversi-gui.h
+++ b/apps/plugins/reversi/reversi-gui.h
@@ -304,6 +304,14 @@
#define REVERSI_BUTTON_MAKE_MOVE BUTTON_PLAY
#define REVERSI_BUTTON_MENU BUTTON_POWER
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_PAD
+#define REVERSI_BUTTON_UP BUTTON_UP
+#define REVERSI_BUTTON_DOWN BUTTON_DOWN
+#define REVERSI_BUTTON_LEFT BUTTON_LEFT
+#define REVERSI_BUTTON_RIGHT BUTTON_RIGHT
+#define REVERSI_BUTTON_MAKE_MOVE BUTTON_SELECT
+#define REVERSI_BUTTON_MENU BUTTON_MENU
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/rockblox.c b/apps/plugins/rockblox.c
index a531245a1c..5647b0a719 100644
--- a/apps/plugins/rockblox.c
+++ b/apps/plugins/rockblox.c
@@ -439,6 +439,16 @@
#define ROCKBLOX_DROP BUTTON_PLAY
#define ROCKBLOX_RESTART BUTTON_BACK
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_PAD
+#define ROCKBLOX_OFF BUTTON_BACK
+#define ROCKBLOX_ROTATE_CCW BUTTON_MENU
+#define ROCKBLOX_ROTATE_CW 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_SHORTCUT
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/rockboy/rockboy.c b/apps/plugins/rockboy/rockboy.c
index ec6a7d85f8..c12df07140 100644
--- a/apps/plugins/rockboy/rockboy.c
+++ b/apps/plugins/rockboy/rockboy.c
@@ -390,6 +390,17 @@ static void setoptions (void)
options.A = (BUTTON_POWER|BUTTON_LEFT);
options.B = (BUTTON_POWER|BUTTON_RIGHT);
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_PAD
+ options.UP = BUTTON_UP;
+ options.DOWN = BUTTON_DOWN;
+ options.LEFT = BUTTON_LEFT;
+ options.RIGHT = BUTTON_RIGHT;
+
+ options.START = BUTTON_BACK;
+ options.MENU = BUTTON_MENU;
+ options.SELECT = BUTTON_SELECT;
+ options.A = BUTTON_SHORTCUT;
+ options.B = BUTTON_PLAYPAUSE;
#else
#error No Keymap Defined!
diff --git a/apps/plugins/rockpaint.c b/apps/plugins/rockpaint.c
index ab384e7644..af6ce20eec 100644
--- a/apps/plugins/rockpaint.c
+++ b/apps/plugins/rockpaint.c
@@ -299,6 +299,17 @@
#define ROCKPAINT_TOOLBAR BUTTON_POWER
#define ROCKPAINT_TOOLBAR2 (BUTTON_POWER|BUTTON_REPEAT)
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_PAD
+#define ROCKPAINT_QUIT BUTTON_BACK
+#define ROCKPAINT_DRAW BUTTON_SELECT
+#define ROCKPAINT_MENU BUTTON_MENU
+#define ROCKPAINT_UP BUTTON_UP
+#define ROCKPAINT_DOWN BUTTON_DOWN
+#define ROCKPAINT_LEFT BUTTON_LEFT
+#define ROCKPAINT_RIGHT BUTTON_RIGHT
+#define ROCKPAINT_TOOLBAR BUTTON_SHORTCUT
+#define ROCKPAINT_TOOLBAR2 BUTTON_PLAYPAUSE
+
#else
#error "Please define keys for this keypad"
#endif
diff --git a/apps/plugins/sliding_puzzle.c b/apps/plugins/sliding_puzzle.c
index ad8eeb70ae..39c60628c7 100644
--- a/apps/plugins/sliding_puzzle.c
+++ b/apps/plugins/sliding_puzzle.c
@@ -301,6 +301,15 @@ CONFIG_KEYPAD == MROBE500_PAD
#define PUZZLE_SHUFFLE BUTTON_POWER
#define PUZZLE_PICTURE BUTTON_PLAY
+#elif (CONFIG_KEYPAD == CREATIVE_ZEN_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_SHORTCUT
+#define PUZZLE_PICTURE BUTTON_PLAYPAUSE
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/snake.c b/apps/plugins/snake.c
index eb1fb25b0d..55d91cb5f9 100644
--- a/apps/plugins/snake.c
+++ b/apps/plugins/snake.c
@@ -261,6 +261,14 @@ dir is the current direction of the snake - 0=up, 1=right, 2=down, 3=left;
#define SNAKE_DOWN BUTTON_DOWN
#define SNAKE_PLAYPAUSE BUTTON_PLAY
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_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_PLAYPAUSE
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/snake2.c b/apps/plugins/snake2.c
index e2f54f28c7..2fb5521a79 100644
--- a/apps/plugins/snake2.c
+++ b/apps/plugins/snake2.c
@@ -374,6 +374,14 @@ CONFIG_KEYPAD == MROBE500_PAD
#define SNAKE2_PLAYPAUSE BUTTON_PLAY
#define SNAKE2_PLAYPAUSE_TEXT "Play"
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_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_PLAYPAUSE
+#define SNAKE2_PLAYPAUSE_TEXT "Play/Pause"
#else
#error No keymap defined!
diff --git a/apps/plugins/sokoban.c b/apps/plugins/sokoban.c
index 9a7d6572cc..07b5856240 100644
--- a/apps/plugins/sokoban.c
+++ b/apps/plugins/sokoban.c
@@ -404,6 +404,18 @@
#define BUTTON_SAVE BUTTON_PLAY
#define BUTTON_SAVE_NAME "Play"
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_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_BACK
+#define SOKOBAN_REDO BUTTON_SHORTCUT
+#define SOKOBAN_PAUSE BUTTON_PLAYPAUSE
+#define BUTTON_SAVE BUTTON_PLAYPAUSE
+#define BUTTON_SAVE_NAME "Play/pause"
+
#elif CONFIG_KEYPAD == PHILIPS_HDD1630_PAD
#define SOKOBAN_LEFT BUTTON_LEFT
#define SOKOBAN_RIGHT BUTTON_RIGHT
diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c
index d97ae082a7..04e3c15d56 100644
--- a/apps/plugins/solitaire.c
+++ b/apps/plugins/solitaire.c
@@ -634,6 +634,23 @@ CONFIG_KEYPAD == MROBE500_PAD
#define HK_CUR2STACK "Option+Left"
#define HK_REM2STACK "Option+Right"
+#elif (CONFIG_KEYPAD == CREATIVE_ZEN_PAD)
+#define SOL_QUIT BUTTON_POWER
+#define SOL_UP BUTTON_UP
+#define SOL_DOWN BUTTON_DOWN
+#define SOL_LEFT BUTTON_LEFT
+#define SOL_RIGHT BUTTON_RIGHT
+#define SOL_MOVE BUTTON_SELECT
+#define SOL_DRAW BUTTON_PLAYPAUSE
+#define SOL_REM2CUR BUTTON_BACK
+#define SOL_CUR2STACK BUTTON_MENU
+#define SOL_REM2STACK BUTTON_SHORTCUT
+#define HK_MOVE "Select"
+#define HK_DRAW "Play/pause"
+#define HK_REM2CUR "Back"
+#define HK_CUR2STACK "Menu"
+#define HK_REM2STACK "Shortcut"
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/spacerocks.c b/apps/plugins/spacerocks.c
index 5f40589be8..68f47caa4a 100644
--- a/apps/plugins/spacerocks.c
+++ b/apps/plugins/spacerocks.c
@@ -324,6 +324,15 @@
#define AST_RIGHT BUTTON_RIGHT
#define AST_FIRE BUTTON_PLAY
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_PAD
+#define AST_PAUSE BUTTON_PLAYPAUSE
+#define AST_QUIT BUTTON_BACK
+#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 a7ef116d15..b43c05ebf5 100644
--- a/apps/plugins/star.c
+++ b/apps/plugins/star.c
@@ -565,6 +565,22 @@
#define STAR_TOGGLE_CONTROL_NAME "Play"
#define STAR_QUIT_NAME "Back"
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_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_SELECT
+#define STAR_LEVEL_UP BUTTON_MENU
+#define STAR_LEVEL_DOWN BUTTON_PLAYPAUSE
+#define STAR_LEVEL_REPEAT BUTTON_SHORTCUT
+#define STAR_LEVEL_UP_NAME "Menu"
+#define STAR_LEVEL_DOWN_NAME "Play/pause"
+#define STAR_LEVEL_REPEAT_NAME "Shortcut"
+#define STAR_TOGGLE_CONTROL_NAME "Select"
+#define STAR_QUIT_NAME "Back"
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/stopwatch.c b/apps/plugins/stopwatch.c
index bc0aca8ff5..83f5893150 100644
--- a/apps/plugins/stopwatch.c
+++ b/apps/plugins/stopwatch.c
@@ -297,6 +297,14 @@
#define STOPWATCH_SCROLL_UP BUTTON_UP
#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN
+#elif (CONFIG_KEYPAD == CREATIVE_ZEN_PAD)
+#define STOPWATCH_QUIT BUTTON_BACK
+#define STOPWATCH_START_STOP BUTTON_PLAYPAUSE
+#define STOPWATCH_RESET_TIMER BUTTON_SHORTCUT
+#define STOPWATCH_LAP_TIMER BUTTON_SELECT
+#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 11abc9c448..2bc65eeaa7 100644
--- a/apps/plugins/sudoku/sudoku.h
+++ b/apps/plugins/sudoku/sudoku.h
@@ -389,6 +389,15 @@
#define SUDOKU_BUTTON_TOGGLE BUTTON_PLAY
#define SUDOKU_BUTTON_POSSIBLE BUTTON_POWER
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_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_SELECT
+#define SUDOKU_BUTTON_POSSIBLE BUTTON_SHORTCUT
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/superdom.c b/apps/plugins/superdom.c
index 1f62b3cde7..cc2ef98143 100644
--- a/apps/plugins/superdom.c
+++ b/apps/plugins/superdom.c
@@ -206,6 +206,14 @@ char buf[255];
#define SUPERDOM_RIGHT BUTTON_RIGHT
#define SUPERDOM_CANCEL BUTTON_BACK
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_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
+
#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
#define SUPERDOM_OK BUTTON_SELECT
#define SUPERDOM_UP BUTTON_UP
diff --git a/apps/plugins/text_viewer/tv_button.h b/apps/plugins/text_viewer/tv_button.h
index b1660c0840..bcaa593cea 100644
--- a/apps/plugins/text_viewer/tv_button.h
+++ b/apps/plugins/text_viewer/tv_button.h
@@ -496,6 +496,16 @@
#define TV_AUTOSCROLL BUTTON_PLAY
#define TV_BOOKMARK BUTTON_POWER
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_PAD
+#define TV_QUIT BUTTON_BACK
+#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_MENU
+#define TV_AUTOSCROLL BUTTON_PLAYPAUSE
+#define TV_BOOKMARK BUTTON_SHORTCUT
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/vu_meter.c b/apps/plugins/vu_meter.c
index 5fd5003085..6d8922cd4b 100644
--- a/apps/plugins/vu_meter.c
+++ b/apps/plugins/vu_meter.c
@@ -384,6 +384,17 @@
#define LABEL_MENU "Left"
#define LABEL_VOLUME "Up/Down"
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_PAD
+#define VUMETER_QUIT BUTTON_BACK
+#define VUMETER_HELP BUTTON_SELECT
+#define VUMETER_MENU BUTTON_MENU
+#define VUMETER_UP BUTTON_UP
+#define VUMETER_DOWN BUTTON_DOWN
+#define LABEL_HELP "Select"
+#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 d7cb6fbba2..51021dfac4 100644
--- a/apps/plugins/wormlet.c
+++ b/apps/plugins/wormlet.c
@@ -361,6 +361,15 @@ CONFIG_KEYPAD == MROBE500_PAD
#define BTN_QUIT BUTTON_BACK
#define BTN_STOPRESET BUTTON_POWER
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_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_PLAYPAUSE
+#define BTN_QUIT BUTTON_BACK
+#define BTN_STOPRESET BUTTON_SHORTCUT
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/xobox.c b/apps/plugins/xobox.c
index 8c6988e0f9..77f01101ce 100644
--- a/apps/plugins/xobox.c
+++ b/apps/plugins/xobox.c
@@ -314,6 +314,14 @@ CONFIG_KEYPAD == MROBE500_PAD
#define DOWN BUTTON_DOWN
#define PAUSE BUTTON_PLAY
+#elif CONFIG_KEYPAD == CREATIVE_ZEN_PAD
+#define QUIT BUTTON_BACK
+#define LEFT BUTTON_LEFT
+#define RIGHT BUTTON_RIGHT
+#define UP BUTTON_UP
+#define DOWN BUTTON_DOWN
+#define PAUSE BUTTON_PLAYPAUSE
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/zxbox/keymaps.h b/apps/plugins/zxbox/keymaps.h
index b14a296d42..d8be7f832b 100644
--- a/apps/plugins/zxbox/keymaps.h
+++ b/apps/plugins/zxbox/keymaps.h
@@ -254,6 +254,14 @@
#define ZX_RIGHT BUTTON_RIGHT
#define ZX_SELECT BUTTON_PLAY
+#elif (CONFIG_KEYPAD == CREATIVE_ZEN_PAD)
+#define ZX_MENU BUTTON_MENU
+#define ZX_UP BUTTON_UP
+#define ZX_DOWN BUTTON_DOWN
+#define ZX_LEFT BUTTON_LEFT
+#define ZX_RIGHT BUTTON_RIGHT
+#define ZX_SELECT BUTTON_SELECT
+
#else
#error Keymap not defined!
diff --git a/apps/plugins/zxbox/zxbox_keyb.c b/apps/plugins/zxbox/zxbox_keyb.c
index b4b39d57da..489d3e8efd 100644
--- a/apps/plugins/zxbox/zxbox_keyb.c
+++ b/apps/plugins/zxbox/zxbox_keyb.c
@@ -262,6 +262,14 @@
#define KBD_UP BUTTON_UP
#define KBD_DOWN BUTTON_DOWN
+#elif (CONFIG_KEYPAD == CREATIVE_ZEN_PAD)
+#define KBD_SELECT BUTTON_SELECT
+#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/firmware/export/config/creativezen.h b/firmware/export/config/creativezen.h
index a7054ee2b1..ab9506772a 100644
--- a/firmware/export/config/creativezen.h
+++ b/firmware/export/config/creativezen.h
@@ -108,7 +108,7 @@
#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
-#define PLUGIN_BUFFER_SIZE 0x80000
+#define PLUGIN_BUFFER_SIZE 0x100000
#define AB_REPEAT_ENABLE
diff --git a/firmware/export/config/creativezenxfi.h b/firmware/export/config/creativezenxfi.h
index e24289f972..db68617c78 100644
--- a/firmware/export/config/creativezenxfi.h
+++ b/firmware/export/config/creativezenxfi.h
@@ -115,7 +115,7 @@
#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
-#define PLUGIN_BUFFER_SIZE 0x80000
+#define PLUGIN_BUFFER_SIZE 0x100000
#define AB_REPEAT_ENABLE
diff --git a/tools/configure b/tools/configure
index 4cfd29404f..12025ba942 100755
--- a/tools/configure
+++ b/tools/configure
@@ -2193,7 +2193,7 @@ fi
output="rockbox.creative"
bootoutput="bootloader-zenxfistyle.creative"
appextra="gui:recorder:radio"
- plugins=""
+ plugins="yes"
swcodec="yes"
toolset=$scramblebitmaptools
t_cpu="arm"
@@ -2337,12 +2337,12 @@ fi
target="CREATIVE_ZENXFI"
memory=64
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
- bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
+ bmp2rb_native="$rootdir/tools/bmp2rb -f 9"
tool="$rootdir/tools/scramble -add=zxfi"
output="rockbox.creative"
bootoutput="bootloader-zenxfi.creative"
appextra="gui:recorder:radio"
- plugins=""
+ plugins="yes"
swcodec="yes"
toolset=$scramblebitmaptools
t_cpu="arm"
@@ -2362,7 +2362,7 @@ fi
output="rockbox.creative"
bootoutput="bootloader-zenmozaic.creative"
appextra="gui:recorder:radio"
- plugins=""
+ plugins="yes"
swcodec="yes"
toolset=$scramblebitmaptools
t_cpu="arm"
@@ -2382,7 +2382,7 @@ fi
output="rockbox.creative"
bootoutput="bootloader-zen.creative"
appextra="gui:recorder:radio"
- plugins=""
+ plugins="yes"
swcodec="yes"
toolset=$scramblebitmaptools
t_cpu="arm"