&stream->inputAudioBufferList );
if(err != noErr)
{
- /* We used to assert on error. Now we try to just stop the stream. */
goto stop_stream;
}
&size,
(void *)&data );
if( err == RING_BUFFER_EMPTY )
- { /*the ring buffer callback underflowed */
+ { /* the ring buffer callback underflowed */
err = 0;
bzero( ((char *)data) + size, sizeof(data)-size );
/* The ring buffer can underflow normally when the stream is stopping.
ERR( err );
if(err != noErr)
{
- /* We used to assert on error. Now we try to just stop the stream. */
goto stop_stream;
}
ERR( err );
if(err != noErr)
{
- /* We used to assert on error. Now we try to just stop the stream. */
goto stop_stream;
}
ERR( err );
if( err != noErr && err != RING_BUFFER_EMPTY )
{
- /* We used to assert on error. Now we try to just stop the stream. */
- goto stop_stream;
+ goto stop_stream;
}
}
}
- switch( callbackResult )
- {
- case paContinue:
- break;
- case paComplete:
- case paAbort:
- goto stop_stream;
- break;
- }
-
- PaUtil_EndCpuLoadMeasurement( &stream->cpuLoadMeasurer, framesProcessed );
- return noErr;
+ // Should we return successfully or fall through to stopping the stream?
+ if( callbackResult == paContinue )
+ {
+ PaUtil_EndCpuLoadMeasurement( &stream->cpuLoadMeasurer, framesProcessed );
+ return noErr;
+ }
stop_stream:
stream->state = CALLBACK_STOPPED ;
return noErr;
}
-
/*
When CloseStream() is called, the multi-api layer ensures that
the stream has already been stopped or aborted.
*/
/*
- * The text above constitutes the entire PortAudio license; however,
+ * The text above constitutes the entire PortAudio license; however,
* the PortAudio community also makes the following non-binding requests:
*
* Any person wishing to distribute modifications to the Software is
* requested to send the modifications to the original developer so that
- * they can be incorporated into the canonical version. It is also
- * requested that these non-binding requests be included along with the
+ * they can be incorporated into the canonical version. It is also
+ * requested that these non-binding requests be included along with the
* license above.
*/