rockbox/apps
Dana Conrad 9ce66e088e Add USB Audio 1.0 support
Original commit credit to Amaury Pouly, Moshe Piekarski
Pushed across the finish line by Dana Conrad

To enable, see setting under General Settings --> System --> USB-DAC.
On devices with few endpoints, this may not work while HID and/or
mass storage is enabled.

Adds new dedicated mixer channel.

setting usb-dac can have values:
- never (0)
- always (1)
- while_charge_only (2)
- while_mass_storage (3)

Relevant devices are DWC2 and ARC usb controller devices. That being:
x1000 Native targets (m3k, erosqnative, q1, others...?),
sansac200, creativezenxfi2, vibe500, ipodmini2g,
ipod4g, creativezenxfi, creativezenxfi3, sansaview, ipodcolor,
creativezenxfistyle, samsungypz5, sansafuzeplus, iriverh10_5gb,
tatungtpj1022, gigabeats, faketarget, samsungyh820, gogearhdd1630, samsungyh925, ipodmini1g, ipodvideo, creativezenmozaic, sonynwze370, creativezen, gogearsa9200, gogearhdd6330, sonynwze360, sansae200, mrobe100, iriverh10, creativezenv, ipodnano1g, samsungyh920

USB Driver-wise, it should be noted that this patch requires some
slight changes:
- proper blocking on control OUT transfers, to make sure the data is
  received *before* using it, the usb_core should probably use that too
- drivers can now support interface alternate settings
- drivers can be notified of completion by a new fast handler, which
  is called directly from the driver; this is is necessary for
  isochronous transfers because going through the usb queue is way too
  slow

Designware changes:

- enable for USBOTG_DESIGNWARE
- set maxpacketsize to 1023 for ISO endpoints

