Index: apps/keymaps/keymap-h1x0_h3x0.c =================================================================== --- apps/keymaps/keymap-h1x0_h3x0.c (revision 16254) +++ apps/keymaps/keymap-h1x0_h3x0.c (working copy) @@ -315,12 +315,29 @@ { ACTION_STD_MENU, BUTTON_RC_MODE|BUTTON_REL, BUTTON_RC_MODE }, { ACTION_STD_OK, BUTTON_RC_MENU|BUTTON_REL, BUTTON_RC_MENU }, { ACTION_STD_OK, BUTTON_RC_FF, BUTTON_NONE }, - + LAST_ITEM_IN_LIST +}; /* button_context_standard_h300lcdremote */ -}; +static const struct button_mapping button_context_wps_h300nonlcdremote[] = { + { ACTION_WPS_PLAY, BUTTON_RC_ON|BUTTON_REL, BUTTON_RC_ON }, + { ACTION_WPS_SKIPNEXT, BUTTON_RC_FF|BUTTON_REL, BUTTON_RC_FF }, + { ACTION_WPS_SKIPPREV, BUTTON_RC_REW|BUTTON_REL, BUTTON_RC_REW }, + { ACTION_WPS_SEEKBACK, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_WPS_SEEKFWD, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_WPS_STOPSEEK, BUTTON_RC_REW|BUTTON_REL, BUTTON_RC_REW|BUTTON_REPEAT }, + { ACTION_WPS_STOPSEEK, BUTTON_RC_FF|BUTTON_REL, BUTTON_RC_FF|BUTTON_REPEAT }, + { ACTION_WPS_STOP, BUTTON_RC_STOP|BUTTON_REL, BUTTON_RC_STOP }, + { ACTION_WPS_VOLDOWN, BUTTON_RC_VOL_DOWN, BUTTON_NONE }, + { ACTION_WPS_VOLDOWN, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_WPS_VOLUP, BUTTON_RC_VOL_UP, BUTTON_NONE }, + { ACTION_WPS_VOLUP, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_WPS_BROWSE, BUTTON_RC_ON|BUTTON_REPEAT, BUTTON_NONE }, -static const struct button_mapping button_context_wps_remotescommon[] = { + LAST_ITEM_IN_LIST +}; /* button_context_wps_h300nonlcdremote */ + +static const struct button_mapping button_context_wps_h100remote[] = { { ACTION_WPS_PLAY, BUTTON_RC_ON|BUTTON_REL, BUTTON_RC_ON }, { ACTION_WPS_SKIPNEXT, BUTTON_RC_FF|BUTTON_REL, BUTTON_RC_FF }, { ACTION_WPS_SKIPPREV, BUTTON_RC_REW|BUTTON_REL, BUTTON_RC_REW }, @@ -335,36 +352,42 @@ { ACTION_WPS_VOLDOWN, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_WPS_VOLUP, BUTTON_RC_VOL_UP, BUTTON_NONE }, { ACTION_WPS_VOLUP, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, - { ACTION_WPS_PITCHSCREEN, BUTTON_RC_ON|BUTTON_REPEAT, BUTTON_NONE }, - { ACTION_WPS_QUICKSCREEN, BUTTON_RC_MODE|BUTTON_REPEAT, BUTTON_RC_MODE }, - { ACTION_WPS_MENU, BUTTON_RC_MODE|BUTTON_REL, BUTTON_RC_MODE }, - { ACTION_WPS_CONTEXT, BUTTON_RC_MENU|BUTTON_REPEAT, BUTTON_NONE }, - { ACTION_WPS_BROWSE, BUTTON_RC_MENU|BUTTON_REL, BUTTON_RC_MENU }, -/* Now the specific combos, because H100 & H300 LCD remotes have different - * keys, capable of acting as "modifier" - H100 : RC_ON; H300: RC_MENU - */ - LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_REMOTE|CONTEXT_WPS) -}; - - -static const struct button_mapping button_context_wps_h100remote[] = { + { ACTION_WPS_BROWSE, BUTTON_RC_ON|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_WPS_ABRESET, BUTTON_RC_ON|BUTTON_RC_MENU, BUTTON_RC_ON }, { ACTION_WPS_ID3SCREEN, BUTTON_RC_ON|BUTTON_RC_MODE, BUTTON_NONE }, + LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) -}; +}; /* button_context_wps_h100remote */ + static const struct button_mapping button_context_wps_h300lcdremote[] = { + { ACTION_WPS_PLAY, BUTTON_RC_ON|BUTTON_REL, BUTTON_RC_ON }, + { ACTION_WPS_SKIPNEXT, BUTTON_RC_FF|BUTTON_REL, BUTTON_RC_FF }, + { ACTION_WPS_SKIPPREV, BUTTON_RC_REW|BUTTON_REL, BUTTON_RC_REW }, + { ACTION_WPS_SEEKBACK, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_WPS_SEEKFWD, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_WPS_STOPSEEK, BUTTON_RC_REW|BUTTON_REL, BUTTON_RC_REW|BUTTON_REPEAT }, + { ACTION_WPS_STOPSEEK, BUTTON_RC_FF|BUTTON_REL, BUTTON_RC_FF|BUTTON_REPEAT }, + { ACTION_WPS_ABSETB_NEXTDIR, BUTTON_RC_BITRATE, BUTTON_NONE }, + { ACTION_WPS_ABSETA_PREVDIR, BUTTON_RC_SOURCE, BUTTON_NONE }, + { ACTION_WPS_STOP, BUTTON_RC_STOP|BUTTON_REL, BUTTON_RC_STOP }, + { ACTION_WPS_VOLDOWN, BUTTON_RC_VOL_DOWN, BUTTON_NONE }, + { ACTION_WPS_VOLDOWN, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_WPS_VOLUP, BUTTON_RC_VOL_UP, BUTTON_NONE }, + { ACTION_WPS_VOLUP, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_WPS_BROWSE, BUTTON_RC_ON|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_WPS_ABRESET, BUTTON_RC_MENU|BUTTON_RC_ON, BUTTON_RC_MENU }, { ACTION_WPS_ID3SCREEN, BUTTON_RC_MENU|BUTTON_RC_MODE, BUTTON_NONE }, + LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) -}; +}; /* button_context_wps_h300lcdremote */ static const struct button_mapping button_context_list_h100remote[] = { - { ACTION_LISTTREE_PGUP, BUTTON_RC_SOURCE, BUTTON_NONE }, - { ACTION_LISTTREE_PGUP, BUTTON_RC_SOURCE|BUTTON_REPEAT, BUTTON_NONE }, - { ACTION_LISTTREE_PGDOWN, BUTTON_RC_BITRATE, BUTTON_NONE }, - { ACTION_LISTTREE_PGDOWN, BUTTON_RC_BITRATE|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_LISTTREE_PGUP, BUTTON_RC_SOURCE, BUTTON_NONE }, + { ACTION_LISTTREE_PGUP, BUTTON_RC_SOURCE|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_LISTTREE_PGDOWN, BUTTON_RC_BITRATE, BUTTON_NONE }, + { ACTION_LISTTREE_PGDOWN, BUTTON_RC_BITRATE|BUTTON_REPEAT, BUTTON_NONE }, LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) -}; +}; /* button_context_list_h100remote */ static const struct button_mapping *button_context_list_h300lcdremote = button_context_list_h100remote; @@ -815,9 +838,9 @@ = button_context_radio_h300lcdremote; break; - case REMOTETYPE_H300_NONLCD: /* FIXME: add its tables */ + case REMOTETYPE_H300_NONLCD: /* FIXME: separate all tables */ remote_btn_ctxt_std = button_context_standard_h300lcdremote, - remote_btn_ctxt_wps = button_context_wps_h300lcdremote, + remote_btn_ctxt_wps = button_context_wps_h300nonlcdremote, remote_btn_ctxt_list = button_context_list_h300lcdremote, remote_btn_ctxt_tree = button_context_tree_h300lcdremote, remote_btn_ctxt_listtree_scroll_w_cmb @@ -873,11 +896,7 @@ case CONTEXT_STD: return remote_btn_ctxt_std; case CONTEXT_WPS: /* common for all remotes */ - return button_context_wps_remotescommon; - - case CONTEXT_CUSTOM|CONTEXT_WPS: - return remote_btn_ctxt_wps; - + return remote_btn_ctxt_wps; case CONTEXT_LIST: return remote_btn_ctxt_list; case CONTEXT_TREE: