summaryrefslogtreecommitdiff
path: root/src/drivers/nvs.cpp
AgeCommit message (Collapse)Author
2025-08-15Fix default mode being the new onejacqueline
2025-04-22add single touch shourtcuts for touch wheelTab_theFox
This allows you to use the touch wheel for quick playback control: - bottom quadrant for play/pause - left and right quadrant for track skip back / forward - top quadrant to seek back 25 seconds (handy when listening to a podcast)
2025-03-19ailurux/button-media-controls (#264)ailurux
Splits the control scheme into separate schemes for the side buttons and touchwheel, allowing them to be configured independently of each other. At least one input must be used for navigation, and there are guards to prevent locking oneself out of any input. If the input scheme is invalid, a pop up will show alerting the user. Different behaviours can be bound to the side buttons for when the device is locked or unlocked. This PR also adds a mode for these buttons that controls media playback (prev/next on up/down, pressing both buttons toggles play/pause). There are some changes to the way inputs handle locking. Rather than the input devices tracking the current locked mode, different input devices are created on lock depending on the mode that is configured. Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/264 Co-authored-by: ailurux <ailurux@noreply.codeberg.org> Co-committed-by: ailurux <ailurux@noreply.codeberg.org>
2025-03-19Merge pull request 'Support padding the left side of the display with black ↵cooljqln
columns' (#302) from display_padding into main Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/302
2025-02-20Add nvs key for left paddingailurux
2025-02-11TTS: Implement and wire up a TTS toggle in Display Settings (#251)Tursiae
This change introduces the ability to enable or disable the spoken interface/TTS from the on-device settings, either via the UI or the Lua console. This closes out the implementation of issue #245. The TTS setting is only visible in Display settings if voice samples are present in `/.tangara-tts/` on the SD card. Playback of new TTS voice samples is inhibited when TTS is disabled. By default, the setting is enabled, as the device will only play back TTS voices if samples are present on disk. If you need samples to test TTS on your device, feel free to grab the voice samples I have at https://codeberg.org/tursiae/tangara-tts-samples. There's about 80-85% coverage of the UI, with the remainder to be added soonish. Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/251 Co-authored-by: Tursiae <git@tursiae.org> Co-committed-by: Tursiae <git@tursiae.org>
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