rockbox/apps
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
..
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 usbaudio: convert to asynchronous operation 2025-11-15 07:32:05 -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