lua_AudioController.cpp 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #include "Base.h"
  2. #include "ScriptController.h"
  3. #include "lua_AudioController.h"
  4. #include "AudioBuffer.h"
  5. #include "AudioController.h"
  6. #include "AudioListener.h"
  7. #include "AudioSource.h"
  8. #include "Base.h"
  9. namespace gameplay
  10. {
  11. void luaRegister_AudioController()
  12. {
  13. ScriptController* sc = ScriptController::getInstance();
  14. const luaL_Reg lua_members[] =
  15. {
  16. {NULL, NULL}
  17. };
  18. const luaL_Reg* lua_statics = NULL;
  19. std::vector<std::string> scopePath;
  20. sc->registerClass("AudioController", lua_members, NULL, lua_AudioController__gc, lua_statics, scopePath);
  21. }
  22. static AudioController* getInstance(lua_State* state)
  23. {
  24. void* userdata = luaL_checkudata(state, 1, "AudioController");
  25. luaL_argcheck(state, userdata != NULL, 1, "'AudioController' expected.");
  26. return (AudioController*)((ScriptController::LuaObject*)userdata)->instance;
  27. }
  28. int lua_AudioController__gc(lua_State* state)
  29. {
  30. // Get the number of parameters.
  31. int paramCount = lua_gettop(state);
  32. // Attempt to match the parameters to a valid binding.
  33. switch (paramCount)
  34. {
  35. case 1:
  36. {
  37. if ((lua_type(state, 1) == LUA_TUSERDATA))
  38. {
  39. void* userdata = luaL_checkudata(state, 1, "AudioController");
  40. luaL_argcheck(state, userdata != NULL, 1, "'AudioController' expected.");
  41. ScriptController::LuaObject* object = (ScriptController::LuaObject*)userdata;
  42. if (object->owns)
  43. {
  44. AudioController* instance = (AudioController*)object->instance;
  45. SAFE_DELETE(instance);
  46. }
  47. return 0;
  48. }
  49. else
  50. {
  51. lua_pushstring(state, "Failed to match the given parameters to a valid function signature.");
  52. lua_error(state);
  53. }
  54. break;
  55. }
  56. default:
  57. {
  58. lua_pushstring(state, "Invalid number of parameters (expected 1).");
  59. lua_error(state);
  60. break;
  61. }
  62. }
  63. return 0;
  64. }
  65. }