rockbox/firmware/usbstack
Dana Conrad 7c4293af64 usbaudio: convert to asynchronous operation
Add feedback not based on samples used, but on buffers filled - idea
being we can do "PID" (someone who has actually implemented Real PID
could probably rewrite the calculation) based on how many buffers
we have filled versus the ideal buffer filled level (16).

Feedback is based on a historical average of the last two feedback
intervals.

This feedback math is done as fixed-point math to keep floats out of core. Note that a couple division operations needed to be strategically staged to avoid overflow or truncation.

Floats are still used for debug screen printout.

Also fixed a typo in the definition of usb_audio_control_request()

Host:
Linux: works
MacOS: works
Windows: Feedback does not work! It appears that Windows may not
         support asynchronous devices at all. Playback may "work",
         but results will vary as the number of buffers filled will
         drift over time.

Change-Id: I027feb16705e6e46c1144b1d08920b53de42cb26
2025-11-15 07:32:05 -05:00
..
usb_audio.c usbaudio: convert to asynchronous operation 2025-11-15 07:32:05 -05:00
usb_audio.h usbaudio: convert to asynchronous operation 2025-11-15 07:32:05 -05:00
usb_audio_def.h usbaudio: convert to asynchronous operation 2025-11-15 07:32:05 -05:00
usb_charging_only.c usb PACK_DATA: use a static inline to enable type checking 2011-12-29 21:58:34 +00:00
usb_charging_only.h USB retweaking: Take out the USB_REQUEST/RELEASE_DISK scheme and simply ask the USB core whether or not any drivers require exclusive access at the moment of connect. Doing anthing else just produces nasty effects on Windows because it expects some communication just for enabling the PHY and not allowing it to mount volumes if a thread doesn't ack causes annoying error message boxes. Make behavior of each USB type identical from the system perspective. Some miscellaneous changes (simplify, ata->storage naming, define only used USB_* enums values were possible). 2009-01-13 16:27:35 +00:00
usb_class_driver.h Add USB Audio 1.0 support 2025-11-15 07:30:15 -05:00
usb_core.c Add USB Audio 1.0 support 2025-11-15 07:30:15 -05:00
usb_hid.c usb: ensure RX buffers are a multiple of the packet size 2021-10-16 21:14:42 +01:00
usb_hid.h usb: add request data argument to all control request handlers 2021-10-16 21:14:42 +01:00
usb_hid_usage_tables.h usb_hid: add support for Battery Strength 2021-03-06 04:15:02 +00:00
usb_serial.c usb: ensure RX buffers are a multiple of the packet size 2021-10-16 21:14:42 +01:00
usb_serial.h usb: add request data argument to all control request handlers 2021-10-16 21:14:42 +01:00
usb_storage.c ata: Parameterize the SMART query, add support to primary ATA driver 2025-09-16 09:52:05 -04:00
usb_storage.h usb: add request data argument to all control request handlers 2021-10-16 21:14:42 +01:00