summaryrefslogtreecommitdiff
path: root/src/drivers/nvs.cpp
AgeCommit message (Collapse)Author
2025-02-07Add centre button haptic feedback on touch, and setting to disable/lessen ↵ailurux
haptics (#246) This adds a way for feedback devices to respond to events from outside of LVGL's event system, being passed from input device to feedback device through a vector. This was done so that touch events and long-press triggers can now give feedback through haptics. This PR also adds haptic modes, saved in nvs similarly to input and locked input modes, to disable or change the haptic effect behaviour based on which mode is selected. Finally, this also fixes a bug in which some click events would not trigger haptics, at the expense of re-introducing the (undesired?) behaviour of clicking a button that transitions to a new screen causing a double click. Relevant issues this should close: #195, #233, and (partially?) #120 Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/246 Co-authored-by: ailurux <ailuruxx@gmail.com> Co-committed-by: ailurux <ailuruxx@gmail.com>
2025-02-02Persist locked control mode settingTess Eisenberger
2025-02-02Add optional support for changing volume while lockedTess Eisenberger
This adds a new Controls setting for adjusting the behavior when locked, and an option for allowing volume control.
2025-02-02Add a new setting for input controls when lockedTess Eisenberger
This is just the plumbing of the new setting. The input methods will come in subsequent patches.
2025-01-29Actually read+write the fast charge nvs bitjacqueline
It turns out that our error prone method of managing nvs keys has led to an error! We took a look over the other keys here and it didn't look like any others were missing. Fixes #204
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-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-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-05-14save lra calibration data to nvsjacqueline
2024-05-02move driver includes into a subdir as welljacqueline
2024-05-02WIP merge cyclically dependent components into one big componentjacqueline
2024-04-19Adds LRA haptic support (open-loop only for now).Robin Howard
2024-04-15Fix some bt device issuesjacqueline
- Don't allow adjusting volume if there's no device - Cap bt nvs values correctly - Persist bt volumes correctly even when the encoded for has a null byte (facepalm 4 me)
2024-04-02Support disabling automatic database updatesjacqueline
2024-03-20Add exact display size to nvs, since it can varyjacqueline
2024-02-13Fixed clamp and write on scroll sensitivityailurux
2024-02-13Updated sensitivity nvs storeailurux
2024-02-13Merge branch 'main' into scroll-sensitivityailurux
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-12Remove some logging whoopsiesjacqueline
2024-02-12Remember per-device bluetooth volumejacqueline
2024-02-06fix various of bluetooth issuesjacqueline
connecting and disconnecting is a bit more consistent now!
2024-02-06Start keeping lock switch polarity in nvsjacqueline
i will use this to do a sneaky trick; in-place upgrading brendan, hailey, and erin's devices
2024-01-15Begin migration of remaining screens to Luajacqueline
2023-10-28Annotates the kTag with maybe_unused; they're only used for logging.Robin Howard
2023-10-03Write up the new input modes to NVS and settingsjacqueline
2023-09-26Make NVS access synchronous againjacqueline
Everything relevant is back in internal ram, and likely to stay there.
2023-09-22make bluetooth pairing ui functionaljacqueline
2023-09-13Make the onboarding flow basically work. Much still to do!jacqueline
2023-09-08Flesh out onboarding a little, and add a way to get into itjacqueline
2023-09-04Support changing max volume, persisted to nvsjacqueline
2023-08-29store the screen brightness in nvsjacqueline
2023-08-16Save current output mode to nvsjacqueline
2023-08-15persist preferred bluetooth device in nvsjacqueline
2023-08-01Basic nvs init + bluetooth in the buildjacqueline