Commit Graph
24 Commits
Author SHA1 Message Date
ailuruxandcooljqln c9ce88a457 ailurux/button-media-controls (#264)
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-19 04:25:20 +00:00
Tom Kirchner d6db4b0826 Add missing copyright/license headers 2025-01-08 16:58:36 -08:00
829d033a44 Improvements to the queue for shuffling/playing all (#170)
Queue now has a separate 'ready' property to indicate it's ready to be used, which is independent from whether it's still loading tracks in. This also improves the response time for shuffling all tracks (we will initially pick a random track in the first 100 tracks whilst the rest of the tracks are loading). This should also fix issues where one song will start playing and then repeat itself when the queue finishes loading, and hopefully solve #160 as well (though I couldn't actually repro this myself).

Co-authored-by: jacqueline <me@jacqueline.id.au>
Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/170
Reviewed-by: cooljqln <cooljqln@noreply.codeberg.org>
Co-authored-by: ailurux <ailuruxx@gmail.com>
Co-committed-by: ailurux <ailuruxx@gmail.com>
2025-01-07 00:00:00 +00:00
Clayton Craftandcooljqln ff87c92175 Write settings to nvs when changing from the setting screen
Otherwise, settings may not actually be saved if the device crashes/
reboots unexpectedly.

Fixes #148
2024-12-29 23:53:42 +00:00
ailuruxandcooljqln 5cdc1141ee Queue repeat modes (#126)
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-12-19 04:29:23 +00:00
jacqueline 13c5b7b847 Add long-right-press as a shortcut to the now playing screen
Implemented for both the wheel and d-pad input methods.
2024-12-18 14:53:45 +11:00
ailurux 3490cceb6b Added listened indicator for audiobooks and podcasts 2024-09-27 16:59:59 +10:00
jacqueline c1d89e7948 Add lua stub for play_count 2024-09-24 15:26:44 +10:00
ailurux 7f43d4d126 Add luals stubs for new methods 2024-09-19 14:04:13 +10:00
ailurux 1f5ce24389 Rename set_style to set_subject 2024-09-10 15:58:03 +10:00
jacqueline 91eaed4b37 use snake_case consistently in lua function names 2024-08-29 15:52:34 +10:00
ailuruxandjacqueline 96a224c0df Lua API improvements and fixes
Co-authored-by: jacqueline <me@jacqueline.id.au>
2024-08-29 15:20:22 +10:00
ailurux 98cc3edb01 Add luals-stub for queue open_playlist 2024-08-15 13:09:38 +10:00
ailuruxandcooljqln d719f9c501 daniel/theme-setting (#87)
- 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-12 03:19:03 +00:00
jacqueline 0cc7536684 Add a settings screen with power+battery info
Mostly for debugging, but also u can toggle fast charging off and on now
2024-07-24 15:29:45 +10:00
jacqueline 7f2d56e29a Load fonts dynamically from /lua
This unfortunately slows boot time by a bit, but I think we should be able to reclaim that time eventually.
2024-06-14 13:35:42 +10:00
jacqueline e58dcf6dc5 WIP fix issues introduced by lvgl version bump 2024-06-12 18:46:07 +10:00
jacqueline 7305820aa9 Add doc for canPop 2024-03-21 10:52:23 +11:00
jacqueline 654dcb34d6 Support pinning decoded images to RAM 2024-03-20 18:23:33 +11:00
jacqueline 686ada3d46 Bring a modified luavgl stub file into our stubs 2024-03-08 14:01:27 +11:00
jacqueline 36a19182be Use luals-stubs as the source of truth for docs, instead of maintaining
separate docs stubs

Includes introducing a cool new script to turn lua-language-server's
json output into markdown documentation.
2024-03-07 17:22:06 +11:00
ailurux 9512bd97bb Add buttons for shuffle + repeat track 2024-02-12 15:36:56 +11:00
Robin HowardandRobin Howard 3f1fadbeef Plumb queue next+previous through to Lua, incl. with stubs and docs. 2024-01-23 02:30:18 +00:00
jacqueline e12a68a74d split lua stubs into one set for ldoc, and one set for lua-ls 2024-01-05 17:15:47 +11:00