Show
Ignore:
Timestamp:
09/20/03 18:53:31 (5 years ago)
Author:
rossbencina
Message:

updated alsa status
put status in table

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • pa_proposals/trunk/status.html

    r71 r72  
    1414SPAN.not_done   {background-color:#FF88BB;} 
    1515SPAN.unknown    {background-color:#FFFF88;} 
     16TD.done                 {background-color:#BBFFEE;} 
     17TD.not_done     {background-color:#FF88BB;} 
     18TD.unknown      {background-color:#FFFF88;} 
     19TD.na   {} 
    1620--> 
    1721</STYLE> 
     
    2731 
    2832<P><A href="http://www.portaudio.com/">PortAudio Home Page</A></P> 
    29 <P>Updated: September 19, 2003 </P> 
     33<P>Updated: September 21, 2003 </P> 
    3034 
    3135<H2>Background</H2> 
     
    6569<ul> 
    6670<li>Internal interface documentation (need to finish pa_process.h documentation)  
     71<span class="done">done</span> 
     72 
     73<li>Some conversion functions (primarily those to and from 8 bit formats) are not yet implemented in pa_converters.c (some are also marked REVIEW) 
    6774<span class="not_done">todo</span> 
    6875 
     
    7683<span class="not_done">todo</span> 
    7784 
    78 <li>Some conversion functions (primarily those to and from 8 bit formats) are not yet implemented in pa_converters.c (some are also marked REVIEW) 
    79 <span class="not_done">todo</span> 
    80  
    8185<li>Underflow/overflow flags underspecified interaction with the callback adapter when buffer adaption is being used. 
    8286<span class="not_done">todo</span> 
     
    9498<span class="not_done">todo</span> 
    9599 
    96 <li>Infrastructure for blocking i/o (not clear if special infrastructure is needed, or what form it should take) 
    97 <span class="not_done">todo</span> 
     100<li>Infrastructure for blocking i/o (may still need to extend pa_process for some unixes) 
     101<span class="done">done</span> 
    98102 
    99103<li>pa_cpuload uses an IIR filter to smooth CPU load measurements, but the coefficients are not varied depending on the update rate. 
     
    140144</p> 
    141145 
    142 <ul> 
    143  
    144 <li>Consistent handling of underflow and overflow conditions (see <a href="001-UnderflowOverflowHandling.html">proposal 001</a>). This includes passing information about dropped buffers to the buffer adaptor and correctly handling the paNeverDropInput OpenStream() flag. 
    145 <br> 
     146<table border="1"> 
     147 
     148<tr><td><b>Feature</b></td> 
     149<td>wmme</td> 
     150<td>ds</td> 
     151<td>asio</td> 
     152<td>alsa</td> 
     153<td>jack</td> 
     154<td>oss</td> 
     155<td>mac_sm</td> 
     156<td>mac_core</td> 
     157<td>sgi</td> 
     158</tr> 
     159 
     160<tr><td>Consistent handling of underflow and overflow conditions (see <a href="001-UnderflowOverflowHandling.html">proposal 001</a>). This includes passing information about dropped buffers to the buffer adaptor and correctly handling the paNeverDropInput OpenStream() flag.<br> 
    146161<span class="not_done">implementations blocked waiting for common infrastructure support</span> 
    147  
    148  
    149 <li>basic PaDeviceInfo support (structVersion, name, hostApi) (see <a href="002-ImproveDeviceFormatsQueryInterface.html">proposal 002</a>)<br> 
    150 <span class="done">wmme</span> 
    151 <span class="done">ds</span> 
    152 <span class="done">asio</span> 
    153 <span class="done">alsa</span> 
    154 <span class="done">jack</span> 
    155 <span class="done">oss</span> 
    156 <span class="not_done">mac_sm</span> 
    157 <span class="not_done">mac_core</span> 
    158 <span class="not_done">sgi</span> 
    159  
    160 <li>maxInputChannels and maxOutputChannels fields of PaDeviceInfo (see <a href="002-ImproveDeviceFormatsQueryInterface.html">proposal 002</a>)<br> 
    161 <span class="done">wmme</span> 
    162 <span class="done">ds</span> 
    163 <span class="done">asio</span> 
    164 <span class="done">alsa</span> 
    165 <span class="done">jack</span> 
    166 <span class="not_done">oss</span> 
    167 <span class="not_done">mac_sm</span> 
    168 <span class="not_done">mac_core</span> 
    169 <span class="not_done">sgi</span> 
    170  
    171 <li>defaultSampleRate field of PaDeviceInfo (see <a href="002-ImproveDeviceFormatsQueryInterface.html">proposal 002</a>)<br> 
    172 <span class="done">wmme</span> 
    173 <span class="not_done">ds</span> 
    174 <span class="done">asio</span> 
    175 <span class="not_done">alsa</span> 
    176 <span class="done">jack</span> 
    177 <span class="done">oss</span> 
    178 <span class="not_done">mac_sm</span> 
    179 <span class="not_done">mac_core</span> 
    180 <span class="not_done">sgi</span> 
    181  
    182 <li>Pa_IsFormatSupported() (see <a href="002-ImproveDeviceFormatsQueryInterface.html">proposal 002</a>)<br> 
    183 <span class="not_done">wmme</span> 
    184 <span class="not_done">ds</span> 
    185 <span class="not_done">asio</span> 
    186 <span class="not_done">alsa</span> 
    187 <span class="not_done">jack</span> 
    188 <span class="done">oss</span> 
    189 <span class="not_done">mac_sm</span> 
    190 <span class="not_done">mac_core</span> 
    191 <span class="not_done">sgi</span> 
    192  
    193 <li>Calculate buffer settings based on suggestedLatency in inputParameters and outputParameters to Pa_OpenStream() (see <a href="003-ImproveLatencySpecificationInterface.html">proposal 003</a>)<br> 
    194 <span class="done">wmme</span> 
    195 <span class="done">ds</span> 
    196 <span class="done">asio</span> 
    197 <span class="done">alsa</span> 
    198 <span class="unknown">jack</span> 
    199 <span class="unknown">oss</span> 
    200 <span class="not_done">mac_sm</span> 
    201 <span class="not_done">mac_core</span> 
    202 <span class="not_done">sgi</span> 
    203  
    204 <li>defaultLowInputLatency, defaultLowOutputLatency fields of PaDeviceInfo (see <a href="003-ImproveLatencySpecificationInterface.html">proposal 003</a>)<br> 
    205 <span class="not_done">wmme</span> 
    206 <span class="not_done">ds</span> 
    207 <span class="not_done">asio</span> 
    208 <span class="done">alsa</span> 
    209 <span class="not_done">jack</span> 
    210 <span class="unknown">oss</span> 
    211 <span class="not_done">mac_sm</span> 
    212 <span class="not_done">mac_core</span> 
    213 <span class="not_done">sgi</span> 
    214  
    215 <li>defaultHighInputLatency, defaultHighOutputLatency fields of PaDeviceInfo (see <a href="003-ImproveLatencySpecificationInterface.html">proposal 003</a>)<br> 
    216 <span class="not_done">wmme</span> 
    217 <span class="not_done">ds</span> 
    218 <span class="not_done">asio</span> 
    219 <span class="done">alsa</span> 
    220 <span class="not_done">jack</span> 
    221 <span class="unknown">oss</span> 
    222 <span class="not_done">mac_sm</span> 
    223 <span class="not_done">mac_core</span> 
    224 <span class="not_done">sgi</span> 
    225  
    226 <li>inputLatency and outputLatency fields of PaStreamInfo (see <a href="003-ImproveLatencySpecificationInterface.html">proposal 003</a>)<br> 
    227 <span class="done">wmme</span> 
    228 <span class="not_done">ds</span> 
    229 <span class="done">asio</span> 
    230 <span class="not_done">alsa</span> 
    231 <span class="not_done">jack</span> 
    232 <span class="not_done">oss</span> 
    233 <span class="not_done">mac_sm</span> 
    234 <span class="not_done">mac_core</span> 
    235 <span class="not_done">sgi</span> 
    236  
    237 <li>framesPerBuffer value of paFramesPerBufferUnspecified (0) for OpenStream() to indicate variable implementation specified frames per buffer (see <a href="004-CallbackVariableFramesPerBuffer.html">proposal 004</a>)<br> 
    238 <span class="done">wmme</span> 
    239 <span class="done">ds</span> 
    240 <span class="done">asio</span> 
    241 <span class="done">alsa</span> 
    242 <span class="done">jack</span> 
    243 <span class="not_done">oss</span> 
    244 <span class="not_done">mac_sm</span> 
    245 <span class="not_done">mac_core</span> 
    246 <span class="not_done">sgi</span> 
    247  
    248 <li>Pa_ReadStream() (see <a href="005-BlockingReadWriteInterface.html">proposal 005</a>)<br> 
    249 <span class="not_done">wmme</span> 
    250 <span class="not_done">ds</span> 
    251 <span class="not_done">asio</span> 
    252 <span class="done">alsa</span> 
    253 <span class="not_done">jack</span> 
    254 <span class="not_done">oss</span> 
    255 <span class="not_done">mac_sm</span> 
    256 <span class="not_done">mac_core</span> 
    257 <span class="not_done">sgi</span> 
    258  
    259 <li>Pa_WriteStream() (see <a href="005-BlockingReadWriteInterface.html">proposal 005</a>)<br> 
    260 <span class="not_done">wmme</span> 
    261 <span class="not_done">ds</span> 
    262 <span class="not_done">asio</span> 
    263 <span class="done">alsa</span> 
    264 <span class="not_done">jack</span> 
    265 <span class="not_done">oss</span> 
    266 <span class="not_done">mac_sm</span> 
    267 <span class="not_done">mac_core</span> 
    268 <span class="not_done">sgi</span> 
    269  
    270 <li>Pa_GetStreamReadAvailable() (see <a href="005-BlockingReadWriteInterface.html">proposal 005</a>)<br> 
    271 <span class="not_done">wmme</span> 
    272 <span class="not_done">ds</span> 
    273 <span class="not_done">asio</span> 
    274 <span class="done">alsa</span> 
    275 <span class="not_done">jack</span> 
    276 <span class="not_done">oss</span> 
    277 <span class="not_done">mac_sm</span> 
    278 <span class="not_done">mac_core</span> 
    279 <span class="not_done">sgi</span> 
    280  
    281 <li>Pa_GetStreamWriteAvaliable() (see <a href="005-BlockingReadWriteInterface.html">proposal 005</a>)<br> 
    282 <span class="not_done">wmme</span> 
    283 <span class="not_done">ds</span> 
    284 <span class="not_done">asio</span> 
    285 <span class="done">alsa</span> 
    286 <span class="not_done">jack</span> 
    287 <span class="not_done">oss</span> 
    288 <span class="not_done">mac_sm</span> 
    289 <span class="not_done">mac_core</span> 
    290 <span class="not_done">sgi</span> 
    291  
    292 <li>basic PaHostApiInfo support (structVersion, type, name) (see <a href="007-MultipleHostAPIsInASingleBuild.html">proposal 007</a>)<br> 
    293 <span class="done">wmme</span> 
    294 <span class="done">ds</span> 
    295 <span class="done">asio</span> 
    296 <span class="done">alsa</span> 
    297 <span class="done">jack</span> 
    298 <span class="done">oss</span> 
    299 <span class="not_done">mac_sm</span> 
    300 <span class="not_done">mac_core</span> 
    301 <span class="not_done">sgi</span> 
    302  
    303 <li>deviceCount, defaultInputDevice, defaultOutputDevice fields of PaHostApiInfo (see <a href="007-MultipleHostAPIsInASingleBuild.html">proposal 007</a>)<br><br> 
    304 <span class="done">wmme</span> 
    305 <span class="done">ds</span> 
    306 <span class="done">asio</span> 
    307 <span class="done">alsa</span> 
    308 <span class="done">jack</span> 
    309 <span class="done">oss</span> 
    310 <span class="not_done">mac_sm</span> 
    311 <span class="not_done">mac_core</span> 
    312 <span class="not_done">sgi</span> 
    313  
    314 <li>Host API Specific Pa_OpenStream() Parameters (see <a href="008-HostAPISpecificOpenStreamParameters.html">proposal 008</a>) - 
    315 platform specific extension, not required<br> 
    316 <span class="done">wmme</span> 
    317  
    318 <li>All predictable host API errors cleanly recovered from and mapped to PortAudio error codes (see <a href="009-HandlingHostAPISpecificErrorCodes.html">proposal 009</a>)<br> 
    319 <span class="unknown">wmme</span> 
    320 <span class="unknown">ds</span> 
    321 <span class="unknown">asio</span> 
    322 <span class="done">alsa</span> 
    323 <span class="unknown">jack</span> 
    324 <span class="unknown">oss</span> 
    325 <span class="not_done">mac_sm</span> 
    326 <span class="not_done">mac_core</span> 
    327 <span class="not_done">sgi</span> 
    328  
    329 <li>All unexpected host API errors mapped to paUnanticipatedHostError using PaUtil_SetLastHostErrorInfo() (see <a href="009-HandlingHostAPISpecificErrorCodes.html">proposal 009</a>)<br> 
    330 <span class="unknown">wmme</span> 
    331 <span class="unknown">ds</span> 
    332 <span class="unknown">asio</span> 
    333 <span class="not_done">alsa</span> 
    334 <span class="unknown">jack</span> 
    335 <span class="unknown">oss</span> 
    336 <span class="not_done">mac_sm</span> 
    337 <span class="not_done">mac_core</span> 
    338 <span class="not_done">sgi</span> 
    339  
    340 <li>implement IsStopped() correctly (see <a href="010-ClarifyStreamStateMachine.html">proposal 010</a> and pa_stream.h)<br> 
    341 <span class="done">wmme</span> 
    342 <span class="done">ds</span> 
    343 <span class="done">asio</span> 
    344 <span class="done">alsa</span> 
    345 <span class="unknown">jack</span> 
    346 <span class="unknown">oss</span> 
    347 <span class="not_done">mac_sm</span> 
    348 <span class="not_done">mac_core</span> 
    349 <span class="not_done">sgi</span> 
    350  
    351 <li>implement IsActive() correctly (see <a href="010-ClarifyStreamStateMachine.html">proposal 010</a> and pa_stream.h)<br> 
    352 <span class="done">wmme</span> 
    353 <span class="done">ds</span> 
    354 <span class="done">asio</span> 
    355 <span class="done">alsa</span> 
    356 <span class="unknown">jack</span> 
    357 <span class="unknown">oss</span> 
    358 <span class="not_done">mac_sm</span> 
    359 <span class="not_done">mac_core</span> 
    360 <span class="not_done">sgi</span> 
    361  
    362 <li>correctly handle paContinue result from callback (see <a href="010-ClarifyStreamStateMachine.html">proposal 010</a>)<br> 
    363 <span class="done">wmme</span> 
    364 <span class="done">ds</span> 
    365 <span class="done">asio</span> 
    366 <span class="done">alsa</span> 
    367 <span class="unknown">jack</span> 
    368 <span class="unknown">oss</span> 
    369 <span class="not_done">mac_sm</span> 
    370 <span class="not_done">mac_core</span> 
    371 <span class="not_done">sgi</span> 
    372  
    373 <li>correctly handle paComplete result from callback (play out all enqueued buffers) (see <a href="010-ClarifyStreamStateMachine.html">proposal 010</a>)<br> 
    374 <span class="done">wmme</span> 
    375 <span class="not_done">ds</span> 
    376 <span class="done">asio</span> 
    377 <span class="done">alsa</span> 
    378 <span class="unknown">jack</span> 
    379 <span class="unknown">oss</span> 
    380 <span class="not_done">mac_sm</span> 
    381 <span class="not_done">mac_core</span> 
    382 <span class="not_done">sgi</span> 
    383  
    384 <li>correctly handle paAbort result from callback (abort enqued buffers if possible) (see <a href="010-ClarifyStreamStateMachine.html">proposal 010</a>)<br> 
    385 <span class="done">wmme</span> 
    386 <span class="unknown">ds</span> 
    387 <span class="done">asio</span> 
    388 <span class="done">alsa</span> 
    389 <span class="unknown">jack</span> 
    390 <span class="unknown">oss</span> 
    391 <span class="not_done">mac_sm</span> 
    392 <span class="not_done">mac_core</span> 
    393 <span class="not_done">sgi</span> 
    394  
    395 <li>correctly implement Pa_StopStrem() to play out all enqueued buffers<br> 
    396 <span class="done">wmme</span> 
    397 <span class="unknown">ds</span> 
    398 <span class="done">asio</span> 
    399 <span class="done">alsa</span> 
    400 <span class="unknown">jack</span> 
    401 <span class="unknown">oss</span> 
    402 <span class="not_done">mac_sm</span> 
    403 <span class="not_done">mac_core</span> 
    404 <span class="not_done">sgi</span> 
    405  
    406 <li>implement Pa_AbortStream() to abort enqueued buffers where possible, and stop as quickly as possible<br> 
    407 <span class="done">wmme</span> 
    408 <span class="done">ds</span> 
    409 <span class="done">asio</span> 
    410 <span class="done">alsa</span> 
    411 <span class="unknown">jack</span> 
    412 <span class="unknown">oss</span> 
    413 <span class="not_done">mac_sm</span> 
    414 <span class="not_done">mac_core</span> 
    415 <span class="not_done">sgi</span> 
    416  
    417 <li>implement Pa_GetStreamTime() (see <a href="015-ImproveCallbackTimestampInfo.html">proposal 015</a>) **NOTE enhancement proposal says stream time increases while stream is open, not just while running, not sure if alsa implementation observes this.<br>  
    418 <span class="done">wmme</span> 
    419 <span class="done">ds</span> 
    420 <span class="done">asio</span> 
    421 <span class="done">alsa</span> 
    422 <span class="unknown">jack</span> 
    423 <span class="unknown">oss</span> 
    424 <span class="not_done">mac_sm</span> 
    425 <span class="not_done">mac_core</span> 
    426 <span class="not_done">sgi</span> 
    427  
    428 <li>pass correctly filled timeInfo field to the buffer adaptor (pa_process) (see <a href="015-ImproveCallbackTimestampInfo.html">proposal 015</a>)<br> 
    429 <span class="done">wmme</span> 
    430 <span class="done">ds</span> 
    431 <span class="done">asio</span> 
    432 <span class="done">alsa</span> 
    433 <span class="unknown">jack</span> 
    434 <span class="unknown">oss</span> 
    435 <span class="not_done">mac_sm</span> 
    436 <span class="not_done">mac_core</span> 
    437 <span class="not_done">sgi</span> 
    438  
    439 <li>place actual sample rate in the sampleRate field of PaStreamInfo (see <a href="017-MethodForRetrievingActualStreamSampleRate.html">proposal 017</a>)<br> 
    440 <span class="not_done">not clear whether this field should be updated as the stream runs, or whether this should be the sample rate reported by the host API, and we need another field for detected/estimated sample rate.</span><br> 
    441 <span class="done">wmme</span> 
    442 <span class="done">ds</span> 
    443 <span class="done">asio</span> 
    444 <span class="not_done">alsa</span> 
    445 <span class="not_done">jack</span> 
    446 <span class="unknown">oss</span> 
    447 <span class="not_done">mac_sm</span> 
    448 <span class="not_done">mac_core</span> 
    449 <span class="not_done">sgi</span> 
    450  
    451 <li>call the stream finished callback (stream->streamRepresentation.streamFinishedCallback) at the appropriate times (see <a href="019-NotifyClientWhenAllBuffersHavePlayed.html">proposal 019</a>)<br> 
    452 <span class="done">wmme</span> 
    453 <span class="done">ds</span> 
    454 <span class="done">asio</span> 
    455 <span class="not_done">alsa</span> 
    456 <span class="not_done">jack</span> 
    457 <span class="done">oss</span> 
    458 <span class="not_done">mac_sm</span> 
    459 <span class="not_done">mac_core</span> 
    460 <span class="not_done">sgi</span> 
    461  
    462 <li>Prime buffers during Pa_StartStream if the paPrimeOutputBuffersUsingStreamCallback flag is set, zero them if it isn't set (see <a href="020-AllowCallbackToPrimeStream.html">proposal 020</a>)<br> 
    463 <span class="done">wmme</span> 
    464 <span class="not_done">ds</span> 
    465 <span class="not_done">asio</span> 
    466 <span class="not_done">alsa</span> 
    467 <span class="not_done">jack</span> 
    468 <span class="not_done">oss</span> 
    469 <span class="not_done">mac_sm</span> 
    470 <span class="not_done">mac_core</span> 
    471 <span class="not_done">sgi</span> 
    472  
    473 <li>Pass paPrimingOutput to stream callback when priming the buffers in response to paPrimeOutputBuffersUsingStreamCallback (see <a href="020-AllowCallbackToPrimeStream.html">proposal 020</a>)<br> 
    474 <span class="done">wmme</span> 
    475 <span class="not_done">ds</span> 
    476 <span class="not_done">asio</span> 
    477 <span class="not_done">alsa</span> 
    478 <span class="not_done">jack</span> 
    479 <span class="not_done">oss</span> 
    480 <span class="not_done">mac_sm</span> 
    481 <span class="not_done">mac_core</span> 
    482 <span class="not_done">sgi</span> 
    483  
    484 <li>Pass paInputUnderflow to stream callback when priming a full duplex stream's buffers in response to paPrimeOutputBuffersUsingStreamCallback (see <a href="020-AllowCallbackToPrimeStream.html">proposal 020</a>)<br> 
    485 <span class="done">wmme</span> 
    486 <span class="not_done">ds</span> 
    487 <span class="not_done">asio</span> 
    488 <span class="not_done">alsa</span> 
    489 <span class="not_done">jack</span> 
    490 <span class="not_done">oss</span> 
    491 <span class="not_done">mac_sm</span> 
    492 <span class="not_done">mac_core</span> 
    493 <span class="not_done">sgi</span> 
    494  
    495 </ul> 
     162</td> 
     163<td class="not_done">wmme</td> 
     164<td class="not_done">ds</td> 
     165<td class="not_done">asio</td> 
     166<td class="not_done">alsa</td> 
     167<td class="not_done">jack</td> 
     168<td class="not_done">oss</td> 
     169<td class="not_done">mac_sm</td> 
     170<td class="not_done">mac_core</td> 
     171<td class="not_done">sgi</td> 
     172</tr> 
     173 
     174 
     175<tr><td>basic PaDeviceInfo support (structVersion, name, hostApi) (see <a href="002-ImproveDeviceFormatsQueryInterface.html">proposal 002</a>)</td> 
     176<td class="done">wmme</td> 
     177<td class="done">ds</td> 
     178<td class="done">asio</td> 
     179<td class="done">alsa</td> 
     180<td class="done">jack</td> 
     181<td class="done">oss</td> 
     182<td class="not_done">mac_sm</td> 
     183<td class="not_done">mac_core</td> 
     184<td class="not_done">sgi</td> 
     185</tr> 
     186 
     187<tr><td>maxInputChannels and maxOutputChannels fields of PaDeviceInfo (see <a href="002-ImproveDeviceFormatsQueryInterface.html">proposal 002</a>)</td> 
     188<td class="done">wmme</td> 
     189<td class="done">ds</td> 
     190<td class="done">asio</td> 
     191<td class="done">alsa</td> 
     192<td class="done">jack</td> 
     193<td class="not_done">oss</td> 
     194<td class="not_done">mac_sm</td> 
     195<td class="not_done">mac_core</td> 
     196<td class="not_done">sgi</td> 
     197</tr> 
     198 
     199<tr><td>defaultSampleRate field of PaDeviceInfo (see <a href="002-ImproveDeviceFormatsQueryInterface.html">proposal 002</a>)</td> 
     200<td class="done">wmme</td> 
     201<td class="not_done">ds</td> 
     202<td class="done">asio</td> 
     203<td class="not_done">alsa</td> 
     204<td class="done">jack</td> 
     205<td class="done">oss</td> 
     206<td class="not_done">mac_sm</td> 
     207<td class="not_done">mac_core</td> 
     208<td class="not_done">sgi</td> 
     209</tr> 
     210 
     211<tr><td>Pa_IsFormatSupported() (see <a href="002-ImproveDeviceFormatsQueryInterface.html">proposal 002</a>)</td> 
     212<td class="not_done">wmme</td> 
     213<td class="not_done">ds</td> 
     214<td class="not_done">asio</td> 
     215<td class="not_done">alsa</td> 
     216<td class="done">jack</td> 
     217<td class="done">oss</td> 
     218<td class="not_done">mac_sm</td> 
     219<td class="not_done">mac_core</td> 
     220<td class="not_done">sgi</td> 
     221</tr> 
     222 
     223<tr><td>Calculate buffer settings based on suggestedLatency in inputParameters and outputParameters to Pa_OpenStream() (see <a href="003-ImproveLatencySpecificationInterface.html">proposal 003</a>)</td> 
     224<td class="done">wmme</td> 
     225<td class="done">ds</td> 
     226<td class="done">asio</td> 
     227<td class="done">alsa</td> 
     228<td class="done">jack</td> 
     229<td class="unknown">oss</td> 
     230<td class="not_done">mac_sm</td> 
     231<td class="not_done">mac_core</td> 
     232<td class="not_done">sgi</td> 
     233</tr> 
     234 
     235<tr><td>defaultLowInputLatency, defaultLowOutputLatency fields of PaDeviceInfo (see <a href="003-ImproveLatencySpecificationInterface.html">proposal 003</a>)</td> 
     236<td class="not_done">wmme</td> 
     237<td class="not_done">ds</td> 
     238<td class="not_done">asio</td> 
     239<td class="done">alsa</td> 
     240<td class="not_done">jack</td> 
     241<td class="unknown">oss</td> 
     242<td class="not_done">mac_sm</td> 
     243<td class="not_done">mac_core</td> 
     244<td class="not_done">sgi</td> 
     245</tr> 
     246 
     247<tr><td>defaultHighInputLatency, defaultHighOutputLatency fields of PaDeviceInfo (see <a href="003-ImproveLatencySpecificationInterface.html">proposal 003</a>)</td> 
     248<td class="not_done">wmme</td> 
     249<td class="not_done">ds</td> 
     250<td class="not_done">asio</td> 
     251<td class="done">alsa</td> 
     252<td class="not_done">jack</td> 
     253<td class="unknown">oss</td> 
     254<td class="not_done">mac_sm</td> 
     255<td class="not_done">mac_core</td> 
     256<td class="not_done">sgi</td> 
     257</tr> 
     258 
     259<tr><td>inputLatency and outputLatency fields of PaStreamInfo (see <a href="003-ImproveLatencySpecificationInterface.html">proposal 003</a>)</td> 
     260<td class="done">wmme</td> 
     261<td class="not_done">ds</td> 
     262<td class="done">asio</td> 
     263<td class="not_done">alsa</td> 
     264<td class="not_done">jack</td> 
     265<td class="not_done">oss</td> 
     266<td class="not_done">mac_sm</td> 
     267<td class="not_done">mac_core</td> 
     268<td class="not_done">sgi</td> 
     269</tr> 
     270 
     271<tr><td>framesPerBuffer value of paFramesPerBufferUnspecified (0) for OpenStream() to indicate variable implementation specified frames per buffer (see <a href="004-CallbackVariableFramesPerBuffer.html">proposal 004</a>)</td> 
     272<td class="done">wmme</td> 
     273<td class="done">ds</td> 
     274<td class="done">asio</td> 
     275<td class="done">alsa</td> 
     276<td class="done">jack</td> 
     277<td class="not_done">oss</td> 
     278<td class="not_done">mac_sm</td> 
     279<td class="not_done">mac_core</td> 
     280<td class="not_done">sgi</td> 
     281</tr> 
     282 
     283<tr><td>Pa_ReadStream() (see <a href="005-BlockingReadWriteInterface.html">proposal 005</a>)</td> 
     284<td class="done">wmme</td> 
     285<td class="not_done">ds</td> 
     286<td class="not_done">asio</td> 
     287<td class="done">alsa</td> 
     288<td class="not_done">jack</td> 
     289<td class="not_done">oss</td> 
     290<td class="not_done">mac_sm</td> 
     291<td class="not_done">mac_core</td> 
     292<td class="not_done">sgi</td> 
     293</tr> 
     294 
     295<tr><td>Pa_WriteStream() (see <a href="005-BlockingReadWriteInterface.html">proposal 005</a>)</td> 
     296<td class="done">wmme</td> 
     297<td class="not_done">ds</td> 
     298<td class="not_done">asio</td> 
     299<td class="done">alsa</td> 
     300<td class="not_done">jack</td> 
     301<td class="not_done">oss</td> 
     302<td class="not_done">mac_sm</td> 
     303<td class="not_done">mac_core</td> 
     304<td class="not_done">sgi</td> 
     305</tr> 
     306 
     307<tr><td>Pa_GetStreamReadAvailable() (see <a href="005-BlockingReadWriteInterface.html">proposal 005</a>)</td> 
     308<td class="done">wmme</td> 
     309<td class="not_done">ds</td> 
     310<td class="not_done">asio</td> 
     311<td class="done">alsa</td> 
     312<td class="not_done">jack</td> 
     313<td class="not_done">oss</td> 
     314<td class="not_done">mac_sm</td> 
     315<td class="not_done">mac_core</td> 
     316<td class="not_done">sgi</td> 
     317</tr> 
     318 
     319<tr><td>Pa_GetStreamWriteAvaliable() (see <a href="005-BlockingReadWriteInterface.html">proposal 005</a>)</td> 
     320<td class="done">wmme</td> 
     321<td class="not_done">ds</td> 
     322<td class="not_done">asio</td> 
     323<td class="done">alsa</td> 
     324<td class="not_done">jack</td> 
     325<td class="not_done">oss</td> 
     326<td class="not_done">mac_sm</td> 
     327<td class="not_done">mac_core</td> 
     328<td class="not_done">sgi</td> 
     329</tr> 
     330 
     331<tr><td>basic PaHostApiInfo support (structVersion, type, name) (see <a href="007-MultipleHostAPIsInASingleBuild.html">proposal 007</a>)</td> 
     332<td class="done">wmme</td> 
     333<td class="done">ds</td> 
     334<td class="done">asio</td> 
     335<td class="done">alsa</td> 
     336<td class="done">jack</td> 
     337<td class="done">oss</td> 
     338<td class="not_done">mac_sm</td> 
     339<td class="not_done">mac_core</td> 
     340<td class="not_done">sgi</td> 
     341</tr> 
     342 
     343<tr><td>deviceCount, defaultInputDevice, defaultOutputDevice fields of PaHostApiInfo (see <a href="007-MultipleHostAPIsInASingleBuild.html">proposal 007</a>)</td></td> 
     344<td class="done">wmme</td> 
     345<td class="done">ds</td> 
     346<td class="done">asio</td> 
     347<td class="done">alsa</td> 
     348<td class="done">jack</td> 
     349<td class="done">oss</td> 
     350<td class="not_done">mac_sm</td> 
     351<td class="not_done">mac_core</td> 
     352<td class="not_done">sgi</td> 
     353</tr> 
     354 
     355<tr><td>Host API Specific Pa_OpenStream() Parameters (see <a href="008-HostAPISpecificOpenStreamParameters.html">proposal 008</a>) - 
     356platform specific extension, not required</td> 
     357<td class="done">wmme</td> 
     358<td class="na">ds</td> 
     359<td class="na">asio</td> 
     360<td class="na">alsa</td> 
     361<td class="na">jack</td> 
     362<td class="na">oss</td> 
     363<td class="na">mac_sm</td> 
     364<td class="na">mac_core</td> 
     365<td class="na">sgi</td> 
     366</tr> 
     367 
     368<tr><td>All predictable host API errors cleanly recovered from and mapped to PortAudio error codes (see <a href="009-HandlingHostAPISpecificErrorCodes.html">proposal 009</a>)</td> 
     369<td class="unknown">wmme</td> 
     370<td class="unknown">ds</td> 
     371<td class="unknown">asio</td> 
     372<td class="done">alsa</td> 
     373<td class="unknown">jack</td> 
     374<td class="unknown">oss</td> 
     375<td class="not_done">mac_sm</td> 
     376<td class="not_done">mac_core</td> 
     377<td class="not_done">sgi</td> 
     378</tr> 
     379 
     380<tr><td>All unexpected host API errors mapped to paUnanticipatedHostError using PaUtil_SetLastHostErrorInfo() (see <a href="009-HandlingHostAPISpecificErrorCodes.html">proposal 009</a>)</td> 
     381<td class="unknown">wmme</td> 
     382<td class="unknown">ds</td> 
     383<td class="unknown">asio</td> 
     384<td class="not_done">alsa</td> 
     385<td class="unknown">jack</td> 
     386<td class="unknown">oss</td> 
     387<td class="not_done">mac_sm</td> 
     388<td class="not_done">mac_core</td> 
     389<td class="not_done">sgi</td> 
     390</tr> 
     391 
     392<tr><td>implement IsStopped() correctly (see <a href="010-ClarifyStreamStateMachine.html">proposal 010</a> and pa_stream.h)</td> 
     393<td class="done">wmme</td> 
     394<td class="done">ds</td> 
     395<td class="done">asio</td> 
     396<td class="done">alsa</td> 
     397<td class="unknown">jack</td> 
     398<td class="unknown">oss</td> 
     399<td class="not_done">mac_sm</td> 
     400<td class="not_done">mac_core</td> 
     401<td class="not_done">sgi</td> 
     402</tr> 
     403 
     404<tr><td>implement IsActive() correctly (see <a href="010-ClarifyStreamStateMachine.html">proposal 010</a> and pa_stream.h)</td> 
     405<td class="done">wmme</td> 
     406<td class="done">ds</td> 
     407<td class="done">asio</td> 
     408<td class="done">alsa</td> 
     409<td class="unknown">jack</td> 
     410<td class="unknown">oss</td> 
     411<td class="not_done">mac_sm</td> 
     412<td class="not_done">mac_core</td> 
     413<td class="not_done">sgi</td> 
     414</tr> 
     415 
     416<tr><td>correctly handle paContinue result from callback (see <a href="010-ClarifyStreamStateMachine.html">proposal 010</a>)</td> 
     417<td class="done">wmme</td> 
     418<td class="done">ds</td> 
     419<td class="done">asio</td> 
     420<td class="done">alsa</td> 
     421<td class="unknown">jack</td> 
     422<td class="unknown">oss</td> 
     423<td class="not_done">mac_sm</td> 
     424<td class="not_done">mac_core</td> 
     425<td class="not_done">sgi</td> 
     426</tr> 
     427 
     428<tr><td>correctly handle paComplete result from callback (play out all enqueued buffers) (see <a href="010-ClarifyStreamStateMachine.html">proposal 010</a>)</td> 
     429<td class="done">wmme</td> 
     430<td class="not_done">ds</td> 
     431<td class="done">asio</td> 
     432<td class="done">alsa</td> 
     433<td class="unknown">jack</td> 
     434<td class="unknown">oss</td> 
     435<td class="not_done">mac_sm</td> 
     436<td class="not_done">mac_core</td> 
     437<td class="not_done">sgi</td> 
     438</tr> 
     439 
     440<tr><td>correctly handle paAbort result from callback (abort enqued buffers if possible) (see <a href="010-ClarifyStreamStateMachine.html">proposal 010</a>)</td> 
     441<td class="done">wmme</td> 
     442<td class="unknown">ds</td> 
     443<td class="done">asio</td> 
     444<td class="done">alsa</td> 
     445<td class="unknown">jack</td> 
     446<td class="unknown">oss</td> 
     447<td class="not_done">mac_sm</td> 
     448<td class="not_done">mac_core</td> 
     449<td class="not_done">sgi</td> 
     450</tr> 
     451 
     452<tr><td>correctly implement Pa_StopStrem() to play out all enqueued buffers</td> 
     453<td class="done">wmme</td> 
     454<td class="unknown">ds</td> 
     455<td class="done">asio</td> 
     456<td class="done">alsa</td> 
     457<td class="unknown">jack</td> 
     458<td class="unknown">oss</td> 
     459<td class="not_done">mac_sm</td> 
     460<td class="not_done">mac_core</td> 
     461<td class="not_done">sgi</td> 
     462</tr> 
     463 
     464<tr><td>implement Pa_AbortStream() to abort enqueued buffers where possible, and stop as quickly as possible</td> 
     465<td class="done">wmme</td> 
     466<td class="done">ds</td> 
     467<td class="done">asio</td> 
     468<td class="done">alsa</td> 
     469<td class="unknown">jack</td> 
     470<td class="unknown">oss</td> 
     471<td class="not_done">mac_sm</td> 
     472<td class="not_done">mac_core</td> 
     473<td class="not_done">sgi</td> 
     474</tr> 
     475 
     476<tr><td>implement Pa_GetStreamTime() (see <a href="015-ImproveCallbackTimestampInfo.html">proposal 015</a>) <span class="unknown">enhancement proposal says stream time increases while stream is open, not just while running, not sure if alsa implementation observes this.</span></td>  
     477<td class="done">wmme</td> 
     478<td class="done">ds</td> 
     479<td class="done">asio</td> 
     480<td class="done">alsa</td> 
     481<td class="unknown">jack</td> 
     482<td class="unknown">oss</td> 
     483<td class="not_done">mac_sm</td> 
     484<td class="not_done">mac_core</td> 
     485<td class="not_done">sgi</td> 
     486