jacqueline
b192975cb1
make bluetooth pairing ui functional
2 years ago
jacqueline
0ea358ab81
Make the onboarding flow basically work. Much still to do!
2 years ago
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.
2 years ago
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.
2 years ago
jacqueline
b0d745d02d
Flesh out onboarding a little, and add a way to get into it
2 years ago
jacqueline
0032896251
Move UI task to priority 0 during playback
...
Also other misc task cleanup
2 years ago
jacqueline
d5d6e3993c
Support changing max volume, persisted to nvs
2 years ago
jacqueline
320fdeb9d8
Use a service locator instead of passing around subsets of drivers between FSMs
2 years ago
jacqueline
4247c9fe7d
store the screen brightness in nvs
2 years ago
jacqueline
f2bb2e2528
Add a brightness slider to settings
2 years ago
jacqueline
c214d4b40e
Add some more icons, and reflect play/pause in top bar
2 years ago
ailurux
6f4ace1dd4
Custom themes and top bar styling
2 years ago
jacqueline
3a0c42f924
Move battery measurement to its own class
2 years ago
jacqueline
795f268737
Add placeholder settings UI
2 years ago
jacqueline
3b3bc64d19
Add modal dialog support
2 years ago
jacqueline
d8533c42df
Start on basic onboarding screens
2 years ago
jacqueline
9d33c33c8d
Lock button does that same thing always
2 years ago
jacqueline
7197da21f6
Basic playlists for upcoming
...
Beware under-testing and bugs. Just getting something barebones in so
that I can do rN+1 bringup
2 years ago
jacqueline
b6bc6b9e47
Ui polish and fleshing out
2 years ago
jacqueline
2dc700b12f
Fix browser navigation crashes
2 years ago
jacqueline
8eabeedbb9
Make title bar a common component, some ui nits
2 years ago
jacqueline
50bb261f67
Make now playing screen interacting, including nice scrolling
2 years ago
jacqueline
ae076936ae
Fix browser view jank
2 years ago
ailurux
d1d4b4a1ab
Add theme class
2 years ago
jacqueline
39f7545cd5
wire up the playing screen with some real data
...
Includes implementing song duration calculation for CBR MP3 files
2 years ago
jacqueline
2f16d23002
Start on wiring up playback screen to real data
2 years ago
jacqueline
75955fc47c
Reset styles, flesh out playback and browser screens
2 years ago
jacqueline
191441ebe2
Add missing files >.<
2 years ago
jacqueline
80170642ea
Add basic browsing and playing ui
2 years ago
jacqueline
371f0a20ca
Clean up gpios interface
2 years ago
jacqueline
0347555d5b
Start on converting gpio expander interupts to fsm events
2 years ago
jacqueline
9763cc955c
Improve encoder driver
...
It actually works and clicks now!
Still a bit rough though. Need to dive into lvgl internals to work out
what it's doing with enc_diff
2 years ago
jacqueline
2a568846bd
Cute brightness fade to avoid ugly startup :)
2 years ago
jacqueline
610991455d
R4 pre-emptive bringup
...
Includes stripping out the IC-specific I2S stuff, and doing more manual
volume control using pots
2 years ago
jacqueline
d2e5d2ab3c
Fix up screen brightness and transitions
2 years ago
jacqueline
8a2a2d2265
Get basic audio playback going again
2 years ago
jacqueline
6fd588e970
Add touchwheel -> encoder adapter
2 years ago
jacqueline
65833649f4
Add some placeholder splash and menu screens
...
Includes a bunch of misc display fixes. Most significantly, our lvgl
tickers was busted.
2 years ago
jacqueline
3b371cfc54
reuse annotate new files
2 years ago
jacqueline
a4f94c812a
Annote E V E R Y T H I N G with license info
2 years ago
jacqueline
5ac4d3949c
Generalise worker tasks, and centralise task priorities + stacks
...
Includes making the display driver use a worker task for flushes, so
that our double buffering actually does something useful /facepalm
2 years ago
jacqueline
a6ab150405
Add tinyfsm, start converting core functions to an FSM-based event loop
2 years ago
jacqueline
7083459cf3
wrap driver instance ownership + di in a class
2 years ago
jacqueline
cc3fd9571e
split out lvgl task into its own component
2 years ago