Release 3.0.1 tarball 3.0.1
authorGary Scavone <gary@music.mcgill.ca>
Thu, 10 Oct 2013 22:03:27 +0000 (00:03 +0200)
committerStephen Sinclair <sinclair@music.mcgill.ca>
Thu, 10 Oct 2013 22:03:27 +0000 (00:03 +0200)
doc/html/RtAudio_8h-source.html
doc/html/index.html

index 7c783531103c05b5d22e35e8a416076a6d8e8ad6..0e91b8d5dd8d3c4fddc6711d71d034fd54ebf74c 100644 (file)
@@ -11,7 +11,7 @@
 <h1>RtAudio.h</h1><div class="fragment"><pre>00001 <span class="comment">/************************************************************************/</span>
 00038 <span class="comment">/************************************************************************/</span>
 00039 
-00040 <span class="comment">// RtAudio: Version 3.0, 11 March 2004</span>
+00040 <span class="comment">// RtAudio: Version 3.0.1, 22 March 2004</span>
 00041 
 00042 <span class="preprocessor">#ifndef __RTAUDIO_H</span>
 00043 <span class="preprocessor"></span><span class="preprocessor">#define __RTAUDIO_H</span>
 00186 
 00187     RtApiStream()
 00188       :apiHandle(0), userBuffer(0), deviceBuffer(0) {}
-00189     <span class="comment">//      :apiHandle(0), mode(UNINITIALIZED), state(STREAM_STOPPED),</span>
-00190     <span class="comment">//       userBuffer(0), deviceBuffer(0) {}</span>
-00191   };
-00192 
-00193   <span class="comment">// A protected device structure for audio devices.</span>
-00194   <span class="keyword">struct </span>RtApiDevice {
-00195     std::string name;      
-00196     <span class="keywordtype">bool</span> probed;           
-00197     <span class="keywordtype">void</span> *apiDeviceId;     <span class="comment">// void pointer for API specific device information</span>
-00198     <span class="keywordtype">int</span> maxOutputChannels; 
-00199     <span class="keywordtype">int</span> maxInputChannels;  
-00200     <span class="keywordtype">int</span> maxDuplexChannels; 
-00201     <span class="keywordtype">int</span> minOutputChannels; 
-00202     <span class="keywordtype">int</span> minInputChannels;  
-00203     <span class="keywordtype">int</span> minDuplexChannels
-00204     <span class="keywordtype">bool</span> hasDuplexSupport; 
-00205     <span class="keywordtype">bool</span> isDefault;        
-00206     std::vector&lt;int&gt; sampleRates; 
-00207     RtAudioFormat nativeFormats;  
-00209     <span class="comment">// Default constructor.</span>
-00210     RtApiDevice()
-00211       :probed(false), apiDeviceId(0), maxOutputChannels(0), maxInputChannels(0),
-00212        maxDuplexChannels(0), minOutputChannels(0), minInputChannels(0),
-00213        minDuplexChannels(0), isDefault(false), nativeFormats(0) {}
-00214   };
-00215 
-00216   <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">short</span> Int16;
-00217   <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> Int32;
-00218   <span class="keyword">typedef</span> <span class="keywordtype">float</span> Float32;
-00219   <span class="keyword">typedef</span> <span class="keywordtype">double</span> Float64;
-00220 
-00221   <span class="keywordtype">char</span> message_[256];
-00222   <span class="keywordtype">int</span> nDevices_;
-00223   std::vector&lt;RtApiDevice&gt; devices_;
-00224   RtApiStream stream_;
-0022
-00230   <span class="keyword">virtual</span> <span class="keywordtype">void</span> initialize(<span class="keywordtype">void</span>) = 0;
-0023
-00240   <span class="keyword">virtual</span> <span class="keywordtype">void</span> probeDeviceInfo( RtApiDevice *info );
-00241 
-00250   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">int</span> channels, 
-00251                                 <span class="keywordtype">int</span> sampleRate, RtAudioFormat format,
-00252                                 <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
-0025
-00258   <span class="keyword">virtual</span> <span class="keywordtype">int</span> getDefaultInputDevice(<span class="keywordtype">void</span>);
-00259 
-00264   <span class="keyword">virtual</span> <span class="keywordtype">int</span> getDefaultOutputDevice(<span class="keywordtype">void</span>);
-0026
-00267   <span class="keywordtype">void</span> clearDeviceInfo( RtApiDevice *info );
-0026
-00270   <span class="keywordtype">void</span> clearStreamInfo();
-0027
-00273   <span class="keywordtype">void</span> error( RtError::Type type );
-0027
-00279   <span class="keywordtype">void</span> verifyStream();
-0028
-00285   <span class="keywordtype">void</span> convertStreamBuffer( StreamMode mode );
-0028
-00288   <span class="keywordtype">void</span> byteSwapBuffer( <span class="keywordtype">char</span> *buffer, <span class="keywordtype">int</span> samples, RtAudioFormat format );
-00289 
-00291   <span class="keywordtype">int</span> formatBytes( RtAudioFormat format );
-00292 };
+00189     <span class="comment">//      mode(UNINITIALIZED), state(STREAM_STOPPED),</span>
+00190   };
+00191 
+00192   <span class="comment">// A protected device structure for audio devices.</span>
+00193   <span class="keyword">struct </span>RtApiDevice {
+00194     std::string name;      
+00195     <span class="keywordtype">bool</span> probed;           
+00196     <span class="keywordtype">void</span> *apiDeviceId;     <span class="comment">// void pointer for API specific device information</span>
+00197     <span class="keywordtype">int</span> maxOutputChannels; 
+00198     <span class="keywordtype">int</span> maxInputChannels;  
+00199     <span class="keywordtype">int</span> maxDuplexChannels; 
+00200     <span class="keywordtype">int</span> minOutputChannels; 
+00201     <span class="keywordtype">int</span> minInputChannels;  
+00202     <span class="keywordtype">int</span> minDuplexChannels; 
+00203     <span class="keywordtype">bool</span> hasDuplexSupport
+00204     <span class="keywordtype">bool</span> isDefault;        
+00205     std::vector&lt;int&gt; sampleRates; 
+00206     RtAudioFormat nativeFormats;  
+00208     <span class="comment">// Default constructor.</span>
+00209     RtApiDevice()
+00210       :probed(false), apiDeviceId(0), maxOutputChannels(0), maxInputChannels(0),
+00211        maxDuplexChannels(0), minOutputChannels(0), minInputChannels(0),
+00212        minDuplexChannels(0), isDefault(false), nativeFormats(0) {}
+00213   };
+00214 
+00215   <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">short</span> Int16;
+00216   <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> Int32;
+00217   <span class="keyword">typedef</span> <span class="keywordtype">float</span> Float32;
+00218   <span class="keyword">typedef</span> <span class="keywordtype">double</span> Float64;
+00219 
+00220   <span class="keywordtype">char</span> message_[256];
+00221   <span class="keywordtype">int</span> nDevices_;
+00222   std::vector&lt;RtApiDevice&gt; devices_;
+00223   RtApiStream stream_;
+00224 
+00229   <span class="keyword">virtual</span> <span class="keywordtype">void</span> initialize(<span class="keywordtype">void</span>) = 0;
+00230 
+00239   <span class="keyword">virtual</span> <span class="keywordtype">void</span> probeDeviceInfo( RtApiDevice *info );
+00240 
+00249   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">int</span> channels, 
+00250                                 <span class="keywordtype">int</span> sampleRate, RtAudioFormat format,
+00251                                 <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
+00252 
+00257   <span class="keyword">virtual</span> <span class="keywordtype">int</span> getDefaultInputDevice(<span class="keywordtype">void</span>);
+00258 
+00263   <span class="keyword">virtual</span> <span class="keywordtype">int</span> getDefaultOutputDevice(<span class="keywordtype">void</span>);
+00264 
+00266   <span class="keywordtype">void</span> clearDeviceInfo( RtApiDevice *info );
+00267 
+00269   <span class="keywordtype">void</span> clearStreamInfo();
+00270 
+00272   <span class="keywordtype">void</span> error( RtError::Type type );
+00273 
+00278   <span class="keywordtype">void</span> verifyStream();
+00279 
+00284   <span class="keywordtype">void</span> convertStreamBuffer( StreamMode mode );
+00285 
+00287   <span class="keywordtype">void</span> byteSwapBuffer( <span class="keywordtype">char</span> *buffer, <span class="keywordtype">int</span> samples, RtAudioFormat format );
+00288 
+00290   <span class="keywordtype">int</span> formatBytes( RtAudioFormat format );
+00291 };
+00292 
 00293 
