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
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