aboutsummaryrefslogtreecommitdiff
path: root/src/lua/modules/audio/je_lua_audio.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lua/modules/audio/je_lua_audio.cpp')
-rw-r--r--src/lua/modules/audio/je_lua_audio.cpp132
1 files changed, 0 insertions, 132 deletions
diff --git a/src/lua/modules/audio/je_lua_audio.cpp b/src/lua/modules/audio/je_lua_audio.cpp
deleted file mode 100644
index f5ef31f..0000000
--- a/src/lua/modules/audio/je_lua_audio.cpp
+++ /dev/null
@@ -1,132 +0,0 @@
-#include "common/je_lua.h"
-#include "common/je_lua_common.h"
-#include "libjin/jin.h"
-#include "je_lua_source.h"
-
-using namespace JinEngine::Audio;
-using namespace JinEngine::Audio::SDL;
-using namespace JinEngine::Filesystem;
-
-namespace JinEngine
-{
- namespace Lua
- {
-
- typedef SDLAudio Audio;
- typedef SDLSource Source;
-
- struct
- {
- bool initialized = false;
- } context;
-
- LUA_IMPLEMENT int l_init(lua_State* L)
- {
- if (context.initialized)
- {
- // Already initialized.
- luax_pushboolean(L, true);
- return 1;
- }
- Audio::Setting setting;
- setting.samplerate = 44100;
- setting.samples = 44100;
- Audio* audio = Audio::get();
- context.initialized = audio->start(&setting);
- if (!context.initialized)
- {
- luax_error(L, "could not init audio");
- luax_pushboolean(L, false);
- return 1;
- }
- luax_pushboolean(L, true);
- return 1;
- }
-
- LUA_IMPLEMENT int l_play(lua_State* L)
- {
- Audio::get()->play();
- return 0;
- }
-
- LUA_IMPLEMENT int l_stop(lua_State* L)
- {
- Audio::get()->stop();
- return 0;
- }
-
- LUA_IMPLEMENT int l_pause(lua_State* L)
- {
- Audio::get()->pause();
- return 0;
- }
-
- LUA_IMPLEMENT int l_resume(lua_State* L)
- {
- Audio::get()->resume();
- return 0;
- }
-
- LUA_IMPLEMENT int l_setVolume(lua_State* L)
- {
- float volume = luax_checknumber(L, 1);
- Audio::get()->setVolume(volume);
- return 0;
- }
-
- LUA_IMPLEMENT int l_newSource(lua_State* L)
- {
- AssetDatabase* fs = AssetDatabase::get();
- const char* f = luax_checkstring(L, 1);
- Buffer b;
- try
- {
- if (!fs->exists(f))
- throw Exception("No such source file %s.", f);
- fs->read(f, b);
- }
- catch (Exception& e)
- {
- error(L, "Failed to read source file %s", f);
- luax_pushnil(L);
- return 1;
- }
- Source* src = new SDLSource((void*)&b, b.size());
- if (src == nullptr)
- {
- error(L, "Failed to decode source file %s", f);
- luax_pushnil(L);
- return 1;
- }
- LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Source, new Shared(src));
- return 1;
- }
-
- LUA_IMPLEMENT int l_destroy(lua_State* L)
- {
- Audio* audio = Audio::get();
- audio->quit();
- return 0;
- }
-
- LUA_EXPORT int luaopen_audio(lua_State* L)
- {
- luaopen_Source(L);
-
- luaL_Reg methods[] = {
- { "init", l_init },
- { "play", l_play },
- { "stop", l_stop },
- { "pause", l_pause },
- { "resume", l_resume },
- { "setVolume", l_setVolume },
- { "newSource", l_newSource },
- { "destroy", l_destroy },
- { 0, 0 }
- };
- luax_newlib(L, methods);
- return 1;
- }
-
- } // namespace Lua
-} // namespace JinEngine \ No newline at end of file