-00294 
-00295 <span class="comment">// **************************************************************** //</span>
-00296 <span class="comment">//</span>
-00297 <span class="comment">// RtAudio class declaration.</span>
-00298 <span class="comment">//</span>
-00299 <span class="comment">// RtAudio is a "controller" used to select an available audio i/o</span>
-00300 <span class="comment">// interface.  It presents a common API for the user to call but all</span>
-00301 <span class="comment">// functionality is implemented by the class RtAudioApi and its</span>
-00302 <span class="comment">// subclasses.  RtAudio creates an instance of an RtAudioApi subclass</span>
-00303 <span class="comment">// based on the user's API choice.  If no choice is made, RtAudio</span>
-00304 <span class="comment">// attempts to make a "logical" API selection.</span>
-00305 <span class="comment">//</span>
-00306 <span class="comment">// **************************************************************** //</span>
-00307 
-<a name="l00308"></a><a class="code" href="classRtAudio.html">00308</a> <span class="keyword">class </span><a class="code" href="classRtAudio.html">RtAudio</a>
-00309 {
-00310 <span class="keyword">public</span>:
-00311 
-<a name="l00313"></a><a class="code" href="classRtAudio.html#w8">00313</a>   <span class="keyword">enum</span> <a class="code" href="classRtAudio.html#w8">RtAudioApi</a> {
-00314     <a class="code" href="classRtAudio.html#w8w0">UNSPECIFIED</a>,    
-00315     <a class="code" href="classRtAudio.html#w8w1">LINUX_ALSA</a>,     
-00316     <a class="code" href="classRtAudio.html#w8w2">LINUX_OSS</a>,      
-00317     <a class="code" href="classRtAudio.html#w8w3">LINUX_JACK</a>,     
-00318     <a class="code" href="classRtAudio.html#w8w4">MACOSX_CORE</a>,    
-00319     <a class="code" href="classRtAudio.html#w8w5">IRIX_AL</a>,        
-00320     <a class="code" href="classRtAudio.html#w8w6">WINDOWS_ASIO</a>,   
-00321     <a class="code" href="classRtAudio.html#w8w7">WINDOWS_DS</a>      
-00322   };
-00323 
-00325 
-00335   <a class="code" href="classRtAudio.html#a0">RtAudio</a>( RtAudioApi api=UNSPECIFIED );
-00336 
-00338 
-00349   <a class="code" href="classRtAudio.html#a0">RtAudio</a>( <span class="keywordtype">int</span> outputDevice, <span class="keywordtype">int</span> outputChannels,
-00350            <span class="keywordtype">int</span> inputDevice, <span class="keywordtype">int</span> inputChannels,
-00351            RtAudioFormat format, <span class="keywordtype">int</span> sampleRate,
-00352            <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers, RtAudioApi api=UNSPECIFIED );
-00353 
-0035
-00359   <a class="code" href="classRtAudio.html#a2">~RtAudio</a>();
-00360 
-00362 
-00388   <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a3">openStream</a>( <span class="keywordtype">int</span> outputDevice, <span class="keywordtype">int</span> outputChannels,
-00389                    <span class="keywordtype">int</span> inputDevice, <span class="keywordtype">int</span> inputChannels,
-00390                    RtAudioFormat format, <span class="keywordtype">int</span> sampleRate,
-00391                    <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
-00392 
-00394 
-<a name="l00413"></a><a class="code" href="classRtAudio.html#a4">00413</a>   <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a4">setStreamCallback</a>(RtAudioCallback callback, <span class="keywordtype">void</span> *userData) { rtapi_-&gt;setStreamCallback( callback, userData ); };
-00414 
-00416 
-<a name="l00423"></a><a class="code" href="classRtAudio.html#a5">00423</a>   <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a5">cancelStreamCallback</a>() { rtapi_-&gt;cancelStreamCallback(); };
-00424 
-<a name="l00426"></a><a class="code" href="classRtAudio.html#a6">00426</a>   <span class="keywordtype">int</span> <a class="code" href="classRtAudio.html#a6">getDeviceCount</a>(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> rtapi_-&gt;getDeviceCount(); };
-00427 
-00429 
-<a name="l00437"></a><a class="code" href="classRtAudio.html#a7">00437</a>   <a class="code" href="structRtAudioDeviceInfo.html">RtAudioDeviceInfo</a> <a class="code" href="classRtAudio.html#a7">getDeviceInfo</a>(<span class="keywordtype">int</span> device) { <span class="keywordflow">return</span> rtapi_-&gt;getDeviceInfo( device ); };
-00438 
-00440 
-<a name="l00445"></a><a class="code" href="classRtAudio.html#a8">00445</a>   <span class="keywordtype">char</span> * <span class="keyword">const</span> <a class="code" href="classRtAudio.html#a8">getStreamBuffer</a>() { <span class="keywordflow">return</span> rtapi_-&gt;getStreamBuffer(); };
-00446 
-00448 
-<a name="l00453"></a><a class="code" href="classRtAudio.html#a9">00453</a>   <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a9">tickStream</a>() { rtapi_-&gt;tickStream(); };
-00454 
-00456 
-<a name="l00460"></a><a class="code" href="classRtAudio.html#a10">00460</a>   <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a10">closeStream</a>()  { rtapi_-&gt;closeStream(); };
-00461 
-00463 
-<a name="l00467"></a><a class="code" href="classRtAudio.html#a11">00467</a>   <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a11">startStream</a>() { rtapi_-&gt;startStream(); };
-00468 
-00470 
-<a name="l00474"></a><a class="code" href="classRtAudio.html#a12">00474</a>   <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a12">stopStream</a>() { rtapi_-&gt;stopStream(); };
-00475 
-00477 
-<a name="l00481"></a><a class="code" href="classRtAudio.html#a13">00481</a>   <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a13">abortStream</a>() { rtapi_-&gt;abortStream(); };
+00294 <span class="comment">// **************************************************************** //</span>
+00295 <span class="comment">//</span>
+00296 <span class="comment">// RtAudio class declaration.</span>
+00297 <span class="comment">//</span>
+00298 <span class="comment">// RtAudio is a "controller" used to select an available audio i/o</span>
+00299 <span class="comment">// interface.  It presents a common API for the user to call but all</span>
+00300 <span class="comment">// functionality is implemented by the class RtAudioApi and its</span>
+00301 <span class="comment">// subclasses.  RtAudio creates an instance of an RtAudioApi subclass</span>
+00302 <span class="comment">// based on the user's API choice.  If no choice is made, RtAudio</span>
+00303 <span class="comment">// attempts to make a "logical" API selection.</span>
+00304 <span class="comment">//</span>
+00305 <span class="comment">// **************************************************************** //</span>
+00306 
+<a name="l00307"></a><a class="code" href="classRtAudio.html">00307</a> <span class="keyword">class </span><a class="code" href="classRtAudio.html">RtAudio</a>
+00308 {
+00309 <span class="keyword">public</span>:
+00310 
+<a name="l00312"></a><a class="code" href="classRtAudio.html#w8">00312</a>   <span class="keyword">enum</span> <a class="code" href="classRtAudio.html#w8">RtAudioApi</a> {
+00313     <a class="code" href="classRtAudio.html#w8w0">UNSPECIFIED</a>,    
+00314     <a class="code" href="classRtAudio.html#w8w1">LINUX_ALSA</a>,     
+00315     <a class="code" href="classRtAudio.html#w8w2">LINUX_OSS</a>,      
+00316     <a class="code" href="classRtAudio.html#w8w3">LINUX_JACK</a>,     
+00317     <a class="code" href="classRtAudio.html#w8w4">MACOSX_CORE</a>,    
+00318     <a class="code" href="classRtAudio.html#w8w5">IRIX_AL</a>,        
+00319     <a class="code" href="classRtAudio.html#w8w6">WINDOWS_ASIO</a>,   
+00320     <a class="code" href="classRtAudio.html#w8w7">WINDOWS_DS</a>      
+00321   };
+00322 
+00324 
+00334   <a class="code" href="classRtAudio.html#a0">RtAudio</a>( RtAudioApi api=UNSPECIFIED );
+00335 
+00337 
+00348   <a class="code" href="classRtAudio.html#a0">RtAudio</a>( <span class="keywordtype">int</span> outputDevice, <span class="keywordtype">int</span> outputChannels,
+00349            <span class="keywordtype">int</span> inputDevice, <span class="keywordtype">int</span> inputChannels,
+00350            RtAudioFormat format, <span class="keywordtype">int</span> sampleRate,
+00351            <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers, RtAudioApi api=UNSPECIFIED );
+00352 
+00354 
+00358   <a class="code" href="classRtAudio.html#a2">~RtAudio</a>();
+00359 
+00361 
+00387   <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a3">openStream</a>( <span class="keywordtype">int</span> outputDevice, <span class="keywordtype">int</span> outputChannels,
+00388                    <span class="keywordtype">int</span> inputDevice, <span class="keywordtype">int</span> inputChannels,
+00389                    RtAudioFormat format, <span class="keywordtype">int</span> sampleRate,
+00390                    <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
+00391 
+00393 
+<a name="l00412"></a><a class="code" href="classRtAudio.html#a4">00412</a>   <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a4">setStreamCallback</a>(RtAudioCallback callback, <span class="keywordtype">void</span> *userData) { rtapi_-&gt;setStreamCallback( callback, userData ); };
+00413 
+00415 
+<a name="l00422"></a><a class="code" href="classRtAudio.html#a5">00422</a>   <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a5">cancelStreamCallback</a>() { rtapi_-&gt;cancelStreamCallback(); };
+00423 
+<a name="l00425"></a><a class="code" href="classRtAudio.html#a6">00425</a>   <span class="keywordtype">int</span> <a class="code" href="classRtAudio.html#a6">getDeviceCount</a>(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> rtapi_-&gt;getDeviceCount(); };
+00426 
+00428 
+<a name="l00436"></a><a class="code" href="classRtAudio.html#a7">00436</a>   <a class="code" href="structRtAudioDeviceInfo.html">RtAudioDeviceInfo</a> <a class="code" href="classRtAudio.html#a7">getDeviceInfo</a>(<span class="keywordtype">int</span> device) { <span class="keywordflow">return</span> rtapi_-&gt;getDeviceInfo( device ); };
+00437 
+00439 
+<a name="l00444"></a><a class="code" href="classRtAudio.html#a8">00444</a>   <span class="keywordtype">char</span> * <span class="keyword">const</span> <a class="code" href="classRtAudio.html#a8">getStreamBuffer</a>() { <span class="keywordflow">return</span> rtapi_-&gt;getStreamBuffer(); };
+00445 
+00447 
+<a name="l00452"></a><a class="code" href="classRtAudio.html#a9">00452</a>   <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a9">tickStream</a>() { rtapi_-&gt;tickStream(); };
+00453 
+00455 
+<a name="l00459"></a><a class="code" href="classRtAudio.html#a10">00459</a>   <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a10">closeStream</a>()  { rtapi_-&gt;closeStream(); };
+00460 
+00462 
+<a name="l00466"></a><a class="code" href="classRtAudio.html#a11">00466</a>   <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a11">startStream</a>() { rtapi_-&gt;startStream(); };
+00467 
+00469 
+<a name="l00473"></a><a class="code" href="classRtAudio.html#a12">00473</a>   <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a12">stopStream</a>() { rtapi_-&gt;stopStream(); };
+00474 
+00476 
+<a name="l00480"></a><a class="code" href="classRtAudio.html#a13">00480</a>   <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a13">abortStream</a>() { rtapi_-&gt;abortStream(); };
+00481 
 00482 
-00483 
-00484  <span class="keyword">protected</span>:
-00485 
-00486   <span class="keywordtype">void</span> initialize( RtAudioApi api );
-00487 
-00488   RtApi *rtapi_;
-00489 };
+00483  <span class="keyword">protected</span>:
+00484 
+00485   <span class="keywordtype">void</span> initialize( RtAudioApi api );
+00486 
+00487   RtApi *rtapi_;
+00488 };
+00489 
 00490 
