The last day and a half I’ve been working on improving (and writing!) the remainder of the MyUSB API, and I’m happy to announce that it’s just about ready for a stable 1.0 release.
I’ve added in a remote wakeup API, for managing suspended state wakeup requests in both device (to host) and host (to device) request transfers. That should allow for USB devices to wake up the host (or allow host apps to acknowledge a wakeup request from a device) which wasn’t possible before the API was implemented.
Also added is two more host examples, MouseHostViaInt and KeyboardHostViaInt, which are very similar to the mouse and keyboard host examples. The big difference is that the pipes in the new examples are interrupt-driven via the real pipe/endpoint management interrupt, instead of polled. I’ve also added in the remained of the endpoint/pipe interrupt API to facilitate this.
Today I was busy working on creating a host mode Configuration Descriptor processing API. I think it’s quite neat; a host application can now request the total configuration descriptor size from a device, allocate memory to hold it, fill the memory with the configuration descriptor then process each sub-descriptor it contains, extracting data as needed. All MyUSB host examples now use the new API, and extract interface and endpoint configuration right out of the device’s Configuration descriptor rather than being hard-coded.
I hope to receive some feedback about the library (and the new API sections) from users soon. Let me know what you love/hate/want!
Recent Comments