PortAudio  2.0
Todo List
Global Pa_CloseStream (PaStream *stream)
REVIEW: shouldn't we close anyway? see: http://www.portaudio.com/trac/ticket/115
File pa_converters.c

Consider whether functions which dither but don't clip should exist, V18 automatically enabled clipping whenever dithering was selected. Perhaps we should do the same. see: "require clipping for dithering sample conversion functions?" http://www.portaudio.com/trac/ticket/112

implement the converters marked IMPLEMENT ME: Int32_To_Int24_Dither, Int32_To_UInt8_Dither, Int24_To_Int16_Dither, Int24_To_Int8_Dither, Int24_To_UInt8_Dither, Int16_To_Int8_Dither, Int16_To_UInt8_Dither see: "some conversion functions are not implemented in pa_converters.c" http://www.portaudio.com/trac/ticket/35

review the converters marked REVIEW: Float32_To_Int32, Float32_To_Int32_Dither, Float32_To_Int32_Clip, Float32_To_Int32_DitherClip, Int32_To_Int16_Dither, Int32_To_Int8_Dither, Int16_To_Int32

File pa_cpuload.c
Dynamically calculate the coefficients used to smooth the CPU Load Measurements over time to provide a uniform characterisation of CPU Load independent of rate at which PaUtil_BeginCpuLoadMeasurement / PaUtil_EndCpuLoadMeasurement are called. see http://www.portaudio.com/trac/ticket/113
Global Pa_GetErrorText (PaError errorCode)
could catenate the last host error text to result in the case of paUnanticipatedHostError. see: http://www.portaudio.com/trac/ticket/114
File patest_toomanysines.c
This may not be needed now that we have "patest_out_overflow.c".
Global PaUtil_EndCpuLoadMeasurement (PaUtilCpuLoadMeasurer *measurer, unsigned long framesProcessed)
these coefficients shouldn't be hardwired see: http://www.portaudio.com/trac/ticket/113
Global ProcessingThreadProc (void *pArg)

support paInputUnderflow, paOutputOverflow and paNeverDropInput

FIXME/REVIEW: can't return host error info from an asyncronous thread. see http://www.portaudio.com/trac/ticket/143

if all of the other buffers are also ready then we discard all but the most recent. This is an input buffer overflow. FIXME: these buffers should be passed to the callback in a paNeverDropInput stream. http://www.portaudio.com/trac/ticket/142

implement inputBufferAdcTime

FIXME: should probably reset the output device immediately once the callback returns paAbort see: http://www.portaudio.com/trac/ticket/141

need to handle PaNeverDropInput here where necessary

Global ReadStream (PaStream *stream, void *buffer, unsigned long frames)
REVIEW: consider what to do if the input overflows. do we requeue all of the buffers? should we be running a thread to make sure they are always queued? see: http://www.portaudio.com/trac/ticket/117
Global ReadStream (PaStream *stream, void *buffer, unsigned long frames)
REVIEW: consider what to do if the input overflows. do we requeue all of the buffers? should we be running a thread to make sure they are always queued? see: http://www.portaudio.com/trac/ticket/117
Global WriteStream (PaStream *stream, const void *buffer, unsigned long frames)
REVIEW: consider what to do if the output underflows. do we requeue all the existing buffers with zeros? should we run a separate thread to keep the buffers enqueued at all times? see: http://www.portaudio.com/trac/ticket/117
Global WriteStream (PaStream *stream, const void *buffer, unsigned long frames)
REVIEW: consider what to do if the output underflows. do we requeue all the existing buffers with zeros? should we run a separate thread to keep the buffers enqueued at all times? see: http://www.portaudio.com/trac/ticket/117