jacqueline
4cec85af2d
implement handling of stream/playback ending
1 year ago
jacqueline
078b77d0f7
pass stream start/update/end events through the whole pipeline
1 year ago
jacqueline
175bfc4e3e
WIP rewrie audio pipeline+fsm guts for more reliability
1 year ago
jacqueline
1455288190
Restore the previous track position when booting
1 year ago
jacqueline
b2f0e6d3a4
Clear the drain buffer also when seeking
1 year ago
jacqueline
173b09b015
Clear the drain buffer when skipping between tracks
1 year ago
jacqueline
28651fa7e1
Wait for the sink buffer to drain before stopping playback
1 year ago
jacqueline
29a246a733
Make the drain buffer very large, and move it into PSRAM
...
the i2s handler and streambuffer metadata are both still in iram for
good performance. otherwise, this seems to be enough to make gapless
playback work.
1 year ago
ailurux
c60bb9ee42
Fix issue with seeking whilst paused
1 year ago
ailurux
665679b885
WIP: seeking in lua example
1 year ago
ailurux
a49d754da6
Seeking working with hardcoded event, wav only
1 year ago
ailurux
62f6179abe
Added offset for track seeking, wav impl. only rn
1 year ago
jacqueline
cb379f4bc3
Cache pending nvs writes in memory
...
Includes refactoring nvs settings to be a bit less duplicated
1 year ago
jacqueline
cb0c42060b
more i2s/bt drain buffer size tweaks
1 year ago
jacqueline
26df5c4a7f
Remember per-device bluetooth volume
1 year ago
ailurux
9512bd97bb
Add buttons for shuffle + repeat track
1 year ago
jacqueline
c1b03c151e
put opus' allocations into internal ram
...
it's a pretty chonky codec, but this seems like the best way to tame its
performance.
1 year ago
jacqueline
0bb12912bc
Implement basic volume control for bt outputs
1 year ago
jacqueline
99c56641e9
fix various of bluetooth issues
...
connecting and disconnecting is a bit more consistent now!
1 year ago
jacqueline
e073309907
Properly persist bluetooth mode changes
1 year ago
jacqueline
299f3cc48f
Preserve the queue when going into standby
1 year ago
jacqueline
71b4673039
all screens basically working, but bluetooth is rough
1 year ago
jacqueline
7cdcd44e0c
Begin migration of remaining screens to Lua
1 year ago
jacqueline
34cae4e6e4
add an alerts module for lua, and implement a volume indicator with it
1 year ago
jacqueline
938ba62f57
refactor handling of volume steps; improve controls
1 year ago
jacqueline
414f139ae3
Audio fsm usability tweaks
...
- persist the current volume when the screen locks
- pause playback if headphones are removed
1 year ago
jacqueline
3f7f199cb9
Remove pre-iterator concepts
...
- No more IndexRecord/Result/dbGetPage nonsense
- Queue is just track ids
- i am so tired and have so much to do
1 year ago
jacqueline
4f5422e906
Rewrite the track queue to work directly with database iterators
1 year ago
jacqueline
7c6eb2997c
Migrate 'now playing' screen to lua
1 year ago
jacqueline
499d5a942f
Add a wrapper codec source that does readahead
1 year ago
Robin Howard
18d90051c9
Annotates the kTag with maybe_unused; they're only used for logging.
2 years ago
jacqueline
912f9c0757
Free the i2s dma channel when it's not in use
...
It turns out this is why bluetooth playback keeps running out of memory
/facepalm
2 years ago
jacqueline
7523772886
Decouple play/pause from output on/off
...
I think this was the cause of toggling play/pause making audio go away.
Or at least I can't repro that bug anymore, anyway.
2 years ago
jacqueline
5c04e2ad8d
Neaten up the various kinds of inputs, and move volumes to The New Way
2 years ago
jacqueline
252f685ef1
Make NVS access synchronous again
...
Everything relevant is back in internal ram, and likely to stay there.
2 years ago
jacqueline
8608f9367f
Tune buffer sizes and locations for I2S
2 years ago
jacqueline
b192975cb1
make bluetooth pairing ui functional
2 years ago
jacqueline
0032896251
Move UI task to priority 0 during playback
...
Also other misc task cleanup
2 years ago
jacqueline
d5d6e3993c
Support changing max volume, persisted to nvs
2 years ago
jacqueline
320fdeb9d8
Use a service locator instead of passing around subsets of drivers between FSMs
2 years ago
jacqueline
a1327763ab
Support play/pause toggling
2 years ago
jacqueline
8ff93f5467
Make idle state more robust + check playback state
2 years ago
jacqueline
f3c5eec025
Rename the main audio tasks to be more sensible
2 years ago
jacqueline
c635d5011c
Put more audio pipeline wiring in control of the audio fsm
2 years ago
jacqueline
4e27de21e4
clean up a bunch of obselete audio code
2 years ago
jacqueline
544b0013b1
persist preferred bluetooth device in nvs
2 years ago
jacqueline
d6b83fcf4a
Flesh out basic bluetooth support
...
No ui yet, and performance isn't great. It kinda works though!!
2 years ago
jacqueline
d8fc77101d
Give codecs complete control of their input files
2 years ago
jacqueline
485eed2890
use libtag duration where available
2 years ago
jacqueline
10120f9a92
ux fixes
2 years ago