Change-Id: I570871884a4e4820b4312b203b07701f06ecacc6
2025-11-15 07:30:15 -05:00
..
bitmaps WIP hosted port to the Surfans F28 2025-05-04 18:34:22 -04:00
gui sound: fix volume change being reported to %mv tag on boot 2025-10-03 10:01:02 +01:00
hosted/android unicode: Support characters beyond the first unicode plane 2025-09-12 09:24:30 -04:00
iap IAP: First steps towards true multiport state 2025-08-20 07:56:43 -04:00
keymaps 3ds: 3ds port sources. Second set of two. 2025-10-23 20:09:12 -04:00
lang Add USB Audio 1.0 support 2025-11-15 07:30:15 -05:00
menus Add USB Audio 1.0 support 2025-11-15 07:30:15 -05:00
plugins FS#13350: PictureFlow: Fix too few albums displayed for first artist 2025-10-26 09:21:54 -04:00
radio voice: replace splashf with talk equivalent 2025-06-02 21:04:19 -04:00
recorder checkwps: Validate %?St() tags 2025-09-27 10:19:20 -04:00
abrepeat.c [Cleanup] abrepeat.c 2024-06-20 11:14:27 -04:00
abrepeat.h [Cleanup] abrepeat.c 2024-06-20 11:14:27 -04:00
action.c action: fix "first keypress enables display only" ignored in plugins 2025-06-05 16:09:29 -04:00
action.h apps: Move action_cur_t and action_last_t to action.c 2024-04-21 20:37:26 -04:00
alarm_menu.c voice: fix regression 39f8685 (already voiced) 2025-05-28 11:18:29 +02:00
alarm_menu.h Fix menu warnings 2018-10-18 00:06:31 +02:00
appevents.h
applimits.h
apps.make build: add 'lto' to features.txt if built with it 2024-11-30 13:49:42 -05:00
audio_path.c nwza860: fix simulator build 2020-10-19 03:39:33 +00:00
audio_thread.c [Feature] Persist pitch settings through reboots part deux 2025-01-19 00:29:47 -05:00
audio_thread.h
beep.c
bookmark.c Fix: Root dir bookmarks displayed for dynamic playlist 2025-03-11 00:00:18 -04:00
bookmark.h Fix return to root after selecting items from playlist viewer 2022-11-19 10:01:23 +01:00
buffering.c Codecs: mp3: Move strip tags to codec 2025-05-26 10:59:56 -04:00
buffering.h Codecs: mp3: Move strip tags to codec 2025-05-26 10:59:56 -04:00
codec_thread.c Codecs: Fix stuck buffer when advance_buffer fails 2025-06-01 12:11:53 +03:00
codec_thread.h
codecs.c Codecs: mp3: Move strip tags to codec 2025-05-26 10:59:56 -04:00
core_asmdefs.c
core_keymap.c add INIT_ATTR to dircache_load and core_load_key_remap 2024-11-26 22:13:43 -05:00
core_keymap.h key remap: simplify and use movable allocations 2022-09-25 11:05:59 +01:00
cuesheet.c unicode: add utf16decode with utf8 buffer size check 2024-12-15 15:44:57 -05:00
cuesheet.h [4/4] Remove HAVE_LCD_BITMAP, as it's now the only choice. 2020-07-24 21:20:13 +00:00
debug_menu.c Add USB Audio 1.0 support 2025-11-15 07:30:15 -05:00
debug_menu.h Fix menu warnings 2018-10-18 00:06:31 +02:00
enc_config.c Settings: Rename INT/BOOL setting type enum to RB_INT/RB_BOOL 2023-09-22 10:00:46 -04:00
enc_config.h Fix menu warnings 2018-10-18 00:06:31 +02:00
features.txt WIP hosted port to the Surfans F28 2025-05-04 18:34:22 -04:00
fileop.c Hide extension in Rename dialog when viewing single file type 2025-06-02 21:05:32 -04:00
fileop.h [Cleanup] onplay.c fileop.c 2024-07-04 12:44:04 -04:00
filetree.c playlist catalog: sort independently from file browser 2025-05-30 08:30:47 -04:00
filetree.h Replace "Reload After Saving" with option to remove queued tracks 2024-04-21 18:28:16 +02:00
filetypes.c Fix: read_color_theme_file needed beyond init 2024-11-24 00:42:50 +01:00
filetypes.h filetypes.c compress builtin filetypes 2024-11-19 07:12:41 -05:00
fracmul.h
keyboard.h unicode: Support characters beyond the first unicode plane 2025-09-12 09:24:30 -04:00
language.c optimize language.c lang_english_to_id() 2024-12-30 23:17:57 -05:00
language.h lang: Support languages that speak the units before a numerical value 2023-05-22 10:30:13 -04:00
logfdisp.c misc.c open_pathfmt caller supplied buffer 2022-11-23 22:09:46 -05:00
logfdisp.h
main.c Revert "Splash modified playername.txt on device startup" 2025-07-22 10:27:34 -04:00
menu.c playlist catalog: sort independently from file browser 2025-05-30 08:30:47 -04:00
menu.h menus remove reserved 'param' parameter 2022-12-17 04:24:37 -05:00
misc.c sound: fix volume change being reported to %mv tag on boot 2025-10-03 10:01:02 +01:00
misc.h shortcuts: add missing voice for sleep shortcuts without name 2025-06-06 19:12:07 +02:00
onplay.c playlist catalog: sort independently from file browser 2025-05-30 08:30:47 -04:00
onplay.h Generate A-Z menus in the tagtree 2024-11-02 17:27:22 -04:00
open_plugin.c voice: Convert a pile of splashf() messages to be voiced 2025-05-17 17:33:46 -04:00
open_plugin.h open_plugin.c access open_plugin_entry through a function 2022-12-16 09:05:06 -05:00
pcmbuf.c [BugFix] Playback.c OOM with large voice file 2024-09-24 10:47:34 -04:00
pcmbuf.h [BugFix] Playback.c OOM with large voice file 2024-09-24 10:47:34 -04:00
playback.c Reapply "buffering: remove bufgettail/bufcuttail" 2025-05-26 10:59:56 -04:00
playback.h [Feature] playback logging from core 2025-01-13 00:45:09 -05:00
playlist.c playlist: remove support for PLAYLIST_COMMAND_CLEAR 2025-08-08 09:34:52 -04:00
playlist.h playlist: remove support for PLAYLIST_COMMAND_CLEAR 2025-08-08 09:34:52 -04:00
playlist_catalog.c addendum to 498d581 2025-05-28 12:52:45 +02:00
playlist_catalog.h tagtree: defer context menu disk access 2025-04-17 08:23:45 -04:00
playlist_menu.h
playlist_viewer.c voice: replace splashf with talk equivalent 2025-06-02 21:04:19 -04:00
playlist_viewer.h Playlist Catalogue: Restore selection in playlist 2022-11-26 17:20:06 +01:00
plugin.c voice: LANG_PLUGIN_CANT_OPEN 2025-07-23 11:13:13 -04:00
plugin.h unicode: Support characters beyond the first unicode plane 2025-09-12 09:24:30 -04:00
rbcodec_helpers.c Remove buflib allocation names, part two 2023-01-13 10:32:54 +00:00
rbcodecconfig.h limits: define PATH_MAX in only one place. 2025-08-25 10:10:38 -04:00
rbcodecplatform.h
README
root_menu.c voice: splash_progress 2025-06-02 00:03:42 +02:00
root_menu.h Add open_plugin to core 2020-08-17 10:15:14 -04:00
screen_access.c screen_access add set_drawinfo 2025-02-08 00:49:28 -05:00
screen_access.h screen_access add set_drawinfo 2025-02-08 00:49:28 -05:00
screens.c Some fixes for language and voice scripts: 2025-04-29 20:03:11 -04:00
screens.h Show Track Info: Support fs tags in Playlist Viewer, Properties, and PictureFlow 2024-12-16 00:20:10 +01:00
settings.c checkwps: Validate %?St() tags 2025-09-27 10:19:20 -04:00
settings.h Add USB Audio 1.0 support 2025-11-15 07:30:15 -05:00
settings_list.c Add USB Audio 1.0 support 2025-11-15 07:30:15 -05:00
settings_list.h shortcuts.c don't call settings_apply_skins() unless needed 2025-03-02 23:50:54 -05:00
shortcuts.c shortcuts: Power off while charging if supported 2025-10-26 09:25:09 -04:00
shortcuts.h [Feature] Set values of settings from shortcuts 2025-01-25 15:13:13 -05:00
sound_menu.h Fix menu warnings 2018-10-18 00:06:31 +02:00
SOURCES 3ds: 3ds port sources. First set of two 2025-10-23 20:09:09 -04:00
status.c [2/4] get rid of HAVE_LCD_CHARCELLS 2020-07-24 21:20:13 +00:00
status.h Add a comment about the ordering of 'enum playmode' 2022-11-23 10:08:49 -05:00
tagcache.c database: Validate paths against MAX_PATH as well as TAX_MAXLEN 2025-08-25 10:46:16 -04:00
tagcache.h tagtree: "By First Letter" : fix numerical entry + add a "Special character" entry 2025-02-08 12:14:32 -05:00
tagnavi.config tagnavi.config: Add "Album Artists by First Letter" 2025-02-08 12:14:32 -05:00
tagtree.c [Tagtree] Add a new button to list automatically all tracks in all albums of the current view 2025-07-23 11:12:54 -04:00
tagtree.h Reworks to the shuffle system to improve performance and allow fast shuffling from a big library (but this work for all database views) 2024-08-31 10:44:20 -04:00
talk.c talk: Keep QUEUE_SIZE at 64 for smallmem devices 2025-06-02 12:44:44 -04:00
talk.h talk: Voice the volume name when browsing and when voicing full paths 2024-07-28 16:54:33 -04:00
tree.c 3ds: 3ds port sources. First set of two 2025-10-23 20:09:09 -04:00
tree.h 3ds: 3ds port sources. First set of two 2025-10-23 20:09:09 -04:00
usb_keymaps.c [Bugfix] FS#12436 cache mode strings prior to font disable 2025-03-11 11:41:17 -04:00
usb_keymaps.h [Bugfix] FS#12436 cache mode strings prior to font disable 2025-03-11 11:41:17 -04:00
voice_thread.c Remove buflib allocation names, part two 2023-01-13 10:32:54 +00:00
voice_thread.h voice: Allow voice prompt volume to be configurable 2021-03-07 12:51:36 +00:00

For general information see: docs/README
For API information see: docs/API