summaryrefslogtreecommitdiff
path: root/apps/plugins
diff options
context:
space:
mode:
authorSebastian Leonhardt <sebastian.leonhardt@web.de>2015-07-20 01:50:26 +0200
committerGerrit Rockbox <gerrit@rockbox.org>2015-11-15 23:46:39 +0100
commita507bb283782ee3adb1fc9ba0c6f094108ef558c (patch)
treeacae6cf04f8e34172375061b6fbdc11b6ffb84cb /apps/plugins
parenta8758c953d50fb020b245d5739c41de113638b49 (diff)
downloadrockbox-a507bb283782ee3adb1fc9ba0c6f094108ef558c.zip
rockbox-a507bb283782ee3adb1fc9ba0c6f094108ef558c.tar.gz
rockbox-a507bb283782ee3adb1fc9ba0c6f094108ef558c.tar.bz2
rockbox-a507bb283782ee3adb1fc9ba0c6f094108ef558c.tar.xz
YH8xx,YH9xx: Keymap improvement
The main "innovation" in this patch are two "virtual buttons" for the record switch on YH92x targets. When the switch state changes, a single BUTTON_REC_SW_ON or .._OFF button event will be generated. Thus keymap code can react on switching, but not on the actual state of the switch. Wherever sensible, the following user scheme is applied: - use PLAY as confirm button - use REW button or Long REW to exit - use REC (YH820) or FFWD (YH92X) as modifier key for button combos Change-Id: Ic8d1db9cc6869daed8dda98990dfdf7f6fd5d5a1
Diffstat (limited to 'apps/plugins')
-rw-r--r--apps/plugins/blackjack.c12
-rw-r--r--apps/plugins/brickmania.c2
-rw-r--r--apps/plugins/calculator.c19
-rw-r--r--apps/plugins/calendar.c19
-rw-r--r--apps/plugins/chessbox/chessbox.c4
-rw-r--r--apps/plugins/chessbox/chessbox_pgn.h26
-rw-r--r--apps/plugins/chessclock.c4
-rw-r--r--apps/plugins/chip8.c3
-rw-r--r--apps/plugins/chopper.c3
-rw-r--r--apps/plugins/clix.c2
-rw-r--r--apps/plugins/cube.c8
-rw-r--r--apps/plugins/doom/i_video.c29
-rw-r--r--apps/plugins/flipit.c17
-rw-r--r--apps/plugins/fractals/fractal.h21
-rw-r--r--apps/plugins/imageviewer/imageviewer.c12
-rw-r--r--apps/plugins/imageviewer/imageviewer_button.h25
-rw-r--r--apps/plugins/invadrox.c7
-rw-r--r--apps/plugins/lib/pluginlib_actions.c6
-rw-r--r--apps/plugins/metronome.c3
-rw-r--r--apps/plugins/midi/midiplay.c2
-rw-r--r--apps/plugins/minesweeper.c29
-rw-r--r--apps/plugins/mpegplayer/mpeg_settings.c4
-rw-r--r--apps/plugins/mpegplayer/mpegplayer.c11
-rw-r--r--apps/plugins/oscilloscope.c25
-rw-r--r--apps/plugins/pacbox/pacbox.c3
-rw-r--r--apps/plugins/pacbox/pacbox.h15
-rw-r--r--apps/plugins/pegbox.c38
-rw-r--r--apps/plugins/pictureflow/pictureflow.c11
-rw-r--r--apps/plugins/pong.c15
-rw-r--r--apps/plugins/reversi/reversi-gui.h6
-rw-r--r--apps/plugins/rockblox.c17
-rw-r--r--apps/plugins/rockboy/rockboy.c13
-rw-r--r--apps/plugins/rockpaint.c22
-rw-r--r--apps/plugins/sliding_puzzle.c4
-rw-r--r--apps/plugins/snake.c2
-rw-r--r--apps/plugins/snake2.c2
-rw-r--r--apps/plugins/sokoban.c43
-rw-r--r--apps/plugins/solitaire.c37
-rw-r--r--apps/plugins/spacerocks.c4
-rw-r--r--apps/plugins/star.c38
-rw-r--r--apps/plugins/stopwatch.c2
-rw-r--r--apps/plugins/sudoku/sudoku.h19
-rw-r--r--apps/plugins/text_viewer/text_viewer.c4
-rw-r--r--apps/plugins/text_viewer/tv_button.h33
-rw-r--r--apps/plugins/vu_meter.c6
-rw-r--r--apps/plugins/wormlet.c4
-rw-r--r--apps/plugins/xobox.c2
47 files changed, 473 insertions, 160 deletions
diff --git a/apps/plugins/blackjack.c b/apps/plugins/blackjack.c
index 4022696..2c8fecd 100644
--- a/apps/plugins/blackjack.c
+++ b/apps/plugins/blackjack.c
@@ -396,13 +396,13 @@ enum {
#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
(CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
#define BJACK_SELECT_NAME "PLAY"
-#define BJACK_STAY_NAME "RECORD"
-#define BJACK_QUIT_NAME "REW"
-#define BJACK_DOUBLE_NAME "FFWD"
+#define BJACK_STAY_NAME "FFWD"
+#define BJACK_QUIT_NAME "LONG REW"
+#define BJACK_DOUBLE_NAME "REW"
#define BJACK_SELECT BUTTON_PLAY
-#define BJACK_QUIT BUTTON_REW
-#define BJACK_STAY BUTTON_REC
-#define BJACK_DOUBLEDOWN BUTTON_FFWD
+#define BJACK_QUIT (BUTTON_REW|BUTTON_REPEAT)
+#define BJACK_STAY BUTTON_FFWD
+#define BJACK_DOUBLEDOWN (BUTTON_REW|BUTTON_REL)
#define BJACK_UP BUTTON_UP
#define BJACK_DOWN BUTTON_DOWN
#define BJACK_RIGHT BUTTON_RIGHT
diff --git a/apps/plugins/brickmania.c b/apps/plugins/brickmania.c
index 0c9223d..05c8c9c 100644
--- a/apps/plugins/brickmania.c
+++ b/apps/plugins/brickmania.c
@@ -245,7 +245,7 @@ CONFIG_KEYPAD == SANSA_CONNECT_PAD
#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
(CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
-#define QUIT BUTTON_FFWD
+#define QUIT BUTTON_REW
#define SELECT BUTTON_PLAY
#define LEFT BUTTON_LEFT
#define RIGHT BUTTON_RIGHT
diff --git a/apps/plugins/calculator.c b/apps/plugins/calculator.c
index c378ecb..f516cef 100644
--- a/apps/plugins/calculator.c
+++ b/apps/plugins/calculator.c
@@ -380,17 +380,28 @@ F3: equal to "="
#elif CONFIG_KEYPAD == MROBE500_PAD
#define CALCULATOR_QUIT BUTTON_POWER
-#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
- (CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
+#elif CONFIG_KEYPAD == SAMSUNG_YH820_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_QUIT (BUTTON_REW|BUTTON_REPEAT)
+#define CALCULATOR_INPUT BUTTON_PLAY
+#define CALCULATOR_CALC BUTTON_FFWD
+#define CALCULATOR_CLEAR (BUTTON_REW|BUTTON_REL)
+#define CALCULATOR_OPERATORS BUTTON_REC
+
+#elif CONFIG_KEYPAD == SAMSUNG_YH920_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_REW|BUTTON_REPEAT)
#define CALCULATOR_INPUT BUTTON_PLAY
#define CALCULATOR_CALC BUTTON_FFWD
-#define CALCULATOR_CLEAR BUTTON_REW
+#define CALCULATOR_CLEAR (BUTTON_REW|BUTTON_REL)
#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
diff --git a/apps/plugins/calendar.c b/apps/plugins/calendar.c
index 91613fc..d2744ea 100644
--- a/apps/plugins/calendar.c
+++ b/apps/plugins/calendar.c
@@ -258,16 +258,25 @@
#elif CONFIG_KEYPAD == MROBE500_PAD
#define CALENDAR_QUIT BUTTON_POWER
-#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
- (CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
-#define CALENDAR_QUIT BUTTON_REC
+#elif CONFIG_KEYPAD == SAMSUNG_YH920_PAD
+#define CALENDAR_QUIT BUTTON_REW
#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
+#define CALENDAR_NEXT_MONTH (BUTTON_FFWD|BUTTON_DOWN)
+#define CALENDAR_PREV_MONTH (BUTTON_FFWD|BUTTON_UP)
+
+#elif CONFIG_KEYPAD == SAMSUNG_YH820_PAD
+#define CALENDAR_QUIT BUTTON_REW
+#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_REC|BUTTON_DOWN)
+#define CALENDAR_PREV_MONTH (BUTTON_REC|BUTTON_UP)
#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
#define CALENDAR_QUIT BUTTON_REC
diff --git a/apps/plugins/chessbox/chessbox.c b/apps/plugins/chessbox/chessbox.c
index 906cc5d..be69f67 100644
--- a/apps/plugins/chessbox/chessbox.c
+++ b/apps/plugins/chessbox/chessbox.c
@@ -680,6 +680,10 @@ static struct cb_command cb_getcommand (void) {
#ifdef CB_PLAY_PRE
if (lastbutton != CB_PLAY_PRE)
break;
+ /* fallthrough */
+#endif
+#ifdef CB_PLAY_ALT
+ case CB_PLAY_ALT:
#endif
result.type = COMMAND_PLAY;
return result;
diff --git a/apps/plugins/chessbox/chessbox_pgn.h b/apps/plugins/chessbox/chessbox_pgn.h
index 159bdf1..e38d7f4 100644
--- a/apps/plugins/chessbox/chessbox_pgn.h
+++ b/apps/plugins/chessbox/chessbox_pgn.h
@@ -357,16 +357,30 @@
#elif CONFIG_KEYPAD == ONDAVX777_PAD
#define CB_MENU BUTTON_POWER
-#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
- (CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
-#define CB_SELECT BUTTON_FFWD
+#elif CONFIG_KEYPAD == SAMSUNG_YH820_PAD
+#define CB_SELECT BUTTON_PLAY
#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_REW|BUTTON_RIGHT)
-#define CB_MENU (BUTTON_REW|BUTTON_LEFT)
+#define CB_PLAY BUTTON_REC
+#define CB_LEVEL BUTTON_FFWD
+#define CB_MENU BUTTON_REW
+#define CB_SCROLL_UP (BUTTON_UP|BUTTON_REPEAT)
+#define CB_SCROLL_DOWN (BUTTON_DOWN|BUTTON_REPEAT)
+#define CB_SCROLL_LEFT (BUTTON_LEFT|BUTTON_REPEAT)
+#define CB_SCROLL_RIGHT (BUTTON_RIGHT|BUTTON_REPEAT)
+
+#elif CONFIG_KEYPAD == SAMSUNG_YH920_PAD
+#define CB_SELECT BUTTON_PLAY
+#define CB_UP BUTTON_UP
+#define CB_DOWN BUTTON_DOWN
+#define CB_LEFT BUTTON_LEFT
+#define CB_RIGHT BUTTON_RIGHT
+#define CB_PLAY BUTTON_REC_SW_ON
+#define CB_PLAY_ALT BUTTON_REC_SW_OFF
+#define CB_LEVEL BUTTON_FFWD
+#define CB_MENU BUTTON_REW
#define CB_SCROLL_UP (BUTTON_UP|BUTTON_REPEAT)
#define CB_SCROLL_DOWN (BUTTON_DOWN|BUTTON_REPEAT)
#define CB_SCROLL_LEFT (BUTTON_LEFT|BUTTON_REPEAT)
diff --git a/apps/plugins/chessclock.c b/apps/plugins/chessclock.c
index 01895d2..7c25f9e 100644
--- a/apps/plugins/chessclock.c
+++ b/apps/plugins/chessclock.c
@@ -278,14 +278,16 @@
#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
(CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
-#define CHC_QUIT BUTTON_REC
+#define CHC_QUIT BUTTON_REW
#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_OK2 BUTTON_RIGHT
#define CHC_SETTINGS_CANCEL BUTTON_REW
+#define CHC_SETTINGS_CANCEL2 BUTTON_LEFT
#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
#define CHC_QUIT BUTTON_REC
diff --git a/apps/plugins/chip8.c b/apps/plugins/chip8.c
index 09b0062..d9c165f 100644
--- a/apps/plugins/chip8.c
+++ b/apps/plugins/chip8.c
@@ -1145,7 +1145,8 @@ CONFIG_KEYPAD == MROBE500_PAD
#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
(CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
-#define CHIP8_OFF BUTTON_REC
+#define CHIP8_OFF BUTTON_REW
+#define CHIP8_KEY0 BUTTON_FFWD
#define CHIP8_KEY2 BUTTON_UP
#define CHIP8_KEY4 BUTTON_LEFT
#define CHIP8_KEY5 BUTTON_PLAY
diff --git a/apps/plugins/chopper.c b/apps/plugins/chopper.c
index 94fe750..7189fed 100644
--- a/apps/plugins/chopper.c
+++ b/apps/plugins/chopper.c
@@ -164,7 +164,8 @@ CONFIG_KEYPAD == MROBE500_PAD
(CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
#define QUIT BUTTON_LEFT
#define ACTION BUTTON_RIGHT
-#define ACTIONTEXT "RIGHT"
+#define ACTION2 BUTTON_UP
+#define ACTIONTEXT "RIGHT or UP"
#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
#define QUIT BUTTON_REC
diff --git a/apps/plugins/clix.c b/apps/plugins/clix.c
index ffbb01a..d0e3f0c 100644
--- a/apps/plugins/clix.c
+++ b/apps/plugins/clix.c
@@ -183,7 +183,7 @@
#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
(CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
-#define CLIX_BUTTON_QUIT BUTTON_REC
+#define CLIX_BUTTON_QUIT BUTTON_REW
#define CLIX_BUTTON_LEFT BUTTON_LEFT
#define CLIX_BUTTON_RIGHT BUTTON_RIGHT
#define CLIX_BUTTON_CLICK BUTTON_PLAY
diff --git a/apps/plugins/cube.c b/apps/plugins/cube.c
index 0999320..2b0febf 100644
--- a/apps/plugins/cube.c
+++ b/apps/plugins/cube.c
@@ -281,14 +281,16 @@
#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
(CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
-#define CUBE_QUIT BUTTON_REC
+#define CUBE_QUIT BUTTON_REW
#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_MODE (BUTTON_FFWD|BUTTON_REL)
+#define CUBE_MODE_PRE BUTTON_FFWD
#define CUBE_PAUSE BUTTON_PLAY
-#define CUBE_HIGHSPEED BUTTON_FFWD
+#define CUBE_HIGHSPEED (BUTTON_FFWD|BUTTON_REPEAT)
+#define CUBE_HIGHSPEED_PRE BUTTON_FFWD
#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
#define CUBE_QUIT BUTTON_REC
diff --git a/apps/plugins/doom/i_video.c b/apps/plugins/doom/i_video.c
index 7ec768f..c97dce9 100644
--- a/apps/plugins/doom/i_video.c
+++ b/apps/plugins/doom/i_video.c
@@ -395,8 +395,19 @@ void I_ShutdownGraphics(void)
#elif CONFIG_KEYPAD == ONDAVX777_PAD
#define DOOMBUTTON_ESC BUTTON_POWER
-#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
- (CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
+#elif CONFIG_KEYPAD == SAMSUNG_YH920_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_REW
+#define DOOMBUTTON_ESC BUTTON_REC_SW_ON
+#define DOOMBUTTON_ESC2 BUTTON_REC_SW_OFF
+#define DOOMBUTTON_ENTER BUTTON_PLAY
+#define DOOMBUTTON_WEAPON BUTTON_FFWD
+
+#elif CONFIG_KEYPAD == SAMSUNG_YH820_PAD
#define DOOMBUTTON_UP BUTTON_UP
#define DOOMBUTTON_DOWN BUTTON_DOWN
#define DOOMBUTTON_LEFT BUTTON_LEFT
@@ -404,7 +415,7 @@ void I_ShutdownGraphics(void)
#define DOOMBUTTON_SHOOT BUTTON_PLAY
#define DOOMBUTTON_OPEN BUTTON_REW
#define DOOMBUTTON_ESC BUTTON_REC
-#define DOOMBUTTON_ENTER BUTTON_FFWD
+#define DOOMBUTTON_ENTER BUTTON_PLAY
#define DOOMBUTTON_WEAPON BUTTON_FFWD
#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
@@ -685,7 +696,11 @@ static inline void getkey()
D_PostEvent(&event);
}
#ifdef DOOMBUTTON_ESC
- if(released & DOOMBUTTON_ESC)
+ if(released & DOOMBUTTON_ESC
+#ifdef DOOMBUTTON_ESC2
+ || released & DOOMBUTTON_ESC2
+#endif
+ )
{
event.data1=KEY_ESCAPE;
D_PostEvent(&event);
@@ -747,7 +762,11 @@ static inline void getkey()
D_PostEvent(&event);
}
#ifdef DOOMBUTTON_ESC
- if(pressed & DOOMBUTTON_ESC)
+ if(pressed & DOOMBUTTON_ESC
+#ifdef DOOMBUTTON_ESC2
+ || pressed & DOOMBUTTON_ESC2
+#endif
+ )
{
event.data1=KEY_ESCAPE;
D_PostEvent(&event);
diff --git a/apps/plugins/flipit.c b/apps/plugins/flipit.c
index 834dea3..773bc08 100644
--- a/apps/plugins/flipit.c
+++ b/apps/plugins/flipit.c
@@ -351,11 +351,11 @@
#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_FFWD|BUTTON_UP)
-#define FLIPIT_TOGGLE BUTTON_REW
+#define FLIPIT_QUIT (BUTTON_REW|BUTTON_REPEAT)
+#define FLIPIT_SHUFFLE (BUTTON_REW|BUTTON_REL)
+#define FLIPIT_SOLVE (BUTTON_FFWD|BUTTON_REPEAT)
+#define FLIPIT_STEP_BY_STEP (BUTTON_FFWD|BUTTON_REL)
+#define FLIPIT_TOGGLE BUTTON_PLAY
#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
@@ -941,6 +941,13 @@ enum plugin_status plugin_start(const void* parameter)
rb->lcd_putsxy(2, 28, "[VOL+] shuffle");
rb->lcd_putsxy(2, 38, "[PREV] solution");
rb->lcd_putsxy(2, 48, "[NEXT] step by step");
+#elif (CONFIG_KEYPAD == SAMSUNG_YH920_PAD) || \
+ (CONFIG_KEYPAD == SAMSUNG_YH820_PAD)
+ rb->lcd_putsxy(2, 8, "Long [REW] to stop");
+ rb->lcd_putsxy(2, 18, "[PLAY] toggle");
+ rb->lcd_putsxy(2, 28, "[REW] shuffle");
+ rb->lcd_putsxy(2, 38, "Long [FFWD] solution");
+ rb->lcd_putsxy(2, 48, "[FFWD] step by step");
#endif
#ifdef HAVE_TOUCHSCREEN
diff --git a/apps/plugins/fractals/fractal.h b/apps/plugins/fractals/fractal.h
index 7e13657..51296b0 100644
--- a/apps/plugins/fractals/fractal.h
+++ b/apps/plugins/fractals/fractal.h
@@ -318,15 +318,28 @@
#elif CONFIG_KEYPAD == ONDAVX777_PAD
#define FRACTAL_QUIT BUTTON_POWER
-#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
- (CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
-#define FRACTAL_QUIT BUTTON_REC
+#elif CONFIG_KEYPAD == SAMSUNG_YH820_PAD
+#define FRACTAL_QUIT (BUTTON_REW | BUTTON_REPEAT)
+#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_FFWD
+#define FRACTAL_ZOOM_OUT_PRE BUTTON_REW
+#define FRACTAL_ZOOM_OUT (BUTTON_REW | BUTTON_REL)
+#define FRACTAL_PRECISION_INC (BUTTON_REC | BUTTON_UP)
+#define FRACTAL_PRECISION_DEC (BUTTON_REC | BUTTON_DOWN)
+#define FRACTAL_RESET BUTTON_PLAY
+
+#elif CONFIG_KEYPAD == SAMSUNG_YH920_PAD
+#define FRACTAL_QUIT (BUTTON_REW | BUTTON_REPEAT)
#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_FFWD
-#define FRACTAL_ZOOM_OUT BUTTON_REW
+#define FRACTAL_ZOOM_OUT_PRE BUTTON_REW
+#define FRACTAL_ZOOM_OUT (BUTTON_REW | BUTTON_REL)
#define FRACTAL_PRECISION_INC (BUTTON_PLAY | BUTTON_UP)
#define FRACTAL_PRECISION_DEC (BUTTON_PLAY | BUTTON_DOWN)
#define FRACTAL_RESET (BUTTON_PLAY | BUTTON_RIGHT)
diff --git a/apps/plugins/imageviewer/imageviewer.c b/apps/plugins/imageviewer/imageviewer.c
index 39507a1..05d2770 100644
--- a/apps/plugins/imageviewer/imageviewer.c
+++ b/apps/plugins/imageviewer/imageviewer.c
@@ -553,7 +553,8 @@ static int scroll_bmp(struct image_info *info)
static long ss_timeout = 0;
int button;
-#if defined(IMGVIEW_ZOOM_PRE) || defined(IMGVIEW_MENU_PRE)
+#if defined(IMGVIEW_ZOOM_PRE) || defined(IMGVIEW_MENU_PRE) \
+ || defined(IMGVIEW_SLIDE_SHOW_PRE)
int lastbutton = BUTTON_NONE;
#endif
@@ -642,6 +643,13 @@ static int scroll_bmp(struct image_info *info)
#ifdef IMGVIEW_SLIDE_SHOW
case IMGVIEW_SLIDE_SHOW:
+#ifdef IMGVIEW_SLIDE_SHOW_PRE
+ if (lastbutton != IMGVIEW_SLIDE_SHOW_PRE)
+ break;
+#endif
+#ifdef IMGVIEW_SLIDE_SHOW2
+ case IMGVIEW_SLIDE_SHOW2:
+#endif
iv_api.slideshow_enabled = !iv_api.slideshow_enabled;
break;
#endif
@@ -714,7 +722,7 @@ static int scroll_bmp(struct image_info *info)
break;
} /* switch */
-#if defined(IMGVIEW_ZOOM_PRE) || defined(IMGVIEW_MENU_PRE)
+#if defined(IMGVIEW_ZOOM_PRE) || defined(IMGVIEW_MENU_PRE) || defined(IMGVIEW_SLIDE_SHOW_PRE)
if (button != BUTTON_NONE)
lastbutton = button;
#endif
diff --git a/apps/plugins/imageviewer/imageviewer_button.h b/apps/plugins/imageviewer/imageviewer_button.h
index c5fb973..5c16ad2 100644
--- a/apps/plugins/imageviewer/imageviewer_button.h
+++ b/apps/plugins/imageviewer/imageviewer_button.h
@@ -314,8 +314,7 @@
#elif CONFIG_KEYPAD == ONDAVX747_PAD
#elif CONFIG_KEYPAD == ONDAVX777_PAD
-#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
- (CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
+#elif CONFIG_KEYPAD == SAMSUNG_YH920_PAD
#define IMGVIEW_ZOOM_IN (BUTTON_PLAY|BUTTON_UP)
#define IMGVIEW_ZOOM_OUT (BUTTON_PLAY|BUTTON_DOWN)
#define IMGVIEW_UP BUTTON_UP
@@ -324,9 +323,29 @@
#define IMGVIEW_RIGHT BUTTON_RIGHT
#define IMGVIEW_NEXT BUTTON_FFWD
#define IMGVIEW_PREVIOUS BUTTON_REW
+#define IMGVIEW_NEXT_REPEAT (BUTTON_FFWD|BUTTON_REPEAT)
+#define IMGVIEW_PREVIOUS_REPEAT (BUTTON_REW|BUTTON_REPEAT)
#define IMGVIEW_MENU_PRE BUTTON_PLAY
#define IMGVIEW_MENU (BUTTON_PLAY|BUTTON_REL)
-#define IMGVIEW_QUIT BUTTON_REC
+#define IMGVIEW_SLIDE_SHOW BUTTON_REC_SW_ON
+#define IMGVIEW_SLIDE_SHOW2 BUTTON_REC_SW_OFF
+
+#elif CONFIG_KEYPAD == SAMSUNG_YH820_PAD
+#define IMGVIEW_ZOOM_IN (BUTTON_REC|BUTTON_UP)
+#define IMGVIEW_ZOOM_OUT (BUTTON_REC|BUTTON_DOWN)
+#define IMGVIEW_UP BUTTON_UP
+#define IMGVIEW_DOWN BUTTON_DOWN
+#define IMGVIEW_LEFT BUTTON_LEFT
+#define IMGVIEW_RIGHT BUTTON_RIGHT
+#define IMGVIEW_NEXT BUTTON_FFWD
+#define IMGVIEW_PREVIOUS BUTTON_REW
+#define IMGVIEW_NEXT_REPEAT (BUTTON_FFWD|BUTTON_REPEAT)
+#define IMGVIEW_PREVIOUS_REPEAT (BUTTON_REW|BUTTON_REPEAT)
+#define IMGVIEW_MENU_PRE BUTTON_PLAY
+#define IMGVIEW_MENU (BUTTON_PLAY|BUTTON_REL)
+#define IMGVIEW_SLIDE_SHOW (BUTTON_PLAY|BUTTON_REPEAT)
+#define IMGVIEW_SLIDE_SHOW_PRE BUTTON_PLAY
+#define IMGVIEW_QUIT (BUTTON_REC|BUTTON_PLAY)
#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
#define IMGVIEW_ZOOM_IN (BUTTON_REC | BUTTON_UP)
diff --git a/apps/plugins/invadrox.c b/apps/plugins/invadrox.c
index c1da3a6..d03b4ad 100644
--- a/apps/plugins/invadrox.c
+++ b/apps/plugins/invadrox.c
@@ -211,10 +211,11 @@ CONFIG_KEYPAD == MROBE500_PAD
#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
(CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
-#define QUIT BUTTON_REC
+#define QUIT BUTTON_REW
#define LEFT BUTTON_LEFT
#define RIGHT BUTTON_RIGHT
#define FIRE BUTTON_PLAY
+#define FIRE2 BUTTON_UP
#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
@@ -304,7 +305,11 @@ CONFIG_KEYPAD == MROBE500_PAD
#define ACTION_QUIT (QUIT | RC_QUIT)
#define ACTION_LEFT LEFT
#define ACTION_RIGHT RIGHT
+#ifndef FIRE2
#define ACTION_FIRE FIRE
+#else
+#define ACTION_FIRE (FIRE | FIRE2)
+#endif
#endif
diff --git a/apps/plugins/lib/pluginlib_actions.c b/apps/plugins/lib/pluginlib_actions.c
index 3113f64..bd910ac 100644
--- a/apps/plugins/lib/pluginlib_actions.c
+++ b/apps/plugins/lib/pluginlib_actions.c
@@ -385,10 +385,10 @@ const struct button_mapping pla_main_ctx[] =
{PLA_SELECT, BUTTON_VOL_UP, BUTTON_NONE},
{PLA_SELECT_REL, BUTTON_VOL_UP|BUTTON_REL, BUTTON_VOL_UP},
{PLA_SELECT_REPEAT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE},
-#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) \
+#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) \
|| (CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
- {PLA_CANCEL, BUTTON_REW, BUTTON_NONE},
- {PLA_EXIT, BUTTON_FFWD, BUTTON_NONE},
+ {PLA_CANCEL, BUTTON_REW|BUTTON_REL, BUTTON_REW},
+ {PLA_EXIT, BUTTON_REW|BUTTON_REPEAT, BUTTON_NONE},
{PLA_SELECT, BUTTON_PLAY, BUTTON_NONE},
{PLA_SELECT_REL, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY},
{PLA_SELECT_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE},
diff --git a/apps/plugins/metronome.c b/apps/plugins/metronome.c
index e8014b7..0221739 100644
--- a/apps/plugins/metronome.c
+++ b/apps/plugins/metronome.c
@@ -78,8 +78,7 @@ enum metronome_errors
#define PART_MAX 10 /* maximum count of programmed parts */
#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD) \
- || (CONFIG_KEYPAD == SANSA_E200_PAD) || (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) \
- || (CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
+ || (CONFIG_KEYPAD == SANSA_E200_PAD) || (CONFIG_KEYPAD == SAMSUNG_YH820_PAD)
#define MET_SYNC
#endif
diff --git a/apps/plugins/midi/midiplay.c b/apps/plugins/midi/midiplay.c
index 5d3c5f6..b8516da 100644
--- a/apps/plugins/midi/midiplay.c
+++ b/apps/plugins/midi/midiplay.c
@@ -195,7 +195,7 @@
#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
(CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
-#define BTN_QUIT BUTTON_REC
+#define BTN_QUIT (BUTTON_PLAY|BUTTON_REPEAT)
#define BTN_RIGHT BUTTON_RIGHT
#define BTN_LEFT BUTTON_LEFT
#define BTN_UP BUTTON_UP
diff --git a/apps/plugins/minesweeper.c b/apps/plugins/minesweeper.c
index 982bb8b..6250cb1 100644
--- a/apps/plugins/minesweeper.c
+++ b/apps/plugins/minesweeper.c
@@ -247,16 +247,27 @@ CONFIG_KEYPAD == ONDAVX777_PAD || \
CONFIG_KEYPAD == MROBE500_PAD
# define MINESWP_QUIT BUTTON_POWER
-#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
- (CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
+#elif (CONFIG_KEYPAD == SAMSUNG_YH820_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_QUIT (BUTTON_REW|BUTTON_REPEAT)
# define MINESWP_TOGGLE BUTTON_PLAY
-# define MINESWP_DISCOVER BUTTON_REW
-# define MINESWP_INFO BUTTON_FFWD
+# define MINESWP_DISCOVER BUTTON_FFWD
+# define MINESWP_INFO BUTTON_REC
+
+#elif (CONFIG_KEYPAD == SAMSUNG_YH920_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_REW|BUTTON_REPEAT)
+# define MINESWP_TOGGLE (BUTTON_PLAY|BUTTON_REL)
+# define MINESWP_TOGGLE_PRE BUTTON_PLAY
+# define MINESWP_DISCOVER BUTTON_FFWD
+# define MINESWP_INFO (BUTTON_PLAY|BUTTON_REPEAT)
+# define MINESWP_INFO_PRE BUTTON_PLAY
#elif (CONFIG_KEYPAD == PBELL_VIBE500_PAD)
# define MINESWP_LEFT BUTTON_PREV
@@ -788,7 +799,7 @@ static enum minesweeper_status minesweeper( void )
{
int i, j;
int button;
-#if defined(HAVE_TOUCHSCREEN) || defined(MINESWP_TOGGLE_PRE)
+#if defined(HAVE_TOUCHSCREEN) || defined(MINESWP_TOGGLE_PRE) || defined(MINESWP_INFO_PRE)
int lastbutton = BUTTON_NONE;
#endif
@@ -977,6 +988,10 @@ static enum minesweeper_status minesweeper( void )
/* show how many mines you think you have found and how many
* there really are on the game */
case MINESWP_INFO:
+#ifdef MINESWP_INFO_PRE
+ if( lastbutton != MINESWP_INFO_PRE )
+ break;
+#endif
if( no_mines )
break;
int flags_used = count_flags();
@@ -996,7 +1011,7 @@ static enum minesweeper_status minesweeper( void )
return MINESWEEPER_USB;
break;
}
-#if defined(HAVE_TOUCHSCREEN) || defined(MINESWP_TOGGLE_PRE)
+#if defined(HAVE_TOUCHSCREEN) || defined(MINESWP_TOGGLE_PRE) || defined(MINESWP_INFO_PRE)
if( button != BUTTON_NONE )
lastbutton = button;
#endif
diff --git a/apps/plugins/mpegplayer/mpeg_settings.c b/apps/plugins/mpegplayer/mpeg_settings.c
index 1a9636e..1f49d4e 100644
--- a/apps/plugins/mpegplayer/mpeg_settings.c
+++ b/apps/plugins/mpegplayer/mpeg_settings.c
@@ -211,9 +211,7 @@ struct mpeg_settings settings;
#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_LEFT2 BUTTON_REW
-#define MPEG_START_TIME_RIGHT2 BUTTON_FFWD
-#define MPEG_START_TIME_EXIT BUTTON_REC
+#define MPEG_START_TIME_EXIT BUTTON_REW
#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
#define MPEG_START_TIME_SELECT BUTTON_PLAY
diff --git a/apps/plugins/mpegplayer/mpegplayer.c b/apps/plugins/mpegplayer/mpegplayer.c
index 66da5d5..712e648 100644
--- a/apps/plugins/mpegplayer/mpegplayer.c
+++ b/apps/plugins/mpegplayer/mpegplayer.c
@@ -319,13 +319,14 @@ CONFIG_KEYPAD == SANSA_M200_PAD
#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
(CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
-#define MPEG_MENU BUTTON_LEFT
-#define MPEG_STOP BUTTON_RIGHT
-#define MPEG_PAUSE BUTTON_PLAY
+#define MPEG_MENU BUTTON_REW
+#define MPEG_STOP (BUTTON_PLAY | BUTTON_REPEAT)
+#define MPEG_PAUSE (BUTTON_PLAY | BUTTON_REL)
#define MPEG_VOLDOWN BUTTON_DOWN
#define MPEG_VOLUP BUTTON_UP
-#define MPEG_RW BUTTON_REW
-#define MPEG_FF BUTTON_FFWD
+#define MPEG_RW BUTTON_LEFT
+#define MPEG_FF BUTTON_RIGHT
+#define MPEG_SHOW_OSD BUTTON_FFWD
#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
#define MPEG_MENU BUTTON_MENU
diff --git a/apps/plugins/oscilloscope.c b/apps/plugins/oscilloscope.c
index a0b976f..344a40f 100644
--- a/apps/plugins/oscilloscope.c
+++ b/apps/plugins/oscilloscope.c
@@ -349,18 +349,31 @@
#elif CONFIG_KEYPAD == MROBE500_PAD
#define OSCILLOSCOPE_QUIT BUTTON_POWER
-#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
- (CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
-#define OSCILLOSCOPE_QUIT BUTTON_REC
-#define OSCILLOSCOPE_DRAWMODE (BUTTON_PLAY|BUTTON_LEFT)
+#elif CONFIG_KEYPAD == SAMSUNG_YH920_PAD
+#define OSCILLOSCOPE_QUIT BUTTON_REW
+#define OSCILLOSCOPE_DRAWMODE BUTTON_FFWD
#define OSCILLOSCOPE_ADVMODE (BUTTON_PLAY|BUTTON_RIGHT)
#define OSCILLOSCOPE_ORIENTATION (BUTTON_PLAY|BUTTON_UP)
-#define OSCILLOSCOPE_PAUSE (BUTTON_PLAY|BUTTON_DOWN)
+#define OSCILLOSCOPE_GRAPHMODE (BUTTON_PLAY|BUTTON_LEFT)
+#define OSCILLOSCOPE_PAUSE_PRE BUTTON_PLAY
+#define OSCILLOSCOPE_PAUSE (BUTTON_PLAY|BUTTON_REL)
+#define OSCILLOSCOPE_SPEED_UP BUTTON_RIGHT
+#define OSCILLOSCOPE_SPEED_DOWN BUTTON_LEFT
+#define OSCILLOSCOPE_VOL_UP BUTTON_UP
+#define OSCILLOSCOPE_VOL_DOWN BUTTON_DOWN
+#define NEED_LASTBUTTON
+
+#elif CONFIG_KEYPAD == SAMSUNG_YH820_PAD
+#define OSCILLOSCOPE_QUIT BUTTON_REW
+#define OSCILLOSCOPE_DRAWMODE BUTTON_FFWD
+#define OSCILLOSCOPE_ADVMODE (BUTTON_REC|BUTTON_RIGHT)
+#define OSCILLOSCOPE_ORIENTATION (BUTTON_REC|BUTTON_UP)
+#define OSCILLOSCOPE_GRAPHMODE (BUTTON_REC|BUTTON_LEFT)
+#define OSCILLOSCOPE_PAUSE BUTTON_PLAY
#define OSCILLOSCOPE_SPEED_UP BUTTON_RIGHT
#define OSCILLOSCOPE_SPEED_DOWN BUTTON_LEFT
#define OSCILLOSCOPE_VOL_UP BUTTON_UP
#define OSCILLOSCOPE_VOL_DOWN BUTTON_DOWN
-/* Need GRAPHMODE */
#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
#define OSCILLOSCOPE_QUIT BUTTON_REC
diff --git a/apps/plugins/pacbox/pacbox.c b/apps/plugins/pacbox/pacbox.c
index efba47b..cc5b5ef 100644
--- a/apps/plugins/pacbox/pacbox.c
+++ b/apps/plugins/pacbox/pacbox.c
@@ -391,6 +391,9 @@ static int gameProc( void )
#ifdef PACMAN_RC_MENU
|| status == PACMAN_RC_MENU
#endif
+#ifdef PACMAN_MENU2
+ || status == PACMAN_MENU2
+#endif
) {
bool menu_res;
diff --git a/apps/plugins/pacbox/pacbox.h b/apps/plugins/pacbox/pacbox.h
index 34de08f..5fcb51e 100644
--- a/apps/plugins/pacbox/pacbox.h
+++ b/apps/plugins/pacbox/pacbox.h
@@ -232,8 +232,19 @@
#elif CONFIG_KEYPAD == ONDAVX777_PAD
#define PACMAN_MENU BUTTON_POWER
-#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
- (CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
+#elif CONFIG_KEYPAD == SAMSUNG_YH920_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_FFWD
+#define PACMAN_2UP BUTTON_REW
+#define PACMAN_COIN BUTTON_PLAY
+#define PACMAN_MENU BUTTON_REC_SW_ON
+#define PACMAN_MENU2 BUTTON_REC_SW_OFF
+
+#elif CONFIG_KEYPAD == SAMSUNG_YH820_PAD
#define PACMAN_UP BUTTON_UP
#define PACMAN_DOWN BUTTON_DOWN
diff --git a/apps/plugins/pegbox.c b/apps/plugins/pegbox.c
index 25f374b..5820d54 100644
--- a/apps/plugins/pegbox.c
+++ b/apps/plugins/pegbox.c
@@ -414,23 +414,39 @@ CONFIG_KEYPAD == MROBE500_PAD
#define QUIT_TEXT "POWER"
-#elif CONFIG_KEYPAD == SAMSUNG_YH820_PAD || \
-CONFIG_KEYPAD == SAMSUNG_YH920_PAD
-#define PEGBOX_QUIT BUTTON_REC
-#define PEGBOX_RESTART BUTTON_REW
-#define PEGBOX_LVL_UP (BUTTON_PLAY|BUTTON_FFWD)
-#define PEGBOX_LVL_DOWN (BUTTON_PLAY|BUTTON_REW)
+#elif CONFIG_KEYPAD == SAMSUNG_YH920_PAD
+#define PEGBOX_QUIT BUTTON_REW
+#define PEGBOX_RESTART BUTTON_FFWD
+#define PEGBOX_LVL_UP (BUTTON_PLAY|BUTTON_UP)
+#define PEGBOX_LVL_DOWN (BUTTON_PLAY|BUTTON_DOWN)
#define PEGBOX_UP BUTTON_UP
#define PEGBOX_DOWN BUTTON_DOWN
#define PEGBOX_RIGHT BUTTON_RIGHT
#define PEGBOX_LEFT BUTTON_LEFT
#define PEGBOX_SELECT BUTTON_PLAY
-#define QUIT_TEXT "REC"
-#define RESTART_TEXT "REW"
-#define LVL_UP_TEXT "PLAY+FFWD"
-#define LVL_DOWN_TEXT "PLAY+REW"
-#define SELECT_TEXT "PLAY"
+#define QUIT_TEXT "REW"
+#define RESTART_TEXT "FFWD"
+#define LVL_UP_TEXT "PLAY+UP"
+#define LVL_DOWN_TEXT "PLAY+DOWN"
+#define SELECT_TEXT "PLAY"
+
+#elif CONFIG_KEYPAD == SAMSUNG_YH820_PAD
+#define PEGBOX_QUIT BUTTON_REW
+#define PEGBOX_RESTART BUTTON_FFWD
+#define PEGBOX_LVL_UP (BUTTON_REC|BUTTON_UP)
+#define PEGBOX_LVL_DOWN (BUTTON_REC|BUTTON_DOWN)
+#define PEGBOX_UP BUTTON_UP
+#define PEGBOX_DOWN BUTTON_DOWN
+#define PEGBOX_RIGHT BUTTON_RIGHT
+#define PEGBOX_LEFT BUTTON_LEFT
+#define PEGBOX_SELECT BUTTON_PLAY
+
+#define QUIT_TEXT "REW"
+#define RESTART_TEXT "FFWD"
+#define LVL_UP_TEXT "REC+UP"
+#define LVL_DOWN_TEXT "REC+DOWN"
+#define SELECT_TEXT "PLAY"
#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
#define PEGBOX_QUIT BUTTON_REC
diff --git a/apps/plugins/pictureflow/pictureflow.c b/apps/plugins/pictureflow/pictureflow.c
index 53fede1..414c191 100644
--- a/apps/plugins/pictureflow/pictureflow.c
+++ b/apps/plugins/pictureflow/pictureflow.c
@@ -61,7 +61,6 @@
#define PF_TRACKLIST (LAST_ACTION_PLACEHOLDER + 2)
#if defined(HAVE_SCROLLWHEEL) || CONFIG_KEYPAD == IRIVER_H10_PAD || \
- CONFIG_KEYPAD == SAMSUNG_YH820_PAD || CONFIG_KEYPAD == SAMSUNG_YH920_PAD || \
CONFIG_KEYPAD == MPIO_HD300_PAD
#define USE_CORE_PREVNEXT
#endif
@@ -154,9 +153,15 @@ const struct button_mapping pf_context_buttons[] =
#elif CONFIG_KEYPAD == IRIVER_H100_PAD || CONFIG_KEYPAD == IRIVER_H300_PAD || \
CONFIG_KEYPAD == RECORDER_PAD || CONFIG_KEYPAD == ONDIO_PAD
{PF_QUIT, BUTTON_OFF, BUTTON_NONE},
-#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD || CONFIG_KEYPAD == SAMSUNG_YH820_PAD || \
- CONFIG_KEYPAD == SAMSUNG_YH920_PAD
+#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
{PF_QUIT, BUTTON_REC, BUTTON_NONE},
+#elif CONFIG_KEYPAD == SAMSUNG_YH820_PAD || CONFIG_KEYPAD == SAMSUNG_YH920_PAD
+ {PF_QUIT, BUTTON_REW|BUTTON_REPEAT, BUTTON_REW},
+ {PF_MENU, BUTTON_REW|BUTTON_REL, BUTTON_REW},
+ {PF_SELECT, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY},
+ {PF_CONTEXT, BUTTON_FFWD|BUTTON_REPEAT, BUTTON_FFWD},
+ {PF_TRACKLIST, BUTTON_FFWD|BUTTON_REL, BUTTON_FFWD},
+ {PF_WPS, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY},
#endif
#if CONFIG_KEYPAD == IAUDIO_M3_PAD
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD|CONTEXT_REMOTE)
diff --git a/apps/plugins/pong.c b/apps/plugins/pong.c
index e72584f..c344952 100644
--- a/apps/plugins/pong.c
+++ b/apps/plugins/pong.c
@@ -215,15 +215,22 @@ CONFIG_KEYPAD == ONDAVX777_PAD || \
CONFIG_KEYPAD == MROBE500_PAD
#define PONG_QUIT BUTTON_POWER
-#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
- (CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
-#define PONG_QUIT BUTTON_REC
-#define PONG_PAUSE BUTTON_PLAY
+#elif CONFIG_KEYPAD == SAMSUNG_YH920_PAD
+#define PONG_QUIT (BUTTON_PLAY|BUTTON_REPEAT)
+#define PONG_PAUSE (BUTTON_PLAY|BUTTON_REL)
#define PONG_LEFT_UP BUTTON_UP
#define PONG_LEFT_DOWN BUTTON_DOWN
#define PONG_RIGHT_UP BUTTON_FFWD
#define PONG_RIGHT_DOWN BUTTON_REW
+#elif CONFIG_KEYPAD == SAMSUNG_YH820_PAD
+#define PONG_QUIT BUTTON_REW
+#define PONG_PAUSE BUTTON_PLAY
+#define PONG_LEFT_UP BUTTON_UP
+#define PONG_LEFT_DOWN BUTTON_DOWN
+#define PONG_RIGHT_UP BUTTON_REC
+#define PONG_RIGHT_DOWN BUTTON_FFWD
+
#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
#define PONG_QUIT BUTTON_REC
#define PONG_PAUSE BUTTON_OK
diff --git a/apps/plugins/reversi/reversi-gui.h b/apps/plugins/reversi/reversi-gui.h
index 3932b68..001dc7b 100644
--- a/apps/plugins/reversi/reversi-gui.h
+++ b/apps/plugins/reversi/reversi-gui.h
@@ -232,13 +232,13 @@
#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
(CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
-#define REVERSI_BUTTON_QUIT BUTTON_REC
+#define REVERSI_BUTTON_QUIT BUTTON_REW
#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
+#define REVERSI_BUTTON_MAKE_MOVE BUTTON_PLAY
+#define REVERSI_BUTTON_MENU BUTTON_FFWD
#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
#define REVERSI_BUTTON_QUIT BUTTON_REC
diff --git a/apps/plugins/rockblox.c b/apps/plugins/rockblox.c
index 268a386..d88eabe 100644
--- a/apps/plugins/rockblox.c
+++ b/apps/plugins/rockblox.c
@@ -328,17 +328,26 @@
#elif CONFIG_KEYPAD == ONDAVX777_PAD
#define ROCKBLOX_OFF BUTTON_POWER
-#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
- (CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
+#elif CONFIG_KEYPAD == SAMSUNG_YH920_PAD
-#define ROCKBLOX_OFF BUTTON_REC
+#define ROCKBLOX_OFF BUTTON_FFWD
#define ROCKBLOX_ROTATE_CCW BUTTON_UP
#define ROCKBLOX_ROTATE_CW BUTTON_DOWN
#define ROCKBLOX_DOWN BUTTON_REW
#define ROCKBLOX_LEFT BUTTON_LEFT
#define ROCKBLOX_RIGHT BUTTON_RIGHT
#define ROCKBLOX_DROP BUTTON_PLAY
-#define ROCKBLOX_RESTART BUTTON_FFWD
+
+#elif CONFIG_KEYPAD == SAMSUNG_YH820_PAD
+
+#define ROCKBLOX_OFF BUTTON_REW
+#define ROCKBLOX_ROTATE_CCW BUTTON_UP
+#define ROCKBLOX_ROTATE_CW BUTTON_DOWN
+#define ROCKBLOX_DOWN BUTTON_FFWD
+#define ROCKBLOX_LEFT BUTTON_LEFT
+#define ROCKBLOX_RIGHT BUTTON_RIGHT
+#define ROCKBLOX_DROP BUTTON_PLAY
+#define ROCKBLOX_RESTART BUTTON_REC
#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
diff --git a/apps/plugins/rockboy/rockboy.c b/apps/plugins/rockboy/rockboy.c
index 784b551..f4ca70c 100644
--- a/apps/plugins/rockboy/rockboy.c
+++ b/apps/plugins/rockboy/rockboy.c
@@ -285,8 +285,17 @@ static void setoptions (void)
#elif CONFIG_KEYPAD == ONDAVX777_PAD
options.MENU = BUTTON_POWER;
-#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
- (CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
+#elif CONFIG_KEYPAD == SAMSUNG_YH920_PAD
+ options.UP = BUTTON_UP;
+ options.DOWN = BUTTON_DOWN;
+
+ options.A = BUTTON_PLAY;
+ options.B = BUTTON_FFWD;
+ options.START = BUTTON_REW;
+ options.SELECT = BUTTON_NONE;
+ options.MENU = BUTTON_REC_SW_ON;
+
+#elif CONFIG_KEYPAD == SAMSUNG_YH820_PAD
options.UP = BUTTON_UP;
options.DOWN = BUTTON_DOWN;
diff --git a/apps/plugins/rockpaint.c b/apps/plugins/rockpaint.c
index f3647c6..725382c 100644
--- a/apps/plugins/rockpaint.c
+++ b/apps/plugins/rockpaint.c
@@ -199,13 +199,23 @@
#elif CONFIG_KEYPAD == MROBE500_PAD
#define ROCKPAINT_QUIT BUTTON_POWER
-#elif ( CONFIG_KEYPAD == SAMSUNG_YH820_PAD ) || \
- ( CONFIG_KEYPAD == SAMSUNG_YH920_PAD )
-#define ROCKPAINT_QUIT BUTTON_REC
+#elif ( CONFIG_KEYPAD == SAMSUNG_YH920_PAD )
+#define ROCKPAINT_QUIT ( BUTTON_REW | BUTTON_REPEAT )
#define ROCKPAINT_DRAW BUTTON_PLAY
-#define ROCKPAINT_MENU BUTTON_FFWD
-#define ROCKPAINT_TOOLBAR BUTTON_REW
-#define ROCKPAINT_TOOLBAR2 ( BUTTON_REW | BUTTON_LEFT )
+#define ROCKPAINT_MENU ( BUTTON_REW | BUTTON_REL )
+#define ROCKPAINT_TOOLBAR BUTTON_FFWD
+#define ROCKPAINT_TOOLBAR2 ( BUTTON_FFWD | BUTTON_LEFT )
+#define ROCKPAINT_UP BUTTON_UP
+#define ROCKPAINT_DOWN BUTTON_DOWN
+#define ROCKPAINT_LEFT BUTTON_LEFT
+#define ROCKPAINT_RIGHT BUTTON_RIGHT
+
+#elif ( CONFIG_KEYPAD == SAMSUNG_YH820_PAD )
+#define ROCKPAINT_QUIT ( BUTTON_REW | BUTTON_REPEAT )
+#define ROCKPAINT_DRAW BUTTON_PLAY
+#define ROCKPAINT_MENU ( BUTTON_REW | BUTTON_REL )
+#define ROCKPAINT_TOOLBAR BUTTON_FFWD
+#define ROCKPAINT_TOOLBAR2 BUTTON_REC
#define ROCKPAINT_UP BUTTON_UP
#define ROCKPAINT_DOWN BUTTON_DOWN
#define ROCKPAINT_LEFT BUTTON_LEFT
diff --git a/apps/plugins/sliding_puzzle.c b/apps/plugins/sliding_puzzle.c
index d4dd01f..82017bc 100644
--- a/apps/plugins/sliding_puzzle.c
+++ b/apps/plugins/sliding_puzzle.c
@@ -221,12 +221,12 @@ CONFIG_KEYPAD == MROBE500_PAD
#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
(CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
-#define PUZZLE_QUIT BUTTON_REC
+#define PUZZLE_QUIT BUTTON_REW
#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_SHUFFLE BUTTON_FFWD
#define PUZZLE_PICTURE BUTTON_PLAY
#elif (CONFIG_KEYPAD == PBELL_VIBE500_PAD)
diff --git a/apps/plugins/snake.c b/apps/plugins/snake.c
index a22ecf4..4f02e99 100644
--- a/apps/plugins/snake.c
+++ b/apps/plugins/snake.c
@@ -192,7 +192,7 @@ dir is the current direction of the snake - 0=up, 1=right, 2=down, 3=left;
#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
(CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
-#define SNAKE_QUIT BUTTON_REC
+#define SNAKE_QUIT BUTTON_REW
#define SNAKE_LEFT BUTTON_LEFT
#define SNAKE_RIGHT BUTTON_RIGHT
#define SNAKE_UP BUTTON_UP
diff --git a/apps/plugins/snake2.c b/apps/plugins/snake2.c
index 3f24b00..4f02602 100644
--- a/apps/plugins/snake2.c
+++ b/apps/plugins/snake2.c
@@ -328,7 +328,7 @@ CONFIG_KEYPAD == MROBE500_PAD
#define SNAKE2_RIGHT BUTTON_RIGHT
#define SNAKE2_UP BUTTON_UP
#define SNAKE2_DOWN BUTTON_DOWN
-#define SNAKE2_QUIT BUTTON_REC
+#define SNAKE2_QUIT BUTTON_REW
#define SNAKE2_PLAYPAUSE BUTTON_PLAY
#define SNAKE2_PLAYPAUSE_TEXT "Play"
diff --git a/apps/plugins/sokoban.c b/apps/plugins/sokoban.c
index 70bc57e..76eb628 100644
--- a/apps/plugins/sokoban.c
+++ b/apps/plugins/sokoban.c
@@ -474,19 +474,34 @@
#define SOKOBAN_MENU BUTTON_POWER
#define SOKOBAN_MENU_NAME "[POWER]"
-#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
- (CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
+#elif CONFIG_KEYPAD == SAMSUNG_YH820_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_MENU BUTTON_PLAY
+#define SOKOBAN_UNDO BUTTON_REW
+#define SOKOBAN_REDO BUTTON_FFWD
+#define SOKOBAN_LEVEL_DOWN (BUTTON_REC | BUTTON_DOWN)
+#define SOKOBAN_LEVEL_REPEAT (BUTTON_REC | BUTTON_RIGHT)
+#define SOKOBAN_LEVEL_UP (BUTTON_REC | BUTTON_UP)
+#define SOKOBAN_QUIT_REPLAY BUTTON_REW
+#define SOKOBAN_PAUSE BUTTON_PLAY
+#define BUTTON_SAVE BUTTON_PLAY
+#define BUTTON_SAVE_NAME "PLAY"
+
+#elif CONFIG_KEYPAD == SAMSUNG_YH920_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_PLAY
#define SOKOBAN_UNDO BUTTON_REW
-#define SOKOBAN_UNDO_PRE (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_QUIT_REPLAY BUTTON_REW
#define SOKOBAN_PAUSE BUTTON_PLAY
#define BUTTON_SAVE BUTTON_PLAY
#define BUTTON_SAVE_NAME "PLAY"
@@ -662,6 +677,10 @@
#endif
#endif
+#ifndef SOKOBAN_QUIT_REPLAY
+#define SOKOBAN_QUIT_REPLAY SOKOBAN_MENU
+#endif
+
#define SOKOBAN_FONT FONT_SYSFIXED
@@ -1413,7 +1432,7 @@ static bool load(char *filename, bool silent)
while ((button = rb->button_get(false)) || paused) {
switch (button) {
- case SOKOBAN_MENU:
+ case SOKOBAN_QUIT_REPLAY:
/* Pretend the level is complete so we'll quit */
current_info.level.boxes_to_go = 0;
return true;
@@ -1602,6 +1621,20 @@ static int sokoban_menu(void)
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");
+#elif CONFIG_KEYPAD == SAMSUNG_YH920_PAD
+ rb->lcd_putsxy(3, 6, "[PLAY] Menu");
+ rb->lcd_putsxy(3, 16, "[REW] Undo");
+ rb->lcd_putsxy(3, 26, "[FFWD] Redo");
+ rb->lcd_putsxy(3, 36, "[PLAY+DOWN] Previous Level");
+ rb->lcd_putsxy(3, 46, "[PLAY+RIGHT] Restart Level");
+ rb->lcd_putsxy(3, 56, "[PLAY+UP] Next Level");
+#elif CONFIG_KEYPAD == SAMSUNG_YH820_PAD
+ rb->lcd_putsxy(3, 6, "[PLAY] Menu");
+ rb->lcd_putsxy(3, 16, "[REW] Undo");
+ rb->lcd_putsxy(3, 26, "[FFWD] Redo");
+ rb->lcd_putsxy(3, 36, "[REC+DOWN] Prev. Lvl");
+ rb->lcd_putsxy(3, 46, "[REC+RIGHT] Rest. Lvl");
+ rb->lcd_putsxy(3, 56, "[REC+UP] Next Level");
#endif
#ifdef HAVE_TOUCHSCREEN
diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c
index d718471..c06e767 100644
--- a/apps/plugins/solitaire.c
+++ b/apps/plugins/solitaire.c
@@ -452,23 +452,40 @@
CONFIG_KEYPAD == MROBE500_PAD
# define SOL_QUIT BUTTON_POWER
-#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
- (CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
-# define SOL_QUIT BUTTON_REC
+#elif CONFIG_KEYPAD == SAMSUNG_YH820_PAD
+# define SOL_QUIT BUTTON_REW
# define SOL_UP BUTTON_UP
# define SOL_DOWN BUTTON_DOWN
# define SOL_LEFT BUTTON_LEFT
# define SOL_RIGHT BUTTON_RIGHT
# define SOL_MOVE BUTTON_PLAY
# define SOL_DRAW BUTTON_FFWD
-# define SOL_REM2CUR (BUTTON_FFWD | BUTTON_LEFT)
-# define SOL_CUR2STACK BUTTON_REW
-# define SOL_REM2STACK (BUTTON_REW | BUTTON_LEFT)
+# define SOL_REM2CUR (BUTTON_REC | BUTTON_DOWN)
+# define SOL_CUR2STACK (BUTTON_REC | BUTTON_UP)
+# define SOL_REM2STACK (BUTTON_REC | BUTTON_RIGHT)
# define HK_MOVE "PLAY"
-# define HK_DRAW "REW.."
-# define HK_REM2CUR "FFWD"
-# define HK_CUR2STACK "REW"
-# define HK_REM2STACK "FFWD.."
+# define HK_DRAW "FFWD"
+# define HK_REM2CUR "REC+DOWN"
+# define HK_CUR2STACK "REC+UP"
+# define HK_REM2STACK "REC+RIGHT"
+
+#elif CONFIG_KEYPAD == SAMSUNG_YH920_PAD
+# define SOL_QUIT BUTTON_REW
+# define SOL_UP BUTTON_UP
+# define SOL_DOWN BUTTON_DOWN
+# define SOL_LEFT BUTTON_LEFT
+# define SOL_RIGHT BUTTON_RIGHT
+# define SOL_MOVE_PRE BUTTON_PLAY
+# define SOL_MOVE (BUTTON_PLAY | BUTTON_REL)
+# define SOL_DRAW BUTTON_FFWD
+# define SOL_REM2CUR (BUTTON_PLAY | BUTTON_DOWN)
+# define SOL_CUR2STACK (BUTTON_PLAY | BUTTON_UP)
+# define SOL_REM2STACK (BUTTON_PLAY | BUTTON_RIGHT)
+# define HK_MOVE "PLAY"
+# define HK_DRAW "FFWD"
+# define HK_REM2CUR "PLAY+DOWN"
+# define HK_CUR2STACK "PLAY+UP"
+# define HK_REM2STACK "PLAY+RIGHT"
#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
# define SOL_QUIT BUTTON_REC
diff --git a/apps/plugins/spacerocks.c b/apps/plugins/spacerocks.c
index a7e9912..001cb19 100644
--- a/apps/plugins/spacerocks.c
+++ b/apps/plugins/spacerocks.c
@@ -231,8 +231,9 @@
#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
(CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
+
#define AST_PAUSE BUTTON_FFWD
-#define AST_QUIT BUTTON_REC
+#define AST_QUIT BUTTON_REW
#define AST_THRUST BUTTON_UP
#define AST_HYPERSPACE BUTTON_DOWN
#define AST_LEFT BUTTON_LEFT
@@ -240,6 +241,7 @@
#define AST_FIRE BUTTON_PLAY
#elif (CONFIG_KEYPAD == PBELL_VIBE500_PAD)
+
#define AST_PAUSE BUTTON_PLAY
#define AST_QUIT BUTTON_REC
#define AST_THRUST BUTTON_UP
diff --git a/apps/plugins/star.c b/apps/plugins/star.c
index 3cb2779..9d27432 100644
--- a/apps/plugins/star.c
+++ b/apps/plugins/star.c
@@ -391,23 +391,41 @@
#define STAR_QUIT BUTTON_POWER
#define STAR_QUIT_NAME "POWER"
-#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
- (CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
+#elif CONFIG_KEYPAD == SAMSUNG_YH820_PAD
-#define STAR_QUIT BUTTON_REC
+#define STAR_QUIT (BUTTON_REW|BUTTON_REPEAT)
#define STAR_LEFT BUTTON_LEFT
#define STAR_RIGHT BUTTON_RIGHT
#define STAR_UP BUTTON_UP
#define STAR_DOWN BUTTON_DOWN
-#define STAR_LEVEL_UP BUTTON_FFWD
-#define STAR_LEVEL_DOWN BUTTON_REW
+#define STAR_LEVEL_UP (BUTTON_REC|BUTTON_UP)
+#define STAR_LEVEL_DOWN (BUTTON_REC|BUTTON_DOWN)
#define STAR_TOGGLE_CONTROL BUTTON_PLAY
-#define STAR_LEVEL_REPEAT (BUTTON_REW|BUTTON_FFWD)
+#define STAR_LEVEL_REPEAT_PRE BUTTON_FFWD
+#define STAR_LEVEL_REPEAT (BUTTON_FFWD|BUTTON_REPEAT)
#define STAR_TOGGLE_CONTROL_NAME "PLAY"
-#define STAR_QUIT_NAME "REC"
-#define STAR_LEVEL_UP_NAME "FF"
-#define STAR_LEVEL_DOWN_NAME "REW"
-#define STAR_LEVEL_REPEAT_NAME "REW+FF"
+#define STAR_QUIT_NAME "LONG REW"
+#define STAR_LEVEL_UP_NAME "REC+UP"
+#define STAR_LEVEL_DOWN_NAME "REC+DOWN"
+#define STAR_LEVEL_REPEAT_NAME "LONG FFWD"
+
+#elif CONFIG_KEYPAD == SAMSUNG_YH920_PAD
+
+#define STAR_QUIT (BUTTON_REW|BUTTON_REPEAT)
+#define STAR_LEFT BUTTON_LEFT
+#define STAR_RIGHT BUTTON_RIGHT
+#define STAR_UP BUTTON_UP
+#define STAR_DOWN BUTTON_DOWN
+#define STAR_LEVEL_UP (BUTTON_FFWD|BUTTON_UP)
+#define STAR_LEVEL_DOWN (BUTTON_FFWD|BUTTON_DOWN)
+#define STAR_TOGGLE_CONTROL (BUTTON_PLAY|BUTTON_REL)
+#define STAR_LEVEL_REPEAT_PRE (BUTTON_FFWD|BUTTON_REPEAT)
+#define STAR_LEVEL_REPEAT (BUTTON_FFWD|BUTTON_REL)
+#define STAR_TOGGLE_CONTROL_NAME "PLAY"
+#define STAR_QUIT_NAME "LONG REW"
+#define STAR_LEVEL_UP_NAME "FFWD+UP"
+#define STAR_LEVEL_DOWN_NAME "FFWD+DOWN"
+#define STAR_LEVEL_REPEAT_NAME "LONG FFWD"
#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
diff --git a/apps/plugins/stopwatch.c b/apps/plugins/stopwatch.c
index 83f5893..4ad6dc0 100644
--- a/apps/plugins/stopwatch.c
+++ b/apps/plugins/stopwatch.c
@@ -225,7 +225,7 @@
#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
(CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
-#define STOPWATCH_QUIT BUTTON_REC
+#define STOPWATCH_QUIT BUTTON_REW
#define STOPWATCH_START_STOP BUTTON_PLAY
#define STOPWATCH_RESET_TIMER BUTTON_LEFT
#define STOPWATCH_LAP_TIMER BUTTON_RIGHT
diff --git a/apps/plugins/sudoku/sudoku.h b/apps/plugins/sudoku/sudoku.h
index 2caa75f..634a874 100644
--- a/apps/plugins/sudoku/sudoku.h
+++ b/apps/plugins/sudoku/sudoku.h
@@ -282,16 +282,25 @@
#elif (CONFIG_KEYPAD == ONDAVX777_PAD)
#define SUDOKU_BUTTON_QUIT BUTTON_POWER
-#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
- (CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
-#define SUDOKU_BUTTON_QUIT BUTTON_REC
+#elif (CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
+#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_TOGGLEBACK BUTTON_REW
+#define SUDOKU_BUTTON_MENU (BUTTON_PLAY|BUTTON_REPEAT)
+#define SUDOKU_BUTTON_POSSIBLE (BUTTON_PLAY|BUTTON_REL)
+
+#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD)
#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
+#define SUDOKU_BUTTON_TOGGLEBACK BUTTON_REW
+#define SUDOKU_BUTTON_MENU BUTTON_REC
+#define SUDOKU_BUTTON_POSSIBLE BUTTON_PLAY
#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
#define SUDOKU_BUTTON_QUIT BUTTON_REC
diff --git a/apps/plugins/text_viewer/text_viewer.c b/apps/plugins/text_viewer/text_viewer.c
index 29a2e6d..c8102eb 100644
--- a/apps/plugins/text_viewer/text_viewer.c
+++ b/apps/plugins/text_viewer/text_viewer.c
@@ -98,6 +98,10 @@ enum plugin_status plugin_start(const void* file)
if (lastbutton != TV_AUTOSCROLL_PRE)
break;
#endif
+#ifdef TV_AUTOSCROLL2
+ /* fallthrough */
+ case TV_AUTOSCROLL2:
+#endif
autoscroll = !autoscroll;
break;
diff --git a/apps/plugins/text_viewer/tv_button.h b/apps/plugins/text_viewer/tv_button.h
index 7c0cfab..f476316 100644
--- a/apps/plugins/text_viewer/tv_button.h
+++ b/apps/plugins/text_viewer/tv_button.h
@@ -380,17 +380,36 @@
#define TV_QUIT BUTTON_POWER
#define TV_BOOKMARK (BUTTON_RIGHT|BUTTON_POWER)
-/* SAMSUNG YH-820 / YH-920 / YH-925 keys */
-#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
- (CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
-#define TV_QUIT BUTTON_REC
+/* SAMSUNG YH-920 / YH-925 keys */
+#elif CONFIG_KEYPAD == SAMSUNG_YH920_PAD
+#define TV_QUIT (BUTTON_REW|BUTTON_REPEAT)
#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_PLAY
-#define TV_AUTOSCROLL BUTTON_REW
-#define TV_BOOKMARK BUTTON_FFWD
+#define TV_MENU BUTTON_REW
+#define TV_AUTOSCROLL BUTTON_REC_SW_ON
+#define TV_AUTOSCROLL2 BUTTON_REC_SW_OFF
+#define TV_BOOKMARK BUTTON_PLAY
+#define TV_LINE_UP (BUTTON_FFWD|BUTTON_UP)
+#define TV_LINE_DOWN (BUTTON_FFWD|BUTTON_DOWN)
+#define TV_COLUMN_LEFT (BUTTON_FFWD|BUTTON_LEFT)
+#define TV_COLUMN_RIGHT (BUTTON_FFWD|BUTTON_RIGHT)
+
+/* SAMSUNG YH-820 keys */
+#elif CONFIG_KEYPAD == SAMSUNG_YH820_PAD
+#define TV_QUIT (BUTTON_REW|BUTTON_REPEAT)
+#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_REW
+#define TV_AUTOSCROLL BUTTON_FFWD
+#define TV_BOOKMARK BUTTON_PLAY
+#define TV_LINE_UP (BUTTON_REC|BUTTON_UP)
+#define TV_LINE_DOWN (BUTTON_REC|BUTTON_DOWN)
+#define TV_COLUMN_LEFT (BUTTON_REC|BUTTON_LEFT)
+#define TV_COLUMN_RIGHT (BUTTON_REC|BUTTON_RIGHT)
/* Packard Bell Vibe 500 keys */
#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
diff --git a/apps/plugins/vu_meter.c b/apps/plugins/vu_meter.c
index 8a9c35b..93e89bb 100644
--- a/apps/plugins/vu_meter.c
+++ b/apps/plugins/vu_meter.c
@@ -285,13 +285,13 @@
#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
(CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
-#define VUMETER_QUIT BUTTON_REC
+#define VUMETER_QUIT BUTTON_REW
#define VUMETER_HELP BUTTON_PLAY
-#define VUMETER_MENU BUTTON_REW
+#define VUMETER_MENU BUTTON_LEFT
#define VUMETER_UP BUTTON_UP
#define VUMETER_DOWN BUTTON_DOWN
#define LABEL_HELP "PLAY"
-#define LABEL_QUIT "REC"
+#define LABEL_QUIT "REW"
#define LABEL_MENU "LEFT"
#define LABEL_VOLUME "UP/DOWN"
diff --git a/apps/plugins/wormlet.c b/apps/plugins/wormlet.c
index 6d5cf4b..c2125ac 100644
--- a/apps/plugins/wormlet.c
+++ b/apps/plugins/wormlet.c
@@ -279,8 +279,8 @@ CONFIG_KEYPAD == MROBE500_PAD
#define BTN_DIR_LEFT BUTTON_LEFT
#define BTN_DIR_RIGHT BUTTON_RIGHT
#define BTN_STARTPAUSE BUTTON_PLAY
-#define BTN_QUIT BUTTON_REC
-#define BTN_STOPRESET BUTTON_REW
+#define BTN_QUIT BUTTON_REW
+#define BTN_STOPRESET BUTTON_FFWD
#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
diff --git a/apps/plugins/xobox.c b/apps/plugins/xobox.c
index 68c3272..4e98c62 100644
--- a/apps/plugins/xobox.c
+++ b/apps/plugins/xobox.c
@@ -235,7 +235,7 @@ CONFIG_KEYPAD == MROBE500_PAD
#elif CONFIG_KEYPAD == SAMSUNG_YH820_PAD || \
CONFIG_KEYPAD == SAMSUNG_YH920_PAD
-#define QUIT BUTTON_REC
+#define QUIT BUTTON_REW
#define LEFT BUTTON_LEFT
#define RIGHT BUTTON_RIGHT
#define UP BUTTON_UP