Example #1
0
status_t
BFileGameSound::SetPaused(bool isPaused, bigtime_t rampTime)
{
	if (fPaused == isPaused)
		return EALREADY;

	Lock();

	// Clear any old ramping
	delete fPausing;
	fPausing = NULL;

	if (rampTime > 100000) {
		// Setup for ramping
		if (isPaused)
			fPausing = InitRamp(&fPauseGain, 0.0,
								Format().frame_rate, rampTime);
		else
			fPausing = InitRamp(&fPauseGain, 1.0,
								Format().frame_rate, rampTime);
	}

	fPaused = isPaused;
	Unlock();

	return B_OK;
}
Example #2
0
status_t
GameSoundBuffer::SetGain(float gain, bigtime_t duration)
{	
	if (gain < 0.0 || gain > 1.0)	
		return B_BAD_VALUE;
	
	delete fGainRamp;
	fGainRamp = NULL;
	
	if (duration > 100000)
		fGainRamp  = InitRamp(&fGain, gain, fFormat.frame_rate, duration);
	else 
		fGain = gain;
	
	return B_OK;	
}
Example #3
0
status_t
GameSoundBuffer::SetPan(float pan, bigtime_t duration)
{
	if (pan < -1.0 || pan > 1.0)
		return B_BAD_VALUE;
	
	delete fPanRamp;
	fPanRamp = NULL;

	if (duration < 100000) {
		fPan = pan;
		
		if (fPan < 0.0) {
			fPanLeft = 1.0;
			fPanRight = 1.0 + fPan;
		} else {
			fPanRight = 1.0;
			fPanLeft = 1.0 - fPan;
		}	
	} else 
		fPanRamp = InitRamp(&fPan, pan, fFormat.frame_rate, duration);
		
	return B_OK;
}