Commit Graph
100 Commits
Author SHA1 Message Date
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
jacqueline a9008884c9 Improve dac startup sequencing to reduce the clicky poppy 2023-09-05 16:01:05 +10:00
jacqueline 020d42d431 Be tolerant of SAMD timeouts 2023-09-05 15:37:22 +10:00
jacqueline f0d82cfb09 Fix display buffers not actually being in DMA ram 2023-09-05 15:36:33 +10:00
jacqueline b413b2f264 Add all albums index, do some locales prep 2023-09-05 14:36:28 +10:00
jacqueline 02c1eb4be3 Tweak display DMA buffer size 2023-09-05 10:12:15 +10:00
jacqueline 0032896251 Move UI task to priority 0 during playback
Also other misc task cleanup
2023-09-05 09:51:10 +10:00
jacqueline 382d82a14b Fix bad merge 2023-09-04 16:34:58 +10:00
jacqueline 3180edb7b4 Merge branch 'main' of git.sr.ht:~jacqueline/tangara-fw 2023-09-04 16:18:11 +10:00
jacqueline d5d6e3993c Support changing max volume, persisted to nvs 2023-09-04 16:17:55 +10:00
jacqueline 6d831fa7a8 Don't reuse iterators across page fetches
This was done for performance reasons, but performance seems okay
without it, and it introduces a bunch of memory management headaches.
2023-09-04 11:19:34 +10:00
jacqueline 697d231484 Fix incorrect settings submenu 2023-09-04 10:00:09 +10:00
jacqueline b90c08b536 enable the qr code lib for onboarding 2023-09-04 09:51:52 +10:00
jacqueline 25c2df57dd Fix some release build warnings 2023-09-04 09:51:38 +10:00
jacqueline cccee29c3a Turn the touchwheel back on after sleep 2023-09-04 09:47:22 +10:00
jacqueline 320fdeb9d8 Use a service locator instead of passing around subsets of drivers between FSMs 2023-08-30 16:48:10 +10:00
jacqueline 4247c9fe7d store the screen brightness in nvs 2023-08-29 16:07:56 +10:00
jacqueline 773f285767 Don't fade for brightness slider changes 2023-08-29 12:18:15 +10:00
jacqueline f2bb2e2528 Add a brightness slider to settings 2023-08-29 12:10:27 +10:00
jacqueline 8ee5e781e7 Use gamma correction for display brightness 2023-08-29 12:09:58 +10:00
jacqueline 1200479045 one weird trick to avoid 5khz tone 2023-08-28 20:54:02 +10:00
jacqueline c214d4b40e Add some more icons, and reflect play/pause in top bar 2023-08-28 20:36:31 +10:00
jacqueline fa7fa98dc1 Merge branch 'main' of git.sr.ht:~jacqueline/tangara-fw 2023-08-28 15:01:24 +10:00
jacqueline 85379b359c Add some cool battery icons 2023-08-28 15:01:09 +10:00
jacqueline 3a0c42f924 Move battery measurement to its own class 2023-08-28 13:26:53 +10:00
jacqueline a1327763ab Support play/pause toggling 2023-08-28 10:36:18 +10:00
jacqueline 8ff93f5467 Make idle state more robust + check playback state 2023-08-28 10:18:02 +10:00
jacqueline 0f5cf25e73 More performance and usability tweaks
- pin ui and decoder to opposite cores
 - disable touch wheel when controls are locked
2023-08-25 16:59:39 +10:00
jacqueline 485e9adfce Performance tweaks for smoother tunes
- Pin the decoder task to APP_CORE to reduce context switches
 - Increase sample buffer sizes
