From a921cad84af2c91717610002dd7404ab01ae597c Mon Sep 17 00:00:00 2001 From: MihailRis Date: Wed, 6 Mar 2024 00:40:48 +0300 Subject: [PATCH] set_loop, is_loop --- src/logic/scripting/lua/libaudio.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/logic/scripting/lua/libaudio.cpp b/src/logic/scripting/lua/libaudio.cpp index ced50826..da55ce55 100644 --- a/src/logic/scripting/lua/libaudio.cpp +++ b/src/logic/scripting/lua/libaudio.cpp @@ -205,6 +205,17 @@ static int l_audio_resume(lua_State* L) { return 0; } +/// @brief audio.set_loop(speakerid: integer, value: bool) -> nil +static int l_audio_set_loop(lua_State* L) { + lua::luaint id = lua_tonumber(L, 1); + auto speaker = audio::get_speaker(id); + if (speaker != nullptr) { + bool value = lua_toboolean(L, 2); + speaker->setLoop(value); + } + return 0; +} + /// @brief audio.set_volume(speakerid: integer, value: number) -> nil static int l_audio_set_volume(lua_State* L) { lua::luaint id = lua_tonumber(L, 1); @@ -296,6 +307,18 @@ static int l_audio_is_paused(lua_State* L) { return 1; } +/// @brief audio.is_loop(speakerid: integer) -> bool +static int l_audio_is_loop(lua_State* L) { + lua::luaint id = lua_tonumber(L, 1); + auto speaker = audio::get_speaker(id); + if (speaker != nullptr) { + lua_pushboolean(L, speaker->isLoop()); + return 1; + } + lua_pushboolean(L, false); + return 1; +} + /// @brief audio.get_volume(speakerid: integer) -> number static int l_audio_get_volume(lua_State* L) { lua::luaint id = lua_tonumber(L, 1); @@ -364,6 +387,7 @@ const luaL_Reg audiolib [] = { {"stop", lua_wrap_errors}, {"pause", lua_wrap_errors}, {"resume", lua_wrap_errors}, + {"set_loop", lua_wrap_errors}, {"set_volume", lua_wrap_errors}, {"set_pitch", lua_wrap_errors}, {"set_time", lua_wrap_errors}, @@ -371,6 +395,7 @@ const luaL_Reg audiolib [] = { {"set_velocity", lua_wrap_errors}, {"is_playing", lua_wrap_errors}, {"is_paused", lua_wrap_errors}, + {"is_loop", lua_wrap_errors}, {"get_volume", lua_wrap_errors}, {"get_pitch", lua_wrap_errors}, {"get_time", lua_wrap_errors},