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: Float32_To_UInt8_Dither, Float32_To_UInt8_Clip, Float32_To_UInt8_DitherClip, 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

Global PaAsio_GetAvailableLatencyValues (PaDeviceIndex device, long *minLatency, long *maxLatency, long *preferredLatency, long *granularity)
This function should be renamed to PaAsio_GetAvailableBufferSizes. No reason to use a wildly different name from the ASIO version.

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 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
Generated on Fri Jan 27 15:38:15 2012 for PortAudio by  doxygen 1.6.3