summaryrefslogtreecommitdiff
path: root/src/drivers/include
AgeCommit message (Collapse)Author
2025-01-13Merge pull request 'Update licensing info' (#174) from ↵cooljqln
tjk/tangara-fw:update-reuse into main Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/174 Reviewed-by: cooljqln <cooljqln@noreply.codeberg.org>
2025-01-10Isolate the SD card from the SPI bus when talking to the display (#176)jacqueline
This should help significantly with https://codeberg.org/cool-tech-zone/tangara-fw/issues/121, which seems to be caused by some SD cards being very picky about being the only SPI device on their bus. Co-authored-by: ailurux <ailuruxx@gmail.com> Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/176 Co-authored-by: jacqueline <me@jacqueline.id.au> Co-committed-by: jacqueline <me@jacqueline.id.au>
2025-01-08Add missing copyright/license headersTom Kirchner
2024-12-19Queue repeat modes (#126)ailurux
This replaces the previous system of a separate track and queue repeat, with a RepeatMode type with the following options and behaviours: - OFF: No repeat, queue or track. When the current queue finishes, shuffled or otherwise, playback will stop. - REPEAT_TRACK: The current track will loop indefinitely, unless next is explicitly called through some user action (ie using the next button in the now playing screen) - REPEAT_QUEUE: The entire queue will repeat indefinitely. When shuffled is enabled this will repeat the queue with new combinations each cycle. The repeat mode is persisted in non-volatile storage, so the behaviour will be consistent throughout restarts and queue replacements, and so the "queue repeat by default" use case can be met in this way. In addition, I've made it work a little nicer when the queue runs out in the now playing screen, keeping the previously played track shown and playback can be continued by using the play button or by going to a previous song in the queue. Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/126 Co-authored-by: ailurux <ailuruxx@gmail.com> Co-committed-by: ailurux <ailuruxx@gmail.com>
2024-10-01Support a minor version in the SAMD firmwarejacqueline
2024-09-12Pause and unpause the current audio output in response to TTSjacqueline
2024-09-09Merge branch 'main' into jqln/ttsjacqueline
2024-08-28Timeout when writing output samples throughout the audio pipelinejacqueline
This allows the audio pipeline to remain responsive even when the drain buffer has completely filled. This in turn means that you now see the track info in the 'now playing' screen change if the current track changes whilst you are paused. Since I was fucking around a lot in the audio processor anyway, I also added mono->stereo expansion so that playing mono tracks on Bluetooth no longer destroys your ears.
2024-08-12daniel/theme-setting (#87)ailurux
- Themes can be loaded from disk and built-in - Themes can be selected in a new themes menu of the settings screen - Some touch-ups to existing themes - The saved theme is persisted in nvs Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/87 Reviewed-by: cooljqln <cooljqln@noreply.codeberg.org> Co-authored-by: ailurux <ailuruxx@gmail.com> Co-committed-by: ailurux <ailuruxx@gmail.com>
2024-08-07Recalibrate the touchwheel after unlockingjacqueline
Also power it down whilst we're locked. This saves about half a milliamp.
2024-07-24Add a settings screen with power+battery infojacqueline
Mostly for debugging, but also u can toggle fast charging off and on now
2024-07-12Give Bluetooth settings a bit of a refreshjacqueline
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-11WIP improve bluetooth api and settings screenjacqueline
2024-07-09Give PcmBuffer pairs a name, and wire them up in the audio stackjacqueline
2024-07-05WIP start on accepting two streams in out audio outputjacqueline
2024-06-25Add a basic overview of writing and running testsjacqueline
2024-06-14Improve DAC power+mute management to reduce clicks and popsjacqueline
2024-06-12WIP fix issues introduced by lvgl version bumpjacqueline
2024-06-06daniel/bluetooth-avrc (#80)ailurux
Have a squizzy and lemme know if any issues @cooljqln 🐝 Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/80 Co-authored-by: ailurux <ailuruxx@gmail.com> Co-committed-by: ailurux <ailuruxx@gmail.com>
2024-06-04no more acquire_spi :)jacqueline
2024-06-03Remove spi locking hack + increase max sd frequencyjacqueline
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-03move a bunch of bt callbacks to background tasksjacqueline
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-05-31Introduce a PcmBuffer abstraction for handling source drainingjacqueline
2024-05-15Support setting the samd charge ratejacqueline
We default to the fast one, and do not try setting the charge rate bit on older samd versions
2024-05-14save lra calibration data to nvsjacqueline
2024-05-14Use LRA motors in an auto-calibrated closed-loop modejacqueline
2024-05-08Count samples going in and out of the drain bufferjacqueline
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-02move driver includes into a subdir as welljacqueline
2024-05-02WIP merge cyclically dependent components into one big componentjacqueline
2024-05-02Replace cpp::span shim with std::spanjacqueline
2024-04-22Improve handling of the displayjacqueline
- 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-19Adds LRA haptic support (open-loop only for now).Robin Howard
2024-04-19Fix DRV2065L register usage: we were accidentally setting control2 when we ↵Robin Howard
meant control3.
2024-04-12switch to software volume scaling (it's bad tho i need daniel to do maths ↵jacqueline
for me please)
2024-04-11Migrate all existing control schemes to the cool new worldjacqueline
2024-04-10WIP decompose our giant LVGL driver into smaller classesjacqueline
2024-04-08Warn and block MSC disable if the sd card is busyjacqueline
2024-04-02Support disabling automatic database updatesjacqueline
2024-03-28bump esp-idf to 5.2.1jacqueline
2024-03-20Start using the lock switch polarity bit in nvsjacqueline
2024-03-20Add exact display size to nvs, since it can varyjacqueline
2024-02-13Updated sensitivity nvs storeailurux
2024-02-13Merge branch 'main' into scroll-sensitivityailurux
2024-02-13Sensitivity value now between 0 and 255ailurux
2024-02-13Cache pending nvs writes in memoryjacqueline
Includes refactoring nvs settings to be a bit less duplicated
2024-02-12Scroll sensitivity configurable, but invertedailurux
2024-02-12Remember per-device bluetooth volumejacqueline
2024-02-07Deliver AVRC events on a background threadjacqueline
We don't currently do anything with them, so need to wait for the lock on the bt thread
2024-02-06improve the locking strategy of the bluetooth fsmjacqueline
2024-02-06Retry bt device connectionsjacqueline
i hate this janky-ass protocol