diff options
author | Tomer Shalev <shalev.tomer@gmail.com> | 2009-09-30 10:06:04 +0000 |
---|---|---|
committer | Tomer Shalev <shalev.tomer@gmail.com> | 2009-09-30 10:06:04 +0000 |
commit | 8c5141b32ea74a3093073d9bb11205acb7640233 (patch) | |
tree | 486f8e4f94053a389d840b04724567a524b9b4ea /apps | |
parent | d7f4f9ff750872a9eb570409966e500099d84d7d (diff) | |
download | rockbox-8c5141b32ea74a3093073d9bb11205acb7640233.tar.gz rockbox-8c5141b32ea74a3093073d9bb11205acb7640233.zip |
Commit "FS#10468 - USB HID: Show keypad mode on screen"
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22852 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r-- | apps/SOURCES | 3 | ||||
-rw-r--r-- | apps/action.h | 53 | ||||
-rw-r--r-- | apps/keymaps/keymap-c100.c | 61 | ||||
-rw-r--r-- | apps/keymaps/keymap-c200.c | 67 | ||||
-rw-r--r-- | apps/keymaps/keymap-clip.c | 67 | ||||
-rw-r--r-- | apps/keymaps/keymap-e200.c | 67 | ||||
-rw-r--r-- | apps/keymaps/keymap-gigabeat-s.c | 107 | ||||
-rw-r--r-- | apps/keymaps/keymap-h10.c | 47 | ||||
-rw-r--r-- | apps/keymaps/keymap-hdd1630.c | 71 | ||||
-rw-r--r-- | apps/keymaps/keymap-ipod.c | 75 | ||||
-rw-r--r-- | apps/keymaps/keymap-mr100.c | 6 | ||||
-rw-r--r-- | apps/keymaps/keymap-ondavx747.c | 16 | ||||
-rw-r--r-- | apps/keymaps/keymap-ondavx777.c | 4 | ||||
-rw-r--r-- | apps/keymaps/keymap-sa9200.c | 80 | ||||
-rw-r--r-- | apps/keymaps/keymap-touchscreen.c | 27 | ||||
-rw-r--r-- | apps/lang/english.lang | 70 | ||||
-rw-r--r-- | apps/menus/settings_menu.c | 6 | ||||
-rw-r--r-- | apps/plugin.c | 4 | ||||
-rw-r--r-- | apps/plugin.h | 4 | ||||
-rw-r--r-- | apps/plugins/SOURCES | 2 | ||||
-rw-r--r-- | apps/screens.c | 177 | ||||
-rw-r--r-- | apps/settings.h | 6 | ||||
-rw-r--r-- | apps/settings_list.c | 7 | ||||
-rw-r--r-- | apps/usb_keymaps.c | 249 | ||||
-rw-r--r-- | apps/usb_keymaps.h | 28 |
25 files changed, 1045 insertions, 259 deletions
diff --git a/apps/SOURCES b/apps/SOURCES index 0408c32583..bac376589a 100644 --- a/apps/SOURCES +++ b/apps/SOURCES | |||
@@ -150,6 +150,9 @@ dsp_arm.S | |||
150 | eq_arm.S | 150 | eq_arm.S |
151 | #endif | 151 | #endif |
152 | #endif | 152 | #endif |
153 | #ifdef USB_ENABLE_HID | ||
154 | usb_keymaps.c | ||
155 | #endif | ||
153 | metadata.c | 156 | metadata.c |
154 | metadata/mp3.c | 157 | metadata/mp3.c |
155 | #if CONFIG_CODEC == SWCODEC | 158 | #if CONFIG_CODEC == SWCODEC |
diff --git a/apps/action.h b/apps/action.h index 5df8639cdf..39e3e09d73 100644 --- a/apps/action.h +++ b/apps/action.h | |||
@@ -76,6 +76,7 @@ enum { | |||
76 | CONTEXT_KEYBOARD, | 76 | CONTEXT_KEYBOARD, |
77 | CONTEXT_FM, | 77 | CONTEXT_FM, |
78 | CONTEXT_USB_HID, | 78 | CONTEXT_USB_HID, |
79 | CONTEXT_USB_HID_MOUSE, | ||
79 | }; | 80 | }; |
80 | 81 | ||
81 | 82 | ||
@@ -241,14 +242,52 @@ enum { | |||
241 | #endif | 242 | #endif |
242 | 243 | ||
243 | /* USB HID codes */ | 244 | /* USB HID codes */ |
244 | ACTION_USB_HID_PLAY, | 245 | ACTION_USB_HID_FIRST, /* Place holder */ |
245 | ACTION_USB_HID_STOP, | 246 | ACTION_USB_HID_DEC, |
246 | ACTION_USB_HID_SKIPPREV, | 247 | ACTION_USB_HID_INC, |
247 | ACTION_USB_HID_SKIPNEXT, | 248 | ACTION_USB_HID_START, |
248 | ACTION_USB_HID_VOLDOWN, | 249 | ACTION_USB_HID_START_LONG, |
249 | ACTION_USB_HID_VOLUP, | 250 | ACTION_USB_HID_QUIT, |
250 | ACTION_USB_HID_MUTE, | 251 | ACTION_USB_HID_QUIT_LONG, |
252 | ACTION_USB_HID_LEFT, | ||
253 | ACTION_USB_HID_LEFT_LONG, | ||
254 | ACTION_USB_HID_RIGHT, | ||
255 | ACTION_USB_HID_RIGHT_LONG, | ||
256 | ACTION_USB_HID_SELECT, | ||
257 | ACTION_USB_HID_SELECT_LONG, | ||
251 | ACTION_USB_HID_MENU, | 258 | ACTION_USB_HID_MENU, |
259 | ACTION_USB_HID_MENU_LONG, | ||
260 | ACTION_USB_HID_MODE, | ||
261 | ACTION_USB_HID_MODE_LONG, | ||
262 | ACTION_USB_HID_MOUSE_UP, | ||
263 | ACTION_USB_HID_MOUSE_UP_REP, | ||
264 | ACTION_USB_HID_MOUSE_DOWN, | ||
265 | ACTION_USB_HID_MOUSE_DOWN_REP, | ||
266 | ACTION_USB_HID_MOUSE_LEFT, | ||
267 | ACTION_USB_HID_MOUSE_LEFT_REP, | ||
268 | ACTION_USB_HID_MOUSE_RIGHT, | ||
269 | ACTION_USB_HID_MOUSE_RIGHT_REP, | ||
270 | ACTION_USB_HID_MOUSE_LDRAG_UP, | ||
271 | ACTION_USB_HID_MOUSE_LDRAG_UP_REP, | ||
272 | ACTION_USB_HID_MOUSE_LDRAG_DOWN, | ||
273 | ACTION_USB_HID_MOUSE_LDRAG_DOWN_REP, | ||
274 | ACTION_USB_HID_MOUSE_LDRAG_LEFT, | ||
275 | ACTION_USB_HID_MOUSE_LDRAG_LEFT_REP, | ||
276 | ACTION_USB_HID_MOUSE_LDRAG_RIGHT, | ||
277 | ACTION_USB_HID_MOUSE_LDRAG_RIGHT_REP, | ||
278 | ACTION_USB_HID_MOUSE_RDRAG_UP, | ||
279 | ACTION_USB_HID_MOUSE_RDRAG_UP_REP, | ||
280 | ACTION_USB_HID_MOUSE_RDRAG_DOWN, | ||
281 | ACTION_USB_HID_MOUSE_RDRAG_DOWN_REP, | ||
282 | ACTION_USB_HID_MOUSE_RDRAG_LEFT, | ||
283 | ACTION_USB_HID_MOUSE_RDRAG_LEFT_REP, | ||
284 | ACTION_USB_HID_MOUSE_RDRAG_RIGHT, | ||
285 | ACTION_USB_HID_MOUSE_RDRAG_RIGHT_REP, | ||
286 | ACTION_USB_HID_MOUSE_BUTTON_LEFT, | ||
287 | ACTION_USB_HID_MOUSE_BUTTON_LEFT_REL, | ||
288 | ACTION_USB_HID_MOUSE_BUTTON_RIGHT, | ||
289 | ACTION_USB_HID_MOUSE_BUTTON_RIGHT_REL, | ||
290 | ACTION_USB_HID_LAST, /* Place holder */ | ||
252 | 291 | ||
253 | LAST_ACTION_PLACEHOLDER, /* custom actions should be this + something */ | 292 | LAST_ACTION_PLACEHOLDER, /* custom actions should be this + something */ |
254 | }; | 293 | }; |
diff --git a/apps/keymaps/keymap-c100.c b/apps/keymaps/keymap-c100.c index a19549dbd9..fcb747b5fd 100644 --- a/apps/keymaps/keymap-c100.c +++ b/apps/keymaps/keymap-c100.c | |||
@@ -232,17 +232,60 @@ static const struct button_mapping button_context_bmark[] = { | |||
232 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST), | 232 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST), |
233 | }; /* button_context_bmark */ | 233 | }; /* button_context_bmark */ |
234 | 234 | ||
235 | #ifdef HAVE_USBSTACK | 235 | #ifdef USB_ENABLE_HID |
236 | static const struct button_mapping button_context_usb_hid[] = { | 236 | static const struct button_mapping button_context_usb_hid[] = { |
237 | { ACTION_USB_HID_PLAY, BUTTON_UP, BUTTON_NONE }, | 237 | { ACTION_USB_HID_INC, BUTTON_VOLUP, BUTTON_NONE }, |
238 | { ACTION_USB_HID_STOP, BUTTON_POWER, BUTTON_NONE }, | 238 | { ACTION_USB_HID_INC, BUTTON_VOLUP|BUTTON_REPEAT, BUTTON_NONE }, |
239 | { ACTION_USB_HID_SKIPPREV, BUTTON_LEFT, BUTTON_NONE }, | 239 | { ACTION_USB_HID_DEC, BUTTON_VOLDOWN, BUTTON_NONE }, |
240 | { ACTION_USB_HID_SKIPNEXT, BUTTON_RIGHT, BUTTON_NONE }, | 240 | { ACTION_USB_HID_DEC, BUTTON_VOLDOWN|BUTTON_REPEAT, BUTTON_NONE }, |
241 | { ACTION_USB_HID_MUTE, BUTTON_VOLDOWN, BUTTON_NONE }, | 241 | { ACTION_USB_HID_START, BUTTON_UP|BUTTON_REL, BUTTON_UP }, |
242 | { ACTION_USB_HID_MENU, BUTTON_DOWN, BUTTON_NONE }, | 242 | { ACTION_USB_HID_START_LONG, BUTTON_UP|BUTTON_REPEAT, BUTTON_UP }, |
243 | { ACTION_USB_HID_QUIT, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, | ||
244 | { ACTION_USB_HID_QUIT_LONG, BUTTON_POWER|BUTTON_REPEAT, BUTTON_POWER }, | ||
245 | { ACTION_USB_HID_LEFT, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT }, | ||
246 | { ACTION_USB_HID_LEFT_LONG, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_LEFT }, | ||
247 | { ACTION_USB_HID_RIGHT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT }, | ||
248 | { ACTION_USB_HID_RIGHT_LONG, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_RIGHT }, | ||
249 | { ACTION_USB_HID_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT }, | ||
250 | { ACTION_USB_HID_SELECT_LONG, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT }, | ||
251 | { ACTION_USB_HID_MENU, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_DOWN }, | ||
252 | { ACTION_USB_HID_MODE, BUTTON_DOWN|BUTTON_REL, BUTTON_DOWN }, | ||
243 | 253 | ||
244 | LAST_ITEM_IN_LIST | 254 | LAST_ITEM_IN_LIST |
245 | }; /* button_context_usb_hid */ | 255 | }; /* button_context_usb_hid */ |
256 | |||
257 | static const struct button_mapping button_context_usb_hid_mouse[] = { | ||
258 | { ACTION_USB_HID_MOUSE_UP, BUTTON_UP, BUTTON_NONE }, | ||
259 | { ACTION_USB_HID_MOUSE_UP_REP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
260 | { ACTION_USB_HID_MOUSE_DOWN, BUTTON_DOWN, BUTTON_NONE }, | ||
261 | { ACTION_USB_HID_MOUSE_DOWN_REP, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
262 | { ACTION_USB_HID_MOUSE_LEFT, BUTTON_LEFT, BUTTON_NONE }, | ||
263 | { ACTION_USB_HID_MOUSE_LEFT_REP, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
264 | { ACTION_USB_HID_MOUSE_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, | ||
265 | { ACTION_USB_HID_MOUSE_RIGHT_REP, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
266 | { ACTION_USB_HID_MOUSE_LDRAG_UP, BUTTON_SELECT|BUTTON_UP, BUTTON_NONE }, | ||
267 | { ACTION_USB_HID_MOUSE_LDRAG_UP_REP, BUTTON_SELECT|BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
268 | { ACTION_USB_HID_MOUSE_LDRAG_DOWN, BUTTON_SELECT|BUTTON_DOWN, BUTTON_NONE }, | ||
269 | { ACTION_USB_HID_MOUSE_LDRAG_DOWN_REP, BUTTON_SELECT|BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
270 | { ACTION_USB_HID_MOUSE_LDRAG_LEFT, BUTTON_SELECT|BUTTON_LEFT, BUTTON_NONE }, | ||
271 | { ACTION_USB_HID_MOUSE_LDRAG_LEFT_REP, BUTTON_SELECT|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
272 | { ACTION_USB_HID_MOUSE_LDRAG_RIGHT, BUTTON_SELECT|BUTTON_RIGHT, BUTTON_NONE }, | ||
273 | { ACTION_USB_HID_MOUSE_LDRAG_RIGHT_REP, BUTTON_SELECT|BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
274 | { ACTION_USB_HID_MOUSE_RDRAG_UP, BUTTON_POWER|BUTTON_UP, BUTTON_NONE }, | ||
275 | { ACTION_USB_HID_MOUSE_RDRAG_UP_REP, BUTTON_POWER|BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
276 | { ACTION_USB_HID_MOUSE_RDRAG_DOWN, BUTTON_POWER|BUTTON_DOWN, BUTTON_NONE }, | ||
277 | { ACTION_USB_HID_MOUSE_RDRAG_DOWN_REP, BUTTON_POWER|BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
278 | { ACTION_USB_HID_MOUSE_RDRAG_LEFT, BUTTON_POWER|BUTTON_LEFT, BUTTON_NONE }, | ||
279 | { ACTION_USB_HID_MOUSE_RDRAG_LEFT_REP, BUTTON_POWER|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
280 | { ACTION_USB_HID_MOUSE_RDRAG_RIGHT, BUTTON_POWER|BUTTON_RIGHT, BUTTON_NONE }, | ||
281 | { ACTION_USB_HID_MOUSE_RDRAG_RIGHT_REP, BUTTON_POWER|BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
282 | { ACTION_USB_HID_MOUSE_BUTTON_LEFT, BUTTON_SELECT, BUTTON_NONE }, | ||
283 | { ACTION_USB_HID_MOUSE_BUTTON_LEFT_REL, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE }, | ||
284 | { ACTION_USB_HID_MOUSE_BUTTON_RIGHT, BUTTON_POWER, BUTTON_NONE }, | ||
285 | { ACTION_USB_HID_MOUSE_BUTTON_RIGHT_REL, BUTTON_POWER|BUTTON_REL, BUTTON_NONE }, | ||
286 | |||
287 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_USB_HID) | ||
288 | }; /* button_context_usb_hid_mouse */ | ||
246 | #endif | 289 | #endif |
247 | 290 | ||
248 | /* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */ | 291 | /* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */ |
@@ -293,9 +336,11 @@ const struct button_mapping* get_context_mapping(int context) | |||
293 | #endif | 336 | #endif |
294 | case CONTEXT_KEYBOARD: | 337 | case CONTEXT_KEYBOARD: |
295 | return button_context_keyboard; | 338 | return button_context_keyboard; |
296 | #ifdef HAVE_USBSTACK | 339 | #ifdef USB_ENABLE_HID |
297 | case CONTEXT_USB_HID: | 340 | case CONTEXT_USB_HID: |
298 | return button_context_usb_hid; | 341 | return button_context_usb_hid; |
342 | case CONTEXT_USB_HID_MOUSE: | ||
343 | return button_context_usb_hid_mouse; | ||
299 | #endif | 344 | #endif |
300 | default: | 345 | default: |
301 | return button_context_standard; | 346 | return button_context_standard; |
diff --git a/apps/keymaps/keymap-c200.c b/apps/keymaps/keymap-c200.c index acc4a6aaf0..fa6c64cec8 100644 --- a/apps/keymaps/keymap-c200.c +++ b/apps/keymaps/keymap-c200.c | |||
@@ -264,21 +264,62 @@ static const struct button_mapping button_context_bmark[] = { | |||
264 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST), | 264 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST), |
265 | }; /* button_context_bmark */ | 265 | }; /* button_context_bmark */ |
266 | 266 | ||
267 | #ifdef HAVE_USBSTACK | 267 | #ifdef USB_ENABLE_HID |
268 | static const struct button_mapping button_context_usb_hid[] = { | 268 | static const struct button_mapping button_context_usb_hid[] = { |
269 | { ACTION_USB_HID_PLAY, BUTTON_UP|BUTTON_REL, BUTTON_UP }, | 269 | { ACTION_USB_HID_INC, BUTTON_VOL_UP, BUTTON_NONE }, |
270 | { ACTION_USB_HID_STOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_UP }, | 270 | { ACTION_USB_HID_INC, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, |
271 | { ACTION_USB_HID_SKIPPREV, BUTTON_LEFT, BUTTON_NONE }, | 271 | { ACTION_USB_HID_DEC, BUTTON_VOL_DOWN, BUTTON_NONE }, |
272 | { ACTION_USB_HID_SKIPNEXT, BUTTON_RIGHT, BUTTON_NONE }, | 272 | { ACTION_USB_HID_DEC, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, |
273 | { ACTION_USB_HID_VOLUP, BUTTON_VOL_UP, BUTTON_NONE }, | 273 | { ACTION_USB_HID_START, BUTTON_UP|BUTTON_REL, BUTTON_UP }, |
274 | { ACTION_USB_HID_VOLUP, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, | 274 | { ACTION_USB_HID_START_LONG, BUTTON_UP|BUTTON_REPEAT, BUTTON_UP }, |
275 | { ACTION_USB_HID_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE }, | 275 | { ACTION_USB_HID_QUIT, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, |
276 | { ACTION_USB_HID_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | 276 | { ACTION_USB_HID_QUIT_LONG, BUTTON_POWER|BUTTON_REPEAT, BUTTON_POWER }, |
277 | { ACTION_USB_HID_MUTE, BUTTON_DOWN, BUTTON_NONE }, | 277 | { ACTION_USB_HID_LEFT, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT }, |
278 | { ACTION_USB_HID_MENU, BUTTON_POWER, BUTTON_NONE }, | 278 | { ACTION_USB_HID_LEFT_LONG, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_LEFT }, |
279 | { ACTION_USB_HID_RIGHT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT }, | ||
280 | { ACTION_USB_HID_RIGHT_LONG, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_RIGHT }, | ||
281 | { ACTION_USB_HID_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT }, | ||
282 | { ACTION_USB_HID_SELECT_LONG, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT }, | ||
283 | { ACTION_USB_HID_MENU, BUTTON_DOWN|BUTTON_REL, BUTTON_DOWN }, | ||
284 | { ACTION_USB_HID_MENU_LONG, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_DOWN }, | ||
285 | { ACTION_USB_HID_MODE, BUTTON_REC|BUTTON_REL, BUTTON_REC }, | ||
286 | { ACTION_USB_HID_MODE_LONG, BUTTON_REC|BUTTON_REPEAT, BUTTON_REC }, | ||
279 | 287 | ||
280 | LAST_ITEM_IN_LIST | 288 | LAST_ITEM_IN_LIST |
281 | }; /* button_context_usb_hid */ | 289 | }; /* button_context_usb_hid */ |
290 | |||
291 | static const struct button_mapping button_context_usb_hid_mouse[] = { | ||
292 | { ACTION_USB_HID_MOUSE_UP, BUTTON_UP, BUTTON_NONE }, | ||
293 | { ACTION_USB_HID_MOUSE_UP_REP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
294 | { ACTION_USB_HID_MOUSE_DOWN, BUTTON_DOWN, BUTTON_NONE }, | ||
295 | { ACTION_USB_HID_MOUSE_DOWN_REP, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
296 | { ACTION_USB_HID_MOUSE_LEFT, BUTTON_LEFT, BUTTON_NONE }, | ||
297 | { ACTION_USB_HID_MOUSE_LEFT_REP, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
298 | { ACTION_USB_HID_MOUSE_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, | ||
299 | { ACTION_USB_HID_MOUSE_RIGHT_REP, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
300 | { ACTION_USB_HID_MOUSE_LDRAG_UP, BUTTON_SELECT|BUTTON_UP, BUTTON_NONE }, | ||
301 | { ACTION_USB_HID_MOUSE_LDRAG_UP_REP, BUTTON_SELECT|BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
302 | { ACTION_USB_HID_MOUSE_LDRAG_DOWN, BUTTON_SELECT|BUTTON_DOWN, BUTTON_NONE }, | ||
303 | { ACTION_USB_HID_MOUSE_LDRAG_DOWN_REP, BUTTON_SELECT|BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
304 | { ACTION_USB_HID_MOUSE_LDRAG_LEFT, BUTTON_SELECT|BUTTON_LEFT, BUTTON_NONE }, | ||
305 | { ACTION_USB_HID_MOUSE_LDRAG_LEFT_REP, BUTTON_SELECT|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
306 | { ACTION_USB_HID_MOUSE_LDRAG_RIGHT, BUTTON_SELECT|BUTTON_RIGHT, BUTTON_NONE }, | ||
307 | { ACTION_USB_HID_MOUSE_LDRAG_RIGHT_REP, BUTTON_SELECT|BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
308 | { ACTION_USB_HID_MOUSE_RDRAG_UP, BUTTON_POWER|BUTTON_UP, BUTTON_NONE }, | ||
309 | { ACTION_USB_HID_MOUSE_RDRAG_UP_REP, BUTTON_POWER|BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
310 | { ACTION_USB_HID_MOUSE_RDRAG_DOWN, BUTTON_POWER|BUTTON_DOWN, BUTTON_NONE }, | ||
311 | { ACTION_USB_HID_MOUSE_RDRAG_DOWN_REP, BUTTON_POWER|BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
312 | { ACTION_USB_HID_MOUSE_RDRAG_LEFT, BUTTON_POWER|BUTTON_LEFT, BUTTON_NONE }, | ||
313 | { ACTION_USB_HID_MOUSE_RDRAG_LEFT_REP, BUTTON_POWER|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
314 | { ACTION_USB_HID_MOUSE_RDRAG_RIGHT, BUTTON_POWER|BUTTON_RIGHT, BUTTON_NONE }, | ||
315 | { ACTION_USB_HID_MOUSE_RDRAG_RIGHT_REP, BUTTON_POWER|BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
316 | { ACTION_USB_HID_MOUSE_BUTTON_LEFT, BUTTON_SELECT, BUTTON_NONE }, | ||
317 | { ACTION_USB_HID_MOUSE_BUTTON_LEFT_REL, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE }, | ||
318 | { ACTION_USB_HID_MOUSE_BUTTON_RIGHT, BUTTON_POWER, BUTTON_NONE }, | ||
319 | { ACTION_USB_HID_MOUSE_BUTTON_RIGHT_REL, BUTTON_POWER|BUTTON_REL, BUTTON_NONE }, | ||
320 | |||
321 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_USB_HID) | ||
322 | }; /* button_context_usb_hid_mouse */ | ||
282 | #endif | 323 | #endif |
283 | 324 | ||
284 | /* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */ | 325 | /* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */ |
@@ -327,9 +368,11 @@ const struct button_mapping* get_context_mapping(int context) | |||
327 | #endif | 368 | #endif |
328 | case CONTEXT_KEYBOARD: | 369 | case CONTEXT_KEYBOARD: |
329 | return button_context_keyboard; | 370 | return button_context_keyboard; |
330 | #ifdef HAVE_USBSTACK | 371 | #ifdef USB_ENABLE_HID |
331 | case CONTEXT_USB_HID: | 372 | case CONTEXT_USB_HID: |
332 | return button_context_usb_hid; | 373 | return button_context_usb_hid; |
374 | case CONTEXT_USB_HID_MOUSE: | ||
375 | return button_context_usb_hid_mouse; | ||
333 | #endif | 376 | #endif |
334 | default: | 377 | default: |
335 | return button_context_standard; | 378 | return button_context_standard; |
diff --git a/apps/keymaps/keymap-clip.c b/apps/keymaps/keymap-clip.c index 5b45f4fb3d..21728db7fb 100644 --- a/apps/keymaps/keymap-clip.c +++ b/apps/keymaps/keymap-clip.c | |||
@@ -273,21 +273,62 @@ static const struct button_mapping button_context_bmark[] = { | |||
273 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST), | 273 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST), |
274 | }; /* button_context_bmark */ | 274 | }; /* button_context_bmark */ |
275 | 275 | ||
276 | #ifdef HAVE_USBSTACK | 276 | #ifdef USB_ENABLE_HID |
277 | static const struct button_mapping button_context_usb_hid[] = { | 277 | static const struct button_mapping button_context_usb_hid[] = { |
278 | { ACTION_USB_HID_PLAY, BUTTON_UP, BUTTON_NONE }, | 278 | { ACTION_USB_HID_INC, BUTTON_VOL_UP, BUTTON_NONE }, |
279 | { ACTION_USB_HID_STOP, BUTTON_POWER, BUTTON_NONE }, | 279 | { ACTION_USB_HID_INC, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, |
280 | { ACTION_USB_HID_SKIPPREV, BUTTON_LEFT, BUTTON_NONE }, | 280 | { ACTION_USB_HID_DEC, BUTTON_VOL_DOWN, BUTTON_NONE }, |
281 | { ACTION_USB_HID_SKIPNEXT, BUTTON_RIGHT, BUTTON_NONE }, | 281 | { ACTION_USB_HID_DEC, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, |
282 | { ACTION_USB_HID_VOLUP, BUTTON_VOL_UP, BUTTON_NONE }, | 282 | { ACTION_USB_HID_START, BUTTON_UP|BUTTON_REL, BUTTON_UP }, |
283 | { ACTION_USB_HID_VOLUP, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, | 283 | { ACTION_USB_HID_START_LONG, BUTTON_UP|BOTTOM_REPEAT, BUTTON_UP }, |
284 | { ACTION_USB_HID_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE }, | 284 | { ACTION_USB_HID_QUIT, BUTTON_HOME|BUTTON_REL, BUTTON_HOME }, |
285 | { ACTION_USB_HID_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | 285 | { ACTION_USB_HID_QUIT_LONG, BUTTON_HOME|BUTTON_REPEAT, BUTTON_HOME }, |
286 | { ACTION_USB_HID_MUTE, BUTTON_SELECT, BUTTON_NONE }, | 286 | { ACTION_USB_HID_LEFT, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT }, |
287 | { ACTION_USB_HID_MENU, BUTTON_DOWN, BUTTON_NONE }, | 287 | { ACTION_USB_HID_LEFT_LONG, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_LEFT }, |
288 | { ACTION_USB_HID_RIGHT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT }, | ||
289 | { ACTION_USB_HID_RIGHT_LONG, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_RIGHT }, | ||
290 | { ACTION_USB_HID_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT }, | ||
291 | { ACTION_USB_HID_SELECT_LONG, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT }, | ||
292 | { ACTION_USB_HID_MENU, BUTTON_DOWN|BUTTON_REL, BUTTON_DOWN }, | ||
293 | { ACTION_USB_HID_MENU_LONG, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_DOWN }, | ||
294 | { ACTION_USB_HID_MODE, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, | ||
295 | { ACTION_USB_HID_MODE_LONG, BUTTON_POWER|BUTTON_REPEAT, BUTTON_POWER }, | ||
288 | 296 | ||
289 | LAST_ITEM_IN_LIST | 297 | LAST_ITEM_IN_LIST |
290 | }; /* button_context_usb_hid */ | 298 | }; /* button_context_usb_hid */ |
299 | |||
300 | static const struct button_mapping button_context_usb_hid_mouse[] = { | ||
301 | { ACTION_USB_HID_MOUSE_UP, BUTTON_UP, BUTTON_NONE }, | ||
302 | { ACTION_USB_HID_MOUSE_UP_REP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
303 | { ACTION_USB_HID_MOUSE_DOWN, BUTTON_DOWN, BUTTON_NONE }, | ||
304 | { ACTION_USB_HID_MOUSE_DOWN_REP, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
305 | { ACTION_USB_HID_MOUSE_LEFT, BUTTON_LEFT, BUTTON_NONE }, | ||
306 | { ACTION_USB_HID_MOUSE_LEFT_REP, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
307 | { ACTION_USB_HID_MOUSE_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, | ||
308 | { ACTION_USB_HID_MOUSE_RIGHT_REP, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
309 | { ACTION_USB_HID_MOUSE_LDRAG_UP, BUTTON_SELECT|BUTTON_UP, BUTTON_NONE }, | ||
310 | { ACTION_USB_HID_MOUSE_LDRAG_UP_REP, BUTTON_SELECT|BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
311 | { ACTION_USB_HID_MOUSE_LDRAG_DOWN, BUTTON_SELECT|BUTTON_DOWN, BUTTON_NONE }, | ||
312 | { ACTION_USB_HID_MOUSE_LDRAG_DOWN_REP, BUTTON_SELECT|BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
313 | { ACTION_USB_HID_MOUSE_LDRAG_LEFT, BUTTON_SELECT|BUTTON_LEFT, BUTTON_NONE }, | ||
314 | { ACTION_USB_HID_MOUSE_LDRAG_LEFT_REP, BUTTON_SELECT|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
315 | { ACTION_USB_HID_MOUSE_LDRAG_RIGHT, BUTTON_SELECT|BUTTON_RIGHT, BUTTON_NONE }, | ||
316 | { ACTION_USB_HID_MOUSE_LDRAG_RIGHT_REP, BUTTON_SELECT|BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
317 | { ACTION_USB_HID_MOUSE_RDRAG_UP, BUTTON_HOME|BUTTON_UP, BUTTON_NONE }, | ||
318 | { ACTION_USB_HID_MOUSE_RDRAG_UP_REP, BUTTON_HOME|BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
319 | { ACTION_USB_HID_MOUSE_RDRAG_DOWN, BUTTON_HOME|BUTTON_DOWN, BUTTON_NONE }, | ||
320 | { ACTION_USB_HID_MOUSE_RDRAG_DOWN_REP, BUTTON_HOME|BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
321 | { ACTION_USB_HID_MOUSE_RDRAG_LEFT, BUTTON_HOME|BUTTON_LEFT, BUTTON_NONE }, | ||
322 | { ACTION_USB_HID_MOUSE_RDRAG_LEFT_REP, BUTTON_HOME|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
323 | { ACTION_USB_HID_MOUSE_RDRAG_RIGHT, BUTTON_HOME|BUTTON_RIGHT, BUTTON_NONE }, | ||
324 | { ACTION_USB_HID_MOUSE_RDRAG_RIGHT_REP, BUTTON_HOME|BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
325 | { ACTION_USB_HID_MOUSE_BUTTON_LEFT, BUTTON_SELECT, BUTTON_NONE }, | ||
326 | { ACTION_USB_HID_MOUSE_BUTTON_LEFT_REL, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE }, | ||
327 | { ACTION_USB_HID_MOUSE_BUTTON_RIGHT, BUTTON_HOME, BUTTON_NONE }, | ||
328 | { ACTION_USB_HID_MOUSE_BUTTON_RIGHT_REL, BUTTON_HOME|BUTTON_REL, BUTTON_NONE }, | ||
329 | |||
330 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_USB_HID) | ||
331 | }; /* button_context_usb_hid_mouse */ | ||
291 | #endif | 332 | #endif |
292 | 333 | ||
293 | /* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */ | 334 | /* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */ |
@@ -337,9 +378,11 @@ const struct button_mapping* get_context_mapping(int context) | |||
337 | #endif | 378 | #endif |
338 | case CONTEXT_KEYBOARD: | 379 | case CONTEXT_KEYBOARD: |
339 | return button_context_keyboard; | 380 | return button_context_keyboard; |
340 | #ifdef HAVE_USBSTACK | 381 | #ifdef USB_ENABLE_HID |
341 | case CONTEXT_USB_HID: | 382 | case CONTEXT_USB_HID: |
342 | return button_context_usb_hid; | 383 | return button_context_usb_hid; |
384 | case CONTEXT_USB_HID_MOUSE: | ||
385 | return button_context_usb_hid_mouse; | ||
343 | #endif | 386 | #endif |
344 | default: | 387 | default: |
345 | return button_context_standard; | 388 | return button_context_standard; |
diff --git a/apps/keymaps/keymap-e200.c b/apps/keymaps/keymap-e200.c index ede06515ef..ef5c932f20 100644 --- a/apps/keymaps/keymap-e200.c +++ b/apps/keymaps/keymap-e200.c | |||
@@ -275,21 +275,62 @@ static const struct button_mapping button_context_bmark[] = { | |||
275 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST), | 275 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST), |
276 | }; /* button_context_bmark */ | 276 | }; /* button_context_bmark */ |
277 | 277 | ||
278 | #ifdef HAVE_USBSTACK | 278 | #ifdef USB_ENABLE_HID |
279 | static const struct button_mapping button_context_usb_hid[] = { | 279 | static const struct button_mapping button_context_usb_hid[] = { |
280 | { ACTION_USB_HID_PLAY, BUTTON_UP, BUTTON_NONE }, | 280 | { ACTION_USB_HID_INC, BUTTON_SCROLL_FWD, BUTTON_NONE }, |
281 | { ACTION_USB_HID_STOP, BUTTON_POWER, BUTTON_NONE }, | 281 | { ACTION_USB_HID_INC, BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE }, |
282 | { ACTION_USB_HID_SKIPPREV, BUTTON_LEFT, BUTTON_NONE }, | 282 | { ACTION_USB_HID_DEC, BUTTON_SCROLL_BACK, BUTTON_NONE }, |
283 | { ACTION_USB_HID_SKIPNEXT, BUTTON_RIGHT, BUTTON_NONE }, | 283 | { ACTION_USB_HID_DEC, BUTTON_SCROLL_BACK|BUTTON_REPEAT, BUTTON_NONE }, |
284 | { ACTION_USB_HID_VOLUP, BUTTON_SCROLL_FWD, BUTTON_NONE }, | 284 | { ACTION_USB_HID_START, BUTTON_UP|BUTTON_REL, BUTTON_UP }, |
285 | { ACTION_USB_HID_VOLUP, BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE }, | 285 | { ACTION_USB_HID_START_LONG, BUTTON_UP|BUTTON_REPEAT, BUTTON_UP }, |
286 | { ACTION_USB_HID_VOLDOWN, BUTTON_SCROLL_BACK, BUTTON_NONE }, | 286 | { ACTION_USB_HID_QUIT, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, |
287 | { ACTION_USB_HID_VOLDOWN, BUTTON_SCROLL_BACK|BUTTON_REPEAT, BUTTON_NONE }, | 287 | { ACTION_USB_HID_QUIT_LONG, BUTTON_POWER|BUTTON_REPEAT, BUTTON_POWER }, |
288 | { ACTION_USB_HID_MUTE, BUTTON_SELECT, BUTTON_NONE }, | 288 | { ACTION_USB_HID_LEFT, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT }, |
289 | { ACTION_USB_HID_MENU, BUTTON_DOWN, BUTTON_NONE }, | 289 | { ACTION_USB_HID_LEFT_LONG, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_LEFT }, |
290 | { ACTION_USB_HID_RIGHT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT }, | ||
291 | { ACTION_USB_HID_RIGHT_LONG, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_RIGHT }, | ||
292 | { ACTION_USB_HID_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT }, | ||
293 | { ACTION_USB_HID_SELECT_LONG, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT }, | ||
294 | { ACTION_USB_HID_MENU, BUTTON_DOWN|BUTTON_REL, BUTTON_DOWN }, | ||
295 | { ACTION_USB_HID_MENU_LONG, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_DOWN }, | ||
296 | { ACTION_USB_HID_MODE, BUTTON_REC|BUTTON_REL, BUTTON_REC }, | ||
297 | { ACTION_USB_HID_MODE_LONG, BUTTON_REC|BUTTON_REPEAT, BUTTON_REC }, | ||
290 | 298 | ||
291 | LAST_ITEM_IN_LIST | 299 | LAST_ITEM_IN_LIST |
292 | }; /* button_context_usb_hid */ | 300 | }; /* button_context_usb_hid */ |
301 | |||
302 | static const struct button_mapping button_context_usb_hid_mouse[] = { | ||
303 | { ACTION_USB_HID_MOUSE_UP, BUTTON_UP, BUTTON_NONE }, | ||
304 | { ACTION_USB_HID_MOUSE_UP_REP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
305 | { ACTION_USB_HID_MOUSE_DOWN, BUTTON_DOWN, BUTTON_NONE }, | ||
306 | { ACTION_USB_HID_MOUSE_DOWN_REP, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
307 | { ACTION_USB_HID_MOUSE_LEFT, BUTTON_LEFT, BUTTON_NONE }, | ||
308 | { ACTION_USB_HID_MOUSE_LEFT_REP, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
309 | { ACTION_USB_HID_MOUSE_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, | ||
310 | { ACTION_USB_HID_MOUSE_RIGHT_REP, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
311 | { ACTION_USB_HID_MOUSE_LDRAG_UP, BUTTON_SELECT|BUTTON_UP, BUTTON_NONE }, | ||
312 | { ACTION_USB_HID_MOUSE_LDRAG_UP_REP, BUTTON_SELECT|BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
313 | { ACTION_USB_HID_MOUSE_LDRAG_DOWN, BUTTON_SELECT|BUTTON_DOWN, BUTTON_NONE }, | ||
314 | { ACTION_USB_HID_MOUSE_LDRAG_DOWN_REP, BUTTON_SELECT|BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
315 | { ACTION_USB_HID_MOUSE_LDRAG_LEFT, BUTTON_SELECT|BUTTON_LEFT, BUTTON_NONE }, | ||
316 | { ACTION_USB_HID_MOUSE_LDRAG_LEFT_REP, BUTTON_SELECT|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
317 | { ACTION_USB_HID_MOUSE_LDRAG_RIGHT, BUTTON_SELECT|BUTTON_RIGHT, BUTTON_NONE }, | ||
318 | { ACTION_USB_HID_MOUSE_LDRAG_RIGHT_REP, BUTTON_SELECT|BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
319 | { ACTION_USB_HID_MOUSE_RDRAG_UP, BUTTON_POWER|BUTTON_UP, BUTTON_NONE }, | ||
320 | { ACTION_USB_HID_MOUSE_RDRAG_UP_REP, BUTTON_POWER|BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
321 | { ACTION_USB_HID_MOUSE_RDRAG_DOWN, BUTTON_POWER|BUTTON_DOWN, BUTTON_NONE }, | ||
322 | { ACTION_USB_HID_MOUSE_RDRAG_DOWN_REP, BUTTON_POWER|BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
323 | { ACTION_USB_HID_MOUSE_RDRAG_LEFT, BUTTON_POWER|BUTTON_LEFT, BUTTON_NONE }, | ||
324 | { ACTION_USB_HID_MOUSE_RDRAG_LEFT_REP, BUTTON_POWER|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
325 | { ACTION_USB_HID_MOUSE_RDRAG_RIGHT, BUTTON_POWER|BUTTON_RIGHT, BUTTON_NONE }, | ||
326 | { ACTION_USB_HID_MOUSE_RDRAG_RIGHT_REP, BUTTON_POWER|BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
327 | { ACTION_USB_HID_MOUSE_BUTTON_LEFT, BUTTON_SELECT, BUTTON_NONE }, | ||
328 | { ACTION_USB_HID_MOUSE_BUTTON_LEFT_REL, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE }, | ||
329 | { ACTION_USB_HID_MOUSE_BUTTON_RIGHT, BUTTON_POWER, BUTTON_NONE }, | ||
330 | { ACTION_USB_HID_MOUSE_BUTTON_RIGHT_REL, BUTTON_POWER|BUTTON_REL, BUTTON_NONE }, | ||
331 | |||
332 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_USB_HID) | ||
333 | }; /* button_context_usb_hid_mouse */ | ||
293 | #endif | 334 | #endif |
294 | 335 | ||
295 | /* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */ | 336 | /* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */ |
@@ -339,9 +380,11 @@ const struct button_mapping* get_context_mapping(int context) | |||
339 | return button_context_recscreen; | 380 | return button_context_recscreen; |
340 | case CONTEXT_KEYBOARD: | 381 | case CONTEXT_KEYBOARD: |
341 | return button_context_keyboard; | 382 | return button_context_keyboard; |
342 | #ifdef HAVE_USBSTACK | 383 | #ifdef USB_ENABLE_HID |
343 | case CONTEXT_USB_HID: | 384 | case CONTEXT_USB_HID: |
344 | return button_context_usb_hid; | 385 | return button_context_usb_hid; |
386 | case CONTEXT_USB_HID_MOUSE: | ||
387 | return button_context_usb_hid_mouse; | ||
345 | #endif | 388 | #endif |
346 | default: | 389 | default: |
347 | return button_context_standard; | 390 | return button_context_standard; |
diff --git a/apps/keymaps/keymap-gigabeat-s.c b/apps/keymaps/keymap-gigabeat-s.c index 4fb7e1b3f1..6c5b6decb5 100644 --- a/apps/keymaps/keymap-gigabeat-s.c +++ b/apps/keymaps/keymap-gigabeat-s.c | |||
@@ -468,40 +468,91 @@ static const struct button_mapping remote_button_context_right_is_inc[] = { | |||
468 | LAST_ITEM_IN_LIST | 468 | LAST_ITEM_IN_LIST |
469 | }; /* remote_button_context_right_is_inc */ | 469 | }; /* remote_button_context_right_is_inc */ |
470 | 470 | ||
471 | #ifdef HAVE_USBSTACK | 471 | #ifdef USB_ENABLE_HID |
472 | static const struct button_mapping button_context_usb_hid[] = { | 472 | static const struct button_mapping button_context_usb_hid[] = { |
473 | { ACTION_USB_HID_PLAY, BUTTON_PLAY, BUTTON_NONE }, | 473 | { ACTION_USB_HID_INC, BUTTON_VOL_UP, BUTTON_NONE }, |
474 | { ACTION_USB_HID_STOP, BUTTON_POWER, BUTTON_NONE }, | 474 | { ACTION_USB_HID_INC, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, |
475 | { ACTION_USB_HID_SKIPPREV, BUTTON_LEFT, BUTTON_NONE }, | 475 | { ACTION_USB_HID_DEC, BUTTON_VOL_DOWN, BUTTON_NONE }, |
476 | { ACTION_USB_HID_SKIPNEXT, BUTTON_RIGHT, BUTTON_NONE }, | 476 | { ACTION_USB_HID_DEC, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, |
477 | { ACTION_USB_HID_VOLUP, BUTTON_UP, BUTTON_NONE }, | 477 | { ACTION_USB_HID_START, BUTTON_PLAY|BUTTON_REL, BUTTON_START }, |
478 | { ACTION_USB_HID_VOLUP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | 478 | { ACTION_USB_HID_START_LONG, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_START }, |
479 | { ACTION_USB_HID_VOLUP, BUTTON_VOL_UP, BUTTON_NONE }, | 479 | { ACTION_USB_HID_QUIT, BUTTON_MENU|BUTTON_REL, BUTTON_MENU }, |
480 | { ACTION_USB_HID_VOLUP, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, | 480 | { ACTION_USB_HID_QUIT_LONG, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU }, |
481 | { ACTION_USB_HID_VOLDOWN, BUTTON_DOWN, BUTTON_NONE }, | 481 | { ACTION_USB_HID_LEFT, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT }, |
482 | { ACTION_USB_HID_VOLDOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | 482 | { ACTION_USB_HID_LEFT_LONG, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_LEFT }, |
483 | { ACTION_USB_HID_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE }, | 483 | { ACTION_USB_HID_RIGHT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT }, |
484 | { ACTION_USB_HID_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | 484 | { ACTION_USB_HID_RIGHT_LONG, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_RIGHT }, |
485 | { ACTION_USB_HID_MUTE, BUTTON_SELECT, BUTTON_NONE }, | 485 | { ACTION_USB_HID_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT }, |
486 | { ACTION_USB_HID_MENU, BUTTON_MENU, BUTTON_NONE }, | 486 | { ACTION_USB_HID_SELECT, BUTTON_BACK|BUTTON_REL, BUTTON_BACK }, |
487 | { ACTION_USB_HID_SELECT_LONG, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT }, | ||
488 | { ACTION_USB_HID_SELECT_LONG, BUTTON_BACK|BUTTON_REPEAT, BUTTON_BACK }, | ||
489 | { ACTION_USB_HID_MENU, BUTTON_DOWN|BUTTON_REL, BUTTON_DOWN }, | ||
490 | { ACTION_USB_HID_MENU_LONG, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_DOWN }, | ||
491 | { ACTION_USB_HID_MODE, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, | ||
492 | { ACTION_USB_HID_MODE_LONG, BUTTON_POWER|BUTTON_REPEAT, BUTTON_POWER }, | ||
487 | 493 | ||
488 | LAST_ITEM_IN_LIST | 494 | LAST_ITEM_IN_LIST |
489 | }; /* button_context_usb_hid */ | 495 | }; /* button_context_usb_hid */ |
490 | 496 | ||
491 | static const struct button_mapping remote_button_context_usb_hid[] = { | 497 | static const struct button_mapping remote_button_context_usb_hid[] = { |
492 | { ACTION_USB_HID_PLAY, BUTTON_RC_PLAY, BUTTON_NONE }, | 498 | { ACTION_USB_HID_INC, BUTTON_RC_VOL_UP, BUTTON_NONE }, |
493 | { ACTION_USB_HID_STOP, BUTTON_RC_PLAY|BUTTON_REPEAT, BUTTON_NONE }, | 499 | { ACTION_USB_HID_INC, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, |
494 | { ACTION_USB_HID_SKIPPREV, BUTTON_RC_REW, BUTTON_NONE }, | 500 | { ACTION_USB_HID_DEC, BUTTON_RC_VOL_DOWN, BUTTON_NONE }, |
495 | { ACTION_USB_HID_SKIPNEXT, BUTTON_RC_FF, BUTTON_NONE }, | 501 | { ACTION_USB_HID_DEC, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, |
496 | { ACTION_USB_HID_VOLUP, BUTTON_RC_VOL_UP, BUTTON_NONE }, | 502 | { ACTION_USB_HID_START, BUTTON_RC_PLAY|BUTTON_REL, BUTTON_RC_PLAY }, |
497 | { ACTION_USB_HID_VOLUP, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, | 503 | { ACTION_USB_HID_QUIT, BUTTON_RC_PLAY|BUTTON_REPEAT, BUTTON_RC_PLAY }, |
498 | { ACTION_USB_HID_VOLDOWN, BUTTON_RC_VOL_DOWN, BUTTON_NONE }, | 504 | { ACTION_USB_HID_LEFT, BUTTON_RC_REW|BUTTON_REL, BUTTON_RC_REW }, |
499 | { ACTION_USB_HID_VOLDOWN, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | 505 | { ACTION_USB_HID_RIGHT, BUTTON_RC_FF|BUTTON_REL, BUTTON_RC_FF}, |
500 | { ACTION_USB_HID_MUTE, BUTTON_RC_DSP|BUTTON_REPEAT, BUTTON_NONE }, | 506 | { ACTION_USB_HID_SELECT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_RC_FF }, |
501 | { ACTION_USB_HID_MENU, BUTTON_RC_DSP, BUTTON_NONE }, | 507 | { ACTION_USB_HID_SELECT_LONG, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_RC_REW }, |
508 | { ACTION_USB_HID_MENU, BUTTON_RC_DSP|BUTTON_REPEAT, BUTTON_RC_DSP }, | ||
509 | { ACTION_USB_HID_MODE, BUTTON_RC_DSP|BUTTON_REL, BUTTON_RC_DSP }, | ||
502 | 510 | ||
503 | LAST_ITEM_IN_LIST | 511 | LAST_ITEM_IN_LIST |
504 | }; /* remote_button_context_usb_hid */ | 512 | }; /* remote_button_context_usb_hid */ |
513 | |||
514 | static const struct button_mapping button_context_usb_hid_mouse[] = { | ||
515 | { ACTION_USB_HID_MOUSE_UP, BUTTON_UP, BUTTON_NONE }, | ||
516 | { ACTION_USB_HID_MOUSE_UP_REP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
517 | { ACTION_USB_HID_MOUSE_DOWN, BUTTON_DOWN, BUTTON_NONE }, | ||
518 | { ACTION_USB_HID_MOUSE_DOWN_REP, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
519 | { ACTION_USB_HID_MOUSE_LEFT, BUTTON_LEFT, BUTTON_NONE }, | ||
520 | { ACTION_USB_HID_MOUSE_LEFT_REP, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
521 | { ACTION_USB_HID_MOUSE_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, | ||
522 | { ACTION_USB_HID_MOUSE_RIGHT_REP, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
523 | { ACTION_USB_HID_MOUSE_LDRAG_UP, BUTTON_SELECT|BUTTON_UP, BUTTON_NONE }, | ||
524 | { ACTION_USB_HID_MOUSE_LDRAG_UP, BUTTON_BACK|BUTTON_UP, BUTTON_NONE }, | ||
525 | { ACTION_USB_HID_MOUSE_LDRAG_UP_REP, BUTTON_SELECT|BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
526 | { ACTION_USB_HID_MOUSE_LDRAG_UP_REP, BUTTON_BACK|BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
527 | { ACTION_USB_HID_MOUSE_LDRAG_DOWN, BUTTON_SELECT|BUTTON_DOWN, BUTTON_NONE }, | ||
528 | { ACTION_USB_HID_MOUSE_LDRAG_DOWN, BUTTON_BACK|BUTTON_DOWN, BUTTON_NONE }, | ||
529 | { ACTION_USB_HID_MOUSE_LDRAG_DOWN_REP, BUTTON_SELECT|BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
530 | { ACTION_USB_HID_MOUSE_LDRAG_DOWN_REP, BUTTON_BACK|BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
531 | { ACTION_USB_HID_MOUSE_LDRAG_LEFT, BUTTON_SELECT|BUTTON_LEFT, BUTTON_NONE }, | ||
532 | { ACTION_USB_HID_MOUSE_LDRAG_LEFT, BUTTON_BACK|BUTTON_LEFT, BUTTON_NONE }, | ||
533 | { ACTION_USB_HID_MOUSE_LDRAG_LEFT_REP, BUTTON_SELECT|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
534 | { ACTION_USB_HID_MOUSE_LDRAG_LEFT_REP, BUTTON_BACK|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
535 | { ACTION_USB_HID_MOUSE_LDRAG_RIGHT, BUTTON_SELECT|BUTTON_RIGHT, BUTTON_NONE }, | ||
536 | { ACTION_USB_HID_MOUSE_LDRAG_RIGHT, BUTTON_BACK|BUTTON_RIGHT, BUTTON_NONE }, | ||
537 | { ACTION_USB_HID_MOUSE_LDRAG_RIGHT_REP, BUTTON_SELECT|BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
538 | { ACTION_USB_HID_MOUSE_LDRAG_RIGHT_REP, BUTTON_BACK|BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
539 | { ACTION_USB_HID_MOUSE_RDRAG_UP, BUTTON_MENU|BUTTON_UP, BUTTON_NONE }, | ||
540 | { ACTION_USB_HID_MOUSE_RDRAG_UP_REP, BUTTON_MENU|BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
541 | { ACTION_USB_HID_MOUSE_RDRAG_DOWN, BUTTON_MENU|BUTTON_DOWN, BUTTON_NONE }, | ||
542 | { ACTION_USB_HID_MOUSE_RDRAG_DOWN_REP, BUTTON_MENU|BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
543 | { ACTION_USB_HID_MOUSE_RDRAG_LEFT, BUTTON_MENU|BUTTON_LEFT, BUTTON_NONE }, | ||
544 | { ACTION_USB_HID_MOUSE_RDRAG_LEFT_REP, BUTTON_MENU|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
545 | { ACTION_USB_HID_MOUSE_RDRAG_RIGHT, BUTTON_MENU|BUTTON_RIGHT, BUTTON_NONE }, | ||
546 | { ACTION_USB_HID_MOUSE_RDRAG_RIGHT_REP, BUTTON_MENU|BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
547 | { ACTION_USB_HID_MOUSE_BUTTON_LEFT, BUTTON_SELECT, BUTTON_NONE }, | ||
548 | { ACTION_USB_HID_MOUSE_BUTTON_LEFT, BUTTON_BACK, BUTTON_NONE }, | ||
549 | { ACTION_USB_HID_MOUSE_BUTTON_LEFT_REL, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE }, | ||
550 | { ACTION_USB_HID_MOUSE_BUTTON_LEFT_REL, BUTTON_BACK|BUTTON_REL, BUTTON_NONE }, | ||
551 | { ACTION_USB_HID_MOUSE_BUTTON_RIGHT, BUTTON_MENU, BUTTON_NONE }, | ||
552 | { ACTION_USB_HID_MOUSE_BUTTON_RIGHT_REL, BUTTON_MENU|BUTTON_REL, BUTTON_NONE }, | ||
553 | |||
554 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_USB_HID) | ||
555 | }; /* button_context_usb_hid_mouse */ | ||
505 | #endif | 556 | #endif |
506 | 557 | ||
507 | static const struct button_mapping* get_context_mapping_remote( int context ) | 558 | static const struct button_mapping* get_context_mapping_remote( int context ) |
@@ -546,7 +597,7 @@ static const struct button_mapping* get_context_mapping_remote( int context ) | |||
546 | case CONTEXT_FM: | 597 | case CONTEXT_FM: |
547 | return remote_button_context_radio; | 598 | return remote_button_context_radio; |
548 | 599 | ||
549 | #ifdef HAVE_USBSTACK | 600 | #ifdef USB_ENABLE_HID |
550 | case CONTEXT_USB_HID: | 601 | case CONTEXT_USB_HID: |
551 | return remote_button_context_usb_hid; | 602 | return remote_button_context_usb_hid; |
552 | #endif | 603 | #endif |
@@ -617,9 +668,11 @@ const struct button_mapping* get_context_mapping(int context) | |||
617 | case CONTEXT_FM: | 668 | case CONTEXT_FM: |
618 | return button_context_radio; | 669 | return button_context_radio; |
619 | 670 | ||
620 | #ifdef HAVE_USBSTACK | 671 | #ifdef USB_ENABLE_HID |
621 | case CONTEXT_USB_HID: | 672 | case CONTEXT_USB_HID: |
622 | return button_context_usb_hid; | 673 | return button_context_usb_hid; |
674 | case CONTEXT_USB_HID_MOUSE: | ||
675 | return button_context_usb_hid_mouse; | ||
623 | #endif | 676 | #endif |
624 | default: | 677 | default: |
625 | return button_context_standard; | 678 | return button_context_standard; |
diff --git a/apps/keymaps/keymap-h10.c b/apps/keymaps/keymap-h10.c index ad1ed64c5a..81673397c3 100644 --- a/apps/keymaps/keymap-h10.c +++ b/apps/keymaps/keymap-h10.c | |||
@@ -337,30 +337,37 @@ static const struct button_mapping button_context_radio[] = { | |||
337 | 337 | ||
338 | }; | 338 | }; |
339 | 339 | ||
340 | #ifdef HAVE_USBSTACK | 340 | #ifdef USB_ENABLE_HID |
341 | static const struct button_mapping button_context_usb_hid[] = { | 341 | static const struct button_mapping button_context_usb_hid[] = { |
342 | { ACTION_USB_HID_PLAY, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY }, | 342 | { ACTION_USB_HID_INC, BUTTON_SCROLL_UP, BUTTON_NONE }, |
343 | { ACTION_USB_HID_STOP, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY }, | 343 | { ACTION_USB_HID_INC, BUTTON_SCROLL_UP|BUTTON_REPEAT, BUTTON_NONE }, |
344 | { ACTION_USB_HID_SKIPPREV, BUTTON_REW, BUTTON_NONE }, | 344 | { ACTION_USB_HID_DEC, BUTTON_SCROLL_DOWN, BUTTON_NONE }, |
345 | { ACTION_USB_HID_SKIPNEXT, BUTTON_FF, BUTTON_NONE }, | 345 | { ACTION_USB_HID_DEC, BUTTON_SCROLL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, |
346 | { ACTION_USB_HID_VOLUP, BUTTON_SCROLL_UP, BUTTON_NONE }, | 346 | { ACTION_USB_HID_START, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY }, |
347 | { ACTION_USB_HID_VOLUP, BUTTON_SCROLL_UP|BUTTON_REPEAT, BUTTON_NONE }, | 347 | { ACTION_USB_HID_START_LONG, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY }, |
348 | { ACTION_USB_HID_VOLDOWN, BUTTON_SCROLL_DOWN, BUTTON_NONE }, | 348 | { ACTION_USB_HID_QUIT, BUTTON_REW|BUTTON_REL, BUTTON_REW }, |
349 | { ACTION_USB_HID_VOLDOWN, BUTTON_SCROLL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | 349 | { ACTION_USB_HID_LEFT, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT }, |
350 | { ACTION_USB_HID_MENU, BUTTON_POWER, BUTTON_NONE }, | 350 | { ACTION_USB_HID_LEFT_LONG, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_LEFT }, |
351 | { ACTION_USB_HID_RIGHT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT }, | ||
352 | { ACTION_USB_HID_RIGHT_LONG, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_RIGHT }, | ||
353 | { ACTION_USB_HID_SELECT, BUTTON_FF|BUTTON_REL, BUTTON_FF }, | ||
354 | { ACTION_USB_HID_MENU, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, | ||
355 | { ACTION_USB_HID_MODE, BUTTON_POWER|BUTTON_REPEAT, BUTTON_POWER }, | ||
351 | 356 | ||
352 | LAST_ITEM_IN_LIST | 357 | LAST_ITEM_IN_LIST |
353 | }; /* button_context_usb_hid */ | 358 | }; /* button_context_usb_hid */ |
354 | 359 | ||
355 | static const struct button_mapping remote_button_context_usb_hid[] = { | 360 | static const struct button_mapping remote_button_context_usb_hid[] = { |
356 | { ACTION_USB_HID_PLAY, BUTTON_RC_PLAY, BUTTON_NONE }, | 361 | { ACTION_USB_HID_INC, BUTTON_RC_VOL_UP, BUTTON_NONE }, |
357 | { ACTION_USB_HID_STOP, BUTTON_RC_PLAY|BUTTON_REPEAT, BUTTON_NONE }, | 362 | { ACTION_USB_HID_INC, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, |
358 | { ACTION_USB_HID_SKIPPREV, BUTTON_RC_REW, BUTTON_NONE }, | 363 | { ACTION_USB_HID_DEC, BUTTON_RC_VOL_DOWN, BUTTON_NONE }, |
359 | { ACTION_USB_HID_SKIPNEXT, BUTTON_RC_FF, BUTTON_NONE }, | 364 | { ACTION_USB_HID_DEC, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, |
360 | { ACTION_USB_HID_VOLUP, BUTTON_RC_VOL_UP, BUTTON_NONE }, | 365 | { ACTION_USB_HID_START, BUTTON_RC_PLAY|BUTTON_REL, BUTTON_RC_PLAY }, |
361 | { ACTION_USB_HID_VOLUP, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, | 366 | { ACTION_USB_HID_QUIT, BUTTON_RC_PLAY|BUTTON_REPEAT, BUTTON_RC_PLAY }, |
362 | { ACTION_USB_HID_VOLDOWN, BUTTON_RC_VOL_DOWN, BUTTON_NONE }, | 367 | { ACTION_USB_HID_LEFT, BUTTON_RC_REW|BUTTON_REL, BUTTON_RC_REW }, |
363 | { ACTION_USB_HID_VOLDOWN, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | 368 | { ACTION_USB_HID_LEFT_LONG, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_RC_REW }, |
369 | { ACTION_USB_HID_RIGHT, BUTTON_RC_FF|BUTTON_REL, BUTTON_RC_FF }, | ||
370 | { ACTION_USB_HID_RIGHT_LONG, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_RC_FF }, | ||
364 | 371 | ||
365 | LAST_ITEM_IN_LIST | 372 | LAST_ITEM_IN_LIST |
366 | }; /* remote_button_context_usb_hid */ | 373 | }; /* remote_button_context_usb_hid */ |
@@ -395,7 +402,7 @@ static const struct button_mapping* get_context_mapping_remote( int context ) | |||
395 | return remote_button_context_pitchscreen; | 402 | return remote_button_context_pitchscreen; |
396 | case CONTEXT_RECSCREEN: | 403 | case CONTEXT_RECSCREEN: |
397 | return button_context_recscreen; | 404 | return button_context_recscreen; |
398 | #ifdef HAVE_USBSTACK | 405 | #ifdef USB_ENABLE_HID |
399 | case CONTEXT_USB_HID: | 406 | case CONTEXT_USB_HID: |
400 | return remote_button_context_usb_hid; | 407 | return remote_button_context_usb_hid; |
401 | #endif | 408 | #endif |
@@ -453,7 +460,7 @@ const struct button_mapping* get_context_mapping(int context) | |||
453 | return button_context_recscreen; | 460 | return button_context_recscreen; |
454 | case CONTEXT_FM: | 461 | case CONTEXT_FM: |
455 | return button_context_radio; | 462 | return button_context_radio; |
456 | #ifdef HAVE_USBSTACK | 463 | #ifdef USB_ENABLE_HID |
457 | case CONTEXT_USB_HID: | 464 | case CONTEXT_USB_HID: |
458 | return button_context_usb_hid; | 465 | return button_context_usb_hid; |
459 | #endif | 466 | #endif |
diff --git a/apps/keymaps/keymap-hdd1630.c b/apps/keymaps/keymap-hdd1630.c index 4565c2807b..ddb357a8b1 100644 --- a/apps/keymaps/keymap-hdd1630.c +++ b/apps/keymaps/keymap-hdd1630.c | |||
@@ -284,25 +284,62 @@ static const struct button_mapping button_context_radio[] = { | |||
284 | }; | 284 | }; |
285 | #endif | 285 | #endif |
286 | 286 | ||
287 | #ifdef HAVE_USBSTACK | 287 | #ifdef USB_ENABLE_HID |
288 | static const struct button_mapping button_context_usb_hid[] = { | 288 | static const struct button_mapping button_context_usb_hid[] = { |
289 | { ACTION_USB_HID_PLAY, BUTTON_VIEW, BUTTON_NONE }, | 289 | { ACTION_USB_HID_INC, BUTTON_VOL_UP, BUTTON_NONE }, |
290 | { ACTION_USB_HID_STOP, BUTTON_POWER, BUTTON_NONE }, | 290 | { ACTION_USB_HID_INC, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, |
291 | { ACTION_USB_HID_SKIPPREV, BUTTON_LEFT, BUTTON_NONE }, | 291 | { ACTION_USB_HID_DEC, BUTTON_VOL_DOWN, BUTTON_NONE }, |
292 | { ACTION_USB_HID_SKIPNEXT, BUTTON_RIGHT, BUTTON_NONE }, | 292 | { ACTION_USB_HID_DEC, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, |
293 | { ACTION_USB_HID_VOLUP, BUTTON_UP, BUTTON_NONE }, | 293 | { ACTION_USB_HID_START, BUTTON_UP|BUTTON_REL, BUTTON_UP }, |
294 | { ACTION_USB_HID_VOLUP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | 294 | { ACTION_USB_HID_START_LONG, BUTTON_UP|BUTTON_REPEAT, BUTTON_UP }, |
295 | { ACTION_USB_HID_VOLUP, BUTTON_VOL_UP, BUTTON_NONE }, | 295 | { ACTION_USB_HID_QUIT, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, |
296 | { ACTION_USB_HID_VOLUP, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, | 296 | { ACTION_USB_HID_QUIT_LONG, BUTTON_POWER|BUTTON_REPEAT, BUTTON_POWER }, |
297 | { ACTION_USB_HID_VOLDOWN, BUTTON_DOWN, BUTTON_NONE }, | 297 | { ACTION_USB_HID_LEFT, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT }, |
298 | { ACTION_USB_HID_VOLDOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | 298 | { ACTION_USB_HID_LEFT_LONG, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_LEFT }, |
299 | { ACTION_USB_HID_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE }, | 299 | { ACTION_USB_HID_RIGHT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT }, |
300 | { ACTION_USB_HID_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | 300 | { ACTION_USB_HID_RIGHT_LONG, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_RIGHT }, |
301 | { ACTION_USB_HID_MUTE, BUTTON_SELECT, BUTTON_NONE }, | 301 | { ACTION_USB_HID_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT }, |
302 | { ACTION_USB_HID_MENU, BUTTON_MENU, BUTTON_NONE }, | 302 | { ACTION_USB_HID_SELECT_LONG, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT }, |
303 | { ACTION_USB_HID_MENU, BUTTON_MENU|BUTTON_REL, BUTTON_MENU }, | ||
304 | { ACTION_USB_HID_MENU_LONG, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU }, | ||
305 | { ACTION_USB_HID_MODE, BUTTON_VIEW|BUTTON_REL, BUTTON_VIEW }, | ||
306 | { ACTION_USB_HID_MODE_LONG, BUTTON_VIEW|BUTTON_REPEAT, BUTTON_VIEW }, | ||
303 | 307 | ||
304 | LAST_ITEM_IN_LIST | 308 | LAST_ITEM_IN_LIST |
305 | }; /* button_context_usb_hid */ | 309 | }; /* button_context_usb_hid */ |
310 | |||
311 | static const struct button_mapping button_context_usb_hid_mouse[] = { | ||
312 | { ACTION_USB_HID_MOUSE_UP, BUTTON_UP, BUTTON_NONE }, | ||
313 | { ACTION_USB_HID_MOUSE_UP_REP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
314 | { ACTION_USB_HID_MOUSE_DOWN, BUTTON_DOWN, BUTTON_NONE }, | ||
315 | { ACTION_USB_HID_MOUSE_DOWN_REP, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
316 | { ACTION_USB_HID_MOUSE_LEFT, BUTTON_LEFT, BUTTON_NONE }, | ||
317 | { ACTION_USB_HID_MOUSE_LEFT_REP, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
318 | { ACTION_USB_HID_MOUSE_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, | ||
319 | { ACTION_USB_HID_MOUSE_RIGHT_REP, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
320 | { ACTION_USB_HID_MOUSE_LDRAG_UP, BUTTON_SELECT|BUTTON_UP, BUTTON_NONE }, | ||
321 | { ACTION_USB_HID_MOUSE_LDRAG_UP_REP, BUTTON_SELECT|BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
322 | { ACTION_USB_HID_MOUSE_LDRAG_DOWN, BUTTON_SELECT|BUTTON_DOWN, BUTTON_NONE }, | ||
323 | { ACTION_USB_HID_MOUSE_LDRAG_DOWN_REP, BUTTON_SELECT|BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
324 | { ACTION_USB_HID_MOUSE_LDRAG_LEFT, BUTTON_SELECT|BUTTON_LEFT, BUTTON_NONE }, | ||
325 | { ACTION_USB_HID_MOUSE_LDRAG_LEFT_REP, BUTTON_SELECT|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
326 | { ACTION_USB_HID_MOUSE_LDRAG_RIGHT, BUTTON_SELECT|BUTTON_RIGHT, BUTTON_NONE }, | ||
327 | { ACTION_USB_HID_MOUSE_LDRAG_RIGHT_REP, BUTTON_SELECT|BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
328 | { ACTION_USB_HID_MOUSE_RDRAG_UP, BUTTON_POWER|BUTTON_UP, BUTTON_NONE }, | ||
329 | { ACTION_USB_HID_MOUSE_RDRAG_UP_REP, BUTTON_POWER|BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
330 | { ACTION_USB_HID_MOUSE_RDRAG_DOWN, BUTTON_POWER|BUTTON_DOWN, BUTTON_NONE }, | ||
331 | { ACTION_USB_HID_MOUSE_RDRAG_DOWN_REP, BUTTON_POWER|BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
332 | { ACTION_USB_HID_MOUSE_RDRAG_LEFT, BUTTON_POWER|BUTTON_LEFT, BUTTON_NONE }, | ||
333 | { ACTION_USB_HID_MOUSE_RDRAG_LEFT_REP, BUTTON_POWER|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
334 | { ACTION_USB_HID_MOUSE_RDRAG_RIGHT, BUTTON_POWER|BUTTON_RIGHT, BUTTON_NONE }, | ||
335 | { ACTION_USB_HID_MOUSE_RDRAG_RIGHT_REP, BUTTON_POWER|BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
336 | { ACTION_USB_HID_MOUSE_BUTTON_LEFT, BUTTON_SELECT, BUTTON_NONE }, | ||
337 | { ACTION_USB_HID_MOUSE_BUTTON_LEFT_REL, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE }, | ||
338 | { ACTION_USB_HID_MOUSE_BUTTON_RIGHT, BUTTON_POWER, BUTTON_NONE }, | ||
339 | { ACTION_USB_HID_MOUSE_BUTTON_RIGHT_REL, BUTTON_POWER|BUTTON_REL, BUTTON_NONE }, | ||
340 | |||
341 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_USB_HID) | ||
342 | }; /* button_context_usb_hid_mouse */ | ||
306 | #endif | 343 | #endif |
307 | 344 | ||
308 | const struct button_mapping* get_context_mapping(int context) | 345 | const struct button_mapping* get_context_mapping(int context) |
@@ -352,9 +389,11 @@ const struct button_mapping* get_context_mapping(int context) | |||
352 | case CONTEXT_FM: | 389 | case CONTEXT_FM: |
353 | return button_context_radio; | 390 | return button_context_radio; |
354 | #endif | 391 | #endif |
355 | #ifdef HAVE_USBSTACK | 392 | #ifdef USB_ENABLE_HID |
356 | case CONTEXT_USB_HID: | 393 | case CONTEXT_USB_HID: |
357 | return button_context_usb_hid; | 394 | return button_context_usb_hid; |
395 | case CONTEXT_USB_HID_MOUSE: | ||
396 | return button_context_usb_hid_mouse; | ||
358 | #endif | 397 | #endif |
359 | } | 398 | } |
360 | return button_context_standard; | 399 | return button_context_standard; |
diff --git a/apps/keymaps/keymap-ipod.c b/apps/keymaps/keymap-ipod.c index 774597a3c0..99c7f93511 100644 --- a/apps/keymaps/keymap-ipod.c +++ b/apps/keymaps/keymap-ipod.c | |||
@@ -193,21 +193,48 @@ const struct button_mapping button_context_recscreen[] = { | |||
193 | }; /* button_context_recscreen */ | 193 | }; /* button_context_recscreen */ |
194 | #endif | 194 | #endif |
195 | 195 | ||
196 | #ifdef HAVE_USBSTACK | 196 | #ifdef USB_ENABLE_HID |
197 | static const struct button_mapping button_context_usb_hid[] = { | 197 | static const struct button_mapping button_context_usb_hid[] = { |
198 | { ACTION_USB_HID_PLAY, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY }, | 198 | { ACTION_USB_HID_INC, BUTTON_SCROLL_FWD, BUTTON_NONE }, |
199 | { ACTION_USB_HID_STOP, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY }, | 199 | { ACTION_USB_HID_INC, BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE }, |
200 | { ACTION_USB_HID_SKIPPREV, BUTTON_LEFT, BUTTON_NONE }, | 200 | { ACTION_USB_HID_DEC, BUTTON_SCROLL_BACK, BUTTON_NONE }, |
201 | { ACTION_USB_HID_SKIPNEXT, BUTTON_RIGHT, BUTTON_NONE }, | 201 | { ACTION_USB_HID_DEC, BUTTON_SCROLL_BACK|BUTTON_REPEAT, BUTTON_NONE }, |
202 | { ACTION_USB_HID_VOLUP, BUTTON_SCROLL_FWD, BUTTON_NONE }, | 202 | { ACTION_USB_HID_START, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY }, |
203 | { ACTION_USB_HID_VOLUP, BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE }, | 203 | { ACTION_USB_HID_QUIT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY }, |
204 | { ACTION_USB_HID_VOLDOWN, BUTTON_SCROLL_BACK, BUTTON_NONE }, | 204 | { ACTION_USB_HID_LEFT, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT }, |
205 | { ACTION_USB_HID_VOLDOWN, BUTTON_SCROLL_BACK|BUTTON_REPEAT, BUTTON_NONE }, | 205 | { ACTION_USB_HID_LEFT_LONG, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_LEFT }, |
206 | { ACTION_USB_HID_MUTE, BUTTON_SELECT, BUTTON_NONE }, | 206 | { ACTION_USB_HID_RIGHT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT }, |
207 | { ACTION_USB_HID_MENU, BUTTON_MENU, BUTTON_NONE }, | 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_MODE, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU }, | ||
208 | 212 | ||
209 | LAST_ITEM_IN_LIST | 213 | LAST_ITEM_IN_LIST |
210 | }; /* button_context_usb_hid */ | 214 | }; /* button_context_usb_hid */ |
215 | |||
216 | static const struct button_mapping button_context_usb_hid_mouse[] = { | ||
217 | { ACTION_USB_HID_MOUSE_UP, BUTTON_MENU, BUTTON_NONE }, | ||
218 | { ACTION_USB_HID_MOUSE_UP_REP, BUTTON_MENU|BUTTON_REPEAT, BUTTON_NONE }, | ||
219 | { ACTION_USB_HID_MOUSE_DOWN, BUTTON_PLAY, BUTTON_NONE }, | ||
220 | { ACTION_USB_HID_MOUSE_DOWN_REP, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE }, | ||
221 | { ACTION_USB_HID_MOUSE_LEFT, BUTTON_LEFT, BUTTON_NONE }, | ||
222 | { ACTION_USB_HID_MOUSE_LEFT_REP, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
223 | { ACTION_USB_HID_MOUSE_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, | ||
224 | { ACTION_USB_HID_MOUSE_RIGHT_REP, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
225 | { ACTION_USB_HID_MOUSE_LDRAG_UP, BUTTON_SELECT|BUTTON_MENU, BUTTON_NONE }, | ||
226 | { ACTION_USB_HID_MOUSE_LDRAG_UP_REP, BUTTON_SELECT|BUTTON_MENU|BUTTON_REPEAT, BUTTON_NONE }, | ||
227 | { ACTION_USB_HID_MOUSE_LDRAG_DOWN, BUTTON_SELECT|BUTTON_PLAY, BUTTON_NONE }, | ||
228 | { ACTION_USB_HID_MOUSE_LDRAG_DOWN_REP, BUTTON_SELECT|BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE }, | ||
229 | { ACTION_USB_HID_MOUSE_LDRAG_LEFT, BUTTON_SELECT|BUTTON_LEFT, BUTTON_NONE }, | ||
230 | { ACTION_USB_HID_MOUSE_LDRAG_LEFT_REP, BUTTON_SELECT|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
231 | { ACTION_USB_HID_MOUSE_LDRAG_RIGHT, BUTTON_SELECT|BUTTON_RIGHT, BUTTON_NONE }, | ||
232 | { ACTION_USB_HID_MOUSE_LDRAG_RIGHT_REP, BUTTON_SELECT|BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
233 | { ACTION_USB_HID_MOUSE_BUTTON_LEFT, BUTTON_SELECT, BUTTON_NONE }, | ||
234 | { ACTION_USB_HID_MOUSE_BUTTON_LEFT_REL, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE }, | ||
235 | |||
236 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_USB_HID) | ||
237 | }; /* button_context_usb_hid_mouse */ | ||
211 | #endif | 238 | #endif |
212 | 239 | ||
213 | #if BUTTON_REMOTE != 0 | 240 | #if BUTTON_REMOTE != 0 |
@@ -242,16 +269,18 @@ static const struct button_mapping remote_button_context_wps[] = { | |||
242 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | 269 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) |
243 | }; | 270 | }; |
244 | 271 | ||
245 | #ifdef HAVE_USBSTACK | 272 | #ifdef USB_ENABLE_HID |
246 | static const struct button_mapping remote_button_context_usb_hid[] = { | 273 | static const struct button_mapping remote_button_context_usb_hid[] = { |
247 | { ACTION_USB_HID_PLAY, BUTTON_RC_PLAY, BUTTON_NONE }, | 274 | { ACTION_USB_HID_INC, BUTTON_RC_VOL_UP, BUTTON_NONE }, |
248 | { ACTION_USB_HID_STOP, BUTTON_RC_PLAY|BUTTON_REPEAT, BUTTON_NONE }, | 275 | { ACTION_USB_HID_INC, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, |
249 | { ACTION_USB_HID_SKIPPREV, BUTTON_RC_LEFT, BUTTON_NONE }, | 276 | { ACTION_USB_HID_DEC, BUTTON_RC_VOL_DOWN, BUTTON_NONE }, |
250 | { ACTION_USB_HID_SKIPNEXT, BUTTON_RC_RIGHT, BUTTON_NONE }, | 277 | { ACTION_USB_HID_DEC, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, |
251 | { ACTION_USB_HID_VOLUP, BUTTON_RC_VOL_UP, BUTTON_NONE }, | 278 | { ACTION_USB_HID_START, BUTTON_RC_PLAY|BUTTON_REL, BUTTON_RC_PLAY }, |
252 | { ACTION_USB_HID_VOLUP, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, | 279 | { ACTION_USB_HID_QUIT, BUTTON_RC_PLAY|BUTTON_REPEAT, BUTTON_RC_PLAY }, |
253 | { ACTION_USB_HID_VOLDOWN, BUTTON_RC_VOL_DOWN, BUTTON_NONE }, | 280 | { ACTION_USB_HID_LEFT, BUTTON_RC_LEFT|BUTTON_REL, BUTTON_RC_LEFT }, |
254 | { ACTION_USB_HID_VOLDOWN, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | 281 | { ACTION_USB_HID_LEFT_LONG, BUTTON_RC_LEFT|BUTTON_REPEAT, BUTTON_RC_LEFT }, |
282 | { ACTION_USB_HID_RIGHT, BUTTON_RC_RIGHT|BUTTON_REL, BUTTON_RC_RIGHT }, | ||
283 | { ACTION_USB_HID_RIGHT_LONG, BUTTON_RC_RIGHT|BUTTON_REPEAT, BUTTON_RC_RIGHT }, | ||
255 | 284 | ||
256 | LAST_ITEM_IN_LIST | 285 | LAST_ITEM_IN_LIST |
257 | }; /* remote_button_context_usb_hid */ | 286 | }; /* remote_button_context_usb_hid */ |
@@ -265,7 +294,7 @@ static const struct button_mapping* get_context_mapping_remote( int context ) | |||
265 | { | 294 | { |
266 | case CONTEXT_WPS: | 295 | case CONTEXT_WPS: |
267 | return remote_button_context_wps; | 296 | return remote_button_context_wps; |
268 | #ifdef HAVE_USBSTACK | 297 | #ifdef USB_ENABLE_HID |
269 | case CONTEXT_USB_HID: | 298 | case CONTEXT_USB_HID: |
270 | return remote_button_context_usb_hid; | 299 | return remote_button_context_usb_hid; |
271 | #endif | 300 | #endif |
@@ -321,9 +350,11 @@ const struct button_mapping* get_context_mapping(int context) | |||
321 | case CONTEXT_RECSCREEN: | 350 | case CONTEXT_RECSCREEN: |
322 | return button_context_recscreen; | 351 | return button_context_recscreen; |
323 | #endif | 352 | #endif |
324 | #ifdef HAVE_USBSTACK | 353 | #ifdef USB_ENABLE_HID |
325 | case CONTEXT_USB_HID: | 354 | case CONTEXT_USB_HID: |
326 | return button_context_usb_hid; | 355 | return button_context_usb_hid; |
356 | case CONTEXT_USB_HID_MOUSE: | ||
357 | return button_context_usb_hid_mouse; | ||
327 | #endif | 358 | #endif |
328 | default: | 359 | default: |
329 | return button_context_standard; | 360 | return button_context_standard; |
diff --git a/apps/keymaps/keymap-mr100.c b/apps/keymaps/keymap-mr100.c index bf9da0de58..a605131465 100644 --- a/apps/keymaps/keymap-mr100.c +++ b/apps/keymaps/keymap-mr100.c | |||
@@ -315,7 +315,7 @@ static const struct button_mapping remote_button_context_tree[] = { | |||
315 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | 315 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) |
316 | }; | 316 | }; |
317 | 317 | ||
318 | #ifdef HAVE_USBSTACK | 318 | #ifdef USB_ENABLE_HID |
319 | static const struct button_mapping button_context_usb_hid[] = { | 319 | static const struct button_mapping button_context_usb_hid[] = { |
320 | { ACTION_USB_HID_PLAY, BUTTON_PLAY, BUTTON_NONE }, | 320 | { ACTION_USB_HID_PLAY, BUTTON_PLAY, BUTTON_NONE }, |
321 | { ACTION_USB_HID_STOP, BUTTON_POWER, BUTTON_NONE }, | 321 | { ACTION_USB_HID_STOP, BUTTON_POWER, BUTTON_NONE }, |
@@ -357,7 +357,7 @@ static const struct button_mapping* get_context_mapping_remote( int context ) | |||
357 | case CONTEXT_MAINMENU: | 357 | case CONTEXT_MAINMENU: |
358 | case CONTEXT_TREE: | 358 | case CONTEXT_TREE: |
359 | return remote_button_context_tree; | 359 | return remote_button_context_tree; |
360 | #ifdef HAVE_USBSTACK | 360 | #ifdef USB_ENABLE_HID |
361 | case CONTEXT_USB_HID: | 361 | case CONTEXT_USB_HID: |
362 | return remote_button_context_usb_hid; | 362 | return remote_button_context_usb_hid; |
363 | #endif | 363 | #endif |
@@ -411,7 +411,7 @@ const struct button_mapping* get_context_mapping(int context) | |||
411 | return button_context_pitchscreen; | 411 | return button_context_pitchscreen; |
412 | case CONTEXT_KEYBOARD: | 412 | case CONTEXT_KEYBOARD: |
413 | return button_context_keyboard; | 413 | return button_context_keyboard; |
414 | #ifdef HAVE_USBSTACK | 414 | #ifdef USB_ENABLE_HID |
415 | case CONTEXT_USB_HID: | 415 | case CONTEXT_USB_HID: |
416 | return button_context_usb_hid; | 416 | return button_context_usb_hid; |
417 | #endif | 417 | #endif |
diff --git a/apps/keymaps/keymap-ondavx747.c b/apps/keymaps/keymap-ondavx747.c index 6eb2230d49..ee590599b6 100644 --- a/apps/keymaps/keymap-ondavx747.c +++ b/apps/keymaps/keymap-ondavx747.c | |||
@@ -167,14 +167,16 @@ static const struct button_mapping button_context_keyboard[] = { | |||
167 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | 167 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) |
168 | }; /* button_context_keyboard */ | 168 | }; /* button_context_keyboard */ |
169 | 169 | ||
170 | #ifdef HAVE_USBSTACK | 170 | #ifdef USB_ENABLE_HID |
171 | static const struct button_mapping button_context_usb_hid[] = { | 171 | static const struct button_mapping button_context_usb_hid[] = { |
172 | { ACTION_USB_HID_VOLUP, BUTTON_VOL_UP, BUTTON_NONE }, | 172 | { ACTION_USB_HID_INC, BUTTON_VOL_UP, BUTTON_NONE }, |
173 | { ACTION_USB_HID_VOLUP, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, | 173 | { ACTION_USB_HID_INC, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, |
174 | { ACTION_USB_HID_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE }, | 174 | { ACTION_USB_HID_DEC, BUTTON_VOL_DOWN, BUTTON_NONE }, |
175 | { ACTION_USB_HID_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | 175 | { ACTION_USB_HID_DEC, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, |
176 | { ACTION_USB_HID_MUTE, BUTTON_POWER, BUTTON_NONE }, | 176 | { ACTION_USB_HID_QUIT, BUTTON_POWER|BUTTON_REPEAT, BUTTON_SELECT }, |
177 | { ACTION_USB_HID_MENU, BUTTON_MENU, BUTTON_NONE }, | 177 | { ACTION_USB_HID_SELECT, BUTTON_POWER|BUTTON_REL, BUTTON_SELECT }, |
178 | { ACTION_USB_HID_MENU, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU }, | ||
179 | { ACTION_USB_HID_MODE, BUTTON_MENU|BUTTON_REL, BUTTON_MENU }, | ||
178 | 180 | ||
179 | LAST_ITEM_IN_LIST | 181 | LAST_ITEM_IN_LIST |
180 | }; /* button_context_usb_hid */ | 182 | }; /* button_context_usb_hid */ |
diff --git a/apps/keymaps/keymap-ondavx777.c b/apps/keymaps/keymap-ondavx777.c index 99f509b18f..f492a1964f 100644 --- a/apps/keymaps/keymap-ondavx777.c +++ b/apps/keymaps/keymap-ondavx777.c | |||
@@ -110,7 +110,7 @@ static const struct button_mapping button_context_keyboard[] = { | |||
110 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | 110 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) |
111 | }; /* button_context_keyboard */ | 111 | }; /* button_context_keyboard */ |
112 | 112 | ||
113 | #ifdef HAVE_USBSTACK | 113 | #ifdef USB_ENABLE_HID |
114 | static const struct button_mapping button_context_usb_hid[] = { | 114 | static const struct button_mapping button_context_usb_hid[] = { |
115 | LAST_ITEM_IN_LIST | 115 | LAST_ITEM_IN_LIST |
116 | }; /* button_context_usb_hid */ | 116 | }; /* button_context_usb_hid */ |
@@ -162,7 +162,7 @@ const struct button_mapping* target_get_context_mapping(int context) | |||
162 | return button_context_pitchscreen; | 162 | return button_context_pitchscreen; |
163 | case CONTEXT_KEYBOARD: | 163 | case CONTEXT_KEYBOARD: |
164 | return button_context_keyboard; | 164 | return button_context_keyboard; |
165 | #ifdef HAVE_USBSTACK | 165 | #ifdef USB_ENABLE_HID |
166 | case CONTEXT_USB_HID: | 166 | case CONTEXT_USB_HID: |
167 | return button_context_usb_hid; | 167 | return button_context_usb_hid; |
168 | #endif | 168 | #endif |
diff --git a/apps/keymaps/keymap-sa9200.c b/apps/keymaps/keymap-sa9200.c index 3e83932347..cb9c746cf3 100644 --- a/apps/keymaps/keymap-sa9200.c +++ b/apps/keymaps/keymap-sa9200.c | |||
@@ -276,30 +276,66 @@ static const struct button_mapping button_context_keyboard[] = { | |||
276 | LAST_ITEM_IN_LIST | 276 | LAST_ITEM_IN_LIST |
277 | }; /* button_context_keyboard */ | 277 | }; /* button_context_keyboard */ |
278 | 278 | ||
279 | #ifdef HAVE_USBSTACK | 279 | #ifdef USB_ENABLE_HID |
280 | static const struct button_mapping button_context_usb_hid[] = { | 280 | static const struct button_mapping button_context_usb_hid[] = { |
281 | { ACTION_USB_HID_PLAY, BUTTON_PLAY, BUTTON_NONE }, | 281 | { ACTION_USB_HID_INC, BUTTON_UP, BUTTON_NONE }, |
282 | { ACTION_USB_HID_STOP, BUTTON_PREV, BUTTON_NONE }, | 282 | { ACTION_USB_HID_INC, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, |
283 | { ACTION_USB_HID_STOP, BUTTON_POWER, BUTTON_NONE }, | 283 | { ACTION_USB_HID_INC, BUTTON_VOL_UP, BUTTON_NONE }, |
284 | 284 | { ACTION_USB_HID_INC, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, | |
285 | { ACTION_USB_HID_SKIPPREV, BUTTON_LEFT, BUTTON_NONE }, | 285 | { ACTION_USB_HID_DEC, BUTTON_DOWN, BUTTON_NONE }, |
286 | { ACTION_USB_HID_SKIPNEXT, BUTTON_RIGHT, BUTTON_NONE }, | 286 | { ACTION_USB_HID_DEC, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, |
287 | 287 | { ACTION_USB_HID_DEC, BUTTON_VOL_DOWN, BUTTON_NONE }, | |
288 | { ACTION_USB_HID_VOLUP, BUTTON_UP, BUTTON_NONE }, | 288 | { ACTION_USB_HID_DEC, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, |
289 | { ACTION_USB_HID_VOLUP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | 289 | { ACTION_USB_HID_START, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY }, |
290 | { ACTION_USB_HID_VOLUP, BUTTON_VOL_UP, BUTTON_NONE }, | 290 | { ACTION_USB_HID_START_LONG, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY }, |
291 | { ACTION_USB_HID_VOLUP, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, | 291 | { ACTION_USB_HID_QUIT, BUTTON_PREV|BUTTON_REL, BUTTON_PREV }, |
292 | 292 | { ACTION_USB_HID_QUIT_LONG, BUTTON_PREV|BUTTON_REPEAT, BUTTON_PREV }, | |
293 | { ACTION_USB_HID_VOLDOWN, BUTTON_DOWN, BUTTON_NONE }, | 293 | { ACTION_USB_HID_LEFT, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT }, |
294 | { ACTION_USB_HID_VOLDOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | 294 | { ACTION_USB_HID_LEFT_LONG, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_LEFT }, |
295 | { ACTION_USB_HID_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE }, | 295 | { ACTION_USB_HID_RIGHT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT }, |
296 | { ACTION_USB_HID_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | 296 | { ACTION_USB_HID_RIGHT_LONG, BUTTON_RIGHT|BUTTON_REPEAT BUTTON_RIGHT }, |
297 | 297 | { ACTION_USB_HID_SELECT, BUTTON_NEXT|BUTTON_REL, BUTTON_NEXT }, | |
298 | { ACTION_USB_HID_MUTE, BUTTON_NEXT, BUTTON_NONE }, | 298 | { ACTION_USB_HID_SELECT_LONG, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NEXT }, |
299 | { ACTION_USB_HID_MENU, BUTTON_MENU, BUTTON_NONE }, | 299 | { ACTION_USB_HID_MENU, BUTTON_MENU|BUTTON_REL, BUTTON_MENU }, |
300 | { ACTION_USB_HID_MENU_LONG, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU }, | ||
301 | { ACTION_USB_HID_MODE, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, | ||
302 | { ACTION_USB_HID_MODE_LONG, BUTTON_POWER|BUTTON_REPEAT, BUTTON_POWER }, | ||
300 | 303 | ||
301 | LAST_ITEM_IN_LIST | 304 | LAST_ITEM_IN_LIST |
302 | }; /* button_context_usb_hid */ | 305 | }; /* button_context_usb_hid */ |
306 | |||
307 | static const struct button_mapping button_context_usb_hid_mouse[] = { | ||
308 | { ACTION_USB_HID_MOUSE_UP, BUTTON_UP, BUTTON_NONE }, | ||
309 | { ACTION_USB_HID_MOUSE_UP_REP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
310 | { ACTION_USB_HID_MOUSE_DOWN, BUTTON_DOWN, BUTTON_NONE }, | ||
311 | { ACTION_USB_HID_MOUSE_DOWN_REP, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
312 | { ACTION_USB_HID_MOUSE_LEFT, BUTTON_LEFT, BUTTON_NONE }, | ||
313 | { ACTION_USB_HID_MOUSE_LEFT_REP, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
314 | { ACTION_USB_HID_MOUSE_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, | ||
315 | { ACTION_USB_HID_MOUSE_RIGHT_REP, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
316 | { ACTION_USB_HID_MOUSE_LDRAG_UP, BUTTON_PREV|BUTTON_UP, BUTTON_NONE }, | ||
317 | { ACTION_USB_HID_MOUSE_LDRAG_UP_REP, BUTTON_PREV|BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
318 | { ACTION_USB_HID_MOUSE_LDRAG_DOWN, BUTTON_PREV|BUTTON_DOWN, BUTTON_NONE }, | ||
319 | { ACTION_USB_HID_MOUSE_LDRAG_DOWN_REP, BUTTON_PREV|BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
320 | { ACTION_USB_HID_MOUSE_LDRAG_LEFT, BUTTON_PREV|BUTTON_LEFT, BUTTON_NONE }, | ||
321 | { ACTION_USB_HID_MOUSE_LDRAG_LEFT_REP, BUTTON_PREV|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
322 | { ACTION_USB_HID_MOUSE_LDRAG_RIGHT, BUTTON_PREV|BUTTON_RIGHT, BUTTON_NONE }, | ||
323 | { ACTION_USB_HID_MOUSE_LDRAG_RIGHT_REP, BUTTON_PREV|BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
324 | { ACTION_USB_HID_MOUSE_RDRAG_UP, BUTTON_NEXT|BUTTON_UP, BUTTON_NONE }, | ||
325 | { ACTION_USB_HID_MOUSE_RDRAG_UP_REP, BUTTON_NEXT|BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
326 | { ACTION_USB_HID_MOUSE_RDRAG_DOWN, BUTTON_NEXT|BUTTON_DOWN, BUTTON_NONE }, | ||
327 | { ACTION_USB_HID_MOUSE_RDRAG_DOWN_REP, BUTTON_NEXT|BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
328 | { ACTION_USB_HID_MOUSE_RDRAG_LEFT, BUTTON_NEXT|BUTTON_LEFT, BUTTON_NONE }, | ||
329 | { ACTION_USB_HID_MOUSE_RDRAG_LEFT_REP, BUTTON_NEXT|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
330 | { ACTION_USB_HID_MOUSE_RDRAG_RIGHT, BUTTON_NEXT|BUTTON_RIGHT, BUTTON_NONE }, | ||
331 | { ACTION_USB_HID_MOUSE_RDRAG_RIGHT_REP, BUTTON_NEXT|BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
332 | { ACTION_USB_HID_MOUSE_BUTTON_LEFT, BUTTON_PREV, BUTTON_NONE }, | ||
333 | { ACTION_USB_HID_MOUSE_BUTTON_LEFT_REL, BUTTON_PREV|BUTTON_REL, BUTTON_NONE }, | ||
334 | { ACTION_USB_HID_MOUSE_BUTTON_RIGHT, BUTTON_NEXT, BUTTON_NONE }, | ||
335 | { ACTION_USB_HID_MOUSE_BUTTON_RIGHT_REL, BUTTON_NEXT|BUTTON_REL, BUTTON_NONE }, | ||
336 | |||
337 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_USB_HID) | ||
338 | }; /* button_context_usb_hid_mouse */ | ||
303 | #endif | 339 | #endif |
304 | 340 | ||
305 | const struct button_mapping* get_context_mapping(int context) | 341 | const struct button_mapping* get_context_mapping(int context) |
@@ -349,9 +385,11 @@ const struct button_mapping* get_context_mapping(int context) | |||
349 | case CONTEXT_KEYBOARD: | 385 | case CONTEXT_KEYBOARD: |
350 | return button_context_keyboard; | 386 | return button_context_keyboard; |
351 | 387 | ||
352 | #ifdef HAVE_USBSTACK | 388 | #ifdef USB_ENABLE_HID |
353 | case CONTEXT_USB_HID: | 389 | case CONTEXT_USB_HID: |
354 | return button_context_usb_hid; | 390 | return button_context_usb_hid; |
391 | case CONTEXT_USB_HID_MOUSE: | ||
392 | return button_context_usb_hid_mouse; | ||
355 | #endif | 393 | #endif |
356 | } | 394 | } |
357 | return button_context_standard; | 395 | return button_context_standard; |
diff --git a/apps/keymaps/keymap-touchscreen.c b/apps/keymaps/keymap-touchscreen.c index 4b86efa29e..499eb2b562 100644 --- a/apps/keymaps/keymap-touchscreen.c +++ b/apps/keymaps/keymap-touchscreen.c | |||
@@ -251,13 +251,26 @@ static const struct button_mapping button_context_radio[] = { | |||
251 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM2|CONTEXT_FM) | 251 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM2|CONTEXT_FM) |
252 | }; /* button_context_radio */ | 252 | }; /* button_context_radio */ |
253 | 253 | ||
254 | #ifdef HAVE_USBSTACK | 254 | #ifdef USB_ENABLE_HID |
255 | static const struct button_mapping button_context_usb_hid[] = { | 255 | static const struct button_mapping button_context_usb_hid[] = { |
256 | { ACTION_USB_HID_PLAY, BUTTON_TOPRIGHT, BUTTON_NONE }, | 256 | { ACTION_USB_HID_INC, BUTTON_BOTTOMRIGHT|BUTTON_REL, BUTTON_BOTTOMRIGHT }, |
257 | { ACTION_USB_HID_SKIPPREV, BUTTON_MIDLEFT, BUTTON_NONE }, | 257 | { ACTION_USB_HID_INC, BUTTON_BOTTOMRIGHT|BUTTON_REPEAT, BUTTON_BOTTOMRIGHT }, |
258 | { ACTION_USB_HID_SKIPNEXT, BUTTON_MIDRIGHT, BUTTON_NONE }, | 258 | { ACTION_USB_HID_DEC, BUTTON_BOTTOMMIDDLE|BUTTON_REL, BUTTON_BOTTOMMIDDLE }, |
259 | { ACTION_USB_HID_MUTE, BUTTON_CENTER, BUTTON_NONE }, | 259 | { ACTION_USB_HID_DEC, BUTTON_BOTTOMMIDDLE|BUTTON_REPEAT, BUTTON_BOTTOMMIDDLE }, |
260 | { ACTION_USB_HID_MENU, BUTTON_TOPLEFT, BUTTON_NONE }, | 260 | { ACTION_USB_HID_START, BUTTON_TOPMIDDLE|BUTTON_REL, BUTTON_TOPMIDDLE }, |
261 | { ACTION_USB_HID_START_LONG, BUTTON_TOPMIDDLE|BUTTON_REPEAT, BUTTON_TOPMIDDLE }, | ||
262 | { ACTION_USB_HID_QUIT, BUTTON_BOTTOMLEFT|BUTTON_REL, BUTTON_BOTTOMLEFT }, | ||
263 | { ACTION_USB_HID_QUIT_LONG, BUTTON_BOTTOMLEFT|BUTTON_REPEAT, BUTTON_BOTTOMLEFT }, | ||
264 | { ACTION_USB_HID_LEFT, BUTTON_MIDLEFT|BUTTON_REL, BUTTON_MIDLEFT }, | ||
265 | { ACTION_USB_HID_LEFT_LONG, BUTTON_MIDLEFT|BUTTON_REPEAT, BUTTON_MIDLEFT }, | ||
266 | { ACTION_USB_HID_RIGHT, BUTTON_MIDRIGHT|BUTTON_REL, BUTTON_MIDRIGHT }, | ||
267 | { ACTION_USB_HID_RIGHT_LONG, BUTTON_MIDRIGHT|BUTTON_REPEAT, BUTTON_MIDRIGHT }, | ||
268 | { ACTION_USB_HID_SELECT, BUTTON_CENTER|BUTTON_REL, BUTTON_CENTER }, | ||
269 | { ACTION_USB_HID_SELECT_LONG, BUTTON_CENTER|BUTTON_REPEAT, BUTTON_CENTER }, | ||
270 | { ACTION_USB_HID_MENU, BUTTON_TOPRIGHT|BUTTON_REL, BUTTON_TOPRIGHT }, | ||
271 | { ACTION_USB_HID_MENU_LONG, BUTTON_TOPRIGHT|BUTTON_REPEAT, BUTTON_TOPRIGHT }, | ||
272 | { ACTION_USB_HID_MODE, BUTTON_TOPLEFT|BUTTON_REL, BUTTON_TOPLEFT }, | ||
273 | { ACTION_USB_HID_MODE_LONG, BUTTON_TOPLEFT|BUTTON_REPEAT, BUTTON_TOPLEFT }, | ||
261 | 274 | ||
262 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM2|CONTEXT_USB_HID) | 275 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM2|CONTEXT_USB_HID) |
263 | }; /* button_context_usb_hid */ | 276 | }; /* button_context_usb_hid */ |
@@ -315,7 +328,7 @@ const struct button_mapping* get_context_mapping(int context) | |||
315 | return button_context_pitchscreen; | 328 | return button_context_pitchscreen; |
316 | case CONTEXT_KEYBOARD: | 329 | case CONTEXT_KEYBOARD: |
317 | return button_context_keyboard; | 330 | return button_context_keyboard; |
318 | #ifdef HAVE_USBSTACK | 331 | #ifdef USB_ENABLE_HID |
319 | case CONTEXT_USB_HID: | 332 | case CONTEXT_USB_HID: |
320 | return button_context_usb_hid; | 333 | return button_context_usb_hid; |
321 | #endif | 334 | #endif |
diff --git a/apps/lang/english.lang b/apps/lang/english.lang index 72e0a4ce90..541e7ffbe0 100644 --- a/apps/lang/english.lang +++ b/apps/lang/english.lang | |||
@@ -12654,6 +12654,76 @@ | |||
12654 | </voice> | 12654 | </voice> |
12655 | </phrase> | 12655 | </phrase> |
12656 | <phrase> | 12656 | <phrase> |
12657 | id: LANG_USB_KEYPAD_MODE | ||
12658 | desc: in settings_menu | ||
12659 | user: core | ||
12660 | <source> | ||
12661 | *: "USB Keypad Mode:" | ||
12662 | </source> | ||
12663 | <dest> | ||
12664 | *: "USB Keypad Mode:" | ||
12665 | </dest> | ||
12666 | <voice> | ||
12667 | *: "USB Keypad Mode" | ||
12668 | </voice> | ||
12669 | </phrase> | ||
12670 | <phrase> | ||
12671 | id: LANG_MULTIMEDIA | ||
12672 | desc: in settings_menu | ||
12673 | user: core | ||
12674 | <source> | ||
12675 | *: "Multimedia" | ||
12676 | </source> | ||
12677 | <dest> | ||
12678 | *: "Multimedia" | ||
12679 | </dest> | ||
12680 | <voice> | ||
12681 | *: "Multimedia" | ||
12682 | </voice> | ||
12683 | </phrase> | ||
12684 | <phrase> | ||
12685 | id: LANG_PRESENTATION | ||
12686 | desc: in settings_menu | ||
12687 | user: core | ||
12688 | <source> | ||
12689 | *: "Presentation" | ||
12690 | </source> | ||
12691 | <dest> | ||
12692 | *: "Presentation" | ||
12693 | </dest> | ||
12694 | <voice> | ||
12695 | *: "Presentation" | ||
12696 | </voice> | ||
12697 | </phrase> | ||
12698 | <phrase> | ||
12699 | id: LANG_BROWSER | ||
12700 | desc: in settings_menu | ||
12701 | user: core | ||
12702 | <source> | ||
12703 | *: "Browser" | ||
12704 | </source> | ||
12705 | <dest> | ||
12706 | *: "Browser" | ||
12707 | </dest> | ||
12708 | <voice> | ||
12709 | *: "Browser" | ||
12710 | </voice> | ||
12711 | </phrase> | ||
12712 | <phrase> | ||
12713 | id: LANG_MOUSE | ||
12714 | desc: in settings_menu | ||
12715 | user: core | ||
12716 | <source> | ||
12717 | *: "Mouse" | ||
12718 | </source> | ||
12719 | <dest> | ||
12720 | *: "Mouse" | ||
12721 | </dest> | ||
12722 | <voice> | ||
12723 | *: "Mouse" | ||
12724 | </voice> | ||
12725 | </phrase> | ||
12726 | <phrase> | ||
12657 | id: LANG_SKIN_RAM_USAGE | 12727 | id: LANG_SKIN_RAM_USAGE |
12658 | desc: how much RAM the skins are using | 12728 | desc: how much RAM the skins are using |
12659 | user: core | 12729 | user: core |
diff --git a/apps/menus/settings_menu.c b/apps/menus/settings_menu.c index fdc775877a..71a6089e68 100644 --- a/apps/menus/settings_menu.c +++ b/apps/menus/settings_menu.c | |||
@@ -252,6 +252,9 @@ MENUITEM_SETTING(serial_bitrate, &global_settings.serial_bitrate, NULL); | |||
252 | MENUITEM_SETTING(accessory_supply, &global_settings.accessory_supply, NULL); | 252 | MENUITEM_SETTING(accessory_supply, &global_settings.accessory_supply, NULL); |
253 | #endif | 253 | #endif |
254 | MENUITEM_SETTING(start_screen, &global_settings.start_in_screen, NULL); | 254 | MENUITEM_SETTING(start_screen, &global_settings.start_in_screen, NULL); |
255 | #ifdef USB_ENABLE_HID | ||
256 | MENUITEM_SETTING(usb_keypad_mode, &global_settings.usb_keypad_mode, NULL); | ||
257 | #endif | ||
255 | 258 | ||
256 | #ifdef HAVE_BUTTON_LIGHT | 259 | #ifdef HAVE_BUTTON_LIGHT |
257 | MENUITEM_SETTING(buttonlight_timeout, &global_settings.buttonlight_timeout, NULL); | 260 | MENUITEM_SETTING(buttonlight_timeout, &global_settings.buttonlight_timeout, NULL); |
@@ -300,6 +303,9 @@ MAKE_MENU(system_menu, ID2P(LANG_SYSTEM), | |||
300 | #ifdef HAVE_TOUCHPAD_SENSITIVITY_SETTING | 303 | #ifdef HAVE_TOUCHPAD_SENSITIVITY_SETTING |
301 | &touchpad_sensitivity, | 304 | &touchpad_sensitivity, |
302 | #endif | 305 | #endif |
306 | #ifdef USB_ENABLE_HID | ||
307 | &usb_keypad_mode, | ||
308 | #endif | ||
303 | ); | 309 | ); |
304 | 310 | ||
305 | /* SYSTEM MENU */ | 311 | /* SYSTEM MENU */ |
diff --git a/apps/plugin.c b/apps/plugin.c index aa7077edae..945e99ec71 100644 --- a/apps/plugin.c +++ b/apps/plugin.c | |||
@@ -51,7 +51,7 @@ | |||
51 | #include "bidi.h" | 51 | #include "bidi.h" |
52 | #endif | 52 | #endif |
53 | 53 | ||
54 | #if defined(HAVE_USBSTACK) && defined(USB_ENABLE_HID) | 54 | #ifdef USB_ENABLE_HID |
55 | #include "usbstack/usb_hid.h" | 55 | #include "usbstack/usb_hid.h" |
56 | #endif | 56 | #endif |
57 | 57 | ||
@@ -367,7 +367,7 @@ static const struct plugin_api rockbox_api = { | |||
367 | queue_reply, | 367 | queue_reply, |
368 | #endif | 368 | #endif |
369 | usb_acknowledge, | 369 | usb_acknowledge, |
370 | #if defined(HAVE_USBSTACK) && defined(USB_ENABLE_HID) | 370 | #ifdef USB_ENABLE_HID |
371 | usb_hid_send, | 371 | usb_hid_send, |
372 | #endif | 372 | #endif |
373 | #ifdef RB_PROFILE | 373 | #ifdef RB_PROFILE |
diff --git a/apps/plugin.h b/apps/plugin.h index b4a6b4fc1b..766a309c01 100644 --- a/apps/plugin.h +++ b/apps/plugin.h | |||
@@ -105,7 +105,7 @@ void* plugin_get_buffer(size_t *buffer_size); | |||
105 | 105 | ||
106 | #include "yesno.h" | 106 | #include "yesno.h" |
107 | 107 | ||
108 | #if defined(HAVE_USBSTACK) && defined(USB_ENABLE_HID) | 108 | #ifdef USB_ENABLE_HID |
109 | #include "usbstack/usb_hid_usage_tables.h" | 109 | #include "usbstack/usb_hid_usage_tables.h" |
110 | #endif | 110 | #endif |
111 | 111 | ||
@@ -491,7 +491,7 @@ struct plugin_api { | |||
491 | #endif /* CONFIG_CODEC == SWCODEC */ | 491 | #endif /* CONFIG_CODEC == SWCODEC */ |
492 | 492 | ||
493 | void (*usb_acknowledge)(long id); | 493 | void (*usb_acknowledge)(long id); |
494 | #if defined(HAVE_USBSTACK) && defined(USB_ENABLE_HID) | 494 | #ifdef USB_ENABLE_HID |
495 | void (*usb_hid_send)(usage_page_t usage_page, int id); | 495 | void (*usb_hid_send)(usage_page_t usage_page, int id); |
496 | #endif | 496 | #endif |
497 | #ifdef RB_PROFILE | 497 | #ifdef RB_PROFILE |
diff --git a/apps/plugins/SOURCES b/apps/plugins/SOURCES index b9061ee74b..4cfc3a8b0f 100644 --- a/apps/plugins/SOURCES +++ b/apps/plugins/SOURCES | |||
@@ -169,6 +169,6 @@ md5sum.c | |||
169 | lua.c | 169 | lua.c |
170 | #endif | 170 | #endif |
171 | 171 | ||
172 | #if defined(HAVE_USBSTACK) && defined(USB_ENABLE_HID) | 172 | #ifdef USB_ENABLE_HID |
173 | remote_control.c | 173 | remote_control.c |
174 | #endif | 174 | #endif |
diff --git a/apps/screens.c b/apps/screens.c index a7a4b27ea8..65b64eab3e 100644 --- a/apps/screens.c +++ b/apps/screens.c | |||
@@ -37,7 +37,7 @@ | |||
37 | #if defined(HAVE_USBSTACK) | 37 | #if defined(HAVE_USBSTACK) |
38 | #include "usb_core.h" | 38 | #include "usb_core.h" |
39 | #ifdef USB_ENABLE_HID | 39 | #ifdef USB_ENABLE_HID |
40 | #include "usbstack/usb_hid.h" | 40 | #include "usb_keymaps.h" |
41 | #endif | 41 | #endif |
42 | #endif | 42 | #endif |
43 | #include "settings.h" | 43 | #include "settings.h" |
@@ -93,59 +93,32 @@ static int clamp_value_wrap(int value, int max, int min) | |||
93 | #endif | 93 | #endif |
94 | 94 | ||
95 | #ifndef SIMULATOR | 95 | #ifndef SIMULATOR |
96 | |||
97 | #ifdef USB_ENABLE_HID | ||
98 | int usb_keypad_mode; | ||
99 | #endif | ||
100 | |||
96 | static int handle_usb_events(void) | 101 | static int handle_usb_events(void) |
97 | { | 102 | { |
98 | #if (CONFIG_STORAGE & STORAGE_MMC) | 103 | #if (CONFIG_STORAGE & STORAGE_MMC) |
99 | int next_update=0; | 104 | int next_update=0; |
100 | #endif /* STORAGE_MMC */ | 105 | #endif /* STORAGE_MMC */ |
101 | 106 | ||
102 | #ifdef HAVE_TOUCHSCREEN | ||
103 | enum touchscreen_mode old_mode = touchscreen_get_mode(); | ||
104 | |||
105 | /* TODO: Paint buttons on screens OR switch to point mode and use | ||
106 | * touchscreen as a touchpad to move the host's mouse cursor */ | ||
107 | touchscreen_set_mode(TOUCHSCREEN_BUTTON); | ||
108 | #endif | ||
109 | |||
110 | /* Don't return until we get SYS_USB_DISCONNECTED or SYS_TIMEOUT */ | 107 | /* Don't return until we get SYS_USB_DISCONNECTED or SYS_TIMEOUT */ |
111 | while(1) | 108 | while(1) |
112 | { | 109 | { |
113 | int button; | 110 | int button; |
114 | #if defined(HAVE_USBSTACK) && defined(USB_ENABLE_HID) | 111 | #ifdef USB_ENABLE_HID |
115 | bool hid_enabled = usb_core_driver_enabled(USB_DRIVER_HID); | 112 | if (usb_core_driver_enabled(USB_DRIVER_HID)) |
116 | |||
117 | if (hid_enabled) | ||
118 | { | 113 | { |
119 | int id = HID_CONSUMER_USAGE_UNASSIGNED; | 114 | button = get_hid_usb_action(); |
120 | button = get_action(CONTEXT_USB_HID, HZ/2); | ||
121 | 115 | ||
122 | switch (button) | 116 | /* On mode change, we need to refresh the screen */ |
117 | if (button == ACTION_USB_HID_MODE || | ||
118 | button == ACTION_USB_HID_MODE_LONG) | ||
123 | { | 119 | { |
124 | case ACTION_USB_HID_PLAY: | 120 | break; |
125 | id = HID_CONSUMER_USAGE_PLAY_PAUSE; | ||
126 | break; | ||
127 | case ACTION_USB_HID_STOP: | ||
128 | id = HID_CONSUMER_USAGE_STOP; | ||
129 | break; | ||
130 | case ACTION_USB_HID_SKIPPREV: | ||
131 | id = HID_CONSUMER_USAGE_SCAN_PREVIOUS_TRACK; | ||
132 | break; | ||
133 | case ACTION_USB_HID_SKIPNEXT: | ||
134 | id = HID_CONSUMER_USAGE_SCAN_NEXT_TRACK; | ||
135 | break; | ||
136 | case ACTION_USB_HID_VOLDOWN: | ||
137 | id = HID_CONSUMER_USAGE_VOLUME_DECREMENT; | ||
138 | break; | ||
139 | case ACTION_USB_HID_VOLUP: | ||
140 | id = HID_CONSUMER_USAGE_VOLUME_INCREMENT; | ||
141 | break; | ||
142 | case ACTION_USB_HID_MUTE: | ||
143 | id = HID_CONSUMER_USAGE_MUTE; | ||
144 | break; | ||
145 | } | 121 | } |
146 | |||
147 | if (id != HID_CONSUMER_USAGE_UNASSIGNED) | ||
148 | usb_hid_send(HID_USAGE_PAGE_CONSUMER, id); | ||
149 | } | 122 | } |
150 | else | 123 | else |
151 | #endif | 124 | #endif |
@@ -159,7 +132,7 @@ static int handle_usb_events(void) | |||
159 | { | 132 | { |
160 | case SYS_USB_DISCONNECTED: | 133 | case SYS_USB_DISCONNECTED: |
161 | usb_acknowledge(SYS_USB_DISCONNECTED_ACK); | 134 | usb_acknowledge(SYS_USB_DISCONNECTED_ACK); |
162 | goto Exit; | 135 | return 1; |
163 | case SYS_TIMEOUT: | 136 | case SYS_TIMEOUT: |
164 | break; | 137 | break; |
165 | } | 138 | } |
@@ -174,14 +147,12 @@ static int handle_usb_events(void) | |||
174 | } | 147 | } |
175 | #endif /* STORAGE_MMC */ | 148 | #endif /* STORAGE_MMC */ |
176 | } | 149 | } |
177 | Exit: | 150 | |
178 | #ifdef HAVE_TOUCHSCREEN | ||
179 | touchscreen_set_mode(old_mode); | ||
180 | #endif | ||
181 | return 0; | 151 | return 0; |
182 | } | 152 | } |
183 | #endif | 153 | #endif |
184 | 154 | ||
155 | #define MODE_NAME_LEN 32 | ||
185 | void usb_screen(void) | 156 | void usb_screen(void) |
186 | { | 157 | { |
187 | #ifdef USB_NONE | 158 | #ifdef USB_NONE |
@@ -190,55 +161,107 @@ void usb_screen(void) | |||
190 | int i; | 161 | int i; |
191 | int usb_bars = VP_SB_ALLSCREENS; /* force statusbars */ | 162 | int usb_bars = VP_SB_ALLSCREENS; /* force statusbars */ |
192 | int old_bars = viewportmanager_get_statusbar(); | 163 | int old_bars = viewportmanager_get_statusbar(); |
164 | #if defined HAVE_TOUCHSCREEN | ||
165 | enum touchscreen_mode old_mode = touchscreen_get_mode(); | ||
193 | 166 | ||
194 | FOR_NB_SCREENS(i) | 167 | /* TODO: Paint buttons on screens OR switch to point mode and use |
168 | * touchscreen as a touchpad to move the host's mouse cursor */ | ||
169 | touchscreen_set_mode(TOUCHSCREEN_BUTTON); | ||
170 | #endif | ||
171 | |||
172 | #ifndef SIMULATOR | ||
173 | usb_acknowledge(SYS_USB_CONNECTED_ACK); | ||
174 | #endif | ||
175 | |||
176 | #ifdef USB_ENABLE_HID | ||
177 | usb_keypad_mode = global_settings.usb_keypad_mode; | ||
178 | #endif | ||
179 | |||
180 | while (1) | ||
195 | { | 181 | { |
196 | screens[i].backdrop_show(BACKDROP_MAIN); | 182 | FOR_NB_SCREENS(i) |
197 | screens[i].backlight_on(); | ||
198 | screens[i].clear_display(); | ||
199 | #ifdef HAVE_REMOTE_LCD | ||
200 | if (i == SCREEN_REMOTE) | ||
201 | { | 183 | { |
202 | screens[i].bitmap(remote_usblogo, | 184 | screens[i].backdrop_show(BACKDROP_MAIN); |
203 | (LCD_REMOTE_WIDTH-BMPWIDTH_remote_usblogo), | 185 | screens[i].backlight_on(); |
204 | (LCD_REMOTE_HEIGHT-BMPHEIGHT_remote_usblogo)/2, | 186 | screens[i].clear_display(); |
205 | BMPWIDTH_remote_usblogo, BMPHEIGHT_remote_usblogo); | 187 | #ifdef HAVE_REMOTE_LCD |
206 | } | 188 | if (i == SCREEN_REMOTE) |
207 | else | 189 | { |
190 | screens[i].bitmap(remote_usblogo, | ||
191 | (LCD_REMOTE_WIDTH-BMPWIDTH_remote_usblogo), | ||
192 | (LCD_REMOTE_HEIGHT-BMPHEIGHT_remote_usblogo)/2, | ||
193 | BMPWIDTH_remote_usblogo, BMPHEIGHT_remote_usblogo); | ||
194 | } | ||
195 | else | ||
208 | #endif | 196 | #endif |
209 | { | 197 | { |
198 | char mode_name[MODE_NAME_LEN]; | ||
199 | |||
210 | #ifdef HAVE_LCD_BITMAP | 200 | #ifdef HAVE_LCD_BITMAP |
211 | screens[i].transparent_bitmap(usblogo, | 201 | screens[i].transparent_bitmap(usblogo, |
212 | (LCD_WIDTH-BMPWIDTH_usblogo), | 202 | (LCD_WIDTH-BMPWIDTH_usblogo), |
213 | (LCD_HEIGHT-BMPHEIGHT_usblogo)/2, | 203 | (LCD_HEIGHT-BMPHEIGHT_usblogo)/2, |
214 | BMPWIDTH_usblogo, BMPHEIGHT_usblogo); | 204 | BMPWIDTH_usblogo, BMPHEIGHT_usblogo); |
205 | |||
206 | #ifdef USB_ENABLE_HID | ||
207 | int y, w, h; | ||
208 | |||
209 | screens[i].getstringsize(str(LANG_USB_KEYPAD_MODE), &w, &h); | ||
210 | |||
211 | y = (LCD_HEIGHT - BMPHEIGHT_usblogo) / 2 + BMPHEIGHT_usblogo + h; | ||
212 | screens[i].putsxy((LCD_WIDTH - w) / 2, y, | ||
213 | str(LANG_USB_KEYPAD_MODE)); | ||
214 | y += 3 * h / 2; | ||
215 | |||
216 | snprintf(mode_name, MODE_NAME_LEN, "%s", | ||
217 | str(keypad_mode_name_get())); | ||
218 | screens[i].getstringsize(mode_name, &w, &h); | ||
219 | screens[i].putsxy((LCD_WIDTH - w) / 2, y, mode_name); | ||
220 | #endif /* HID */ | ||
221 | #else /* HAVE_LCD_BITMAP */ | ||
222 | screens[i].double_height(false); | ||
223 | #ifdef USB_ENABLE_HID | ||
224 | snprintf(mode_name, MODE_NAME_LEN, "[USB Mode; %s]", | ||
225 | str(keypad_mode_name_get())); | ||
226 | screens[i].puts_scroll(0, 0, mode_name); | ||
215 | #else | 227 | #else |
216 | screens[i].double_height(false); | 228 | screens[i].puts_scroll(0, 0, "[USB Mode]"); |
217 | screens[i].puts_scroll(0, 0, "[USB Mode]"); | 229 | #endif |
218 | status_set_param(false); | 230 | status_set_param(false); |
219 | status_set_audio(false); | 231 | status_set_audio(false); |
220 | status_set_usb(true); | 232 | status_set_usb(true); |
221 | #endif /* HAVE_LCD_BITMAP */ | 233 | #endif /* HAVE_LCD_BITMAP */ |
222 | } | 234 | } |
223 | screens[i].update(); | 235 | screens[i].update(); |
224 | 236 | ||
225 | /* force statusbar by ignoring the setting */ | 237 | /* force statusbar by ignoring the setting */ |
226 | usb_bars |= VP_SB_IGNORE_SETTING(i); | 238 | usb_bars |= VP_SB_IGNORE_SETTING(i); |
227 | } | 239 | } |
228 | 240 | ||
229 | viewportmanager_set_statusbar(usb_bars); | 241 | viewportmanager_set_statusbar(usb_bars); |
230 | 242 | ||
231 | #ifdef SIMULATOR | 243 | #ifdef SIMULATOR |
232 | while (1) | ||
233 | { | ||
234 | if (button_get_w_tmo(HZ/2)) | 244 | if (button_get_w_tmo(HZ/2)) |
235 | break; | 245 | break; |
236 | send_event(GUI_EVENT_ACTIONUPDATE, NULL); | 246 | send_event(GUI_EVENT_ACTIONUPDATE, NULL); |
237 | } | ||
238 | #else | 247 | #else |
239 | usb_acknowledge(SYS_USB_CONNECTED_ACK); | 248 | if (handle_usb_events()) |
240 | while (handle_usb_events()); | 249 | break; |
241 | #endif /* SIMULATOR */ | 250 | #endif /* SIMULATOR */ |
251 | } | ||
252 | |||
253 | #ifdef USB_ENABLE_HID | ||
254 | if (global_settings.usb_keypad_mode != usb_keypad_mode) | ||
255 | { | ||
256 | global_settings.usb_keypad_mode = usb_keypad_mode; | ||
257 | settings_save(); | ||
258 | } | ||
259 | #endif | ||
260 | |||
261 | #ifdef HAVE_TOUCHSCREEN | ||
262 | touchscreen_set_mode(old_mode); | ||
263 | #endif | ||
264 | |||
242 | #ifdef HAVE_LCD_CHARCELLS | 265 | #ifdef HAVE_LCD_CHARCELLS |
243 | status_set_usb(false); | 266 | status_set_usb(false); |
244 | #endif /* HAVE_LCD_CHARCELLS */ | 267 | #endif /* HAVE_LCD_CHARCELLS */ |
@@ -248,7 +271,7 @@ void usb_screen(void) | |||
248 | } | 271 | } |
249 | viewportmanager_set_statusbar(old_bars); | 272 | viewportmanager_set_statusbar(old_bars); |
250 | send_event(GUI_EVENT_REFRESH, NULL); | 273 | send_event(GUI_EVENT_REFRESH, NULL); |
251 | 274 | ||
252 | #endif /* USB_NONE */ | 275 | #endif /* USB_NONE */ |
253 | } | 276 | } |
254 | 277 | ||
diff --git a/apps/settings.h b/apps/settings.h index ec92a81734..b208ee5872 100644 --- a/apps/settings.h +++ b/apps/settings.h | |||
@@ -768,7 +768,11 @@ struct user_settings | |||
768 | /* If values are just added to the end, no need to bump plugin API | 768 | /* If values are just added to the end, no need to bump plugin API |
769 | version. */ | 769 | version. */ |
770 | /* new stuff to be added at the end */ | 770 | /* new stuff to be added at the end */ |
771 | 771 | ||
772 | #ifdef USB_ENABLE_HID | ||
773 | int usb_keypad_mode; | ||
774 | #endif | ||
775 | |||
772 | #ifdef HAVE_LCD_BITMAP | 776 | #ifdef HAVE_LCD_BITMAP |
773 | unsigned char ui_vp_config[64]; /* viewport string for the lists */ | 777 | unsigned char ui_vp_config[64]; /* viewport string for the lists */ |
774 | #ifdef HAVE_REMOTE_LCD | 778 | #ifdef HAVE_REMOTE_LCD |
diff --git a/apps/settings_list.c b/apps/settings_list.c index 2e3632b949..34e8854421 100644 --- a/apps/settings_list.c +++ b/apps/settings_list.c | |||
@@ -1613,6 +1613,13 @@ const struct settings_list settings[] = { | |||
1613 | #endif | 1613 | #endif |
1614 | #endif | 1614 | #endif |
1615 | 1615 | ||
1616 | #ifdef USB_ENABLE_HID | ||
1617 | CHOICE_SETTING(0, usb_keypad_mode, LANG_USB_KEYPAD_MODE, 0, | ||
1618 | "usb keypad mode", "multimedia,presentation,browser,mouse", | ||
1619 | NULL, 3, ID2P(LANG_MULTIMEDIA), ID2P(LANG_PRESENTATION), | ||
1620 | ID2P(LANG_BROWSER), ID2P(LANG_MOUSE)), | ||
1621 | #endif | ||
1622 | |||
1616 | /* Customizable list */ | 1623 | /* Customizable list */ |
1617 | #ifdef HAVE_LCD_BITMAP | 1624 | #ifdef HAVE_LCD_BITMAP |
1618 | VIEWPORT_SETTING(ui_vp_config, "ui viewport"), | 1625 | VIEWPORT_SETTING(ui_vp_config, "ui viewport"), |
diff --git a/apps/usb_keymaps.c b/apps/usb_keymaps.c new file mode 100644 index 0000000000..c791b11b25 --- /dev/null +++ b/apps/usb_keymaps.c | |||
@@ -0,0 +1,249 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2009 Tomer Shalev | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or | ||
13 | * modify it under the terms of the GNU General Public License | ||
14 | * as published by the Free Software Foundation; either version 2 | ||
15 | * of the License, or (at your option) any later version. | ||
16 | * | ||
17 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
18 | * KIND, either express or implied. | ||
19 | * | ||
20 | ****************************************************************************/ | ||
21 | #include "config.h" | ||
22 | |||
23 | #ifdef USB_ENABLE_HID | ||
24 | #include "action.h" | ||
25 | #include "lang.h" | ||
26 | #include "usbstack/usb_hid.h" | ||
27 | //#define LOGF_ENABLE | ||
28 | #include "logf.h" | ||
29 | |||
30 | #define MODIFIER(modifier, key) ((key) | (modifier << 8)) | ||
31 | |||
32 | #define ALT(key) MODIFIER(HID_KEYBOARD_LEFT_ALT, key) | ||
33 | #define CTRL(key) MODIFIER(HID_KEYBOARD_LEFT_CONTROL, key) | ||
34 | #define SHIFT(key) MODIFIER(HID_KEYBOARD_LEFT_SHIFT, key) | ||
35 | |||
36 | #define NUM_KEY_MAPPINGS (sizeof(hid_key_mappings) / \ | ||
37 | sizeof(hid_key_mappings[0])) | ||
38 | |||
39 | typedef struct | ||
40 | { | ||
41 | int action; | ||
42 | int id; | ||
43 | } mapping_t; | ||
44 | |||
45 | typedef struct | ||
46 | { | ||
47 | int lang_name; | ||
48 | usage_page_t usage_page; | ||
49 | mapping_t mapping[]; | ||
50 | } hid_key_mapping_t; | ||
51 | |||
52 | static const hid_key_mapping_t hid_key_mapping_multimedia = { | ||
53 | LANG_MULTIMEDIA, | ||
54 | HID_USAGE_PAGE_CONSUMER, | ||
55 | { | ||
56 | /* Volume up */ | ||
57 | { ACTION_USB_HID_DEC, HID_CONSUMER_USAGE_VOLUME_DECREMENT }, | ||
58 | /* Volume down */ | ||
59 | { ACTION_USB_HID_INC, HID_CONSUMER_USAGE_VOLUME_INCREMENT }, | ||
60 | /* Volume mute */ | ||
61 | { ACTION_USB_HID_SELECT, HID_CONSUMER_USAGE_MUTE }, | ||
62 | /* Play / pause */ | ||
63 | { ACTION_USB_HID_START, HID_CONSUMER_USAGE_PLAY_PAUSE }, | ||
64 | /* Stop */ | ||
65 | { ACTION_USB_HID_QUIT, HID_CONSUMER_USAGE_STOP }, | ||
66 | /* Scan previous track */ | ||
67 | { ACTION_USB_HID_LEFT, HID_CONSUMER_USAGE_SCAN_PREVIOUS_TRACK }, | ||
68 | /* Scan next track */ | ||
69 | { ACTION_USB_HID_RIGHT, HID_CONSUMER_USAGE_SCAN_NEXT_TRACK }, | ||
70 | { 0, 0 }, | ||
71 | } | ||
72 | }; | ||
73 | |||
74 | static const hid_key_mapping_t hid_key_mapping_presentation = { | ||
75 | LANG_PRESENTATION, | ||
76 | HID_USAGE_PAGE_KEYBOARD_KEYPAD, | ||
77 | { | ||
78 | /* Slideshow start */ | ||
79 | { ACTION_USB_HID_START, HID_KEYBOARD_F5 }, | ||
80 | /* Slideshow leave */ | ||
81 | { ACTION_USB_HID_QUIT, HID_KEYBOARD_ESCAPE }, | ||
82 | /* Slide previous */ | ||
83 | { ACTION_USB_HID_LEFT, HID_KEYBOARD_P }, | ||
84 | /* Slide next */ | ||
85 | { ACTION_USB_HID_RIGHT, HID_KEYBOARD_N }, | ||
86 | /* Slide first */ | ||
87 | { ACTION_USB_HID_LEFT_LONG, HID_KEYBOARD_HOME }, | ||
88 | /* Slide Last */ | ||
89 | { ACTION_USB_HID_RIGHT_LONG, HID_KEYBOARD_END }, | ||
90 | /* Black screen */ | ||
91 | { ACTION_USB_HID_MENU, HID_KEYBOARD_DOT }, | ||
92 | /* White screen */ | ||
93 | { ACTION_USB_HID_MENU_LONG, HID_KEYBOARD_COMMA }, | ||
94 | /* Link previous */ | ||
95 | { ACTION_USB_HID_DEC, SHIFT(HID_KEYBOARD_TAB) }, | ||
96 | /* Link next */ | ||
97 | { ACTION_USB_HID_INC, HID_KEYBOARD_TAB }, | ||
98 | /* 'Mouse click' */ | ||
99 | { ACTION_USB_HID_SELECT, HID_KEYBOARD_RETURN }, | ||
100 | /* 'Mouse over' */ | ||
101 | { ACTION_USB_HID_SELECT_LONG, SHIFT(HID_KEYBOARD_RETURN) }, | ||
102 | { 0, 0 }, | ||
103 | } | ||
104 | }; | ||
105 | |||
106 | static const hid_key_mapping_t hid_key_mapping_browser = { | ||
107 | LANG_BROWSER, | ||
108 | HID_USAGE_PAGE_KEYBOARD_KEYPAD, | ||
109 | { | ||
110 | /* Scroll up */ | ||
111 | { ACTION_USB_HID_DEC, HID_KEYBOARD_UP_ARROW }, | ||
112 | /* Scroll down */ | ||
113 | { ACTION_USB_HID_INC, HID_KEYBOARD_DOWN_ARROW }, | ||
114 | /* Scroll page up */ | ||
115 | { ACTION_USB_HID_START, HID_KEYBOARD_PAGE_UP }, | ||
116 | /* Scroll page down */ | ||
117 | { ACTION_USB_HID_MENU, HID_KEYBOARD_PAGE_DOWN }, | ||
118 | /* Zoom in */ | ||
119 | { ACTION_USB_HID_START_LONG, CTRL(HID_KEYPAD_PLUS) }, | ||
120 | /* Zoom out */ | ||
121 | { ACTION_USB_HID_MENU_LONG, CTRL(HID_KEYPAD_MINUS) }, | ||
122 | /* Zoom reset */ | ||
123 | { ACTION_USB_HID_SELECT_LONG, CTRL(HID_KEYPAD_0_AND_INSERT) }, | ||
124 | /* Tab previous */ | ||
125 | { ACTION_USB_HID_LEFT, CTRL(HID_KEYBOARD_PAGE_UP) }, | ||
126 | /* Tab next */ | ||
127 | { ACTION_USB_HID_RIGHT, CTRL(HID_KEYBOARD_PAGE_DOWN) }, | ||
128 | /* Tab close */ | ||
129 | { ACTION_USB_HID_QUIT_LONG, CTRL(HID_KEYBOARD_W) }, | ||
130 | /* History back */ | ||
131 | { ACTION_USB_HID_LEFT_LONG, ALT(HID_KEYBOARD_LEFT_ARROW) }, | ||
132 | /* History forward */ | ||
133 | { ACTION_USB_HID_RIGHT_LONG, ALT(HID_KEYBOARD_RIGHT_ARROW) }, | ||
134 | /* Full-Screen */ | ||
135 | { ACTION_USB_HID_SELECT, HID_KEYBOARD_F11 }, | ||
136 | { 0, 0 }, | ||
137 | } | ||
138 | }; | ||
139 | |||
140 | #ifdef HAVE_USB_HID_MOUSE | ||
141 | static const hid_key_mapping_t hid_key_mapping_mouse = { | ||
142 | LANG_MOUSE, | ||
143 | HID_USAGE_PAGE_GENERIC_DESKTOP_CONTROLS, | ||
144 | { | ||
145 | /* Mouse up */ | ||
146 | { ACTION_USB_HID_MOUSE_UP, HID_MOUSE_UP }, | ||
147 | { ACTION_USB_HID_MOUSE_UP_REP, HID_MOUSE_UP_REP }, | ||
148 | { ACTION_USB_HID_MOUSE_LDRAG_UP, HID_MOUSE_LDRAG_UP }, | ||
149 | { ACTION_USB_HID_MOUSE_LDRAG_UP_REP, HID_MOUSE_LDRAG_UP_REP }, | ||
150 | { ACTION_USB_HID_MOUSE_RDRAG_UP, HID_MOUSE_RDRAG_UP }, | ||
151 | { ACTION_USB_HID_MOUSE_RDRAG_UP_REP, HID_MOUSE_RDRAG_UP_REP }, | ||
152 | /* Mouse down */ | ||
153 | { ACTION_USB_HID_MOUSE_DOWN, HID_MOUSE_DOWN }, | ||
154 | { ACTION_USB_HID_MOUSE_DOWN_REP, HID_MOUSE_DOWN_REP }, | ||
155 | { ACTION_USB_HID_MOUSE_LDRAG_DOWN, HID_MOUSE_LDRAG_DOWN }, | ||
156 | { ACTION_USB_HID_MOUSE_LDRAG_DOWN_REP, HID_MOUSE_LDRAG_DOWN_REP }, | ||
157 | { ACTION_USB_HID_MOUSE_RDRAG_DOWN, HID_MOUSE_RDRAG_DOWN }, | ||
158 | { ACTION_USB_HID_MOUSE_RDRAG_DOWN_REP, HID_MOUSE_RDRAG_DOWN_REP }, | ||
159 | /* Mouse left */ | ||
160 | { ACTION_USB_HID_MOUSE_LEFT, HID_MOUSE_LEFT }, | ||
161 | { ACTION_USB_HID_MOUSE_LEFT_REP, HID_MOUSE_LEFT_REP }, | ||
162 | { ACTION_USB_HID_MOUSE_LDRAG_LEFT, HID_MOUSE_LDRAG_LEFT }, | ||
163 | { ACTION_USB_HID_MOUSE_LDRAG_LEFT_REP, HID_MOUSE_LDRAG_LEFT_REP }, | ||
164 | { ACTION_USB_HID_MOUSE_RDRAG_LEFT, HID_MOUSE_RDRAG_LEFT }, | ||
165 | { ACTION_USB_HID_MOUSE_RDRAG_LEFT_REP, HID_MOUSE_RDRAG_LEFT_REP }, | ||
166 | /* Mouse right */ | ||
167 | { ACTION_USB_HID_MOUSE_RIGHT, HID_MOUSE_RIGHT }, | ||
168 | { ACTION_USB_HID_MOUSE_RIGHT_REP, HID_MOUSE_RIGHT_REP }, | ||
169 | { ACTION_USB_HID_MOUSE_LDRAG_RIGHT, HID_MOUSE_LDRAG_RIGHT }, | ||
170 | { ACTION_USB_HID_MOUSE_LDRAG_RIGHT_REP, HID_MOUSE_LDRAG_RIGHT_REP }, | ||
171 | { ACTION_USB_HID_MOUSE_RDRAG_RIGHT, HID_MOUSE_RDRAG_RIGHT }, | ||
172 | { ACTION_USB_HID_MOUSE_RDRAG_RIGHT_REP, HID_MOUSE_RDRAG_RIGHT_REP }, | ||
173 | /* Mouse buttons */ | ||
174 | { ACTION_USB_HID_MOUSE_BUTTON_LEFT, HID_MOUSE_BUTTON_LEFT }, | ||
175 | { ACTION_USB_HID_MOUSE_BUTTON_LEFT_REL, HID_MOUSE_BUTTON_LEFT_REL }, | ||
176 | { ACTION_USB_HID_MOUSE_BUTTON_RIGHT, HID_MOUSE_BUTTON_RIGHT }, | ||
177 | { ACTION_USB_HID_MOUSE_BUTTON_RIGHT_REL, HID_MOUSE_BUTTON_RIGHT_REL }, | ||
178 | /* Mouse wheel scroll up */ | ||
179 | { ACTION_USB_HID_DEC, HID_MOUSE_SCROLL_UP }, | ||
180 | /* Mouse wheel scroll down */ | ||
181 | { ACTION_USB_HID_INC, HID_MOUSE_SCROLL_DOWN }, | ||
182 | { 0, 0 }, | ||
183 | } | ||
184 | }; | ||
185 | |||
186 | #define USB_KEYPAD_MODE_MOUSE 3 /* Value of the mouse setting (hard-coded) */ | ||
187 | #endif /* HAVE_USB_HID_MOUSE */ | ||
188 | |||
189 | static const hid_key_mapping_t *hid_key_mappings[] = | ||
190 | { | ||
191 | &hid_key_mapping_multimedia, | ||
192 | &hid_key_mapping_presentation, | ||
193 | &hid_key_mapping_browser, | ||
194 | #ifdef HAVE_USB_HID_MOUSE | ||
195 | &hid_key_mapping_mouse, | ||
196 | #endif | ||
197 | }; | ||
198 | |||
199 | extern int usb_keypad_mode; | ||
200 | |||
201 | int get_hid_usb_action(void) | ||
202 | { | ||
203 | int action, context = CONTEXT_USB_HID; | ||
204 | |||
205 | #ifdef HAVE_USB_HID_MOUSE | ||
206 | if (usb_keypad_mode == USB_KEYPAD_MODE_MOUSE) | ||
207 | context = CONTEXT_USB_HID_MOUSE; | ||
208 | #endif | ||
209 | |||
210 | action = get_action(context, HZ/4); | ||
211 | /* Skip key mappings in a cyclic way */ | ||
212 | if (action == ACTION_USB_HID_MODE) | ||
213 | { | ||
214 | usb_keypad_mode = (usb_keypad_mode + 1) % NUM_KEY_MAPPINGS; | ||
215 | } | ||
216 | else if (action == ACTION_USB_HID_MODE_LONG) | ||
217 | { | ||
218 | usb_keypad_mode = (usb_keypad_mode - 1) % NUM_KEY_MAPPINGS; | ||
219 | } | ||
220 | else if (action > ACTION_USB_HID_FIRST && action < ACTION_USB_HID_LAST) | ||
221 | { | ||
222 | const mapping_t *mapping; | ||
223 | const hid_key_mapping_t *key_mapping = | ||
224 | hid_key_mappings[usb_keypad_mode]; | ||
225 | |||
226 | for (mapping = key_mapping->mapping; mapping->action; mapping++) | ||
227 | { | ||
228 | if (action == mapping->action) | ||
229 | { | ||
230 | logf("Action %d", action); | ||
231 | usb_hid_send(key_mapping->usage_page, mapping->id); | ||
232 | break; | ||
233 | } | ||
234 | } | ||
235 | #ifdef DEBUG | ||
236 | if (!mapping->action) | ||
237 | logf("Action %d not found", action); | ||
238 | #endif | ||
239 | } | ||
240 | |||
241 | return action; | ||
242 | } | ||
243 | |||
244 | int keypad_mode_name_get(void) | ||
245 | { | ||
246 | return hid_key_mappings[usb_keypad_mode]->lang_name; | ||
247 | } | ||
248 | |||
249 | #endif | ||
diff --git a/apps/usb_keymaps.h b/apps/usb_keymaps.h new file mode 100644 index 0000000000..8b08bfda2d --- /dev/null +++ b/apps/usb_keymaps.h | |||
@@ -0,0 +1,28 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2009 Tomer Shalev | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or | ||
13 | * modify it under the terms of the GNU General Public License | ||
14 | * as published by the Free Software Foundation; either version 2 | ||
15 | * of the License, or (at your option) any later version. | ||
16 | * | ||
17 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
18 | * KIND, either express or implied. | ||
19 | * | ||
20 | ****************************************************************************/ | ||
21 | #ifndef _USB_KEYMAPS_H_ | ||
22 | #define _USB_KEYMAPS_H_ | ||
23 | |||
24 | int get_hid_usb_action(void); | ||
25 | |||
26 | int keypad_mode_name_get(void); | ||
27 | |||
28 | #endif | ||