jacqueline
826190edcf
Emit a 'known devices changed' event when we forget a known device
...
Makes the Lua UI update immediately after running the bt_forget command
added in PR #289
2025-03-05 13:26:44 +11:00
jacqueline
d147c92053
version bump
2025-02-25 16:29:55 +11:00
jacqueline
8819a60dd2
Revert the smaller icons that were actually bigger
...
Google 'images inflation' to learn more
2025-02-11 10:37:19 +11:00
jacqueline
5275b5ebcb
version bump
2025-02-07 13:57:17 +11:00
jacqueline
9f9b400fb3
version bump
2025-01-31 13:28:05 +11:00
jacqueline
ddcd06dbca
Add 'Tdisc' to libtags
...
Uses 'TPOS' for id3v2 tags, and 'DISCNUMBER' for vorbis comments (mostly
just relevant to flacs for our use case).
Fixes #181 .
2025-01-29 16:05:56 +11:00
jacqueline
f9011839cd
Actually read+write the fast charge nvs bit
...
It turns out that our error prone method of managing nvs keys has led to
an error!
We took a look over the other keys here and it didn't look like any
others were missing.
Fixes #204
2025-01-29 13:48:18 +11:00
jacqueline
b4b43ca3eb
Merge branch 'main' of codeberg.org:cool-tech-zone/tangara-fw
2025-01-24 11:44:36 +11:00
jacqueline
337f62669b
Merge branch 'main' of codeberg.org:cool-tech-zone/tangara-fw
2025-01-23 11:37:25 +11:00
jacqueline
312ec8f85a
Merge branch 'main' of codeberg.org:cool-tech-zone/tangara-fw
2025-01-22 10:20:25 +11:00
jacqueline
597208a60a
version bump
2025-01-17 13:44:48 +11:00
jacqueline
91721fb52a
Version bump
2025-01-17 13:25:08 +11:00
jacqueline
6886c686d5
Add comment
2025-01-17 09:39:20 +11:00
jacqueline
934b1484b2
Add a hard reset input sequence to recover from broken device states
...
- Unlock device
- Hold both volume buttons
- Lock device
- Unlock device
2025-01-15 15:38:18 +11:00
jacqueline
a69b95187b
Handle lock state in each input device, instead of in the lvgl driver
2025-01-15 15:37:35 +11:00
jacqueline
430742c297
version bump
2025-01-10 13:17:50 +11:00
94c30b7591
Isolate the SD card from the SPI bus when talking to the display ( #176 )
...
This should help significantly with https://codeberg.org/cool-tech-zone/tangara-fw/issues/121 , which seems to be caused by some SD cards being very picky about being the only SPI device on their bus.
Co-authored-by: ailurux <ailuruxx@gmail.com >
Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/176
Co-authored-by: jacqueline <me@jacqueline.id.au >
Co-committed-by: jacqueline <me@jacqueline.id.au >
2025-01-10 02:17:11 +00:00
jacqueline
7aad24e073
versiom bump
2025-01-03 11:59:15 +11:00
jacqueline
0ca7328d0a
Hide the album line if the current track has no album
2025-01-02 14:15:48 +11:00
jacqueline
943e3b0f73
Invert the balance value in the settings UI
...
Fixes #167
2025-01-02 09:49:24 +11:00
jacqueline
824fca8cd0
Reorder indexes
...
It turns out the index *id* controls this, which is probably not good!
2024-12-31 12:34:04 +11:00
jacqueline
33e89a0672
Pass through TXXX kv pairs from libtags, treated as vorbis comments
...
mp3 is no good i do not like them at all
2024-12-31 11:32:51 +11:00
jacqueline
b6b62cb8ea
Handle synthesizing missing tag values in TrackTags instead of the indexer
2024-12-31 11:30:23 +11:00
jacqueline
407d2da049
Add ARTISTS= vorbis comment support to libtags
...
This is mostly just for flac handling, since we use libogg directly for
ogg containers, and flac+ogg are the only containers that use vorbis
comments.
2024-12-30 15:14:50 +11:00
jacqueline
4a422f4e54
Use a common code path for parsing delimited track tags
2024-12-30 14:59:54 +11:00
jacqueline
e9e608cfa0
Add a new track tag + index for multiple artists
...
We still mostly use the singular 'Artist' tag for e.g. displaying a nice
name in the now playing screen, but where a track has an 'ARTISTS=' tag,
we'll split by semicolon and then use the resulting list to populate an
index of tracks by artist
2024-12-30 14:59:54 +11:00
jacqueline
46f55e3a1f
Accept more tags for track and disc number
...
- Accept 'DISCNUMBER' as a synonym for 'DISC'
- Accept 'TRACK' as a synonum for 'TRACKNUMBER'
This should help with #146
2024-12-30 10:25:05 +11:00
jacqueline
93eec1ac6c
Set the min brightness setting to 20%
...
This is quite dim, but also slightly higher than the 'screensaver'
brightness in #127 .
2024-12-30 10:08:48 +11:00
jacqueline
98577426a3
version bump
2024-12-20 14:32:36 +11:00
jacqueline
13c5b7b847
Add long-right-press as a shortcut to the now playing screen
...
Implemented for both the wheel and d-pad input methods.
2024-12-18 14:53:45 +11:00
jacqueline
96e2fdd4e2
When no media-specific top level directories exist, assume everything is music
2024-12-17 16:13:40 +11:00
jacqueline
ad47a427af
version bump
2024-12-13 09:54:14 +11:00
jacqueline
470bd7db75
version bump
2024-10-11 16:00:56 +11:00
jacqueline
e345e7f415
RC1 time 😬
2024-10-04 15:44:59 +10:00
jacqueline
8ec8ba2bd8
Merge branch 'main' of codeberg.org:cool-tech-zone/tangara-fw
2024-10-04 15:40:40 +10:00
jacqueline and ailurux
6318b27284
Use cppbor for encoding playlist toc
...
Also fix a locking issue with opening+clearing
Co-authored-by: ailurux <ailuruxx@gmail.com >
2024-10-03 15:19:55 +10:00
jacqueline
90b82e4ad6
autoformat
2024-10-01 17:10:50 +10:00
jacqueline
a879e7b603
Pin some images to ram that we missed
2024-10-01 17:10:35 +10:00
jacqueline
4c2bcbfb56
Support a minor version in the SAMD firmware
2024-10-01 15:46:20 +10:00
jacqueline
6d6f59cb94
Don't enable usb msc when the database is updating
2024-10-01 15:46:00 +10:00
jacqueline
6987f7befc
GC after locking
2024-10-01 14:30:50 +10:00
jacqueline
222465d31b
Run the Lua GC a little more aggresively
2024-10-01 14:15:33 +10:00
jacqueline
825728af23
Ensure the stack is clean after luavgl event callbacks
2024-10-01 13:51:10 +10:00
jacqueline
c1d89e7948
Add lua stub for play_count
2024-09-24 15:26:44 +10:00
jacqueline
faddb229fc
Record play_count in TrackData, incrementing it when tracks finish
2024-09-24 15:24:16 +10:00
jacqueline
94ccd405e3
Retry SD card mounting a few times when talking to the card fails
2024-09-24 13:28:42 +10:00
jacqueline
ec4fb715d0
Hide database indexes that do not contain any tracks
2024-09-24 12:01:13 +10:00
jacqueline
2ac2629c48
Don't try to configure the dac if there is no dac
...
Fixes #106
2024-09-20 14:55:29 +10:00
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
2024-09-20 14:08:47 +10:00
jacqueline
ade5e4bc08
Encode and decode MediaType in TrackData
2024-09-19 16:32:11 +10:00
jacqueline
ea9c7a0498
Include leading slash in media type paths
2024-09-19 16:32:11 +10:00
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
2024-09-19 16:32:11 +10:00
jacqueline
9c95c2b422
Merge branch 'main' of codeberg.org:cool-tech-zone/tangara-fw
2024-09-19 15:03:43 +10:00
jacqueline
111085b857
Add quick USB MSC access to the main menu
2024-09-19 14:53:33 +10:00
jacqueline
9aa77ec5ad
Actually this is more like a minor bump
2024-09-17 13:42:20 +10:00
jacqueline
a650c94d18
Version bump
2024-09-17 13:29:37 +10:00
jacqueline
7d1266404d
Move SPI ISR back to CPU0
...
See if this does anything for the itermittent spi acquire hangs
2024-09-17 11:57:32 +10:00
jacqueline
1106012bde
Merge branch 'main' into jqln/tts
2024-09-13 10:17:34 +10:00
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
2024-09-13 10:12:40 +10:00
jacqueline
d8b9e65e68
Clean up some tts logging and descriptions
2024-09-12 11:44:20 +10:00
jacqueline
c51709f99f
Pause and unpause the current audio output in response to TTS
2024-09-12 10:44:26 +10:00
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
2024-09-11 12:57:04 +10:00
jacqueline
50d6efada5
Use '/sd' instead of '/sdcard' for accessing the sd card
...
it's cleaner
2024-09-10 14:42:40 +10:00
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!
2024-09-09 16:39:22 +10:00
jacqueline
2b1a01705d
Merge branch 'main' into jqln/tts
2024-09-09 15:15:00 +10:00
jacqueline
acdc9789c9
version bump
2024-09-09 10:25:56 +10:00
jacqueline
dacf3efc45
Look for music in "/Music", with the root dir as a fallback
2024-09-06 14:53:01 +10:00
jacqueline
d0f70787b1
m3u and m3u8
2024-09-06 12:41:49 +10:00
jacqueline
172d31ec6d
Ignore comments within playlist files
...
Includes a general cleanup+restructure of playlist.cpp, and fixing the
tests and benchmarks
2024-09-06 12:40:11 +10:00
jacqueline
0426dfd4f2
Support opening m3u and m3u8 files as playlists
2024-09-06 12:39:53 +10:00
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?)
2024-09-03 14:36:54 +10:00
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.
2024-09-03 11:17:13 +10:00
jacqueline
b4a2b4fb6f
Merge branch 'main' of codeberg.org:cool-tech-zone/tangara-fw
2024-08-29 17:21:23 +10:00
jacqueline
3d484211a5
Add reference doc regen instructions
2024-08-29 17:20:55 +10:00
jacqueline
91eaed4b37
use snake_case consistently in lua function names
2024-08-29 15:52:34 +10:00
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
2024-08-28 15:30:53 +10:00
jacqueline
af7a70450e
Support adding filepaths to the track queue
2024-08-28 15:30:25 +10:00
jacqueline and cooljqln
9145722b08
Don't show n+1/n when we run out of queue
2024-08-28 04:07:21 +00:00
jacqueline and cooljqln
71aafc1711
Fix random.cpp not being built
2024-08-28 04:07:21 +00:00
jacqueline and cooljqln
32869129ff
clang-format
2024-08-28 04:07:21 +00:00
jacqueline and cooljqln
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
2024-08-28 04:07:21 +00:00
jacqueline
d3c15bf070
spello
2024-08-28 12:47:29 +10:00
jacqueline
8f4e1ece75
Some minor cleanup, docs, assertions
2024-08-28 09:45:19 +10:00
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.
2024-08-28 09:45:19 +10:00
jacqueline
ef227f8c51
Move the UI task main loop info iram
2024-08-28 09:45:19 +10:00
jacqueline
b1c90278ae
Delete unused half readme
2024-08-28 09:45:19 +10:00
jacqueline
91f26afa75
Merge branch 'main' of codeberg.org:cool-tech-zone/tangara-fw
2024-08-26 13:50:39 +10:00
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)
2024-08-26 13:45:24 +10:00
jacqueline
360cc5342e
it's free iram
2024-08-26 11:03:44 +10:00
jacqueline
ad5760b5ab
version bump
2024-08-19 10:27:12 +10:00
jacqueline
3ed3f1dfeb
Add cool skeumorphic embossing
2024-08-16 11:42:32 +10:00
jacqueline
493f8e1200
Don't break early from clearing PcmBuffer
2024-08-15 11:44:49 +10:00
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.
2024-08-15 10:26:26 +10:00
jacqueline
d94c32d615
Merge branch 'main' of codeberg.org:cool-tech-zone/tangara-fw
2024-08-15 09:44:29 +10:00
jacqueline
40c754a72a
Always initialise bytes_cleared when clearing PcmBuffers
2024-08-14 15:18:57 +10:00
jacqueline
326cc42a63
Don't spuriously report that the current track has changed
...
Fixes the last track in the queue repeating forever
2024-08-13 16:25:47 +10:00
jacqueline and cooljqln
ff7468635f
Remove/Migrated some old sdkconfig flags
2024-08-13 06:02:54 +00:00
jacqueline and cooljqln
6a2d259f46
Move off of deprecated APIs
2024-08-13 06:02:54 +00:00
jacqueline and cooljqln
822c9dc93e
Fix build errors from stricter visibility requirements
2024-08-13 06:02:54 +00:00
jacqueline and cooljqln
5a02f34ed9
Update bt fork to be based on v5.3
2024-08-13 06:02:54 +00:00