summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorHristo Kovachev <bger@rockbox.org>2006-08-19 08:00:20 +0000
committerHristo Kovachev <bger@rockbox.org>2006-08-19 08:00:20 +0000
commitd198b4c32d3ccae67e5a3055e50f7f5433e28fe4 (patch)
treec0b3b5c4d60417a664871bc6e0dc59f587f34d82 /apps
parentbd7248d1062b7423cd1d47d0255c23683f420cfc (diff)
downloadrockbox-d198b4c32d3ccae67e5a3055e50f7f5433e28fe4.tar.gz
rockbox-d198b4c32d3ccae67e5a3055e50f7f5433e28fe4.zip
Rework of iriver remote mappings, now follow the main screen layout. Please, test. Needs more work (especially for h300 NON-lcd remote), but is a good starting point.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10653 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/keymaps/keymap-h1x0_h3x0.c526
1 files changed, 374 insertions, 152 deletions
diff --git a/apps/keymaps/keymap-h1x0_h3x0.c b/apps/keymaps/keymap-h1x0_h3x0.c
index 1e88b7935c..42ba9fbafb 100644
--- a/apps/keymaps/keymap-h1x0_h3x0.c
+++ b/apps/keymaps/keymap-h1x0_h3x0.c
@@ -5,7 +5,7 @@
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < 5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ 6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/ 7 * \/ \/ \/ \/ \/
8 * $Id $ 8 * $Id$
9 * 9 *
10 * Copyright (C) 2006 Jonathan Gordon 10 * Copyright (C) 2006 Jonathan Gordon
11 * 11 *
@@ -52,6 +52,7 @@ const struct button_mapping button_context_standard[] = {
52 { ACTION_STD_CANCEL, BUTTON_LEFT, BUTTON_NONE }, 52 { ACTION_STD_CANCEL, BUTTON_LEFT, BUTTON_NONE },
53 { ACTION_STD_CANCEL, BUTTON_OFF, BUTTON_NONE }, 53 { ACTION_STD_CANCEL, BUTTON_OFF, BUTTON_NONE },
54 { ACTION_STD_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT,BUTTON_SELECT }, 54 { ACTION_STD_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT,BUTTON_SELECT },
55
55 { ACTION_STD_QUICKSCREEN, BUTTON_MODE|BUTTON_REPEAT, BUTTON_MODE }, 56 { ACTION_STD_QUICKSCREEN, BUTTON_MODE|BUTTON_REPEAT, BUTTON_MODE },
56 { ACTION_STD_MENU, BUTTON_MODE|BUTTON_REL, BUTTON_MODE }, 57 { ACTION_STD_MENU, BUTTON_MODE|BUTTON_REL, BUTTON_MODE },
57 { ACTION_STD_OK, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT }, 58 { ACTION_STD_OK, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT },
@@ -62,7 +63,6 @@ const struct button_mapping button_context_standard[] = {
62 63
63 64
64const struct button_mapping button_context_wps[] = { 65const struct button_mapping button_context_wps[] = {
65 { ACTION_NONE, BUTTON_ON, BUTTON_NONE },
66 { ACTION_WPS_PLAY, BUTTON_ON|BUTTON_REL, BUTTON_ON }, 66 { ACTION_WPS_PLAY, BUTTON_ON|BUTTON_REL, BUTTON_ON },
67 { ACTION_WPS_SKIPNEXT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT }, 67 { ACTION_WPS_SKIPNEXT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT },
68 { ACTION_WPS_SKIPPREV, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT }, 68 { ACTION_WPS_SKIPPREV, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT },
@@ -73,10 +73,10 @@ const struct button_mapping button_context_wps[] = {
73 { ACTION_WPS_ABSETB_NEXTDIR, BUTTON_ON|BUTTON_RIGHT, BUTTON_ON }, 73 { ACTION_WPS_ABSETB_NEXTDIR, BUTTON_ON|BUTTON_RIGHT, BUTTON_ON },
74 { ACTION_WPS_ABSETA_PREVDIR, BUTTON_ON|BUTTON_LEFT, BUTTON_ON }, 74 { ACTION_WPS_ABSETA_PREVDIR, BUTTON_ON|BUTTON_LEFT, BUTTON_ON },
75 { ACTION_WPS_STOP, BUTTON_OFF|BUTTON_REL, BUTTON_OFF }, 75 { ACTION_WPS_STOP, BUTTON_OFF|BUTTON_REL, BUTTON_OFF },
76 { ACTION_WPS_VOLDOWN, BUTTON_DOWN|BUTTON_REL, BUTTON_DOWN },
77 { ACTION_WPS_VOLDOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, 76 { ACTION_WPS_VOLDOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
78 { ACTION_WPS_VOLUP, BUTTON_UP|BUTTON_REL, BUTTON_UP }, 77 { ACTION_WPS_VOLDOWN, BUTTON_DOWN, BUTTON_NONE },
79 { ACTION_WPS_VOLUP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, 78 { ACTION_WPS_VOLUP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
79 { ACTION_WPS_VOLUP, BUTTON_UP, BUTTON_NONE },
80 { ACTION_WPS_PITCHSCREEN, BUTTON_ON|BUTTON_UP, BUTTON_ON }, 80 { ACTION_WPS_PITCHSCREEN, BUTTON_ON|BUTTON_UP, BUTTON_ON },
81 { ACTION_WPS_PITCHSCREEN, BUTTON_ON|BUTTON_DOWN, BUTTON_ON }, 81 { ACTION_WPS_PITCHSCREEN, BUTTON_ON|BUTTON_DOWN, BUTTON_ON },
82 { ACTION_WPS_QUICKSCREEN, BUTTON_MODE|BUTTON_REPEAT, BUTTON_MODE }, 82 { ACTION_WPS_QUICKSCREEN, BUTTON_MODE|BUTTON_REPEAT, BUTTON_MODE },
@@ -89,15 +89,15 @@ const struct button_mapping button_context_wps[] = {
89 LAST_ITEM_IN_LIST 89 LAST_ITEM_IN_LIST
90}; /* button_context_wps */ 90}; /* button_context_wps */
91 91
92const struct button_mapping button_context_listtree[] = { 92const struct button_mapping button_context_list[] = {
93 { ACTION_LISTTREE_PGUP, BUTTON_ON|BUTTON_UP, BUTTON_ON }, 93 { ACTION_LISTTREE_PGUP, BUTTON_ON|BUTTON_UP, BUTTON_ON },
94 { ACTION_LISTTREE_PGUP, BUTTON_UP|BUTTON_REL, BUTTON_ON|BUTTON_UP }, 94 { ACTION_LISTTREE_PGUP, BUTTON_UP|BUTTON_REL, BUTTON_ON|BUTTON_UP },
95 { ACTION_LISTTREE_PGUP, BUTTON_ON|BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, 95 { ACTION_LISTTREE_PGUP, BUTTON_ON|BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
96 { ACTION_LISTTREE_PGDOWN, BUTTON_ON|BUTTON_DOWN, BUTTON_ON|BUTTON_UP }, 96 { ACTION_LISTTREE_PGDOWN, BUTTON_ON|BUTTON_DOWN, BUTTON_ON },
97 { ACTION_LISTTREE_PGDOWN, BUTTON_DOWN|BUTTON_REL, BUTTON_ON|BUTTON_DOWN }, 97 { ACTION_LISTTREE_PGDOWN, BUTTON_DOWN|BUTTON_REL, BUTTON_ON|BUTTON_DOWN },
98 { ACTION_LISTTREE_PGDOWN, BUTTON_ON|BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, 98 { ACTION_LISTTREE_PGDOWN, BUTTON_ON|BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
99 LAST_ITEM_IN_LIST 99 LAST_ITEM_IN_LIST
100}; /* button_context_listtree */ 100}; /* button_context_list */
101 101
102const struct button_mapping button_context_tree[] = { 102const struct button_mapping button_context_tree[] = {
103 { ACTION_TREE_WPS, BUTTON_ON|BUTTON_REL, BUTTON_ON }, 103 { ACTION_TREE_WPS, BUTTON_ON|BUTTON_REL, BUTTON_ON },
@@ -105,7 +105,7 @@ const struct button_mapping button_context_tree[] = {
105 { ACTION_TREE_STOP, BUTTON_OFF|BUTTON_REPEAT, BUTTON_NONE }, 105 { ACTION_TREE_STOP, BUTTON_OFF|BUTTON_REPEAT, BUTTON_NONE },
106 106
107 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST) 107 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST)
108}; /* button_context_listtree */ 108}; /* button_context_tree */
109 109
110const struct button_mapping button_context_listtree_scroll_with_combo[] = { 110const struct button_mapping button_context_listtree_scroll_with_combo[] = {
111 { ACTION_NONE, BUTTON_ON, BUTTON_NONE }, 111 { ACTION_NONE, BUTTON_ON, BUTTON_NONE },
@@ -117,7 +117,7 @@ const struct button_mapping button_context_listtree_scroll_with_combo[] = {
117 { ACTION_TREE_PGRIGHT, BUTTON_RIGHT|BUTTON_REL, BUTTON_ON|BUTTON_RIGHT }, 117 { ACTION_TREE_PGRIGHT, BUTTON_RIGHT|BUTTON_REL, BUTTON_ON|BUTTON_RIGHT },
118 { ACTION_TREE_PGRIGHT, BUTTON_ON|BUTTON_RIGHT, BUTTON_RIGHT|BUTTON_REL }, 118 { ACTION_TREE_PGRIGHT, BUTTON_ON|BUTTON_RIGHT, BUTTON_RIGHT|BUTTON_REL },
119 { ACTION_TREE_PGRIGHT, BUTTON_ON|BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, 119 { ACTION_TREE_PGRIGHT, BUTTON_ON|BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
120 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|1), 120 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE),
121}; 121};
122 122
123const struct button_mapping button_context_listtree_scroll_without_combo[] = { 123const struct button_mapping button_context_listtree_scroll_without_combo[] = {
@@ -129,7 +129,7 @@ const struct button_mapping button_context_listtree_scroll_without_combo[] = {
129 { ACTION_STD_OK, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT }, 129 { ACTION_STD_OK, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT },
130 { ACTION_TREE_PGRIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, 130 { ACTION_TREE_PGRIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
131 { ACTION_TREE_PGRIGHT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT|BUTTON_REPEAT }, 131 { ACTION_TREE_PGRIGHT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT|BUTTON_REPEAT },
132 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|1), 132 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE),
133}; 133};
134 134
135const struct button_mapping button_context_settings[] = { 135const struct button_mapping button_context_settings[] = {
@@ -195,155 +195,310 @@ const struct button_mapping button_context_pitchscreen[] = {
195 195
196 LAST_ITEM_IN_LIST 196 LAST_ITEM_IN_LIST
197}; /* button_context_pitchcreen */ 197}; /* button_context_pitchcreen */
198
198/***************************************************************************** 199/*****************************************************************************
199 * Remote control mappings 200 * Remote control mappings
200 *****************************************************************************/ 201 *****************************************************************************/
201 202
202 203
203/********* H100 LCD remote ******/ 204const struct button_mapping button_context_standard_h100remote[] = {
204const struct button_mapping button_context_standard_h100lcdremote[] = {
205 { ACTION_STD_PREV, BUTTON_RC_REW, BUTTON_NONE }, 205 { ACTION_STD_PREV, BUTTON_RC_REW, BUTTON_NONE },
206 { ACTION_STD_PREVREPEAT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE }, 206 { ACTION_STD_PREVREPEAT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE },
207 { ACTION_STD_NEXT, BUTTON_RC_FF, BUTTON_NONE }, 207 { ACTION_STD_NEXT, BUTTON_RC_FF, BUTTON_NONE },
208 { ACTION_STD_NEXTREPEAT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE }, 208 { ACTION_STD_NEXTREPEAT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
209 209
210 { ACTION_STD_OK, BUTTON_RC_ON|BUTTON_REL, BUTTON_RC_ON },
211 { ACTION_STD_CONTEXT, BUTTON_RC_MENU|BUTTON_REPEAT, BUTTON_RC_MENU },
212 { ACTION_STD_CANCEL, BUTTON_RC_STOP, BUTTON_NONE }, 210 { ACTION_STD_CANCEL, BUTTON_RC_STOP, BUTTON_NONE },
211 { ACTION_STD_CONTEXT, BUTTON_RC_MENU|BUTTON_REPEAT, BUTTON_RC_MENU },
212
213 { ACTION_STD_QUICKSCREEN, BUTTON_RC_MODE|BUTTON_REPEAT, BUTTON_RC_MODE }, 213 { ACTION_STD_QUICKSCREEN, BUTTON_RC_MODE|BUTTON_REPEAT, BUTTON_RC_MODE },
214 { ACTION_STD_MENU, BUTTON_RC_MODE|BUTTON_REL, BUTTON_RC_MODE }, 214 { ACTION_STD_MENU, BUTTON_RC_MODE|BUTTON_REL, BUTTON_RC_MODE },
215 { ACTION_STD_OK, BUTTON_RC_ON, BUTTON_NONE },
215 { ACTION_STD_OK, BUTTON_RC_MENU|BUTTON_REL, BUTTON_RC_MENU }, 216 { ACTION_STD_OK, BUTTON_RC_MENU|BUTTON_REL, BUTTON_RC_MENU },
216 217
217 LAST_ITEM_IN_LIST 218 LAST_ITEM_IN_LIST
218}; /* button_context_standard_h100lcdremote */ 219}; /* button_context_standard_h100lcdremote */
219 220
220const struct button_mapping button_context_wps_h100lcdremote[] = { 221const struct button_mapping button_context_standard_h300lcdremote[] = {
222 { ACTION_STD_PREV, BUTTON_RC_VOL_UP, BUTTON_NONE },
223 { ACTION_STD_PREVREPEAT, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
224 { ACTION_STD_NEXT, BUTTON_RC_VOL_DOWN, BUTTON_NONE },
225 { ACTION_STD_NEXTREPEAT, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
226
227 { ACTION_STD_CANCEL, BUTTON_RC_REW, BUTTON_NONE },
228 { ACTION_STD_CANCEL, BUTTON_RC_STOP, BUTTON_NONE },
229 { ACTION_STD_CONTEXT, BUTTON_RC_MENU|BUTTON_REPEAT, BUTTON_RC_MENU },
230 { ACTION_STD_QUICKSCREEN, BUTTON_RC_MODE|BUTTON_REPEAT, BUTTON_RC_MODE },
231 { ACTION_STD_MENU, BUTTON_RC_MODE|BUTTON_REL, BUTTON_RC_MODE },
232 { ACTION_STD_OK, BUTTON_RC_MENU|BUTTON_REL, BUTTON_RC_MENU },
233 { ACTION_STD_OK, BUTTON_RC_FF, BUTTON_NONE },
234
235 LAST_ITEM_IN_LIST
236
237};
238
239const struct button_mapping button_context_wps_remotescommon[] = {
221 { ACTION_WPS_PLAY, BUTTON_RC_ON|BUTTON_REL, BUTTON_RC_ON }, 240 { ACTION_WPS_PLAY, BUTTON_RC_ON|BUTTON_REL, BUTTON_RC_ON },
222 { ACTION_WPS_SKIPNEXT, BUTTON_RC_FF|BUTTON_REL, BUTTON_RC_FF }, 241 { ACTION_WPS_SKIPNEXT, BUTTON_RC_FF|BUTTON_REL, BUTTON_RC_FF },
223 { ACTION_WPS_SEEKFWD, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
224 { ACTION_WPS_SKIPPREV, BUTTON_RC_REW|BUTTON_REL, BUTTON_RC_REW }, 242 { ACTION_WPS_SKIPPREV, BUTTON_RC_REW|BUTTON_REL, BUTTON_RC_REW },
225 { ACTION_WPS_SEEKBACK, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE }, 243 { ACTION_WPS_SEEKBACK, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE },
226 { ACTION_WPS_STOP, BUTTON_RC_STOP, BUTTON_NONE }, 244 { ACTION_WPS_SEEKFWD, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
245 { ACTION_WPS_STOPSEEK, BUTTON_RC_REW|BUTTON_REL, BUTTON_RC_REW|BUTTON_REPEAT },
246 { ACTION_WPS_STOPSEEK, BUTTON_RC_FF|BUTTON_REL, BUTTON_RC_FF|BUTTON_REPEAT },
247 { ACTION_WPS_ABSETB_NEXTDIR, BUTTON_RC_BITRATE, BUTTON_NONE },
248 { ACTION_WPS_ABSETA_PREVDIR, BUTTON_RC_SOURCE, BUTTON_NONE },
249 { ACTION_WPS_STOP, BUTTON_RC_STOP|BUTTON_REL, BUTTON_RC_STOP },
227 { ACTION_WPS_VOLDOWN, BUTTON_RC_VOL_DOWN, BUTTON_NONE }, 250 { ACTION_WPS_VOLDOWN, BUTTON_RC_VOL_DOWN, BUTTON_NONE },
228 { ACTION_WPS_VOLDOWN, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, 251 { ACTION_WPS_VOLDOWN, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
229 { ACTION_WPS_VOLUP, BUTTON_RC_VOL_UP, BUTTON_NONE }, 252 { ACTION_WPS_VOLUP, BUTTON_RC_VOL_UP, BUTTON_NONE },
230 { ACTION_WPS_VOLUP, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, 253 { ACTION_WPS_VOLUP, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
231 { ACTION_WPS_ABSETB_NEXTDIR, BUTTON_RC_BITRATE, BUTTON_NONE }, 254 { ACTION_WPS_PITCHSCREEN, BUTTON_RC_ON|BUTTON_REPEAT, BUTTON_NONE },
232 { ACTION_WPS_ABSETA_PREVDIR, BUTTON_RC_SOURCE, BUTTON_NONE },
233 { ACTION_WPS_PITCHSCREEN, BUTTON_RC_ON|BUTTON_REPEAT, BUTTON_RC_ON },
234 { ACTION_WPS_QUICKSCREEN, BUTTON_RC_MODE|BUTTON_REPEAT, BUTTON_RC_MODE }, 255 { ACTION_WPS_QUICKSCREEN, BUTTON_RC_MODE|BUTTON_REPEAT, BUTTON_RC_MODE },
235 { ACTION_WPS_MENU, BUTTON_RC_MODE|BUTTON_REL, BUTTON_RC_MODE }, 256 { ACTION_WPS_MENU, BUTTON_RC_MODE|BUTTON_REL, BUTTON_RC_MODE },
236 { ACTION_WPS_CONTEXT, BUTTON_RC_MENU|BUTTON_REPEAT, BUTTON_RC_MENU }, 257 { ACTION_WPS_CONTEXT, BUTTON_RC_MENU|BUTTON_REPEAT, BUTTON_NONE },
237 { ACTION_WPS_BROWSE, BUTTON_RC_MENU|BUTTON_REL, BUTTON_RC_MENU }, 258 { ACTION_WPS_BROWSE, BUTTON_RC_MENU|BUTTON_REL, BUTTON_RC_MENU },
238 259/* Now the specific combos, because H100 & H300 LCD remotes have different
239 LAST_ITEM_IN_LIST 260 * keys, capable of acting as "modifier" - H100 : RC_ON; H300: RC_MENU
240}; /* button_context_wps_h100lcdremote */ 261 */
241 262 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_REMOTE|CONTEXT_WPS)
242const struct button_mapping button_context_listtree_h100lcdremote[] = { 263};
243 { ACTION_LISTTREE_PGUP, BUTTON_RC_SOURCE, BUTTON_NONE }, 264
244 { ACTION_LISTTREE_PGUP, BUTTON_RC_SOURCE|BUTTON_REPEAT, BUTTON_NONE }, 265
245 { ACTION_LISTTREE_PGDOWN, BUTTON_RC_BITRATE, BUTTON_NONE }, 266const struct button_mapping button_context_wps_h100remote[] = {
246 { ACTION_LISTTREE_PGDOWN, BUTTON_RC_BITRATE|BUTTON_REPEAT, BUTTON_NONE }, 267 { ACTION_WPSAB_RESET, BUTTON_RC_ON|BUTTON_RC_MENU, BUTTON_RC_ON },
247 { ACTION_TREE_WPS, BUTTON_RC_ON|BUTTON_REL, BUTTON_RC_ON }, 268 { ACTION_WPS_ID3SCREEN, BUTTON_RC_ON|BUTTON_RC_MODE, BUTTON_NONE },
248
249 LAST_ITEM_IN_LIST
250}; /* button_context_listtree_h100lcdremote */
251/* Not needed? _std_ actions seem to be fine */
252const struct button_mapping button_context_settings_h100lcdremote[] = {
253 LAST_ITEM_IN_LIST 269 LAST_ITEM_IN_LIST
254};/* button_context_settings_h100lcdremote */ 270};
255 271const struct button_mapping button_context_wps_h300lcdremote[] = {
256const struct button_mapping button_context_settingsgraphical_h100lcdremote[] = { 272 { ACTION_WPSAB_RESET, BUTTON_RC_MENU|BUTTON_RC_ON, BUTTON_RC_MENU },
257 { ACTION_SETTINGS_INC, BUTTON_RC_FF, BUTTON_NONE }, 273 { ACTION_WPS_ID3SCREEN, BUTTON_RC_MENU|BUTTON_RC_MODE, BUTTON_NONE },
258 { ACTION_SETTINGS_INCREPEAT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
259 { ACTION_SETTINGS_DEC, BUTTON_RC_REW, BUTTON_NONE },
260 { ACTION_SETTINGS_DECREPEAT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE },
261 { ACTION_STD_PREV, BUTTON_RC_VOL_UP, BUTTON_NONE },
262 { ACTION_STD_PREVREPEAT, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
263 { ACTION_STD_NEXT, BUTTON_RC_VOL_DOWN, BUTTON_NONE },
264 { ACTION_STD_NEXTREPEAT, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
265
266 LAST_ITEM_IN_LIST 274 LAST_ITEM_IN_LIST
267}; /* button_context_settingsgraphical */ 275};
268 276
269const struct button_mapping button_context_yesno_h100lcdremote[] = { 277const struct button_mapping button_context_list_h100remote[] = {
270 { ACTION_YESNO_ACCEPT, BUTTON_RC_MENU, BUTTON_NONE }, 278 { ACTION_LISTTREE_PGUP, BUTTON_RC_SOURCE, BUTTON_NONE },
279 { ACTION_LISTTREE_PGUP, BUTTON_RC_SOURCE|BUTTON_REPEAT, BUTTON_NONE },
280 { ACTION_LISTTREE_PGDOWN, BUTTON_RC_BITRATE, BUTTON_NONE },
281 { ACTION_LISTTREE_PGDOWN, BUTTON_RC_BITRATE|BUTTON_REPEAT, BUTTON_NONE },
271 LAST_ITEM_IN_LIST 282 LAST_ITEM_IN_LIST
272}; /* button_context_settings_yesno */ 283};
273 284
274const struct button_mapping button_context_bmark_h100lcdremote[] = { 285const struct button_mapping *button_context_list_h300lcdremote =
275 { ACTION_BMARK_DELETE, BUTTON_RC_REC, BUTTON_NONE }, 286 button_context_list_h100remote;
276 { ACTION_STD_OK, BUTTON_RC_MENU, BUTTON_NONE },
277 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGSGRAPHICAL),
278}; /* button_context_settings_bmark */
279 287
280 288
289const struct button_mapping button_context_tree_h100remote[] = {
290 { ACTION_TREE_WPS, BUTTON_RC_ON|BUTTON_REL, BUTTON_RC_ON },
291 { ACTION_TREE_STOP, BUTTON_RC_STOP|BUTTON_REL, BUTTON_RC_STOP },
292 { ACTION_TREE_STOP, BUTTON_RC_STOP|BUTTON_REPEAT, BUTTON_NONE },
281 293
282/********* H300 LCD remote ******/ 294 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST|CONTEXT_REMOTE)
283const struct button_mapping button_context_standard_h300lcdremote[] = { 295}; /* button_context_tree_h100remote */
284 { ACTION_STD_PREV, BUTTON_RC_VOL_UP, BUTTON_NONE }, 296
285 { ACTION_STD_PREVREPEAT, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, 297const struct button_mapping *button_context_tree_h300lcdremote =
286 { ACTION_STD_NEXT, BUTTON_RC_VOL_DOWN, BUTTON_NONE }, 298 button_context_tree_h100remote;
287 { ACTION_STD_NEXTREPEAT, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, 299
288 { ACTION_STD_OK, BUTTON_RC_ON|BUTTON_REL, BUTTON_RC_ON }, 300const struct button_mapping button_context_listtree_scroll_w_cmb_h100remote[] = {
289 { ACTION_STD_CANCEL, BUTTON_RC_REW, BUTTON_NONE }, 301 { ACTION_TREE_PGLEFT, BUTTON_RC_ON|BUTTON_RC_REW, BUTTON_RC_ON },
290 { ACTION_STD_CANCEL, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE }, 302 { ACTION_TREE_PGLEFT, BUTTON_RC_REW|BUTTON_REL, BUTTON_RC_ON|BUTTON_RC_REW },
291 { ACTION_STD_CONTEXT, BUTTON_RC_MENU|BUTTON_REPEAT, BUTTON_RC_MENU }, 303 { ACTION_TREE_PGLEFT, BUTTON_RC_ON|BUTTON_RC_REW, BUTTON_RC_REW|BUTTON_REL },
292 { ACTION_STD_CANCEL, BUTTON_RC_STOP, BUTTON_NONE }, 304 { ACTION_TREE_PGLEFT, BUTTON_RC_ON|BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE },
293 { ACTION_STD_QUICKSCREEN, BUTTON_RC_MODE|BUTTON_REPEAT, BUTTON_RC_MODE }, 305 { ACTION_TREE_PGRIGHT, BUTTON_RC_ON|BUTTON_RC_FF, BUTTON_RC_ON },
294 { ACTION_STD_MENU, BUTTON_RC_MODE|BUTTON_REL, BUTTON_RC_MODE }, 306 { ACTION_TREE_PGRIGHT, BUTTON_RC_FF|BUTTON_REL, BUTTON_RC_ON|BUTTON_RC_FF },
295 { ACTION_STD_OK, BUTTON_RC_MENU|BUTTON_REL, BUTTON_RC_MENU }, 307 { ACTION_TREE_PGRIGHT, BUTTON_RC_ON|BUTTON_RC_FF, BUTTON_RC_FF|BUTTON_REL },
296 { ACTION_STD_OK, BUTTON_RC_FF, BUTTON_NONE }, 308 { ACTION_TREE_PGRIGHT, BUTTON_RC_ON|BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
297 { ACTION_STD_OK, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE}, 309 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE|CONTEXT_REMOTE),
310};
311
312const struct button_mapping button_context_listtree_scroll_w_cmb_h300lcdremote[] = {
313 { ACTION_TREE_PGLEFT, BUTTON_RC_MENU|BUTTON_RC_SOURCE, BUTTON_RC_MENU },
314 { ACTION_TREE_PGLEFT, BUTTON_RC_SOURCE|BUTTON_REL, BUTTON_RC_MENU|BUTTON_RC_SOURCE },
315 { ACTION_TREE_PGLEFT, BUTTON_RC_MENU|BUTTON_RC_SOURCE, BUTTON_RC_SOURCE|BUTTON_REL },
316 { ACTION_TREE_PGLEFT, BUTTON_RC_MENU|BUTTON_RC_SOURCE|BUTTON_REPEAT, BUTTON_NONE },
317 { ACTION_TREE_PGRIGHT, BUTTON_RC_MENU|BUTTON_RC_BITRATE, BUTTON_RC_MENU },
318 { ACTION_TREE_PGRIGHT, BUTTON_RC_BITRATE|BUTTON_REL, BUTTON_RC_MENU|BUTTON_RC_BITRATE },
319 { ACTION_TREE_PGRIGHT, BUTTON_RC_MENU|BUTTON_RC_BITRATE, BUTTON_RC_BITRATE|BUTTON_REL },
320 { ACTION_TREE_PGRIGHT, BUTTON_RC_MENU|BUTTON_RC_BITRATE|BUTTON_REPEAT, BUTTON_NONE },
321 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE|CONTEXT_REMOTE),
322};
323
324const struct button_mapping button_context_listtree_scroll_wo_cmb_h100remote[] = {
325 { ACTION_NONE, BUTTON_RC_REW, BUTTON_NONE },
326 { ACTION_STD_CANCEL, BUTTON_RC_REW|BUTTON_REL, BUTTON_RC_REW },
327 { ACTION_TREE_PGLEFT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE },
328 { ACTION_TREE_PGLEFT, BUTTON_RC_REW|BUTTON_REL, BUTTON_RC_REW|BUTTON_REPEAT },
329 { ACTION_NONE, BUTTON_RC_FF, BUTTON_NONE },
330 { ACTION_STD_OK, BUTTON_RC_FF|BUTTON_REL, BUTTON_RC_FF },
331 { ACTION_TREE_PGRIGHT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
332 { ACTION_TREE_PGRIGHT, BUTTON_RC_FF|BUTTON_REL, BUTTON_RC_FF|BUTTON_REPEAT },
333 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE|CONTEXT_REMOTE),
334};
335
336const struct button_mapping button_context_listtree_scroll_wo_cmb_h300lcdremote[] = {
337 { ACTION_NONE, BUTTON_LEFT, BUTTON_NONE },
338 { ACTION_STD_CANCEL, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT },
339 { ACTION_TREE_PGLEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
340 { ACTION_TREE_PGLEFT, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT|BUTTON_REPEAT },
341 { ACTION_NONE, BUTTON_RIGHT, BUTTON_NONE },
342 { ACTION_STD_OK, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT },
343 { ACTION_TREE_PGRIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
344 { ACTION_TREE_PGRIGHT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT|BUTTON_REPEAT },
345 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE|CONTEXT_REMOTE),
346};
347
348const struct button_mapping button_context_settings_h100remote[] = {
349 { ACTION_SETTINGS_INC, BUTTON_RC_REW, BUTTON_NONE },
350 { ACTION_SETTINGS_INCREPEAT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE },
351 { ACTION_SETTINGS_DEC, BUTTON_RC_FF, BUTTON_NONE },
352 { ACTION_SETTINGS_DECREPEAT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
353/* { ACTION_NONE, BUTTON_RC_ON, BUTTON_NONE },
354 { ACTION_NONE, BUTTON_RC_STOP, BUTTON_NONE },
355 { ACTION_NONE, BUTTON_RC_MENU|BUTTON_REL, BUTTON_NONE },
356*/
357 LAST_ITEM_IN_LIST
358}; /* button_context_settings */
359
360const struct button_mapping button_context_settings_h300lcdremote[] = {
361 { ACTION_SETTINGS_INC, BUTTON_RC_VOL_UP, BUTTON_NONE },
362 { ACTION_SETTINGS_INCREPEAT, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
363 { ACTION_SETTINGS_DEC, BUTTON_RC_VOL_DOWN, BUTTON_NONE },
364 { ACTION_SETTINGS_DECREPEAT, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
365 { ACTION_NONE, BUTTON_RC_REW, BUTTON_NONE },
366 { ACTION_NONE, BUTTON_RC_FF, BUTTON_NONE },
298 367
299 LAST_ITEM_IN_LIST 368 LAST_ITEM_IN_LIST
369}; /* button_context_settings */
300 370
301}; /* button_context_standard */ 371
302 372
303/* the mapping of the 2 LCD remotes in the WPS screen should be the same */ 373const struct button_mapping button_context_settingsgraphical_h100remote[] = {
304const struct button_mapping *button_context_wps_h300lcdremote = 374 { ACTION_SETTINGS_INC, BUTTON_RC_VOL_UP, BUTTON_NONE },
305 button_context_wps_h100lcdremote; 375 { ACTION_SETTINGS_INCREPEAT, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
376 { ACTION_SETTINGS_DEC, BUTTON_RC_VOL_DOWN, BUTTON_NONE },
377 { ACTION_SETTINGS_DECREPEAT, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
378 { ACTION_STD_PREV, BUTTON_RC_REW, BUTTON_NONE },
379 { ACTION_STD_PREVREPEAT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE },
380 { ACTION_STD_NEXT, BUTTON_RC_FF, BUTTON_NONE },
381 { ACTION_STD_NEXTREPEAT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
382
383 LAST_ITEM_IN_LIST
384};
306 385
307const struct button_mapping button_context_listtree_h300lcdremote[] = { 386const struct button_mapping button_context_settingsgraphical_h300lcdremote[] = {
308 { ACTION_LISTTREE_PGUP, BUTTON_RC_SOURCE, BUTTON_NONE }, 387 { ACTION_SETTINGS_INC, BUTTON_RC_FF, BUTTON_NONE },
309 { ACTION_LISTTREE_PGUP, BUTTON_RC_SOURCE|BUTTON_REPEAT, BUTTON_NONE }, 388 { ACTION_SETTINGS_INCREPEAT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
310 { ACTION_LISTTREE_PGDOWN, BUTTON_RC_BITRATE, BUTTON_NONE }, 389 { ACTION_SETTINGS_DEC, BUTTON_RC_REW, BUTTON_NONE },
311 { ACTION_LISTTREE_PGDOWN, BUTTON_RC_BITRATE|BUTTON_REPEAT, BUTTON_NONE }, 390 { ACTION_SETTINGS_DECREPEAT, BUTTON_RC_REW|BUTTON_REPEAT,BUTTON_NONE },
312 { ACTION_TREE_WPS, BUTTON_RC_ON|BUTTON_REL, BUTTON_RC_ON }, 391 { ACTION_STD_PREV, BUTTON_RC_VOL_UP, BUTTON_NONE },
313 { ACTION_TREE_STOP, BUTTON_RC_STOP, BUTTON_NONE }, 392 { ACTION_STD_PREVREPEAT, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
393 { ACTION_STD_NEXT, BUTTON_RC_VOL_DOWN, BUTTON_NONE },
394 { ACTION_STD_NEXTREPEAT, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
395
396 LAST_ITEM_IN_LIST
397};
314 398
399const struct button_mapping button_context_yesno_h100remote[] = {
400 { ACTION_YESNO_ACCEPT, BUTTON_RC_ON, BUTTON_NONE },
315 LAST_ITEM_IN_LIST 401 LAST_ITEM_IN_LIST
402}; /* button_context_settings_yesno */
316 403
317}; /* button_context_listtree_h300lcdremote */ 404const struct button_mapping button_context_yesno_h300lcdremote[] = {
405 { ACTION_YESNO_ACCEPT, BUTTON_RC_MENU, BUTTON_NONE },
406 LAST_ITEM_IN_LIST
407}; /* button_context_settings_yesno */
318 408
319const struct button_mapping *button_context_settingsgraphical_h300lcdremote =
320 button_context_settingsgraphical_h100lcdremote;
321
322const struct button_mapping *button_context_yesno_h300lcdremote =
323 button_context_yesno_h100lcdremote;
324 409
325const struct button_mapping *button_context_bmark_h300lcdremote = 410const struct button_mapping button_context_bmark_h100remote[] = {
326 button_context_bmark_h100lcdremote; 411 { ACTION_BMARK_DELETE, BUTTON_RC_REC, BUTTON_NONE },
412 { ACTION_STD_OK, BUTTON_RC_ON, BUTTON_NONE },
413 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGSGRAPHICAL|CONTEXT_REMOTE),
414}; /* button_context_settings_bmark */
327 415
328const struct button_mapping *button_context_settings_h300lcdremote = 416const struct button_mapping button_context_bmark_h300lcdremote[] = {
329 button_context_settings_h100lcdremote; 417 { ACTION_BMARK_DELETE, BUTTON_RC_REC, BUTTON_NONE },
330/* FIXME: non lcd remotes need mappings.. ?? */ 418 { ACTION_STD_OK, BUTTON_RC_MENU, BUTTON_NONE },
419 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGSGRAPHICAL|CONTEXT_REMOTE),
420};
421
422const struct button_mapping button_context_quickscreen_h100remote[] = {
423 { ACTION_QS_DOWNINV, BUTTON_RC_REW, BUTTON_NONE },
424 { ACTION_QS_DOWNINV, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE },
425 { ACTION_QS_DOWN, BUTTON_RC_FF, BUTTON_NONE },
426 { ACTION_QS_DOWN, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
427 { ACTION_QS_LEFT, BUTTON_RC_VOL_DOWN, BUTTON_NONE },
428 { ACTION_QS_LEFT, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
429 { ACTION_QS_RIGHT, BUTTON_RC_VOL_UP, BUTTON_NONE },
430 { ACTION_QS_RIGHT, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
431 { ACTION_STD_CANCEL, BUTTON_MODE, BUTTON_NONE },
432
433 LAST_ITEM_IN_LIST
434}; /* button_context_quickscreen */
331 435
436const struct button_mapping button_context_quickscreen_h300lcdremote[] = {
437 { ACTION_QS_DOWNINV, BUTTON_RC_VOL_UP, BUTTON_NONE },
438 { ACTION_QS_DOWNINV, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
439 { ACTION_QS_DOWN, BUTTON_RC_VOL_DOWN, BUTTON_NONE },
440 { ACTION_QS_DOWN, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
441 { ACTION_QS_LEFT, BUTTON_RC_REW, BUTTON_NONE },
442 { ACTION_QS_LEFT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE },
443 { ACTION_QS_RIGHT, BUTTON_RC_FF, BUTTON_NONE },
444 { ACTION_QS_RIGHT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
445 { ACTION_STD_CANCEL, BUTTON_MODE, BUTTON_NONE },
446
447 LAST_ITEM_IN_LIST
448}; /* button_context_quickscreen */
332 449
450const struct button_mapping button_context_pitchscreen_h100remote[] = {
451 { ACTION_PS_INC_SMALL, BUTTON_RC_REW, BUTTON_NONE },
452 { ACTION_PS_INC_BIG, BUTTON_RC_REW|BUTTON_REPEAT,BUTTON_NONE },
453 { ACTION_PS_DEC_SMALL, BUTTON_RC_FF, BUTTON_NONE },
454 { ACTION_PS_DEC_BIG, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
455 { ACTION_PS_NUDGE_LEFT, BUTTON_RC_VOL_DOWN, BUTTON_NONE },
456 { ACTION_PS_NUDGE_LEFTOFF, BUTTON_RC_VOL_DOWN|BUTTON_REL, BUTTON_NONE },
457 { ACTION_PS_NUDGE_RIGHT, BUTTON_RC_VOL_UP, BUTTON_NONE },
458 { ACTION_PS_NUDGE_RIGHTOFF, BUTTON_RC_VOL_UP|BUTTON_REL,BUTTON_NONE },
459 { ACTION_PS_RESET, BUTTON_RC_ON, BUTTON_NONE },
460 { ACTION_PS_EXIT, BUTTON_RC_STOP, BUTTON_NONE },
461
462 LAST_ITEM_IN_LIST
463}; /* button_context_pitchcreen */
333 464
465const struct button_mapping button_context_pitchscreen_h300lcdremote[] = {
466 { ACTION_PS_INC_SMALL, BUTTON_RC_VOL_UP, BUTTON_NONE },
467 { ACTION_PS_INC_BIG, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
468 { ACTION_PS_DEC_SMALL, BUTTON_RC_VOL_DOWN, BUTTON_NONE },
469 { ACTION_PS_DEC_BIG, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
470 { ACTION_PS_NUDGE_LEFT, BUTTON_RC_REW, BUTTON_NONE },
471 { ACTION_PS_NUDGE_LEFTOFF, BUTTON_RC_REW|BUTTON_REL, BUTTON_NONE },
472 { ACTION_PS_NUDGE_RIGHT, BUTTON_RC_FF, BUTTON_NONE },
473 { ACTION_PS_NUDGE_RIGHTOFF, BUTTON_RC_FF|BUTTON_REL, BUTTON_NONE },
474 { ACTION_PS_RESET, BUTTON_RC_ON, BUTTON_NONE },
475 { ACTION_PS_EXIT, BUTTON_RC_STOP, BUTTON_NONE },
476
477 LAST_ITEM_IN_LIST
478};
334 479
335 480
336 481
337/* the actual used tables */ 482/* the actual used tables */
338static const struct button_mapping 483static const struct button_mapping
339 *remote_button_context_std = button_context_standard_h100lcdremote, 484 *remote_btn_ctxt_std = button_context_standard_h100remote,
340 *remote_button_context_wps = button_context_wps_h100lcdremote, 485 *remote_btn_ctxt_wps = button_context_wps_h100remote,
341 *remote_button_context_listtree = button_context_listtree_h100lcdremote, 486 *remote_btn_ctxt_list = button_context_list_h100remote,
342 *remote_button_context_settings = button_context_settings_h100lcdremote, 487 *remote_btn_ctxt_tree = button_context_tree_h100remote,
343 *remote_button_context_settingsgraphical = button_context_settingsgraphical_h100lcdremote, 488 *remote_btn_ctxt_listtree_scroll_w_cmb
344 *remote_button_context_yesno = button_context_yesno_h100lcdremote, 489 = button_context_listtree_scroll_w_cmb_h100remote,
345 *remote_button_context_bmark = button_context_bmark_h100lcdremote; 490 *remote_btn_ctxt_listtree_scroll_wo_cmb
346 491 = button_context_listtree_scroll_wo_cmb_h100remote,
492 *remote_btn_ctxt_settings = button_context_settings_h100remote,
493 *remote_btn_ctxt_settingsgrph
494 = button_context_settingsgraphical_h100remote,
495 *remote_btn_ctxt_yesno = button_context_yesno_h100remote,
496 *remote_btn_ctxt_bmark = button_context_bmark_h100remote,
497 *remote_btn_ctxt_quickscreen
498 = button_context_quickscreen_h100remote,
499 *remote_btn_ctxt_pitchscreen
500 = button_context_pitchscreen_h100remote;
501
347static int _remote_type = 0; 502static int _remote_type = 0;
348 503
349static void remap_remote(void) 504static void remap_remote(void)
@@ -352,51 +507,98 @@ static void remap_remote(void)
352 switch(_remote_type) 507 switch(_remote_type)
353 { 508 {
354 case REMOTETYPE_UNPLUGGED: 509 case REMOTETYPE_UNPLUGGED:
355 remote_button_context_std = NULL; 510 remote_btn_ctxt_std = NULL;
356 remote_button_context_wps = NULL; 511 remote_btn_ctxt_wps = NULL;
357 remote_button_context_listtree = NULL; 512 remote_btn_ctxt_list = NULL;
358 remote_button_context_settings = NULL; 513 remote_btn_ctxt_tree = NULL;
359 remote_button_context_settingsgraphical = NULL; 514 remote_btn_ctxt_listtree_scroll_w_cmb = NULL;
360 remote_button_context_yesno = NULL; 515 remote_btn_ctxt_listtree_scroll_wo_cmb = NULL;
361 remote_button_context_bmark = NULL; 516 remote_btn_ctxt_settings = NULL;
517 remote_btn_ctxt_settingsgrph = NULL;
518 remote_btn_ctxt_yesno = NULL;
519 remote_btn_ctxt_bmark = NULL;
520 remote_btn_ctxt_quickscreen = NULL;
521 remote_btn_ctxt_pitchscreen = NULL;
362 break; 522 break;
523
363 case REMOTETYPE_H100_LCD: 524 case REMOTETYPE_H100_LCD:
364 remote_button_context_std = button_context_standard_h100lcdremote; 525 remote_btn_ctxt_std = button_context_standard_h100remote,
365 remote_button_context_wps = button_context_wps_h100lcdremote; 526 remote_btn_ctxt_wps = button_context_wps_h100remote,
366 remote_button_context_listtree = button_context_listtree_h100lcdremote; 527 remote_btn_ctxt_list = button_context_list_h100remote,
367 remote_button_context_settings = button_context_settings_h100lcdremote; 528 remote_btn_ctxt_tree = button_context_tree_h100remote,
368 remote_button_context_settingsgraphical = button_context_settingsgraphical_h100lcdremote; 529 remote_btn_ctxt_listtree_scroll_w_cmb
369 remote_button_context_yesno = button_context_yesno_h100lcdremote; 530 = button_context_listtree_scroll_w_cmb_h100remote,
370 remote_button_context_bmark = button_context_bmark_h100lcdremote; 531 remote_btn_ctxt_listtree_scroll_wo_cmb
532 = button_context_listtree_scroll_wo_cmb_h100remote,
533 remote_btn_ctxt_settings = button_context_settings_h100remote,
534 remote_btn_ctxt_settingsgrph
535 = button_context_settingsgraphical_h100remote,
536 remote_btn_ctxt_yesno = button_context_yesno_h100remote,
537 remote_btn_ctxt_bmark = button_context_bmark_h100remote,
538 remote_btn_ctxt_quickscreen
539 = button_context_quickscreen_h100remote,
540 remote_btn_ctxt_pitchscreen
541 = button_context_pitchscreen_h100remote;
371 break; 542 break;
543
372 case REMOTETYPE_H300_LCD: 544 case REMOTETYPE_H300_LCD:
373 remote_button_context_std = button_context_standard_h300lcdremote; 545 remote_btn_ctxt_std = button_context_standard_h300lcdremote,
374 remote_button_context_wps = button_context_wps_h300lcdremote; 546 remote_btn_ctxt_wps = button_context_wps_h300lcdremote,
375 remote_button_context_listtree = button_context_listtree_h300lcdremote; 547 remote_btn_ctxt_list = button_context_list_h300lcdremote,
376 remote_button_context_settings = button_context_settings_h300lcdremote; 548 remote_btn_ctxt_tree = button_context_tree_h300lcdremote,
377 remote_button_context_settingsgraphical = button_context_settingsgraphical_h300lcdremote; 549 remote_btn_ctxt_listtree_scroll_w_cmb
378 remote_button_context_yesno = button_context_yesno_h300lcdremote; 550 = button_context_listtree_scroll_w_cmb_h300lcdremote,
379 remote_button_context_bmark = button_context_bmark_h300lcdremote; 551 remote_btn_ctxt_listtree_scroll_wo_cmb
552 = button_context_listtree_scroll_wo_cmb_h300lcdremote,
553 remote_btn_ctxt_settings = button_context_settings_h300lcdremote,
554 remote_btn_ctxt_settingsgrph
555 = button_context_settingsgraphical_h300lcdremote,
556 remote_btn_ctxt_yesno = button_context_yesno_h300lcdremote,
557 remote_btn_ctxt_bmark = button_context_bmark_h300lcdremote,
558 remote_btn_ctxt_quickscreen
559 = button_context_quickscreen_h300lcdremote,
560 remote_btn_ctxt_pitchscreen
561 = button_context_pitchscreen_h300lcdremote;
380 break; 562 break;
563
381 case REMOTETYPE_H300_NONLCD: /* FIXME: add its tables */ 564 case REMOTETYPE_H300_NONLCD: /* FIXME: add its tables */
382 remote_button_context_std = button_context_standard_h300lcdremote; 565 remote_btn_ctxt_std = button_context_standard_h300lcdremote,
383 remote_button_context_wps = button_context_wps_h300lcdremote; 566 remote_btn_ctxt_wps = button_context_wps_h300lcdremote,
384 remote_button_context_listtree = button_context_listtree_h300lcdremote; 567 remote_btn_ctxt_list = button_context_list_h300lcdremote,
385 remote_button_context_settings = button_context_settings_h300lcdremote; 568 remote_btn_ctxt_tree = button_context_tree_h300lcdremote,
386 remote_button_context_settingsgraphical = button_context_settingsgraphical_h300lcdremote; 569 remote_btn_ctxt_listtree_scroll_w_cmb
387 remote_button_context_yesno = button_context_yesno_h300lcdremote; 570 = button_context_listtree_scroll_w_cmb_h300lcdremote,
388 remote_button_context_bmark = button_context_bmark_h300lcdremote; 571 remote_btn_ctxt_listtree_scroll_wo_cmb
572 = button_context_listtree_scroll_wo_cmb_h300lcdremote,
573 remote_btn_ctxt_settings = button_context_settings_h300lcdremote,
574 remote_btn_ctxt_settingsgrph
575 = button_context_settingsgraphical_h300lcdremote,
576 remote_btn_ctxt_yesno = button_context_yesno_h300lcdremote,
577 remote_btn_ctxt_bmark = button_context_bmark_h300lcdremote,
578 remote_btn_ctxt_quickscreen
579 = button_context_quickscreen_h300lcdremote,
580 remote_btn_ctxt_pitchscreen
581 = button_context_pitchscreen_h300lcdremote;
582#if 0
583 remote_btn_ctxt_std =
584 remote_btn_ctxt_wps =
585 remote_btn_ctxt_list =
586 remote_btn_ctxt_tree =
587 remote_btn_ctxt_listtree_scroll_w_cmb =
588 remote_btn_ctxt_listtree_scroll_wo_cmb =
589 remote_btn_ctxt_settings =
590 remote_btn_ctxt_settingsgrph =
591 remote_btn_ctxt_yesno =
592 remote_btn_ctxt_bmark =
593 remote_btn_ctxt_quickscreen =
594 remote_btn_ctxt_pitchscreen =
595#endif
389 break; 596 break;
597
390 } 598 }
391} 599}
392 600
393 601
394
395
396
397
398
399
400const struct button_mapping* get_context_mapping_remote(int context) 602const struct button_mapping* get_context_mapping_remote(int context)
401{ 603{
402 if(remote_type() != _remote_type) 604 if(remote_type() != _remote_type)
@@ -407,22 +609,40 @@ const struct button_mapping* get_context_mapping_remote(int context)
407 { 609 {
408 case CONTEXT_STD: 610 case CONTEXT_STD:
409 case CONTEXT_MAINMENU: 611 case CONTEXT_MAINMENU:
410 case CONTEXT_SETTINGS: 612 return remote_btn_ctxt_std;
411 return remote_button_context_std; 613 case CONTEXT_WPS: /* common for all remotes */
412 case CONTEXT_WPS: 614 return button_context_wps_remotescommon;
413 return remote_button_context_wps; 615
414 616 case CONTEXT_CUSTOM|CONTEXT_WPS:
415 case CONTEXT_TREE: 617 return remote_btn_ctxt_wps;
618
416 case CONTEXT_LIST: 619 case CONTEXT_LIST:
417 return remote_button_context_listtree; 620 return remote_btn_ctxt_list;
621 case CONTEXT_TREE:
622 if (global_settings.hold_lr_for_scroll_in_list)
623 return remote_btn_ctxt_listtree_scroll_wo_cmb;
624 else
625 return remote_btn_ctxt_listtree_scroll_w_cmb;
626 case CONTEXT_CUSTOM|CONTEXT_TREE:
627 return remote_btn_ctxt_tree;
628
418 case CONTEXT_SETTINGSGRAPHICAL: 629 case CONTEXT_SETTINGSGRAPHICAL:
419 return remote_button_context_settingsgraphical; 630 return remote_btn_ctxt_settingsgrph;
420 case CONTEXT_YESNOSCREEN: 631
421 return remote_button_context_yesno; 632 case CONTEXT_SETTINGS:
633 return remote_btn_ctxt_settings;
634
635 case CONTEXT_YESNOSCREEN:
636 return remote_btn_ctxt_yesno;
637
422 case CONTEXT_BOOKMARKSCREEN: 638 case CONTEXT_BOOKMARKSCREEN:
423 return remote_button_context_bmark; 639 return remote_btn_ctxt_bmark;
640 case CONTEXT_QUICKSCREEN:
641 return remote_btn_ctxt_quickscreen;
642 case CONTEXT_PITCHSCREEN:
643 return remote_btn_ctxt_pitchscreen;
424 } 644 }
425 return remote_button_context_std; 645 return remote_btn_ctxt_std;
426} 646}
427 647
428const struct button_mapping* get_context_mapping(int context) 648const struct button_mapping* get_context_mapping(int context)
@@ -439,13 +659,15 @@ const struct button_mapping* get_context_mapping(int context)
439 return button_context_wps; 659 return button_context_wps;
440 660
441 case CONTEXT_LIST: 661 case CONTEXT_LIST:
442 return button_context_listtree; 662 return button_context_list;
443 case CONTEXT_TREE: 663 case CONTEXT_TREE:
444 if (global_settings.hold_lr_for_scroll_in_list) 664 if (global_settings.hold_lr_for_scroll_in_list)
445 return button_context_listtree_scroll_without_combo; 665 return button_context_listtree_scroll_without_combo;
446 else return button_context_listtree_scroll_with_combo; 666 else
447 case CONTEXT_CUSTOM|1: 667 return button_context_listtree_scroll_with_combo;
668 case CONTEXT_CUSTOM|CONTEXT_TREE:
448 return button_context_tree; 669 return button_context_tree;
670
449 case CONTEXT_SETTINGSGRAPHICAL: 671 case CONTEXT_SETTINGSGRAPHICAL:
450 return button_context_settingsgraphical; 672 return button_context_settingsgraphical;
451 673