summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorMichael Giacomelli <giac2000@hotmail.com>2009-08-04 03:08:32 +0000
committerMichael Giacomelli <giac2000@hotmail.com>2009-08-04 03:08:32 +0000
commit594b6e2b496e69ca843b21bf04810bdb919099a7 (patch)
tree046af11c0c199fae3e41006f5aff39b4f6539f4f /apps
parent11ac0b3f2a7d2abc0ae6127752559b1ffafbebff (diff)
Commit FS#10251. Plugins for the YH-820, YH-920, and YH-925 by Jens Erdmann with improvements and bitmap graphics by me.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22149 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rwxr-xr-xapps/keymaps/keymap-yh8xx_yh9xx.c2
-rw-r--r--apps/plugins/SUBDIRS2
-rw-r--r--apps/plugins/battery_bench.c7
-rw-r--r--apps/plugins/beatbox/beatbox.c6
-rw-r--r--apps/plugins/bitmaps/native/SOURCES5
-rwxr-xr-xapps/plugins/bitmaps/native/bubbles_background.128x96x16.bmpbin0 -> 36918 bytes
-rwxr-xr-xapps/plugins/bitmaps/native/rockblox_background.128x96x16.bmpbin0 -> 13366 bytes
-rw-r--r--apps/plugins/blackjack.c15
-rw-r--r--apps/plugins/bounce.c8
-rw-r--r--apps/plugins/brickmania.c9
-rw-r--r--apps/plugins/calculator.c11
-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.c7
-rw-r--r--apps/plugins/chopper.c5
-rw-r--r--apps/plugins/clix.c8
-rw-r--r--apps/plugins/cube.c11
-rw-r--r--apps/plugins/dict.c2
-rw-r--r--apps/plugins/doom/i_video.c11
-rw-r--r--apps/plugins/fireworks.c4
-rw-r--r--apps/plugins/flipit.c13
-rw-r--r--apps/plugins/goban/goban.h12
-rw-r--r--apps/plugins/greyscale.c8
-rw-r--r--apps/plugins/invadrox.c7
-rw-r--r--apps/plugins/jewels.c10
-rw-r--r--apps/plugins/jpeg/jpeg.h11
-rw-r--r--apps/plugins/lamp.c4
-rw-r--r--apps/plugins/lib/pluginlib_actions.c36
-rw-r--r--apps/plugins/logo.c7
-rw-r--r--apps/plugins/mandelbrot.c14
-rw-r--r--apps/plugins/matrix.c6
-rw-r--r--apps/plugins/midi/midiplay.c8
-rw-r--r--apps/plugins/minesweeper.c10
-rw-r--r--apps/plugins/mosaique.c5
-rw-r--r--apps/plugins/mp3_encoder.c6
-rw-r--r--apps/plugins/mpegplayer/mpeg_settings.c10
-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.c17
-rw-r--r--apps/plugins/plasma.c6
-rw-r--r--apps/plugins/png/png.h11
-rw-r--r--apps/plugins/pong.c8
-rw-r--r--apps/plugins/reversi/reversi-gui.h9
-rw-r--r--apps/plugins/robotfindskitten.c12
-rw-r--r--apps/plugins/rockblox.c11
-rw-r--r--apps/plugins/rockblox1d.c4
-rw-r--r--apps/plugins/rockboy/rockboy.c23
-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.c14
-rw-r--r--apps/plugins/snow.c3
-rw-r--r--apps/plugins/sokoban.c16
-rw-r--r--apps/plugins/solitaire.c21
-rw-r--r--apps/plugins/spacerocks.c13
-rw-r--r--apps/plugins/splitedit.c11
-rw-r--r--apps/plugins/star.c19
-rw-r--r--apps/plugins/starfield.c8
-rw-r--r--apps/plugins/stats.c3
-rw-r--r--apps/plugins/stopwatch.c8
-rw-r--r--apps/plugins/sudoku/sudoku.h10
-rw-r--r--apps/plugins/superdom.c8
-rw-r--r--apps/plugins/test_codec.c2
-rw-r--r--apps/plugins/test_fps.c2
-rw-r--r--apps/plugins/test_grey.c8
-rw-r--r--apps/plugins/test_greylib_bitmap_scale.c2
-rw-r--r--apps/plugins/test_scanrate.c7
-rw-r--r--apps/plugins/viewer.c10
-rw-r--r--apps/plugins/vu_meter.c13
-rw-r--r--apps/plugins/wormlet.c10
-rw-r--r--apps/plugins/xobox.c9
-rw-r--r--apps/plugins/zxbox/keymaps.h9
-rw-r--r--apps/plugins/zxbox/zxbox_keyb.c9
75 files changed, 680 insertions, 5 deletions
diff --git a/apps/keymaps/keymap-yh8xx_yh9xx.c b/apps/keymaps/keymap-yh8xx_yh9xx.c
index 4f9a010991..2cb7b4b67a 100755
--- a/apps/keymaps/keymap-yh8xx_yh9xx.c
+++ b/apps/keymaps/keymap-yh8xx_yh9xx.c
@@ -19,7 +19,7 @@
*
****************************************************************************/
-/* Button Code Definitions for iriver h100/h300 target */
+/* Button Code Definitions for samsung yh-820 / yh-920 / yh-925 target */
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
diff --git a/apps/plugins/SUBDIRS b/apps/plugins/SUBDIRS
index 91ce3c2425..76934579a9 100644
--- a/apps/plugins/SUBDIRS
+++ b/apps/plugins/SUBDIRS
@@ -33,7 +33,7 @@ zxbox
#endif
/* For all big enough colour screens, iriver H1x0 and iAudio M5 */
-#if defined(HAVE_LCD_COLOR) && LCD_HEIGHT > 80\
+#if defined(HAVE_LCD_COLOR) && LCD_HEIGHT > 96\
|| defined(IRIVER_H100_SERIES) || defined(IAUDIO_M5)
pacbox
#endif
diff --git a/apps/plugins/battery_bench.c b/apps/plugins/battery_bench.c
index aed9c77317..683286c1a0 100644
--- a/apps/plugins/battery_bench.c
+++ b/apps/plugins/battery_bench.c
@@ -185,6 +185,13 @@ PLUGIN_HEADER
#define BATTERY_OFF BUTTON_POWER
#define BATTERY_OFF_TXT "POWER"
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+
+#define BATTERY_ON BUTTON_LEFT
+#define BATTERY_OFF BUTTON_RIGHT
+#define BATTERY_ON_TXT "LEFT"
+#define BATTERY_OFF_TXT "RIGHT"
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/beatbox/beatbox.c b/apps/plugins/beatbox/beatbox.c
index 3dbaa827b9..0974dc3d05 100644
--- a/apps/plugins/beatbox/beatbox.c
+++ b/apps/plugins/beatbox/beatbox.c
@@ -83,6 +83,12 @@ PLUGIN_IRAM_DECLARE
#define BTN_UP BUTTON_SCROLL_UP
#define BTN_DOWN BUTTON_SCROLL_DOWN
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define BTN_QUIT BUTTON_PLAY
+#define BTN_RIGHT BUTTON_RIGHT
+#define BTN_UP BUTTON_UP
+#define BTN_DOWN BUTTON_DOWN
+
#endif
diff --git a/apps/plugins/bitmaps/native/SOURCES b/apps/plugins/bitmaps/native/SOURCES
index df93395ee1..4d98b7e4e6 100644
--- a/apps/plugins/bitmaps/native/SOURCES
+++ b/apps/plugins/bitmaps/native/SOURCES
@@ -136,6 +136,9 @@ bubbles_background.128x128x16.bmp
#elif (LCD_WIDTH >= 132) && (LCD_HEIGHT >= 80)
bubbles_emblem.132x80x16.bmp
bubbles_background.132x80x16.bmp
+#elif (LCD_WIDTH >= 128) && (LCD_HEIGHT >= 96)
+bubbles_emblem.132x80x16.bmp
+bubbles_background.128x96x16.bmp
#endif
#elif LCD_DEPTH <= 2 /* greyscale, mono */
#if (LCD_WIDTH >= 160) && (LCD_HEIGHT >= 128)
@@ -469,6 +472,8 @@ rockblox_background.160x128x16.bmp
rockblox_background.128x128x16.bmp
#elif (LCD_WIDTH == 132) && (LCD_HEIGHT == 80)
rockblox_background.132x80x16.bmp
+#elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 96)
+rockblox_background.128x96x2.bmp
#endif
#elif LCD_DEPTH == 2 /* greyscale versions */
#if (LCD_WIDTH == 160) && (LCD_HEIGHT == 128)
diff --git a/apps/plugins/bitmaps/native/bubbles_background.128x96x16.bmp b/apps/plugins/bitmaps/native/bubbles_background.128x96x16.bmp
new file mode 100755
index 0000000000..e285a8171e
--- /dev/null
+++ b/apps/plugins/bitmaps/native/bubbles_background.128x96x16.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/rockblox_background.128x96x16.bmp b/apps/plugins/bitmaps/native/rockblox_background.128x96x16.bmp
new file mode 100755
index 0000000000..0d576928d3
--- /dev/null
+++ b/apps/plugins/bitmaps/native/rockblox_background.128x96x16.bmp
Binary files differ
diff --git a/apps/plugins/blackjack.c b/apps/plugins/blackjack.c
index 97b44b3d3c..317b164aeb 100644
--- a/apps/plugins/blackjack.c
+++ b/apps/plugins/blackjack.c
@@ -401,6 +401,21 @@ struct highscore highest[NUM_SCORES];
#define BJACK_QUIT_NAME "POWER"
#define BJACK_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define BJACK_START (BUTTON_PLAY|BUTTON_RIGHT)
+#define BJACK_QUIT (BUTTON_PLAY|BUTTON_LEFT)
+#define BJACK_MAX (BUTTON_PLAY|BUTTON_UP)
+#define BJACK_MIN (BUTTON_PLAY|BUTTON_DOWN)
+#define BJACK_HIT BUTTON_PLAY
+#define BJACK_STAY BUTTON_REC
+#define BJACK_DOUBLEDOWN BUTTON_FFWD
+#define BJACK_SCORES (BUTTON_PLAY|BUTTON_REW)
+#define BJACK_RESUME BUTTON_REW
+#define BJACK_UP BUTTON_UP
+#define BJACK_DOWN BUTTON_DOWN
+#define BJACK_RIGHT BUTTON_RIGHT
+#define BJACK_LEFT BUTTON_LEFT
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/bounce.c b/apps/plugins/bounce.c
index 14bc7dea98..8baec546ce 100644
--- a/apps/plugins/bounce.c
+++ b/apps/plugins/bounce.c
@@ -177,6 +177,14 @@ PLUGIN_HEADER
#elif CONFIG_KEYPAD == MROBE500_PAD
#define BOUNCE_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define BOUNCE_LEFT BUTTON_LEFT
+#define BOUNCE_RIGHT BUTTON_RIGHT
+#define BOUNCE_UP BUTTON_UP
+#define BOUNCE_DOWN BUTTON_DOWN
+#define BOUNCE_QUIT BUTTON_FFWD
+#define BOUNCE_MODE BUTTON_PLAY
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/brickmania.c b/apps/plugins/brickmania.c
index e2273c7c87..b5c31372f3 100644
--- a/apps/plugins/brickmania.c
+++ b/apps/plugins/brickmania.c
@@ -186,6 +186,15 @@ CONFIG_KEYPAD == SANSA_M200_PAD
#elif CONFIG_KEYPAD == MROBE500_PAD
#define QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define QUIT BUTTON_FFWD
+#define SELECT BUTTON_PLAY
+#define LEFT BUTTON_LEFT
+#define RIGHT BUTTON_RIGHT
+#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 135335a7fc..33235fccb5 100644
--- a/apps/plugins/calculator.c
+++ b/apps/plugins/calculator.c
@@ -337,6 +337,17 @@ PLUGIN_HEADER
#elif CONFIG_KEYPAD == MROBE500_PAD
#define CALCULATOR_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == SAMSUNG_YH_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_REC
+#define CALCULATOR_INPUT BUTTON_PLAY
+#define CALCULATOR_CALC BUTTON_FFWD
+#define CALCULATOR_CLEAR BUTTON_REW
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/calendar.c b/apps/plugins/calendar.c
index 17116fe3e9..b9f9e8cf67 100644
--- a/apps/plugins/calendar.c
+++ b/apps/plugins/calendar.c
@@ -195,6 +195,16 @@ CONFIG_KEYPAD == SANSA_M200_PAD
#elif CONFIG_KEYPAD == MROBE500_PAD
#define CALENDAR_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define CALENDAR_QUIT BUTTON_REC
+#define CALENDAR_SELECT BUTTON_PLAY
+#define CALENDAR_NEXT_WEEK BUTTON_DOWN
+#define CALENDAR_PREV_WEEK BUTTON_UP
+#define CALENDAR_NEXT_DAY BUTTON_RIGHT
+#define CALENDAR_PREV_DAY BUTTON_LEFT
+#define CALENDAR_NEXT_MONTH BUTTON_FFWD
+#define CALENDAR_PREV_MONTH BUTTON_REW
+
#else
#error "No keypad setting."
#endif
diff --git a/apps/plugins/chessbox/chessbox_pgn.h b/apps/plugins/chessbox/chessbox_pgn.h
index abb0f8399b..d292e6b40a 100644
--- a/apps/plugins/chessbox/chessbox_pgn.h
+++ b/apps/plugins/chessbox/chessbox_pgn.h
@@ -333,6 +333,16 @@
#define CB_RESTART BUTTON_VOL_DOWN
#define CB_MENU (BUTTON_MENU|BUTTON_REL)
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define CB_SELECT (BUTTON_FFWD|BUTTON_RIGHT)
+#define CB_UP BUTTON_UP
+#define CB_DOWN BUTTON_DOWN
+#define CB_LEFT BUTTON_LEFT
+#define CB_RIGHT BUTTON_RIGHT
+#define CB_PLAY BUTTON_PLAY
+#define CB_LEVEL (BUTTON_FFWD|BUTTON_UP)
+#define CB_MENU (BUTTON_FFWD|BUTTON_LEFT)
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/chessclock.c b/apps/plugins/chessclock.c
index 8954e9ab13..28b1d95df3 100644
--- a/apps/plugins/chessclock.c
+++ b/apps/plugins/chessclock.c
@@ -241,6 +241,16 @@ PLUGIN_HEADER
#define CHC_SETTINGS_DEC BUTTON_VOL_DOWN
#define CHC_SETTINGS_CANCEL BUTTON_POWER
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define CHC_QUIT BUTTON_REC
+#define CHC_STARTSTOP BUTTON_PLAY
+#define CHC_RESET BUTTON_FFWD
+#define CHC_MENU BUTTON_LEFT
+#define CHC_SETTINGS_INC BUTTON_UP
+#define CHC_SETTINGS_DEC BUTTON_DOWN
+#define CHC_SETTINGS_OK BUTTON_PLAY
+#define CHC_SETTINGS_CANCEL BUTTON_REW
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/chip8.c b/apps/plugins/chip8.c
index 0fc2c61e65..2be281a3a2 100644
--- a/apps/plugins/chip8.c
+++ b/apps/plugins/chip8.c
@@ -1105,6 +1105,13 @@ CONFIG_KEYPAD == SANSA_M200_PAD
#elif (CONFIG_KEYPAD == ONDAVX747_PAD) || CONFIG_KEYPAD == MROBE500_PAD
#define CHIP8_OFF BUTTON_POWER
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define CHIP8_OFF BUTTON_REC
+#define CHIP8_KEY2 BUTTON_UP
+#define CHIP8_KEY4 BUTTON_LEFT
+#define CHIP8_KEY5 BUTTON_PLAY
+#define CHIP8_KEY6 BUTTON_RIGHT
+#define CHIP8_KEY8 BUTTON_DOWN
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/chopper.c b/apps/plugins/chopper.c
index a75a8d42cc..4a39d2da54 100644
--- a/apps/plugins/chopper.c
+++ b/apps/plugins/chopper.c
@@ -137,6 +137,11 @@ Still To do:
#elif CONFIG_KEYPAD == ONDAVX747_PAD || CONFIG_KEYPAD == MROBE500_PAD
#define QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define QUIT BUTTON_LEFT
+#define ACTION BUTTON_RIGHT
+#define ACTIONTEXT "RIGHT"
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/clix.c b/apps/plugins/clix.c
index 2b5b7febeb..07158c49c1 100644
--- a/apps/plugins/clix.c
+++ b/apps/plugins/clix.c
@@ -148,6 +148,14 @@ PLUGIN_HEADER
#elif (CONFIG_KEYPAD == MROBE500_PAD)
#define CLIX_BUTTON_QUIT BUTTON_POWER
+#elif (CONFIG_KEYPAD == SAMSUNG_YH_PAD)
+#define CLIX_BUTTON_QUIT BUTTON_REC
+#define CLIX_BUTTON_LEFT BUTTON_LEFT
+#define CLIX_BUTTON_RIGHT BUTTON_RIGHT
+#define CLIX_BUTTON_CLICK BUTTON_PLAY
+#define CLIX_BUTTON_UP BUTTON_UP
+#define CLIX_BUTTON_DOWN BUTTON_DOWN
+
#else
#error "no keymap"
#endif
diff --git a/apps/plugins/cube.c b/apps/plugins/cube.c
index c770214700..b90bbee481 100644
--- a/apps/plugins/cube.c
+++ b/apps/plugins/cube.c
@@ -242,6 +242,17 @@ PLUGIN_HEADER
#elif CONFIG_KEYPAD == ONDAVX747_PAD
#define CUBE_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define CUBE_QUIT BUTTON_REC
+#define CUBE_NEXT BUTTON_RIGHT
+#define CUBE_PREV BUTTON_LEFT
+#define CUBE_INC BUTTON_UP
+#define CUBE_DEC BUTTON_DOWN
+#define CUBE_MODE BUTTON_REW
+#define CUBE_PAUSE BUTTON_PLAY
+#define CUBE_HIGHSPEED BUTTON_FFWD
+
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/dict.c b/apps/plugins/dict.c
index fcc55faef1..0eada8b83c 100644
--- a/apps/plugins/dict.c
+++ b/apps/plugins/dict.c
@@ -142,6 +142,8 @@ long reverse (long N) {
#define LP_QUIT BUTTON_POWER
#elif CONFIG_KEYPAD == ONDAVX747_PAD
#define LP_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define LP_QUIT BUTTON_LEFT
#else
#define LP_QUIT BUTTON_OFF
#endif
diff --git a/apps/plugins/doom/i_video.c b/apps/plugins/doom/i_video.c
index 759e2179aa..e463ea5186 100644
--- a/apps/plugins/doom/i_video.c
+++ b/apps/plugins/doom/i_video.c
@@ -326,6 +326,17 @@ void I_ShutdownGraphics(void)
#define DOOMBUTTON_SHOOT BUTTON_VOL_UP
#define DOOMBUTTON_WEAPON BUTTON_VOL_DOWN
#define DOOMBUTTON_MAP BUTTON_MENU
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define DOOMBUTTON_UP BUTTON_UP
+#define DOOMBUTTON_DOWN BUTTON_DOWN
+#define DOOMBUTTON_LEFT BUTTON_LEFT
+#define DOOMBUTTON_RIGHT BUTTON_RIGHT
+#define DOOMBUTTON_SHOOT BUTTON_PLAY
+#define DOOMBUTTON_OPEN (BUTTON_PLAY|BUTTON_LEFT)
+#define DOOMBUTTON_ESC BUTTON_REC
+#define DOOMBUTTON_ENTER (BUTTON_PLAY|BUTTON_RIGHT)
+#define DOOMBUTTON_WEAPON (BUTTON_PLAY|BUTTON_UP)
+#define DOOMBUTTON_MAP (BUTTON_PLAY|BUTTON_DOWN)
#else
#error Keymap not defined!
#endif
diff --git a/apps/plugins/fireworks.c b/apps/plugins/fireworks.c
index d237007460..4b3e2fd117 100644
--- a/apps/plugins/fireworks.c
+++ b/apps/plugins/fireworks.c
@@ -102,6 +102,10 @@ PLUGIN_HEADER
#elif (CONFIG_KEYPAD == ONDAVX747_PAD)
#define BTN_MENU (BUTTON_MENU|BUTTON_REL)
+#elif (CONFIG_KEYPAD == SAMSUNG_YH_PAD)
+#define BTN_MENU BUTTON_LEFT
+#define BTN_FIRE BUTTON_PLAY
+
#elif defined(HAVE_TOUCHSCREEN)
/* This is a touchscreen target */
#else
diff --git a/apps/plugins/flipit.c b/apps/plugins/flipit.c
index fe383c1394..1023d3ac54 100644
--- a/apps/plugins/flipit.c
+++ b/apps/plugins/flipit.c
@@ -280,6 +280,19 @@ PLUGIN_HEADER
#define FLIPIT_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == SAMSUNG_YH_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_REC
+#define FLIPIT_SHUFFLE BUTTON_PLAY
+#define FLIPIT_SOLVE BUTTON_FFWD
+#define FLIPIT_STEP_BY_STEP (BUTTON_PLAY|BUTTON_UP)
+#define FLIPIT_TOGGLE (BUTTON_PLAY|BUTTON_DOWN)
+
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/goban/goban.h b/apps/plugins/goban/goban.h
index 9a77221586..54ec968f0b 100644
--- a/apps/plugins/goban/goban.h
+++ b/apps/plugins/goban/goban.h
@@ -269,6 +269,18 @@
#define GBN_BUTTON_MENU BUTTON_MENU | BUTTON_REPEAT
#define GBN_BUTTON_PLAY BUTTON_MENU | BUTTON_REL
#define GBN_BUTTON_NAV_MODE BUTTON_OFF
+
+#elif (CONFIG_KEYPAD == SAMSUNG_YH_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_REW
+#define GBN_BUTTON_ADVANCE BUTTON_FFWD
+#define GBN_BUTTON_MENU BUTTON_PLAY | BUTTON_LEFT
+#define GBN_BUTTON_PLAY BUTTON_PLAY | BUTTON_RIGHT
+#define GBN_BUTTON_CONTEXT BUTTON_PLAY | BUTTON_DOWN
+#define GBN_BUTTON_NEXT_VAR BUTTON_PLAY | BUTTON_UP
/* No context */
/* No advance/retreat */
/* no next var */
diff --git a/apps/plugins/greyscale.c b/apps/plugins/greyscale.c
index 4ff704e93a..73dd98b216 100644
--- a/apps/plugins/greyscale.c
+++ b/apps/plugins/greyscale.c
@@ -99,6 +99,14 @@ PLUGIN_HEADER
#define GREYSCALE_RIGHT BUTTON_RIGHT
#define GREYSCALE_OFF BUTTON_POWER
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define GREYSCALE_SHIFT BUTTON_FFWD
+#define GREYSCALE_UP BUTTON_UP
+#define GREYSCALE_DOWN BUTTON_DOWN
+#define GREYSCALE_LEFT BUTTON_LEFT
+#define GREYSCALE_RIGHT BUTTON_RIGHT
+#define GREYSCALE_OFF BUTTON_PLAY
+
#endif
#define GFX_HEIGHT (LCD_HEIGHT-8)
diff --git a/apps/plugins/invadrox.c b/apps/plugins/invadrox.c
index d424f1f4cb..3fa983b12e 100644
--- a/apps/plugins/invadrox.c
+++ b/apps/plugins/invadrox.c
@@ -144,6 +144,13 @@ PLUGIN_HEADER
#define QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+
+#define QUIT BUTTON_REC
+#define LEFT BUTTON_LEFT
+#define RIGHT BUTTON_RIGHT
+#define FIRE BUTTON_PLAY
+
#else
#error INVADROX: Unsupported keypad
#endif
diff --git a/apps/plugins/jewels.c b/apps/plugins/jewels.c
index 71cd093963..8f799e973f 100644
--- a/apps/plugins/jewels.c
+++ b/apps/plugins/jewels.c
@@ -246,6 +246,16 @@ CONFIG_KEYPAD == MROBE500_PAD
#define JEWELS_CANCEL BUTTON_POWER
#define HK_CANCEL "POWER"
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define JEWELS_UP BUTTON_UP
+#define JEWELS_DOWN BUTTON_DOWN
+#define JEWELS_LEFT BUTTON_LEFT
+#define JEWELS_RIGHT BUTTON_RIGHT
+#define JEWELS_SELECT BUTTON_PLAY
+#define JEWELS_CANCEL BUTTON_REW
+#define HK_SELECT "PLAY"
+#define HK_CANCEL "REWIND"
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/jpeg/jpeg.h b/apps/plugins/jpeg/jpeg.h
index cb6b4f9123..bfe09fa4fd 100644
--- a/apps/plugins/jpeg/jpeg.h
+++ b/apps/plugins/jpeg/jpeg.h
@@ -278,6 +278,17 @@
#elif CONFIG_KEYPAD == ONDAVX747_PAD
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define JPEG_ZOOM_IN (BUTTON_PLAY|BUTTON_UP)
+#define JPEG_ZOOM_OUT (BUTTON_PLAY|BUTTON_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_PLAY
+#define JPEG_NEXT BUTTON_FFWD
+#define JPEG_PREVIOUS BUTTON_REW
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/lamp.c b/apps/plugins/lamp.c
index c35973bd85..7f7204c30a 100644
--- a/apps/plugins/lamp.c
+++ b/apps/plugins/lamp.c
@@ -86,6 +86,10 @@ PLUGIN_HEADER
# define LAMP_LEFT BUTTON_VOL_DOWN
# define LAMP_RIGHT BUTTON_VOL_UP
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+# define LAMP_LEFT BUTTON_LEFT
+# define LAMP_RIGHT BUTTON_RIGHT
+
#else
# error Missing key definitions for this keypad
#endif
diff --git a/apps/plugins/lib/pluginlib_actions.c b/apps/plugins/lib/pluginlib_actions.c
index 776dd2e738..55c2f46902 100644
--- a/apps/plugins/lib/pluginlib_actions.c
+++ b/apps/plugins/lib/pluginlib_actions.c
@@ -68,6 +68,15 @@ const struct button_mapping remote_directions[] =
{ PLA_DOWN_REPEAT, BUTTON_RC_DOWN|BUTTON_REPEAT, BUTTON_NONE},
{ PLA_LEFT_REPEAT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE},
{ PLA_RIGHT_REPEAT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE},
+#elif (CONFIG_KEYPAD == SAMSUNG_YH_PAD)
+ { PLA_UP, BUTTON_UP, BUTTON_NONE},
+ { PLA_DOWN, BUTTON_DOWN, BUTTON_NONE},
+ { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE},
+ { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE},
+ { PLA_UP_REPEAT, BUTTON_UP|BUTTON_REW, BUTTON_NONE},
+ { PLA_DOWN_REPEAT, BUTTON_DOWN|BUTTON_REW, BUTTON_NONE},
+ { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REW, BUTTON_NONE},
+ { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REW, BUTTON_NONE},
#else
#error pluginlib_actions: Unsupported remote keypad
#endif
@@ -163,6 +172,15 @@ const struct button_mapping generic_directions[] =
{ PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE},
{ PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
#elif (CONFIG_KEYPAD == ONDAVX747_PAD) /* Touchscreen target */
+#elif (CONFIG_KEYPAD == SAMSUNG_YH_PAD)
+ { PLA_UP, BUTTON_UP, BUTTON_NONE},
+ { PLA_DOWN, BUTTON_DOWN, BUTTON_NONE},
+ { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE},
+ { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE},
+ { PLA_UP_REPEAT, BUTTON_UP|BUTTON_REW, BUTTON_NONE},
+ { PLA_DOWN_REPEAT, BUTTON_DOWN|BUTTON_REW, BUTTON_NONE},
+ { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REW, BUTTON_NONE},
+ { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REW, BUTTON_NONE},
#else
#error pluginlib_actions: Unsupported keypad
#endif
@@ -285,6 +303,13 @@ const struct button_mapping generic_left_right_fire[] =
{ PLA_FIRE, BUTTON_SELECT, BUTTON_NONE},
{ PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE},
#elif (CONFIG_KEYPAD == ONDAVX747_PAD) /* Touchscreen target */
+#elif (CONFIG_KEYPAD == SAMSUNG_YH_PAD)
+ { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE},
+ { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE},
+ { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REW, BUTTON_NONE},
+ { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REW, BUTTON_NONE},
+ { PLA_FIRE, BUTTON_UP, BUTTON_NONE},
+ { PLA_FIRE_REPEAT, BUTTON_UP|BUTTON_REW, BUTTON_NONE},
#else
#error pluginlib_actions: Unsupported keypad
#endif
@@ -446,6 +471,12 @@ const struct button_mapping generic_actions[] =
{PLA_MENU, BUTTON_MENU, BUTTON_NONE},
{PLA_FIRE, BUTTON_VOL_UP, BUTTON_NONE},
{PLA_FIRE_REPEAT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE},
+#elif (CONFIG_KEYPAD == SAMSUNG_YH_PAD)
+ {PLA_QUIT, BUTTON_REW, BUTTON_NONE},
+ {PLA_START, BUTTON_FFWD, BUTTON_NONE},
+ {PLA_MENU, BUTTON_PLAY, BUTTON_NONE},
+ {PLA_FIRE, BUTTON_UP, BUTTON_NONE},
+ {PLA_FIRE_REPEAT, BUTTON_UP|BUTTON_REW, BUTTON_NONE},
#else
#error pluginlib_actions: Unsupported keypad
#endif
@@ -526,6 +557,11 @@ const struct button_mapping generic_increase_decrease[] =
{PLA_DEC, BUTTON_VOL_DOWN, BUTTON_NONE},
{PLA_INC_REPEAT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE},
{PLA_DEC_REPEAT, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE},
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+ {PLA_INC, BUTTON_UP, BUTTON_NONE},
+ {PLA_DEC, BUTTON_DOWN, BUTTON_NONE},
+ {PLA_INC_REPEAT, BUTTON_UP|BUTTON_REW, BUTTON_NONE},
+ {PLA_DEC_REPEAT, BUTTON_DOWN|BUTTON_REW, BUTTON_NONE},
#else
#error pluginlib_actions: Unsupported keypad
#endif
diff --git a/apps/plugins/logo.c b/apps/plugins/logo.c
index f3a875ff14..2456704bd1 100644
--- a/apps/plugins/logo.c
+++ b/apps/plugins/logo.c
@@ -170,6 +170,13 @@ const unsigned char rockbox16x7[] = {
#elif CONFIG_KEYPAD == ONDAVX747_PAD
#define LP_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define LP_QUIT BUTTON_PLAY
+#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 61469d7597..058b468465 100644
--- a/apps/plugins/mandelbrot.c
+++ b/apps/plugins/mandelbrot.c
@@ -286,6 +286,20 @@ PLUGIN_HEADER
#elif CONFIG_KEYPAD == ONDAVX747_PAD || CONFIG_KEYPAD == MROBE500_PAD
#define MANDELBROT_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define MANDELBROT_QUIT BUTTON_REC
+#define MANDELBROT_UP BUTTON_UP
+#define MANDELBROT_DOWN BUTTON_DOWN
+#define MANDELBROT_LEFT BUTTON_LEFT
+#define MANDELBROT_RIGHT BUTTON_RIGHT
+#define MANDELBROT_ZOOM_IN_PRE (BUTTON_FFWD | BUTTON_UP)
+#define MANDELBROT_ZOOM_IN (BUTTON_REW | BUTTON_UP)
+#define MANDELBROT_ZOOM_OUT_PRE (BUTTON_FFWD | BUTTON_DOWN)
+#define MANDELBROT_ZOOM_OUT (BUTTON_REW | BUTTON_DOWN)
+#define MANDELBROT_MAXITER_INC (BUTTON_PLAY | BUTTON_UP)
+#define MANDELBROT_MAXITER_DEC (BUTTON_FFWD | BUTTON_DOWN)
+#define MANDELBROT_RESET (BUTTON_PLAY | BUTTON_RIGHT)
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/matrix.c b/apps/plugins/matrix.c
index 154a2e5378..84a333e1fb 100644
--- a/apps/plugins/matrix.c
+++ b/apps/plugins/matrix.c
@@ -136,6 +136,12 @@ extern const fb_data matrix_normal[];
#elif (CONFIG_KEYPAD == ONDAVX747_PAD) || CONFIG_KEYPAD == MROBE500_PAD
#define MATRIX_EXIT BUTTON_POWER
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define MATRIX_EXIT BUTTON_REC
+#define MATRIX_SLEEP_MORE BUTTON_UP
+#define MATRIX_SLEEP_LESS BUTTON_DOWN
+#define MATRIX_PAUSE BUTTON_PLAY
+
#else
#error Unsupported keypad
#endif
diff --git a/apps/plugins/midi/midiplay.c b/apps/plugins/midi/midiplay.c
index fe9bc230c9..c24da7f309 100644
--- a/apps/plugins/midi/midiplay.c
+++ b/apps/plugins/midi/midiplay.c
@@ -169,6 +169,14 @@ PLUGIN_IRAM_DECLARE
#elif CONFIG_KEYPAD == ONDAVX747_PAD
#define BTN_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define BTN_QUIT BUTTON_REW
+#define BTN_RIGHT BUTTON_RIGHT
+#define BTN_LEFT BUTTON_LEFT
+#define BTN_UP BUTTON_UP
+#define BTN_DOWN BUTTON_DOWN
+#define BTN_PLAY BUTTON_PLAY
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/minesweeper.c b/apps/plugins/minesweeper.c
index 47be0ea309..a1190d5a51 100644
--- a/apps/plugins/minesweeper.c
+++ b/apps/plugins/minesweeper.c
@@ -227,6 +227,16 @@ enum minesweeper_status {
#elif (CONFIG_KEYPAD == ONDAVX747_PAD) || CONFIG_KEYPAD == MROBE500_PAD
# define MINESWP_QUIT BUTTON_POWER
+#elif (CONFIG_KEYPAD == SAMSUNG_YH_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_REC
+# define MINESWP_TOGGLE BUTTON_PLAY
+# define MINESWP_DISCOVER BUTTON_REW
+# define MINESWP_INFO BUTTON_FFWD
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/mosaique.c b/apps/plugins/mosaique.c
index 3a649486c0..b54e71f3f8 100644
--- a/apps/plugins/mosaique.c
+++ b/apps/plugins/mosaique.c
@@ -150,6 +150,11 @@ PLUGIN_HEADER
#elif CONFIG_KEYPAD == ONDAVX747_PAD
#define MOSAIQUE_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define MOSAIQUE_QUIT BUTTON_PLAY
+#define MOSAIQUE_SPEED BUTTON_UP
+#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 9da0d6925f..6ef1c762a6 100644
--- a/apps/plugins/mp3_encoder.c
+++ b/apps/plugins/mp3_encoder.c
@@ -2491,6 +2491,12 @@ void get_mp3_filename(const char *wav_name)
#elif CONFIG_KEYPAD == ONDAVX747_PAD || CONFIG_KEYPAD == MROBE500_PAD
#define MP3ENC_DONE BUTTON_POWER
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define MP3ENC_PREV BUTTON_UP
+#define MP3ENC_NEXT BUTTON_DOWN
+#define MP3ENC_DONE BUTTON_PLAY
+#define MP3ENC_SELECT BUTTON_RIGHT
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/mpegplayer/mpeg_settings.c b/apps/plugins/mpegplayer/mpeg_settings.c
index a9b66fc22f..62293d101f 100644
--- a/apps/plugins/mpegplayer/mpeg_settings.c
+++ b/apps/plugins/mpegplayer/mpeg_settings.c
@@ -173,6 +173,16 @@ struct mpeg_settings settings;
#elif CONFIG_KEYPAD == ONDAVX747_PAD
#define MPEG_START_TIME_EXIT BUTTON_POWER
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define MPEG_START_TIME_SELECT BUTTON_PLAY
+#define MPEG_START_TIME_LEFT BUTTON_LEFT
+#define MPEG_START_TIME_RIGHT BUTTON_RIGHT
+#define MPEG_START_TIME_UP BUTTON_UP
+#define MPEG_START_TIME_DOWN BUTTON_DOWN
+#define MPEG_START_TIME_SCROLL_DOWN BUTTON_FFWD
+#define MPEG_START_TIME_SCROLL_UP BUTTON_REW
+#define MPEG_START_TIME_EXIT BUTTON_REC
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/mpegplayer/mpegplayer.c b/apps/plugins/mpegplayer/mpegplayer.c
index 6412c43af3..47407cca8e 100644
--- a/apps/plugins/mpegplayer/mpegplayer.c
+++ b/apps/plugins/mpegplayer/mpegplayer.c
@@ -285,6 +285,15 @@ CONFIG_KEYPAD == SANSA_M200_PAD
#define MPEG_VOLDOWN BUTTON_VOL_DOWN
#define MPEG_VOLUP BUTTON_VOL_UP
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define MPEG_MENU BUTTON_LEFT
+#define MPEG_STOP BUTTON_RIGHT
+#define MPEG_PAUSE BUTTON_PLAY
+#define MPEG_VOLDOWN BUTTON_DOWN
+#define MPEG_VOLUP BUTTON_UP
+#define MPEG_RW BUTTON_REW
+#define MPEG_FF BUTTON_FFWD
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/oscilloscope.c b/apps/plugins/oscilloscope.c
index 1e9e873ae7..15943ef53e 100644
--- a/apps/plugins/oscilloscope.c
+++ b/apps/plugins/oscilloscope.c
@@ -251,6 +251,17 @@ PLUGIN_HEADER
#elif CONFIG_KEYPAD == MROBE500_PAD
#define OSCILLOSCOPE_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define OSCILLOSCOPE_QUIT BUTTON_REC
+#define OSCILLOSCOPE_DRAWMODE (BUTTON_PLAY|BUTTON_LEFT)
+#define OSCILLOSCOPE_ADVMODE (BUTTON_PLAY|BUTTON_RIGHT)
+#define OSCILLOSCOPE_ORIENTATION (BUTTON_PLAY|BUTTON_UP)
+#define OSCILLOSCOPE_PAUSE (BUTTON_PLAY|BUTTON_DOWN)
+#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 0b0ed5fd52..a4e1f8879d 100644
--- a/apps/plugins/pacbox/pacbox.h
+++ b/apps/plugins/pacbox/pacbox.h
@@ -196,6 +196,17 @@
#define PACMAN_MENU (BUTTON_MENU|BUTTON_REL)
+#elif CONFIG_KEYPAD == SAMSUNG_YH_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_REC
+#define PACMAN_2UP BUTTON_REW
+#define PACMAN_COIN BUTTON_FFWD
+#define PACMAN_MENU BUTTON_PLAY
+
#else
#error Keymap not defined!
diff --git a/apps/plugins/pegbox.c b/apps/plugins/pegbox.c
index cd90de49c6..761a58ae87 100644
--- a/apps/plugins/pegbox.c
+++ b/apps/plugins/pegbox.c
@@ -361,6 +361,23 @@ PLUGIN_HEADER
#define QUIT_TEXT "POWER"
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define PEGBOX_SAVE (BUTTON_REC|BUTTON_FFWD)
+#define PEGBOX_QUIT (BUTTON_REC|BUTTON_PLAY)
+#define PEGBOX_RESTART (BUTTON_REC|BUTTON_REW)
+#define PEGBOX_LVL_UP BUTTON_FFWD
+#define PEGBOX_LVL_DOWN BUTTON_REW
+#define PEGBOX_UP BUTTON_UP
+#define PEGBOX_DOWN BUTTON_DOWN
+#define PEGBOX_RIGHT BUTTON_RIGHT
+#define PEGBOX_LEFT BUTTON_LEFT
+
+#define SAVE_TEXT "REC + FFWD"
+#define QUIT_TEXT "REC + PLAY"
+#define RESTART_TEXT "REC + REW"
+#define LVL_UP_TEXT "FFWD"
+#define LVL_DOWN_TEXT "REW"
+
#else
#error Unsupported keymap!
#endif
diff --git a/apps/plugins/plasma.c b/apps/plugins/plasma.c
index 00287eb0b8..294747ffe4 100644
--- a/apps/plugins/plasma.c
+++ b/apps/plugins/plasma.c
@@ -130,6 +130,12 @@ static int plasma_frequency;
#elif (CONFIG_KEYPAD == ONDAVX747_PAD)
#define PLASMA_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define PLASMA_QUIT BUTTON_PLAY
+#define PLASMA_INCREASE_FREQUENCY BUTTON_UP
+#define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN
+#define PLASMA_REGEN_COLORS BUTTON_LEFT
+
#endif
#ifdef HAVE_TOUCHSCREEN
diff --git a/apps/plugins/png/png.h b/apps/plugins/png/png.h
index f52976eeb9..090eaa959d 100644
--- a/apps/plugins/png/png.h
+++ b/apps/plugins/png/png.h
@@ -301,6 +301,17 @@ You are free to name this file lodepng.cpp or lodepng.c depending on your usage.
#elif CONFIG_KEYPAD == ONDAVX747_PAD
#define PNG_MENU BUTTON_POWER
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define PNG_ZOOM_IN (BUTTON_PLAY|BUTTON_UP)
+#define PNG_ZOOM_OUT (BUTTON_PLAY|BUTTON_DOWN)
+#define PNG_UP BUTTON_UP
+#define PNG_DOWN BUTTON_DOWN
+#define PNG_LEFT BUTTON_LEFT
+#define PNG_RIGHT BUTTON_RIGHT
+#define PNG_MENU BUTTON_PLAY
+#define PNG_NEXT BUTTON_FFWD
+#define PNG_PREVIOUS BUTTON_REW
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/pong.c b/apps/plugins/pong.c
index cb47d664cc..c49b863717 100644
--- a/apps/plugins/pong.c
+++ b/apps/plugins/pong.c
@@ -187,6 +187,14 @@ PLUGIN_HEADER
#elif (CONFIG_KEYPAD == ONDAVX747_PAD) || CONFIG_KEYPAD == MROBE500_PAD
#define PONG_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define PONG_QUIT BUTTON_REC
+#define PONG_PAUSE BUTTON_PLAY
+#define PONG_LEFT_UP BUTTON_UP
+#define PONG_LEFT_DOWN BUTTON_DOWN
+#define PONG_RIGHT_UP BUTTON_FFWD
+#define PONG_RIGHT_DOWN BUTTON_REW
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/reversi/reversi-gui.h b/apps/plugins/reversi/reversi-gui.h
index 1ad2d52ed3..ffb6b53af3 100644
--- a/apps/plugins/reversi/reversi-gui.h
+++ b/apps/plugins/reversi/reversi-gui.h
@@ -186,6 +186,15 @@
#define REVERSI_BUTTON_QUIT BUTTON_POWER
#define REVERSI_BUTTON_MENU BUTTON_MENU
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define REVERSI_BUTTON_QUIT BUTTON_REC
+#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_FFWD
+#define REVERSI_BUTTON_MENU BUTTON_PLAY
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/robotfindskitten.c b/apps/plugins/robotfindskitten.c
index ed3cda2fc7..a2bff3bfbe 100644
--- a/apps/plugins/robotfindskitten.c
+++ b/apps/plugins/robotfindskitten.c
@@ -496,6 +496,18 @@ static char* messages[] =
# define RFK_RUP (BUTTON_UP | BUTTON_REPEAT)
# define RFK_RDOWN (BUTTON_DOWN | BUTTON_REPEAT)
+#elif (CONFIG_KEYPAD == SAMSUNG_YH_PAD)
+# undef __PLUGINLIB_ACTIONS_H__
+# define RFK_QUIT (BUTTON_REC|BUTTON_REPEAT)
+# define RFK_RIGHT BUTTON_RIGHT
+# define RFK_LEFT BUTTON_LEFT
+# define RFK_UP BUTTON_UP
+# define RFK_DOWN BUTTON_DOWN
+# define RFK_RRIGHT (BUTTON_PLAY | BUTTON_RIGHT)
+# define RFK_RLEFT (BUTTON_PLAY | BUTTON_LEFT)
+# define RFK_RUP (BUTTON_PLAY | BUTTON_UP)
+# define RFK_RDOWN (BUTTON_PLAY | BUTTON_DOWN)
+
#else
# define RFK_QUIT PLA_QUIT
# define RFK_RIGHT PLA_RIGHT
diff --git a/apps/plugins/rockblox.c b/apps/plugins/rockblox.c
index f3857c35fc..3692526073 100644
--- a/apps/plugins/rockblox.c
+++ b/apps/plugins/rockblox.c
@@ -287,6 +287,17 @@ PLUGIN_HEADER
#define ROCKBLOX_OFF BUTTON_POWER
#define ROCKBLOX_RESTART BUTTON_MENU
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+
+#define ROCKBLOX_OFF (BUTTON_REC|BUTTON_PLAY)
+#define ROCKBLOX_ROTATE_RIGHT BUTTON_UP
+#define ROCKBLOX_ROTATE_LEFT BUTTON_DOWN
+#define ROCKBLOX_DOWN BUTTON_REW
+#define ROCKBLOX_LEFT BUTTON_LEFT
+#define ROCKBLOX_RIGHT BUTTON_RIGHT
+#define ROCKBLOX_DROP BUTTON_FFWD
+#define ROCKBLOX_RESTART (BUTTON_REC|BUTTON_REW)
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/rockblox1d.c b/apps/plugins/rockblox1d.c
index 2db83d6537..12f05bb639 100644
--- a/apps/plugins/rockblox1d.c
+++ b/apps/plugins/rockblox1d.c
@@ -105,6 +105,10 @@ PLUGIN_HEADER
#define ONEDROCKBLOX_DOWN BUTTON_MENU
#define ONEDROCKBLOX_QUIT BUTTON_POWER
+#elif (CONFIG_KEYPAD == SAMSUNG_YH_PAD)
+#define ONEDROCKBLOX_DOWN BUTTON_DOWN
+#define ONEDROCKBLOX_QUIT BUTTON_PLAY
+
#elif defined(HAVE_TOUCHSCREEN)
#define ONEDROCKBLOX_DOWN BUTTON_BOTTOMMIDDLE
diff --git a/apps/plugins/rockboy/rockboy.c b/apps/plugins/rockboy/rockboy.c
index 31ad42ebdf..85040b2cd6 100644
--- a/apps/plugins/rockboy/rockboy.c
+++ b/apps/plugins/rockboy/rockboy.c
@@ -244,7 +244,28 @@ static void setoptions (void)
#elif CONFIG_KEYPAD == ONDAVX747_PAD
options.A=BUTTON_VOL_UP;
options.B=BUTTON_VOL_DOWN;
- options.MENU=BUTTON_MENU;
+ options.MENU=BUTTON_MENU;
+
+#elif CONFIG_KEYPAD == IRIVER_H10_PAD
+ options.UP=BUTTON_UP;
+ options.DOWN=BUTTON_DOWN;
+
+ options.A=BUTTON_PLAY;
+ options.B=BUTTON_FFWD;
+ options.START=BUTTON_REW;
+ options.SELECT=BUTTON_RIGHT;
+ options.MENU=BUTTON_LEFT;
+
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+ options.UP=BUTTON_UP;
+ options.DOWN=BUTTON_DOWN;
+
+ options.A=BUTTON_PLAY;
+ options.B=BUTTON_REW;
+ options.START=BUTTON_REC;
+ options.SELECT=BUTTON_FFWD;
+ options.MENU=BUTTON_NONE;
+
#else
#error No Keymap Defined!
#endif
diff --git a/apps/plugins/rockpaint.c b/apps/plugins/rockpaint.c
index 5de6c14a6b..5388aceed5 100644
--- a/apps/plugins/rockpaint.c
+++ b/apps/plugins/rockpaint.c
@@ -161,6 +161,17 @@ PLUGIN_HEADER
#elif CONFIG_KEYPAD == MROBE500_PAD
#define ROCKPAINT_QUIT BUTTON_POWER
+#elif ( CONFIG_KEYPAD == SAMSUNG_YH_PAD )
+#define ROCKPAINT_QUIT BUTTON_REC
+#define ROCKPAINT_DRAW BUTTON_PLAY
+#define ROCKPAINT_MENU BUTTON_FFWD
+#define ROCKPAINT_TOOLBAR BUTTON_REW
+#define ROCKPAINT_TOOLBAR2 ( BUTTON_REW | 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 7087fd64a5..78ec5aa5e5 100644
--- a/apps/plugins/sliding_puzzle.c
+++ b/apps/plugins/sliding_puzzle.c
@@ -192,6 +192,15 @@ PLUGIN_HEADER
#define PUZZLE_QUIT BUTTON_POWER
#define PUZZLE_QUIT_TEXT "[POWER]"
+#elif (CONFIG_KEYPAD == SAMSUNG_YH_PAD)
+#define PUZZLE_QUIT BUTTON_REC
+#define PUZZLE_LEFT BUTTON_LEFT
+#define PUZZLE_RIGHT BUTTON_RIGHT
+#define PUZZLE_UP BUTTON_UP
+#define PUZZLE_DOWN BUTTON_DOWN
+#define PUZZLE_SHUFFLE BUTTON_REW
+#define PUZZLE_PICTURE BUTTON_PLAY
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/snake.c b/apps/plugins/snake.c
index a5d34e7106..739fce9a3e 100644
--- a/apps/plugins/snake.c
+++ b/apps/plugins/snake.c
@@ -178,6 +178,14 @@ PLUGIN_HEADER
#elif (CONFIG_KEYPAD == ONDAVX747_PAD)
#define SNAKE_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define SNAKE_QUIT BUTTON_REC
+#define SNAKE_LEFT BUTTON_LEFT
+#define SNAKE_RIGHT BUTTON_RIGHT
+#define SNAKE_UP BUTTON_UP
+#define SNAKE_DOWN BUTTON_DOWN
+#define SNAKE_PLAYPAUSE BUTTON_PLAY
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/snake2.c b/apps/plugins/snake2.c
index 771e385099..5ca5e95912 100644
--- a/apps/plugins/snake2.c
+++ b/apps/plugins/snake2.c
@@ -364,6 +364,20 @@ PLUGIN_HEADER
#elif (CONFIG_KEYPAD == ONDAVX747_PAD) || CONFIG_KEYPAD == MROBE500_PAD
#define SNAKE2_QUIT BUTTON_POWER
+#elif (CONFIG_KEYPAD == SAMSUNG_YH_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_REC
+#define SNAKE2_LEVEL_UP (BUTTON_FFWD|BUTTON_UP)
+#define SNAKE2_LEVEL_DOWN (BUTTON_FFWD|BUTTON_DOWN)
+#define SNAKE2_MAZE_NEXT (BUTTON_REW|BUTTON_RIGHT)
+#define SNAKE2_MAZE_LAST (BUTTON_REW|BUTTON_LEFT)
+#define SNAKE2_SELECT_TYPE (BUTTON_PLAY|BUTTON_LEFT)
+#define SNAKE2_PLAYPAUSE (BUTTON_PLAY|BUTTON_RIGHT)
+#define SNAKE2_PLAYPAUSE_TEXT "Play + Right"
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/snow.c b/apps/plugins/snow.c
index fe10e3995b..01930b7363 100644
--- a/apps/plugins/snow.c
+++ b/apps/plugins/snow.c
@@ -44,7 +44,8 @@ PLUGIN_HEADER
(CONFIG_KEYPAD == IPOD_1G2G_PAD)
#define SNOW_QUIT BUTTON_MENU
-#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
+#elif (CONFIG_KEYPAD == IRIVER_IFP7XX_PAD) || \
+ (CONFIG_KEYPAD == SAMSUNG_YH_PAD)
#define SNOW_QUIT BUTTON_PLAY
#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
diff --git a/apps/plugins/sokoban.c b/apps/plugins/sokoban.c
index bfd400b408..50410d29f6 100644
--- a/apps/plugins/sokoban.c
+++ b/apps/plugins/sokoban.c
@@ -385,6 +385,22 @@ PLUGIN_HEADER
#define SOKOBAN_MENU BUTTON_POWER
#define SOKOBAN_MENU_NAME "[POWER]"
+#elif CONFIG_KEYPAD == SAMSUNG_YH_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_REC
+#define SOKOBAN_UNDO_PRE BUTTON_REW
+#define SOKOBAN_UNDO (BUTTON_REW | BUTTON_LEFT)
+#define SOKOBAN_REDO BUTTON_FFWD
+#define SOKOBAN_LEVEL_DOWN (BUTTON_PLAY | BUTTON_DOWN)
+#define SOKOBAN_LEVEL_REPEAT (BUTTON_PLAY | BUTTON_RIGHT)
+#define SOKOBAN_LEVEL_UP (BUTTON_PLAY | BUTTON_UP)
+#define SOKOBAN_PAUSE BUTTON_PLAY
+#define BUTTON_SAVE BUTTON_PLAY
+#define BUTTON_SAVE_NAME "PLAY"
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c
index 2291eaceb9..993ba47ec6 100644
--- a/apps/plugins/solitaire.c
+++ b/apps/plugins/solitaire.c
@@ -398,6 +398,27 @@ PLUGIN_HEADER
#elif (CONFIG_KEYPAD == ONDAVX747_PAD) || CONFIG_KEYPAD == MROBE500_PAD
# define SOL_QUIT BUTTON_POWER
+#elif (CONFIG_KEYPAD == SAMSUNG_YH_PAD)
+# define SOL_QUIT BUTTON_REC
+# define SOL_UP BUTTON_UP
+# define SOL_DOWN BUTTON_DOWN
+# define SOL_LEFT_PRE BUTTON_LEFT
+# define SOL_LEFT (BUTTON_LEFT | BUTTON_REW)
+# define SOL_RIGHT_PRE BUTTON_RIGHT
+# define SOL_RIGHT (BUTTON_RIGHT | BUTTON_REW)
+# define SOL_MOVE BUTTON_PLAY
+# define SOL_DRAW_PRE (BUTTON_PLAY | BUTTON_RIGHT)
+# define SOL_DRAW (BUTTON_PLAY | BUTTON_LEFT)
+# define SOL_REM2CUR BUTTON_FFWD
+# define SOL_CUR2STACK BUTTON_REW
+# define SOL_REM2STACK_PRE (BUTTON_FFWD | BUTTON_RIGHT)
+# define SOL_REM2STACK (BUTTON_FFWD | BUTTON_LEFT)
+# define HK_MOVE "PLAY"
+# define HK_DRAW "REW.."
+# define HK_REM2CUR "FFWD"
+# define HK_CUR2STACK "REW"
+# define HK_REM2STACK "FFWD.."
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/spacerocks.c b/apps/plugins/spacerocks.c
index 2e383c0d0d..b0c9a4d604 100644
--- a/apps/plugins/spacerocks.c
+++ b/apps/plugins/spacerocks.c
@@ -200,6 +200,19 @@ PLUGIN_HEADER
#elif (CONFIG_KEYPAD == ONDAVX747_PAD) || CONFIG_KEYPAD == MROBE500_PAD
#define AST_QUIT BUTTON_POWER
+#elif (CONFIG_KEYPAD == SAMSUNG_YH_PAD)
+#define AST_PAUSE BUTTON_FFWD
+#define AST_QUIT BUTTON_REC
+#define AST_THRUST_REP (BUTTON_UP | BUTTON_REW)
+#define AST_THRUST BUTTON_UP
+#define AST_HYPERSPACE BUTTON_DOWN
+#define AST_LEFT BUTTON_LEFT
+#define AST_LEFT_REP (BUTTON_LEFT | BUTTON_REW)
+#define AST_RIGHT BUTTON_RIGHT
+#define AST_RIGHT_REP (BUTTON_RIGHT | BUTTON_REW)
+#define AST_FIRE BUTTON_PLAY
+#define AST_FIRE_REP (BUTTON_PLAY | BUTTON_REW)
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/splitedit.c b/apps/plugins/splitedit.c
index a169a61a47..a07769c390 100644
--- a/apps/plugins/splitedit.c
+++ b/apps/plugins/splitedit.c
@@ -55,6 +55,17 @@ PLUGIN_HEADER
#define SPLITEDIT_SPEED150 (BUTTON_REC | BUTTON_RIGHT)
#define SPLITEDIT_MENU_RUN BUTTON_RIGHT
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define SPLITEDIT_QUIT (BUTTON_REC | BUTTON_REW)
+#define SPLITEDIT_PLAY (BUTTON_REC | BUTTON_FFWD)
+#define SPLITEDIT_SAVE BUTTON_FFWD
+#define SPLITEDIT_LOOP_MODE BUTTON_REW
+#define SPLITEDIT_SCALE BUTTON_UP
+#define SPLITEDIT_SPEED50 BUTTON_LEFT
+#define SPLITEDIT_SPEED100 BUTTON_DOWN
+#define SPLITEDIT_SPEED150 BUTTON_RIGHT
+#define SPLITEDIT_MENU_RUN BUTTON_PLAY
+
#define SPLITEDIT_RC_QUIT BUTTON_RC_STOP
#endif
diff --git a/apps/plugins/star.c b/apps/plugins/star.c
index 3b128d06ef..1a27f51f54 100644
--- a/apps/plugins/star.c
+++ b/apps/plugins/star.c
@@ -335,6 +335,25 @@ PLUGIN_HEADER
#define STAR_QUIT BUTTON_POWER
#define STAR_QUIT_NAME "POWER"
+#elif (CONFIG_KEYPAD == SAMSUNG_YH_PAD)
+
+#define STAR_QUIT BUTTON_REC
+#define STAR_LEFT BUTTON_LEFT
+#define STAR_RIGHT BUTTON_RIGHT
+#define STAR_UP BUTTON_UP
+#define STAR_DOWN BUTTON_DOWN
+#define STAR_LEVEL_UP_PRE (BUTTON_FFWD|BUTTON_UP)
+#define STAR_LEVEL_UP (BUTTON_REW|BUTTON_UP)
+#define STAR_LEVEL_DOWN_PRE (BUTTON_FFWD|BUTTON_DOWN)
+#define STAR_LEVEL_DOWN (BUTTON_REW|BUTTON_DOWN)
+#define STAR_TOGGLE_CONTROL (BUTTON_PLAY|BUTTON_UP)
+#define STAR_LEVEL_REPEAT (BUTTON_PLAY|BUTTON_DOWN)
+#define STAR_TOGGLE_CONTROL_NAME "PLAY"
+#define STAR_QUIT_NAME "REC"
+#define STAR_LEVEL_UP_NAME "UP"
+#define STAR_LEVEL_DOWN_NAME "DOWN"
+#define STAR_LEVEL_REPEAT_NAME "PLAY"
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/starfield.c b/apps/plugins/starfield.c
index 768ab5a20c..71af7574ae 100644
--- a/apps/plugins/starfield.c
+++ b/apps/plugins/starfield.c
@@ -134,6 +134,14 @@ PLUGIN_HEADER
#elif (CONFIG_KEYPAD == ONDAVX747_PAD) || CONFIG_KEYPAD == MROBE500_PAD
#define STARFIELD_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define STARFIELD_QUIT BUTTON_FFWD
+#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_PLAY
+
#endif
#ifdef HAVE_TOUCHSCREEN
diff --git a/apps/plugins/stats.c b/apps/plugins/stats.c
index accb286369..495523738c 100644
--- a/apps/plugins/stats.c
+++ b/apps/plugins/stats.c
@@ -44,7 +44,8 @@ static bool abort;
(CONFIG_KEYPAD == IPOD_1G2G_PAD)
#define STATS_STOP BUTTON_MENU
-#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
+#elif (CONFIG_KEYPAD == IRIVER_IFP7XX_PAD) || \
+ (CONFIG_KEYPAD == SAMSUNG_YH_PAD)
#define STATS_STOP BUTTON_PLAY
#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD
diff --git a/apps/plugins/stopwatch.c b/apps/plugins/stopwatch.c
index 4bacf413fa..f0d8f16540 100644
--- a/apps/plugins/stopwatch.c
+++ b/apps/plugins/stopwatch.c
@@ -197,6 +197,14 @@ PLUGIN_HEADER
#elif CONFIG_KEYPAD == ONDAVX747_PAD
#define STOPWATCH_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define STOPWATCH_QUIT BUTTON_REC
+#define STOPWATCH_START_STOP BUTTON_PLAY
+#define STOPWATCH_RESET_TIMER BUTTON_LEFT
+#define STOPWATCH_LAP_TIMER BUTTON_RIGHT
+#define STOPWATCH_SCROLL_UP BUTTON_UP
+#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/sudoku/sudoku.h b/apps/plugins/sudoku/sudoku.h
index 75ceb1d3f2..d4dd19232f 100644
--- a/apps/plugins/sudoku/sudoku.h
+++ b/apps/plugins/sudoku/sudoku.h
@@ -248,6 +248,16 @@
#define SUDOKU_BUTTON_QUIT BUTTON_POWER
#define SUDOKU_BUTTON_MENU BUTTON_MENU
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define SUDOKU_BUTTON_QUIT BUTTON_REC
+#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_FFWD
+#define SUDOKU_BUTTON_MENU BUTTON_PLAY
+#define SUDOKU_BUTTON_POSSIBLE BUTTON_REW
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/superdom.c b/apps/plugins/superdom.c
index 6673810e29..d6b9621343 100644
--- a/apps/plugins/superdom.c
+++ b/apps/plugins/superdom.c
@@ -142,6 +142,14 @@ char buf[255];
#elif (CONFIG_KEYPAD == ONDAVX747_PAD) || (CONFIG_KEYPAD == MROBE500_PAD)
#define SUPERDOM_CANCEL BUTTON_POWER
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define SUPERDOM_OK BUTTON_PLAY
+#define SUPERDOM_UP BUTTON_UP
+#define SUPERDOM_DOWN BUTTON_DOWN
+#define SUPERDOM_LEFT BUTTON_LEFT
+#define SUPERDOM_RIGHT BUTTON_RIGHT
+#define SUPERDOM_CANCEL BUTTON_REW
+
#endif
#ifdef HAVE_TOUCHSCREEN
diff --git a/apps/plugins/test_codec.c b/apps/plugins/test_codec.c
index c51fc4006f..8c44c92409 100644
--- a/apps/plugins/test_codec.c
+++ b/apps/plugins/test_codec.c
@@ -28,6 +28,8 @@ PLUGIN_HEADER
#define TESTCODEC_EXITBUTTON BUTTON_RIGHT
#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
#define TESTCODEC_EXITBUTTON BUTTON_RC_PLAY
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define TESTCODEC_EXITBUTTON BUTTON_PLAY
#elif CONFIG_KEYPAD == COWOND2_PAD || CONFIG_KEYPAD == ONDAVX747_PAD
#define TESTCODEC_EXITBUTTON BUTTON_POWER
#else
diff --git a/apps/plugins/test_fps.c b/apps/plugins/test_fps.c
index ddbd51c00b..f7706f64bd 100644
--- a/apps/plugins/test_fps.c
+++ b/apps/plugins/test_fps.c
@@ -31,6 +31,8 @@ PLUGIN_IRAM_DECLARE
#define FPS_QUIT BUTTON_MENU
#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
#define FPS_QUIT BUTTON_RC_REC
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define FPS_QUIT BUTTON_PLAY
#elif CONFIG_KEYPAD == SANSA_FUZE_PAD
#define FPS_QUIT (BUTTON_HOME|BUTTON_REPEAT)
#elif defined(BUTTON_OFF)
diff --git a/apps/plugins/test_grey.c b/apps/plugins/test_grey.c
index 84dcdae3e2..5ec24ec58c 100644
--- a/apps/plugins/test_grey.c
+++ b/apps/plugins/test_grey.c
@@ -75,6 +75,14 @@ PLUGIN_HEADER
#define GREY_UP BUTTON_RC_VOL_UP
#define GREY_DOWN BUTTON_RC_VOL_DOWN
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define GREY_QUIT BUTTON_REC
+#define GREY_OK BUTTON_PLAY
+#define GREY_PREV BUTTON_REW
+#define GREY_NEXT BUTTON_FFWD
+#define GREY_UP BUTTON_UP
+#define GREY_DOWN BUTTON_DOWN
+
#else
#error unsupported keypad
#endif
diff --git a/apps/plugins/test_greylib_bitmap_scale.c b/apps/plugins/test_greylib_bitmap_scale.c
index 3e82c23175..7b226d4f96 100644
--- a/apps/plugins/test_greylib_bitmap_scale.c
+++ b/apps/plugins/test_greylib_bitmap_scale.c
@@ -28,6 +28,8 @@
#define GBS_QUIT BUTTON_MENU
#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
#define GBS_QUIT BUTTON_RC_REC
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define GBS_QUIT BUTTON_PLAY
#elif defined(BUTTON_OFF)
#define GBS_QUIT BUTTON_OFF
#else
diff --git a/apps/plugins/test_scanrate.c b/apps/plugins/test_scanrate.c
index 7746916386..2164bdadf9 100644
--- a/apps/plugins/test_scanrate.c
+++ b/apps/plugins/test_scanrate.c
@@ -64,6 +64,13 @@ PLUGIN_HEADER
#define SCANRATE_INC BUTTON_RIGHT
#define SCANRATE_DEC BUTTON_LEFT
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define SCANRATE_DONE BUTTON_DONE
+#define SCANRATE_FASTINC BUTTON_FFWD
+#define SCANRATE_FASTDEC BUTTON_REW
+#define SCANRATE_INC BUTTON_UP
+#define SCANRATE_DEC BUTTON_DOWN
+
#endif
/* Default refresh rates in 1/10 Hz */
diff --git a/apps/plugins/viewer.c b/apps/plugins/viewer.c
index 9db19d4158..c41996b0f0 100644
--- a/apps/plugins/viewer.c
+++ b/apps/plugins/viewer.c
@@ -328,6 +328,16 @@ PLUGIN_HEADER
#define VIEWER_QUIT BUTTON_POWER
#define VIEWER_MENU BUTTON_MENU
+/* SAMSUNG YH-820 / YH-920 / YH-925 keys */
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define VIEWER_QUIT BUTTON_REC
+#define VIEWER_PAGE_UP BUTTON_UP
+#define VIEWER_PAGE_DOWN BUTTON_DOWN
+#define VIEWER_SCREEN_LEFT BUTTON_LEFT
+#define VIEWER_SCREEN_RIGHT BUTTON_RIGHT
+#define VIEWER_MENU BUTTON_PLAY
+#define VIEWER_AUTOSCROLL BUTTON_REW
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/vu_meter.c b/apps/plugins/vu_meter.c
index 74c3b1cf97..80e9ccbb20 100644
--- a/apps/plugins/vu_meter.c
+++ b/apps/plugins/vu_meter.c
@@ -283,6 +283,19 @@ PLUGIN_HEADER
#define VUMETER_QUIT BUTTON_POWER
#define LABEL_QUIT "POWER"
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define VUMETER_QUIT BUTTON_REC
+#define VUMETER_HELP BUTTON_PLAY
+#define VUMETER_MENU BUTTON_LEFT
+#define VUMETER_MENU_EXIT BUTTON_LEFT
+#define VUMETER_MENU_EXIT2 BUTTON_RIGHT
+#define VUMETER_UP BUTTON_UP
+#define VUMETER_DOWN BUTTON_DOWN
+#define LABEL_HELP "PLAY"
+#define LABEL_QUIT "REC"
+#define LABEL_MENU "LEFT"
+#define LABEL_VOLUME "UP/DOWN"
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/wormlet.c b/apps/plugins/wormlet.c
index 97b2fded4f..eb76e922d9 100644
--- a/apps/plugins/wormlet.c
+++ b/apps/plugins/wormlet.c
@@ -236,6 +236,16 @@ PLUGIN_HEADER
#define BTN_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+
+#define BTN_DIR_UP BUTTON_UP
+#define BTN_DIR_DOWN BUTTON_DOWN
+#define BTN_DIR_LEFT BUTTON_LEFT
+#define BTN_DIR_RIGHT BUTTON_RIGHT
+#define BTN_STARTPAUSE BUTTON_PLAY
+#define BTN_QUIT BUTTON_FFWD
+#define BTN_STOPRESET BUTTON_REW
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/xobox.c b/apps/plugins/xobox.c
index b26c16eabf..daf627d590 100644
--- a/apps/plugins/xobox.c
+++ b/apps/plugins/xobox.c
@@ -203,6 +203,15 @@ PLUGIN_HEADER
#define QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+
+#define QUIT BUTTON_PLAY
+#define LEFT BUTTON_LEFT
+#define RIGHT BUTTON_RIGHT
+#define UP BUTTON_UP
+#define DOWN BUTTON_DOWN
+#define PAUSE BUTTON_FFWD
+
#else
#error No keymap defined!
#endif
diff --git a/apps/plugins/zxbox/keymaps.h b/apps/plugins/zxbox/keymaps.h
index 965cfea048..eb25adcbe4 100644
--- a/apps/plugins/zxbox/keymaps.h
+++ b/apps/plugins/zxbox/keymaps.h
@@ -160,6 +160,15 @@
#elif CONFIG_KEYPAD == ONDAVX747_PAD
#define ZX_MENU (BUTTON_MENU|BUTTON_REL)
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+
+#define ZX_UP BUTTON_UP
+#define ZX_DOWN BUTTON_DOWN
+#define ZX_LEFT BUTTON_LEFT
+#define ZX_RIGHT BUTTON_RIGHT
+#define ZX_SELECT BUTTON_PLAY
+#define ZX_MENU BUTTON_FFWD
+
#else
#error Keymap not defined!
diff --git a/apps/plugins/zxbox/zxbox_keyb.c b/apps/plugins/zxbox/zxbox_keyb.c
index 7464f2eaa3..4e41087e25 100644
--- a/apps/plugins/zxbox/zxbox_keyb.c
+++ b/apps/plugins/zxbox/zxbox_keyb.c
@@ -166,6 +166,15 @@
#define KBD_UP BUTTON_UP
#define KBD_DOWN BUTTON_DOWN
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+
+#define KBD_SELECT BUTTON_PLAY
+#define KBD_ABORT BUTTON_REW
+#define KBD_LEFT BUTTON_LEFT
+#define KBD_RIGHT BUTTON_RIGHT
+#define KBD_UP BUTTON_UP
+#define KBD_DOWN BUTTON_DOWN
+
#endif
#ifdef HAVE_TOUCHSCREEN