jacqueline
faddb229fc
Record play_count in TrackData, incrementing it when tracks finish
7 months ago
ailurux
5e43b42218
Adds audiobook index to available indexes
7 months ago
jacqueline
94ccd405e3
Retry SD card mounting a few times when talking to the card fails
7 months ago
ailurux
e91580c75b
Implement VBR seeking based off TOC
7 months ago
ailurux
eba2ffc260
Improve seeking for constant bitrate mp3
7 months ago
jacqueline
2ac2629c48
Don't try to configure the dac if there is no dac
...
Fixes #106
7 months ago
jacqueline
b95cd34520
Make the 'Podcasts' index just a list by title
...
Podcasts aren't tagged consistently enough for other groupings to make
sense, at least until we implement RSS parsing
7 months ago
jacqueline
ade5e4bc08
Encode and decode MediaType in TrackData
7 months ago
jacqueline
ea9c7a0498
Include leading slash in media type paths
7 months ago
jacqueline
57af3e64c8
Introduce a MediaType for each track and index
...
Initially set based on filepath, or by genre if the filepath doesn't
match one of our presets
7 months ago
ailurux
e96dcde085
Fix commented issues
7 months ago
ailurux
c479d699d0
Implements seeking to saved position for tracks
7 months ago
jacqueline
7d1266404d
Move SPI ISR back to CPU0
...
See if this does anything for the itermittent spi acquire hangs
7 months ago
ailurux
c4ec089a90
Added lua methods to access track data
7 months ago
ailurux
f58679983e
Save positions over 5 minutes, every minute
7 months ago
jacqueline
a174d76aa1
Mount the SD card asynchronously when it becomes available
...
Previously we were doing it synchronously, which led to some odd looking
livelock stacktraces... we still don't have a consistent repro, but this
at least makes the stack when we mount a lot more predictable
7 months ago
ailurux
d4bad11130
WIP: Fixed errors, cleanup
7 months ago
ailurux
4353779810
WIP: Add last_position field to track data and start on implementation
7 months ago
jacqueline
d8b9e65e68
Clean up some tts logging and descriptions
7 months ago
jacqueline
c51709f99f
Pause and unpause the current audio output in response to TTS
7 months ago
jacqueline
542ebc6531
Play TTS files in response to TTS prompts, but it's legible now
...
- input files are upsamples and padded to stereo before playback
- any in-progress playback is cancelled before playing a new file
7 months ago
ailurux
1f5ce24389
Rename set_style to set_subject
7 months ago
jacqueline
50d6efada5
Use '/sd' instead of '/sdcard' for accessing the sd card
...
it's cleaner
7 months ago
jacqueline
d0b739c66e
Play basic wav files in response to tts prompts
...
It's currently quite limited (no stereo or sample rate conversion,
multiple messages clobber each other, only plays if music is playing),
but we're getting there!
7 months ago
jacqueline
dacf3efc45
Look for music in "/Music", with the root dir as a fallback
8 months ago
jacqueline
172d31ec6d
Ignore comments within playlist files
...
Includes a general cleanup+restructure of playlist.cpp, and fixing the
tests and benchmarks
8 months ago
jacqueline
99a3a904e4
Handle collation text that includes '\0'
...
This seems to be tickled by the ogg comment handling changes (possibly libtags doesn't actually handle this case?)
8 months ago
jacqueline
e6921dc055
Use libogg + our own parser for ogg files
...
This is somewhat faster than relying on libtags to parse these, and also better handles cornercases such as tags that cross physical page boundaries.
8 months ago
jacqueline
91eaed4b37
use snake_case consistently in lua function names
8 months ago
ailurux
96a224c0df
Lua API improvements and fixes
...
Co-authored-by: jacqueline <me@jacqueline.id.au>
8 months ago
jacqueline
3421bd652c
When clicking a track in the file browser, play it
...
Includes adding a `playback.is_playable` for working out whether or not
a particular file is able to be played
8 months ago
jacqueline
af7a70450e
Support adding filepaths to the track queue
8 months ago
jacqueline
9145722b08
Don't show n+1/n when we run out of queue
8 months ago
jacqueline
71aafc1711
Fix random.cpp not being built
8 months ago
jacqueline
32869129ff
clang-format
8 months ago
jacqueline
9ec8d6dafc
Handle the loading state whilst appending many tracks better
...
1) Update the queue length periodically so that the user can see we're
working
2) Clear any previous track and display "loading..." instead
8 months ago
jacqueline
d3c15bf070
spello
8 months ago
jacqueline
8f4e1ece75
Some minor cleanup, docs, assertions
8 months ago
jacqueline
f253d2ee75
Timeout when writing output samples throughout the audio pipeline
...
This allows the audio pipeline to remain responsive even when the drain
buffer has completely filled. This in turn means that you now see the
track info in the 'now playing' screen change if the current track
changes whilst you are paused.
Since I was fucking around a lot in the audio processor anyway, I also
added mono->stereo expansion so that playing mono tracks on Bluetooth no
longer destroys your ears.
8 months ago
jacqueline
ef227f8c51
Move the UI task main loop info iram
8 months ago
jacqueline
b1c90278ae
Delete unused half readme
8 months ago
ailurux
e6c77f17b8
Switch output mode to headphones when plugged in
8 months ago
jacqueline
275ade5d13
Move some hot driver functions into iram
...
We've got the space for it now!
Also turn SW radio coexistence off whilst we're here; the docs recommend this if you only use Bluetooth(R)
8 months ago
ailurux
978429109e
Fix queue serialisation so that the position is correctly applied
8 months ago
ailurux
5ab4c2f0d6
Update position when updating the shuffler
8 months ago
jacqueline
493f8e1200
Don't break early from clearing PcmBuffer
8 months ago
jacqueline
9c56261122
Delay DB reindexing slightly
...
This helps with boot time by preventing a ton of
disk I/O before the UI has had a chance to load.
8 months ago
jacqueline
40c754a72a
Always initialise bytes_cleared when clearing PcmBuffers
8 months ago
ailurux
022aa38396
Fix for position persisting when queue reset
8 months ago
jacqueline
326cc42a63
Don't spuriously report that the current track has changed
...
Fixes the last track in the queue repeating forever
8 months ago