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:
parent
a8758c953d
commit
a507bb2837
142 changed files with 1380 additions and 685 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue