Exemplo n.º 1
0
int AUD_isJackSupported(void)
{
#ifdef WITH_JACK
	return AUD_jack_supported();
#else
	return 0;
#endif
}
Exemplo n.º 2
0
int AUD_init(AUD_DeviceType device, AUD_DeviceSpecs specs, int buffersize)
{
	boost::shared_ptr<AUD_IDevice> dev;

	if (AUD_device.get()) {
		AUD_exit();
	}

	try {
		switch(device) {
		case AUD_NULL_DEVICE:
			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;
			}
#endif
#ifdef WITH_OPENAL
		case AUD_OPENAL_DEVICE:
			dev = boost::shared_ptr<AUD_IDevice>(new AUD_OpenALDevice(specs, buffersize));
			break;
#endif
#ifdef WITH_JACK
		case AUD_JACK_DEVICE:
#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
			}
			else
#endif
			if (!AUD_jack_supported()) {
				printf("Warning: Jack client not installed\n");
				// No break, fall through to default, to return false
			}
			else {
				dev = boost::shared_ptr<AUD_IDevice>(new AUD_JackDevice("Blender", specs, buffersize));
				break;
			}
#endif
		default:
			return false;
		}

		AUD_device = dev;
		AUD_3ddevice = dynamic_cast<AUD_I3DDevice *>(AUD_device.get());

		return true;
	}
	catch(AUD_Exception&)
	{
		return false;
	}
}
Exemplo n.º 3
0
AUD_Device* AUD_init(const char* device, AUD_DeviceSpecs specs, int buffersize, const char* name)
{
	boost::shared_ptr<AUD_IDevice> dev;

	if (AUD_device.get()) {
		AUD_exit(NULL);
	}

	std::string dname = device;

	try {
		if(dname == "Null") {
			dev = boost::shared_ptr<AUD_IDevice>(new AUD_NULLDevice());
		}
#ifdef WITH_SDL
		else if(dname == "SDL")
		{
			dev = boost::shared_ptr<AUD_IDevice>(new AUD_SDLDevice(specs, buffersize));
		}
#endif
#ifdef WITH_OPENAL
		else if(dname == "OpenAL")
		{
			dev = boost::shared_ptr<AUD_IDevice>(new AUD_OpenALDevice(specs, buffersize));
		}
#endif
#ifdef WITH_JACK
		else if(dname == "Jack")
		{
#ifdef __APPLE__
			struct stat st;
			if (stat("/Library/Frameworks/Jackmp.framework", &st) != 0) {
				printf("Warning: Jack Framework not installed\n");
				return NULL;
			}
			else
#endif
			if (!AUD_jack_supported()) {
				printf("Warning: Jack cllient not installed\n");
				return NULL;
			}
			else {
				dev = boost::shared_ptr<AUD_IDevice>(new AUD_JackDevice(name, specs, buffersize));
			}
		}
#endif
		else
		{
			return NULL;
		}

		AUD_device = dev;
		AUD_3ddevice = dynamic_cast<AUD_I3DDevice *>(AUD_device.get());

		return (AUD_Device*)1;
	}
	catch(AUD_Exception&)
	{
		return NULL;
	}
}