Commit Graph
100 Commits
Author SHA1 Message Date
jacqueline b5d86a9497 little a more stack for main 2023-12-19 17:34:01 +11:00
jacqueline 876db2e7eb Add the touchwheel button to the AKS channel 2023-12-18 11:19:37 +11:00
jacqueline 414f139ae3 Audio fsm usability tweaks
- persist the current volume when the screen locks
 - pause playback if headphones are removed
2023-12-18 11:05:44 +11:00
jacqueline 64b106c13e add a cool lua repl 2023-12-13 16:10:08 +11:00
jacqueline 5a2f0b08e0 Centralise which level is 'locked' 2023-12-12 13:06:53 +11:00
jacqueline 01eb868373 Support more datatypes in track tags 2023-12-12 12:59:38 +11:00
jacqueline bd730c82b0 Do db updates on the bg worker 2023-12-09 10:24:35 +11:00
jacqueline ca5d7b867c Add shuffle and repeat options for the playback queue 2023-12-08 11:11:57 +11:00
jacqueline aaa949f718 Merge branch 'main' of git.sr.ht:~jacqueline/tangara-fw 2023-12-07 17:17:30 +11:00
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
2023-12-07 17:00:30 +11:00
jacqueline 852ce7b917 Add a back button gesture in clickwheel mode 2023-12-06 10:50:37 +11:00
jacqueline 009f69c929 Add basic track queue save/load support
Not wired up yet; I need to do a bunch of cleanup before i wire it in
2023-12-05 17:00:28 +11:00
jacqueline 4f5422e906 Rewrite the track queue to work directly with database iterators 2023-12-05 11:36:34 +11:00
jacqueline 5b272af545 Link to crowd supply 2023-12-01 20:00:43 +11:00
jacqueline 67f2f2de83 thank mr aisler 2023-11-25 10:16:42 +11:00
jacqueline e6844a68b6 implement play/pause 2023-11-25 08:51:14 +11:00
jacqueline f3e4210f24 Remove old unused battery icons 2023-11-25 08:23:32 +11:00
jacqueline 7c6eb2997c Migrate 'now playing' screen to lua 2023-11-24 15:13:10 +11:00
jacqueline 230721cd62 Periodically check int lines instead of relying on interrupts 2023-11-24 07:41:48 +11:00
jacqueline 2b095948b8 Pull frertos funcs into iram, tweak wdt timeouts 2023-11-24 07:17:50 +11:00
jacqueline 09c0e1608f Implement adding to the playback queue from lua 2023-11-23 14:08:46 +11:00
jacqueline b07bfbc6c7 Add a second font, flesh out browser screen 2023-11-23 10:40:04 +11:00
jacqueline 9eb5ae6e94 Use protected mode for lua callbacks wherever possible 2023-11-22 15:46:46 +11:00
jacqueline 06aca259cb Add basic lua browser screen 2023-11-22 14:38:52 +11:00
jacqueline cd46d7bd20 Make lua db iterators async 2023-11-21 16:20:21 +11:00
jacqueline d70ec9bf44 Add lua functions to get database content 2023-11-21 13:49:47 +11:00
jacqueline f34b640588 Add 'btn' support to luavgl 2023-11-20 16:59:53 +11:00
jacqueline 5c7f07e638 Use a non-IRAM-safe interrupt for gpio changes
AFAICT this *should* be IRAM-safe, but there's an xQueueReceiveGeneric
within esp-idf that doesn't appear to be allocated internally
2023-11-20 16:05:53 +11:00
jacqueline effac1917a Use C functions for the backstack, instead of a lua module
Working with the default group and root kinda sucks if you have to do it
from lua!
2023-11-20 14:43:20 +11:00
jacqueline b7f37f6426 Add a generic lua function binding, alongside properties 2023-11-20 13:02:29 +11:00
jacqueline b3b512f10e Don't start readahead until parsing the stream's header is finished
...but also disable readahead for now anyway, since it's unstable
2023-11-20 11:04:20 +11:00
jacqueline d36f314a57 ignore generated lua docs 2023-11-15 20:35:36 +11:00
jacqueline fa57d8ed34 fix incorrect docstring 2023-11-15 20:35:02 +11:00
jacqueline 51d1cee3d7 Set up ldoc and lua-language-server, write some module stubs 2023-11-15 10:22:01 +11:00
jacqueline 0cae95a71e lua statusbar styling tweaks 2023-11-14 14:25:42 +11:00
jacqueline 71ed09a6f7 Add two-way databinding for lua, and flesh out the lua statusbar 2023-11-14 13:20:04 +11:00
jacqueline 8a0a167adb Convert the main menu screen to lua lol 2023-11-12 19:14:09 +11:00
jacqueline 8471046a95 one weird trick to reduce boot time 2023-11-10 14:18:05 +11:00
jacqueline 270bce7212 Fix display off on boot with new lock switch direction 2023-11-10 14:17:32 +11:00
jacqueline 0419def89b Change lock switch direction to match r7 standby 2023-11-10 08:19:27 +11:00
jacqueline c1db38ba42 Increase the size of the system fsm QueueSet
I added the samd to it but forgot to increase the set size.
2023-11-08 16:59:02 +11:00
jacqueline 0e661409b1 Fix missing licenses
Includes removing unused shared_string