2023-08-25 15:58:54 +10:00
jacqueline 795f268737 Add placeholder settings UI 2023-08-25 15:13:25 +10:00
jacqueline 3b3bc64d19 Add modal dialog support 2023-08-25 10:13:37 +10:00
jacqueline 079b2b53d4 Improve DAC startup for r6 2023-08-24 19:18:57 +10:00
jacqueline 394e3e9466 Throttle framerate a little more 2023-08-24 19:17:56 +10:00
jacqueline 58854bc55d Improve centre button responsiveness 2023-08-24 19:17:37 +10:00
jacqueline ee949829d9 Add battery % with change events 2023-08-22 15:55:25 +10:00
jacqueline 9c105cf613 Good idea to commit all the files! 2023-08-22 13:39:49 +10:00
jacqueline 588857fef8 good idea to unmute the dac! 2023-08-22 13:39:40 +10:00
jacqueline 764b01e913 Add idle->standby support when locked and no music 2023-08-21 15:43:23 +10:00
jacqueline 27f329a9db Add an app console triggered shutdown 2023-08-20 21:10:05 +10:00
jacqueline 51cb168f79 sorry daniel 2023-08-18 16:05:06 +10:00
jacqueline cad7060540 Add interrupts for samd changes 2023-08-18 15:40:24 +10:00
jacqueline 697ec3c584 Fix no battery detection 2023-08-18 14:25:46 +10:00
jacqueline 65a1f09a90 Support app console commands for the samd 2023-08-18 12:32:18 +10:00
jacqueline d8533c42df Start on basic onboarding screens 2023-08-17 15:58:32 +10:00
jacqueline f3c5eec025 Rename the main audio tasks to be more sensible 2023-08-16 15:11:44 +10:00
jacqueline c635d5011c Put more audio pipeline wiring in control of the audio fsm 2023-08-16 11:40:49 +10:00
jacqueline 4e27de21e4 clean up a bunch of obselete audio code 2023-08-16 10:57:55 +10:00
jacqueline 62dce8d9fc Save current output mode to nvs 2023-08-16 10:22:30 +10:00
jacqueline 544b0013b1 persist preferred bluetooth device in nvs 2023-08-15 17:32:57 +10:00
jacqueline d6b83fcf4a Flesh out basic bluetooth support
No ui yet, and performance isn't great. It kinda works though!!
2023-08-15 13:53:30 +10:00
jacqueline 205e305350 Implement the easy seeks 2023-08-11 12:32:50 +10:00
jacqueline 9ddaca4fcb remove unused dithering stuff 2023-08-11 12:26:29 +10:00
jacqueline a4ba7350a7 Fix docs nits, avoid recalculating frame length 2023-08-11 08:39:52 +10:00
jacqueline 06283e0714 Fix issues with timing stereo streams 2023-08-10 22:24:47 +10:00
jacqueline c37ccb9851 Reintroduce track timer, now relying more on codecs 2023-08-10 21:35:16 +10:00
jacqueline 958160aa54 Use the libspeexdsp resampler
AFAICT it runs a little slower? but it's fixed point, and has much
better understood audio characteristics.
2023-08-10 19:12:38 +10:00
jacqueline d8fc77101d Give codecs complete control of their input files 2023-08-10 15:33:00 +10:00
jacqueline 67caeb6e3c Use opusfile instead of working directly with ogg and opus 2023-08-09 12:00:02 +10:00
jacqueline 578c3737f8 Add vorbis support whilst we're here 2023-08-09 11:22:08 +10:00
jacqueline f277bd5d0c Add tremor, add new ogg rules to make tremor deps happy 2023-08-08 23:34:02 +10:00
jacqueline 1b6811663c Add libogg for handling opus streams reasonably 2023-08-08 23:14:42 +10:00
jacqueline 6c3501dbcb Flesh out opus decoder. it doesn't work! i hate opus. 2023-08-08 22:16:31 +10:00
jacqueline e1181fbe59 Merge branch 'main' into opus 2023-08-08 20:25:42 +10:00
jacqueline 592f231627 Improve sd card errors 2023-08-08 17:11:13 +10:00
jacqueline 520ec6d98a Add skeleton of bluetooth FSM 2023-08-08 17:04:34 +10:00
jacqueline e2479ee7aa Update sdkconfig 2023-08-08 16:18:42 +10:00
jacqueline 93ccf11fc5 Investigate and improve core pinning for resampler 2023-08-08 13:47:08 +10:00
jacqueline 6c99f9f2fe Fix resampler issue, do a little performance tuning 2023-08-08 11:36:10 +10:00
jacqueline 49f82d2f3d Use a timer to keep framerate consistent 2023-08-07 20:47:59 +10:00
jacqueline d71682d26e Add a console command for task-level performance checks 2023-08-07 20:47:42 +10:00
jacqueline 40475b15e8 Remove unused pcmconv impls 2023-08-07 19:15:53 +10:00
jacqueline c38754401b Downscaling working! 2023-08-07 18:22:15 +10:00
jacqueline a66c342806 Resampling *basically* working? Just cleanup and buffering issues 2023-08-07 15:20:12 +10:00
jacqueline 4118d880c3 Fix dangle build issues, do some tweaks to investigate performance 2023-08-07 09:47:44 +10:00
jacqueline 60f7677132 Do our own resampling 2023-08-04 20:07:44 +10:00
jacqueline 3b240d1cd5 remove stb_vorbis
it doesnt work very well
2023-08-03 16:16:46 +10:00
jacqueline 31f6123b7b Tweak buffer size and placement 2023-08-03 16:04:27 +10:00
jacqueline 3511852f39 Add very limited resampling (it's slow as shit) 2023-08-03 15:32:28 +10:00
jacqueline fbebc52511 Add libsamplerate for resampling decoder output 2023-08-01 14:00:31 +10:00
jacqueline 55429fa623 Ignore helix config 2023-08-01 12:14:26 +10:00
jacqueline 955a8ce303 Basic nvs init + bluetooth in the build 2023-08-01 12:13:48 +10:00
jacqueline c3f40a8cc3 Start on opus decoder structure 2023-08-01 10:15:03 +10:00
jacqueline 23393312b7 checkin in opus reference decoder 2023-08-01 10:14:23 +10:00
jacqueline d41de537a0 fix libtags m4a issue 2023-07-31 12:19:04 +10:00
jacqueline 34a4207fb9 Log specifics of hash collisions 2023-07-31 11:33:58 +10:00
jacqueline 8f0b942cdd Return zeroes when the touchwheel isn't connected 2023-07-31 11:09:31 +10:00
jacqueline cdaa2ac97a Add duration for flacs 2023-07-31 11:06:27 +10:00
jacqueline 0a8d2fd12e fix flac playback. now it plays nice and smooth :) 2023-07-31 10:14:03 +10:00
jacqueline a5022ac6cb fix bsd-ish callback behaviour 2023-07-31 09:52:00 +10:00
jacqueline 485eed2890 use libtag duration where available 2023-07-31 09:41:49 +10:00