diff options
| -rw-r--r-- | doc/html/RtAudio_8h-source.html | 739 | ||||
| -rw-r--r-- | doc/html/index.html | 2 |
2 files changed, 370 insertions, 371 deletions
diff --git a/doc/html/RtAudio_8h-source.html b/doc/html/RtAudio_8h-source.html index 7c78353..0e91b8d 100644 --- a/doc/html/RtAudio_8h-source.html +++ b/doc/html/RtAudio_8h-source.html @@ -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> @@ -157,378 +157,377 @@ 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<int> 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<RtApiDevice> devices_; -00224 RtApiStream stream_; -00225 -00230 <span class="keyword">virtual</span> <span class="keywordtype">void</span> initialize(<span class="keywordtype">void</span>) = 0; -00231 -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 ); -00253 -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>); -00265 -00267 <span class="keywordtype">void</span> clearDeviceInfo( RtApiDevice *info ); -00268 -00270 <span class="keywordtype">void</span> clearStreamInfo(); -00271 -00273 <span class="keywordtype">void</span> error( RtError::Type type ); -00274 -00279 <span class="keywordtype">void</span> verifyStream(); -00280 -00285 <span class="keywordtype">void</span> convertStreamBuffer( StreamMode mode ); -00286 -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<int> 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<RtApiDevice> 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 -00355 -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_->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_->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_->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_->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_->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_->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_->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_->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_->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_->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_->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_->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_->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_->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_->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_->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_->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_->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_->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_->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 <CoreAudio/AudioHardware.h></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 <CoreAudio/AudioHardware.h></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> diff --git a/doc/html/index.html b/doc/html/index.html index 7de36f6..dd2ce52 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -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> |