-00491 
-00492 <span class="comment">// RtApi Subclass prototypes.</span>
-00493 
-00494 <span class="preprocessor">#if defined(__LINUX_ALSA__)</span>
-00495 <span class="preprocessor"></span>
-00496 <span class="keyword">class </span>RtApiAlsa: <span class="keyword">public</span> RtApi
-00497 {
-00498 <span class="keyword">public</span>:
-00499 
-00500   RtApiAlsa();
-00501   ~RtApiAlsa();
-00502   <span class="keywordtype">void</span> tickStream();
-00503   <span class="keywordtype">void</span> closeStream();
-00504   <span class="keywordtype">void</span> startStream();
-00505   <span class="keywordtype">void</span> stopStream();
-00506   <span class="keywordtype">void</span> abortStream();
-00507   <span class="keywordtype">int</span> streamWillBlock();
-00508   <span class="keywordtype">void</span> setStreamCallback( RtAudioCallback callback, <span class="keywordtype">void</span> *userData );
-00509   <span class="keywordtype">void</span> cancelStreamCallback();
-00510 
-00511   <span class="keyword">private</span>:
-00512 
-00513   <span class="keywordtype">void</span> initialize(<span class="keywordtype">void</span>);
-00514   <span class="keywordtype">void</span> probeDeviceInfo( RtApiDevice *info );
-00515   <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">int</span> channels, 
-00516                         <span class="keywordtype">int</span> sampleRate, RtAudioFormat format,
-00517                         <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
-00518 };
-00519 
-00520 <span class="preprocessor">#endif</span>
-00521 <span class="preprocessor"></span>
-00522 <span class="preprocessor">#if defined(__LINUX_JACK__)</span>
-00523 <span class="preprocessor"></span>
-00524 <span class="keyword">class </span>RtApiJack: <span class="keyword">public</span> RtApi
-00525 {
-00526 <span class="keyword">public</span>:
-00527 
-00528   RtApiJack();
-00529   ~RtApiJack();
-00530   <span class="keywordtype">void</span> tickStream();
-00531   <span class="keywordtype">void</span> closeStream();
-00532   <span class="keywordtype">void</span> startStream();
-00533   <span class="keywordtype">void</span> stopStream();
-00534   <span class="keywordtype">void</span> abortStream();
-00535   <span class="keywordtype">void</span> setStreamCallback( RtAudioCallback callback, <span class="keywordtype">void</span> *userData );
-00536   <span class="keywordtype">void</span> cancelStreamCallback();
-00537   <span class="comment">// This function is intended for internal use only.  It must be</span>
-00538   <span class="comment">// public because it is called by the internal callback handler,</span>
-00539   <span class="comment">// which is not a member of RtAudio.  External use of this function</span>
-00540   <span class="comment">// will most likely produce highly undesireable results!</span>
-00541   <span class="keywordtype">void</span> callbackEvent( <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> nframes );
-00542 
-00543   <span class="keyword">private</span>:
-00544 
-00545   <span class="keywordtype">void</span> initialize(<span class="keywordtype">void</span>);
-00546   <span class="keywordtype">void</span> probeDeviceInfo( RtApiDevice *info );
-00547   <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">int</span> channels, 
-00548                         <span class="keywordtype">int</span> sampleRate, RtAudioFormat format,
-00549                         <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
-00550 };
-00551 
-00552 <span class="preprocessor">#endif</span>
-00553 <span class="preprocessor"></span>
-00554 <span class="preprocessor">#if defined(__LINUX_OSS__)</span>
-00555 <span class="preprocessor"></span>
-00556 <span class="keyword">class </span>RtApiOss: <span class="keyword">public</span> RtApi
-00557 {
-00558 <span class="keyword">public</span>:
-00559 
-00560   RtApiOss();
-00561   ~RtApiOss();
-00562   <span class="keywordtype">void</span> tickStream();
-00563   <span class="keywordtype">void</span> closeStream();
-00564   <span class="keywordtype">void</span> startStream();
-00565   <span class="keywordtype">void</span> stopStream();
-00566   <span class="keywordtype">void</span> abortStream();
-00567   <span class="keywordtype">int</span> streamWillBlock();
-00568   <span class="keywordtype">void</span> setStreamCallback( RtAudioCallback callback, <span class="keywordtype">void</span> *userData );
-00569   <span class="keywordtype">void</span> cancelStreamCallback();
-00570 
-00571   <span class="keyword">private</span>:
-00572 
-00573   <span class="keywordtype">void</span> initialize(<span class="keywordtype">void</span>);
-00574   <span class="keywordtype">void</span> probeDeviceInfo( RtApiDevice *info );
-00575   <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">int</span> channels, 
-00576                         <span class="keywordtype">int</span> sampleRate, RtAudioFormat format,
-00577                         <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
-00578 };
-00579 
-00580 <span class="preprocessor">#endif</span>
-00581 <span class="preprocessor"></span>
-00582 <span class="preprocessor">#if defined(__MACOSX_CORE__)</span>
-00583 <span class="preprocessor"></span>
-00584 <span class="preprocessor">#include &lt;CoreAudio/AudioHardware.h&gt;</span>
-00585 
-00586 <span class="keyword">class </span>RtApiCore: <span class="keyword">public</span> RtApi
-00587 {
-00588 <span class="keyword">public</span>:
-00589 
-00590   RtApiCore();
-00591   ~RtApiCore();
-00592   <span class="keywordtype">int</span> getDefaultOutputDevice(<span class="keywordtype">void</span>);
-00593   <span class="keywordtype">int</span> getDefaultInputDevice(<span class="keywordtype">void</span>);
-00594   <span class="keywordtype">void</span> tickStream();
-00595   <span class="keywordtype">void</span> closeStream();
-00596   <span class="keywordtype">void</span> startStream();
-00597   <span class="keywordtype">void</span> stopStream();
-00598   <span class="keywordtype">void</span> abortStream();
-00599   <span class="keywordtype">void</span> setStreamCallback( RtAudioCallback callback, <span class="keywordtype">void</span> *userData );
-00600   <span class="keywordtype">void</span> cancelStreamCallback();
-00601 
-00602   <span class="comment">// This function is intended for internal use only.  It must be</span>
-00603   <span class="comment">// public because it is called by the internal callback handler,</span>
-00604   <span class="comment">// which is not a member of RtAudio.  External use of this function</span>
-00605   <span class="comment">// will most likely produce highly undesireable results!</span>
-00606   <span class="keywordtype">void</span> callbackEvent( AudioDeviceID deviceId, <span class="keywordtype">void</span> *inData, <span class="keywordtype">void</span> *outData );
-00607 
-00608   <span class="keyword">private</span>:
-00609 
-00610   <span class="keywordtype">void</span> initialize(<span class="keywordtype">void</span>);
-00611   <span class="keywordtype">void</span> probeDeviceInfo( RtApiDevice *info );
-00612   <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">int</span> channels, 
-00613                         <span class="keywordtype">int</span> sampleRate, RtAudioFormat format,
-00614                         <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
-00615 };
-00616 
-00617 <span class="preprocessor">#endif</span>
-00618 <span class="preprocessor"></span>
-00619 <span class="preprocessor">#if defined(__WINDOWS_DS__)</span>
-00620 <span class="preprocessor"></span>
-00621 <span class="keyword">class </span>RtApiDs: <span class="keyword">public</span> RtApi
-00622 {
-00623 <span class="keyword">public</span>:
-00624 
-00625   RtApiDs();
-00626   ~RtApiDs();
-00627   <span class="keywordtype">int</span> getDefaultOutputDevice(<span class="keywordtype">void</span>);
-00628   <span class="keywordtype">int</span> getDefaultInputDevice(<span class="keywordtype">void</span>);
-00629   <span class="keywordtype">void</span> tickStream();
-00630   <span class="keywordtype">void</span> closeStream();
-00631   <span class="keywordtype">void</span> startStream();
-00632   <span class="keywordtype">void</span> stopStream();
-00633   <span class="keywordtype">void</span> abortStream();
-00634   <span class="keywordtype">int</span> streamWillBlock();
-00635   <span class="keywordtype">void</span> setStreamCallback( RtAudioCallback callback, <span class="keywordtype">void</span> *userData );
-00636   <span class="keywordtype">void</span> cancelStreamCallback();
-00637 
-00638   <span class="keyword">private</span>:
-00639 
-00640   <span class="keywordtype">void</span> initialize(<span class="keywordtype">void</span>);
-00641   <span class="keywordtype">void</span> probeDeviceInfo( RtApiDevice *info );
-00642   <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">int</span> channels, 
-00643                         <span class="keywordtype">int</span> sampleRate, RtAudioFormat format,
-00644                         <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
-00645 };
-00646 
-00647 <span class="preprocessor">#endif</span>
-00648 <span class="preprocessor"></span>
-00649 <span class="preprocessor">#if defined(__WINDOWS_ASIO__)</span>
-00650 <span class="preprocessor"></span>
-00651 <span class="keyword">class </span>RtApiAsio: <span class="keyword">public</span> RtApi
-00652 {
-00653 <span class="keyword">public</span>:
-00654 
-00655   RtApiAsio();
-00656   ~RtApiAsio();
-00657   <span class="keywordtype">void</span> tickStream();
-00658   <span class="keywordtype">void</span> closeStream();
-00659   <span class="keywordtype">void</span> startStream();
-00660   <span class="keywordtype">void</span> stopStream();
-00661   <span class="keywordtype">void</span> abortStream();
-00662   <span class="keywordtype">void</span> setStreamCallback( RtAudioCallback callback, <span class="keywordtype">void</span> *userData );
-00663   <span class="keywordtype">void</span> cancelStreamCallback();
-00664 
-00665   <span class="comment">// This function is intended for internal use only.  It must be</span>
-00666   <span class="comment">// public because it is called by the internal callback handler,</span>
-00667   <span class="comment">// which is not a member of RtAudio.  External use of this function</span>
-00668   <span class="comment">// will most likely produce highly undesireable results!</span>
-00669   <span class="keywordtype">void</span> callbackEvent( <span class="keywordtype">long</span> bufferIndex );
-00670 
-00671   <span class="keyword">private</span>:
-00672 
-00673   <span class="keywordtype">void</span> initialize(<span class="keywordtype">void</span>);
-00674   <span class="keywordtype">void</span> probeDeviceInfo( RtApiDevice *info );
-00675   <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">int</span> channels, 
-00676                         <span class="keywordtype">int</span> sampleRate, RtAudioFormat format,
-00677                         <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
-00678 };
-00679 
-00680 <span class="preprocessor">#endif</span>
-00681 <span class="preprocessor"></span>
-00682 <span class="preprocessor">#if defined(__IRIX_AL__)</span>
-00683 <span class="preprocessor"></span>
-00684 <span class="keyword">class </span>RtApiAl: <span class="keyword">public</span> RtApi
-00685 {
-00686 <span class="keyword">public</span>:
-00687 
-00688   RtApiAl();
-00689   ~RtApiAl();
-00690   <span class="keywordtype">int</span> getDefaultOutputDevice(<span class="keywordtype">void</span>);
-00691   <span class="keywordtype">int</span> getDefaultInputDevice(<span class="keywordtype">void</span>);
-00692   <span class="keywordtype">void</span> tickStream();
-00693   <span class="keywordtype">void</span> closeStream();
-00694   <span class="keywordtype">void</span> startStream();
-00695   <span class="keywordtype">void</span> stopStream();
-00696   <span class="keywordtype">void</span> abortStream();
-00697   <span class="keywordtype">int</span> streamWillBlock();
-00698   <span class="keywordtype">void</span> setStreamCallback( RtAudioCallback callback, <span class="keywordtype">void</span> *userData );
-00699   <span class="keywordtype">void</span> cancelStreamCallback();
-00700 
-00701   <span class="keyword">private</span>:
-00702 
-00703   <span class="keywordtype">void</span> initialize(<span class="keywordtype">void</span>);
-00704   <span class="keywordtype">void</span> probeDeviceInfo( RtApiDevice *info );
-00705   <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">int</span> channels, 
-00706                         <span class="keywordtype">int</span> sampleRate, RtAudioFormat format,
-00707                         <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
-00708 };
-00709 
-00710 <span class="preprocessor">#endif</span>
-00711 <span class="preprocessor"></span>
-00712 <span class="comment">// Define the following flag to have extra information spewed to stderr.</span>
-00713 <span class="comment">//#define __RTAUDIO_DEBUG__</span>
-00714 
-00715 <span class="preprocessor">#endif</span>
+00491 <span class="comment">// RtApi Subclass prototypes.</span>
+00492 
+00493 <span class="preprocessor">#if defined(__LINUX_ALSA__)</span>
+00494 <span class="preprocessor"></span>
+00495 <span class="keyword">class </span>RtApiAlsa: <span class="keyword">public</span> RtApi
+00496 {
+00497 <span class="keyword">public</span>:
+00498 
+00499   RtApiAlsa();
+00500   ~RtApiAlsa();
+00501   <span class="keywordtype">void</span> tickStream();
+00502   <span class="keywordtype">void</span> closeStream();
+00503   <span class="keywordtype">void</span> startStream();
+00504   <span class="keywordtype">void</span> stopStream();
+00505   <span class="keywordtype">void</span> abortStream();
+00506   <span class="keywordtype">int</span> streamWillBlock();
+00507   <span class="keywordtype">void</span> setStreamCallback( RtAudioCallback callback, <span class="keywordtype">void</span> *userData );
+00508   <span class="keywordtype">void</span> cancelStreamCallback();
+00509 
+00510   <span class="keyword">private</span>:
+00511 
+00512   <span class="keywordtype">void</span> initialize(<span class="keywordtype">void</span>);
+00513   <span class="keywordtype">void</span> probeDeviceInfo( RtApiDevice *info );
+00514   <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">int</span> channels, 
+00515                         <span class="keywordtype">int</span> sampleRate, RtAudioFormat format,
+00516                         <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
+00517 };
+00518 
+00519 <span class="preprocessor">#endif</span>
+00520 <span class="preprocessor"></span>
+00521 <span class="preprocessor">#if defined(__LINUX_JACK__)</span>
+00522 <span class="preprocessor"></span>
+00523 <span class="keyword">class </span>RtApiJack: <span class="keyword">public</span> RtApi
+00524 {
+00525 <span class="keyword">public</span>:
+00526 
+00527   RtApiJack();
+00528   ~RtApiJack();
+00529   <span class="keywordtype">void</span> tickStream();
+00530   <span class="keywordtype">void</span> closeStream();
+00531   <span class="keywordtype">void</span> startStream();
+00532   <span class="keywordtype">void</span> stopStream();
+00533   <span class="keywordtype">void</span> abortStream();
+00534   <span class="keywordtype">void</span> setStreamCallback( RtAudioCallback callback, <span class="keywordtype">void</span> *userData );
+00535   <span class="keywordtype">void</span> cancelStreamCallback();
+00536   <span class="comment">// This function is intended for internal use only.  It must be</span>
+00537   <span class="comment">// public because it is called by the internal callback handler,</span>
+00538   <span class="comment">// which is not a member of RtAudio.  External use of this function</span>
+00539   <span class="comment">// will most likely produce highly undesireable results!</span>
+00540   <span class="keywordtype">void</span> callbackEvent( <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> nframes );
+00541 
+00542   <span class="keyword">private</span>:
+00543 
+00544   <span class="keywordtype">void</span> initialize(<span class="keywordtype">void</span>);
+00545   <span class="keywordtype">void</span> probeDeviceInfo( RtApiDevice *info );
+00546   <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">int</span> channels, 
+00547                         <span class="keywordtype">int</span> sampleRate, RtAudioFormat format,
+00548                         <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
+00549 };
+00550 
+00551 <span class="preprocessor">#endif</span>
+00552 <span class="preprocessor"></span>
+00553 <span class="preprocessor">#if defined(__LINUX_OSS__)</span>
+00554 <span class="preprocessor"></span>
+00555 <span class="keyword">class </span>RtApiOss: <span class="keyword">public</span> RtApi
+00556 {
+00557 <span class="keyword">public</span>:
+00558 
+00559   RtApiOss();
+00560   ~RtApiOss();
+00561   <span class="keywordtype">void</span> tickStream();
+00562   <span class="keywordtype">void</span> closeStream();
+00563   <span class="keywordtype">void</span> startStream();
+00564   <span class="keywordtype">void</span> stopStream();
+00565   <span class="keywordtype">void</span> abortStream();
+00566   <span class="keywordtype">int</span> streamWillBlock();
+00567   <span class="keywordtype">void</span> setStreamCallback( RtAudioCallback callback, <span class="keywordtype">void</span> *userData );
+00568   <span class="keywordtype">void</span> cancelStreamCallback();
+00569 
+00570   <span class="keyword">private</span>:
+00571 
+00572   <span class="keywordtype">void</span> initialize(<span class="keywordtype">void</span>);
+00573   <span class="keywordtype">void</span> probeDeviceInfo( RtApiDevice *info );
+00574   <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">int</span> channels, 
+00575                         <span class="keywordtype">int</span> sampleRate, RtAudioFormat format,
+00576                         <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
+00577 };
+00578 
+00579 <span class="preprocessor">#endif</span>
+00580 <span class="preprocessor"></span>
+00581 <span class="preprocessor">#if defined(__MACOSX_CORE__)</span>
+00582 <span class="preprocessor"></span>
+00583 <span class="preprocessor">#include &lt;CoreAudio/AudioHardware.h&gt;</span>
+00584 
+00585 <span class="keyword">class </span>RtApiCore: <span class="keyword">public</span> RtApi
+00586 {
+00587 <span class="keyword">public</span>:
+00588 
+00589   RtApiCore();
+00590   ~RtApiCore();
+00591   <span class="keywordtype">int</span> getDefaultOutputDevice(<span class="keywordtype">void</span>);
+00592   <span class="keywordtype">int</span> getDefaultInputDevice(<span class="keywordtype">void</span>);
+00593   <span class="keywordtype">void</span> tickStream();
+00594   <span class="keywordtype">void</span> closeStream();
+00595   <span class="keywordtype">void</span> startStream();
+00596   <span class="keywordtype">void</span> stopStream();
+00597   <span class="keywordtype">void</span> abortStream();
+00598   <span class="keywordtype">void</span> setStreamCallback( RtAudioCallback callback, <span class="keywordtype">void</span> *userData );
+00599   <span class="keywordtype">void</span> cancelStreamCallback();
+00600 
+00601   <span class="comment">// This function is intended for internal use only.  It must be</span>
+00602   <span class="comment">// public because it is called by the internal callback handler,</span>
+00603   <span class="comment">// which is not a member of RtAudio.  External use of this function</span>
+00604   <span class="comment">// will most likely produce highly undesireable results!</span>
+00605   <span class="keywordtype">void</span> callbackEvent( AudioDeviceID deviceId, <span class="keywordtype">void</span> *inData, <span class="keywordtype">void</span> *outData );
+00606 
+00607   <span class="keyword">private</span>:
+00608 
+00609   <span class="keywordtype">void</span> initialize(<span class="keywordtype">void</span>);
+00610   <span class="keywordtype">void</span> probeDeviceInfo( RtApiDevice *info );
+00611   <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">int</span> channels, 
+00612                         <span class="keywordtype">int</span> sampleRate, RtAudioFormat format,
+00613                         <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
+00614 };
+00615 
+00616 <span class="preprocessor">#endif</span>
+00617 <span class="preprocessor"></span>
+00618 <span class="preprocessor">#if defined(__WINDOWS_DS__)</span>
+00619 <span class="preprocessor"></span>
+00620 <span class="keyword">class </span>RtApiDs: <span class="keyword">public</span> RtApi
+00621 {
+00622 <span class="keyword">public</span>:
+00623 
+00624   RtApiDs();
+00625   ~RtApiDs();
+00626   <span class="keywordtype">int</span> getDefaultOutputDevice(<span class="keywordtype">void</span>);
+00627   <span class="keywordtype">int</span> getDefaultInputDevice(<span class="keywordtype">void</span>);
+00628   <span class="keywordtype">void</span> tickStream();
+00629   <span class="keywordtype">void</span> closeStream();
+00630   <span class="keywordtype">void</span> startStream();
+00631   <span class="keywordtype">void</span> stopStream();
+00632   <span class="keywordtype">void</span> abortStream();
+00633   <span class="keywordtype">int</span> streamWillBlock();
+00634   <span class="keywordtype">void</span> setStreamCallback( RtAudioCallback callback, <span class="keywordtype">void</span> *userData );
+00635   <span class="keywordtype">void</span> cancelStreamCallback();
+00636 
+00637   <span class="keyword">private</span>:
+00638 
+00639   <span class="keywordtype">void</span> initialize(<span class="keywordtype">void</span>);
+00640   <span class="keywordtype">void</span> probeDeviceInfo( RtApiDevice *info );
+00641   <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">int</span> channels, 
+00642                         <span class="keywordtype">int</span> sampleRate, RtAudioFormat format,
+00643                         <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
+00644 };
+00645 
+00646 <span class="preprocessor">#endif</span>
+00647 <span class="preprocessor"></span>
+00648 <span class="preprocessor">#if defined(__WINDOWS_ASIO__)</span>
+00649 <span class="preprocessor"></span>
+00650 <span class="keyword">class </span>RtApiAsio: <span class="keyword">public</span> RtApi
+00651 {
+00652 <span class="keyword">public</span>:
+00653 
+00654   RtApiAsio();
+00655   ~RtApiAsio();
+00656   <span class="keywordtype">void</span> tickStream();
+00657   <span class="keywordtype">void</span> closeStream();
+00658   <span class="keywordtype">void</span> startStream();
+00659   <span class="keywordtype">void</span> stopStream();
+00660   <span class="keywordtype">void</span> abortStream();
+00661   <span class="keywordtype">void</span> setStreamCallback( RtAudioCallback callback, <span class="keywordtype">void</span> *userData );
+00662   <span class="keywordtype">void</span> cancelStreamCallback();
+00663 
+00664   <span class="comment">// This function is intended for internal use only.  It must be</span>
+00665   <span class="comment">// public because it is called by the internal callback handler,</span>
+00666   <span class="comment">// which is not a member of RtAudio.  External use of this function</span>
+00667   <span class="comment">// will most likely produce highly undesireable results!</span>
+00668   <span class="keywordtype">void</span> callbackEvent( <span class="keywordtype">long</span> bufferIndex );
+00669 
+00670   <span class="keyword">private</span>:
+00671 
+00672   <span class="keywordtype">void</span> initialize(<span class="keywordtype">void</span>);
+00673   <span class="keywordtype">void</span> probeDeviceInfo( RtApiDevice *info );
+00674   <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">int</span> channels, 
+00675                         <span class="keywordtype">int</span> sampleRate, RtAudioFormat format,
+00676                         <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
+00677 };
+00678 
+00679 <span class="preprocessor">#endif</span>
+00680 <span class="preprocessor"></span>
+00681 <span class="preprocessor">#if defined(__IRIX_AL__)</span>
+00682 <span class="preprocessor"></span>
+00683 <span class="keyword">class </span>RtApiAl: <span class="keyword">public</span> RtApi
+00684 {
+00685 <span class="keyword">public</span>:
+00686 
+00687   RtApiAl();
+00688   ~RtApiAl();
+00689   <span class="keywordtype">int</span> getDefaultOutputDevice(<span class="keywordtype">void</span>);
+00690   <span class="keywordtype">int</span> getDefaultInputDevice(<span class="keywordtype">void</span>);
+00691   <span class="keywordtype">void</span> tickStream();
+00692   <span class="keywordtype">void</span> closeStream();
+00693   <span class="keywordtype">void</span> startStream();
+00694   <span class="keywordtype">void</span> stopStream();
+00695   <span class="keywordtype">void</span> abortStream();
+00696   <span class="keywordtype">int</span> streamWillBlock();
+00697   <span class="keywordtype">void</span> setStreamCallback( RtAudioCallback callback, <span class="keywordtype">void</span> *userData );
+00698   <span class="keywordtype">void</span> cancelStreamCallback();
+00699 
+00700   <span class="keyword">private</span>:
+00701 
+00702   <span class="keywordtype">void</span> initialize(<span class="keywordtype">void</span>);
+00703   <span class="keywordtype">void</span> probeDeviceInfo( RtApiDevice *info );
+00704   <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">int</span> channels, 
+00705                         <span class="keywordtype">int</span> sampleRate, RtAudioFormat format,
+00706                         <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
+00707 };
+00708 
+00709 <span class="preprocessor">#endif</span>
+00710 <span class="preprocessor"></span>
+00711 <span class="comment">// Define the following flag to have extra information spewed to stderr.</span>
+00712 <span class="comment">//#define __RTAUDIO_DEBUG__</span>
+00713 
+00714 <span class="preprocessor">#endif</span>
 </pre></div><HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
