[Bf-blender-cvs] [96dd213] master: Audaspace: preparing to use standalone library.

Jörg Müller noreply at git.blender.org
Tue Jul 28 14:10:15 CEST 2015


Commit: 96dd213e7ecabeffc682aee40b4102296ab062de
Author: Jörg Müller
Date:   Mon Mar 3 23:57:59 2014 +0100
Branches: master
https://developer.blender.org/rB96dd213e7ecabeffc682aee40b4102296ab062de

Audaspace: preparing to use standalone library.

- Renamed some functions.
- Using C API instead of C++ in the game engine, as the standalone is C++11.

===================================================================

M	intern/audaspace/intern/AUD_C-API.cpp
M	intern/audaspace/intern/AUD_C-API.h
M	source/blender/blenkernel/intern/sound.c
M	source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
M	source/gameengine/Converter/KX_ConvertActuators.cpp
M	source/gameengine/GamePlayer/ghost/GPG_Application.cpp
M	source/gameengine/Ketsji/KX_KetsjiEngine.cpp
M	source/gameengine/Ketsji/KX_SoundActuator.cpp
M	source/gameengine/Ketsji/KX_SoundActuator.h

===================================================================

diff --git a/intern/audaspace/intern/AUD_C-API.cpp b/intern/audaspace/intern/AUD_C-API.cpp
index 78b9279..2ee141a 100644
--- a/intern/audaspace/intern/AUD_C-API.cpp
+++ b/intern/audaspace/intern/AUD_C-API.cpp
@@ -130,7 +130,7 @@ void AUD_exitOnce()
 #endif
 }
 
-int AUD_init(AUD_DeviceType device, AUD_DeviceSpecs specs, int buffersize)
+int AUD_init(const char* device, const char* name, AUD_DeviceSpecs specs, int buffersize)
 {
 	boost::shared_ptr<AUD_IDevice> dev;
 
@@ -138,47 +138,46 @@ int AUD_init(AUD_DeviceType device, AUD_DeviceSpecs specs, int buffersize)
 		AUD_exit();
 	}
 
+	std::string dname = device;
+
 	try {
-		switch(device) {
-		case AUD_NULL_DEVICE:
+		if(dname == "Null") {
 			dev = boost::shared_ptr<AUD_IDevice>(new AUD_NULLDevice());
-			break;
+		}
 #ifdef WITH_SDL
-		case AUD_SDL_DEVICE:
-			if (SDL_Init == (void *)0) {
-				printf("Warning: SDL libraries are not installed\n");
-				// No break, fall through to default, to return false
-			}
-			else {
-				dev = boost::shared_ptr<AUD_IDevice>(new AUD_SDLDevice(specs, buffersize));
-				break;
-			}
+		else if(dname == "SDL")
+		{
+			dev = boost::shared_ptr<AUD_IDevice>(new AUD_SDLDevice(specs, buffersize));
+		}
 #endif
 #ifdef WITH_OPENAL
-		case AUD_OPENAL_DEVICE:
+		else if(dname == "OpenAL")
+		{
 			dev = boost::shared_ptr<AUD_IDevice>(new AUD_OpenALDevice(specs, buffersize));
-			break;
+		}
 #endif
 #ifdef WITH_JACK
-		case AUD_JACK_DEVICE:
+		else if(dname == "Jack")
+		{
 #ifdef __APPLE__
 			struct stat st;
 			if (stat("/Library/Frameworks/Jackmp.framework", &st) != 0) {
 				printf("Warning: Jack Framework not installed\n");
-				// No break, fall through to default, to return false
+				return false;
 			}
 			else
 #endif
 			if (!AUD_jack_supported()) {
-				printf("Warning: Jack client not installed\n");
-				// No break, fall through to default, to return false
+				printf("Warning: Jack cllient not installed\n");
+				return false;
 			}
 			else {
-				dev = boost::shared_ptr<AUD_IDevice>(new AUD_JackDevice("Blender", specs, buffersize));
-				break;
+				dev = boost::shared_ptr<AUD_IDevice>(new AUD_JackDevice(name, specs, buffersize));
 			}
+		}
 #endif
-		default:
+		else
+		{
 			return false;
 		}
 
@@ -266,7 +265,7 @@ PyObject *AUD_initPython()
 	return module;
 }
 
-void *AUD_getPythonFactory(AUD_Sound *sound)
+void *AUD_getPythonSound(AUD_Sound *sound)
 {
 	if (sound) {
 		Factory *obj = (Factory *) Factory_empty();
@@ -279,7 +278,7 @@ void *AUD_getPythonFactory(AUD_Sound *sound)
 	return NULL;
 }
 
-AUD_Sound *AUD_getPythonSound(void *sound)
+AUD_Sound *AUD_getSoundFromPython(void *sound)
 {
 	Factory *factory = checkFactory((PyObject *)sound);
 
@@ -488,6 +487,11 @@ int AUD_stop(AUD_Handle *handle)
 	return result;
 }
 
+void AUD_stopAll(void)
+{
+	AUD_device->stopAll();
+}
+
 int AUD_setKeep(AUD_Handle *handle, int keep)
 {
 	assert(handle);
@@ -1015,7 +1019,7 @@ void AUD_setSequencerSpecs(AUD_Sound *sequencer, AUD_Specs specs)
 	dynamic_cast<AUD_SequencerFactory *>(sequencer->get())->setSpecs(specs);
 }
 
-void AUD_seekSequencer(AUD_Handle *handle, float time)
+void AUD_seekSynchronizer(AUD_Handle *handle, float time)
 {
 #ifdef WITH_JACK
 	AUD_JackDevice *device = dynamic_cast<AUD_JackDevice *>(AUD_device.get());
@@ -1030,7 +1034,7 @@ void AUD_seekSequencer(AUD_Handle *handle, float time)
 	}
 }
 
-float AUD_getSequencerPosition(AUD_Handle *handle)
+float AUD_getSynchronizerPosition(AUD_Handle *handle)
 {
 #ifdef WITH_JACK
 	AUD_JackDevice *device = dynamic_cast<AUD_JackDevice *>(AUD_device.get());
@@ -1045,7 +1049,7 @@ float AUD_getSequencerPosition(AUD_Handle *handle)
 	}
 }
 
