Commit Graph
100 Commits
Author SHA1 Message Date
jacqueline 4c9b77ea13 Support setting the samd charge rate
We default to the fast one, and do not try setting the charge rate bit
on older samd versions
2024-05-15 15:57:16 +10:00
jacqueline 00d6c2eca2 save lra calibration data to nvs 2024-05-14 15:21:21 +10:00
jacqueline defe838ab0 Use LRA motors in an auto-calibrated closed-loop mode 2024-05-14 13:14:10 +10:00
jacqueline f991ac9866 version bump 2024-05-10 14:28:44 +10:00
jacqueline 41426151a1 Merge branch 'main' of codeberg.org:cool-tech-zone/tangara-fw 2024-05-10 14:28:03 +10:00
jacqueline 1d0ad4cbf9 stop writing the erm bit 2024-05-10 14:27:42 +10:00
jacqueline 2afeb2989b use long-press shortcuts again, but make them a bit harder to trigger accidentally 2024-05-09 17:05:54 +10:00
jacqueline 690c64c151 Fix playback after restoring queue on boot 2024-05-09 10:59:49 +10:00
jacqueline 265049c519 Count samples going in and out of the drain buffer
This is a more accurate way of knowing which track is playing when, and
also simplifies a lot of fragile logic in audio_fsm
2024-05-08 16:03:03 +10:00
jacqueline b242ba9986 Improve decoder's interface to accept streams 2024-05-07 14:19:19 +10:00
jacqueline 344a46d066 Respond to sd card mounts and unmounts within lua
Includes no longer blocking the main menu on an sd card being inserted!!
2024-05-03 16:40:39 +10:00
jacqueline 964da15a0b Add the collation partition to the build
Includes a small linux-only bash script to generate locale partitions
2024-05-03 12:37:23 +10:00
jacqueline 9fafd797a5 split c blobs of graphics data into their own component
silences some compiler warnings from using c++ flags with c
2024-05-03 10:38:54 +10:00
jacqueline 26eb580043 move driver includes into a subdir as well 2024-05-02 21:52:59 +10:00
jacqueline 7d7f7755d1 start moving include files into subdirs 2024-05-02 21:41:56 +10:00
jacqueline 1573a8c4cd WIP merge cyclically dependent components into one big component 2024-05-02 19:12:26 +10:00
jacqueline a231fd1c8a Replace cpp::span shim with std::span 2024-05-02 17:06:25 +10:00
jacqueline f852e44715 version bump 2024-04-29 13:54:32 +10:00
jacqueline 1736f7874b Use double-clicks instead of long-presses for wheel shortcuts 2024-04-29 13:53:11 +10:00
jacqueline b255ea799e Add lua bindings for override input hooks 2024-04-29 12:42:16 +10:00
jacqueline 920345b940 Support getting a tree of controls + hooks via lua 2024-04-24 16:06:10 +10:00
jacqueline 531475e351 Enable bluetooth after boot, not during boot
This avoids some bluetooth-related devices being delivered before
BootComplete
2024-04-23 10:19:25 +10:00
jacqueline 84dbe074c5 Merge branch 'main' of codeberg.org:cool-tech-zone/tangara-fw 2024-04-22 16:06:51 +10:00
jacqueline db9e5cce1f Improve handling of the display
- Blank the display when locking to prevent burn-in
 - Delay turning the display on until *exactly* after the first lvgl flush
 - Init the display in the ui task to avoid blocking the rest of boot
2024-04-22 16:00:53 +10:00
jacqueline 5b99267cb9 Merge branch 'main' of codeberg.org:cool-tech-zone/tangara-fw 2024-04-19 16:52:33 +10:00
jacqueline 8e113ea9ae squash a bunch of warnings 2024-04-19 16:51:53 +10:00
jacqueline 354ba0325a version bump 2024-04-19 12:45:02 +10:00
jacqueline 727847017d Add a button to update the samd's firmware 2024-04-19 12:44:44 +10:00
jacqueline b17f8a3dcc Merge the StatusBar bindings table with each screen's bindings table 2024-04-18 11:38:53 +10:00
jacqueline cc255f6d77 Suspend property bindings when their screens aren't visible 2024-04-18 10:06:45 +10:00
jacqueline 874218e3ff Fix some bt device issues
- Don't allow adjusting volume if there's no device
 - Cap bt nvs values correctly
 - Persist bt volumes correctly even when the encoded for has a null
   byte (facepalm 4 me)
