removed doxygen TODO items from pa_asio implementation. migrated them to new trac tasks: #103, #104, #105, #106, #107, #108, #109, #110, #111
This commit is contained in:
parent
13a5f4a980
commit
e286d2c10a
2 changed files with 22 additions and 45 deletions
|
|
@ -65,7 +65,8 @@ extern "C"
|
|||
|
||||
@see ASIOGetBufferSize in the ASIO SDK.
|
||||
|
||||
@todo This function should have a better name, any suggestions?
|
||||
@todo This function should be renamed to PaAsio_GetAvailableBufferSizes.
|
||||
No reason to use a wildly different name from the ASIO version.
|
||||
*/
|
||||
PaError PaAsio_GetAvailableLatencyValues( PaDeviceIndex device,
|
||||
long *minLatency, long *maxLatency, long *preferredLatency, long *granularity );
|
||||
|
|
|
|||
|
|
@ -78,46 +78,9 @@
|
|||
Note that specific support for paInputUnderflow, paOutputOverflow and
|
||||
paNeverDropInput is not necessary or possible with this driver due to the
|
||||
synchronous full duplex double-buffered architecture of ASIO.
|
||||
|
||||
@todo implement host api specific extension to set i/o buffer sizes in frames
|
||||
|
||||
@todo review ReadStream, WriteStream, GetStreamReadAvailable, GetStreamWriteAvailable
|
||||
|
||||
@todo review Blocking i/o latency computations in OpenStream(), changing ring
|
||||
buffer to a non-power-of-two structure could reduce blocking i/o latency.
|
||||
|
||||
@todo implement IsFormatSupported
|
||||
|
||||
@todo work out how to implement stream stoppage from callback and
|
||||
implement IsStreamActive properly. Stream stoppage could be implemented
|
||||
using a high-priority thread blocked on an Event which is signalled
|
||||
by the callback. Or, we could just call ASIO stop from the callback
|
||||
and see what happens.
|
||||
|
||||
@todo rigorously check asio return codes and convert to pa error codes
|
||||
|
||||
@todo Different channels of a multichannel stream can have different sample
|
||||
formats, but we assume that all are the same as the first channel for now.
|
||||
Fixing this will require the block processor to maintain per-channel
|
||||
conversion functions - could get nasty.
|
||||
|
||||
@todo investigate whether the asio processNow flag needs to be honoured
|
||||
|
||||
@todo handle asioMessages() callbacks in a useful way, or at least document
|
||||
what cases we don't handle.
|
||||
|
||||
@todo miscellaneous other FIXMEs
|
||||
|
||||
@todo provide an asio-specific method for setting the systems specific
|
||||
value (aka main window handle) - check that this matches the value
|
||||
passed to PaAsio_ShowControlPanel, or remove it entirely from
|
||||
PaAsio_ShowControlPanel. - this would allow PaAsio_ShowControlPanel
|
||||
to be called for the currently open stream (at present all streams
|
||||
must be closed).
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <assert.h>
|
||||
#include <string.h>
|
||||
|
|
@ -2241,7 +2204,11 @@ static PaError OpenStream( struct PaUtilHostApiRepresentation *hostApi,
|
|||
|
||||
if( inputChannelCount > 0 )
|
||||
{
|
||||
/* FIXME: assume all channels use the same type for now */
|
||||
/* FIXME: assume all channels use the same type for now
|
||||
|
||||
see: "ASIO devices with multiple sample formats are unsupported"
|
||||
http://www.portaudio.com/trac/ticket/106
|
||||
*/
|
||||
ASIOSampleType inputType = stream->asioChannelInfos[0].type;
|
||||
|
||||
PA_DEBUG(("ASIO Input type:%d",inputType));
|
||||
|
|
@ -2258,7 +2225,11 @@ static PaError OpenStream( struct PaUtilHostApiRepresentation *hostApi,
|
|||
|
||||
if( outputChannelCount > 0 )
|
||||
{
|
||||
/* FIXME: assume all channels use the same type for now */
|
||||
/* FIXME: assume all channels use the same type for now
|
||||
|
||||
see: "ASIO devices with multiple sample formats are unsupported"
|
||||
http://www.portaudio.com/trac/ticket/106
|
||||
*/
|
||||
ASIOSampleType outputType = stream->asioChannelInfos[inputChannelCount].type;
|
||||
|
||||
PA_DEBUG(("ASIO Output type:%d",outputType));
|
||||
|
|
@ -2791,10 +2762,6 @@ static ASIOTime *bufferSwitchTimeInfo( ASIOTime *timeInfo, long index, ASIOBool
|
|||
if( !theAsioStream )
|
||||
return 0L;
|
||||
|
||||
// Keep sample position
|
||||
// FIXME: asioDriverInfo.pahsc_NumFramesDone = timeInfo->timeInfo.samplePosition.lo;
|
||||
|
||||
|
||||
// protect against reentrancy
|
||||
if( PaAsio_AtomicIncrement(&theAsioStream->reenterCount) )
|
||||
{
|
||||
|
|
@ -2849,6 +2816,11 @@ static ASIOTime *bufferSwitchTimeInfo( ASIOTime *timeInfo, long index, ASIOBool
|
|||
{
|
||||
|
||||
#if 0
|
||||
/*
|
||||
see: "ASIO callback underflow/overflow buffer slip detection doesn't work"
|
||||
http://www.portaudio.com/trac/ticket/110
|
||||
*/
|
||||
|
||||
// test code to try to detect slip conditions... these may work on some systems
|
||||
// but neither of them work on the RME Digi96
|
||||
|
||||
|
|
@ -3061,7 +3033,11 @@ static long asioMessages(long selector, long value, void* message, double* opt)
|
|||
// Reset the driver is done by completely destruct is. I.e. ASIOStop(), ASIODisposeBuffers(), Destruction
|
||||
// Afterwards you initialize the driver again.
|
||||
|
||||
/*FIXME: commented the next line out */
|
||||
/*FIXME: commented the next line out
|
||||
|
||||
see: "PA/ASIO ignores some driver notifications it probably shouldn't"
|
||||
http://www.portaudio.com/trac/ticket/108
|
||||
*/
|
||||
//asioDriverInfo.stopped; // In this sample the processing will just stop
|
||||
ret = 1L;
|
||||
break;
|
||||
|
|
|
|||
Loading…
Reference in a new issue