|
|
|
@ -4,6 +4,7 @@ |
|
|
|
|
* SPDX-License-Identifier: GPL-3.0-only |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
#include "audio/audio_events.hpp" |
|
|
|
|
#include "lua/lua_database.hpp" |
|
|
|
|
|
|
|
|
|
#include <memory> |
|
|
|
@ -39,6 +40,14 @@ static auto queue_add(lua_State* state) -> int { |
|
|
|
|
audio::TrackQueue& queue = instance->services().track_queue(); |
|
|
|
|
queue.append(id); |
|
|
|
|
}); |
|
|
|
|
} else if (lua_isstring(state, 1)) { |
|
|
|
|
size_t len; |
|
|
|
|
const char* str = luaL_checklstring(state, 1, &len); |
|
|
|
|
std::string path{str, len}; |
|
|
|
|
instance->services().bg_worker().Dispatch<void>([=]() { |
|
|
|
|
audio::TrackQueue& queue = instance->services().track_queue(); |
|
|
|
|
queue.append(path); |
|
|
|
|
}); |
|
|
|
|
} else { |
|
|
|
|
database::Iterator* it = db_check_iterator(state, 1); |
|
|
|
|
instance->services().bg_worker().Dispatch<void>([=]() { |
|
|
|
@ -70,10 +79,11 @@ static auto queue_open_playlist(lua_State* state) -> int { |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static const struct luaL_Reg kQueueFuncs[] = {{"add", queue_add}, |
|
|
|
|
{"clear", queue_clear}, |
|
|
|
|
{"open_playlist", queue_open_playlist}, |
|
|
|
|
{NULL, NULL}}; |
|
|
|
|
static const struct luaL_Reg kQueueFuncs[] = { |
|
|
|
|
{"add", queue_add}, |
|
|
|
|
{"clear", queue_clear}, |
|
|
|
|
{"open_playlist", queue_open_playlist}, |
|
|
|
|
{NULL, NULL}}; |
|
|
|
|
|
|
|
|
|
static auto lua_queue(lua_State* state) -> int { |
|
|
|
|
luaL_newlib(state, kQueueFuncs); |
|
|
|
|