This helps with #6, but there's still more work to do
2023-11-07 16:58:08 +11:00
jacqueline 3abf599c4f Improve memory usage of mad codec
- fix leaks
 - ensure the synth data is always in internal ram
2023-11-07 15:57:56 +11:00
jacqueline b463ceaef4 use std::list instead of std::deque for events
std::deque loves to allocate 512 bytes in internal memory just for fun
2023-11-07 14:53:47 +11:00
jacqueline 2b19e57034 Ensure the GPIO ISR is in IRAM
The shared interrupt is flagged as IRAM-capable, so this handler should
be too.
2023-11-07 14:46:32 +11:00
jacqueline 19f0675b44 Make readahead a bit more robust for codecs with different io speeds 2023-11-07 13:38:18 +11:00
jacqueline 9dc8f5646c Make foxenflac a little less memory hungry
We should really just use the xiph library :/
2023-11-07 13:37:58 +11:00
jacqueline 9b52fad86e Merge branch 'main' of codeberg.org:cool-tech-zone/tangara-fw 2023-11-07 10:40:18 +11:00
jacqueline 75a8f836d5 Wait for background readahead to finish before deleting its buffer 2023-11-07 10:39:43 +11:00
jacqueline 1f031f565a Rename the db background task to be more generic 2023-11-07 10:37:12 +11:00
jacqueline 499d5a942f Add a wrapper codec source that does readahead 2023-11-07 10:32:07 +11:00
jacqueline d36fe9be6b Use atomics for new file notification instead of a semaphore 2023-11-07 08:30:26 +11:00
jacqueline 05ce360c99 Flag off a few unused features 2023-11-06 17:11:52 +11:00
jacqueline f9f8e141c2 Fix weird strncpy usage 2023-11-06 17:11:42 +11:00
jacqueline 8309e67a86 Read in larger chunks from SD at a time
This helps a little with the stuttering. Some kind of readahead is
probably the ideal tho.
2023-11-06 17:10:52 +11:00
jacqueline c6f2b52331 Improve bt scanning responsiveness 2023-11-06 08:19:28 +11:00
jacqueline 2dd72320dd Don't try to treat whe whole LC_COLLATE as one big string
it would be a bad idea
2023-10-31 14:54:30 +11:00
jacqueline 2ef022a2f9 Remove loading spinner for 'Coming up'
it's really slow!
2023-10-31 14:28:41 +11:00
jacqueline 81855a78f4 Revert "Improve representation of track numbers in indexes"
This reverts commit a3da259a37.
2023-10-31 10:33:42 +11:00
jacqueline a3da259a37 Improve representation of track numbers in indexes 2023-10-31 09:45:29 +11:00
jacqueline 4cc5fa4c9c Store the current collator in the database 2023-10-31 09:01:34 +11:00
jacqueline b58c081508 add locale-aware colation to db indexes 2023-10-30 15:52:26 +11:00
jacqueline 6ef0fa2b1b improve on clangd setup instructions 2023-10-28 09:23:12 +11:00
jacqueline 4e0aaa825b Free up some IRAM 2023-10-26 16:56:22 +11:00
jacqueline 97d63c5553 Add a target that yells at you if your sdkconfig is out of date 2023-10-26 12:50:02 +11:00
jacqueline 2086ab09b8 Implement incremental updates of database indexes
This makes rescanning the library *so* much faster. Yay!
2023-10-24 16:29:46 +11:00
jacqueline 4f8c127da9 Use an mutable struct + const instead of an immutable class 2023-10-24 12:50:03 +11:00
jacqueline 5b5b792467 Skip old tracks when scanning the sd card 2023-10-24 11:50:06 +11:00
jacqueline ddf0128496 Do not deafen people 2023-10-21 10:48:32 +11:00
jacqueline a8b866aafe Don't crash if the current track source encounters a record with no id
This *shouldn't* normally happen, but it's not worth crashing over.
2023-10-20 12:44:52 +11:00
jacqueline c27880282a Bump esp-idf to v5.1.1 2023-10-20 10:23:32 +11:00
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
2023-10-19 13:01:28 +11:00
jacqueline 782e8dc8c2 Add better controls for queue manipulation 2023-10-18 14:35:28 +11:00
jacqueline 2eb7eaa2a6 Go straight to the playback screen after 'play now' 2023-10-18 09:41:01 +11:00
jacqueline bb91724b94 Codec memory tweaks
- Ensure mad and ogg structs are allocated internally
 - Free old codec before making a new one
