Commit Graph
100 Commits
Author SHA1 Message Date
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
jacquelineandcooljqln be9725c1c7 bump esp-idf to v5.3 2024-08-13 06:02:54 +00:00
jacqueline 9e1fc64c88 Accept a specific tag in loglevel 2024-08-13 14:21:43 +10:00
jacqueline 4fd15f148a Bump up the ui task stack size 2024-08-12 15:09:07 +10:00
jacqueline 2ad83cb210 Shard searching for new tracks across multiple tasks
This also has the effect of breaking up the enormous 'updateIndexes'
method into one call per file, which means database updates also no
longer monopolise a single background task for their entire duration.

avg. time per new file is now <140ms for a completely fresh database,
which is pretty good i think!
2024-08-12 13:20:08 +10:00
jacqueline 28cf749951 Make FileGatherer shaped more like a normal iterator 2024-08-12 13:20:08 +10:00
jacqueline 30aaefca64 Batch up the db operations associated with adding new tracks
This is ostensibly yet another 'prepare for multithreaded updates'
commit, however it does actually save us another 60(!!) odd milliseconds
per track.
2024-08-12 13:20:08 +10:00
jacqueline b5dc53670a Derive the next track id from stored track data, instead of tracking it explicitly
This saves about 1ms per new track right now, but more importantly means
that minting a new track id is now a single atomic operation, rather
than being its own database write. This is a useful property that will
come in handy in a few commits time.
2024-08-12 13:20:08 +10:00
jacqueline f8a3c16aad Use one MMU page per leveldb write buffer
Also drop some of the other tuning changes, since they don't seem to
impact much.
2024-08-12 13:20:08 +10:00
jacqueline 3d7b005dc9 Experiment with putting BT stack allocs in internal ram 2024-08-09 14:19:59 +10:00
jacqueline 5d390c821a Claw back some internal ram
- 'main' doesn't need 12k of internal ram
 - lvgl's draw task doesn't need that much either
 - also lower the bg worker stack sizes whilst we're here, since they've got tons over headroom
2024-08-09 13:11:34 +10:00
jacqueline 2811a3c899 Don't try to serialise a missing playlist name 2024-08-07 14:21:28 +10:00
jacqueline 1ff28233bd Recalibrate the touchwheel after unlocking
Also power it down whilst we're locked. This saves about half a
milliamp.
2024-08-07 12:09:23 +10:00
jacqueline 649cb74f03 Advance the queue when the current track fails to start 2024-07-30 14:56:58 +10:00
jacqueline 2a280c9b4b Start playback immediately when selecting a playlist 2024-07-30 14:56:42 +10:00
jacqueline 64c8496a91 Use a piecewise linear formula to calculate battery % 2024-07-26 16:09:40 +10:00
jacqueline 4210a8ac54 add some helpful hex dump overloads 2024-07-25 09:50:50 +10:00
jacqueline be9564d1c7 Parse single-byte track ids properly 2024-07-25 09:50:31 +10:00
jacqueline 2afad172bd Merge branch 'main' of codeberg.org:cool-tech-zone/tangara-fw 2024-07-24 15:30:32 +10:00
jacqueline 0cc7536684 Add a settings screen with power+battery info
Mostly for debugging, but also u can toggle fast charging off and on now
2024-07-24 15:29:45 +10:00
jacqueline eb5d0d50cd Bump up LVGL's memory allotment 2024-07-24 15:29:17 +10:00
jacqueline 69cd284757 Merge branch 'main' of codeberg.org:cool-tech-zone/tangara-fw 2024-07-19 16:13:50 +10:00
jacqueline 90a0caf286 version bump 2024-07-19 16:13:07 +10:00
jacqueline f00e1d7493 Fix track ids containing '\n' not decoding properly
This has been the cause of the elusive "selecting a track opens it like an index" bug :)
2024-07-19 16:11:22 +10:00
jacqueline ac54cab319 Add Hangul characters to the bundled font 2024-07-18 18:57:51 +10:00
jacqueline 2ab459598c Encode snapshots as PNGs when saving to disk 2024-07-17 17:22:59 +10:00
jacqueline 7012e64a14 Fix an error in the scroll sensitivity UI 2024-07-17 14:13:03 +10:00
jacqueline a3f48074fb Add a console command to dump a snapshot 2024-07-17 13:39:14 +10:00
jacqueline d8ce31e46b Scroll to top when selecting the back button 2024-07-17 13:38:44 +10:00
jacqueline 374bc5e734 Add a screen for FCC and CE regulatory nonsense 2024-07-17 13:38:19 +10:00
jacqueline 0ca82fb1d1 Fix the top bar scrolling off the screen on the licenses screen 2024-07-17 13:37:38 +10:00
jacqueline 24fde7af0c Disable shuffle when selecting 'play all' 2024-07-12 16:14:52 +10:00
jacqueline f78de39a75 Give Bluetooth settings a bit of a refresh
It's now a bit more responsive to stuff happening, gives you more information, and remembers your previously paired devices for faster switching between them.
2024-07-12 14:40:54 +10:00
jacqueline a3eb2dd9dc WIP improve bluetooth api and settings screen 2024-07-11 15:11:28 +10:00
jacqueline a9d2335e1d Break FatfsStreamFactory's dep on ServiceLocator 2024-07-11 12:12:42 +10:00
jacqueline 7d33f99216 i will continue to tweak a2dp constants until my great foe "audio stutter" is defeated for all time 2024-07-10 17:56:25 +10:00
jacqueline ad6a81f3d6 Update the SBC target bitrate
Not sure what this actually controls? Probably good to make it match our encoding configuration tho
2024-07-10 17:30:14 +10:00
jacqueline b63e897268 Move the SPI interrupt alloc to the second core
We're a bit close to the line on core0 allocs, so this helps balance things out a bit.
2024-07-10 15:18:55 +10:00
jacqueline 11bddb1b1d add a console command for dumping intr allocations 2024-07-10 15:18:33 +10:00
jacqueline 53798f4a61 Move audio decoder priorities below bluetooth
The previous priority was leading to a nasty consistent stutter, as reading samples from the drain suffer would lead to the decoder immediately unblocking and preempting the SBC encoding.
2024-07-10 15:17:19 +10:00
jacqueline 686e14794d version bump 2024-07-05 10:14:00 +10:00
jacqueline 1b7fb84220 Tweak app console setup to improve companion connections
- disable regular log output when entering the console
 - disable colour changes for the prompt character