index 7de36f6614d0fcb1c2d5fd67d18337f8bf6b0cd8..dd2ce5232d6ee5670bccf04798cbd79d0b790083 100644 (file)
@@ -43,7 +43,7 @@ Several API changes have been made in version 3.0 of <a class="el" href="classRt
 The <a class="el" href="classRtAudio.html#a7">RtAudio::getDeviceInfo()</a> function was modified to return a globally defined <a class="el" href="structRtAudioDeviceInfo.html">RtAudioDeviceInfo</a> structure. This structure is a simplified version of the previous RTAUDIO_DEVICE structure. In addition, the RTAUDIO_FORMAT structure was renamed RtAudioFormat and defined globally within <a class="el" href="RtAudio_8h.html">RtAudio.h</a>. These changes were made for clarity and to better conform with standard C++ programming practices.<p>
 The <a class="el" href="classRtError.html">RtError</a> class declaration and definition have been extracted to a separate file (<a class="el" href="RtError_8h.html">RtError.h</a>). This was done in preparation for a new release of the RtMidi class (planned for Summer 2004).<h2><a class="anchor" name="download">
 Download</a></h2>
-Latest Release (11 March 2004): <a href="http://music.mcgill.ca/~gary/rtaudio/release/rtaudio-3.0.tar.gz">Version 3.0 (200 kB tar/gzipped)</a><h2><a class="anchor" name="start">
+Latest Release (22 March 2004): <a href="http://music.mcgill.ca/~gary/rtaudio/release/rtaudio-3.0.1.tar.gz">Version 3.0.1 (200 kB tar/gzipped)</a><h2><a class="anchor" name="start">
 Getting Started</a></h2>
 With version 3.0, it is now possible to compile multiple API support on a given platform and to specify an API choice during class instantiation. In the examples that follow, no API will be specified (in which case, <a class="el" href="classRtAudio.html">RtAudio</a> attempts to select the most "logical" available API).<p>
 The first thing that must be done when using <a class="el" href="classRtAudio.html">RtAudio</a> is to create an instance of the class. The default constructor scans the underlying audio system to verify that at least one device is available. <a class="el" href="classRtAudio.html">RtAudio</a> often uses C++ exceptions to report errors, necessitating try/catch blocks around most member functions. The following code example demonstrates default object construction and destruction:<p>