2023-10-16 16:15:48 +11:00
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.
2023-10-16 13:52:43 +11:00
jacqueline 96ea6cef88 Fix incorrect track lengths 2023-10-16 13:07:52 +11:00
jacqueline f03093e5c2 Remove early-exit when there's no battery
SAMD is currently returning incorrect states, so this is the cause of
the battery meter often reading 0 when not plugged in
2023-10-16 08:50:50 +11:00
jacqueline f27670a112 acquire spi lock in the opus tag parser 2023-10-14 11:59:34 +11:00
jacqueline ac320e376e Merge branch 'main' of git.sr.ht:~jacqueline/tangara-fw 2023-10-14 11:47:00 +11:00
jacqueline c2dddba30a Add very basic db versioning 2023-10-14 11:46:42 +11:00
jacqueline 542e6f5d90 The tweaking of max internal alloc size will continue until performance improves 2023-10-14 11:30:34 +11:00
jacqueline 5a459ac6e9 Remove accidental debug thing 2023-10-13 20:41:31 +11:00
jacqueline ceba508593 Add modified time to TrackData 2023-10-13 15:29:06 +11:00
jacqueline afbf3c31f4 Use libcppbor for much much nicer db encoding 2023-10-13 15:05:49 +11:00
jacqueline 20d1c280a7 Remove templating of Continuation 2023-10-13 11:13:20 +11:00
jacqueline 53cf476876 Remove mV from top bar, now that we know it's not the issue 2023-10-12 11:51:14 +11:00
jacqueline 936e327974 Claw back a little more memory 2023-10-12 11:20:59 +11:00
jacqueline f0d3a27dd9 Ensure StaticTask_t allocs are internal 2023-10-12 09:02:19 +11:00
jacqueline ddcaa967fd Update battery mV even with the samd doesn't respond 2023-10-12 08:42:51 +11:00
jacqueline b0d85fc0d6 Skip ID3 tags in the mad decoder; mad itself sometimes chokes on them 2023-10-10 13:13:41 +11:00
jacqueline 6c20eafd05 First pass at having some kind of design and theming 2023-10-05 14:24:00 +11:00
jacqueline bf1fc5a2a0 Guard audio pipeline file accesses 2023-10-05 14:23:48 +11:00
jacqueline ee8e523456 Add a basic database reindex screen 2023-10-04 15:38:18 +11:00
jacqueline 28633e857f Implement UI for enqueuing instead of replacing the current track 2023-10-04 14:47:30 +11:00
jacqueline 7a7fafdd92 Guard leveldb file access with the SPI lock too
Same freeze as was previously ocurring, only this one was a fair bit
rarer.
2023-10-04 13:43:43 +11:00
jacqueline 5c04e2ad8d Neaten up the various kinds of inputs, and move volumes to The New Way 2023-10-04 10:18:31 +11:00
jacqueline c851b789fa Write up the new input modes to NVS and settings 2023-10-03 15:00:28 +11:00
jacqueline 09f129662e Add scroll velocity + more input methods 2023-10-03 14:33:36 +11:00
jacqueline 7d5536e2ab Generalise the lvgl input driver in preparation for more input methods 2023-10-03 10:37:29 +11:00