summaryrefslogtreecommitdiff
path: root/src/tangara/lua
AgeCommit message (Collapse)Author
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-02-25Fix bug with filesystem iterator prev off by one sometimesailurux
2025-02-20Fix file iterator prev to work with hidden files presentailurux
2025-02-18Hotfix: Update filesystem iterator to work with changes to infinite listailurux
2025-02-11Fix bug in infinite list causing items to be removed (#253)ailurux
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-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-01-24Resolve some issues with dangling index records (#193)cooljqln
- The tag parser's cache is now cleared between indexing runs, preventing stale data from being used - Multi-value tag fields (genres, all artists) are now properly ingested in the tag value cache - Cleaning up removed index records now properly handles the case where only a subset of the records for multi-value tags need to be deleted. - Synthesizing missing tag values is now done in the tag parser instead of TrackTags, which resolves some issues with multi-value tag callbacks from libtags not being handled properly These fixes seem to address all the issues with stale index records we were able to repro (including the issues in https://codeberg.org/cool-tech-zone/tangara-fw/issues/191), but if you've got any more cases with consistent repros then lmk! Co-authored-by: ailurux <ailuruxx@gmail.com> Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/193
2025-01-17ailurux/now-playing-menu (#184)ailurux
Overflow menu for the now playing screen. New home for the info screen here. Adds quick navigation to current album or artist (thanks tjk!) and clear queue button. Also fixed up the way the now playing screen looks when queue is cleared (remove previous duration and don't show "loading" if nothing is actively loading). Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/184 Co-authored-by: ailurux <ailuruxx@gmail.com> Co-committed-by: ailurux <ailuruxx@gmail.com>
2025-01-02Expose more properties to Lua for UITom Kirchner
2024-12-29Write settings to nvs when changing from the setting screenClayton Craft
Otherwise, settings may not actually be saved if the device crashes/ reboots unexpectedly. Fixes #148
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-01Run the Lua GC a little more aggresivelyjacqueline
2024-09-27Added listened indicator for audiobooks and podcastsailurux
2024-09-24Record play_count in TrackData, incrementing it when tracks finishjacqueline
2024-09-24Retry SD card mounting a few times when talking to the card failsjacqueline
2024-09-17Implements seeking to saved position for tracksailurux
2024-09-17Added lua methods to access track dataailurux
2024-09-10Rename set_style to set_subjectailurux
2024-08-29use snake_case consistently in lua function namesjacqueline
2024-08-28When clicking a track in the file browser, play itjacqueline
Includes adding a `playback.is_playable` for working out whether or not a particular file is able to be played
2024-08-28Support adding filepaths to the track queuejacqueline
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-30daniel/playlist-queue (#84)ailurux
Support for playlist files being opened along side the queue's own playlist. Playlists can be opened from the file browser, if the file ends in ".playlist" (will add support for .m3u as well eventually) Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/84 Co-authored-by: ailurux <ailuruxx@gmail.com> Co-committed-by: ailurux <ailuruxx@gmail.com>
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-03Load fonts asynchronously on a bg taskjacqueline
This saves a second or two from bootup; AFAICT this *mostly* reclaims the dynamic fonts boot time regression.
2024-06-28Try to print userdata name when dumping lua stackjacqueline
2024-06-14Load fonts dynamically from /luajacqueline
This unfortunately slows boot time by a bit, but I think we should be able to reclaim that time eventually.
2024-06-12WIP fix issues introduced by lvgl version bumpjacqueline
2024-06-04no more acquire_spi :)jacqueline
2024-05-30Fix prev/next behaviour on database iteratorailurux
Fixes issue with apparent duplicated tracks in the infinite list
2024-05-17add a lua binding for playing a sine wavejacqueline
2024-05-10Minor fixes before PRailurux
2024-05-10Fix imports after mergeailurux
2024-05-10Merge branch 'main' into file-browserailurux
2024-05-02move driver includes into a subdir as welljacqueline
2024-05-02start moving include files into subdirsjacqueline
2024-05-02WIP merge cyclically dependent components into one big componentjacqueline