Commit Graph
100 Commits
Author SHA1 Message Date
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
jacquelineandailurux 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
jacquelineandcooljqln 9145722b08 Don't show n+1/n when we run out of queue 2024-08-28 04:07:21 +00:00
jacquelineandcooljqln 71aafc1711 Fix random.cpp not being built 2024-08-28 04:07:21 +00:00
jacquelineandcooljqln 32869129ff clang-format 2024-08-28 04:07:21 +00:00
jacquelineandcooljqln 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
jacquelineandcooljqln ff7468635f Remove/Migrated some old sdkconfig flags 2024-08-13 06:02:54 +00:00
jacquelineandcooljqln 6a2d259f46 Move off of deprecated APIs 2024-08-13 06:02:54 +00:00
jacquelineandcooljqln 822c9dc93e Fix build errors from stricter visibility requirements 2024-08-13 06:02:54 +00:00
jacquelineandcooljqln 5a02f34ed9 Update bt fork to be based on v5.3 2024-08-13 06:02:54 +00:00