]> Repos - portaudio/commitdiff
removed doxygen TODO items from pa_asio implementation. migrated them to new trac...
authorrossb <rossb@0f58301d-fd10-0410-b4af-bbb618454e57>
Tue, 1 Feb 2011 12:52:14 +0000 (12:52 +0000)
committerrossb <rossb@0f58301d-fd10-0410-b4af-bbb618454e57>
Tue, 1 Feb 2011 12:52:14 +0000 (12:52 +0000)
include/pa_asio.h
src/hostapi/asio/pa_asio.cpp

index 9360ee0649fa82244daf5162365d1376520e0031..06a561a48cf378a336cf2a52a2f33f751d5514eb 100644 (file)
@@ -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 );
index f9b5e70346179d05b83293ff577bdb873bdaf8ec..35a9831ce34482b3c5ee58de38a140a2520333e1 100644 (file)
     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;