-void AUD_startPlayback()
+void AUD_playSynchronizer()
 {
 #ifdef WITH_JACK
 	AUD_JackDevice *device = dynamic_cast<AUD_JackDevice *>(AUD_device.get());
@@ -1055,7 +1059,7 @@ void AUD_startPlayback()
 #endif
 }
 
-void AUD_stopPlayback()
+void AUD_stopSynchronizer()
 {
 #ifdef WITH_JACK
 	AUD_JackDevice *device = dynamic_cast<AUD_JackDevice *>(AUD_device.get());
@@ -1066,7 +1070,7 @@ void AUD_stopPlayback()
 }
 
 #ifdef WITH_JACK
-void AUD_setSyncCallback(AUD_syncFunction function, void *data)
+void AUD_setSynchronizerCallback(AUD_syncFunction function, void *data)
 {
 	AUD_JackDevice *device = dynamic_cast<AUD_JackDevice *>(AUD_device.get());
 	if (device) {
@@ -1075,7 +1079,7 @@ void AUD_setSyncCallback(AUD_syncFunction function, void *data)
 }
 #endif
 
-int AUD_doesPlayback()
+int AUD_isSynchronizerPlaying()
 {
 #ifdef WITH_JACK
 	AUD_JackDevice *device = dynamic_cast<AUD_JackDevice *>(AUD_device.get());
@@ -1283,16 +1287,6 @@ AUD_Device *AUD_openMixdownDevice(AUD_DeviceSpecs specs, AUD_Sound *sequencer, f
 	}
 }
 
-boost::shared_ptr<AUD_IDevice> AUD_getDevice()
-{
-	return AUD_device;
-}
-
-AUD_I3DDevice *AUD_get3DDevice()
-{
-	return AUD_3ddevice;
-}
-
 int AUD_isJackSupported(void)
 {
 #ifdef WITH_JACK
diff --git a/intern/audaspace/intern/AUD_C-API.h b/intern/audaspace/intern/AUD_C-API.h
index 657d4e6..5e7db1d 100644
--- a/intern/audaspace/intern/AUD_C-API.h
+++ b/intern/audaspace/intern/AUD_C-API.h
@@ -77,7 +77,7 @@ extern void AUD_exitOnce(void);
  * \param buffersize The buffersize for the device.
  * \return Whether the device has been initialized.
  */
-extern int AUD_init(AUD_DeviceType device, AUD_DeviceSpecs specs, int buffersize);
+extern int AUD_init(const char* device, const char* name, AUD_DeviceSpecs specs, int buffersize);
 
 /**
  * Unitinitializes an audio device.
@@ -212,6 +212,8 @@ extern int AUD_resume(AUD_Handle *handle);
  */
 extern int AUD_stop(AUD_Handle *handle);
 
+extern void AUD_stopAll(void);
+
 /**
  * Sets the end behaviour of a playing or paused sound.
  * \param handle The handle to the sound.
@@ -604,24 +606,24 @@ extern void AUD_setSequencerSpecs(AUD_Sound *sequencer, AUD_Specs specs);
  * \param handle Playback handle.
  * \param time Time in seconds to seek to.
  */
-extern void AUD_seekSequencer(AUD_Handle *handle, float time);
+extern void AUD_seekSynchronizer(AUD_Handle *handle, float time);
 
 /**
  * Returns the current sound scene playback time.
  * \param handle Playback handle.
  * \return The playback time in seconds.
  */
-extern float AUD_getSequencerPosition(AUD_Handle *handle);
+extern float AUD_getSynchronizerPosition(AUD_Handle *handle);
 
 /**
  * Starts the playback of jack transport if possible.
  */
-extern void AUD_startPlayback(void);
+extern void AUD_playSynchronizer(void);
 
 /**
  * Stops the playback of jack transport if possible.
  */
-extern void AUD_stopPlayback(void);
+extern void AUD_stopSynchronizer(void);
 
 #ifdef WITH_JACK
 /**
@@ -629,14 +631,14 @@ extern void AUD_stopPlayback(void);
  * \param function The callback function.
  * \param data The data parameter for the callback.
  */
-extern void AUD_setSyncCallback(AUD_syncFunction function, void *data);
+extern void AUD_setSynchronizerCallback(AUD_syncFunction function, void *data);
 #endif
 
 /**
  * Returns whether jack transport is currently playing.
  * \return Whether jack transport is currently playing.
  */
-extern int AUD_doesPlayback(void);
+extern int AUD_isSynchronizerPlaying(void);
 
 /**
  * Reads a sound into a buffer for drawing at a specific sampling rate.
@@ -747,36 +749,20 @@ extern AUD_Device *AUD_openMixdownDevice(AUD_DeviceSpecs specs, AUD_Sound *seque
  * \param sound The sound factory.
  * \return The python factory.
  */
-extern void *AUD_getPythonFactory(AUD_Sound *sound);
+extern void *AUD_getPythonSound(AUD_Sound *sound);
 
 /**
  * Retrieves the sound factory of a python factory.
  * \param sound The python factory.
  * \return The sound factory.
  */
-extern AUD_Sound *AUD_getPythonSound(void *sound);
+extern AUD_Sound *AUD_getSoundFromPython(void *sound);
 #endif
 
 extern int AUD_isJackSupported(void);
 
 #ifdef __cplusplus
 }
-
-#include <boost/shared_ptr.hpp>
-class AUD_IDevice;
-class AUD_I3DDevice;
-
-/**
- * Returns the current playback device.
- * \return The playback device.
- */
-boost::shared_ptr<AUD_IDevice> AUD_getDevice();
-
-/**
- * Returns the current playback 3D device.
- * \return The playback 3D device.
- */
-AUD_I3DDevice *AUD_get3DDevice();
 #endif
 
 #endif //__AUD_C_API_H__
diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c
index 46a5091..3accf21 100644
--- a/source/blender/blenkernel/intern/sound.c
+++ b/source/blender/blenkernel/intern/sound.c
@@ -176,6 +176,7 @@ void BKE_sound_init(struct Main *bmain)
 {
 	AUD_DeviceSpecs specs;
 	int device, buffersize;
+	const char* device_name;
 
 	device = U.audiodevice;
 	buffersize = U.mixbufsize;
@@ -186,6 +187,22 @@ void BKE_sound_init(struct Main *bmain)
 	if (force_device >= 0)
 		device = force_device;
 
+	switch(device)
+	{
+	case AUD_SDL_DEVICE:
+		device_name = "SDL";
+		break;
+	case AUD_OPENAL_DEVICE:
+		device_name = "OpenAL";
+		break;
+	case AUD_JACK_DEVICE:
+		device_name = "Jack";
+		break;
+	default:
+		device_name = "Null";
+		break;
+	}
+
 	if (buffersize < 128)
 		buffersize = AUD_DEFAULT_BUFFER_SIZE;
 
@@ -198,8 +215,8 @@ void BKE_sound_init(struct Main *bmain)
 	if (specs.channels <= AUD_CHANNELS_INVALID)
 		specs.channels = AUD_CHANNELS_STEREO;
 
-	if (!AUD_init(device, specs, buffersize))
-		AUD_init(AUD_NULL_DEVICE, specs, buffersize);
+	if (!AUD_init(device_name, "Blender", specs, buffersize))
+		AUD_init("Null", "Blender", specs, buffersize);
 
 	BKE_sound_init_main(bmain);
 }
@@ -207,7 +224,7 @@ void BKE_sound_init(struct Main *bmain)
 void BKE_sound_init_main(struct Main *bmain)
 {
 #ifdef WITH_JACK
-	AUD_setSyncCallback(sound_sync_callback, bmain);
+	AUD_setSynchronizerCallback(sound_sync_callback, bmain);
 #else
 	(void)bmain; /* unused */
 #endif
@@ -557,7 +574,7 @@ void BKE_sound_play_scene(struct Scene *scene)
 	}
 
 	if (scene->audio.flag & AUDIO_SYNC)
-		AUD_startPlayback();
+		AUD_playSynchronizer();
 
 	AUD_unlock();
 }
@@ -568,7 +585,7 @@ void BKE_sound_stop_scene(struct Scene *scene)
 		AUD_pause(scene->playback_handle);
 
 		if (scene->audio.flag & AUDIO_SYNC)
-			AUD_stopPlayback();
+			AUD_stopSynchronizer();
 	}
 }
 
@@ -607,7 +624,7 @@ void BKE_sound_seek_scene(struct Main *bmain, struct Scene *scene)
 	if (scene->audio.flag & AUDIO_SCRUB && !animation_pl

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list