diff options
author | Barry Wardell <rockbox@barrywardell.net> | 2006-09-29 15:59:08 +0000 |
---|---|---|
committer | Barry Wardell <rockbox@barrywardell.net> | 2006-09-29 15:59:08 +0000 |
commit | b692fb11b3bb081f51a7bab7351ccbfc78df6617 (patch) | |
tree | 0ab0d56062d3865e17e9ec77d4da8c368195fc41 /apps/keymaps | |
parent | d9fe5a77b0ad3fb03e5381501e76c7f9a97ab944 (diff) | |
download | rockbox-b692fb11b3bb081f51a7bab7351ccbfc78df6617.tar.gz rockbox-b692fb11b3bb081f51a7bab7351ccbfc78df6617.zip |
Add support for H10 remote. Remote buttons have the same keymappings as their counterparts on the H10 itself, with vol-/vol+ being the same as scroll up/down.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11093 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/keymaps')
-rw-r--r-- | apps/keymaps/keymap-h10.c | 131 |
1 files changed, 130 insertions, 1 deletions
diff --git a/apps/keymaps/keymap-h10.c b/apps/keymaps/keymap-h10.c index 1be904727e..7cced51951 100644 --- a/apps/keymaps/keymap-h10.c +++ b/apps/keymaps/keymap-h10.c | |||
@@ -52,6 +52,15 @@ const struct button_mapping button_context_standard[] = { | |||
52 | LAST_ITEM_IN_LIST | 52 | LAST_ITEM_IN_LIST |
53 | }; /* button_context_standard */ | 53 | }; /* button_context_standard */ |
54 | 54 | ||
55 | const struct button_mapping remote_button_context_standard[] = { | ||
56 | { ACTION_STD_PREV, BUTTON_RC_VOL_UP, BUTTON_NONE }, | ||
57 | { ACTION_STD_PREVREPEAT, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
58 | { ACTION_STD_NEXT, BUTTON_RC_VOL_DOWN, BUTTON_NONE }, | ||
59 | { ACTION_STD_NEXTREPEAT, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
60 | |||
61 | LAST_ITEM_IN_LIST | ||
62 | }; /* remote_button_context_standard */ | ||
63 | |||
55 | const struct button_mapping button_context_wps[] = { | 64 | const struct button_mapping button_context_wps[] = { |
56 | { ACTION_WPS_PLAY, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY }, | 65 | { ACTION_WPS_PLAY, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY }, |
57 | { ACTION_WPS_STOP, BUTTON_PLAY|BUTTON_REPEAT,BUTTON_PLAY }, | 66 | { ACTION_WPS_STOP, BUTTON_PLAY|BUTTON_REPEAT,BUTTON_PLAY }, |
@@ -77,6 +86,27 @@ const struct button_mapping button_context_wps[] = { | |||
77 | LAST_ITEM_IN_LIST | 86 | LAST_ITEM_IN_LIST |
78 | }; /* button_context_wps */ | 87 | }; /* button_context_wps */ |
79 | 88 | ||
89 | const struct button_mapping remote_button_context_wps[] = { | ||
90 | { ACTION_WPS_PLAY, BUTTON_RC_PLAY|BUTTON_REL, BUTTON_RC_PLAY }, | ||
91 | { ACTION_WPS_STOP, BUTTON_RC_PLAY|BUTTON_REPEAT,BUTTON_RC_PLAY }, | ||
92 | { ACTION_WPS_SKIPPREV, BUTTON_RC_REW|BUTTON_REL, BUTTON_RC_REW}, | ||
93 | { ACTION_WPS_SEEKBACK, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE }, | ||
94 | { ACTION_WPS_STOPSEEK, BUTTON_RC_REW|BUTTON_REL, BUTTON_RC_REW|BUTTON_REPEAT }, | ||
95 | { ACTION_WPS_SKIPNEXT, BUTTON_RC_FF|BUTTON_REL, BUTTON_RC_FF }, | ||
96 | { ACTION_WPS_SEEKFWD, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE }, | ||
97 | { ACTION_WPS_STOPSEEK, BUTTON_RC_FF|BUTTON_REL, BUTTON_RC_FF|BUTTON_REPEAT }, | ||
98 | |||
99 | { ACTION_WPS_VOLDOWN, BUTTON_RC_VOL_DOWN, BUTTON_NONE }, | ||
100 | { ACTION_WPS_VOLDOWN, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
101 | { ACTION_WPS_VOLUP, BUTTON_RC_VOL_UP, BUTTON_NONE }, | ||
102 | { ACTION_WPS_VOLUP, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
103 | |||
104 | { ACTION_WPS_PITCHSCREEN, BUTTON_RC_PLAY|BUTTON_LEFT, BUTTON_RC_PLAY }, | ||
105 | { ACTION_WPS_ID3SCREEN, BUTTON_RC_PLAY|BUTTON_RIGHT, BUTTON_RC_PLAY }, | ||
106 | |||
107 | LAST_ITEM_IN_LIST | ||
108 | }; /* remote_button_context_wps */ | ||
109 | |||
80 | const struct button_mapping button_context_settings[] = { | 110 | const struct button_mapping button_context_settings[] = { |
81 | { ACTION_SETTINGS_INC, BUTTON_SCROLL_UP, BUTTON_NONE }, | 111 | { ACTION_SETTINGS_INC, BUTTON_SCROLL_UP, BUTTON_NONE }, |
82 | { ACTION_SETTINGS_INCREPEAT,BUTTON_SCROLL_UP|BUTTON_REPEAT, BUTTON_NONE }, | 112 | { ACTION_SETTINGS_INCREPEAT,BUTTON_SCROLL_UP|BUTTON_REPEAT, BUTTON_NONE }, |
@@ -98,6 +128,13 @@ const struct button_mapping button_context_list[] = { | |||
98 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | 128 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) |
99 | }; /* button_context_list */ | 129 | }; /* button_context_list */ |
100 | 130 | ||
131 | const struct button_mapping remote_button_context_list[] = { | ||
132 | { ACTION_LISTTREE_PGUP, BUTTON_RC_REW|BUTTON_REL, BUTTON_RC_REW }, | ||
133 | { ACTION_LISTTREE_PGDOWN, BUTTON_RC_FF|BUTTON_REL, BUTTON_RC_FF }, | ||
134 | |||
135 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | ||
136 | }; /* button_context_list */ | ||
137 | |||
101 | const struct button_mapping button_context_tree[] = { | 138 | const struct button_mapping button_context_tree[] = { |
102 | { ACTION_TREE_WPS, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY }, | 139 | { ACTION_TREE_WPS, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY }, |
103 | { ACTION_TREE_STOP, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY }, | 140 | { ACTION_TREE_STOP, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY }, |
@@ -105,6 +142,13 @@ const struct button_mapping button_context_tree[] = { | |||
105 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST), | 142 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST), |
106 | }; /* button_context_tree */ | 143 | }; /* button_context_tree */ |
107 | 144 | ||
145 | const struct button_mapping remote_button_context_tree[] = { | ||
146 | { ACTION_TREE_WPS, BUTTON_RC_PLAY|BUTTON_REL, BUTTON_RC_PLAY }, | ||
147 | { ACTION_TREE_STOP, BUTTON_RC_PLAY|BUTTON_REPEAT, BUTTON_RC_PLAY }, | ||
148 | |||
149 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST), | ||
150 | }; /* button_context_tree */ | ||
151 | |||
108 | const struct button_mapping button_context_listtree_scroll_without_combo[] = { | 152 | const struct button_mapping button_context_listtree_scroll_without_combo[] = { |
109 | { ACTION_TREE_ROOT_INIT, BUTTON_REW|BUTTON_REPEAT, BUTTON_REW }, | 153 | { ACTION_TREE_ROOT_INIT, BUTTON_REW|BUTTON_REPEAT, BUTTON_REW }, |
110 | { ACTION_TREE_PGLEFT, BUTTON_REW|BUTTON_REPEAT, BUTTON_NONE }, | 154 | { ACTION_TREE_PGLEFT, BUTTON_REW|BUTTON_REPEAT, BUTTON_NONE }, |
@@ -112,6 +156,13 @@ const struct button_mapping button_context_listtree_scroll_without_combo[] = { | |||
112 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE), | 156 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE), |
113 | }; /* button_context_listtree_scroll_without_combo */ | 157 | }; /* button_context_listtree_scroll_without_combo */ |
114 | 158 | ||
159 | const struct button_mapping remote_button_context_listtree_scroll_without_combo[] = { | ||
160 | { ACTION_TREE_ROOT_INIT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_RC_REW }, | ||
161 | { ACTION_TREE_PGLEFT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE }, | ||
162 | { ACTION_TREE_PGRIGHT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE }, | ||
163 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE), | ||
164 | }; /* button_context_listtree_scroll_without_combo */ | ||
165 | |||
115 | const struct button_mapping button_context_listtree_scroll_with_combo[] = { | 166 | const struct button_mapping button_context_listtree_scroll_with_combo[] = { |
116 | { ACTION_LISTTREE_PGUP, BUTTON_REW|BUTTON_REPEAT, BUTTON_REW }, | 167 | { ACTION_LISTTREE_PGUP, BUTTON_REW|BUTTON_REPEAT, BUTTON_REW }, |
117 | { ACTION_LISTTREE_PGDOWN, BUTTON_FF|BUTTON_REPEAT, BUTTON_FF }, | 168 | { ACTION_LISTTREE_PGDOWN, BUTTON_FF|BUTTON_REPEAT, BUTTON_FF }, |
@@ -127,6 +178,21 @@ const struct button_mapping button_context_listtree_scroll_with_combo[] = { | |||
127 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE), | 178 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE), |
128 | }; /* button_context_listtree_scroll_with_combo */ | 179 | }; /* button_context_listtree_scroll_with_combo */ |
129 | 180 | ||
181 | const struct button_mapping remote_button_context_listtree_scroll_with_combo[] = { | ||
182 | { ACTION_LISTTREE_PGUP, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_RC_REW }, | ||
183 | { ACTION_LISTTREE_PGDOWN, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_RC_FF }, | ||
184 | { ACTION_TREE_PGLEFT, BUTTON_RC_REW|BUTTON_RC_PLAY, BUTTON_RC_PLAY }, | ||
185 | { ACTION_TREE_PGLEFT, BUTTON_RC_REW|BUTTON_REL, BUTTON_RC_REW|BUTTON_RC_PLAY }, | ||
186 | { ACTION_TREE_PGLEFT, BUTTON_RC_REW|BUTTON_RC_PLAY, BUTTON_RC_REW|BUTTON_REL }, | ||
187 | { ACTION_TREE_ROOT_INIT, BUTTON_RC_REW|BUTTON_RC_PLAY|BUTTON_REPEAT, BUTTON_RC_REW|BUTTON_RC_PLAY }, | ||
188 | { ACTION_TREE_PGLEFT, BUTTON_RC_REW|BUTTON_RC_PLAY|BUTTON_REPEAT, BUTTON_NONE }, | ||
189 | { ACTION_TREE_PGRIGHT, BUTTON_RC_FF|BUTTON_RC_PLAY, BUTTON_RC_PLAY }, | ||
190 | { ACTION_TREE_PGRIGHT, BUTTON_RC_FF|BUTTON_REL, BUTTON_RC_FF|BUTTON_RC_PLAY }, | ||
191 | { ACTION_TREE_PGRIGHT, BUTTON_RC_FF|BUTTON_RC_PLAY, BUTTON_RC_FF|BUTTON_REL }, | ||
192 | { ACTION_TREE_PGRIGHT, BUTTON_RC_FF|BUTTON_RC_PLAY|BUTTON_REPEAT, BUTTON_NONE }, | ||
193 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE), | ||
194 | }; /* button_context_listtree_scroll_with_combo */ | ||
195 | |||
130 | const struct button_mapping button_context_yesno[] = { | 196 | const struct button_mapping button_context_yesno[] = { |
131 | { ACTION_YESNO_ACCEPT, BUTTON_RIGHT, BUTTON_NONE }, | 197 | { ACTION_YESNO_ACCEPT, BUTTON_RIGHT, BUTTON_NONE }, |
132 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD), | 198 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD), |
@@ -145,6 +211,19 @@ const struct button_mapping button_context_quickscreen[] = { | |||
145 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD), | 211 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD), |
146 | }; /* button_context_quickscreen */ | 212 | }; /* button_context_quickscreen */ |
147 | 213 | ||
214 | const struct button_mapping remote_button_context_quickscreen[] = { | ||
215 | { ACTION_QS_DOWNINV, BUTTON_RC_VOL_UP, BUTTON_NONE }, | ||
216 | { ACTION_QS_DOWNINV, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
217 | { ACTION_QS_DOWN, BUTTON_RC_VOL_DOWN, BUTTON_NONE }, | ||
218 | { ACTION_QS_DOWN, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
219 | { ACTION_QS_LEFT, BUTTON_RC_REW, BUTTON_NONE }, | ||
220 | { ACTION_QS_LEFT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE }, | ||
221 | { ACTION_QS_RIGHT, BUTTON_RC_FF, BUTTON_NONE }, | ||
222 | { ACTION_QS_RIGHT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE }, | ||
223 | |||
224 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD), | ||
225 | }; /* button_context_quickscreen */ | ||
226 | |||
148 | const struct button_mapping button_context_settings_right_is_inc[] = { | 227 | const struct button_mapping button_context_settings_right_is_inc[] = { |
149 | { ACTION_SETTINGS_INC, BUTTON_SCROLL_UP, BUTTON_NONE }, | 228 | { ACTION_SETTINGS_INC, BUTTON_SCROLL_UP, BUTTON_NONE }, |
150 | { ACTION_SETTINGS_INCREPEAT, BUTTON_SCROLL_UP|BUTTON_REPEAT, BUTTON_NONE }, | 229 | { ACTION_SETTINGS_INCREPEAT, BUTTON_SCROLL_UP|BUTTON_REPEAT, BUTTON_NONE }, |
@@ -177,6 +256,20 @@ const struct button_mapping button_context_pitchscreen[] = { | |||
177 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD), | 256 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD), |
178 | }; /* button_context_pitchscreen */ | 257 | }; /* button_context_pitchscreen */ |
179 | 258 | ||
259 | const struct button_mapping remote_button_context_pitchscreen[] = { | ||
260 | { ACTION_PS_INC_SMALL, BUTTON_RC_VOL_UP, BUTTON_NONE }, | ||
261 | { ACTION_PS_INC_BIG, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
262 | { ACTION_PS_DEC_SMALL, BUTTON_RC_VOL_DOWN, BUTTON_NONE }, | ||
263 | { ACTION_PS_DEC_BIG, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
264 | { ACTION_PS_NUDGE_LEFT, BUTTON_RC_REW, BUTTON_NONE }, | ||
265 | { ACTION_PS_NUDGE_LEFTOFF, BUTTON_RC_REW|BUTTON_REL, BUTTON_NONE }, | ||
266 | { ACTION_PS_NUDGE_RIGHT, BUTTON_RC_FF, BUTTON_NONE }, | ||
267 | { ACTION_PS_NUDGE_RIGHTOFF, BUTTON_RC_FF|BUTTON_REL, BUTTON_NONE }, | ||
268 | { ACTION_PS_RESET, BUTTON_RC_PLAY, BUTTON_NONE }, | ||
269 | |||
270 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD), | ||
271 | }; /* button_context_pitchscreen */ | ||
272 | |||
180 | const struct button_mapping button_context_keyboard[] = { | 273 | const struct button_mapping button_context_keyboard[] = { |
181 | { ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE }, | 274 | { ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE }, |
182 | { ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | 275 | { ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, |
@@ -200,9 +293,45 @@ const struct button_mapping button_context_bmark[] = { | |||
200 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD), | 293 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD), |
201 | }; /* button_context_bmark */ | 294 | }; /* button_context_bmark */ |
202 | 295 | ||
296 | static const struct button_mapping* get_context_mapping_remote( int context ) | ||
297 | { | ||
298 | context ^= CONTEXT_REMOTE; | ||
299 | |||
300 | switch (context) | ||
301 | { | ||
302 | case CONTEXT_STD: | ||
303 | case CONTEXT_MAINMENU: | ||
304 | return remote_button_context_standard; | ||
305 | |||
306 | case CONTEXT_WPS: | ||
307 | return remote_button_context_wps; | ||
308 | |||
309 | case CONTEXT_LIST: | ||
310 | return remote_button_context_list; | ||
311 | case CONTEXT_TREE: | ||
312 | if (global_settings.hold_lr_for_scroll_in_list) | ||
313 | return remote_button_context_listtree_scroll_without_combo; | ||
314 | else | ||
315 | return remote_button_context_listtree_scroll_with_combo; | ||
316 | case CONTEXT_CUSTOM|CONTEXT_TREE: | ||
317 | return remote_button_context_tree; | ||
318 | |||
319 | case CONTEXT_QUICKSCREEN: | ||
320 | return remote_button_context_quickscreen; | ||
321 | case CONTEXT_PITCHSCREEN: | ||
322 | return remote_button_context_pitchscreen; | ||
323 | |||
324 | default: | ||
325 | return remote_button_context_standard; | ||
326 | } | ||
327 | } | ||
328 | |||
203 | /* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */ | 329 | /* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */ |
204 | const struct button_mapping* get_context_mapping(int context) | 330 | const struct button_mapping* get_context_mapping(int context) |
205 | { | 331 | { |
332 | if (context&CONTEXT_REMOTE) | ||
333 | return get_context_mapping_remote(context); | ||
334 | |||
206 | switch (context) | 335 | switch (context) |
207 | { | 336 | { |
208 | case CONTEXT_STD: | 337 | case CONTEXT_STD: |
@@ -220,7 +349,7 @@ const struct button_mapping* get_context_mapping(int context) | |||
220 | else | 349 | else |
221 | return button_context_listtree_scroll_with_combo; | 350 | return button_context_listtree_scroll_with_combo; |
222 | case CONTEXT_CUSTOM|CONTEXT_TREE: | 351 | case CONTEXT_CUSTOM|CONTEXT_TREE: |
223 | return button_context_tree; | 352 | return remote_button_context_tree; |
224 | 353 | ||
225 | case CONTEXT_SETTINGS: | 354 | case CONTEXT_SETTINGS: |
226 | return button_context_settings; | 355 | return button_context_settings; |