Check for paNonInterleaved on Mac and return paSampleFormatNotSupported.
Fix pa_minlat.c. Linux was complaining about not checking fgets return value.
bin/patest_underflow \
bin/patest_wire \
bin/patest_write_sine \
+ bin/patest_write_sine_nonint \
bin/pa_devs \
bin/pa_fuzz \
bin/pa_minlat
long framesPerBuffer = test->framesPerBuffer;
if( framesPerBuffer <= 0 )
{
- framesPerBuffer = 64; // bigger values might run past end of recording
+ framesPerBuffer = maxPerBuffer; // bigger values might run past end of recording
}
// Read in audio.
/*******************************************************************/
static void PaQa_PrintShortErrorReport( PaQaAnalysisResult *analysisResultPtr, int channel )
{
- printf("#%d ", channel);
+ printf("channel %d ", channel);
if( analysisResultPtr->popPosition > 0 )
{
printf("POP %0.3f at %d, ", (double)analysisResultPtr->popAmplitude, (int)analysisResultPtr->popPosition );
}
}
- result = PaQa_TestAnalyzer();
+ //result = PaQa_TestAnalyzer();
if( (result == 0) && (justMath == 0) )
{
(float) sampleRate,
framesPerBuffer ));
VDBUG( ("Opening Stream.\n") );
-
+
/*These first few bits of code are from paSkeleton with few modifications.*/
if( inputParameters )
{
inputChannelCount = inputParameters->channelCount;
inputSampleFormat = inputParameters->sampleFormat;
+ /* @todo Blocking read/write on Mac is not yet supported. */
+ if( inputSampleFormat & paNonInterleaved )
+ {
+ return paSampleFormatNotSupported;
+ }
+
/* unless alternate device specification is supported, reject the use of
paUseHostApiSpecificDeviceSpecification */
outputChannelCount = outputParameters->channelCount;
outputSampleFormat = outputParameters->sampleFormat;
+ /* @todo Blocking read/write on Mac is not yet supported. */
+ if( outputSampleFormat & paNonInterleaved )
+ {
+ return paSampleFormatNotSupported;
+ }
+
/* unless alternate device specification is supported, reject the use of
paUseHostApiSpecificDeviceSpecification */
#endif\r
\r
/*\r
- * This fnuction determines the size of a particular sample format.\r
+ * This function determines the size of a particular sample format.\r
* if the format is not recognized, this returns zero.\r
*/\r
static size_t computeSampleSizeFromFormat( PaSampleFormat format )\r
{\r
- switch( format ) {\r
+ switch( format & (~paNonInterleaved) ) {\r
case paFloat32: return 4;\r
case paInt32: return 4;\r
case paInt24: return 3;\r
*/\r
static size_t computeSampleSizeFromFormatPow2( PaSampleFormat format )\r
{\r
- switch( format ) {\r
+ switch( format & (~paNonInterleaved) ) {\r
case paFloat32: return 4;\r
case paInt32: return 4;\r
case paInt24: return 4;\r
int framesPerBuffer;
double sampleRate = 44100.0;
char str[256];
+ char *line;
printf("pa_minlat - Determine minimum latency for your computer.\n");
printf(" usage: pa_minlat {userBufferSize}\n");
/* Ask user for a new nlatency. */
printf("\nMove windows around to see if the sound glitches.\n");
printf("Latency now %d, enter new number of frames, or 'q' to quit: ", outLatency );
- fgets( str, 256, stdin );
- {
- /* Get rid of newline */
- size_t l = strlen( str ) - 1;
- if( str[ l ] == '\n')
- str[ l ] = '\0';
- }
- if( str[0] == 'q' ) go = 0;
- else
- {
- outLatency = atol( str );
- if( outLatency < minLatency )
- {
- printf( "Latency below minimum of %d! Set to minimum!!!\n", minLatency );
- outLatency = minLatency;
- }
- }
- /* Stop sound until ENTER hit. */
+ line = fgets( str, 256, stdin );
+ if( line == NULL )
+ {
+ go = 0;
+ }
+ else
+ {
+ {
+ /* Get rid of newline */
+ size_t l = strlen( str ) - 1;
+ if( str[ l ] == '\n')
+ str[ l ] = '\0';
+ }
+
+
+ if( str[0] == 'q' ) go = 0;
+ else
+ {
+ outLatency = atol( str );
+ if( outLatency < minLatency )
+ {
+ printf( "Latency below minimum of %d! Set to minimum!!!\n", minLatency );
+ outLatency = minLatency;
+ }
+ }
+
+ }
+ /* Stop sound until ENTER hit. */
err = Pa_StopStream( stream );
if( err != paNoError ) goto error;
err = Pa_CloseStream( stream );