From 842d2bc1c32cc9eb0507e4c55c26049356ac833e Mon Sep 17 00:00:00 2001 From: Thomas Martitz Date: Mon, 30 Mar 2009 15:45:15 +0000 Subject: Some Sansa Fuze keymap work, enable line editing for the keyboard, copy from the e200 keymap mostly, but use the home key for some jobs (stopping playback, exiting some screens,i.e. what REC+POWER do on the e200 is only home on the fuze) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20578 a1c6a512-1295-4272-9138-f99709370657 --- apps/keymaps/keymap-fuze.c | 129 +++++++++++++++++++++++---------------------- apps/recorder/keyboard.c | 3 +- 2 files changed, 69 insertions(+), 63 deletions(-) diff --git a/apps/keymaps/keymap-fuze.c b/apps/keymaps/keymap-fuze.c index 0f34c6b..6975988 100644 --- a/apps/keymaps/keymap-fuze.c +++ b/apps/keymaps/keymap-fuze.c @@ -41,12 +41,10 @@ static const struct button_mapping button_context_standard[] = { { ACTION_STD_NEXTREPEAT, BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_STD_MENU, BUTTON_DOWN|BUTTON_REL, BUTTON_DOWN }, - { ACTION_STD_REC, BUTTON_HOME|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_STD_OK, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT }, { ACTION_STD_OK, BUTTON_RIGHT, BUTTON_NONE }, { ACTION_STD_CANCEL, BUTTON_LEFT, BUTTON_NONE }, - { ACTION_STD_CANCEL, BUTTON_POWER, BUTTON_NONE }, { ACTION_STD_QUICKSCREEN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_DOWN }, { ACTION_STD_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT }, @@ -56,51 +54,50 @@ static const struct button_mapping button_context_standard[] = { static const struct button_mapping button_context_wps[] = { - { ACTION_WPS_PLAY, BUTTON_UP|BUTTON_REL, BUTTON_UP }, - { ACTION_WPS_STOP, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, + { ACTION_WPS_PLAY, BUTTON_UP|BUTTON_REL, BUTTON_UP }, + { ACTION_WPS_STOP, BUTTON_HOME|BUTTON_REPEAT, BUTTON_HOME }, - { ACTION_WPS_SKIPPREV, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT }, - { ACTION_WPS_SEEKBACK, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, - { ACTION_WPS_STOPSEEK, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT|BUTTON_REPEAT }, + { ACTION_WPS_SKIPPREV, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT }, + { ACTION_WPS_SEEKBACK, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_WPS_STOPSEEK, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT|BUTTON_REPEAT }, - { ACTION_WPS_SKIPNEXT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT }, - { ACTION_WPS_SEEKFWD, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, - { ACTION_WPS_STOPSEEK, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT|BUTTON_REPEAT }, + { ACTION_WPS_SKIPNEXT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT }, + { ACTION_WPS_SEEKFWD, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_WPS_STOPSEEK, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT|BUTTON_REPEAT }, - { ACTION_WPS_ABSETB_NEXTDIR, BUTTON_POWER|BUTTON_RIGHT, BUTTON_POWER }, - { ACTION_WPS_ABSETA_PREVDIR, BUTTON_POWER|BUTTON_LEFT, BUTTON_POWER }, - { ACTION_WPS_ABRESET, BUTTON_POWER|BUTTON_UP, BUTTON_POWER }, + { ACTION_WPS_ABSETB_NEXTDIR, BUTTON_HOME|BUTTON_RIGHT, BUTTON_HOME }, + { ACTION_WPS_ABSETA_PREVDIR, BUTTON_HOME|BUTTON_LEFT, BUTTON_HOME }, + { ACTION_WPS_ABRESET, BUTTON_HOME|BUTTON_UP, BUTTON_HOME }, - { ACTION_WPS_VOLUP, BUTTON_SCROLL_FWD, BUTTON_NONE }, - { ACTION_WPS_VOLUP, BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE }, - { ACTION_WPS_VOLDOWN, BUTTON_SCROLL_BACK, BUTTON_NONE }, - { ACTION_WPS_VOLDOWN, BUTTON_SCROLL_BACK|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_WPS_VOLUP, BUTTON_SCROLL_FWD, BUTTON_NONE }, + { ACTION_WPS_VOLUP, BUTTON_SCROLL_FWD|BUTTON_REPEAT,BUTTON_NONE }, + { ACTION_WPS_VOLDOWN, BUTTON_SCROLL_BACK, BUTTON_NONE }, + { ACTION_WPS_VOLDOWN, BUTTON_SCROLL_BACK|BUTTON_REPEAT,BUTTON_NONE }, - { ACTION_WPS_BROWSE, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT }, + { ACTION_WPS_BROWSE, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT }, - { ACTION_WPS_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT }, - { ACTION_WPS_QUICKSCREEN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_DOWN }, + { ACTION_WPS_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT }, + { ACTION_WPS_QUICKSCREEN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_DOWN }, - { ACTION_WPS_MENU, BUTTON_DOWN|BUTTON_REL, BUTTON_DOWN }, - { ACTION_WPS_REC, BUTTON_HOME|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_WPS_MENU, BUTTON_DOWN|BUTTON_REL, BUTTON_DOWN }, - { ACTION_WPS_PITCHSCREEN, BUTTON_SELECT|BUTTON_UP, BUTTON_SELECT }, - { ACTION_WPS_ID3SCREEN, BUTTON_SELECT|BUTTON_DOWN, BUTTON_SELECT }, + { ACTION_WPS_PITCHSCREEN, BUTTON_SELECT|BUTTON_UP, BUTTON_SELECT }, + { ACTION_WPS_ID3SCREEN, BUTTON_SELECT|BUTTON_DOWN, BUTTON_SELECT }, LAST_ITEM_IN_LIST }; /* button_context_wps */ static const struct button_mapping button_context_settings[] = { - { ACTION_STD_CANCEL, BUTTON_POWER, BUTTON_NONE }, + { ACTION_STD_CANCEL, BUTTON_LEFT, BUTTON_NONE }, { ACTION_SETTINGS_INC, BUTTON_SCROLL_FWD, BUTTON_NONE }, { ACTION_SETTINGS_INCREPEAT,BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_SETTINGS_DEC, BUTTON_SCROLL_BACK, BUTTON_NONE }, { ACTION_SETTINGS_DECREPEAT,BUTTON_SCROLL_BACK|BUTTON_REPEAT, BUTTON_NONE }, - - { ACTION_STD_PREV, BUTTON_LEFT, BUTTON_NONE }, - { ACTION_STD_PREVREPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, - { ACTION_STD_NEXT, BUTTON_RIGHT, BUTTON_NONE }, - { ACTION_STD_NEXTREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, + + { ACTION_STD_PREV, BUTTON_UP|BUTTON_REL, BUTTON_UP }, + { ACTION_STD_PREVREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_UP }, + { ACTION_STD_NEXT, BUTTON_DOWN|BUTTON_REL, BUTTON_DOWN }, + { ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_DOWN }, { ACTION_SETTINGS_RESET, BUTTON_SELECT, BUTTON_NONE }, LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD), @@ -108,14 +105,14 @@ static const struct button_mapping button_context_settings[] = { static const struct button_mapping button_context_list[] = { { ACTION_LISTTREE_PGUP, BUTTON_HOME|BUTTON_SCROLL_BACK, BUTTON_HOME }, - { ACTION_LISTTREE_PGDOWN, BUTTON_HOME|BUTTON_SCROLL_FWD, BUTTON_HOME }, + { ACTION_LISTTREE_PGDOWN, BUTTON_HOME|BUTTON_SCROLL_FWD, BUTTON_HOME }, LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) }; /* button_context_list */ static const struct button_mapping button_context_tree[] = { { ACTION_TREE_WPS, BUTTON_UP|BUTTON_REL, BUTTON_UP }, - { ACTION_TREE_STOP, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, + { ACTION_TREE_STOP, BUTTON_HOME|BUTTON_REPEAT, BUTTON_HOME }, LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST), }; /* button_context_tree */ @@ -152,7 +149,8 @@ static const struct button_mapping button_context_yesno[] = { static const struct button_mapping button_context_quickscreen[] = { { ACTION_NONE, BUTTON_LEFT, BUTTON_NONE }, - { ACTION_STD_CANCEL, BUTTON_POWER|BUTTON_REL, BUTTON_NONE }, + { ACTION_STD_CANCEL, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE }, + { ACTION_STD_CANCEL, BUTTON_HOME|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REL, BUTTON_NONE }, { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE }, @@ -171,15 +169,14 @@ static const struct button_mapping button_context_settings_right_is_inc[] = { { ACTION_SETTINGS_DEC, BUTTON_SCROLL_BACK, BUTTON_NONE }, { ACTION_SETTINGS_DECREPEAT, BUTTON_SCROLL_BACK|BUTTON_REPEAT,BUTTON_NONE }, - { ACTION_STD_PREV, BUTTON_UP|BUTTON_REL, BUTTON_NONE }, - { ACTION_STD_PREVREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, - { ACTION_STD_NEXT, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE }, - { ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_STD_PREV, BUTTON_UP|BUTTON_REL, BUTTON_UP }, + { ACTION_STD_PREVREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_UP }, + { ACTION_STD_NEXT, BUTTON_DOWN|BUTTON_REL, BUTTON_DOWN }, + { ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_DOWN }, { ACTION_NONE, BUTTON_SELECT, BUTTON_NONE }, { ACTION_STD_OK, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE }, - { ACTION_NONE, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT }, - { ACTION_NONE, BUTTON_POWER, BUTTON_NONE }, - { ACTION_STD_CANCEL, BUTTON_POWER|BUTTON_REL, BUTTON_NONE }, + { ACTION_STD_CANCEL, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT }, + { ACTION_STD_OK, BUTTON_RIGHT, BUTTON_NONE }, LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD), }; /* button_context_settings_right_is_inc */ @@ -194,27 +191,28 @@ static const struct button_mapping button_context_settings_time[] = { }; /* button_context_settings_time */ static const struct button_mapping button_context_pitchscreen[] = { - { ACTION_PS_INC_SMALL, BUTTON_SCROLL_FWD, BUTTON_NONE }, - { ACTION_PS_INC_BIG, BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_PS_INC_SMALL, BUTTON_SCROLL_FWD, BUTTON_NONE }, + { ACTION_PS_INC_BIG, BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_PS_DEC_SMALL, BUTTON_SCROLL_BACK, BUTTON_NONE }, { ACTION_PS_DEC_BIG, BUTTON_SCROLL_BACK|BUTTON_REPEAT, BUTTON_NONE }, - { ACTION_PS_NUDGE_LEFT, BUTTON_LEFT, BUTTON_NONE }, - { ACTION_PS_NUDGE_LEFTOFF, BUTTON_LEFT|BUTTON_REL, BUTTON_NONE }, - { ACTION_PS_NUDGE_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, - { ACTION_PS_NUDGE_RIGHTOFF, BUTTON_RIGHT|BUTTON_REL, BUTTON_NONE }, - { ACTION_PS_TOGGLE_MODE, BUTTON_HOME, BUTTON_NONE }, - { ACTION_PS_RESET, BUTTON_SELECT, BUTTON_NONE }, - { ACTION_PS_EXIT, BUTTON_POWER, BUTTON_NONE }, - { ACTION_PS_EXIT, BUTTON_UP, BUTTON_NONE }, + { ACTION_PS_NUDGE_LEFT, BUTTON_LEFT, BUTTON_NONE }, + { ACTION_PS_NUDGE_LEFTOFF, BUTTON_LEFT|BUTTON_REL, BUTTON_NONE }, + { ACTION_PS_NUDGE_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, + { ACTION_PS_NUDGE_RIGHTOFF, BUTTON_RIGHT|BUTTON_REL, BUTTON_NONE }, + { ACTION_PS_TOGGLE_MODE, BUTTON_HOME|BUTTON_REL, BUTTON_NONE }, + { ACTION_PS_RESET, BUTTON_SELECT, BUTTON_NONE }, + { ACTION_PS_EXIT, BUTTON_HOME|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_PS_EXIT, BUTTON_UP, BUTTON_NONE }, LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD), }; /* button_context_pitchscreen */ +#ifdef HAVE_RECORDING /** Recording Screen **/ static const struct button_mapping button_context_recscreen[] = { { ACTION_REC_PAUSE, BUTTON_UP|BUTTON_REL, BUTTON_UP }, - { ACTION_STD_CANCEL, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, - { ACTION_REC_NEWFILE, BUTTON_HOME|BUTTON_REL, BUTTON_HOME }, + { ACTION_STD_CANCEL, BUTTON_DOWN, BUTTON_NONE }, + { ACTION_REC_NEWFILE, BUTTON_HOME|BUTTON_REL, BUTTON_HOME }, { ACTION_STD_MENU, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT}, { ACTION_SETTINGS_INC, BUTTON_RIGHT, BUTTON_NONE }, { ACTION_SETTINGS_INCREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, @@ -224,18 +222,23 @@ static const struct button_mapping button_context_recscreen[] = { { ACTION_STD_PREV, BUTTON_SCROLL_BACK|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_STD_NEXT, BUTTON_SCROLL_FWD, BUTTON_NONE }, { ACTION_STD_NEXT, BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE }, - { ACTION_NONE, BUTTON_DOWN|BUTTON_REL, BUTTON_DOWN }, + { ACTION_STD_CANCEL, BUTTON_HOME|BUTTON_REPEAT, BUTTON_HOME }, LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) }; /* button_context_recscreen */ +#endif /** FM Radio Screen **/ static const struct button_mapping button_context_radio[] = { + { ACTION_STD_PREV, BUTTON_LEFT, BUTTON_NONE }, + { ACTION_STD_PREVREPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_STD_NEXT, BUTTON_RIGHT, BUTTON_NONE }, + { ACTION_STD_NEXTREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_FM_MENU, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_FM_PRESET, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE }, - { ACTION_FM_STOP, BUTTON_POWER|BUTTON_REL, BUTTON_NONE }, - { ACTION_FM_MODE, BUTTON_UP|BUTTON_REPEAT, BUTTON_UP }, + { ACTION_FM_STOP, BUTTON_HOME|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_FM_MODE, BUTTON_UP|BUTTON_REPEAT, BUTTON_UP }, { ACTION_FM_EXIT, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE }, - { ACTION_FM_PLAY, BUTTON_UP|BUTTON_REL, BUTTON_UP }, + { ACTION_FM_PLAY, BUTTON_UP|BUTTON_REL, BUTTON_UP }, LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS) }; /* button_context_radio */ @@ -250,16 +253,16 @@ static const struct button_mapping button_context_keyboard[] = { { ACTION_KBD_CURSOR_RIGHT, BUTTON_HOME|BUTTON_RIGHT, BUTTON_NONE }, { ACTION_KBD_CURSOR_RIGHT, BUTTON_HOME|BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, - { ACTION_KBD_UP, BUTTON_SCROLL_BACK, BUTTON_NONE }, - { ACTION_KBD_UP, BUTTON_SCROLL_BACK|BUTTON_REPEAT, BUTTON_NONE }, - { ACTION_KBD_DOWN, BUTTON_SCROLL_FWD, BUTTON_NONE }, - { ACTION_KBD_DOWN, BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE }, - { ACTION_KBD_PAGE_FLIP, BUTTON_HOME|BUTTON_SELECT, BUTTON_HOME }, + { ACTION_KBD_UP, BUTTON_SCROLL_BACK, BUTTON_NONE }, + { ACTION_KBD_UP, BUTTON_SCROLL_BACK|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_KBD_DOWN, BUTTON_SCROLL_FWD, BUTTON_NONE }, + { ACTION_KBD_DOWN, BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_KBD_PAGE_FLIP, BUTTON_HOME|BUTTON_SELECT, BUTTON_HOME }, { ACTION_KBD_BACKSPACE, BUTTON_DOWN, BUTTON_NONE }, { ACTION_KBD_BACKSPACE, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_KBD_SELECT, BUTTON_SELECT, BUTTON_NONE }, { ACTION_KBD_DONE, BUTTON_UP, BUTTON_NONE }, - { ACTION_KBD_ABORT, BUTTON_POWER, BUTTON_NONE }, + { ACTION_KBD_ABORT, BUTTON_HOME|BUTTON_REPEAT, BUTTON_NONE }, LAST_ITEM_IN_LIST }; /* button_context_keyboard */ @@ -313,8 +316,10 @@ const struct button_mapping* get_context_mapping(int context) return button_context_quickscreen; case CONTEXT_PITCHSCREEN: return button_context_pitchscreen; +#ifdef HAVE_RECORDING case CONTEXT_RECSCREEN: return button_context_recscreen; +#endif case CONTEXT_KEYBOARD: return button_context_keyboard; diff --git a/apps/recorder/keyboard.c b/apps/recorder/keyboard.c index 1375d34..3810220 100644 --- a/apps/recorder/keyboard.c +++ b/apps/recorder/keyboard.c @@ -78,7 +78,8 @@ #define KBD_MODES #define KBD_MORSE_INPUT -#elif CONFIG_KEYPAD == SANSA_E200_PAD +#elif CONFIG_KEYPAD == SANSA_E200_PAD \ + || CONFIG_KEYPAD == SANSA_FUZE_PAD #define KBD_CURSOR_KEYS #define KBD_MODES -- cgit v1.1