chore: migrate to rodio v0.21.1
feat: add a currently nonfunctional source argument to the scrape
command
well, this is an important commit for anyone who has some interest in
the workings of lowfi, so strap in.
rodio finally updated cpal, so that ugly unsafe bit of code to implement
send is no longer necessary since cpal did it themselves (a year ago)
they also removed output stream handles and some other things which
nobody really used anyway.
next, the other file types is literally not even code, just adding a
feature flag which enables the default rodio feature flags. i do feel a
bit silly for thinking it'd be super difficult, so thanks rodio.
lastly, the source flag is for a possible switch to the chillhop
tracklist. anything embedded into lowfi should be generated with an open
source script, hence if lowfi does switch to chillhop, it'll need to be
selectable.
* feat: initial work on decoupling embedded list file & the rest of the app
* chore: rename tracks.txt to lofigirl.txt
* fix: make base optional
* feat: partially revert previous commit
* feat: fix loading tracks with explicit url
* fix: include list in main player struct
* chore: reduce timeout
* chore: remove unused import
* fix: rename InitialProperties to PersistentVolume
* feat: move persistent volume init to player init function
* feat: add micropop.txt as an example of a custom tracklist
* docs: add note about mp3
* docs: move format of lists to list struct docs
* docs: document custom track lists
* fix: fix silly spelling error
* docs: update formatting
* docs: fix sample formatting
* docs: add missing sample track
* fix: fix ui when track name has special characters
* fix: use proper char counting on subject, not word
* fix: use unicode-segmentation to finally fix handling special characters
* fix: precompute track len
* fix: switch to using the unicode-width crate
* style: split off list into it's own module
* fix: move logic to read a list from the fs into the list module
* feat: initial support for mpris
* feat: overhaul app flow, making audio server control main thread instead of the ui thread
* fix: remove useless extra thread
* fix: last touches
* fix: call interface with minimalist flag
* fix: fix oversight when silencing alsa