Browse Source

Added love.audio.null loader

--HG--
branch : minor
Bart van Strien 14 years ago
parent
commit
526058c707
3 changed files with 139 additions and 0 deletions
  1. 2 0
      src/love.cpp
  2. 98 0
      src/modules/audio/null/wrap_Audio.cpp
  3. 39 0
      src/modules/audio/null/wrap_Audio.h

+ 2 - 0
src/love.cpp

@@ -42,6 +42,7 @@
 
 // Modules
 #include <audio/openal/wrap_Audio.h>
+#include <audio/null/wrap_Audio.h>
 #include <event/sdl/wrap_Event.h>
 #include <filesystem/physfs/wrap_Filesystem.h>
 #include <font/freetype/wrap_Font.h>
@@ -67,6 +68,7 @@
 
 static const luaL_Reg modules[] = {
 	{ "love.audio.openal", love::audio::openal::luaopen_love_audio_openal },
+	{ "love.audio.null", love::audio::null::luaopen_love_audio_null },
 	{ "love.event.sdl", love::event::sdl::luaopen_love_event_sdl },
 	{ "love.filesystem.physfs", love::filesystem::physfs::luaopen_love_filesystem_physfs },
 	{ "love.font.freetype", love::font::freetype::luaopen_love_font_freetype },

+ 98 - 0
src/modules/audio/null/wrap_Audio.cpp

@@ -0,0 +1,98 @@
+/**
+* Copyright (c) 2006-2011 LOVE Development Team
+*
+* This software is provided 'as-is', without any express or implied
+* warranty.  In no event will the authors be held liable for any damages
+* arising from the use of this software.
+*
+* Permission is granted to anyone to use this software for any purpose,
+* including commercial applications, and to alter it and redistribute it
+* freely, subject to the following restrictions:
+*
+* 1. The origin of this software must not be misrepresented; you must not
+*    claim that you wrote the original software. If you use this software
+*    in a product, an acknowledgment in the product documentation would be
+*    appreciated but is not required.
+* 2. Altered source versions must be plainly marked as such, and must not be
+*    misrepresented as being the original software.
+* 3. This notice may not be removed or altered from any source distribution.
+**/
+
+// LOVE
+#include "wrap_Audio.h"
+
+#include "Audio.h"
+
+#include <scripts/audio.lua.h>
+
+#include <common/runtime.h>
+
+namespace love
+{
+namespace audio
+{
+	extern Audio * instance;
+namespace null
+{
+	// List of functions to wrap.
+	static const luaL_Reg functions[] = {
+		{ "getNumSources", w_getNumSources },
+		{ "newSource1", w_newSource1 },
+		{ "play", w_play },
+		{ "stop", w_stop },
+		{ "pause", w_pause },
+		{ "resume", w_resume },
+		{ "rewind", w_rewind },
+		{ "setVolume", w_setVolume },
+		{ "getVolume", w_getVolume },
+		{ "setPosition", w_setPosition },
+		{ "getPosition", w_getPosition },
+		{ "setOrientation", w_setOrientation },
+		{ "getOrientation", w_getOrientation },
+		{ "setVelocity", w_setVelocity },
+		{ "getVelocity", w_getVelocity },
+		/*{ "record", w_record },
+		{ "getRecordedData", w_getRecordedData },
+		{ "stopRecording", w_stopRecording },*/
+		{ 0, 0 }
+	};
+
+	static const lua_CFunction types[] = {
+		luaopen_source,
+		0
+	};
+
+	int luaopen_love_audio_null(lua_State * L)
+	{
+		if(instance == 0)
+		{
+			try
+			{
+				instance = new Audio();
+			}
+			catch(love::Exception & e)
+			{
+				return luaL_error(L, "Could not open any audio module.");
+			}
+		}
+		else
+			instance->retain();
+
+		WrappedModule w;
+		w.module = instance;
+		w.name = "audio";
+		w.flags = MODULE_T;
+		w.functions = functions;
+		w.types = types;
+
+		luax_register_module(L, w);
+
+		if (luaL_loadbuffer(L, (const char *)audio_lua, sizeof(audio_lua), "audio.lua") == 0)
+			lua_call(L, 0, 0);
+
+		return 0;
+	}
+	
+} // null
+} // audio
+} // love

+ 39 - 0
src/modules/audio/null/wrap_Audio.h

@@ -0,0 +1,39 @@
+/**
+* Copyright (c) 2006-2011 LOVE Development Team
+* 
+* This software is provided 'as-is', without any express or implied
+* warranty.  In no event will the authors be held liable for any damages
+* arising from the use of this software.
+* 
+* Permission is granted to anyone to use this software for any purpose,
+* including commercial applications, and to alter it and redistribute it
+* freely, subject to the following restrictions:
+* 
+* 1. The origin of this software must not be misrepresented; you must not
+*    claim that you wrote the original software. If you use this software
+*    in a product, an acknowledgment in the product documentation would be
+*    appreciated but is not required.
+* 2. Altered source versions must be plainly marked as such, and must not be
+*    misrepresented as being the original software.
+* 3. This notice may not be removed or altered from any source distribution.
+**/
+
+#ifndef LOVE_AUDIO_NULL_WRAP_AUDIO_H
+#define LOVE_AUDIO_NULL_WRAP_AUDIO_H
+
+// LOVE
+#include "audio/wrap_Audio.h"
+
+namespace love
+{
+namespace audio
+{
+namespace null
+{
+	extern "C" LOVE_EXPORT int luaopen_love_audio_null(lua_State * L);
+
+} // openal
+} // audio
+} // love
+
+#endif // LOVE_AUDIO_NULL_WRAP_AUDIO_H