summaryrefslogtreecommitdiffstats
path: root/apps/plugins
diff options
context:
space:
mode:
authorSebastian Leonhardt <sebastian.leonhardt@web.de>2015-12-27 18:14:41 +0100
committerSebastian Leonhardt <sebastian.leonhardt@web.de>2015-12-27 18:14:41 +0100
commit5e91ec14011656d8952007aceb99189cd28786ba (patch)
tree6e0d8a4850f5f7ec85f01bf599e840c25659881f /apps/plugins
parentad65f8cc71bfe9e98936d5f781263850a9d50cc0 (diff)
downloadrockbox-5e91ec14011656d8952007aceb99189cd28786ba.tar.gz
rockbox-5e91ec14011656d8952007aceb99189cd28786ba.zip
Samsung YH820/92x keymap bugfixes
This patch fixes some (mostly small) plugin issues with the "big" YH-keymap patch (a507b). Only one fix affects the main keymaps (virtual keyboard "DONE" now exits after long key /release/ instead of long button /press/). Change-Id: Id34f925ebfa97ae4974cd9405fbe1fee4f597833
Diffstat (limited to 'apps/plugins')
-rw-r--r--apps/plugins/bounce.c8
-rw-r--r--apps/plugins/calendar.c19
-rw-r--r--apps/plugins/doom/i_video.c31
-rw-r--r--apps/plugins/goban/goban.h27
-rw-r--r--apps/plugins/pacbox/pacbox.c3
-rw-r--r--apps/plugins/pacbox/pacbox.h20
-rw-r--r--apps/plugins/sokoban.c14
-rw-r--r--apps/plugins/text_editor.c4
-rw-r--r--apps/plugins/zxbox/keymaps.h3
-rw-r--r--apps/plugins/zxbox/zxbox.c6
10 files changed, 91 insertions, 44 deletions
diff --git a/apps/plugins/bounce.c b/apps/plugins/bounce.c
index 9e0ae7b563..29b1b8fabd 100644
--- a/apps/plugins/bounce.c
+++ b/apps/plugins/bounce.c
@@ -467,7 +467,13 @@ static int loopit(void)
enum plugin_status plugin_start(const void* parameter)
{
int w, h;
- char *off = "[Off] to stop";
+ char *off =
+#if (CONFIG_KEYPAD == SAMSUNG_YH920_PAD) || \
+ (CONFIG_KEYPAD == SAMSUNG_YH820_PAD)
+ "[Rew] to stop";
+#else
+ "[Off] to stop";
+#endif
(void)(parameter);
diff --git a/apps/plugins/calendar.c b/apps/plugins/calendar.c
index d2744ea9f6..2ce0bed707 100644
--- a/apps/plugins/calendar.c
+++ b/apps/plugins/calendar.c
@@ -191,6 +191,7 @@
#define CALENDAR_PREV_DAY BUTTON_LEFT
#define CALENDAR_NEXT_MONTH BUTTON_BOTTOMRIGHT
#define CALENDAR_PREV_MONTH BUTTON_BOTTOMLEFT
+#define CALENDAR_EVENT_MENU_NAME "menu"
#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
#define CALENDAR_QUIT BUTTON_BACK
@@ -211,6 +212,7 @@
#define CALENDAR_PREV_DAY BUTTON_BACK
#define CALENDAR_NEXT_MONTH BUTTON_VOL_UP
#define CALENDAR_PREV_MONTH BUTTON_VOL_DOWN
+#define CALENDAR_EVENT_MENU_NAME "play"
#elif CONFIG_KEYPAD == PHILIPS_HDD1630_PAD
#define CALENDAR_QUIT BUTTON_POWER
@@ -251,6 +253,7 @@
#define CALENDAR_PREV_DAY BUTTON_LEFT
#define CALENDAR_NEXT_MONTH BUTTON_BOTTOMRIGHT
#define CALENDAR_PREV_MONTH BUTTON_BOTTOMLEFT
+#define CALENDAR_EVENT_MENU_NAME "menu"
#elif (CONFIG_KEYPAD == ONDAVX777_PAD)
#define CALENDAR_QUIT BUTTON_POWER
@@ -287,6 +290,7 @@
#define CALENDAR_PREV_DAY BUTTON_PREV
#define CALENDAR_NEXT_MONTH BUTTON_PLAY
#define CALENDAR_PREV_MONTH BUTTON_MENU
+#define CALENDAR_EVENT_MENU_NAME "FFWD"
#elif CONFIG_KEYPAD == MPIO_HD200_PAD
#define CALENDAR_QUIT (BUTTON_REC|BUTTON_PLAY)
@@ -297,6 +301,7 @@
#define CALENDAR_PREV_DAY BUTTON_VOL_DOWN
#define CALENDAR_NEXT_MONTH BUTTON_PLAY
#define CALENDAR_PREV_MONTH BUTTON_REC
+#define CALENDAR_EVENT_MENU_NAME "func"
#elif CONFIG_KEYPAD == MPIO_HD300_PAD
#define CALENDAR_QUIT (BUTTON_MENU|BUTTON_REPEAT)
@@ -307,6 +312,7 @@
#define CALENDAR_PREV_DAY BUTTON_DOWN
#define CALENDAR_NEXT_MONTH BUTTON_PLAY
#define CALENDAR_PREV_MONTH BUTTON_REC
+#define CALENDAR_EVENT_MENU_NAME "enter"
#elif CONFIG_KEYPAD == SANSA_FUZEPLUS_PAD
#define CALENDAR_QUIT BUTTON_POWER
@@ -317,6 +323,7 @@
#define CALENDAR_PREV_DAY BUTTON_LEFT
#define CALENDAR_NEXT_MONTH BUTTON_PLAYPAUSE
#define CALENDAR_PREV_MONTH BUTTON_BACK
+#define CALENDAR_EVENT_MENU_NAME "select"
#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
#define CALENDAR_QUIT BUTTON_POWER
@@ -347,6 +354,7 @@
#define CALENDAR_PREV_DAY BUTTON_LEFT
#define CALENDAR_NEXT_MONTH (BUTTON_RIGHT|BUTTON_POWER)
#define CALENDAR_PREV_MONTH (BUTTON_LEFT|BUTTON_POWER)
+#define CALENDAR_EVENT_MENU_NAME "select"
#elif CONFIG_KEYPAD == HM801_PAD
#define CALENDAR_QUIT BUTTON_POWER
@@ -357,6 +365,7 @@
#define CALENDAR_PREV_DAY BUTTON_LEFT
#define CALENDAR_NEXT_MONTH BUTTON_NEXT
#define CALENDAR_PREV_MONTH BUTTON_PREV
+#define CALENDAR_EVENT_MENU_NAME "select"
#elif CONFIG_KEYPAD == SONY_NWZ_PAD
#define CALENDAR_QUIT BUTTON_BACK
@@ -387,6 +396,7 @@
#define CALENDAR_PREV_DAY BUTTON_LEFT
#define CALENDAR_NEXT_MONTH BUTTON_BOTTOMRIGHT
#define CALENDAR_PREV_MONTH BUTTON_BOTTOMLEFT
+#define CALENDAR_EVENT_MENU_NAME "play"
#else
#error "No keypad setting."
@@ -417,6 +427,13 @@
#ifndef CALENDAR_PREV_MONTH
#define CALENDAR_PREV_MONTH BUTTON_BOTTOMRIGHT
#endif
+#ifndef CALENDAR_EVENT_MENU_NAME
+#define CALENDAR_EVENT_MENU_NAME "select"
+#endif
+#endif
+
+#ifndef CALENDAR_EVENT_MENU_NAME
+#define CALENDAR_EVENT_MENU_NAME "right"
#endif
#define MEMO_FILE PLUGIN_APPS_DATA_DIR "/.memo"
@@ -910,7 +927,7 @@ static bool view_events(int selected, struct shown *shown)
int button;
rb->gui_synclist_init(&gui_memos, &get_event_text, shown, false, 1, NULL);
- rb->gui_synclist_set_title(&gui_memos, "Events (play : menu)", NOICON);
+ rb->gui_synclist_set_title(&gui_memos, "Events (" CALENDAR_EVENT_MENU_NAME " : menu)", NOICON);
rb->gui_synclist_set_nb_items(&gui_memos, memos_in_shown_memory);
rb->gui_synclist_select_item(&gui_memos, selected);
rb->gui_synclist_draw(&gui_memos);
diff --git a/apps/plugins/doom/i_video.c b/apps/plugins/doom/i_video.c
index c97dce9821..8f13f4b9cd 100644
--- a/apps/plugins/doom/i_video.c
+++ b/apps/plugins/doom/i_video.c
@@ -402,10 +402,9 @@ void I_ShutdownGraphics(void)
#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
+#define DOOMBUTTON_REC_SWITCH /* record switch toggles run mode; in game menu via hold switch */
#elif CONFIG_KEYPAD == SAMSUNG_YH820_PAD
#define DOOMBUTTON_UP BUTTON_UP
@@ -618,7 +617,7 @@ static inline void getkey()
hswitch=0;
}
#if (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \
- (CONFIG_KEYPAD == IPOD_1G2G_PAD)
+ (CONFIG_KEYPAD == IPOD_1G2G_PAD) || (CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
/* Bring up the menu */
event.data1=KEY_ESCAPE;
#else
@@ -630,10 +629,12 @@ static inline void getkey()
holdbutton=rb->button_hold();
#endif
-#ifdef DOOMBUTTON_SCROLLWHEEL
+#if defined(DOOMBUTTON_SCROLLWHEEL) || defined(DOOMBUTTON_REC_SWITCH)
/* use button_get(false) for clickwheel checks */
int button; /* move me */
button = rb->button_get(false);
+
+#ifdef DOOMBUTTON_SCROLLWHEEL
switch(button){
case DOOMBUTTON_SCROLLWHEEL_CC | BUTTON_REPEAT:
case DOOMBUTTON_SCROLLWHEEL_CC:
@@ -649,6 +650,16 @@ static inline void getkey()
D_PostEvent(&event);
break;
}
+#endif
+#ifdef DOOMBUTTON_REC_SWITCH
+ if (button==BUTTON_REC_SW_ON || button==BUTTON_REC_SW_OFF) {
+ event.type = ev_keydown;
+ event.data1=KEY_CAPSLOCK; /* Enable run */
+ D_PostEvent(&event);
+ event.type = ev_keyup;
+ D_PostEvent(&event);
+ }
+#endif
#endif
newbuttonstate = rb->button_status();
#ifdef DOOMBUTTON_SCROLLWHEEL
@@ -696,11 +707,7 @@ static inline void getkey()
D_PostEvent(&event);
}
#ifdef DOOMBUTTON_ESC
- if(released & DOOMBUTTON_ESC
-#ifdef DOOMBUTTON_ESC2
- || released & DOOMBUTTON_ESC2
-#endif
- )
+ if(released & DOOMBUTTON_ESC)
{
event.data1=KEY_ESCAPE;
D_PostEvent(&event);
@@ -762,11 +769,7 @@ static inline void getkey()
D_PostEvent(&event);
}
#ifdef DOOMBUTTON_ESC
- if(pressed & DOOMBUTTON_ESC
-#ifdef DOOMBUTTON_ESC2
- || pressed & DOOMBUTTON_ESC2
-#endif
- )
+ if(pressed & DOOMBUTTON_ESC)
{
event.data1=KEY_ESCAPE;
D_PostEvent(&event);
diff --git a/apps/plugins/goban/goban.h b/apps/plugins/goban/goban.h
index 75196a5d15..93fdf503e6 100644
--- a/apps/plugins/goban/goban.h
+++ b/apps/plugins/goban/goban.h
@@ -318,18 +318,29 @@
#define GBN_BUTTON_PLAY BUTTON_MENU | BUTTON_REL
#define GBN_BUTTON_NAV_MODE BUTTON_OFF
-#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
- (CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
+#elif (CONFIG_KEYPAD == SAMSUNG_YH920_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
-#define GBN_BUTTON_CONTEXT BUTTON_PLAY | BUTTON_DOWN
-#define GBN_BUTTON_NEXT_VAR BUTTON_PLAY | BUTTON_UP
+#define GBN_BUTTON_RETREAT BUTTON_FFWD | BUTTON_LEFT
+#define GBN_BUTTON_ADVANCE BUTTON_FFWD | BUTTON_RIGHT
+#define GBN_BUTTON_MENU BUTTON_REW
+#define GBN_BUTTON_PLAY BUTTON_PLAY | BUTTON_REL
+#define GBN_BUTTON_CONTEXT BUTTON_PLAY | BUTTON_REPEAT
+#define GBN_BUTTON_NEXT_VAR BUTTON_FFWD | BUTTON_UP
+
+#elif (CONFIG_KEYPAD == SAMSUNG_YH820_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_REC | BUTTON_LEFT
+#define GBN_BUTTON_ADVANCE BUTTON_REC | BUTTON_RIGHT
+#define GBN_BUTTON_MENU BUTTON_REW
+#define GBN_BUTTON_PLAY BUTTON_PLAY | BUTTON_REL
+#define GBN_BUTTON_CONTEXT BUTTON_PLAY | BUTTON_REPEAT
+#define GBN_BUTTON_NEXT_VAR BUTTON_REC | BUTTON_UP
#elif (CONFIG_KEYPAD == PBELL_VIBE500_PAD)
#define GBN_BUTTON_UP BUTTON_UP
diff --git a/apps/plugins/pacbox/pacbox.c b/apps/plugins/pacbox/pacbox.c
index cc5b5ef76d..efba47b576 100644
--- a/apps/plugins/pacbox/pacbox.c
+++ b/apps/plugins/pacbox/pacbox.c
@@ -391,9 +391,6 @@ 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 5fcb51eb79..b46eaed7c1 100644
--- a/apps/plugins/pacbox/pacbox.h
+++ b/apps/plugins/pacbox/pacbox.h
@@ -234,22 +234,20 @@
#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_UP BUTTON_RIGHT
+#define PACMAN_DOWN BUTTON_LEFT
+#define PACMAN_LEFT BUTTON_UP
+#define PACMAN_RIGHT BUTTON_DOWN
#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
+#define PACMAN_MENU BUTTON_REW
#elif CONFIG_KEYPAD == SAMSUNG_YH820_PAD
-#define PACMAN_UP BUTTON_UP
-#define PACMAN_DOWN BUTTON_DOWN
-#define PACMAN_LEFT BUTTON_LEFT
-#define PACMAN_RIGHT BUTTON_RIGHT
+#define PACMAN_UP BUTTON_RIGHT
+#define PACMAN_DOWN BUTTON_LEFT
+#define PACMAN_LEFT BUTTON_UP
+#define PACMAN_RIGHT BUTTON_DOWN
#define PACMAN_1UP BUTTON_FFWD
#define PACMAN_2UP BUTTON_REW
#define PACMAN_COIN BUTTON_PLAY
diff --git a/apps/plugins/sokoban.c b/apps/plugins/sokoban.c
index 76eb6288cd..f085e1bff2 100644
--- a/apps/plugins/sokoban.c
+++ b/apps/plugins/sokoban.c
@@ -495,7 +495,8 @@
#define SOKOBAN_RIGHT BUTTON_RIGHT
#define SOKOBAN_UP BUTTON_UP
#define SOKOBAN_DOWN BUTTON_DOWN
-#define SOKOBAN_MENU BUTTON_PLAY
+#define SOKOBAN_MENU_PRE BUTTON_PLAY
+#define SOKOBAN_MENU (BUTTON_PLAY | BUTTON_REL)
#define SOKOBAN_UNDO BUTTON_REW
#define SOKOBAN_REDO BUTTON_FFWD
#define SOKOBAN_LEVEL_DOWN (BUTTON_PLAY | BUTTON_DOWN)
@@ -1690,7 +1691,7 @@ static bool sokoban_loop(void)
{
bool moved;
int i = 0, button = 0;
-#if defined(SOKOBAN_UNDO_PRE)
+#if defined(SOKOBAN_UNDO_PRE) || defined(SOKOBAN_MENU_PRE)
int lastbutton = 0;
#endif
int w, h;
@@ -1703,10 +1704,15 @@ static bool sokoban_loop(void)
switch(button)
{
+ case SOKOBAN_MENU:
+#ifdef SOKOBAN_MENU_PRE
+ if (lastbutton != SOKOBAN_MENU_PRE)
+ break;
+ /* fallthrough */
+#endif
#ifdef SOKOBAN_RC_MENU
case SOKOBAN_RC_MENU:
#endif
- case SOKOBAN_MENU:
switch (sokoban_menu()) {
case 5: /* Quit */
case 6: /* Save & quit */
@@ -1794,7 +1800,7 @@ static bool sokoban_loop(void)
return PLUGIN_USB_CONNECTED;
break;
}
-#if defined(SOKOBAN_UNDO_PRE)
+#if defined(SOKOBAN_UNDO_PRE) || defined(SOKOBAN_MENU_PRE)
lastbutton = button;
#endif
diff --git a/apps/plugins/text_editor.c b/apps/plugins/text_editor.c
index 6c1136cf48..75a877cf95 100644
--- a/apps/plugins/text_editor.c
+++ b/apps/plugins/text_editor.c
@@ -457,6 +457,9 @@ enum plugin_status plugin_start(const void* parameter)
}
break;
case ACTION_STD_CONTEXT:
+/* These targets have unintuitive STD_MENU keymaps, so we use context keymap instead;
+ We don't need the "delete line" action, since this can be done via the menu. */
+#if !(defined(SAMSUNG_YH920_PAD) || defined(SAMSUNG_YH820_PAD))
if (!line_count) break;
rb->strlcpy(copy_buffer, do_action(ACTION_GET, 0, cur_sel),
MAX_LINE_LEN);
@@ -464,6 +467,7 @@ enum plugin_status plugin_start(const void* parameter)
changed = true;
break;
case ACTION_STD_MENU:
+#endif
{
/* do the item menu */
switch (do_item_menu(cur_sel))
diff --git a/apps/plugins/zxbox/keymaps.h b/apps/plugins/zxbox/keymaps.h
index bdbe4f93ad..0ff3f6c830 100644
--- a/apps/plugins/zxbox/keymaps.h
+++ b/apps/plugins/zxbox/keymaps.h
@@ -198,7 +198,8 @@
#define ZX_LEFT BUTTON_LEFT
#define ZX_RIGHT BUTTON_RIGHT
#define ZX_SELECT BUTTON_PLAY
-#define ZX_MENU BUTTON_FFWD
+#define ZX_SELECT2 BUTTON_FFWD
+#define ZX_MENU BUTTON_REW
#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
diff --git a/apps/plugins/zxbox/zxbox.c b/apps/plugins/zxbox/zxbox.c
index 81a79dc70a..d618243b92 100644
--- a/apps/plugins/zxbox/zxbox.c
+++ b/apps/plugins/zxbox/zxbox.c
@@ -187,7 +187,11 @@ void spkb_process_events( int evenframe )
spkb_kbstate[ki].state = 0;
}
- if ( buttons & ZX_SELECT ){
+ if ( buttons & ZX_SELECT
+#ifdef ZX_SELECT2
+ || buttons & ZX_SELECT2
+#endif
+ ){
ki = KS_TO_KEY(SK_KP_Insert);
spkb_kbstate[ki].state = 1;
}