Example #1
0
bool AudioDevice::createMainContext()
{
	LogInfo("Creating OpenAL main context");

	// Create a main context.
	mainContext = createContext();
	mainContext->makeCurrent();

	const ALchar* version = alGetString(AL_VERSION);
	
	if( !version )
	{
		LogWarn("Could not get OpenAL version");
		return false;
	}
	
	LogInfo("Using OpenAL version %s", version);

	if( AudioCheckError() )
	{
		LogWarn("Error initializing OpenAL: %s", AudioGetError());
		return false;
	}

	return true;
}
Example #2
0
void AudioDevice::setVolume(float volume)
{
	alListenerf(AL_GAIN, volume);

	if(AudioCheckError()) 
	{
		LogWarn("Error changing listener volume: %s", AudioGetError());
		return;
	}
}
Example #3
0
void AudioContext::setPosition(const Vector3& position)
{
	// Update OpenAL's listener position.
	alListenerfv(AL_POSITION, &position.x);

	if(AudioCheckError())
	{
		LogWarn( "Could not set listener position: %s", AudioGetError());
		return;
	}
}
Example #4
0
void AudioContext::setVolume(float volume)
{
	// Update OpenAL's volume.
	alListenerf(AL_GAIN, volume);

	if(AudioCheckError())
	{
		LogWarn("Could not set new volume: %s", AudioGetError());
		return;
	}
}
Example #5
0
void AudioContext::setOrientation(const Vector3& rotation)
{
	Vector3 data[] = { rotation, Vector3::UnitY };

	alListenerfv(AL_ORIENTATION, (const ALfloat *) &data );

	if(AudioCheckError())
	{
		LogWarn( "Could not set listener orientation: %s", AudioGetError());
		return;
	}
}
Example #6
0
AudioDevice::~AudioDevice()
{
	if(!device) return;

	#pragma TODO("Check that all contexts/buffers are closed on exit")
	Deallocate(mainContext);

	if(!alcCloseDevice(device)) 
	{
		LogWarn("Error closing OpenAL device: %s", AudioGetError());
		return;
	}
}