2024-04-15 14:53:41 +10:00
jacqueline 1baaa6dadc Use more generic 'hooks' for each input device's actions 2024-04-15 14:18:20 +10:00
jacqueline c24dfa6846 make boot go fast 2024-04-12 15:49:41 +10:00
jacqueline 166e8feb3c copy audacious' math it looks good 2024-04-12 15:11:56 +10:00
jacqueline ade0094595 switch to software volume scaling (it's bad tho i need daniel to do maths for me please) 2024-04-12 14:36:03 +10:00
jacqueline b319b3f07f Version bump 2024-04-12 10:20:32 +10:00
jacqueline 49bd389528 use our spi flash in its fastest mode 2024-04-12 10:12:19 +10:00
jacqueline e34842516e show a preview of the new track position while scrubbing 2024-04-11 17:20:41 +10:00
jacqueline f580928cba Remember the source of the previous track when opening a new one 2024-04-11 16:38:34 +10:00
jacqueline 3276d113fc Use a fix scrubber range on the playing screen
this ensure that the amount the scrubber moves for each tick of the
input remains consistent, even when tracks have very different durations
2024-04-11 16:37:57 +10:00
jacqueline d1bf21fcf7 exec a config file on sd 2024-04-11 15:42:24 +10:00
jacqueline 33919e9e3f Migrate all existing control schemes to the cool new world 2024-04-11 15:16:35 +10:00
jacqueline ed82063af5 WIP decompose our giant LVGL driver into smaller classes 2024-04-10 16:56:10 +10:00
jacqueline 2e59325c22 Go to the start of the current track before the previous track when hitting back 2024-04-09 14:15:03 +10:00
jacqueline a6f8468ad5 Merge branch 'main' of codeberg.org:cool-tech-zone/tangara-fw 2024-04-09 11:46:12 +10:00
jacqueline e5c6ffdb8b Unmount storage when there's a bad error 2024-04-09 11:44:20 +10:00
jacqueline f93e3c1c69 fix some struct defaults in low-level drivers 2024-04-09 11:19:41 +10:00
jacqueline 6e73f1a22e Upgrade fatfs component version 2024-04-09 11:04:42 +10:00
jacqueline 96b62321c3 fix some issues with settings screen styling 2024-04-08 15:29:57 +10:00
jacqueline 5f1a6507d8 Warn and block MSC disable if the sd card is busy 2024-04-08 13:50:35 +10:00
jacqueline 251c0ba96d Fix null poiner dereference when turning off i2s output twice 2024-04-04 15:15:42 +11:00
jacqueline 673b6a33ef version bump 2024-04-02 21:20:37 +11:00
jacqueline 63bc8cf896 Ensure we always clean up after ourselves when invoking bindings
this fixes a very nasty lua stack leak
2024-04-02 21:19:54 +11:00
jacqueline c24479d4d8 Merge branch 'main' of codeberg.org:cool-tech-zone/tangara-fw 2024-04-02 20:42:19 +11:00
jacqueline 654fde5f68 Support disabling automatic database updates 2024-04-02 20:41:36 +11:00
jacqueline 1e278d55c4 tweak db performance
- leveldb cache pinned to spiram
 - actually use it during indexing lol
 - all up, saves about 10ms per file (amortised) for an incremental reindex
2024-04-02 19:36:35 +11:00
jacqueline 313c021c3b version bump 2024-03-28 16:37:18 +11:00
jacqueline 35a822fe60 Use 48kHz SBC instead of 44.1 2024-03-28 14:46:09 +11:00
jacqueline d6355ea7c9 Use dual-channel SBC encoding instead of joint-stereo 2024-03-28 14:34:45 +11:00
jacqueline ee29c25b29 Fork ESP-IDF's bluetooth component
i want better sbc encoding, and no cla will stop me
2024-03-28 14:32:49 +11:00
jacqueline 239e6d8950 bump esp-idf to 5.2.1 2024-03-28 14:20:50 +11:00
jacqueline dd3346d381 HACK: auto-accept CFM pairing, and increase the connection timeout
This gets Tangara connecting to most non-trivial devices, including car
headunits and my laptop. We can add a real UI / better timeout handling
for this later (likely via a new BluetoothState?)
2024-03-28 12:51:24 +11:00
jacqueline 4cec85af2d implement handling of stream/playback ending 2024-03-26 16:45:20 +11:00
jacqueline 078b77d0f7 pass stream start/update/end events through the whole pipeline 2024-03-26 12:12:42 +11:00
jacqueline 175bfc4e3e WIP rewrie audio pipeline+fsm guts for more reliability 2024-03-25 17:34:41 +11:00
jacqueline 5c985afd25 Version bump 2024-03-22 17:08:51 +11:00
jacqueline d11eea7e0b use charge status for staying on, not usb status
usb status doesnt seem to be updating properly yet
2024-03-21 13:32:45 +11:00
jacqueline cddfc2fbf7 Dont allow quitting the msc screen when msc is enabled 2024-03-21 13:02:00 +11:00
jacqueline 3dc0989c7f fix db key prefix format, and use per-file modification times 2024-03-21 12:57:11 +11:00
jacqueline dadac304dd Add very basic usb msc ui 2024-03-21 11:51:48 +11:00
jacqueline 7305820aa9 Add doc for canPop 2024-03-21 10:52:23 +11:00
jacqueline 684ff50ef4 Add support for screens declaring that they can't be popped
Needed as prep for usb msc support; you really shouldn't leave the MSC
settings screen until you've disabled usb msc.
2024-03-21 10:50:23 +11:00
jacqueline 21ae6a9626 comment out dev unit hack
the nano code bug has received the hack, so now we don't need it
applying by default anymore
2024-03-21 09:15:44 +11:00
jacqueline 654dcb34d6 Support pinning decoded images to RAM 2024-03-20 18:23:33 +11:00
jacqueline a05d93a1e2 Start using the lock switch polarity bit in nvs 2024-03-20 11:43:33 +11:00
jacqueline 46e6743771 version bump, plus prep for lock switch hack 2024-03-20 11:15:33 +11:00
jacqueline 4cd3c187f9 Add exact display size to nvs, since it can vary 2024-03-20 11:08:35 +11:00
jacqueline 1ea25ab9d3 Use a simpler method of determining charge status
idk why the smarter way of doing it doesn't work reliably, but im sick
of it
2024-03-14 14:40:36 +11:00
jacqueline c5c6506ebc Merge branch 'main' of codeberg.org:cool-tech-zone/tangara-fw 2024-03-13 19:47:18 +11:00
jacqueline 2eb3fd53d7 Update the battery status when plugging/unplugging 2024-03-13 17:07:03 +11:00
jacqueline 686ada3d46 Bring a modified luavgl stub file into our stubs 2024-03-08 14:01:27 +11:00
jacqueline 36a19182be Use luals-stubs as the source of truth for docs, instead of maintaining
separate docs stubs

Includes introducing a cool new script to turn lua-language-server's
json output into markdown documentation.
2024-03-07 17:22:06 +11:00
jacqueline beb1f65495 Merge branch 'main' of git.sr.ht:~jacqueline/tangara-fw 2024-03-07 11:23:31 +11:00
jacqueline eba5adeb8c Show the now playing screen after being locked for a while 2024-03-07 11:16:56 +11:00
jacqueline ef72b25660 use prototype inheritance for lua screens, rather than functions
this gives us a way to give each screen nice little hooks, like
'onShown' and 'onHidden'. later we can use these hooks to disable
bindings for screens that aren't in-use.
2024-03-07 10:59:03 +11:00
jacqueline 1455288190 Restore the previous track position when booting 2024-03-06 13:59:33 +11:00
jacqueline 53c4ea7805 version bump 2024-02-29 16:30:48 +11:00
jacqueline b2f0e6d3a4 Clear the drain buffer also when seeking 2024-02-29 16:30:17 +11:00
jacqueline 173b09b015 Clear the drain buffer when skipping between tracks 2024-02-29 15:47:21 +11:00
jacqueline e7e6c70fb3 Remove unused 'SeekTo' method on codecs 2024-02-29 12:23:49 +11:00
jacqueline 7d3ddac0ea Merge branch 'main' into seek-support 2024-02-29 12:10:44 +11:00
jacqueline d41f9f7033 Use drflac instead of miniflac
This one is fast as hell! Does seeking really good too. Thank u Doctor
Flac.
2024-02-29 12:08:12 +11:00
jacqueline 77145e56f4 basic working flac and mp3 seeking
flac impl is fairly slow as it doesn't use the seek tables; for some
reason miniflac seems to get *really* upset if you seek the stream.
2024-02-28 21:21:23 +11:00
jacqueline 26fc53b18b fix bad copypaste in docs 2024-02-27 13:25:49 +11:00
jacqueline f9aec8b690 split the lua thread registry into its own files 2024-02-22 14:16:33 +11:00
jacqueline 4b2003c78a Make property bindings shared amongst all lua threads 2024-02-22 12:37:01 +11:00
jacqueline 2a25085503 version bump 2024-02-21 14:17:25 +11:00
jacqueline 28651fa7e1 Wait for the sink buffer to drain before stopping playback 2024-02-21 14:13:19 +11:00
jacqueline 29a246a733 Make the drain buffer very large, and move it into PSRAM
the i2s handler and streambuffer metadata are both still in iram for
good performance. otherwise, this seems to be enough to make gapless
playback work.
2024-02-21 14:12:23 +11:00
jacqueline 79be8a8e6e Merge branch 'main' of codeberg.org:cool-tech-zone/tangara-fw 2024-02-20 11:56:24 +11:00