diff options
Diffstat (limited to 'src/tangara/lua/lua_testing.cpp')
| -rw-r--r-- | src/tangara/lua/lua_testing.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/tangara/lua/lua_testing.cpp b/src/tangara/lua/lua_testing.cpp new file mode 100644 index 00000000..36f632ce --- /dev/null +++ b/src/tangara/lua/lua_testing.cpp @@ -0,0 +1,40 @@ +/* + * Copyright 2024 jacqueline <me@jacqueline.id.au> + * + * SPDX-License-Identifier: GPL-3.0-only + */ + +#include "lua_testing.hpp" + +#include "lauxlib.h" +#include "lua.h" + +#include "audio/audio_events.hpp" +#include "events/event_queue.hpp" + +namespace lua { + +static auto testing_tone(lua_State* L) -> int { + auto freq = luaL_checkinteger(L, 1); + events::Audio().Dispatch( + audio::PlaySineWave{.frequency = static_cast<uint32_t>(freq)}); + events::Audio().Dispatch(audio::TogglePlayPause{.set_to = true}); + return 0; +} + +static const struct luaL_Reg kTestingFuncs[] = { + {"tone", testing_tone}, + {NULL, NULL}, +}; + +static auto lua_testing(lua_State* state) -> int { + luaL_newlib(state, kTestingFuncs); + return 1; +} + +auto RegisterTestingModule(lua_State* L) -> void { + luaL_requiref(L, "testing", lua_testing, false); + lua_pop(L, 1); +} + +} // namespace lua |
