コード例 #1
0
ファイル: qsensor.cpp プロジェクト: xjohncz/qt5
void QSensor::setBufferSize(int bufferSize)
{
    Q_D(QSensor);
    if (d->bufferSize != bufferSize) {
        d->bufferSize = bufferSize;
        emit bufferSizeChanged(bufferSize);
    }
}
コード例 #2
0
ファイル: Delay.cpp プロジェクト: EQ4/minim-cpp
void Minim::Delay::channelCountChanged()
{
	if ( delayBuffer )
	{
		delete[] delayBuffer;
        delayBuffer = NULL;
	}
	
	if ( sampleRate() > 0 )
	{
		maxBufferSize = (int)( maxDelayTime*sampleRate()*getAudioChannelCount() );
		delayBuffer = new float[maxBufferSize];
		memset(delayBuffer, 0, sizeof(float)*maxBufferSize);
		bufferSizeChanged();
	}
}
コード例 #3
0
ファイル: Delay.cpp プロジェクト: EQ4/minim-cpp
void Minim::Delay::uGenerate( float * out, const int numChannels )
{
	// update the buffer indexes
	delayTime = delTime.getLastValue();
	bufferSizeChanged();
	
	// update the feedbackFactor
	amplitudeFactor = delAmp.getLastValue();
	
	// apply to each channel
	for (int c = 0; c < numChannels; ++c )
	{
		float tmpIn = audio.getLastValues()[c];
	
		// pull sound out of the buffer
		float tmpOut = amplitudeFactor*delayBuffer[ iBufferOut ];
	
		// put sound into the buffer
		delayBuffer[ iBufferIn ] = tmpIn;
		if ( feedBackOn ) 
		{
			delayBuffer[ iBufferIn ] += tmpOut; 
		}
	
		tmpOut *= wetMix.getLastValue();
	
		iBufferIn  = ( iBufferIn  + 1 )%bufferSize;
		iBufferOut = ( iBufferOut + 1 )%bufferSize;
	
		// pass the audio if necessary
		if ( passAudioOn )
		{
			tmpOut += tmpIn * dryMix.getLastValue();
		}
		
		out[c] = tmpOut;
	}
}