Fix C99 error with modern for loops.

This commit is contained in:
philburk 2011-03-01 02:02:46 +00:00
commit 981c2eac70
3 changed files with 52 additions and 33 deletions

View file

@ -56,8 +56,9 @@ double PaQa_GetNthFrequency( double baseFrequency, int index )
/*==========================================================================================*/ /*==========================================================================================*/
void PaQa_EraseBuffer( float *buffer, int numFrames, int samplesPerFrame ) void PaQa_EraseBuffer( float *buffer, int numFrames, int samplesPerFrame )
{ {
int i;
int numSamples = numFrames * samplesPerFrame; int numSamples = numFrames * samplesPerFrame;
for( int i=0; i<numSamples; i++ ) for( i=0; i<numSamples; i++ )
{ {
*buffer++ = 0.0; *buffer++ = 0.0;
} }
@ -75,7 +76,8 @@ void PaQa_SetupSineGenerator( PaQaSineGenerator *generator, double frequency, do
/*==========================================================================================*/ /*==========================================================================================*/
void PaQa_MixSine( PaQaSineGenerator *generator, float *buffer, int numSamples, int stride ) void PaQa_MixSine( PaQaSineGenerator *generator, float *buffer, int numSamples, int stride )
{ {
for( int i=0; i<numSamples; i++ ) int i;
for( i=0; i<numSamples; i++ )
{ {
float value = sinf( (float) generator->phase ) * generator->amplitude; float value = sinf( (float) generator->phase ) * generator->amplitude;
*buffer += value; // Mix with existing value. *buffer += value; // Mix with existing value.
@ -92,8 +94,9 @@ void PaQa_MixSine( PaQaSineGenerator *generator, float *buffer, int numSamples,
/*==========================================================================================*/ /*==========================================================================================*/
void PaQa_GenerateCrackDISABLED( float *buffer, int numSamples, int stride ) void PaQa_GenerateCrackDISABLED( float *buffer, int numSamples, int stride )
{ {
int i;
int offset = numSamples/2; int offset = numSamples/2;
for( int i=0; i<numSamples; i++ ) for( i=0; i<numSamples; i++ )
{ {
float phase = (MATH_TWO_PI * 0.5 * (i - offset)) / numSamples; float phase = (MATH_TWO_PI * 0.5 * (i - offset)) / numSamples;
float cosp = cosf( phase ); float cosp = cosf( phase );
@ -133,13 +136,14 @@ void PaQa_TerminateRecording( PaQaRecording *recording )
/*==========================================================================================*/ /*==========================================================================================*/
int PaQa_WriteRecording( PaQaRecording *recording, float *buffer, int numFrames, int stride ) int PaQa_WriteRecording( PaQaRecording *recording, float *buffer, int numFrames, int stride )
{ {
int i;
int framesToWrite = numFrames; int framesToWrite = numFrames;
if ((framesToWrite + recording->numFrames) > recording->maxFrames) if ((framesToWrite + recording->numFrames) > recording->maxFrames)
{ {
framesToWrite = recording->maxFrames - recording->numFrames; framesToWrite = recording->maxFrames - recording->numFrames;
} }
float *data = &recording->buffer[recording->numFrames]; float *data = &recording->buffer[recording->numFrames];
for( int i=0; i<framesToWrite; i++ ) for( i=0; i<framesToWrite; i++ )
{ {
*data++ = *buffer; *data++ = *buffer;
buffer += stride; buffer += stride;
@ -151,13 +155,14 @@ int PaQa_WriteRecording( PaQaRecording *recording, float *buffer, int numFrames,
/*==========================================================================================*/ /*==========================================================================================*/
int PaQa_WriteSilence( PaQaRecording *recording, int numFrames ) int PaQa_WriteSilence( PaQaRecording *recording, int numFrames )
{ {
int i;
int framesToRecord = numFrames; int framesToRecord = numFrames;
if ((framesToRecord + recording->numFrames) > recording->maxFrames) if ((framesToRecord + recording->numFrames) > recording->maxFrames)
{ {
framesToRecord = recording->maxFrames - recording->numFrames; framesToRecord = recording->maxFrames - recording->numFrames;
} }
float *data = &recording->buffer[recording->numFrames]; float *data = &recording->buffer[recording->numFrames];
for( int i=0; i<framesToRecord; i++ ) for( i=0; i<framesToRecord; i++ )
{ {
*data++ = 0.0f; *data++ = 0.0f;
} }
@ -168,13 +173,14 @@ int PaQa_WriteSilence( PaQaRecording *recording, int numFrames )
/*==========================================================================================*/ /*==========================================================================================*/
int PaQa_RecordFreeze( PaQaRecording *recording, int numFrames ) int PaQa_RecordFreeze( PaQaRecording *recording, int numFrames )
{ {
int i;
int framesToRecord = numFrames; int framesToRecord = numFrames;
if ((framesToRecord + recording->numFrames) > recording->maxFrames) if ((framesToRecord + recording->numFrames) > recording->maxFrames)
{ {
framesToRecord = recording->maxFrames - recording->numFrames; framesToRecord = recording->maxFrames - recording->numFrames;
} }
float *data = &recording->buffer[recording->numFrames]; float *data = &recording->buffer[recording->numFrames];
for( int i=0; i<framesToRecord; i++ ) for( i=0; i<framesToRecord; i++ )
{ {
// Copy old value forward as if the signal had frozen. // Copy old value forward as if the signal had frozen.
data[i] = data[i-1]; data[i] = data[i-1];
@ -202,9 +208,10 @@ int PaQa_SaveRecordingToWaveFile( PaQaRecording *recording, const char *filename
while( numLeft > 0 ) while( numLeft > 0 )
{ {
int i;
int numToSave = (numLeft > NUM_SAMPLES) ? NUM_SAMPLES : numLeft; int numToSave = (numLeft > NUM_SAMPLES) ? NUM_SAMPLES : numLeft;
// Convert double samples to shorts. // Convert double samples to shorts.
for( int i=0; i<numToSave; i++ ) for( i=0; i<numToSave; i++ )
{ {
double fval = *buffer++; double fval = *buffer++;
// Convert float to int and clip to short range. // Convert float to int and clip to short range.
@ -283,18 +290,19 @@ void PaQa_FilterRecording( PaQaRecording *input, PaQaRecording *output, BiquadFi
// peaks then drops to half the peak. // peaks then drops to half the peak.
double PaQa_FindFirstMatch( PaQaRecording *recording, float *buffer, int numFrames, double tolerance ) double PaQa_FindFirstMatch( PaQaRecording *recording, float *buffer, int numFrames, double tolerance )
{ {
int i;
QA_ASSERT_TRUE( "numFrames out of bounds", (numFrames < recording->numFrames) ); QA_ASSERT_TRUE( "numFrames out of bounds", (numFrames < recording->numFrames) );
// How many buffers will fit in the recording? // How many buffers will fit in the recording?
int maxCorrelations = recording->numFrames - numFrames; int maxCorrelations = recording->numFrames - numFrames;
double maxSum = 0.0; double maxSum = 0.0;
int peakIndex = -1; int peakIndex = -1;
double location = -1.0; double location = -1.0;
for( int ic=0; ic<maxCorrelations; ic++ ) for( ic=0; ic<maxCorrelations; ic++ )
{ {
double sum = 0.0; double sum = 0.0;
// Correlate buffer against the recording. // Correlate buffer against the recording.
float *recorded = &recording->buffer[ ic ]; float *recorded = &recording->buffer[ ic ];
for( int is=0; is<numFrames; is++ ) for( is=0; is<numFrames; is++ )
{ {
float s1 = buffer[is]; float s1 = buffer[is];
float s2 = *recorded++; float s2 = *recorded++;
@ -321,8 +329,9 @@ error:
// Measure the area under the curve by summing absolute value of each value. // Measure the area under the curve by summing absolute value of each value.
double PaQa_MeasureArea( float *buffer, int numFrames, int stride ) double PaQa_MeasureArea( float *buffer, int numFrames, int stride )
{ {
int i;
double area = 0.0; double area = 0.0;
for( int is=0; is<numFrames; is++ ) for( is=0; is<numFrames; is++ )
{ {
area += fabs( *buffer ); area += fabs( *buffer );
buffer += stride; buffer += stride;
@ -395,13 +404,14 @@ error:
// Apply cosine squared window. // Apply cosine squared window.
void PaQa_FadeInRecording( PaQaRecording *recording, int startFrame, int count ) void PaQa_FadeInRecording( PaQaRecording *recording, int startFrame, int count )
{ {
int i;
assert( startFrame >= 0 ); assert( startFrame >= 0 );
assert( count > 0 ); assert( count > 0 );
double phase = 0.5 * MATH_PI; double phase = 0.5 * MATH_PI;
// Advance a quarter wave // Advance a quarter wave
double phaseIncrement = 0.25 * 2.0 * MATH_PI / count; double phaseIncrement = 0.25 * 2.0 * MATH_PI / count;
for( int is=0; is<count; is++ ) for( is=0; is<count; is++ )
{ {
double c = cos( phase ); double c = cos( phase );
phase += phaseIncrement; phase += phaseIncrement;
@ -419,6 +429,7 @@ void PaQa_FadeInRecording( PaQaRecording *recording, int startFrame, int count )
*/ */
int PaQa_DetectPop( PaQaRecording *recording, PaQaTestTone *testTone, PaQaAnalysisResult *analysisResult ) int PaQa_DetectPop( PaQaRecording *recording, PaQaTestTone *testTone, PaQaAnalysisResult *analysisResult )
{ {
int i;
PaQaRecording notchOutput = { 0 }; PaQaRecording notchOutput = { 0 };
BiquadFilter notchFilter; BiquadFilter notchFilter;
@ -454,7 +465,7 @@ int PaQa_DetectPop( PaQaRecording *recording, PaQaTestTone *testTone, PaQaAnalys
// Scan remaining signal looking for peak. // Scan remaining signal looking for peak.
double maxAmplitude = 0.0; double maxAmplitude = 0.0;
int maxPosition = -1; int maxPosition = -1;
for( int i=0; i<hipassOutput.numFrames; i++ ) for( i=0; i<hipassOutput.numFrames; i++ )
{ {
float x = hipassOutput.buffer[i]; float x = hipassOutput.buffer[i];
float mag = fabs( x ); float mag = fabs( x );
@ -484,6 +495,7 @@ error:
/*==========================================================================================*/ /*==========================================================================================*/
int PaQa_DetectPhaseError( PaQaRecording *recording, PaQaTestTone *testTone, PaQaAnalysisResult *analysisResult ) int PaQa_DetectPhaseError( PaQaRecording *recording, PaQaTestTone *testTone, PaQaAnalysisResult *analysisResult )
{ {
int i;
double period = testTone->sampleRate / testTone->frequency; double period = testTone->sampleRate / testTone->frequency;
int cycleSize = (int) (period + 0.5); int cycleSize = (int) (period + 0.5);
@ -502,7 +514,7 @@ int PaQa_DetectPhaseError( PaQaRecording *recording, PaQaTestTone *testTone, PaQ
int skip = cycleSize; int skip = cycleSize;
int windowSize = cycleSize; int windowSize = cycleSize;
for( int i=analysisResult->latency; i<(recording->numFrames - windowSize); i += skip ) for( i=analysisResult->latency; i<(recording->numFrames - windowSize); i += skip )
{ {
double expectedPhase = previousPhase + (skip * MATH_TWO_PI / period); double expectedPhase = previousPhase + (skip * MATH_TWO_PI / period);
double expectedPhaseIncrement = PaQa_ComputePhaseDifference( expectedPhase, previousPhase ); double expectedPhaseIncrement = PaQa_ComputePhaseDifference( expectedPhase, previousPhase );

View file

@ -123,6 +123,7 @@ static int RecordAndPlaySinesCallback( const void *inputBuffer, void *outputBuff
PaStreamCallbackFlags statusFlags, PaStreamCallbackFlags statusFlags,
void *userData ) void *userData )
{ {
int i;
float *in = (float *)inputBuffer; float *in = (float *)inputBuffer;
float *out = (float *)outputBuffer; float *out = (float *)outputBuffer;
int done = paContinue; int done = paContinue;
@ -136,7 +137,7 @@ static int RecordAndPlaySinesCallback( const void *inputBuffer, void *outputBuff
if( in != NULL) if( in != NULL)
{ {
// Read each channel from the buffer. // Read each channel from the buffer.
for( int i=0; i<loopbackContext->test->inputParameters.channelCount; i++ ) for( i=0; i<loopbackContext->test->inputParameters.channelCount; i++ )
{ {
done |= PaQa_WriteRecording( &loopbackContext->recordings[i], done |= PaQa_WriteRecording( &loopbackContext->recordings[i],
in + i, in + i,
@ -150,7 +151,7 @@ static int RecordAndPlaySinesCallback( const void *inputBuffer, void *outputBuff
PaQa_EraseBuffer( out, framesPerBuffer, loopbackContext->test->outputParameters.channelCount ); PaQa_EraseBuffer( out, framesPerBuffer, loopbackContext->test->outputParameters.channelCount );
for( int i=0; i<loopbackContext->test->outputParameters.channelCount; i++ ) for( i=0; i<loopbackContext->test->outputParameters.channelCount; i++ )
{ {
PaQa_MixSine( &loopbackContext->generators[i], PaQa_MixSine( &loopbackContext->generators[i],
out + i, out + i,
@ -282,6 +283,7 @@ static int RecordAndPlayBlockingIO( PaStream *inStream,
LoopbackContext *loopbackContext LoopbackContext *loopbackContext
) )
{ {
int i;
float *in = (float *)g_BigBuffer; float *in = (float *)g_BigBuffer;
float *out = (float *)g_BigBuffer; float *out = (float *)g_BigBuffer;
PaError err; PaError err;
@ -305,7 +307,7 @@ static int RecordAndPlayBlockingIO( PaStream *inStream,
} }
// Save in a recording. // Save in a recording.
for( int i=0; i<loopbackContext->test->inputParameters.channelCount; i++ ) for( i=0; i<loopbackContext->test->inputParameters.channelCount; i++ )
{ {
done |= PaQa_WriteRecording( &loopbackContext->recordings[i], done |= PaQa_WriteRecording( &loopbackContext->recordings[i],
in + i, in + i,
@ -317,7 +319,7 @@ static int RecordAndPlayBlockingIO( PaStream *inStream,
available = Pa_GetStreamWriteAvailable( outStream ); available = Pa_GetStreamWriteAvailable( outStream );
if( available > (2*framesPerBuffer) ) available = (2*framesPerBuffer); if( available > (2*framesPerBuffer) ) available = (2*framesPerBuffer);
PaQa_EraseBuffer( out, available, loopbackContext->test->outputParameters.channelCount ); PaQa_EraseBuffer( out, available, loopbackContext->test->outputParameters.channelCount );
for( int i=0; i<loopbackContext->test->outputParameters.channelCount; i++ ) for( i=0; i<loopbackContext->test->outputParameters.channelCount; i++ )
{ {
PaQa_MixSine( &loopbackContext->generators[i], PaQa_MixSine( &loopbackContext->generators[i],
out + i, out + i,
@ -522,15 +524,16 @@ static int PaQa_SaveTestResultToWaveFile( UserOptions *userOptions, PaQaRecordin
/*******************************************************************/ /*******************************************************************/
static int PaQa_SetupLoopbackContext( LoopbackContext *loopbackContextPtr, TestParameters *testParams ) static int PaQa_SetupLoopbackContext( LoopbackContext *loopbackContextPtr, TestParameters *testParams )
{ {
int i;
// Setup loopback context. // Setup loopback context.
memset( loopbackContextPtr, 0, sizeof(LoopbackContext) ); memset( loopbackContextPtr, 0, sizeof(LoopbackContext) );
loopbackContextPtr->test = testParams; loopbackContextPtr->test = testParams;
for( int i=0; i<testParams->samplesPerFrame; i++ ) for( i=0; i<testParams->samplesPerFrame; i++ )
{ {
int err = PaQa_InitializeRecording( &loopbackContextPtr->recordings[i], testParams->maxFrames, testParams->sampleRate ); int err = PaQa_InitializeRecording( &loopbackContextPtr->recordings[i], testParams->maxFrames, testParams->sampleRate );
QA_ASSERT_EQUALS( "PaQa_InitializeRecording failed", paNoError, err ); QA_ASSERT_EQUALS( "PaQa_InitializeRecording failed", paNoError, err );
} }
for( int i=0; i<testParams->samplesPerFrame; i++ ) for( i=0; i<testParams->samplesPerFrame; i++ )
{ {
PaQa_SetupSineGenerator( &loopbackContextPtr->generators[i], PaQa_GetNthFrequency( testParams->baseFrequency, i ), PaQa_SetupSineGenerator( &loopbackContextPtr->generators[i], PaQa_GetNthFrequency( testParams->baseFrequency, i ),
testParams->amplitude, testParams->sampleRate ); testParams->amplitude, testParams->sampleRate );
@ -543,8 +546,8 @@ error:
/*******************************************************************/ /*******************************************************************/
static void PaQa_TeardownLoopbackContext( LoopbackContext *loopbackContextPtr ) static void PaQa_TeardownLoopbackContext( LoopbackContext *loopbackContextPtr )
{ {
int i;
for( int i=0; i<loopbackContextPtr->test->samplesPerFrame; i++ ) for( i=0; i<loopbackContextPtr->test->samplesPerFrame; i++ )
{ {
PaQa_TerminateRecording( &loopbackContextPtr->recordings[i] ); PaQa_TerminateRecording( &loopbackContextPtr->recordings[i] );
} }
@ -594,6 +597,7 @@ static void PaQa_PrintFullErrorReport( PaQaAnalysisResult *analysisResultPtr, in
*/ */
static int PaQa_SingleLoopBackTest( UserOptions *userOptions, TestParameters *testParams, double expectedAmplitude ) static int PaQa_SingleLoopBackTest( UserOptions *userOptions, TestParameters *testParams, double expectedAmplitude )
{ {
int i;
LoopbackContext loopbackContext; LoopbackContext loopbackContext;
PaError err = paNoError; PaError err = paNoError;
PaQaTestTone testTone; PaQaTestTone testTone;
@ -615,7 +619,7 @@ static int PaQa_SingleLoopBackTest( UserOptions *userOptions, TestParameters *te
QA_ASSERT_TRUE("loopback did not run", (loopbackContext.callbackCount > 1) ); QA_ASSERT_TRUE("loopback did not run", (loopbackContext.callbackCount > 1) );
// Analyse recording to to detect glitches. // Analyse recording to to detect glitches.
for( int i=0; i<testParams->samplesPerFrame; i++ ) for( i=0; i<testParams->samplesPerFrame; i++ )
{ {
double freq = PaQa_GetNthFrequency( testParams->baseFrequency, i ); double freq = PaQa_GetNthFrequency( testParams->baseFrequency, i );
testTone.frequency = freq; testTone.frequency = freq;
@ -700,6 +704,8 @@ static void PaQa_SetDefaultTestParameters( TestParameters *testParamsPtr, PaDevi
*/ */
static int PaQa_AnalyzeLoopbackConnection( UserOptions *userOptions, PaDeviceIndex inputDevice, PaDeviceIndex outputDevice, double expectedAmplitude ) static int PaQa_AnalyzeLoopbackConnection( UserOptions *userOptions, PaDeviceIndex inputDevice, PaDeviceIndex outputDevice, double expectedAmplitude )
{ {
int i;
int iSize;
int totalBadChannels = 0; int totalBadChannels = 0;
TestParameters testParams; TestParameters testParams;
const PaDeviceInfo *inputDeviceInfo; const PaDeviceInfo *inputDeviceInfo;
@ -735,7 +741,7 @@ static int PaQa_AnalyzeLoopbackConnection( UserOptions *userOptions, PaDeviceInd
testParams.maxFrames = (int) (0.5 * testParams.sampleRate); testParams.maxFrames = (int) (0.5 * testParams.sampleRate);
// Loop though combinations of audio parameters. // Loop though combinations of audio parameters.
for( int iFlags=0; iFlags<numFlagSettings; iFlags++ ) for( iFlags=0; iFlags<numFlagSettings; iFlags++ )
{ {
testParams.flags = flagSettings[iFlags]; testParams.flags = flagSettings[iFlags];
printf( "************ Mode = %s ************\n", printf( "************ Mode = %s ************\n",
@ -744,7 +750,7 @@ static int PaQa_AnalyzeLoopbackConnection( UserOptions *userOptions, PaDeviceInd
// Loop though combinations of audio parameters. // Loop though combinations of audio parameters.
testParams.framesPerBuffer = 128; testParams.framesPerBuffer = 128;
for( int iRate=0; iRate<numRates; iRate++ ) for( iRate=0; iRate<numRates; iRate++ )
{ {
// SAMPLE RATE // SAMPLE RATE
testParams.sampleRate = sampleRates[iRate]; testParams.sampleRate = sampleRates[iRate];
@ -757,7 +763,7 @@ static int PaQa_AnalyzeLoopbackConnection( UserOptions *userOptions, PaDeviceInd
testParams.sampleRate = 44100; testParams.sampleRate = 44100;
testParams.maxFrames = (int) (1.2 * testParams.sampleRate); testParams.maxFrames = (int) (1.2 * testParams.sampleRate);
for( int iSize=0; iSize<numBufferSizes; iSize++ ) for( iSize=0; iSize<numBufferSizes; iSize++ )
{ {
// BUFFER SIZE // BUFFER SIZE
testParams.framesPerBuffer = framesPerBuffers[iSize]; testParams.framesPerBuffer = framesPerBuffers[iSize];
@ -940,7 +946,7 @@ void usage( const char *name )
int main( int argc, char **argv ) int main( int argc, char **argv )
{ {
UserOptions userOptions; UserOptions userOptions;
int i;
int result = 0; int result = 0;
int justMath = 0; int justMath = 0;
printf("PortAudio LoopBack Test built " __DATE__ " at " __TIME__ "\n"); printf("PortAudio LoopBack Test built " __DATE__ " at " __TIME__ "\n");
@ -952,7 +958,7 @@ int main( int argc, char **argv )
userOptions.waveFilePath = "."; userOptions.waveFilePath = ".";
char *name = argv[0]; char *name = argv[0];
for( int i=1; i<argc; i++ ) for( i=1; i<argc; i++ )
{ {
char *arg = argv[i]; char *arg = argv[i];
if( arg[0] == '-' ) if( arg[0] == '-' )
@ -1008,7 +1014,7 @@ int main( int argc, char **argv )
} }
} }
//result = PaQa_TestAnalyzer(); result = PaQa_TestAnalyzer();
if( (result == 0) && (justMath == 0) ) if( (result == 0) && (justMath == 0) )
{ {

View file

@ -104,6 +104,7 @@ error:
static int TestMixedMonoTones( void ) static int TestMixedMonoTones( void )
{ {
int i;
int result = 0; int result = 0;
#define NUM_TONES (5) #define NUM_TONES (5)
PaQaSineGenerator generators[NUM_TONES]; PaQaSineGenerator generators[NUM_TONES];
@ -117,7 +118,7 @@ static int TestMixedMonoTones( void )
double amp = 0.1; double amp = 0.1;
// Setup a sine oscillator. // Setup a sine oscillator.
for( int i=0; i<NUM_TONES; i++ ) for( i=0; i<NUM_TONES; i++ )
{ {
PaQa_SetupSineGenerator( &generators[i], PaQa_GetNthFrequency( baseFreq, i ), amp, sampleRate ); PaQa_SetupSineGenerator( &generators[i], PaQa_GetNthFrequency( baseFreq, i ), amp, sampleRate );
} }
@ -130,14 +131,14 @@ static int TestMixedMonoTones( void )
while (!done) while (!done)
{ {
PaQa_EraseBuffer( buffer, FRAMES_PER_BLOCK, samplesPerFrame ); PaQa_EraseBuffer( buffer, FRAMES_PER_BLOCK, samplesPerFrame );
for( int i=0; i<NUM_TONES; i++ ) for( i=0; i<NUM_TONES; i++ )
{ {
PaQa_MixSine( &generators[i], buffer, FRAMES_PER_BLOCK, stride ); PaQa_MixSine( &generators[i], buffer, FRAMES_PER_BLOCK, stride );
} }
done = PaQa_WriteRecording( &recording, buffer, FRAMES_PER_BLOCK, samplesPerFrame ); done = PaQa_WriteRecording( &recording, buffer, FRAMES_PER_BLOCK, samplesPerFrame );
} }
for( int i=0; i<NUM_TONES; i++ ) for( i=0; i<NUM_TONES; i++ )
{ {
double mag = PaQa_CorrelateSine( &recording, PaQa_GetNthFrequency( baseFreq, i), sampleRate, 0, recording.numFrames, NULL ); double mag = PaQa_CorrelateSine( &recording, PaQa_GetNthFrequency( baseFreq, i), sampleRate, 0, recording.numFrames, NULL );
QA_ASSERT_CLOSE( "exact frequency match", amp, mag, 0.01 ); QA_ASSERT_CLOSE( "exact frequency match", amp, mag, 0.01 );
@ -219,7 +220,7 @@ static void MakeRecordingWithAddedFrames( PaQaRecording *recording, PaQaTestTone
static void MakeRecordingWithPop( PaQaRecording *recording, PaQaTestTone *testTone, int popPosition, int popWidth, double popAmplitude ) static void MakeRecordingWithPop( PaQaRecording *recording, PaQaTestTone *testTone, int popPosition, int popWidth, double popAmplitude )
{ {
int i;
PaQaSineGenerator generator; PaQaSineGenerator generator;
#define BUFFER_SIZE 512 #define BUFFER_SIZE 512
float buffer[BUFFER_SIZE]; float buffer[BUFFER_SIZE];
@ -245,7 +246,7 @@ static void MakeRecordingWithPop( PaQaRecording *recording, PaQaTestTone *testTo
popWidth = (recording->numFrames - popPosition) - 1; popWidth = (recording->numFrames - popPosition) - 1;
} }
for( int i=0; i<popWidth; i++ ) for( i=0; i<popWidth; i++ )
{ {
float good = recording->buffer[i+popPosition]; float good = recording->buffer[i+popPosition];
float bad = (good > 0.0) ? (good - popAmplitude) : (good + popAmplitude); float bad = (good > 0.0) ? (good - popAmplitude) : (good + popAmplitude);