1
0
Fork 0
forked from len0rd/rockbox

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
This commit is contained in:
Sebastian Leonhardt 2015-07-20 01:50:26 +02:00 committed by Gerrit Rockbox
parent a8758c953d
commit a507bb2837
142 changed files with 1380 additions and 685 deletions

View file

@ -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