USB stack enhancements
Rockbox has an integrated USB stack for some targets, with mainly the Mass-Storage Class Driver being used.
The main aim of the project, is to add support for an additional class-driver, the Human-Interface-Device (HID) class driver, and to overhaul the USB stack to dynamically load class drivers as modules (aka plugins), therefore reduce binary size, and gain further benefits, such as ease development of additional class drivers (e.g. MTP).
Public git repository
Type the following command in order to clone the git repository:
$ git clone git://github.com/tomers/Rockbox-USB-stack-enhancement.git
- Implement a working HID class driver
- Write a HID test application (control volume of the host)
- Separate class driver from main binary, and implement infrastructure to dynamically load them
Currently working on: Implement HID class driver
Remaining work for current phase:
- Valid enumeration of the DAP as a Human-Interface Device (Committed).
- Implement support for Interrupt transfers in Sansa e200 (Committed).
- Add debug menu items to control volume (VolUp/VolDown/Mute) on the host using HID messages (Done. Not yet committed).
Future enhancements (not part of this project):
- Switch to git repository management, to ease development process (done).
- Successfully send HID messages to host (done).
- Implement sample plugin application that sends various key-strokes to host: Volume control, Mouse control, System control (reboot, shutdown), etc.
- Make touch-screen enabled platforms identify as a tablet device, enabling the player to act as a touch-pad.
- Implement context menu to control the class driver, e.g. key-mappings (code pages), etc.
- Implement 'code-page' to configure key-mapping for controlling Power-Point presentations.
- Implement Interrupt type endpoints in all other drivers.
Copyright © by the contributing authors.