summaryrefslogtreecommitdiff
path: root/src/tangara/lua/lua_testing.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/tangara/lua/lua_testing.cpp')
-rw-r--r--src/tangara/lua/lua_testing.cpp40
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