aboutsummaryrefslogtreecommitdiff
path: root/src/lua/modules/audio
diff options
context:
space:
mode:
Diffstat (limited to 'src/lua/modules/audio')
-rw-r--r--src/lua/modules/audio/je_lua_audio.cpp132
-rw-r--r--src/lua/modules/audio/je_lua_audio.h16
-rw-r--r--src/lua/modules/audio/je_lua_source.cpp114
-rw-r--r--src/lua/modules/audio/je_lua_source.h16
4 files changed, 0 insertions, 278 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
diff --git a/src/lua/modules/audio/je_lua_audio.h b/src/lua/modules/audio/je_lua_audio.h
deleted file mode 100644
index 6b4669a..0000000
--- a/src/lua/modules/audio/je_lua_audio.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef __JE_LUA_AUDIO_H__
-#define __JE_LUA_AUDIO_H__
-
-#include "je_lua_audio.h"
-
-namespace JinEngine
-{
- namespace Lua
- {
-
- int luaopen_audio(lua_State* L);
-
- }
-}
-
-#endif \ No newline at end of file
diff --git a/src/lua/modules/audio/je_lua_source.cpp b/src/lua/modules/audio/je_lua_source.cpp
deleted file mode 100644
index 8c9e247..0000000
--- a/src/lua/modules/audio/je_lua_source.cpp
+++ /dev/null
@@ -1,114 +0,0 @@
-#include "libjin/jin.h"
-#include "common/je_lua.h"
-#include "common/je_lua_common.h"
-
-using namespace JinEngine::Audio;
-
-namespace JinEngine
-{
- namespace Lua
- {
-
- const char* Jin_Lua_Source = "Source";
-
- LUA_IMPLEMENT inline Source* checkSource(lua_State* L)
- {
- LuaObject* luaObj = luax_checkobject(L, 1, Jin_Lua_Source);
- Source* source = luaObj->getObject<Source>();
- return source;
- }
-
- LUA_IMPLEMENT int l_play(lua_State* L)
- {
- Source* source = checkSource(L);
- source->play();
- return 0;
- }
-
- LUA_IMPLEMENT int l_stop(lua_State* L)
- {
- Source* source = checkSource(L);
- source->stop();
- return 0;
- }
-
- LUA_IMPLEMENT int l_pause(lua_State* L)
- {
- Source* source = checkSource(L);
- source->pause();
- return 0;
- }
-
- LUA_IMPLEMENT int l_rewind(lua_State* L)
- {
- Source* source = checkSource(L);
- source->rewind();
- return 0;
- }
-
- LUA_IMPLEMENT int l_resume(lua_State* L)
- {
- Source* source = checkSource(L);
- source->resume();
- return 0;
- }
-
- LUA_IMPLEMENT int l_isStop(lua_State* L)
- {
- Source* source = checkSource(L);
- bool isStop = source->isStopped();
- luax_pushboolean(L, isStop);
- return 1;
- }
-
- LUA_IMPLEMENT int l_isPaused(lua_State* L)
- {
- Source* source = checkSource(L);
- bool isPaused = source->isPaused();
- luax_pushboolean(L, isPaused);
- return 1;
- }
-
- LUA_IMPLEMENT int l_setVolume(lua_State* L)
- {
- Source* source = checkSource(L);
- float volume = luax_checknumber(L, 2);
- source->setVolume(volume);
- return 0;
- }
-
- LUA_IMPLEMENT int l_setLoop(lua_State* L)
- {
- Source* source = checkSource(L);
- bool loop = luax_checkbool(L, 2);
- source->setLoop(loop);
- return 0;
- }
-
- LUA_IMPLEMENT int l_gc(lua_State* L)
- {
- LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Source);
- luaObj->release();
- return 0;
- }
-
- LUA_EXPORT void luaopen_Source(lua_State* L)
- {
- luaL_Reg methods[] = {
- { "__gc", l_gc },
- { "play", l_play },
- { "stop", l_stop },
- { "pause", l_pause },
- { "resume", l_resume },
- { "rewind", l_rewind },
- { "isStop", l_isStop },
- { "isPaused", l_isPaused },
- { "setVolume", l_setVolume },
- { "setLoop", l_setLoop },
- { 0, 0 }
- };
- luax_newtype(L, Jin_Lua_Source, methods);
- }
-
- } // namespace Lua
-} // namespace JinEngine \ No newline at end of file
diff --git a/src/lua/modules/audio/je_lua_source.h b/src/lua/modules/audio/je_lua_source.h
deleted file mode 100644
index f7e6b48..0000000
--- a/src/lua/modules/audio/je_lua_source.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef __JE_LUA_SOURCE_H__
-#define __JE_LUA_SOURCE_H__
-
-namespace JinEngine
-{
- namespace Lua
- {
-
- extern const char* Jin_Lua_Source;
-
- void luaopen_Source(lua_State* L);
-
- }
-}
-
-#endif \ No newline at end of file