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

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