2024-07-03 16:32:08 +10:00
jacqueline 88ac96242f Load fonts asynchronously on a bg task
This saves a second or two from bootup; AFAICT this *mostly* reclaims
the dynamic fonts boot time regression.
2024-07-03 10:43:54 +10:00
jacqueline cbcf1bea61 enable LV_OS_FREERTOS
This mostly just adds a mutex around lv_malloc, which is useful for
upcoming work to make font loading async.
2024-07-02 15:41:13 +10:00
jacqueline 984b874d7e Fix some issues with the splash screen
- fix a use-after-free involving the alerts container that was
   happening when showing the first screen
 - fix some issues where the splash screen wouldn't come up as early as
   it needs to when another bootup task was making heavy use of the spi
   bus
2024-06-28 15:34:11 +10:00
jacqueline 9204b585ae show a message if the sd card is unmounted 2024-06-28 13:50:40 +10:00
jacqueline 624e4555ad tweak file browser icon 2024-06-28 10:57:26 +10:00
jacqueline 6fe08ba73d reapply bindings when showing screens 2024-06-28 10:57:10 +10:00
jacqueline 8695b04a83 Try to print userdata name when dumping lua stack 2024-06-28 10:56:51 +10:00
jacqueline 0db9ffc905 use cuter images on the main menu 2024-06-28 10:56:31 +10:00
jacqueline 9db964ce74 WIP start on an updated main menu ui 2024-06-28 09:57:46 +10:00
jacqueline 95072d865c remove chatty log 2024-06-27 16:13:05 +10:00
jacqueline 688fe79471 require a key press before entering the dev console
this improves our ability to detect terminals that support line editing
2024-06-27 16:12:43 +10:00
jacqueline 1036f1b00e fork esp-idf's dev console, in order to add some hooks 2024-06-27 16:12:18 +10:00
jacqueline 1daa1e9b0f update catch2 to v3.6.0 2024-06-27 14:47:51 +10:00
jacqueline ed44606162 fix catch2 build options not being applied + enable benchmarking 2024-06-27 14:38:25 +10:00
jacqueline 0bbf279e5e Add a button to shuffle+play the current view 2024-06-27 12:22:53 +10:00
jacqueline bfee3742d3 skip the storage test if there's no sd card 2024-06-25 16:51:03 +10:00
jacqueline 525ed2ae1b Add a basic overview of writing and running tests 2024-06-25 16:09:36 +10:00
jacqueline 8db57d6dc5 Unbreak the tests build 2024-06-25 15:23:51 +10:00
jacqueline 2d04e13cc6 Merge branch 'main' of codeberg.org:cool-tech-zone/tangara-fw 2024-06-25 12:46:44 +10:00
jacqueline d75927ff92 Use a curve to estimate battery %
This is a bit more accurate than our previous linear relationship,
particularly at lower voltages.
2024-06-25 12:45:39 +10:00
jacqueline 5e2945f246 version bump 2024-06-14 16:59:46 +10:00
jacqueline 00b1ba58f0 Improve DAC power+mute management to reduce clicks and pops 2024-06-14 14:27:56 +10:00
jacqueline bcaa133a4c fix unused var warning 2024-06-14 13:37:30 +10:00
jacqueline ba808916a8 Add fusion fonts to lua partition 2024-06-14 13:37:06 +10:00
jacqueline 2d6c70d5f6 Fix missing duration when no track is playing 2024-06-14 13:36:29 +10:00
jacqueline 7f2d56e29a Load fonts dynamically from /lua
This unfortunately slows boot time by a bit, but I think we should be able to reclaim that time eventually.
2024-06-14 13:35:42 +10:00
jacqueline 5086ab96ea Merge branch 'jqln/lvgl-bump' 2024-06-14 13:34:41 +10:00
jacqueline 37ed399601 fix uninitialised use 2024-06-13 18:51:06 +10:00
jacqueline 194f0e6b59 Scroll to 'top/bottom' by only 10 at a time
Prevents a nasty device lockup when scrolling infinite lists
2024-06-13 16:10:49 +10:00
jacqueline 14416dc358 Reimplement our patch to lv_list button long modes 2024-06-13 12:46:02 +10:00
jacqueline 82ec765d2d Fix splash screen background 2024-06-13 08:15:11 +10:00
jacqueline e58dcf6dc5 WIP fix issues introduced by lvgl version bump 2024-06-12 18:46:07 +10:00
jacqueline 64bd9053a2 Update LVGL to v9.1.0 2024-06-12 17:54:40 +10:00
jacqueline 611176ed66 Port and fix our luavgl additions 2024-06-12 17:54:10 +10:00
jacqueline bd01bf3845 WIP bump luavgl to latest 2024-06-12 16:29:31 +10:00
jacqueline b02d13f5a5 Removed some old, unused assets 2024-06-12 12:38:06 +10:00
jacqueline a76255ad58 Revert "Removed some old, unused assets"
This reverts commit f1992fc856.
2024-06-12 11:39:56 +10:00
jacqueline f1992fc856 Removed some old, unused assets 2024-06-12 10:45:39 +10:00
jacqueline 1242a199e3 log db update time-per-track 2024-06-04 09:00:08 +10:00
jacqueline 72344b5777 no more acquire_spi :) 2024-06-04 08:09:40 +10:00
jacqueline 39460931d8 Remove spi locking hack + increase max sd frequency
These two changes (mostly the former) dramatically increase
responsiveness when doing database updates; previously we were suffering
from some nasty priority inversion.

