diff options
Diffstat (limited to 'src/ui/ui_fsm.cpp')
| -rw-r--r-- | src/ui/ui_fsm.cpp | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/src/ui/ui_fsm.cpp b/src/ui/ui_fsm.cpp index e532e693..fe790816 100644 --- a/src/ui/ui_fsm.cpp +++ b/src/ui/ui_fsm.cpp @@ -396,12 +396,16 @@ void Lua::entry() { {"track", &sPlaybackTrack}, {"position", &sPlaybackPosition}, }); - sLua->bridge().AddPropertyModule("queue", { - {"position", &sQueuePosition}, - {"size", &sQueueSize}, - {"replay", &sQueueRepeat}, - {"random", &sQueueRandom}, - }); + sLua->bridge().AddPropertyModule( + "queue", + { + {"next", [&](lua_State* s) { return QueueNext(s); }}, + {"previous", [&](lua_State* s) { return QueuePrevious(s); }}, + {"position", &sQueuePosition}, + {"size", &sQueueSize}, + {"replay", &sQueueRepeat}, + {"random", &sQueueRandom}, + }); sLua->bridge().AddPropertyModule("volume", { {"current_pct", &sVolumeCurrentPct}, @@ -476,6 +480,16 @@ auto Lua::PushLuaScreen(lua_State* s) -> int { return 0; } +auto Lua::QueueNext(lua_State*) -> int { + sServices->track_queue().next(); + return 0; +} + +auto Lua::QueuePrevious(lua_State*) -> int { + sServices->track_queue().previous(); + return 0; +} + auto Lua::PopLuaScreen(lua_State* s) -> int { PopScreen(); luavgl_set_root(s, sCurrentScreen->content()); |
