• Status Closed
  • Percent Complete
  • Task Type Patches
  • Category Drivers
  • Assigned To
  • Operating System All players
  • Severity Low
  • Priority Very Low
  • Reported Version Daily build (which?)
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by tomers - 2009-07-26
Last edited by tomers - 2009-09-30

FS#10468 - USB HID: Show keypad mode on screen

This patch add support for changing keypad mapping to keys sent to the host computer while the DAP is connected through USB.
The user can iterate over the different keypad modes by pressing a key (e200: REC key). The different modes are:
* Media Player (Control volume, Pause/Play, Stop, Next/Previous tracks)
* PowerPoint (Start Presentation, Next/Previous slide, Black/White screen, etc)
* Acrobat Reader (Next/Previous Page/Screen, Full Screen, Scroll Up/Down)

Additional modes can be easily added.

The current mode will be shown on screen (tested on e200 - need further testing on different platforms).

Closed by  tomers
2009-09-30 13:26
Reason for closing:  Accepted
Additional comments about closing:   Warning: Undefined array key "typography" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 371 Warning: Undefined array key "camelcase" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 407

Committed in r22852-22856

Why not allow the mode to be set in a normal settings menu, so that *all* buttons are available while in USB mode?

This is especially helpful since many players don’t have a record button, and so have even less available buttons to be able to spare one for this.

Why not allow the mode to be set in a normal settings menu, so that *all* buttons are available while in USB mode?
I think this is a good remark. I’ve implemented a system setting for this feature, and a manual section for it (currently enabled only in e200 - should define option USB_ENABLE_HID in manual/platform/*.tex where relevant).

Attached patch contains these additions.

fg commented on 2009-08-01 14:02

I must say I’m not very comfortable with directly naming and supporting proprietary applications. Do other similar applications use the same keys? If so, how about naming the modes “Presentation” and “Document viewer”?

More generally, I’m not sure how far we should take this built-in HID mode. Personally, I think the remote_control plugin is the proper place for all this.

Doesn’t patch on latest build/

Synced to r22761.

Removed support for proprietary applications, as per Frank’s suggestion.

Now supports three modes: Multimedia, Presentation and Browser.
Documentation relates to OpenOffice Impress and Firefox as example applications.

Updated version:
* Save settings once, on USB disconnect, instead on each keypad mode change.
* Remove redundant gui statusbar drawing calls

Added support for mouse movement mode! Now the DAP can be a mouse replacement :-)

Add Middle-Click support for mouse mode

Changes since last patch:
-Extract the usb keymap mode logic into apps/usb_keymaps.[ch], thus make apps/screens.c neatier.

This patch tested extensively on e200. I guess this patch is stable and ready for testing. I would welcome any feedback, especially from users using other platforms.
I would appreciate if one of the committers (gevaerts?) will find the time to consider it for committing after we receive enough feedback.


fg commented on 2009-09-23 20:08

I’ll review this, but it will be next week at the earliest

Changes since last patch:
- Added mouse acceleration which mouse mode more usable.

Changes since last patch:
- Support for iterating backwards over keypad modes using a long press.
- Removed support for middle mouse button
- Add support for left/right mouse dragging
- Fixed using define HAVE_USBSTACK instead of USB_ENABLE_HID
- Fixed some wrong HID buttons on various targets
- Add mouse keymaps for the following targets:

hdd1630; sa9200; ipod; gigabeat-s; clip; c100; c200; e200 (owners: please test and report)

Changes since last patch:
- Added manual section with proper keymaps for all relevant platforms.

No further enhancements are expected.

…oops, forgot this one:

- Use #define HAVE_USB_HID_MOUSE for target with sufficient number of keys to have a usable mouse emulation


Available keyboard shortcuts


Task Details

Task Editing