summaryrefslogtreecommitdiff
path: root/apps/keymaps/keymap-ipod.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/keymaps/keymap-ipod.c')
-rw-r--r--apps/keymaps/keymap-ipod.c148
1 files changed, 68 insertions, 80 deletions
diff --git a/apps/keymaps/keymap-ipod.c b/apps/keymaps/keymap-ipod.c
index d0e84ef2dc..1a8f7a25ff 100644
--- a/apps/keymaps/keymap-ipod.c
+++ b/apps/keymaps/keymap-ipod.c
@@ -195,30 +195,70 @@ const struct button_mapping button_context_recscreen[] = {
195 195
196#ifdef USB_ENABLE_HID 196#ifdef USB_ENABLE_HID
197static const struct button_mapping button_context_usb_hid[] = { 197static const struct button_mapping button_context_usb_hid[] = {
198 { ACTION_USB_HID_INC, BUTTON_SCROLL_FWD, BUTTON_NONE }, 198 { ACTION_USB_HID_MODE_SWITCH_NEXT, BUTTON_SELECT|BUTTON_RIGHT|BUTTON_REL, BUTTON_SELECT|BUTTON_RIGHT },
199 { ACTION_USB_HID_INC, BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE }, 199 { ACTION_USB_HID_MODE_SWITCH_NEXT, BUTTON_SELECT|BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_SELECT|BUTTON_RIGHT },
200 { ACTION_USB_HID_DEC, BUTTON_SCROLL_BACK, BUTTON_NONE }, 200 { ACTION_USB_HID_MODE_SWITCH_PREV, BUTTON_SELECT|BUTTON_LEFT|BUTTON_REL, BUTTON_SELECT|BUTTON_LEFT },
201 { ACTION_USB_HID_DEC, BUTTON_SCROLL_BACK|BUTTON_REPEAT, BUTTON_NONE }, 201 { ACTION_USB_HID_MODE_SWITCH_PREV, BUTTON_SELECT|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_SELECT|BUTTON_LEFT },
202 { ACTION_USB_HID_START, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY },
203 { ACTION_USB_HID_QUIT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY },
204 { ACTION_USB_HID_LEFT, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT },
205 { ACTION_USB_HID_LEFT_LONG, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_LEFT },
206 { ACTION_USB_HID_RIGHT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT },
207 { ACTION_USB_HID_RIGHT_LONG, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_RIGHT },
208 { ACTION_USB_HID_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT },
209 { ACTION_USB_HID_SELECT_LONG, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT },
210 { ACTION_USB_HID_MENU, BUTTON_MENU|BUTTON_REL, BUTTON_MENU },
211 { ACTION_USB_HID_MENU_LONG, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU },
212 { ACTION_USB_HID_MODE, BUTTON_SELECT|BUTTON_RIGHT|BUTTON_REL, BUTTON_SELECT|BUTTON_RIGHT },
213 { ACTION_USB_HID_MODE, BUTTON_SELECT|BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_SELECT|BUTTON_RIGHT },
214 { ACTION_USB_HID_MODE_LONG, BUTTON_SELECT|BUTTON_LEFT|BUTTON_REL, BUTTON_SELECT|BUTTON_LEFT },
215 { ACTION_USB_HID_MODE_LONG, BUTTON_SELECT|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_SELECT|BUTTON_LEFT },
216 202
217 LAST_ITEM_IN_LIST 203 LAST_ITEM_IN_LIST
218}; /* button_context_usb_hid */ 204}; /* button_context_usb_hid */
219 205
206static const struct button_mapping button_context_usb_hid_mode_multimedia[] = {
207 { ACTION_USB_HID_MULTIMEDIA_VOLUME_DOWN, BUTTON_SCROLL_BACK, BUTTON_NONE },
208 { ACTION_USB_HID_MULTIMEDIA_VOLUME_DOWN, BUTTON_SCROLL_BACK|BUTTON_REPEAT, BUTTON_NONE },
209 { ACTION_USB_HID_MULTIMEDIA_VOLUME_UP, BUTTON_SCROLL_FWD, BUTTON_NONE },
210 { ACTION_USB_HID_MULTIMEDIA_VOLUME_UP, BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE },
211 { ACTION_USB_HID_MULTIMEDIA_VOLUME_MUTE, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT },
212 { ACTION_USB_HID_MULTIMEDIA_PLAYBACK_PLAY_PAUSE, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY },
213 { ACTION_USB_HID_MULTIMEDIA_PLAYBACK_STOP, BUTTON_MENU|BUTTON_REL, BUTTON_MENU },
214 { ACTION_USB_HID_MULTIMEDIA_PLAYBACK_STOP, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY },
215 { ACTION_USB_HID_MULTIMEDIA_PLAYBACK_TRACK_PREV, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT },
216 { ACTION_USB_HID_MULTIMEDIA_PLAYBACK_TRACK_NEXT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT },
217
218 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_USB_HID)
219}; /* button_context_usb_hid_mode_multimedia */
220
221static const struct button_mapping button_context_usb_hid_mode_presentation[] = {
222 { ACTION_USB_HID_PRESENTATION_SLIDESHOW_START, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY },
223 { ACTION_USB_HID_PRESENTATION_SLIDESHOW_LEAVE, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY },
224 { ACTION_USB_HID_PRESENTATION_SLIDE_PREV, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT },
225 { ACTION_USB_HID_PRESENTATION_SLIDE_NEXT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT },
226 { ACTION_USB_HID_PRESENTATION_SLIDE_FIRST, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_LEFT },
227 { ACTION_USB_HID_PRESENTATION_SLIDE_LAST, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_RIGHT },
228 { ACTION_USB_HID_PRESENTATION_SCREEN_BLACK, BUTTON_MENU|BUTTON_REL, BUTTON_MENU },
229 { ACTION_USB_HID_PRESENTATION_SCREEN_WHITE, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU },
230 { ACTION_USB_HID_PRESENTATION_LINK_PREV, BUTTON_SCROLL_BACK, BUTTON_NONE },
231 { ACTION_USB_HID_PRESENTATION_LINK_PREV, BUTTON_SCROLL_BACK|BUTTON_REPEAT, BUTTON_NONE },
232 { ACTION_USB_HID_PRESENTATION_LINK_NEXT, BUTTON_SCROLL_FWD, BUTTON_NONE },
233 { ACTION_USB_HID_PRESENTATION_LINK_NEXT, BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE },
234 { ACTION_USB_HID_PRESENTATION_MOUSE_CLICK, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT },
235 { ACTION_USB_HID_PRESENTATION_MOUSE_OVER, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT },
236
237 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_USB_HID)
238}; /* button_context_usb_hid_mode_presentation */
239
240static const struct button_mapping button_context_usb_hid_mode_browser[] = {
241 { ACTION_USB_HID_BROWSER_SCROLL_UP, BUTTON_SCROLL_BACK, BUTTON_NONE },
242 { ACTION_USB_HID_BROWSER_SCROLL_UP, BUTTON_SCROLL_BACK|BUTTON_REPEAT, BUTTON_NONE },
243 { ACTION_USB_HID_BROWSER_SCROLL_DOWN, BUTTON_SCROLL_FWD, BUTTON_NONE },
244 { ACTION_USB_HID_BROWSER_SCROLL_DOWN, BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE },
245 { ACTION_USB_HID_BROWSER_SCROLL_PAGE_UP, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY },
246 { ACTION_USB_HID_BROWSER_SCROLL_PAGE_DOWN, BUTTON_MENU|BUTTON_REL, BUTTON_MENU },
247 { ACTION_USB_HID_BROWSER_ZOOM_IN, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY },
248 { ACTION_USB_HID_BROWSER_ZOOM_OUT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU },
249 { ACTION_USB_HID_BROWSER_ZOOM_RESET, BUTTON_PLAY|BUTTON_MENU|BUTTON_REPEAT, BUTTON_PLAY|BUTTON_MENU },
250 { ACTION_USB_HID_BROWSER_TAB_PREV, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT },
251 { ACTION_USB_HID_BROWSER_TAB_NEXT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT },
252 { ACTION_USB_HID_BROWSER_TAB_CLOSE, BUTTON_SELECT|BUTTON_MENU|BUTTON_REPEAT, BUTTON_SELECT|BUTTON_MENU },
253 { ACTION_USB_HID_BROWSER_HISTORY_BACK, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_LEFT },
254 { ACTION_USB_HID_BROWSER_HISTORY_FORWARD, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_RIGHT },
255 { ACTION_USB_HID_BROWSER_VIEW_FULL_SCREEN, BUTTON_SELECT|BUTTON_PLAY|BUTTON_REPEAT, BUTTON_SELECT|BUTTON_PLAY },
256
257 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_USB_HID)
258}; /* button_context_usb_hid_mode_browser */
259
220#ifdef HAVE_USB_HID_MOUSE 260#ifdef HAVE_USB_HID_MOUSE
221static const struct button_mapping button_context_usb_hid_mouse[] = { 261static const struct button_mapping button_context_usb_hid_mode_mouse[] = {
222 { ACTION_USB_HID_MOUSE_UP, BUTTON_MENU, BUTTON_NONE }, 262 { ACTION_USB_HID_MOUSE_UP, BUTTON_MENU, BUTTON_NONE },
223 { ACTION_USB_HID_MOUSE_UP_REP, BUTTON_MENU|BUTTON_REPEAT, BUTTON_NONE }, 263 { ACTION_USB_HID_MOUSE_UP_REP, BUTTON_MENU|BUTTON_REPEAT, BUTTON_NONE },
224 { ACTION_USB_HID_MOUSE_DOWN, BUTTON_PLAY, BUTTON_NONE }, 264 { ACTION_USB_HID_MOUSE_DOWN, BUTTON_PLAY, BUTTON_NONE },
@@ -235,7 +275,7 @@ static const struct button_mapping button_context_usb_hid_mouse[] = {
235 { ACTION_USB_HID_MOUSE_WHEEL_SCROLL_DOWN, BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE }, 275 { ACTION_USB_HID_MOUSE_WHEEL_SCROLL_DOWN, BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE },
236 276
237 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_USB_HID) 277 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_USB_HID)
238}; /* button_context_usb_hid_mouse */ 278}; /* button_context_usb_hid_mode_mouse */
239#endif 279#endif
240#endif 280#endif
241 281
@@ -271,54 +311,6 @@ static const struct button_mapping remote_button_context_wps[] = {
271 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) 311 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
272}; /* remote_button_context_wps */ 312}; /* remote_button_context_wps */
273 313
274#ifdef USB_ENABLE_HID
275static const struct button_mapping remote_button_context_usb_hid[] = {
276 { ACTION_USB_HID_INC, BUTTON_RC_VOL_UP, BUTTON_NONE },
277 { ACTION_USB_HID_INC, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
278 { ACTION_USB_HID_DEC, BUTTON_RC_VOL_DOWN, BUTTON_NONE },
279 { ACTION_USB_HID_DEC, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
280 { ACTION_USB_HID_START, BUTTON_RC_PLAY|BUTTON_REL, BUTTON_RC_PLAY },
281 { ACTION_USB_HID_QUIT, BUTTON_RC_PLAY|BUTTON_REPEAT, BUTTON_RC_PLAY },
282 { ACTION_USB_HID_LEFT, BUTTON_RC_LEFT|BUTTON_REL, BUTTON_RC_LEFT },
283 { ACTION_USB_HID_LEFT_LONG, BUTTON_RC_LEFT|BUTTON_REPEAT, BUTTON_RC_LEFT },
284 { ACTION_USB_HID_RIGHT, BUTTON_RC_RIGHT|BUTTON_REL, BUTTON_RC_RIGHT },
285 { ACTION_USB_HID_RIGHT_LONG, BUTTON_RC_RIGHT|BUTTON_REPEAT, BUTTON_RC_RIGHT },
286
287 LAST_ITEM_IN_LIST
288}; /* remote_button_context_usb_hid */
289
290#if 0 /* Pending P#10623: Improved accessory support and detection for Ipod */
291#ifdef HAVE_USB_HID_MOUSE
292static const struct button_mapping remote_button_context_usb_hid_mouse[] = {
293 { ACTION_USB_HID_MOUSE_UP, BUTTON_RC_MENU, BUTTON_NONE },
294 { ACTION_USB_HID_MOUSE_UP_REP, BUTTON_RC_MENU|BUTTON_REPEAT, BUTTON_NONE },
295 { ACTION_USB_HID_MOUSE_DOWN, BUTTON_RC_PLAY, BUTTON_NONE },
296 { ACTION_USB_HID_MOUSE_DOWN_REP, BUTTON_RC_PLAY|BUTTON_REPEAT, BUTTON_NONE },
297 { ACTION_USB_HID_MOUSE_LEFT, BUTTON_RC_LEFT, BUTTON_NONE },
298 { ACTION_USB_HID_MOUSE_LEFT_REP, BUTTON_RC_LEFT|BUTTON_REPEAT, BUTTON_NONE },
299 { ACTION_USB_HID_MOUSE_RIGHT, BUTTON_RC_RIGHT, BUTTON_NONE },
300 { ACTION_USB_HID_MOUSE_RIGHT_REP, BUTTON_RC_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
301 { ACTION_USB_HID_MOUSE_BUTTON_LEFT, BUTTON_RC_SELECT, BUTTON_NONE },
302 { ACTION_USB_HID_MOUSE_BUTTON_LEFT_REL, BUTTON_RC_SELECT|BUTTON_REL, BUTTON_NONE },
303 { ACTION_USB_HID_MOUSE_LDRAG_UP, BUTTON_RC_SELECT|BUTTON_RC_MENU, BUTTON_NONE },
304 { ACTION_USB_HID_MOUSE_LDRAG_UP_REP, BUTTON_RC_SELECT|BUTTON_RC_MENU|BUTTON_REPEAT, BUTTON_NONE },
305 { ACTION_USB_HID_MOUSE_LDRAG_DOWN, BUTTON_RC_SELECT|BUTTON_RC_PLAY, BUTTON_NONE },
306 { ACTION_USB_HID_MOUSE_LDRAG_DOWN_REP, BUTTON_RC_SELECT|BUTTON_RC_PLAY|BUTTON_REPEAT, BUTTON_NONE },
307 { ACTION_USB_HID_MOUSE_LDRAG_LEFT, BUTTON_RC_SELECT|BUTTON_RC_LEFT, BUTTON_NONE },
308 { ACTION_USB_HID_MOUSE_LDRAG_LEFT_REP, BUTTON_RC_SELECT|BUTTON_RC_LEFT|BUTTON_REPEAT, BUTTON_NONE },
309 { ACTION_USB_HID_MOUSE_LDRAG_RIGHT, BUTTON_RC_SELECT|BUTTON_RC_RIGHT, BUTTON_NONE },
310 { ACTION_USB_HID_MOUSE_LDRAG_RIGHT_REP, BUTTON_RC_SELECT|BUTTON_RC_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
311 { ACTION_USB_HID_MOUSE_WHEEL_SCROLL_UP, BUTTON_RC_VOL_UP, BUTTON_NONE },
312 { ACTION_USB_HID_MOUSE_WHEEL_SCROLL_UP, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
313 { ACTION_USB_HID_MOUSE_WHEEL_SCROLL_DOWN, BUTTON_RC_VOL_DOWN, BUTTON_NONE },
314 { ACTION_USB_HID_MOUSE_WHEEL_SCROLL_DOWN, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
315
316 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_USB_HID)
317}; /* remote_button_context_usb_hid_mouse */
318#endif
319#endif /* if 0 */
320#endif
321
322static const struct button_mapping* get_context_mapping_remote( int context ) 314static const struct button_mapping* get_context_mapping_remote( int context )
323{ 315{
324 context ^= CONTEXT_REMOTE; 316 context ^= CONTEXT_REMOTE;
@@ -327,16 +319,6 @@ static const struct button_mapping* get_context_mapping_remote( int context )
327 { 319 {
328 case CONTEXT_WPS: 320 case CONTEXT_WPS:
329 return remote_button_context_wps; 321 return remote_button_context_wps;
330#ifdef USB_ENABLE_HID
331 case CONTEXT_USB_HID:
332 return remote_button_context_usb_hid;
333#if 0 /* Pending P#10623: Improved accessory support and detection for Ipod */
334#ifdef HAVE_USB_HID_MOUSE
335 case CONTEXT_USB_HID_MOUSE:
336 return remote_button_context_usb_hid_mouse;
337#endif
338#endif /* If 0 */
339#endif
340 default: 322 default:
341 return remote_button_context_standard; 323 return remote_button_context_standard;
342 } 324 }
@@ -392,9 +374,15 @@ const struct button_mapping* get_context_mapping(int context)
392#ifdef USB_ENABLE_HID 374#ifdef USB_ENABLE_HID
393 case CONTEXT_USB_HID: 375 case CONTEXT_USB_HID:
394 return button_context_usb_hid; 376 return button_context_usb_hid;
377 case CONTEXT_USB_HID_MODE_MULTIMEDIA:
378 return button_context_usb_hid_mode_multimedia;
379 case CONTEXT_USB_HID_MODE_PRESENTATION:
380 return button_context_usb_hid_mode_presentation;
381 case CONTEXT_USB_HID_MODE_BROWSER:
382 return button_context_usb_hid_mode_browser;
395#ifdef HAVE_USB_HID_MOUSE 383#ifdef HAVE_USB_HID_MOUSE
396 case CONTEXT_USB_HID_MOUSE: 384 case CONTEXT_USB_HID_MODE_MOUSE:
397 return button_context_usb_hid_mouse; 385 return button_context_usb_hid_mode_mouse;
398#endif 386#endif
399#endif 387#endif
400 default: 388 default: