Commit Graph
100 Commits
Author SHA1 Message Date
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
jacqueline d948585b00 add a lua binding for playing a sine wave 2024-05-17 11:40:43 +10:00
jacqueline 51bbb6a495 Add a stream source that generates a sine wave 2024-05-16 12:21:05 +10:00
jacqueline c1f7adf227 Add a 'decoder' for streams already in our native format 2024-05-16 12:20:50 +10:00
jacqueline e8f5e73b1a Handle tracks with no duration in the playback screen 2024-05-16 12:20:15 +10:00
jacqueline ddc03204e1 Merge branch 'main' of codeberg.org:cool-tech-zone/tangara-fw 2024-05-15 15:58:03 +10:00
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