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
jacqueline
f2bad894cd
Show battery voltage in top bar
2023-10-03 09:52:30 +11:00
jacqueline
3df4cc9e3d
Make accessors in RelativeWheel const
2023-10-03 09:36:28 +11:00
jacqueline
95618239e6
Fix tasks config flag guarding
2023-09-29 15:35:00 +10:00
jacqueline
ba940baa0a
Add a lock around the SPI bus
...
This seems to have been the cause of recurring deadlocks that have been
difficult to repo.
2023-09-29 15:17:32 +10:00
jacqueline
c53802f308
Add a core dump command
2023-09-29 12:34:27 +10:00
jacqueline
c876c00654
add a fun and cute little loading state :)
2023-09-29 10:40:16 +10:00
jacqueline
6a47edcd35
Use databinding for the top bar. It's so nice now!
2023-09-28 10:43:48 +10:00
jacqueline
f09ba5ffd5
Use bindey for databinding instead of hand rolling ui updates
2023-09-28 08:29:55 +10:00
jacqueline
f168bfab76
Don't post events from ISRs
2023-09-27 14:39:19 +10:00
jacqueline
ce57b236c4
Move every alloc over 256 bytes into PSRAM
2023-09-26 21:46:05 +10:00
jacqueline
252f685ef1
Make NVS access synchronous again
...
Everything relevant is back in internal ram, and likely to stay there.
2023-09-26 21:07:44 +10:00
jacqueline
96252973d9
Make task tracing tools conditionally compiled
2023-09-26 20:47:07 +10:00
jacqueline
c36bbe4e7d
Claw back some more IRAM from unused components
2023-09-26 20:36:17 +10:00
jacqueline
abc626c1da
Place a2dp stream callback into IRAM
2023-09-26 20:36:05 +10:00
jacqueline
8608f9367f
Tune buffer sizes and locations for I2S
2023-09-26 17:23:34 +10:00
jacqueline
4d99d22e10
std::string -> std::pmr::string in psram
2023-09-26 13:36:07 +10:00
jacqueline
f6d0642109
Prepare for PMR with a memory_resource that understands heap_caps_malloc
2023-09-26 11:23:53 +10:00
jacqueline
2849399d54
Force large c++ arrays into PSRAM
...
This is mostly targetted at leveldb_ which is rude and does not support
custom allocators
2023-09-26 10:18:33 +10:00
jacqueline
a87790a424
Add basic leak detection tooling
2023-09-26 10:14:07 +10:00
jacqueline
a2eb0e8961
Fix incorrect default theme
2023-09-25 22:37:46 +10:00
jacqueline
5a20b0bc1a
Move UI task back to internal stack
...
It really is *so* fast
2023-09-25 22:34:30 +10:00
jacqueline
dd13a234d2
Place LVGL's memory pool into PSRAM
2023-09-25 15:26:05 +10:00
jacqueline
0802b4e528
Unpin decoder task
2023-09-25 15:25:32 +10:00
jacqueline
cd44e0daa1
Move a few task stacks into internal ram for better speed
2023-09-25 15:23:58 +10:00
jacqueline
c00e7e37d9
Fix incorrect palette introduced by hardware screen rotation
2023-09-25 15:23:06 +10:00
jacqueline
7ffeea4009
Don't acquire the spi bus in the display driver
...
Interrupt-based transactions don't need it, and it causes issues.
2023-09-25 15:22:37 +10:00
jacqueline
41c4dce79a
Split heap stats and task stats into different functions
2023-09-25 15:22:05 +10:00
jacqueline
2f626f6224
Bump up nvs writer task size for safety
2023-09-25 09:47:01 +10:00
jacqueline
f57a9688c9
Allocate display spi buffers statically
...
It works okay now :)
2023-09-22 21:19:19 +10:00
jacqueline
96944f088f
Reclaim some internal ram
2023-09-22 21:19:19 +10:00
jacqueline
ca75507146
Make esp-idf bluetooth logging less chatty
2023-09-22 21:19:19 +10:00
jacqueline
972edd7468
Rotate the display in hardware instead of software
2023-09-22 21:19:19 +10:00
jacqueline
b192975cb1
make bluetooth pairing ui functional
2023-09-22 21:19:19 +10:00
jacqueline
cbd99b2134
Increase sample buffer sizes
2023-09-22 21:19:19 +10:00
jacqueline
022c222e85
Add heap stats to the task stats output
2023-09-22 21:19:19 +10:00
jacqueline
59e0de1fe2
Add super basic readme for the sourcehut project
2023-09-20 15:16:26 +10:00
jacqueline
4a686fee7e
README.md -> BUILDING.md
2023-09-20 15:07:58 +10:00
jacqueline
13047fe22d
actually keep the build instructions as README bc idk what to write lol
2023-09-20 14:34:10 +10:00
jacqueline
7827873e16
Freshed up building instructions, move to a better-named file.
2023-09-20 14:28:06 +10:00
jacqueline
0ea358ab81
Make the onboarding flow basically work. Much still to do!
2023-09-13 10:09:04 +10:00
jacqueline
b0aa9ab391
Fix ui nits for playback screen
...
The top bar now updates properly when starting playback, and the
upcoming list items no longer marquee.
2023-09-12 14:43:28 +10:00
jacqueline
ad74a45921
Use only one buffer for lvgl's display driver
...
We weren't actually making use of the double buffering, and it's a pain
to implement properly.
2023-09-12 14:30:28 +10:00
jacqueline
86296c187f
Use interrupt-based spi for the display
...
This solves our "audio stutters while scrolling" problem better! Turns
out the real root cause was the polling SPI driver blocking a whole CPU
during playback.
2023-09-12 14:18:04 +10:00
jacqueline
b0d745d02d
Flesh out onboarding a little, and add a way to get into it
2023-09-08 16:58:30 +10:00
jacqueline
64d9cec8b0
fix some leveldb errors on transition to standby
...
turns out you gotta free the iterators. wow!!
2023-09-08 15:19:13 +10:00
jacqueline
e8a972cc7f
Just wait for touchwheel reboot instead of being clever
2023-09-08 15:15:10 +10:00
jacqueline
6b9fb9edac
Support retries for samd and touchwheel i2c
2023-09-08 13:45:05 +10:00
jacqueline
493a70b07c
Adjust partition table for 4MiB app size + fill the rest of the space
2023-09-08 13:22:41 +10:00
jacqueline
4b627acee6
Reset the touchwheel during boot
2023-09-08 10:24:18 +10:00
jacqueline
63215ccf16
Fix missing track number issues
2023-09-06 12:38:40 +10:00
jacqueline
dad14baa73
Add an opus-specific tag parser
2023-09-06 10:14:48 +10:00