afaict the underlying need to acquire_spi seems to be fixed? i.e. spi
bus acquisition is working properly. fingers heavily heavily crossed.
2024-06-03 21:02:24 +10:00
jacqueline 9457f9021a u didnt see shit 2024-06-03 20:12:03 +10:00
jacqueline 4afe9d9b5c move a bunch of bt callbacks to background tasks
we should avoid doing bt state machine stuff from these callbacks, since
espressif calls us whilst holding a lock. ideally we should move all of
them to background threads, but we need to do a deep copy to safely move
a few of them
2024-06-03 19:59:18 +10:00
jacqueline 41d15a831b version bump 2024-05-31 13:02:28 +10:00
jacqueline 661cc976a1 Remove now redudantant 'Iterator.next()' care in TrackIterator
With Daniel's fix, this is no longer needed! Hooray!
2024-05-31 12:03:01 +10:00
jacqueline 23a5d26e8a Merge branch 'main' of codeberg.org:cool-tech-zone/tangara-fw 2024-05-31 11:52:45 +10:00
jacqueline f84474d94d Introduce a PcmBuffer abstraction for handling source draining 2024-05-31 11:52:19 +10:00
jacqueline 2ff8eac022 Start on TTS support by logging the data that will become TTS lines
Includes some misc cleanup of haptic double-triggering (or
non-triggering), since those cases all end up being TTS event
double-reporting, which to me crosses the threshold from "annoying" to
"usability issue"
2024-05-29 14:45:49 +10:00
jacqueline c846146c2f Lowercase BT device name for better auto-reading 2024-05-28 12:53:02 +10:00
jacqueline 0da7ead0a8 Simply some I2SDac management to avoid null pointer accesses
Fixes #72; we were destroying the I2SDac instance, but weren't actually
recording that the output was now in the 'off' state.
2024-05-24 15:12:41 +10:00
jacqueline fb6b0ed49c Fix counting empty stream cues as the current stream 2024-05-24 14:31:32 +10:00