Release 4.0.7 tarball 4.0.7
authorGary Scavone <gary@music.mcgill.ca>
Thu, 10 Oct 2013 23:58:40 +0000 (01:58 +0200)
committerStephen Sinclair <sinclair@music.mcgill.ca>
Thu, 10 Oct 2013 23:58:40 +0000 (01:58 +0200)
40 files changed:
configure
doc/html/RtAudio_8h.html
doc/html/RtAudio_8h_source.html [new file with mode: 0644]
doc/html/RtError_8h_source.html [new file with mode: 0644]
doc/html/acknowledge.html
doc/html/annotated.html
doc/html/apinotes.html
doc/html/bugs.html
doc/html/classRtAudio-members.html
doc/html/classRtAudio.html
doc/html/classRtError-members.html
doc/html/classRtError.html
doc/html/classes.html
doc/html/compiling.html
doc/html/doxygen.css
doc/html/duplex.html
doc/html/errors.html
doc/html/files.html
doc/html/functions.html
doc/html/functions_enum.html
doc/html/functions_eval.html
doc/html/functions_func.html
doc/html/functions_vars.html
doc/html/globals.html
doc/html/globals_type.html
doc/html/index.html
doc/html/license.html
doc/html/multi.html
doc/html/pages.html
doc/html/playback.html
doc/html/probe.html
doc/html/recording.html
doc/html/settings.html
doc/html/structRtAudio_1_1DeviceInfo-members.html
doc/html/structRtAudio_1_1DeviceInfo.html
doc/html/structRtAudio_1_1StreamOptions-members.html
doc/html/structRtAudio_1_1StreamOptions.html
doc/html/structRtAudio_1_1StreamParameters-members.html
doc/html/structRtAudio_1_1StreamParameters.html
doc/html/tabs.css

index 0192ec4f497f578437df12e70db22702e5279456..1f88ae39f511c3e85097232d8cc73b483133346e 100755 (executable)
--- a/configure
+++ b/configure
@@ -3655,7 +3655,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
 else
   ac_cv_header_stdc=no
 fi
-rm -f conftest*
+rm -f -r conftest*
 
 fi
 
@@ -3676,7 +3676,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
 else
   ac_cv_header_stdc=no
 fi
-rm -f conftest*
+rm -f -r conftest*
 
 fi
 
@@ -4697,9 +4697,9 @@ if test "${with_jack+set}" = set; then
     { echo "$as_me:$LINENO: result: using JACK" >&5
 echo "${ECHO_T}using JACK" >&6; }
 
-{ echo "$as_me:$LINENO: checking for jack_client_new in -ljack" >&5
-echo $ECHO_N "checking for jack_client_new in -ljack... $ECHO_C" >&6; }
-if test "${ac_cv_lib_jack_jack_client_new+set}" = set; then
+{ echo "$as_me:$LINENO: checking for jack_client_open in -ljack" >&5
+echo $ECHO_N "checking for jack_client_open in -ljack... $ECHO_C" >&6; }
+if test "${ac_cv_lib_jack_jack_client_open+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -4717,11 +4717,11 @@ cat >>conftest.$ac_ext <<_ACEOF
 #ifdef __cplusplus
 extern "C"
 #endif
-char jack_client_new ();
+char jack_client_open ();
 int
 main ()
 {
-return jack_client_new ();
+return jack_client_open ();
   ;
   return 0;
 }
@@ -4744,21 +4744,21 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
         test ! -s conftest.err
        } && test -s conftest$ac_exeext &&
        $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_jack_jack_client_new=yes
+  ac_cv_lib_jack_jack_client_open=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_cv_lib_jack_jack_client_new=no
+       ac_cv_lib_jack_jack_client_open=no
 fi
 
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_jack_jack_client_new" >&5
-echo "${ECHO_T}$ac_cv_lib_jack_jack_client_new" >&6; }
-if test $ac_cv_lib_jack_jack_client_new = yes; then
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_jack_jack_client_open" >&5
+echo "${ECHO_T}$ac_cv_lib_jack_jack_client_open" >&6; }
+if test $ac_cv_lib_jack_jack_client_open = yes; then
   cat >>confdefs.h <<_ACEOF
 #define HAVE_LIBJACK 1
 _ACEOF
@@ -4774,6 +4774,10 @@ fi
 fi
 
 
+#    AC_CHECK_HEADER(jack/jack.h, [], [AC_MSG_ERROR(Jack header file not found!)] )
+#    LIBS="$LIBS -framework jackmp" ], )
+
+
   # Look for Core flag
 
 # Check whether --with-core was given.
index 5ffc249cae7898749665bf289aa2c7cb98e63273..bf3d222561b9ff32c5f6096fc47a4aedde69d760 100644 (file)
 <CENTER>
 <a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
 <HR>
-<!-- Generated by Doxygen 1.5.8 -->
+<!-- Generated by Doxygen 1.6.2 -->
 <div class="contents">
-<h1>RtAudio.h File Reference</h1><code>#include &lt;string&gt;</code><br>
-<code>#include &lt;vector&gt;</code><br>
-<code>#include &quot;RtError.h&quot;</code><br>
-<code>#include &lt;sstream&gt;</code><br>
-
-<p>
-<a href="RtAudio_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
-<tr><td></td></tr>
-<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html">RtAudio</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Realtime audio i/o C++ classes.  <a href="classRtAudio.html#_details">More...</a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1DeviceInfo.html">RtAudio::RtAudio::DeviceInfo</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The public device information structure for returning queried values.  <a href="structRtAudio_1_1DeviceInfo.html#_details">More...</a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1StreamParameters.html">RtAudio::RtAudio::StreamParameters</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The structure for specifying input or ouput stream parameters.  <a href="structRtAudio_1_1StreamParameters.html#_details">More...</a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1StreamOptions.html">RtAudio::RtAudio::StreamOptions</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The structure for specifying stream options.  <a href="structRtAudio_1_1StreamOptions.html#_details">More...</a><br></td></tr>
-<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef unsigned long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="RtAudio_8h.html#afca92882d25915560018873221e44b8">RtAudioFormat</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> data format type.  <a href="#afca92882d25915560018873221e44b8"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="RtAudio_8h.html#2c0f59b200dcec4d4e760f9166b29c41">RtAudioStreamFlags</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> stream option flags.  <a href="#2c0f59b200dcec4d4e760f9166b29c41"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="RtAudio_8h.html#80e306d363583da3b0a1b65d9b57c806">RtAudioStreamStatus</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> stream status (over- or underflow) flags.  <a href="#80e306d363583da3b0a1b65d9b57c806"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="RtAudio_8h.html#112c7b7e25a974977f6fc094cef1a31f">RtAudioCallback</a> )(void *outputBuffer, void *inputBuffer, unsigned int nFrames, double streamTime, <a class="el" href="RtAudio_8h.html#80e306d363583da3b0a1b65d9b57c806">RtAudioStreamStatus</a> status, void *userData)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> callback function prototype.  <a href="#112c7b7e25a974977f6fc094cef1a31f"></a><br></td></tr>
+<h1>RtAudio.h File Reference</h1><code>#include &lt;string&gt;</code><br/>
+<code>#include &lt;vector&gt;</code><br/>
+<code>#include &quot;RtError.h&quot;</code><br/>
+<code>#include &lt;sstream&gt;</code><br/>
+
+<p><a href="RtAudio_8h_source.html">Go to the source code of this file.</a></p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html">RtAudio</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Realtime audio i/o C++ classes.  <a href="classRtAudio.html#_details">More...</a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1DeviceInfo.html">RtAudio::DeviceInfo</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The public device information structure for returning queried values.  <a href="structRtAudio_1_1DeviceInfo.html#_details">More...</a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1StreamParameters.html">RtAudio::StreamParameters</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The structure for specifying input or ouput stream parameters.  <a href="structRtAudio_1_1StreamParameters.html#_details">More...</a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1StreamOptions.html">RtAudio::StreamOptions</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The structure for specifying stream options.  <a href="structRtAudio_1_1StreamOptions.html#_details">More...</a><br/></td></tr>
+<tr><td colspan="2"><h2>Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef unsigned long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="RtAudio_8h.html#aafca92882d25915560018873221e44b8">RtAudioFormat</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> data format type.  <a href="#aafca92882d25915560018873221e44b8"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="RtAudio_8h.html#a2c0f59b200dcec4d4e760f9166b29c41">RtAudioStreamFlags</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> stream option flags.  <a href="#a2c0f59b200dcec4d4e760f9166b29c41"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="RtAudio_8h.html#a80e306d363583da3b0a1b65d9b57c806">RtAudioStreamStatus</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> stream status (over- or underflow) flags.  <a href="#a80e306d363583da3b0a1b65d9b57c806"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="RtAudio_8h.html#a112c7b7e25a974977f6fc094cef1a31f">RtAudioCallback</a> )(void *outputBuffer, void *inputBuffer, unsigned int nFrames, double streamTime, <a class="el" href="RtAudio_8h.html#a80e306d363583da3b0a1b65d9b57c806">RtAudioStreamStatus</a> status, void *userData)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> callback function prototype.  <a href="#a112c7b7e25a974977f6fc094cef1a31f"></a><br/></td></tr>
 </table>
-<hr><a name="_details"></a><h2>Detailed Description</h2>
-<hr><h2>Typedef Documentation</h2>
-<a class="anchor" name="afca92882d25915560018873221e44b8"></a><!-- doxytag: member="RtAudio.h::RtAudioFormat" ref="afca92882d25915560018873221e44b8" args="" -->
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<hr/><h2>Typedef Documentation</h2>
+<a class="anchor" id="aafca92882d25915560018873221e44b8"></a><!-- doxytag: member="RtAudio.h::RtAudioFormat" ref="aafca92882d25915560018873221e44b8" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">typedef unsigned long <a class="el" href="RtAudio_8h.html#afca92882d25915560018873221e44b8">RtAudioFormat</a>          </td>
+          <td class="memname">typedef unsigned long <a class="el" href="RtAudio_8h.html#aafca92882d25915560018873221e44b8">RtAudioFormat</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>
-<a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> data format type. 
-<p>
-Support for signed integers and floats. Audio data fed to/from an <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> stream is assumed to ALWAYS be in host byte order. The internal routines will automatically take care of any necessary byte-swapping between the host format and the soundcard. Thus, endian-ness is not a concern in the following format definitions.<p>
+<p><a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> data format type. </p>
+<p>Support for signed integers and floats. Audio data fed to/from an <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> stream is assumed to ALWAYS be in host byte order. The internal routines will automatically take care of any necessary byte-swapping between the host format and the soundcard. Thus, endian-ness is not a concern in the following format definitions.</p>
 <ul>
-<li><em>RTAUDIO_SINT8:</em> 8-bit signed integer.</li><li><em>RTAUDIO_SINT16:</em> 16-bit signed integer.</li><li><em>RTAUDIO_SINT24:</em> Upper 3 bytes of 32-bit signed integer.</li><li><em>RTAUDIO_SINT32:</em> 32-bit signed integer.</li><li><em>RTAUDIO_FLOAT32:</em> Normalized between plus/minus 1.0.</li><li><em>RTAUDIO_FLOAT64:</em> Normalized between plus/minus 1.0. </li></ul>
+<li><em>RTAUDIO_SINT8:</em> 8-bit signed integer.</li>
+<li><em>RTAUDIO_SINT16:</em> 16-bit signed integer.</li>
+<li><em>RTAUDIO_SINT24:</em> Upper 3 bytes of 32-bit signed integer.</li>
+<li><em>RTAUDIO_SINT32:</em> 32-bit signed integer.</li>
+<li><em>RTAUDIO_FLOAT32:</em> Normalized between plus/minus 1.0.</li>
+<li><em>RTAUDIO_FLOAT64:</em> Normalized between plus/minus 1.0. </li>
+</ul>
 
 </div>
-</div><p>
-<a class="anchor" name="2c0f59b200dcec4d4e760f9166b29c41"></a><!-- doxytag: member="RtAudio.h::RtAudioStreamFlags" ref="2c0f59b200dcec4d4e760f9166b29c41" args="" -->
+</div>
+<a class="anchor" id="a2c0f59b200dcec4d4e760f9166b29c41"></a><!-- doxytag: member="RtAudio.h::RtAudioStreamFlags" ref="a2c0f59b200dcec4d4e760f9166b29c41" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">typedef unsigned long <a class="el" href="RtAudio_8h.html#2c0f59b200dcec4d4e760f9166b29c41">RtAudioStreamFlags</a>          </td>
+          <td class="memname">typedef unsigned long <a class="el" href="RtAudio_8h.html#a2c0f59b200dcec4d4e760f9166b29c41">RtAudioStreamFlags</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>
-<a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> stream option flags. 
-<p>
-The following flags can be OR'ed together to allow a client to make changes to the default stream behavior:<p>
+<p><a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> stream option flags. </p>
+<p>The following flags can be OR'ed together to allow a client to make changes to the default stream behavior:</p>
 <ul>
-<li><em>RTAUDIO_NONINTERLEAVED:</em> Use non-interleaved buffers (default = interleaved).</li><li><em>RTAUDIO_MINIMIZE_LATENCY:</em> Attempt to set stream parameters for lowest possible latency.</li><li><em>RTAUDIO_HOG_DEVICE:</em> Attempt grab device for exclusive use.</li></ul>
-<p>
-By default, <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> streams pass and receive audio data from the client in an interleaved format. By passing the RTAUDIO_NONINTERLEAVED flag to the openStream() function, audio data will instead be presented in non-interleaved buffers. In this case, each buffer argument in the RtAudioCallback function will point to a single array of data, with <code>nFrames</code> samples for each channel concatenated back-to-back. For example, the first sample of data for the second channel would be located at index <code>nFrames</code> (assuming the <code>buffer</code> pointer was recast to the correct data type for the stream).<p>
-Certain audio APIs offer a number of parameters that influence the I/O latency of a stream. By default, <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> will attempt to set these parameters internally for robust (glitch-free) performance (though some APIs, like Windows Direct Sound, make this difficult). By passing the RTAUDIO_MINIMIZE_LATENCY flag to the openStream() function, internal stream settings will be influenced in an attempt to minimize stream latency, though possibly at the expense of stream performance.<p>
-If the RTAUDIO_HOG_DEVICE flag is set, <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> will attempt to open the input and/or output stream device(s) for exclusive use. Note that this is not possible with all supported audio APIs.<p>
-If the RTAUDIO_SCHEDULE_REALTIME flag is set, <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> will attempt to select realtime scheduling (round-robin) for the callback thread. 
+<li><em>RTAUDIO_NONINTERLEAVED:</em> Use non-interleaved buffers (default = interleaved).</li>
+<li><em>RTAUDIO_MINIMIZE_LATENCY:</em> Attempt to set stream parameters for lowest possible latency.</li>
+<li><em>RTAUDIO_HOG_DEVICE:</em> Attempt grab device for exclusive use.</li>
+</ul>
+<p>By default, <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> streams pass and receive audio data from the client in an interleaved format. By passing the RTAUDIO_NONINTERLEAVED flag to the openStream() function, audio data will instead be presented in non-interleaved buffers. In this case, each buffer argument in the RtAudioCallback function will point to a single array of data, with <code>nFrames</code> samples for each channel concatenated back-to-back. For example, the first sample of data for the second channel would be located at index <code>nFrames</code> (assuming the <code>buffer</code> pointer was recast to the correct data type for the stream).</p>
+<p>Certain audio APIs offer a number of parameters that influence the I/O latency of a stream. By default, <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> will attempt to set these parameters internally for robust (glitch-free) performance (though some APIs, like Windows Direct Sound, make this difficult). By passing the RTAUDIO_MINIMIZE_LATENCY flag to the openStream() function, internal stream settings will be influenced in an attempt to minimize stream latency, though possibly at the expense of stream performance.</p>
+<p>If the RTAUDIO_HOG_DEVICE flag is set, <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> will attempt to open the input and/or output stream device(s) for exclusive use. Note that this is not possible with all supported audio APIs.</p>
+<p>If the RTAUDIO_SCHEDULE_REALTIME flag is set, <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> will attempt to select realtime scheduling (round-robin) for the callback thread. </p>
+
+</div>
 </div>
-</div><p>
-<a class="anchor" name="80e306d363583da3b0a1b65d9b57c806"></a><!-- doxytag: member="RtAudio.h::RtAudioStreamStatus" ref="80e306d363583da3b0a1b65d9b57c806" args="" -->
+<a class="anchor" id="a80e306d363583da3b0a1b65d9b57c806"></a><!-- doxytag: member="RtAudio.h::RtAudioStreamStatus" ref="a80e306d363583da3b0a1b65d9b57c806" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">typedef unsigned long <a class="el" href="RtAudio_8h.html#80e306d363583da3b0a1b65d9b57c806">RtAudioStreamStatus</a>          </td>
+          <td class="memname">typedef unsigned long <a class="el" href="RtAudio_8h.html#a80e306d363583da3b0a1b65d9b57c806">RtAudioStreamStatus</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>
-<a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> stream status (over- or underflow) flags. 
-<p>
-Notification of a stream over- or underflow is indicated by a non-zero stream <code>status</code> argument in the RtAudioCallback function. The stream status can be one of the following two options, depending on whether the stream is open for output and/or input:<p>
+<p><a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> stream status (over- or underflow) flags. </p>
+<p>Notification of a stream over- or underflow is indicated by a non-zero stream <code>status</code> argument in the RtAudioCallback function. The stream status can be one of the following two options, depending on whether the stream is open for output and/or input:</p>
 <ul>
-<li><em>RTAUDIO_INPUT_OVERFLOW:</em> Input data was discarded because of an overflow condition at the driver.</li><li><em>RTAUDIO_OUTPUT_UNDERFLOW:</em> The output buffer ran low, likely producing a break in the output sound. </li></ul>
+<li><em>RTAUDIO_INPUT_OVERFLOW:</em> Input data was discarded because of an overflow condition at the driver.</li>
+<li><em>RTAUDIO_OUTPUT_UNDERFLOW:</em> The output buffer ran low, likely producing a break in the output sound. </li>
+</ul>
 
 </div>
-</div><p>
-<a class="anchor" name="112c7b7e25a974977f6fc094cef1a31f"></a><!-- doxytag: member="RtAudio.h::RtAudioCallback" ref="112c7b7e25a974977f6fc094cef1a31f" args=")(void *outputBuffer, void *inputBuffer, unsigned int nFrames, double streamTime, RtAudioStreamStatus status, void *userData)" -->
+</div>
+<a class="anchor" id="a112c7b7e25a974977f6fc094cef1a31f"></a><!-- doxytag: member="RtAudio.h::RtAudioCallback" ref="a112c7b7e25a974977f6fc094cef1a31f" args=")(void *outputBuffer, void *inputBuffer, unsigned int nFrames, double streamTime, RtAudioStreamStatus status, void *userData)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">typedef int(* <a class="el" href="RtAudio_8h.html#112c7b7e25a974977f6fc094cef1a31f">RtAudioCallback</a>)(void *outputBuffer, void *inputBuffer, unsigned int nFrames, double streamTime, <a class="el" href="RtAudio_8h.html#80e306d363583da3b0a1b65d9b57c806">RtAudioStreamStatus</a> status, void *userData)          </td>
+          <td class="memname">typedef int(* <a class="el" href="RtAudio_8h.html#a112c7b7e25a974977f6fc094cef1a31f">RtAudioCallback</a>)(void *outputBuffer, void *inputBuffer, unsigned int nFrames, double streamTime, <a class="el" href="RtAudio_8h.html#a80e306d363583da3b0a1b65d9b57c806">RtAudioStreamStatus</a> status, void *userData)</td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>
-<a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> callback function prototype. 
-<p>
-All <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> clients must create a function of type RtAudioCallback to read and/or write data from/to the audio stream. When the underlying audio system is ready for new input or output data, this function will be invoked.<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
+<p><a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> callback function prototype. </p>
+<p>All <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> clients must create a function of type RtAudioCallback to read and/or write data from/to the audio stream. When the underlying audio system is ready for new input or output data, this function will be invoked.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
   <table border="0" cellspacing="2" cellpadding="0">
     <tr><td valign="top"></td><td valign="top"><em>outputBuffer</em>&nbsp;</td><td>For output (or duplex) streams, the client should write <code>nFrames</code> of audio sample frames into this buffer. This argument should be recast to the datatype specified when the stream was opened. For input-only streams, this argument will be NULL.</td></tr>
     <tr><td valign="top"></td><td valign="top"><em>inputBuffer</em>&nbsp;</td><td>For input (or duplex) streams, this buffer will hold <code>nFrames</code> of input audio sample frames. This argument should be recast to the datatype specified when the stream was opened. For output-only streams, this argument will be NULL.</td></tr>
@@ -135,15 +129,17 @@ All <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes
     <tr><td valign="top"></td><td valign="top"><em>status</em>&nbsp;</td><td>If non-zero, this argument indicates a data overflow or underflow condition for the stream. The particular condition can be determined by comparison with the RtAudioStreamStatus flags.</td></tr>
     <tr><td valign="top"></td><td valign="top"><em>userData</em>&nbsp;</td><td>A pointer to optional data provided by the client when opening the stream (default = NULL).</td></tr>
   </table>
+  </dd>
 </dl>
-To continue normal stream operation, the RtAudioCallback function should return a value of zero. To stop the stream and drain the output buffer, the function should return a value of one. To abort the stream immediately, the client should return a value of two. 
+<p>To continue normal stream operation, the RtAudioCallback function should return a value of zero. To stop the stream and drain the output buffer, the function should return a value of one. To abort the stream immediately, the client should return a value of two. </p>
+
+</div>
 </div>
-</div><p>
 </div>
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2001-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
 </table>
 
 </BODY>
diff --git a/doc/html/RtAudio_8h_source.html b/doc/html/RtAudio_8h_source.html
new file mode 100644 (file)
index 0000000..b1bd2a6
--- /dev/null
@@ -0,0 +1,641 @@
+<HTML>
+<HEAD>
+<TITLE>The RtAudio Home Page</TITLE>
+<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
+<LINK REL="SHORTCUT ICON" HREF="http://www.music.mcgill.ca/~gary/favicon.ico">
+</HEAD>
+<BODY BGCOLOR="#FFFFFF">
+<CENTER>
+<a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
+<HR>
+<!-- Generated by Doxygen 1.6.2 -->
+<h1>RtAudio.h</h1><a href="RtAudio_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/************************************************************************/</span>
+<a name="l00039"></a>00039 <span class="comment">/************************************************************************/</span>
+<a name="l00040"></a>00040 
+<a name="l00045"></a>00045 <span class="comment">// RtAudio: Version 4.0.7</span>
+<a name="l00046"></a>00046 
+<a name="l00047"></a>00047 <span class="preprocessor">#ifndef __RTAUDIO_H</span>
+<a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">#define __RTAUDIO_H</span>
+<a name="l00049"></a>00049 <span class="preprocessor"></span>
+<a name="l00050"></a>00050 <span class="preprocessor">#include &lt;string&gt;</span>
+<a name="l00051"></a>00051 <span class="preprocessor">#include &lt;vector&gt;</span>
+<a name="l00052"></a>00052 <span class="preprocessor">#include &quot;RtError.h&quot;</span>
+<a name="l00053"></a>00053 
+<a name="l00070"></a><a class="code" href="RtAudio_8h.html#aafca92882d25915560018873221e44b8">00070</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="RtAudio_8h.html#aafca92882d25915560018873221e44b8" title="RtAudio data format type.">RtAudioFormat</a>;
+<a name="l00071"></a>00071 <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="RtAudio_8h.html#aafca92882d25915560018873221e44b8" title="RtAudio data format type.">RtAudioFormat</a> RTAUDIO_SINT8 = 0x1;    <span class="comment">// 8-bit signed integer.</span>
+<a name="l00072"></a>00072 <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="RtAudio_8h.html#aafca92882d25915560018873221e44b8" title="RtAudio data format type.">RtAudioFormat</a> RTAUDIO_SINT16 = 0x2;   <span class="comment">// 16-bit signed integer.</span>
+<a name="l00073"></a>00073 <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="RtAudio_8h.html#aafca92882d25915560018873221e44b8" title="RtAudio data format type.">RtAudioFormat</a> RTAUDIO_SINT24 = 0x4;   <span class="comment">// Lower 3 bytes of 32-bit signed integer.</span>
+<a name="l00074"></a>00074 <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="RtAudio_8h.html#aafca92882d25915560018873221e44b8" title="RtAudio data format type.">RtAudioFormat</a> RTAUDIO_SINT32 = 0x8;   <span class="comment">// 32-bit signed integer.</span>
+<a name="l00075"></a>00075 <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="RtAudio_8h.html#aafca92882d25915560018873221e44b8" title="RtAudio data format type.">RtAudioFormat</a> RTAUDIO_FLOAT32 = 0x10; <span class="comment">// Normalized between plus/minus 1.0.</span>
+<a name="l00076"></a>00076 <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="RtAudio_8h.html#aafca92882d25915560018873221e44b8" title="RtAudio data format type.">RtAudioFormat</a> RTAUDIO_FLOAT64 = 0x20; <span class="comment">// Normalized between plus/minus 1.0.</span>
+<a name="l00077"></a>00077 
+<a name="l00115"></a><a class="code" href="RtAudio_8h.html#a2c0f59b200dcec4d4e760f9166b29c41">00115</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="RtAudio_8h.html#a2c0f59b200dcec4d4e760f9166b29c41" title="RtAudio stream option flags.">RtAudioStreamFlags</a>;
+<a name="l00116"></a>00116 <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="RtAudio_8h.html#a2c0f59b200dcec4d4e760f9166b29c41" title="RtAudio stream option flags.">RtAudioStreamFlags</a> RTAUDIO_NONINTERLEAVED = 0x1;    <span class="comment">// Use non-interleaved buffers (default = interleaved).</span>
+<a name="l00117"></a>00117 <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="RtAudio_8h.html#a2c0f59b200dcec4d4e760f9166b29c41" title="RtAudio stream option flags.">RtAudioStreamFlags</a> RTAUDIO_MINIMIZE_LATENCY = 0x2;  <span class="comment">// Attempt to set stream parameters for lowest possible latency.</span>
+<a name="l00118"></a>00118 <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="RtAudio_8h.html#a2c0f59b200dcec4d4e760f9166b29c41" title="RtAudio stream option flags.">RtAudioStreamFlags</a> RTAUDIO_HOG_DEVICE = 0x4;        <span class="comment">// Attempt grab device and prevent use by others.</span>
+<a name="l00119"></a>00119 <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="RtAudio_8h.html#a2c0f59b200dcec4d4e760f9166b29c41" title="RtAudio stream option flags.">RtAudioStreamFlags</a> RTAUDIO_SCHEDULE_REALTIME = 0x8; <span class="comment">// Try to select realtime scheduling for callback thread.</span>
+<a name="l00120"></a>00120 
+<a name="l00132"></a><a class="code" href="RtAudio_8h.html#a80e306d363583da3b0a1b65d9b57c806">00132</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="RtAudio_8h.html#a80e306d363583da3b0a1b65d9b57c806" title="RtAudio stream status (over- or underflow) flags.">RtAudioStreamStatus</a>;
+<a name="l00133"></a>00133 <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="RtAudio_8h.html#a80e306d363583da3b0a1b65d9b57c806" title="RtAudio stream status (over- or underflow) flags.">RtAudioStreamStatus</a> RTAUDIO_INPUT_OVERFLOW = 0x1;    <span class="comment">// Input data was discarded because of an overflow condition at the driver.</span>
+<a name="l00134"></a>00134 <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="RtAudio_8h.html#a80e306d363583da3b0a1b65d9b57c806" title="RtAudio stream status (over- or underflow) flags.">RtAudioStreamStatus</a> RTAUDIO_OUTPUT_UNDERFLOW = 0x2;  <span class="comment">// The output buffer ran low, likely causing a gap in the output sound.</span>
+<a name="l00135"></a>00135 
+<a name="l00137"></a>00137 
+<a name="l00175"></a><a class="code" href="RtAudio_8h.html#a112c7b7e25a974977f6fc094cef1a31f">00175</a> <span class="keyword">typedef</span> int (*<a class="code" href="RtAudio_8h.html#a112c7b7e25a974977f6fc094cef1a31f" title="RtAudio callback function prototype.">RtAudioCallback</a>)( <span class="keywordtype">void</span> *outputBuffer, <span class="keywordtype">void</span> *inputBuffer,
+<a name="l00176"></a>00176                                 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nFrames,
+<a name="l00177"></a>00177                                 <span class="keywordtype">double</span> streamTime,
+<a name="l00178"></a>00178                                 <a class="code" href="RtAudio_8h.html#a80e306d363583da3b0a1b65d9b57c806" title="RtAudio stream status (over- or underflow) flags.">RtAudioStreamStatus</a> status,
+<a name="l00179"></a>00179                                 <span class="keywordtype">void</span> *userData );
+<a name="l00180"></a>00180 
+<a name="l00181"></a>00181 
+<a name="l00182"></a>00182 <span class="comment">// **************************************************************** //</span>
+<a name="l00183"></a>00183 <span class="comment">//</span>
+<a name="l00184"></a>00184 <span class="comment">// RtAudio class declaration.</span>
+<a name="l00185"></a>00185 <span class="comment">//</span>
+<a name="l00186"></a>00186 <span class="comment">// RtAudio is a &quot;controller&quot; used to select an available audio i/o</span>
+<a name="l00187"></a>00187 <span class="comment">// interface.  It presents a common API for the user to call but all</span>
+<a name="l00188"></a>00188 <span class="comment">// functionality is implemented by the class RtApi and its</span>
+<a name="l00189"></a>00189 <span class="comment">// subclasses.  RtAudio creates an instance of an RtApi subclass</span>
+<a name="l00190"></a>00190 <span class="comment">// based on the user&#39;s API choice.  If no choice is made, RtAudio</span>
+<a name="l00191"></a>00191 <span class="comment">// attempts to make a &quot;logical&quot; API selection.</span>
+<a name="l00192"></a>00192 <span class="comment">//</span>
+<a name="l00193"></a>00193 <span class="comment">// **************************************************************** //</span>
+<a name="l00194"></a>00194 
+<a name="l00195"></a>00195 <span class="keyword">class </span>RtApi;
+<a name="l00196"></a>00196 
+<a name="l00197"></a><a class="code" href="classRtAudio.html">00197</a> <span class="keyword">class </span><a class="code" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a>
+<a name="l00198"></a>00198 {
+<a name="l00199"></a>00199  <span class="keyword">public</span>:
+<a name="l00200"></a>00200 
+<a name="l00202"></a><a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849">00202</a>   <span class="keyword">enum</span> <a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849" title="Audio API specifier arguments.">Api</a> {
+<a name="l00203"></a><a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849aa49af3ac767106158bc6cad74fb214ae">00203</a>     <a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849aa49af3ac767106158bc6cad74fb214ae">UNSPECIFIED</a>,    
+<a name="l00204"></a><a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849aa7a2ba095c2806caa893b6fb8fc3a1a8">00204</a>     <a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849aa7a2ba095c2806caa893b6fb8fc3a1a8">LINUX_ALSA</a>,     
+<a name="l00205"></a><a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a39c84615e61de75e6a4e865596d62c82">00205</a>     <a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a39c84615e61de75e6a4e865596d62c82">LINUX_OSS</a>,      
+<a name="l00206"></a><a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a4767e17c6edfbd827f91763915df4105">00206</a>     <a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a4767e17c6edfbd827f91763915df4105">UNIX_JACK</a>,      
+<a name="l00207"></a><a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a9fec92b8272244a87a6a11a717bd662d">00207</a>     <a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a9fec92b8272244a87a6a11a717bd662d">MACOSX_CORE</a>,    
+<a name="l00208"></a><a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a219517d1df90f94d07758481155bd469">00208</a>     <a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a219517d1df90f94d07758481155bd469">WINDOWS_ASIO</a>,   
+<a name="l00209"></a><a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a28478830f42c2fd61e6c7ad498901931">00209</a>     <a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a28478830f42c2fd61e6c7ad498901931">WINDOWS_DS</a>,     
+<a name="l00210"></a><a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849ab06b8fd88bf18c9a2b8271f6961ae2d1">00210</a>     <a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849ab06b8fd88bf18c9a2b8271f6961ae2d1">RTAUDIO_DUMMY</a>   
+<a name="l00211"></a>00211   };
+<a name="l00212"></a>00212 
+<a name="l00214"></a><a class="code" href="structRtAudio_1_1DeviceInfo.html">00214</a>   <span class="keyword">struct </span><a class="code" href="structRtAudio_1_1DeviceInfo.html" title="The public device information structure for returning queried values.">DeviceInfo</a> {
+<a name="l00215"></a><a class="code" href="structRtAudio_1_1DeviceInfo.html#a97573717ccb1e75a834a0a108cd6982d">00215</a>     <span class="keywordtype">bool</span> <a class="code" href="structRtAudio_1_1DeviceInfo.html#a97573717ccb1e75a834a0a108cd6982d">probed</a>;                  
+<a name="l00216"></a><a class="code" href="structRtAudio_1_1DeviceInfo.html#a24df596ab8d54f2eb540c7cf16212b3b">00216</a>     std::string <a class="code" href="structRtAudio_1_1DeviceInfo.html#a24df596ab8d54f2eb540c7cf16212b3b">name</a>;             
+<a name="l00217"></a><a class="code" href="structRtAudio_1_1DeviceInfo.html#a81aaf488f8158ef55b1bb678f66feb7d">00217</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structRtAudio_1_1DeviceInfo.html#a81aaf488f8158ef55b1bb678f66feb7d">outputChannels</a>;  
+<a name="l00218"></a><a class="code" href="structRtAudio_1_1DeviceInfo.html#a56247b458a937ae84d98ca9c4b243275">00218</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structRtAudio_1_1DeviceInfo.html#a56247b458a937ae84d98ca9c4b243275">inputChannels</a>;   
+<a name="l00219"></a><a class="code" href="structRtAudio_1_1DeviceInfo.html#a3e8ad34c2d14e24293a0beafc26186e7">00219</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structRtAudio_1_1DeviceInfo.html#a3e8ad34c2d14e24293a0beafc26186e7">duplexChannels</a>;  
+<a name="l00220"></a><a class="code" href="structRtAudio_1_1DeviceInfo.html#a5365245e73ffe29a05734de4474acd58">00220</a>     <span class="keywordtype">bool</span> <a class="code" href="structRtAudio_1_1DeviceInfo.html#a5365245e73ffe29a05734de4474acd58">isDefaultOutput</a>;         
+<a name="l00221"></a><a class="code" href="structRtAudio_1_1DeviceInfo.html#a7c8aca084bd908799b6be5954b80def2">00221</a>     <span class="keywordtype">bool</span> <a class="code" href="structRtAudio_1_1DeviceInfo.html#a7c8aca084bd908799b6be5954b80def2">isDefaultInput</a>;          
+<a name="l00222"></a><a class="code" href="structRtAudio_1_1DeviceInfo.html#afa65f5f92f66ce7aacd3ff35e11b230f">00222</a>     std::vector&lt;unsigned int&gt; <a class="code" href="structRtAudio_1_1DeviceInfo.html#afa65f5f92f66ce7aacd3ff35e11b230f">sampleRates</a>; 
+<a name="l00223"></a><a class="code" href="structRtAudio_1_1DeviceInfo.html#a23251b549b89b2fe04a57fcd7cb76ea4">00223</a>     <a class="code" href="RtAudio_8h.html#aafca92882d25915560018873221e44b8" title="RtAudio data format type.">RtAudioFormat</a> <a class="code" href="structRtAudio_1_1DeviceInfo.html#a23251b549b89b2fe04a57fcd7cb76ea4">nativeFormats</a>;  
+<a name="l00225"></a>00225     <span class="comment">// Default constructor.</span>
+<a name="l00226"></a>00226     <a class="code" href="structRtAudio_1_1DeviceInfo.html" title="The public device information structure for returning queried values.">DeviceInfo</a>()
+<a name="l00227"></a>00227       :<a class="code" href="structRtAudio_1_1DeviceInfo.html#a97573717ccb1e75a834a0a108cd6982d">probed</a>(false), <a class="code" href="structRtAudio_1_1DeviceInfo.html#a81aaf488f8158ef55b1bb678f66feb7d">outputChannels</a>(0), <a class="code" href="structRtAudio_1_1DeviceInfo.html#a56247b458a937ae84d98ca9c4b243275">inputChannels</a>(0), <a class="code" href="structRtAudio_1_1DeviceInfo.html#a3e8ad34c2d14e24293a0beafc26186e7">duplexChannels</a>(0),
+<a name="l00228"></a>00228        <a class="code" href="structRtAudio_1_1DeviceInfo.html#a5365245e73ffe29a05734de4474acd58">isDefaultOutput</a>(false), <a class="code" href="structRtAudio_1_1DeviceInfo.html#a7c8aca084bd908799b6be5954b80def2">isDefaultInput</a>(false), <a class="code" href="structRtAudio_1_1DeviceInfo.html#a23251b549b89b2fe04a57fcd7cb76ea4">nativeFormats</a>(0) {}
+<a name="l00229"></a>00229   };
+<a name="l00230"></a>00230 
+<a name="l00232"></a><a class="code" href="structRtAudio_1_1StreamParameters.html">00232</a>   <span class="keyword">struct </span><a class="code" href="structRtAudio_1_1StreamParameters.html" title="The structure for specifying input or ouput stream parameters.">StreamParameters</a> {
+<a name="l00233"></a><a class="code" href="structRtAudio_1_1StreamParameters.html#ab3c72bcf3ef12149ae9a4fb597cc5489">00233</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structRtAudio_1_1StreamParameters.html#ab3c72bcf3ef12149ae9a4fb597cc5489">deviceId</a>;     
+<a name="l00234"></a><a class="code" href="structRtAudio_1_1StreamParameters.html#a88a10091b6e284e21235cc6f25332ebd">00234</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structRtAudio_1_1StreamParameters.html#a88a10091b6e284e21235cc6f25332ebd">nChannels</a>;    
+<a name="l00235"></a><a class="code" href="structRtAudio_1_1StreamParameters.html#ad4b4503782653ec93c83328c46abe50c">00235</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structRtAudio_1_1StreamParameters.html#ad4b4503782653ec93c83328c46abe50c">firstChannel</a>; 
+<a name="l00237"></a>00237     <span class="comment">// Default constructor.</span>
+<a name="l00238"></a>00238     <a class="code" href="structRtAudio_1_1StreamParameters.html" title="The structure for specifying input or ouput stream parameters.">StreamParameters</a>()
+<a name="l00239"></a>00239       : <a class="code" href="structRtAudio_1_1StreamParameters.html#ab3c72bcf3ef12149ae9a4fb597cc5489">deviceId</a>(0), <a class="code" href="structRtAudio_1_1StreamParameters.html#a88a10091b6e284e21235cc6f25332ebd">nChannels</a>(0), <a class="code" href="structRtAudio_1_1StreamParameters.html#ad4b4503782653ec93c83328c46abe50c">firstChannel</a>(0) {}
+<a name="l00240"></a>00240   };
+<a name="l00241"></a>00241 
+<a name="l00243"></a>00243 
+<a name="l00294"></a><a class="code" href="structRtAudio_1_1StreamOptions.html">00294</a>   <span class="keyword">struct </span><a class="code" href="structRtAudio_1_1StreamOptions.html" title="The structure for specifying stream options.">StreamOptions</a> {
+<a name="l00295"></a><a class="code" href="structRtAudio_1_1StreamOptions.html#a0ecc98b031aa3af49d09b781643e298b">00295</a>     <a class="code" href="RtAudio_8h.html#a2c0f59b200dcec4d4e760f9166b29c41" title="RtAudio stream option flags.">RtAudioStreamFlags</a> <a class="code" href="structRtAudio_1_1StreamOptions.html#a0ecc98b031aa3af49d09b781643e298b">flags</a>;      
+<a name="l00296"></a><a class="code" href="structRtAudio_1_1StreamOptions.html#a75a14cfab903d0e1c091bc16aec80240">00296</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structRtAudio_1_1StreamOptions.html#a75a14cfab903d0e1c091bc16aec80240">numberOfBuffers</a>;  
+<a name="l00297"></a><a class="code" href="structRtAudio_1_1StreamOptions.html#a2a4b0b8d690c624d20f4e8f4be6ca9ba">00297</a>     std::string <a class="code" href="structRtAudio_1_1StreamOptions.html#a2a4b0b8d690c624d20f4e8f4be6ca9ba">streamName</a>;        
+<a name="l00298"></a><a class="code" href="structRtAudio_1_1StreamOptions.html#adfd267059434edb21573c584e6367def">00298</a>     <span class="keywordtype">int</span> <a class="code" href="structRtAudio_1_1StreamOptions.html#adfd267059434edb21573c584e6367def">priority</a>;                  
+<a name="l00300"></a>00300     <span class="comment">// Default constructor.</span>
+<a name="l00301"></a>00301     <a class="code" href="structRtAudio_1_1StreamOptions.html" title="The structure for specifying stream options.">StreamOptions</a>()
+<a name="l00302"></a>00302     : <a class="code" href="structRtAudio_1_1StreamOptions.html#a0ecc98b031aa3af49d09b781643e298b">flags</a>(0), <a class="code" href="structRtAudio_1_1StreamOptions.html#a75a14cfab903d0e1c091bc16aec80240">numberOfBuffers</a>(0), <a class="code" href="structRtAudio_1_1StreamOptions.html#adfd267059434edb21573c584e6367def">priority</a>(0) {}
+<a name="l00303"></a>00303   };
+<a name="l00304"></a>00304 
+<a name="l00306"></a>00306 
+<a name="l00311"></a>00311   <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#ae266ffad2ef428d0b2c6c262d391ce26" title="A static function to determine the available compiled audio APIs.">getCompiledApi</a>( std::vector&lt;RtAudio::Api&gt; &amp;apis ) <span class="keywordflow">throw</span>();
+<a name="l00312"></a>00312 
+<a name="l00314"></a>00314 
+<a name="l00322"></a>00322   <a class="code" href="classRtAudio.html#afd0bfa26deae9804e18faff59d0273d9" title="The class constructor.">RtAudio</a>( <a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849" title="Audio API specifier arguments.">RtAudio::Api</a> api=<a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849aa49af3ac767106158bc6cad74fb214ae">UNSPECIFIED</a> ) throw();
+<a name="l00323"></a>00323 
+<a name="l00325"></a>00325 
+<a name="l00329"></a>00329   ~<a class="code" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a>() throw();
+<a name="l00330"></a>00330 
+<a name="l00332"></a>00332   <a class="code" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a>::<a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849" title="Audio API specifier arguments.">Api</a> <a class="code" href="classRtAudio.html#a83687634795792b2c47e4ae1cf8a5246" title="Returns the audio API specifier for the current instance of RtAudio.">getCurrentApi</a>( <span class="keywordtype">void</span> ) throw();
+<a name="l00333"></a>00333 
+<a name="l00335"></a>00335 
+<a name="l00340"></a>00340   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classRtAudio.html#a747ce2d73803641bbb66d6e78092aa1a" title="A public function that queries for the number of audio devices available.">getDeviceCount</a>( <span class="keywordtype">void</span> ) throw();
+<a name="l00341"></a>00341 
+<a name="l00343"></a>00343 
+<a name="l00353"></a>00353   <a class="code" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a>::DeviceInfo <a class="code" href="classRtAudio.html#a02d7ff44ad1d7eae22283a052f3dfda8" title="Return an RtAudio::DeviceInfo structure for a specified device number.">getDeviceInfo</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> device );
+<a name="l00354"></a>00354 
+<a name="l00356"></a>00356 
+<a name="l00363"></a>00363   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classRtAudio.html#a3a3f3dbe13ea696b521e49cdaaa357bc" title="A function that returns the index of the default output device.">getDefaultOutputDevice</a>( <span class="keywordtype">void</span> ) throw();
+<a name="l00364"></a>00364 
+<a name="l00366"></a>00366 
+<a name="l00373"></a>00373   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classRtAudio.html#aad8b94edd3cd379ee300b125750ac6ce" title="A function that returns the index of the default input device.">getDefaultInputDevice</a>( <span class="keywordtype">void</span> ) throw();
+<a name="l00374"></a>00374 
+<a name="l00376"></a>00376 
+<a name="l00413"></a>00413   <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#afacc99740fa4c5606fb35467cdea6da8" title="A public function for opening a stream with the specified parameters.">openStream</a>( <a class="code" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a>::StreamParameters *outputParameters,
+<a name="l00414"></a>00414                    <a class="code" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a>::StreamParameters *inputParameters,
+<a name="l00415"></a>00415                    <a class="code" href="RtAudio_8h.html#aafca92882d25915560018873221e44b8" title="RtAudio data format type.">RtAudioFormat</a> format, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> sampleRate,
+<a name="l00416"></a>00416                    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *bufferFrames, <a class="code" href="RtAudio_8h.html#a112c7b7e25a974977f6fc094cef1a31f" title="RtAudio callback function prototype.">RtAudioCallback</a> callback,
+<a name="l00417"></a>00417                    <span class="keywordtype">void</span> *userData = NULL, <a class="code" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a>::StreamOptions *options = NULL );
+<a name="l00418"></a>00418 
+<a name="l00420"></a>00420 
+<a name="l00424"></a>00424   <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a90d599002ad32cf250a4cb866f2cc93a" title="A function that closes a stream and frees any associated stream memory.">closeStream</a>( <span class="keywordtype">void</span> ) throw();
+<a name="l00425"></a>00425 
+<a name="l00427"></a>00427 
+<a name="l00433"></a>00433   <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#aec017a89629ccef66a90b60be22a2f80" title="A function that starts a stream.">startStream</a>( <span class="keywordtype">void</span> );
+<a name="l00434"></a>00434 
+<a name="l00436"></a>00436 
+<a name="l00442"></a>00442   <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#af4c241ff86936ecc8108f0d9dfe3efdd" title="Stop a stream, allowing any samples remaining in the output queue to be played.">stopStream</a>( <span class="keywordtype">void</span> );
+<a name="l00443"></a>00443 
+<a name="l00445"></a>00445 
+<a name="l00451"></a>00451   <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#ad0586b47cd6bb9591a80b4052815991f" title="Stop a stream, discarding any samples remaining in the input/output queue.">abortStream</a>( <span class="keywordtype">void</span> );
+<a name="l00452"></a>00452 
+<a name="l00454"></a>00454   <span class="keywordtype">bool</span> <a class="code" href="classRtAudio.html#a3863e45ff81dbe97176de0ee7545917f" title="Returns true if a stream is open and false if not.">isStreamOpen</a>( <span class="keywordtype">void</span> ) const throw();
+<a name="l00455"></a>00455 
+<a name="l00457"></a>00457   <span class="keywordtype">bool</span> <a class="code" href="classRtAudio.html#a84cc8d9b7ab9bc5f37bcf48430ec5aea" title="Returns true if the stream is running and false if it is stopped or not open.">isStreamRunning</a>( <span class="keywordtype">void</span> ) const throw();
+<a name="l00458"></a>00458 
+<a name="l00460"></a>00460 
+<a name="l00463"></a>00463   <span class="keywordtype">double</span> <a class="code" href="classRtAudio.html#a344e59a62353c5791db4621b985cb2ca" title="Returns the number of elapsed seconds since the stream was started.">getStreamTime</a>( <span class="keywordtype">void</span> );
+<a name="l00464"></a>00464 
+<a name="l00466"></a>00466 
+<a name="l00474"></a>00474   <span class="keywordtype">long</span> <a class="code" href="classRtAudio.html#a843c989d9f501c71bc2f2c5ca18df9f3" title="Returns the internal stream latency in sample frames.">getStreamLatency</a>( <span class="keywordtype">void</span> );
+<a name="l00475"></a>00475 
+<a name="l00477"></a>00477 
+<a name="l00482"></a>00482   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classRtAudio.html#a28214b8b05d60b45c24ee6fae7b2a0b5" title="Returns actual sample rate in use by the stream.">getStreamSampleRate</a>( <span class="keywordtype">void</span> );
+<a name="l00483"></a>00483 
+<a name="l00485"></a>00485   <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#af0752ee51cce3dd90a3bd009f9fdbe77" title="Specify whether warning messages should be printed to stderr.">showWarnings</a>( <span class="keywordtype">bool</span> value = true ) throw();
+<a name="l00486"></a>00486 
+<a name="l00487"></a>00487  protected:
+<a name="l00488"></a>00488 
+<a name="l00489"></a>00489   <span class="keywordtype">void</span> openRtApi( <a class="code" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a>::<a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849" title="Audio API specifier arguments.">Api</a> api );
+<a name="l00490"></a>00490   RtApi *rtapi_;
+<a name="l00491"></a>00491 };
+<a name="l00492"></a>00492 
+<a name="l00493"></a>00493 <span class="comment">// Operating system dependent thread functionality.</span>
+<a name="l00494"></a>00494 <span class="preprocessor">#if defined(__WINDOWS_DS__) || defined(__WINDOWS_ASIO__)</span>
+<a name="l00495"></a>00495 <span class="preprocessor"></span><span class="preprocessor">  #include &lt;windows.h&gt;</span>
+<a name="l00496"></a>00496 <span class="preprocessor">  #include &lt;process.h&gt;</span>
+<a name="l00497"></a>00497 
+<a name="l00498"></a>00498   <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> ThreadHandle;
+<a name="l00499"></a>00499   <span class="keyword">typedef</span> CRITICAL_SECTION StreamMutex;
+<a name="l00500"></a>00500 
+<a name="l00501"></a>00501 <span class="preprocessor">#elif defined(__LINUX_ALSA__) || defined(__UNIX_JACK__) || defined(__LINUX_OSS__) || defined(__MACOSX_CORE__)</span>
+<a name="l00502"></a>00502 <span class="preprocessor"></span>  <span class="comment">// Using pthread library for various flavors of unix.</span>
+<a name="l00503"></a>00503 <span class="preprocessor">  #include &lt;pthread.h&gt;</span>
+<a name="l00504"></a>00504 
+<a name="l00505"></a>00505   <span class="keyword">typedef</span> pthread_t ThreadHandle;
+<a name="l00506"></a>00506   <span class="keyword">typedef</span> pthread_mutex_t StreamMutex;
+<a name="l00507"></a>00507 
+<a name="l00508"></a>00508 <span class="preprocessor">#else // Setup for &quot;dummy&quot; behavior</span>
+<a name="l00509"></a>00509 <span class="preprocessor"></span>
+<a name="l00510"></a>00510 <span class="preprocessor">  #define __RTAUDIO_DUMMY__</span>
+<a name="l00511"></a>00511 <span class="preprocessor"></span>  <span class="keyword">typedef</span> <span class="keywordtype">int</span> ThreadHandle;
+<a name="l00512"></a>00512   <span class="keyword">typedef</span> <span class="keywordtype">int</span> StreamMutex;
+<a name="l00513"></a>00513 
+<a name="l00514"></a>00514 <span class="preprocessor">#endif</span>
+<a name="l00515"></a>00515 <span class="preprocessor"></span>
+<a name="l00516"></a>00516 <span class="comment">// This global structure type is used to pass callback information</span>
+<a name="l00517"></a>00517 <span class="comment">// between the private RtAudio stream structure and global callback</span>
+<a name="l00518"></a>00518 <span class="comment">// handling functions.</span>
+<a name="l00519"></a>00519 <span class="keyword">struct </span>CallbackInfo {
+<a name="l00520"></a>00520   <span class="keywordtype">void</span> *object;    <span class="comment">// Used as a &quot;this&quot; pointer.</span>
+<a name="l00521"></a>00521   ThreadHandle thread;
+<a name="l00522"></a>00522   <span class="keywordtype">void</span> *callback;
+<a name="l00523"></a>00523   <span class="keywordtype">void</span> *userData;
+<a name="l00524"></a>00524   <span class="keywordtype">void</span> *apiInfo;   <span class="comment">// void pointer for API specific callback information</span>
+<a name="l00525"></a>00525   <span class="keywordtype">bool</span> isRunning;
+<a name="l00526"></a>00526 
+<a name="l00527"></a>00527   <span class="comment">// Default constructor.</span>
+<a name="l00528"></a>00528   CallbackInfo()
+<a name="l00529"></a>00529     :object(0), callback(0), userData(0), apiInfo(0), isRunning(false) {}
+<a name="l00530"></a>00530 };
+<a name="l00531"></a>00531 
+<a name="l00532"></a>00532 <span class="comment">// **************************************************************** //</span>
+<a name="l00533"></a>00533 <span class="comment">//</span>
+<a name="l00534"></a>00534 <span class="comment">// RtApi class declaration.</span>
+<a name="l00535"></a>00535 <span class="comment">//</span>
+<a name="l00536"></a>00536 <span class="comment">// Subclasses of RtApi contain all API- and OS-specific code necessary</span>
+<a name="l00537"></a>00537 <span class="comment">// to fully implement the RtAudio API.</span>
+<a name="l00538"></a>00538 <span class="comment">//</span>
+<a name="l00539"></a>00539 <span class="comment">// Note that RtApi is an abstract base class and cannot be</span>
+<a name="l00540"></a>00540 <span class="comment">// explicitly instantiated.  The class RtAudio will create an</span>
+<a name="l00541"></a>00541 <span class="comment">// instance of an RtApi subclass (RtApiOss, RtApiAlsa,</span>
+<a name="l00542"></a>00542 <span class="comment">// RtApiJack, RtApiCore, RtApiAl, RtApiDs, or RtApiAsio).</span>
+<a name="l00543"></a>00543 <span class="comment">//</span>
+<a name="l00544"></a>00544 <span class="comment">// **************************************************************** //</span>
+<a name="l00545"></a>00545 
+<a name="l00546"></a>00546 <span class="preprocessor">#if defined( HAVE_GETTIMEOFDAY )</span>
+<a name="l00547"></a>00547 <span class="preprocessor"></span><span class="preprocessor">  #include &lt;sys/time.h&gt;</span>
+<a name="l00548"></a>00548 <span class="preprocessor">#endif</span>
+<a name="l00549"></a>00549 <span class="preprocessor"></span>
+<a name="l00550"></a>00550 <span class="preprocessor">#include &lt;sstream&gt;</span>
+<a name="l00551"></a>00551 
+<a name="l00552"></a>00552 <span class="keyword">class </span>RtApi
+<a name="l00553"></a>00553 {
+<a name="l00554"></a>00554 <span class="keyword">public</span>:
+<a name="l00555"></a>00555 
+<a name="l00556"></a>00556   RtApi();
+<a name="l00557"></a>00557   <span class="keyword">virtual</span> ~RtApi();
+<a name="l00558"></a>00558   <span class="keyword">virtual</span> <a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849" title="Audio API specifier arguments.">RtAudio::Api</a> <a class="code" href="classRtAudio.html#a83687634795792b2c47e4ae1cf8a5246" title="Returns the audio API specifier for the current instance of RtAudio.">getCurrentApi</a>( <span class="keywordtype">void</span> ) = 0;
+<a name="l00559"></a>00559   <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classRtAudio.html#a747ce2d73803641bbb66d6e78092aa1a" title="A public function that queries for the number of audio devices available.">getDeviceCount</a>( <span class="keywordtype">void</span> ) = 0;
+<a name="l00560"></a>00560   <span class="keyword">virtual</span> <a class="code" href="structRtAudio_1_1DeviceInfo.html" title="The public device information structure for returning queried values.">RtAudio::DeviceInfo</a> <a class="code" href="classRtAudio.html#a02d7ff44ad1d7eae22283a052f3dfda8" title="Return an RtAudio::DeviceInfo structure for a specified device number.">getDeviceInfo</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> device ) = 0;
+<a name="l00561"></a>00561   <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classRtAudio.html#aad8b94edd3cd379ee300b125750ac6ce" title="A function that returns the index of the default input device.">getDefaultInputDevice</a>( <span class="keywordtype">void</span> );
+<a name="l00562"></a>00562   <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classRtAudio.html#a3a3f3dbe13ea696b521e49cdaaa357bc" title="A function that returns the index of the default output device.">getDefaultOutputDevice</a>( <span class="keywordtype">void</span> );
+<a name="l00563"></a>00563   <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#afacc99740fa4c5606fb35467cdea6da8" title="A public function for opening a stream with the specified parameters.">openStream</a>( <a class="code" href="structRtAudio_1_1StreamParameters.html" title="The structure for specifying input or ouput stream parameters.">RtAudio::StreamParameters</a> *outputParameters,
+<a name="l00564"></a>00564                    <a class="code" href="structRtAudio_1_1StreamParameters.html" title="The structure for specifying input or ouput stream parameters.">RtAudio::StreamParameters</a> *inputParameters,
+<a name="l00565"></a>00565                    <a class="code" href="RtAudio_8h.html#aafca92882d25915560018873221e44b8" title="RtAudio data format type.">RtAudioFormat</a> format, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> sampleRate,
+<a name="l00566"></a>00566                    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *bufferFrames, <a class="code" href="RtAudio_8h.html#a112c7b7e25a974977f6fc094cef1a31f" title="RtAudio callback function prototype.">RtAudioCallback</a> callback,
+<a name="l00567"></a>00567                    <span class="keywordtype">void</span> *userData, <a class="code" href="structRtAudio_1_1StreamOptions.html" title="The structure for specifying stream options.">RtAudio::StreamOptions</a> *options );
+<a name="l00568"></a>00568   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a90d599002ad32cf250a4cb866f2cc93a" title="A function that closes a stream and frees any associated stream memory.">closeStream</a>( <span class="keywordtype">void</span> );
+<a name="l00569"></a>00569   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#aec017a89629ccef66a90b60be22a2f80" title="A function that starts a stream.">startStream</a>( <span class="keywordtype">void</span> ) = 0;
+<a name="l00570"></a>00570   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#af4c241ff86936ecc8108f0d9dfe3efdd" title="Stop a stream, allowing any samples remaining in the output queue to be played.">stopStream</a>( <span class="keywordtype">void</span> ) = 0;
+<a name="l00571"></a>00571   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#ad0586b47cd6bb9591a80b4052815991f" title="Stop a stream, discarding any samples remaining in the input/output queue.">abortStream</a>( <span class="keywordtype">void</span> ) = 0;
+<a name="l00572"></a>00572   <span class="keywordtype">long</span> <a class="code" href="classRtAudio.html#a843c989d9f501c71bc2f2c5ca18df9f3" title="Returns the internal stream latency in sample frames.">getStreamLatency</a>( <span class="keywordtype">void</span> );
+<a name="l00573"></a>00573   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classRtAudio.html#a28214b8b05d60b45c24ee6fae7b2a0b5" title="Returns actual sample rate in use by the stream.">getStreamSampleRate</a>( <span class="keywordtype">void</span> );
+<a name="l00574"></a>00574   <span class="keyword">virtual</span> <span class="keywordtype">double</span> <a class="code" href="classRtAudio.html#a344e59a62353c5791db4621b985cb2ca" title="Returns the number of elapsed seconds since the stream was started.">getStreamTime</a>( <span class="keywordtype">void</span> );
+<a name="l00575"></a>00575   <span class="keywordtype">bool</span> <a class="code" href="classRtAudio.html#a3863e45ff81dbe97176de0ee7545917f" title="Returns true if a stream is open and false if not.">isStreamOpen</a>( <span class="keywordtype">void</span> )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> stream_.state != STREAM_CLOSED; };
+<a name="l00576"></a>00576   <span class="keywordtype">bool</span> <a class="code" href="classRtAudio.html#a84cc8d9b7ab9bc5f37bcf48430ec5aea" title="Returns true if the stream is running and false if it is stopped or not open.">isStreamRunning</a>( <span class="keywordtype">void</span> )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> stream_.state == STREAM_RUNNING; };
+<a name="l00577"></a>00577   <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#af0752ee51cce3dd90a3bd009f9fdbe77" title="Specify whether warning messages should be printed to stderr.">showWarnings</a>( <span class="keywordtype">bool</span> value ) { showWarnings_ = value; };
+<a name="l00578"></a>00578 
+<a name="l00579"></a>00579 
+<a name="l00580"></a>00580 <span class="keyword">protected</span>:
+<a name="l00581"></a>00581 
+<a name="l00582"></a>00582   <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> MAX_SAMPLE_RATES;
+<a name="l00583"></a>00583   <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> SAMPLE_RATES[];
+<a name="l00584"></a>00584 
+<a name="l00585"></a>00585   <span class="keyword">enum</span> { FAILURE, SUCCESS };
+<a name="l00586"></a>00586 
+<a name="l00587"></a>00587   <span class="keyword">enum</span> StreamState {
+<a name="l00588"></a>00588     STREAM_STOPPED,
+<a name="l00589"></a>00589     STREAM_RUNNING,
+<a name="l00590"></a>00590     STREAM_CLOSED = -50
+<a name="l00591"></a>00591   };
+<a name="l00592"></a>00592 
+<a name="l00593"></a>00593   <span class="keyword">enum</span> StreamMode {
+<a name="l00594"></a>00594     OUTPUT,
+<a name="l00595"></a>00595     INPUT,
+<a name="l00596"></a>00596     DUPLEX,
+<a name="l00597"></a>00597     UNINITIALIZED = -75
+<a name="l00598"></a>00598   };
+<a name="l00599"></a>00599 
+<a name="l00600"></a>00600   <span class="comment">// A protected structure used for buffer conversion.</span>
+<a name="l00601"></a>00601   <span class="keyword">struct </span>ConvertInfo {
+<a name="l00602"></a>00602     <span class="keywordtype">int</span> channels;
+<a name="l00603"></a>00603     <span class="keywordtype">int</span> inJump, outJump;
+<a name="l00604"></a>00604     <a class="code" href="RtAudio_8h.html#aafca92882d25915560018873221e44b8" title="RtAudio data format type.">RtAudioFormat</a> inFormat, outFormat;
+<a name="l00605"></a>00605     std::vector&lt;int&gt; inOffset;
+<a name="l00606"></a>00606     std::vector&lt;int&gt; outOffset;
+<a name="l00607"></a>00607   };
+<a name="l00608"></a>00608 
+<a name="l00609"></a>00609   <span class="comment">// A protected structure for audio streams.</span>
+<a name="l00610"></a>00610   <span class="keyword">struct </span>RtApiStream {
+<a name="l00611"></a>00611     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> device[2];    <span class="comment">// Playback and record, respectively.</span>
+<a name="l00612"></a>00612     <span class="keywordtype">void</span> *apiHandle;           <span class="comment">// void pointer for API specific stream handle information</span>
+<a name="l00613"></a>00613     StreamMode mode;           <span class="comment">// OUTPUT, INPUT, or DUPLEX.</span>
+<a name="l00614"></a>00614     StreamState state;         <span class="comment">// STOPPED, RUNNING, or CLOSED</span>
+<a name="l00615"></a>00615     <span class="keywordtype">char</span> *userBuffer[2];       <span class="comment">// Playback and record, respectively.</span>
+<a name="l00616"></a>00616     <span class="keywordtype">char</span> *deviceBuffer;
+<a name="l00617"></a>00617     <span class="keywordtype">bool</span> doConvertBuffer[2];   <span class="comment">// Playback and record, respectively.</span>
+<a name="l00618"></a>00618     <span class="keywordtype">bool</span> userInterleaved;
+<a name="l00619"></a>00619     <span class="keywordtype">bool</span> deviceInterleaved[2]; <span class="comment">// Playback and record, respectively.</span>
+<a name="l00620"></a>00620     <span class="keywordtype">bool</span> doByteSwap[2];        <span class="comment">// Playback and record, respectively.</span>
+<a name="l00621"></a>00621     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> sampleRate;
+<a name="l00622"></a>00622     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> bufferSize;
+<a name="l00623"></a>00623     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nBuffers;
+<a name="l00624"></a>00624     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nUserChannels[2];    <span class="comment">// Playback and record, respectively.</span>
+<a name="l00625"></a>00625     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nDeviceChannels[2];  <span class="comment">// Playback and record channels, respectively.</span>
+<a name="l00626"></a>00626     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channelOffset[2];    <span class="comment">// Playback and record, respectively.</span>
+<a name="l00627"></a>00627     <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> latency[2];         <span class="comment">// Playback and record, respectively.</span>
+<a name="l00628"></a>00628     <a class="code" href="RtAudio_8h.html#aafca92882d25915560018873221e44b8" title="RtAudio data format type.">RtAudioFormat</a> userFormat;
+<a name="l00629"></a>00629     <a class="code" href="RtAudio_8h.html#aafca92882d25915560018873221e44b8" title="RtAudio data format type.">RtAudioFormat</a> deviceFormat[2];    <span class="comment">// Playback and record, respectively.</span>
+<a name="l00630"></a>00630     StreamMutex mutex;
+<a name="l00631"></a>00631     CallbackInfo callbackInfo;
+<a name="l00632"></a>00632     ConvertInfo convertInfo[2];
+<a name="l00633"></a>00633     <span class="keywordtype">double</span> streamTime;         <span class="comment">// Number of elapsed seconds since the stream started.</span>
+<a name="l00634"></a>00634 
+<a name="l00635"></a>00635 <span class="preprocessor">#if defined(HAVE_GETTIMEOFDAY)</span>
+<a name="l00636"></a>00636 <span class="preprocessor"></span>    <span class="keyword">struct </span>timeval lastTickTimestamp;
+<a name="l00637"></a>00637 <span class="preprocessor">#endif</span>
+<a name="l00638"></a>00638 <span class="preprocessor"></span>
+<a name="l00639"></a>00639     RtApiStream()
+<a name="l00640"></a>00640       :apiHandle(0), deviceBuffer(0) { device[0] = 11111; device[1] = 11111; }
+<a name="l00641"></a>00641   };
+<a name="l00642"></a>00642 
+<a name="l00643"></a>00643   <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">short</span> Int16;
+<a name="l00644"></a>00644   <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> Int32;
+<a name="l00645"></a>00645   <span class="keyword">typedef</span> <span class="keywordtype">float</span> Float32;
+<a name="l00646"></a>00646   <span class="keyword">typedef</span> <span class="keywordtype">double</span> Float64;
+<a name="l00647"></a>00647 
+<a name="l00648"></a>00648   std::ostringstream errorStream_;
+<a name="l00649"></a>00649   std::string errorText_;
+<a name="l00650"></a>00650   <span class="keywordtype">bool</span> showWarnings_;
+<a name="l00651"></a>00651   RtApiStream stream_;
+<a name="l00652"></a>00652 
+<a name="l00660"></a>00660   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channels, 
+<a name="l00661"></a>00661                                 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> firstChannel, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> sampleRate,
+<a name="l00662"></a>00662                                 <a class="code" href="RtAudio_8h.html#aafca92882d25915560018873221e44b8" title="RtAudio data format type.">RtAudioFormat</a> format, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *bufferSize,
+<a name="l00663"></a>00663                                 <a class="code" href="structRtAudio_1_1StreamOptions.html" title="The structure for specifying stream options.">RtAudio::StreamOptions</a> *options );
+<a name="l00664"></a>00664 
+<a name="l00666"></a>00666   <span class="keywordtype">void</span> tickStreamTime( <span class="keywordtype">void</span> );
+<a name="l00667"></a>00667 
+<a name="l00669"></a>00669   <span class="keywordtype">void</span> clearStreamInfo();
+<a name="l00670"></a>00670 
+<a name="l00675"></a>00675   <span class="keywordtype">void</span> verifyStream( <span class="keywordtype">void</span> );
+<a name="l00676"></a>00676 
+<a name="l00678"></a>00678   <span class="keywordtype">void</span> error( <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903ac" title="Defined RtError types.">RtError::Type</a> type );
+<a name="l00679"></a>00679 
+<a name="l00684"></a>00684   <span class="keywordtype">void</span> convertBuffer( <span class="keywordtype">char</span> *outBuffer, <span class="keywordtype">char</span> *inBuffer, ConvertInfo &amp;info );
+<a name="l00685"></a>00685 
+<a name="l00687"></a>00687   <span class="keywordtype">void</span> byteSwapBuffer( <span class="keywordtype">char</span> *buffer, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> samples, <a class="code" href="RtAudio_8h.html#aafca92882d25915560018873221e44b8" title="RtAudio data format type.">RtAudioFormat</a> format );
+<a name="l00688"></a>00688 
+<a name="l00690"></a>00690   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> formatBytes( <a class="code" href="RtAudio_8h.html#aafca92882d25915560018873221e44b8" title="RtAudio data format type.">RtAudioFormat</a> format );
+<a name="l00691"></a>00691 
+<a name="l00693"></a>00693   <span class="keywordtype">void</span> setConvertInfo( StreamMode mode, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> firstChannel );
+<a name="l00694"></a>00694 };
+<a name="l00695"></a>00695 
+<a name="l00696"></a>00696 <span class="comment">// **************************************************************** //</span>
+<a name="l00697"></a>00697 <span class="comment">//</span>
+<a name="l00698"></a>00698 <span class="comment">// Inline RtAudio definitions.</span>
+<a name="l00699"></a>00699 <span class="comment">//</span>
+<a name="l00700"></a>00700 <span class="comment">// **************************************************************** //</span>
+<a name="l00701"></a>00701 
+<a name="l00702"></a><a class="code" href="classRtAudio.html#a83687634795792b2c47e4ae1cf8a5246">00702</a> <span class="keyword">inline</span> <a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849" title="Audio API specifier arguments.">RtAudio::Api</a> <a class="code" href="classRtAudio.html#a83687634795792b2c47e4ae1cf8a5246" title="Returns the audio API specifier for the current instance of RtAudio.">RtAudio :: getCurrentApi</a>( <span class="keywordtype">void</span> ) throw() { <span class="keywordflow">return</span> rtapi_-&gt;getCurrentApi(); }
+<a name="l00703"></a><a class="code" href="classRtAudio.html#a747ce2d73803641bbb66d6e78092aa1a">00703</a> <span class="keyword">inline</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classRtAudio.html#a747ce2d73803641bbb66d6e78092aa1a" title="A public function that queries for the number of audio devices available.">RtAudio :: getDeviceCount</a>( <span class="keywordtype">void</span> ) throw() { <span class="keywordflow">return</span> rtapi_-&gt;getDeviceCount(); }
+<a name="l00704"></a><a class="code" href="classRtAudio.html#a02d7ff44ad1d7eae22283a052f3dfda8">00704</a> <span class="keyword">inline</span> <a class="code" href="structRtAudio_1_1DeviceInfo.html" title="The public device information structure for returning queried values.">RtAudio::DeviceInfo</a> <a class="code" href="classRtAudio.html#a02d7ff44ad1d7eae22283a052f3dfda8" title="Return an RtAudio::DeviceInfo structure for a specified device number.">RtAudio :: getDeviceInfo</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> device ) { <span class="keywordflow">return</span> rtapi_-&gt;getDeviceInfo( device ); }
+<a name="l00705"></a><a class="code" href="classRtAudio.html#aad8b94edd3cd379ee300b125750ac6ce">00705</a> <span class="keyword">inline</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classRtAudio.html#aad8b94edd3cd379ee300b125750ac6ce" title="A function that returns the index of the default input device.">RtAudio :: getDefaultInputDevice</a>( <span class="keywordtype">void</span> ) throw() { <span class="keywordflow">return</span> rtapi_-&gt;getDefaultInputDevice(); }
+<a name="l00706"></a><a class="code" href="classRtAudio.html#a3a3f3dbe13ea696b521e49cdaaa357bc">00706</a> <span class="keyword">inline</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classRtAudio.html#a3a3f3dbe13ea696b521e49cdaaa357bc" title="A function that returns the index of the default output device.">RtAudio :: getDefaultOutputDevice</a>( <span class="keywordtype">void</span> ) throw() { <span class="keywordflow">return</span> rtapi_-&gt;getDefaultOutputDevice(); }
+<a name="l00707"></a><a class="code" href="classRtAudio.html#a90d599002ad32cf250a4cb866f2cc93a">00707</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a90d599002ad32cf250a4cb866f2cc93a" title="A function that closes a stream and frees any associated stream memory.">RtAudio :: closeStream</a>( <span class="keywordtype">void</span> ) throw() { <span class="keywordflow">return</span> rtapi_-&gt;closeStream(); }
+<a name="l00708"></a><a class="code" href="classRtAudio.html#aec017a89629ccef66a90b60be22a2f80">00708</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#aec017a89629ccef66a90b60be22a2f80" title="A function that starts a stream.">RtAudio :: startStream</a>( <span class="keywordtype">void</span> ) { <span class="keywordflow">return</span> rtapi_-&gt;startStream(); }
+<a name="l00709"></a><a class="code" href="classRtAudio.html#af4c241ff86936ecc8108f0d9dfe3efdd">00709</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#af4c241ff86936ecc8108f0d9dfe3efdd" title="Stop a stream, allowing any samples remaining in the output queue to be played.">RtAudio :: stopStream</a>( <span class="keywordtype">void</span> )  { <span class="keywordflow">return</span> rtapi_-&gt;stopStream(); }
+<a name="l00710"></a><a class="code" href="classRtAudio.html#ad0586b47cd6bb9591a80b4052815991f">00710</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#ad0586b47cd6bb9591a80b4052815991f" title="Stop a stream, discarding any samples remaining in the input/output queue.">RtAudio :: abortStream</a>( <span class="keywordtype">void</span> ) { <span class="keywordflow">return</span> rtapi_-&gt;abortStream(); }
+<a name="l00711"></a><a class="code" href="classRtAudio.html#a3863e45ff81dbe97176de0ee7545917f">00711</a> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classRtAudio.html#a3863e45ff81dbe97176de0ee7545917f" title="Returns true if a stream is open and false if not.">RtAudio :: isStreamOpen</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span> throw() { <span class="keywordflow">return</span> rtapi_-&gt;isStreamOpen(); }
+<a name="l00712"></a><a class="code" href="classRtAudio.html#a84cc8d9b7ab9bc5f37bcf48430ec5aea">00712</a> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classRtAudio.html#a84cc8d9b7ab9bc5f37bcf48430ec5aea" title="Returns true if the stream is running and false if it is stopped or not open.">RtAudio :: isStreamRunning</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span> throw() { <span class="keywordflow">return</span> rtapi_-&gt;isStreamRunning(); }
+<a name="l00713"></a><a class="code" href="classRtAudio.html#a843c989d9f501c71bc2f2c5ca18df9f3">00713</a> <span class="keyword">inline</span> <span class="keywordtype">long</span> <a class="code" href="classRtAudio.html#a843c989d9f501c71bc2f2c5ca18df9f3" title="Returns the internal stream latency in sample frames.">RtAudio :: getStreamLatency</a>( <span class="keywordtype">void</span> ) { <span class="keywordflow">return</span> rtapi_-&gt;getStreamLatency(); }
+<a name="l00714"></a><a class="code" href="classRtAudio.html#a28214b8b05d60b45c24ee6fae7b2a0b5">00714</a> <span class="keyword">inline</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classRtAudio.html#a28214b8b05d60b45c24ee6fae7b2a0b5" title="Returns actual sample rate in use by the stream.">RtAudio :: getStreamSampleRate</a>( <span class="keywordtype">void</span> ) { <span class="keywordflow">return</span> rtapi_-&gt;getStreamSampleRate(); };
+<a name="l00715"></a><a class="code" href="classRtAudio.html#a344e59a62353c5791db4621b985cb2ca">00715</a> <span class="keyword">inline</span> <span class="keywordtype">double</span> <a class="code" href="classRtAudio.html#a344e59a62353c5791db4621b985cb2ca" title="Returns the number of elapsed seconds since the stream was started.">RtAudio :: getStreamTime</a>( <span class="keywordtype">void</span> ) { <span class="keywordflow">return</span> rtapi_-&gt;getStreamTime(); }
+<a name="l00716"></a><a class="code" href="classRtAudio.html#af0752ee51cce3dd90a3bd009f9fdbe77">00716</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#af0752ee51cce3dd90a3bd009f9fdbe77" title="Specify whether warning messages should be printed to stderr.">RtAudio :: showWarnings</a>( <span class="keywordtype">bool</span> value ) <span class="keywordflow">throw</span>() { rtapi_-&gt;showWarnings( value ); }
+<a name="l00717"></a>00717 
+<a name="l00718"></a>00718 <span class="comment">// RtApi Subclass prototypes.</span>
+<a name="l00719"></a>00719 
+<a name="l00720"></a>00720 <span class="preprocessor">#if defined(__MACOSX_CORE__)</span>
+<a name="l00721"></a>00721 <span class="preprocessor"></span>
+<a name="l00722"></a>00722 <span class="preprocessor">#include &lt;CoreAudio/AudioHardware.h&gt;</span>
+<a name="l00723"></a>00723 
+<a name="l00724"></a>00724 <span class="keyword">class </span>RtApiCore: <span class="keyword">public</span> RtApi
+<a name="l00725"></a>00725 {
+<a name="l00726"></a>00726 <span class="keyword">public</span>:
+<a name="l00727"></a>00727 
+<a name="l00728"></a>00728   RtApiCore();
+<a name="l00729"></a>00729   ~RtApiCore();
+<a name="l00730"></a>00730   <a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849" title="Audio API specifier arguments.">RtAudio::Api</a> getCurrentApi( <span class="keywordtype">void</span> ) { <span class="keywordflow">return</span> <a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a9fec92b8272244a87a6a11a717bd662d">RtAudio::MACOSX_CORE</a>; };
+<a name="l00731"></a>00731   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getDeviceCount( <span class="keywordtype">void</span> );
+<a name="l00732"></a>00732   <a class="code" href="structRtAudio_1_1DeviceInfo.html" title="The public device information structure for returning queried values.">RtAudio::DeviceInfo</a> getDeviceInfo( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> device );
+<a name="l00733"></a>00733   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getDefaultOutputDevice( <span class="keywordtype">void</span> );
+<a name="l00734"></a>00734   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getDefaultInputDevice( <span class="keywordtype">void</span> );
+<a name="l00735"></a>00735   <span class="keywordtype">void</span> closeStream( <span class="keywordtype">void</span> );
+<a name="l00736"></a>00736   <span class="keywordtype">void</span> startStream( <span class="keywordtype">void</span> );
+<a name="l00737"></a>00737   <span class="keywordtype">void</span> stopStream( <span class="keywordtype">void</span> );
+<a name="l00738"></a>00738   <span class="keywordtype">void</span> abortStream( <span class="keywordtype">void</span> );
+<a name="l00739"></a>00739   <span class="keywordtype">long</span> getStreamLatency( <span class="keywordtype">void</span> );
+<a name="l00740"></a>00740 
+<a name="l00741"></a>00741   <span class="comment">// This function is intended for internal use only.  It must be</span>
+<a name="l00742"></a>00742   <span class="comment">// public because it is called by the internal callback handler,</span>
+<a name="l00743"></a>00743   <span class="comment">// which is not a member of RtAudio.  External use of this function</span>
+<a name="l00744"></a>00744   <span class="comment">// will most likely produce highly undesireable results!</span>
+<a name="l00745"></a>00745   <span class="keywordtype">bool</span> callbackEvent( AudioDeviceID deviceId,
+<a name="l00746"></a>00746                       <span class="keyword">const</span> AudioBufferList *inBufferList,
+<a name="l00747"></a>00747                       <span class="keyword">const</span> AudioBufferList *outBufferList );
+<a name="l00748"></a>00748 
+<a name="l00749"></a>00749   <span class="keyword">private</span>:
+<a name="l00750"></a>00750 
+<a name="l00751"></a>00751   <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channels, 
+<a name="l00752"></a>00752                         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> firstChannel, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> sampleRate,
+<a name="l00753"></a>00753                         <a class="code" href="RtAudio_8h.html#aafca92882d25915560018873221e44b8" title="RtAudio data format type.">RtAudioFormat</a> format, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *bufferSize,
+<a name="l00754"></a>00754                         <a class="code" href="structRtAudio_1_1StreamOptions.html" title="The structure for specifying stream options.">RtAudio::StreamOptions</a> *options );
+<a name="l00755"></a>00755   <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* getErrorCode( OSStatus code );
+<a name="l00756"></a>00756 };
+<a name="l00757"></a>00757 
+<a name="l00758"></a>00758 <span class="preprocessor">#endif</span>
+<a name="l00759"></a>00759 <span class="preprocessor"></span>
+<a name="l00760"></a>00760 <span class="preprocessor">#if defined(__UNIX_JACK__)</span>
+<a name="l00761"></a>00761 <span class="preprocessor"></span>
+<a name="l00762"></a>00762 <span class="keyword">class </span>RtApiJack: <span class="keyword">public</span> RtApi
+<a name="l00763"></a>00763 {
+<a name="l00764"></a>00764 <span class="keyword">public</span>:
+<a name="l00765"></a>00765 
+<a name="l00766"></a>00766   RtApiJack();
+<a name="l00767"></a>00767   ~RtApiJack();
+<a name="l00768"></a>00768   <a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849" title="Audio API specifier arguments.">RtAudio::Api</a> getCurrentApi( <span class="keywordtype">void</span> ) { <span class="keywordflow">return</span> <a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a4767e17c6edfbd827f91763915df4105">RtAudio::UNIX_JACK</a>; };
+<a name="l00769"></a>00769   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getDeviceCount( <span class="keywordtype">void</span> );
+<a name="l00770"></a>00770   <a class="code" href="structRtAudio_1_1DeviceInfo.html" title="The public device information structure for returning queried values.">RtAudio::DeviceInfo</a> getDeviceInfo( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> device );
+<a name="l00771"></a>00771   <span class="keywordtype">void</span> closeStream( <span class="keywordtype">void</span> );
+<a name="l00772"></a>00772   <span class="keywordtype">void</span> startStream( <span class="keywordtype">void</span> );
+<a name="l00773"></a>00773   <span class="keywordtype">void</span> stopStream( <span class="keywordtype">void</span> );
+<a name="l00774"></a>00774   <span class="keywordtype">void</span> abortStream( <span class="keywordtype">void</span> );
+<a name="l00775"></a>00775   <span class="keywordtype">long</span> getStreamLatency( <span class="keywordtype">void</span> );
+<a name="l00776"></a>00776 
+<a name="l00777"></a>00777   <span class="comment">// This function is intended for internal use only.  It must be</span>
+<a name="l00778"></a>00778   <span class="comment">// public because it is called by the internal callback handler,</span>
+<a name="l00779"></a>00779   <span class="comment">// which is not a member of RtAudio.  External use of this function</span>
+<a name="l00780"></a>00780   <span class="comment">// will most likely produce highly undesireable results!</span>
+<a name="l00781"></a>00781   <span class="keywordtype">bool</span> callbackEvent( <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> nframes );
+<a name="l00782"></a>00782 
+<a name="l00783"></a>00783   <span class="keyword">private</span>:
+<a name="l00784"></a>00784 
+<a name="l00785"></a>00785   <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channels, 
+<a name="l00786"></a>00786                         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> firstChannel, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> sampleRate,
+<a name="l00787"></a>00787                         <a class="code" href="RtAudio_8h.html#aafca92882d25915560018873221e44b8" title="RtAudio data format type.">RtAudioFormat</a> format, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *bufferSize,
+<a name="l00788"></a>00788                         <a class="code" href="structRtAudio_1_1StreamOptions.html" title="The structure for specifying stream options.">RtAudio::StreamOptions</a> *options );
+<a name="l00789"></a>00789 };
+<a name="l00790"></a>00790 
+<a name="l00791"></a>00791 <span class="preprocessor">#endif</span>
+<a name="l00792"></a>00792 <span class="preprocessor"></span>
+<a name="l00793"></a>00793 <span class="preprocessor">#if defined(__WINDOWS_ASIO__)</span>
+<a name="l00794"></a>00794 <span class="preprocessor"></span>
+<a name="l00795"></a>00795 <span class="keyword">class </span>RtApiAsio: <span class="keyword">public</span> RtApi
+<a name="l00796"></a>00796 {
+<a name="l00797"></a>00797 <span class="keyword">public</span>:
+<a name="l00798"></a>00798 
+<a name="l00799"></a>00799   RtApiAsio();
+<a name="l00800"></a>00800   ~RtApiAsio();
+<a name="l00801"></a>00801   <a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849" title="Audio API specifier arguments.">RtAudio::Api</a> getCurrentApi( <span class="keywordtype">void</span> ) { <span class="keywordflow">return</span> <a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a219517d1df90f94d07758481155bd469">RtAudio::WINDOWS_ASIO</a>; };
+<a name="l00802"></a>00802   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getDeviceCount( <span class="keywordtype">void</span> );
+<a name="l00803"></a>00803   <a class="code" href="structRtAudio_1_1DeviceInfo.html" title="The public device information structure for returning queried values.">RtAudio::DeviceInfo</a> getDeviceInfo( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> device );
+<a name="l00804"></a>00804   <span class="keywordtype">void</span> closeStream( <span class="keywordtype">void</span> );
+<a name="l00805"></a>00805   <span class="keywordtype">void</span> startStream( <span class="keywordtype">void</span> );
+<a name="l00806"></a>00806   <span class="keywordtype">void</span> stopStream( <span class="keywordtype">void</span> );
+<a name="l00807"></a>00807   <span class="keywordtype">void</span> abortStream( <span class="keywordtype">void</span> );
+<a name="l00808"></a>00808   <span class="keywordtype">long</span> getStreamLatency( <span class="keywordtype">void</span> );
+<a name="l00809"></a>00809 
+<a name="l00810"></a>00810   <span class="comment">// This function is intended for internal use only.  It must be</span>
+<a name="l00811"></a>00811   <span class="comment">// public because it is called by the internal callback handler,</span>
+<a name="l00812"></a>00812   <span class="comment">// which is not a member of RtAudio.  External use of this function</span>
+<a name="l00813"></a>00813   <span class="comment">// will most likely produce highly undesireable results!</span>
+<a name="l00814"></a>00814   <span class="keywordtype">bool</span> callbackEvent( <span class="keywordtype">long</span> bufferIndex );
+<a name="l00815"></a>00815 
+<a name="l00816"></a>00816   <span class="keyword">private</span>:
+<a name="l00817"></a>00817 
+<a name="l00818"></a>00818   std::vector&lt;RtAudio::DeviceInfo&gt; devices_;
+<a name="l00819"></a>00819   <span class="keywordtype">void</span> saveDeviceInfo( <span class="keywordtype">void</span> );
+<a name="l00820"></a>00820   <span class="keywordtype">bool</span> coInitialized_;
+<a name="l00821"></a>00821   <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channels, 
+<a name="l00822"></a>00822                         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> firstChannel, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> sampleRate,
+<a name="l00823"></a>00823                         <a class="code" href="RtAudio_8h.html#aafca92882d25915560018873221e44b8" title="RtAudio data format type.">RtAudioFormat</a> format, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *bufferSize,
+<a name="l00824"></a>00824                         <a class="code" href="structRtAudio_1_1StreamOptions.html" title="The structure for specifying stream options.">RtAudio::StreamOptions</a> *options );
+<a name="l00825"></a>00825 };
+<a name="l00826"></a>00826 
+<a name="l00827"></a>00827 <span class="preprocessor">#endif</span>
+<a name="l00828"></a>00828 <span class="preprocessor"></span>
+<a name="l00829"></a>00829 <span class="preprocessor">#if defined(__WINDOWS_DS__)</span>
+<a name="l00830"></a>00830 <span class="preprocessor"></span>
+<a name="l00831"></a>00831 <span class="keyword">class </span>RtApiDs: <span class="keyword">public</span> RtApi
+<a name="l00832"></a>00832 {
+<a name="l00833"></a>00833 <span class="keyword">public</span>:
+<a name="l00834"></a>00834 
+<a name="l00835"></a>00835   RtApiDs();
+<a name="l00836"></a>00836   ~RtApiDs();
+<a name="l00837"></a>00837   <a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849" title="Audio API specifier arguments.">RtAudio::Api</a> getCurrentApi( <span class="keywordtype">void</span> ) { <span class="keywordflow">return</span> <a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a28478830f42c2fd61e6c7ad498901931">RtAudio::WINDOWS_DS</a>; };
+<a name="l00838"></a>00838   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getDeviceCount( <span class="keywordtype">void</span> );
+<a name="l00839"></a>00839   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getDefaultOutputDevice( <span class="keywordtype">void</span> );
+<a name="l00840"></a>00840   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getDefaultInputDevice( <span class="keywordtype">void</span> );
+<a name="l00841"></a>00841   <a class="code" href="structRtAudio_1_1DeviceInfo.html" title="The public device information structure for returning queried values.">RtAudio::DeviceInfo</a> getDeviceInfo( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> device );
+<a name="l00842"></a>00842   <span class="keywordtype">void</span> closeStream( <span class="keywordtype">void</span> );
+<a name="l00843"></a>00843   <span class="keywordtype">void</span> startStream( <span class="keywordtype">void</span> );
+<a name="l00844"></a>00844   <span class="keywordtype">void</span> stopStream( <span class="keywordtype">void</span> );
+<a name="l00845"></a>00845   <span class="keywordtype">void</span> abortStream( <span class="keywordtype">void</span> );
+<a name="l00846"></a>00846   <span class="keywordtype">long</span> getStreamLatency( <span class="keywordtype">void</span> );
+<a name="l00847"></a>00847 
+<a name="l00848"></a>00848   <span class="comment">// This function is intended for internal use only.  It must be</span>
+<a name="l00849"></a>00849   <span class="comment">// public because it is called by the internal callback handler,</span>
+<a name="l00850"></a>00850   <span class="comment">// which is not a member of RtAudio.  External use of this function</span>
+<a name="l00851"></a>00851   <span class="comment">// will most likely produce highly undesireable results!</span>
+<a name="l00852"></a>00852   <span class="keywordtype">void</span> callbackEvent( <span class="keywordtype">void</span> );
+<a name="l00853"></a>00853 
+<a name="l00854"></a>00854   <span class="keyword">private</span>:
+<a name="l00855"></a>00855 
+<a name="l00856"></a>00856   <span class="keywordtype">bool</span> coInitialized_;
+<a name="l00857"></a>00857   <span class="keywordtype">bool</span> buffersRolling;
+<a name="l00858"></a>00858   <span class="keywordtype">long</span> duplexPrerollBytes;
+<a name="l00859"></a>00859   <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channels, 
+<a name="l00860"></a>00860                         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> firstChannel, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> sampleRate,
+<a name="l00861"></a>00861                         <a class="code" href="RtAudio_8h.html#aafca92882d25915560018873221e44b8" title="RtAudio data format type.">RtAudioFormat</a> format, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *bufferSize,
+<a name="l00862"></a>00862                         <a class="code" href="structRtAudio_1_1StreamOptions.html" title="The structure for specifying stream options.">RtAudio::StreamOptions</a> *options );
+<a name="l00863"></a>00863 };
+<a name="l00864"></a>00864 
+<a name="l00865"></a>00865 <span class="preprocessor">#endif</span>
+<a name="l00866"></a>00866 <span class="preprocessor"></span>
+<a name="l00867"></a>00867 <span class="preprocessor">#if defined(__LINUX_ALSA__)</span>
+<a name="l00868"></a>00868 <span class="preprocessor"></span>
+<a name="l00869"></a>00869 <span class="keyword">class </span>RtApiAlsa: <span class="keyword">public</span> RtApi
+<a name="l00870"></a>00870 {
+<a name="l00871"></a>00871 <span class="keyword">public</span>:
+<a name="l00872"></a>00872 
+<a name="l00873"></a>00873   RtApiAlsa();
+<a name="l00874"></a>00874   ~RtApiAlsa();
+<a name="l00875"></a>00875   <a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849" title="Audio API specifier arguments.">RtAudio::Api</a> getCurrentApi() { <span class="keywordflow">return</span> <a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849aa7a2ba095c2806caa893b6fb8fc3a1a8">RtAudio::LINUX_ALSA</a>; };
+<a name="l00876"></a>00876   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getDeviceCount( <span class="keywordtype">void</span> );
+<a name="l00877"></a>00877   <a class="code" href="structRtAudio_1_1DeviceInfo.html" title="The public device information structure for returning queried values.">RtAudio::DeviceInfo</a> getDeviceInfo( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> device );
+<a name="l00878"></a>00878   <span class="keywordtype">void</span> closeStream( <span class="keywordtype">void</span> );
+<a name="l00879"></a>00879   <span class="keywordtype">void</span> startStream( <span class="keywordtype">void</span> );
+<a name="l00880"></a>00880   <span class="keywordtype">void</span> stopStream( <span class="keywordtype">void</span> );
+<a name="l00881"></a>00881   <span class="keywordtype">void</span> abortStream( <span class="keywordtype">void</span> );
+<a name="l00882"></a>00882 
+<a name="l00883"></a>00883   <span class="comment">// This function is intended for internal use only.  It must be</span>
+<a name="l00884"></a>00884   <span class="comment">// public because it is called by the internal callback handler,</span>
+<a name="l00885"></a>00885   <span class="comment">// which is not a member of RtAudio.  External use of this function</span>
+<a name="l00886"></a>00886   <span class="comment">// will most likely produce highly undesireable results!</span>
+<a name="l00887"></a>00887   <span class="keywordtype">void</span> callbackEvent( <span class="keywordtype">void</span> );
+<a name="l00888"></a>00888 
+<a name="l00889"></a>00889   <span class="keyword">private</span>:
+<a name="l00890"></a>00890 
+<a name="l00891"></a>00891   std::vector&lt;RtAudio::DeviceInfo&gt; devices_;
+<a name="l00892"></a>00892   <span class="keywordtype">void</span> saveDeviceInfo( <span class="keywordtype">void</span> );
+<a name="l00893"></a>00893   <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channels, 
+<a name="l00894"></a>00894                         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> firstChannel, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> sampleRate,
+<a name="l00895"></a>00895                         <a class="code" href="RtAudio_8h.html#aafca92882d25915560018873221e44b8" title="RtAudio data format type.">RtAudioFormat</a> format, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *bufferSize,
+<a name="l00896"></a>00896                         <a class="code" href="structRtAudio_1_1StreamOptions.html" title="The structure for specifying stream options.">RtAudio::StreamOptions</a> *options );
+<a name="l00897"></a>00897 };
+<a name="l00898"></a>00898 
+<a name="l00899"></a>00899 <span class="preprocessor">#endif</span>
+<a name="l00900"></a>00900 <span class="preprocessor"></span>
+<a name="l00901"></a>00901 <span class="preprocessor">#if defined(__LINUX_OSS__)</span>
+<a name="l00902"></a>00902 <span class="preprocessor"></span>
+<a name="l00903"></a>00903 <span class="keyword">class </span>RtApiOss: <span class="keyword">public</span> RtApi
+<a name="l00904"></a>00904 {
+<a name="l00905"></a>00905 <span class="keyword">public</span>:
+<a name="l00906"></a>00906 
+<a name="l00907"></a>00907   RtApiOss();
+<a name="l00908"></a>00908   ~RtApiOss();
+<a name="l00909"></a>00909   <a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849" title="Audio API specifier arguments.">RtAudio::Api</a> getCurrentApi() { <span class="keywordflow">return</span> <a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a39c84615e61de75e6a4e865596d62c82">RtAudio::LINUX_OSS</a>; };
+<a name="l00910"></a>00910   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getDeviceCount( <span class="keywordtype">void</span> );
+<a name="l00911"></a>00911   <a class="code" href="structRtAudio_1_1DeviceInfo.html" title="The public device information structure for returning queried values.">RtAudio::DeviceInfo</a> getDeviceInfo( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> device );
+<a name="l00912"></a>00912   <span class="keywordtype">void</span> closeStream( <span class="keywordtype">void</span> );
+<a name="l00913"></a>00913   <span class="keywordtype">void</span> startStream( <span class="keywordtype">void</span> );
+<a name="l00914"></a>00914   <span class="keywordtype">void</span> stopStream( <span class="keywordtype">void</span> );
+<a name="l00915"></a>00915   <span class="keywordtype">void</span> abortStream( <span class="keywordtype">void</span> );
+<a name="l00916"></a>00916 
+<a name="l00917"></a>00917   <span class="comment">// This function is intended for internal use only.  It must be</span>
+<a name="l00918"></a>00918   <span class="comment">// public because it is called by the internal callback handler,</span>
+<a name="l00919"></a>00919   <span class="comment">// which is not a member of RtAudio.  External use of this function</span>
+<a name="l00920"></a>00920   <span class="comment">// will most likely produce highly undesireable results!</span>
+<a name="l00921"></a>00921   <span class="keywordtype">void</span> callbackEvent( <span class="keywordtype">void</span> );
+<a name="l00922"></a>00922 
+<a name="l00923"></a>00923   <span class="keyword">private</span>:
+<a name="l00924"></a>00924 
+<a name="l00925"></a>00925   <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channels, 
+<a name="l00926"></a>00926                         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> firstChannel, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> sampleRate,
+<a name="l00927"></a>00927                         <a class="code" href="RtAudio_8h.html#aafca92882d25915560018873221e44b8" title="RtAudio data format type.">RtAudioFormat</a> format, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *bufferSize,
+<a name="l00928"></a>00928                         <a class="code" href="structRtAudio_1_1StreamOptions.html" title="The structure for specifying stream options.">RtAudio::StreamOptions</a> *options );
+<a name="l00929"></a>00929 };
+<a name="l00930"></a>00930 
+<a name="l00931"></a>00931 <span class="preprocessor">#endif</span>
+<a name="l00932"></a>00932 <span class="preprocessor"></span>
+<a name="l00933"></a>00933 <span class="preprocessor">#if defined(__RTAUDIO_DUMMY__)</span>
+<a name="l00934"></a>00934 <span class="preprocessor"></span>
+<a name="l00935"></a>00935 <span class="keyword">class </span>RtApiDummy: <span class="keyword">public</span> RtApi
+<a name="l00936"></a>00936 {
+<a name="l00937"></a>00937 <span class="keyword">public</span>:
+<a name="l00938"></a>00938 
+<a name="l00939"></a>00939   RtApiDummy() { errorText_ = <span class="stringliteral">&quot;RtApiDummy: This class provides no functionality.&quot;</span>; error( <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca3a1603c24a56cbdaf5f8ae4ddcb86398">RtError::WARNING</a> ); };
+<a name="l00940"></a>00940   <a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849" title="Audio API specifier arguments.">RtAudio::Api</a> getCurrentApi( <span class="keywordtype">void</span> ) { <span class="keywordflow">return</span> <a class="code" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849ab06b8fd88bf18c9a2b8271f6961ae2d1">RtAudio::RTAUDIO_DUMMY</a>; };
+<a name="l00941"></a>00941   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getDeviceCount( <span class="keywordtype">void</span> ) { <span class="keywordflow">return</span> 0; };
+<a name="l00942"></a>00942   <a class="code" href="structRtAudio_1_1DeviceInfo.html" title="The public device information structure for returning queried values.">RtAudio::DeviceInfo</a> getDeviceInfo( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> device ) { <a class="code" href="structRtAudio_1_1DeviceInfo.html" title="The public device information structure for returning queried values.">RtAudio::DeviceInfo</a> info; <span class="keywordflow">return</span> info; };
+<a name="l00943"></a>00943   <span class="keywordtype">void</span> closeStream( <span class="keywordtype">void</span> ) {};
+<a name="l00944"></a>00944   <span class="keywordtype">void</span> startStream( <span class="keywordtype">void</span> ) {};
+<a name="l00945"></a>00945   <span class="keywordtype">void</span> stopStream( <span class="keywordtype">void</span> ) {};
+<a name="l00946"></a>00946   <span class="keywordtype">void</span> abortStream( <span class="keywordtype">void</span> ) {};
+<a name="l00947"></a>00947 
+<a name="l00948"></a>00948   <span class="keyword">private</span>:
+<a name="l00949"></a>00949 
+<a name="l00950"></a>00950   <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channels, 
+<a name="l00951"></a>00951                         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> firstChannel, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> sampleRate,
+<a name="l00952"></a>00952                         <a class="code" href="RtAudio_8h.html#aafca92882d25915560018873221e44b8" title="RtAudio data format type.">RtAudioFormat</a> format, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *bufferSize,
+<a name="l00953"></a>00953                         <a class="code" href="structRtAudio_1_1StreamOptions.html" title="The structure for specifying stream options.">RtAudio::StreamOptions</a> *options ) { <span class="keywordflow">return</span> <span class="keyword">false</span>; };
+<a name="l00954"></a>00954 };
+<a name="l00955"></a>00955 
+<a name="l00956"></a>00956 <span class="preprocessor">#endif</span>
+<a name="l00957"></a>00957 <span class="preprocessor"></span>
+<a name="l00958"></a>00958 <span class="preprocessor">#endif</span>
+<a name="l00959"></a>00959 <span class="preprocessor"></span>
+<a name="l00960"></a>00960 <span class="comment">// Indentation settings for Vim and Emacs</span>
+<a name="l00961"></a>00961 <span class="comment">//</span>
+<a name="l00962"></a>00962 <span class="comment">// Local Variables:</span>
+<a name="l00963"></a>00963 <span class="comment">// c-basic-offset: 2</span>
+<a name="l00964"></a>00964 <span class="comment">// indent-tabs-mode: nil</span>
+<a name="l00965"></a>00965 <span class="comment">// End:</span>
+<a name="l00966"></a>00966 <span class="comment">//</span>
+<a name="l00967"></a>00967 <span class="comment">// vim: et sts=2 sw=2</span>
+</pre></div></div>
+<HR>
+
+<table><tr><td><img src="../images/mcgill.gif" width=165></td>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+</table>
+
+</BODY>
+</HTML>
diff --git a/doc/html/RtError_8h_source.html b/doc/html/RtError_8h_source.html
new file mode 100644 (file)
index 0000000..2a208f7
--- /dev/null
@@ -0,0 +1,65 @@
+<HTML>
+<HEAD>
+<TITLE>The RtAudio Home Page</TITLE>
+<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
+<LINK REL="SHORTCUT ICON" HREF="http://www.music.mcgill.ca/~gary/favicon.ico">
+</HEAD>
+<BODY BGCOLOR="#FFFFFF">
+<CENTER>
+<a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
+<HR>
+<!-- Generated by Doxygen 1.6.2 -->
+<h1>RtError.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/************************************************************************/</span>
+<a name="l00010"></a>00010 <span class="comment">/************************************************************************/</span>
+<a name="l00011"></a>00011 
+<a name="l00012"></a>00012 <span class="preprocessor">#ifndef RTERROR_H</span>
+<a name="l00013"></a>00013 <span class="preprocessor"></span><span class="preprocessor">#define RTERROR_H</span>
+<a name="l00014"></a>00014 <span class="preprocessor"></span>
+<a name="l00015"></a>00015 <span class="preprocessor">#include &lt;exception&gt;</span>
+<a name="l00016"></a>00016 <span class="preprocessor">#include &lt;iostream&gt;</span>
+<a name="l00017"></a>00017 <span class="preprocessor">#include &lt;string&gt;</span>
+<a name="l00018"></a>00018 
+<a name="l00019"></a><a class="code" href="classRtError.html">00019</a> <span class="keyword">class </span><a class="code" href="classRtError.html" title="Exception handling class for RtAudio &amp;amp; RtMidi.">RtError</a> : <span class="keyword">public</span> std::exception
+<a name="l00020"></a>00020 {
+<a name="l00021"></a>00021  <span class="keyword">public</span>:
+<a name="l00023"></a><a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903ac">00023</a>   <span class="keyword">enum</span> <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903ac" title="Defined RtError types.">Type</a> {
+<a name="l00024"></a><a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca3a1603c24a56cbdaf5f8ae4ddcb86398">00024</a>     <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca3a1603c24a56cbdaf5f8ae4ddcb86398">WARNING</a>,           
+<a name="l00025"></a><a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca20e5a369394d19b704ace17002007eba">00025</a>     <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca20e5a369394d19b704ace17002007eba">DEBUG_WARNING</a>,     
+<a name="l00026"></a><a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca444efd3ccf774b2ba9f9bde70ec71cd6">00026</a>     <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca444efd3ccf774b2ba9f9bde70ec71cd6">UNSPECIFIED</a>,       
+<a name="l00027"></a><a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaf267eb2d710f33d649ba840eeab6ff82">00027</a>     <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaf267eb2d710f33d649ba840eeab6ff82">NO_DEVICES_FOUND</a>,  
+<a name="l00028"></a><a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acad6064062066fffdba258237a7c2159b1">00028</a>     <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acad6064062066fffdba258237a7c2159b1">INVALID_DEVICE</a>,    
+<a name="l00029"></a><a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acab4f813e5a36905c89d4081a59497432e">00029</a>     <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acab4f813e5a36905c89d4081a59497432e">MEMORY_ERROR</a>,      
+<a name="l00030"></a><a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaa3eabf0f71120beaba94148a1b78fed6">00030</a>     <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaa3eabf0f71120beaba94148a1b78fed6">INVALID_PARAMETER</a>, 
+<a name="l00031"></a><a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca8e65f51a3fbdc1a4a1552b3260df36bc">00031</a>     <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca8e65f51a3fbdc1a4a1552b3260df36bc">INVALID_USE</a>,       
+<a name="l00032"></a><a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca995e97ecf6beeedaba525022a63aec6b">00032</a>     <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca995e97ecf6beeedaba525022a63aec6b">DRIVER_ERROR</a>,      
+<a name="l00033"></a><a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca8947d0a2e2a84ecf3646271844e06a6b">00033</a>     <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca8947d0a2e2a84ecf3646271844e06a6b">SYSTEM_ERROR</a>,      
+<a name="l00034"></a><a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaeb6282f991e2d93ab294a4272fc3f6c6">00034</a>     <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaeb6282f991e2d93ab294a4272fc3f6c6">THREAD_ERROR</a>       
+<a name="l00035"></a>00035   };
+<a name="l00036"></a>00036 
+<a name="l00038"></a><a class="code" href="classRtError.html#aa479a305ccbe56be0fd9137b9b405a37">00038</a>   <a class="code" href="classRtError.html#aa479a305ccbe56be0fd9137b9b405a37" title="The constructor.">RtError</a>( <span class="keyword">const</span> std::string&amp; message, <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903ac" title="Defined RtError types.">Type</a> type = <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca444efd3ccf774b2ba9f9bde70ec71cd6">RtError::UNSPECIFIED</a> ) throw() : message_(message), type_(type) {}
+<a name="l00039"></a>00039  
+<a name="l00041"></a><a class="code" href="classRtError.html#a6793e03386e7e69ffafb65a296dfa48c">00041</a>   <span class="keyword">virtual</span> <a class="code" href="classRtError.html#a6793e03386e7e69ffafb65a296dfa48c" title="The destructor.">~RtError</a>( <span class="keywordtype">void</span> ) throw() {}
+<a name="l00042"></a>00042 
+<a name="l00044"></a><a class="code" href="classRtError.html#ada41f7472122f45bc5b4677f066e0943">00044</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classRtError.html#ada41f7472122f45bc5b4677f066e0943" title="Prints thrown error message to stderr.">printMessage</a>( <span class="keywordtype">void</span> ) throw() { std::cerr &lt;&lt; <span class="charliteral">&#39;\n&#39;</span> &lt;&lt; message_ &lt;&lt; <span class="stringliteral">&quot;\n\n&quot;</span>; }
+<a name="l00045"></a>00045 
+<a name="l00047"></a><a class="code" href="classRtError.html#a4ee7df9728d73f533afbaddcd9ca4d9c">00047</a>   <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903ac" title="Defined RtError types.">Type</a>&amp; <a class="code" href="classRtError.html#a4ee7df9728d73f533afbaddcd9ca4d9c" title="Returns the thrown error message type.">getType</a>(<span class="keywordtype">void</span>) throw() { <span class="keywordflow">return</span> type_; }
+<a name="l00048"></a>00048 
+<a name="l00050"></a><a class="code" href="classRtError.html#ac7f467788e29d246333d7af050801164">00050</a>   <span class="keyword">virtual</span> <span class="keyword">const</span> std::string&amp; <a class="code" href="classRtError.html#ac7f467788e29d246333d7af050801164" title="Returns the thrown error message string.">getMessage</a>(<span class="keywordtype">void</span>) throw() { <span class="keywordflow">return</span> message_; }
+<a name="l00051"></a>00051 
+<a name="l00053"></a><a class="code" href="classRtError.html#aeb843b7a7785d66061c61ebfc29e7e9d">00053</a>   <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classRtError.html#aeb843b7a7785d66061c61ebfc29e7e9d" title="Returns the thrown error message as a c-style string.">what</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span> throw() { <span class="keywordflow">return</span> message_.c_str(); }
+<a name="l00054"></a>00054 
+<a name="l00055"></a>00055  <span class="keyword">protected</span>:
+<a name="l00056"></a>00056   std::string message_;
+<a name="l00057"></a>00057   <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903ac" title="Defined RtError types.">Type</a> type_;
+<a name="l00058"></a>00058 };
+<a name="l00059"></a>00059 
+<a name="l00060"></a>00060 <span class="preprocessor">#endif</span>
+</pre></div></div>
+<HR>
+
+<table><tr><td><img src="../images/mcgill.gif" width=165></td>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+</table>
+
+</BODY>
+</HTML>
index 697c578ec2cc63658b172ef9c55309d5e91c7185..0dc714b82ed512ad4da39a6f0db17d076cde15bc 100644 (file)
@@ -8,9 +8,12 @@
 <CENTER>
 <a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
 <HR>
-<!-- Generated by Doxygen 1.5.8 -->
+<!-- Generated by Doxygen 1.6.2 -->
 <div class="contents">
-<h1><a class="anchor" name="acknowledge">Acknowledgements </a></h1>Many thanks to the following people for providing bug fixes and improvements: <ul>
+
+
+<h1><a class="anchor" id="acknowledge">Acknowledgements </a></h1><p>Many thanks to the following people for providing bug fixes and improvements: </p>
+<ul>
 <li>
 Anders Ervik </li>
 <li>
@@ -22,13 +25,13 @@ Ed Wildgoose (Linux ALSA and Jack) </li>
 <li>
 Dominic Mazzoni </li>
 </ul>
-<p>
-The <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> API incorporates many of the concepts developed in the <a href="http://www.portaudio.com/">PortAudio</a> project by Phil Burk and Ross Bencina. Early development also incorporated ideas from Bill Schottstaedt's <a href="http://www-ccrma.stanford.edu/software/snd/sndlib/">sndlib</a>. The CCRMA <a href="http://www-ccrma.stanford.edu/groups/soundwire/">SoundWire group</a> provided valuable feedback during the API proposal stages.<p>
-The early 2.0 version of <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> was slowly developed over the course of many months while in residence at the <a href="http://www.iua.upf.es/">Institut Universitari de L'Audiovisual (IUA)</a> in Barcelona, Spain and the <a href="http://www.acoustics.hut.fi/">Laboratory of Acoustics and Audio Signal Processing</a> at the Helsinki University of Technology, Finland. Much subsequent development happened while working at the <a href="http://www-ccrma.stanford.edu/">Center for Computer Research in Music and Acoustics (CCRMA)</a> at <a href="http://www.stanford.edu/">Stanford University</a>. All recent versions of <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> have been completed while working as an assistant professor of <a href="http://www.music.mcgill.ca/musictech/">Music Technology</a> at <a href="http://www.mcgill.ca/">McGill University</a>. This work was supported in part by the United States Air Force Office of Scientific Research (grant #F49620-99-1-0293). </div>
+<p>The <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> API incorporates many of the concepts developed in the <a href="http://www.portaudio.com/">PortAudio</a> project by Phil Burk and Ross Bencina. Early development also incorporated ideas from Bill Schottstaedt's <a href="http://www-ccrma.stanford.edu/software/snd/sndlib/">sndlib</a>. The CCRMA <a href="http://www-ccrma.stanford.edu/groups/soundwire/">SoundWire group</a> provided valuable feedback during the API proposal stages.</p>
+<p>The early 2.0 version of <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> was slowly developed over the course of many months while in residence at the <a href="http://www.iua.upf.es/">Institut Universitari de L'Audiovisual (IUA)</a> in Barcelona, Spain and the <a href="http://www.acoustics.hut.fi/">Laboratory of Acoustics and Audio Signal Processing</a> at the Helsinki University of Technology, Finland. Much subsequent development happened while working at the <a href="http://www-ccrma.stanford.edu/">Center for Computer Research in Music and Acoustics (CCRMA)</a> at <a href="http://www.stanford.edu/">Stanford University</a>. All recent versions of <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> have been completed while working as an assistant / associate professor of <a href="http://www.music.mcgill.ca/musictech/">Music Technology</a> at <a href="http://www.mcgill.ca/">McGill University</a>. This work was supported in part by the United States Air Force Office of Scientific Research (grant #F49620-99-1-0293). </p>
+</div>
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2001-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
 </table>
 
 </BODY>
index 0e3670ef478a7aaf3ef2e2675e12d7dd435c9e63..7564a45f953b2c4bf31df21691d3c4733f2bb3f0 100644 (file)
@@ -8,20 +8,20 @@
 <CENTER>
 <a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
 <HR>
-<!-- Generated by Doxygen 1.5.8 -->
+<!-- Generated by Doxygen 1.6.2 -->
 <div class="contents">
 <h1>Class List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<table>
+  <tr><td class="indexkey"><a class="el" href="structRtAudio_1_1DeviceInfo.html">RtAudio::DeviceInfo</a></td><td class="indexvalue">The public device information structure for returning queried values </td></tr>
   <tr><td class="indexkey"><a class="el" href="classRtAudio.html">RtAudio</a></td><td class="indexvalue">Realtime audio i/o C++ classes </td></tr>
-  <tr><td class="indexkey"><a class="el" href="structRtAudio_1_1DeviceInfo.html">RtAudio::RtAudio::DeviceInfo</a></td><td class="indexvalue">The public device information structure for returning queried values </td></tr>
-  <tr><td class="indexkey"><a class="el" href="structRtAudio_1_1StreamOptions.html">RtAudio::RtAudio::StreamOptions</a></td><td class="indexvalue">The structure for specifying stream options </td></tr>
-  <tr><td class="indexkey"><a class="el" href="structRtAudio_1_1StreamParameters.html">RtAudio::RtAudio::StreamParameters</a></td><td class="indexvalue">The structure for specifying input or ouput stream parameters </td></tr>
   <tr><td class="indexkey"><a class="el" href="classRtError.html">RtError</a></td><td class="indexvalue">Exception handling class for <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> &amp; RtMidi </td></tr>
+  <tr><td class="indexkey"><a class="el" href="structRtAudio_1_1StreamOptions.html">RtAudio::StreamOptions</a></td><td class="indexvalue">The structure for specifying stream options </td></tr>
+  <tr><td class="indexkey"><a class="el" href="structRtAudio_1_1StreamParameters.html">RtAudio::StreamParameters</a></td><td class="indexvalue">The structure for specifying input or ouput stream parameters </td></tr>
 </table>
 </div>
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2001-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
 </table>
 
 </BODY>
index 7404ac41b3ac5c4512c4285e105b3a3f7ffb5168..c3909bc530f0f0848741ec63a34be250bbca5acc 100644 (file)
@@ -8,31 +8,38 @@
 <CENTER>
 <a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
 <HR>
-<!-- Generated by Doxygen 1.5.8 -->
+<!-- Generated by Doxygen 1.6.2 -->
 <div class="contents">
-<h1><a class="anchor" name="apinotes">API Notes </a></h1><a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> is designed to provide a common API across the various supported operating systems and audio libraries. Despite that, some issues should be mentioned with regard to each.<h2><a class="anchor" name="linux">
+
+
+<h1><a class="anchor" id="apinotes">API Notes </a></h1><p><a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> is designed to provide a common API across the various supported operating systems and audio libraries. Despite that, some issues should be mentioned with regard to each.</p>
+<h2><a class="anchor" id="linux">
 Linux:</a></h2>
-<a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> for Linux was developed under Redhat distributions 7.0 - Fedora. Three different audio APIs are supported on Linux platforms: <a href="http://www.opensound.com/oss.html">OSS</a> (versions &gt;= 4.0), <a href="http://www.alsa-project.org/">ALSA</a>, and <a href="http://jackit.sourceforge.net/">Jack</a>. Note that <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> now only supports the newer version 4.0 OSS API. The ALSA API is now part of the Linux kernel and offers significantly better functionality than the OSS API. <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> provides support for the 1.0 and higher versions of ALSA. Jack is a low-latency audio server written primarily for the GNU/Linux operating system. It can connect a number of different applications to an audio device, as well as allow them to share audio between themselves. Input/output latency on the order of 15 milliseconds can typically be achieved using any of the Linux APIs by fine-tuning the <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> buffer parameters (without kernel modifications). Latencies on the order of 5 milliseconds or less can be achieved using a low-latency kernel patch and increasing FIFO scheduling priority. The pthread library, which is used for callback functionality, is a standard component of all Linux distributions.<p>
-The ALSA library includes OSS emulation support. That means that you can run programs compiled for the OSS API even when using the ALSA drivers and library. It should be noted however that OSS emulation under ALSA is not perfect. Specifically, channel number queries seem to consistently produce invalid results. While OSS emulation is successful for the majority of <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> tests, it is recommended that the native ALSA implementation of <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> be used on systems which have ALSA drivers installed.<p>
-The ALSA implementation of <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> makes no use of the ALSA "plug" interface. All necessary data format conversions, channel compensation, de-interleaving, and byte-swapping is handled by internal <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> routines.<p>
-At the moment, only one <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> instance can be connected to the Jack server.<h2><a class="anchor" name="macosx">
+<p><a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> for Linux was developed under Redhat distributions 7.0 - Fedora. Three different audio APIs are supported on Linux platforms: <a href="http://www.opensound.com/oss.html">OSS</a> (versions &gt;= 4.0), <a href="http://www.alsa-project.org/">ALSA</a>, and <a href="http://jackit.sourceforge.net/">Jack</a>. Note that <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> now only supports the newer version 4.0 OSS API. The ALSA API is now part of the Linux kernel and offers significantly better functionality than the OSS API. <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> provides support for the 1.0 and higher versions of ALSA. Jack is a low-latency audio server written primarily for the GNU/Linux operating system. It can connect a number of different applications to an audio device, as well as allow them to share audio between themselves. Input/output latency on the order of 15 milliseconds can typically be achieved using any of the Linux APIs by fine-tuning the <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> buffer parameters (without kernel modifications). Latencies on the order of 5 milliseconds or less can be achieved using a low-latency kernel patch and increasing FIFO scheduling priority. The pthread library, which is used for callback functionality, is a standard component of all Linux distributions.</p>
+<p>The ALSA library includes OSS emulation support. That means that you can run programs compiled for the OSS API even when using the ALSA drivers and library. It should be noted however that OSS emulation under ALSA is not perfect. Specifically, channel number queries seem to consistently produce invalid results. While OSS emulation is successful for the majority of <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> tests, it is recommended that the native ALSA implementation of <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> be used on systems which have ALSA drivers installed.</p>
+<p>The ALSA implementation of <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> makes no use of the ALSA "plug" interface. All necessary data format conversions, channel compensation, de-interleaving, and byte-swapping is handled by internal <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> routines.</p>
+<p>At the moment, only one <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> instance can be connected to the Jack server.</p>
+<h2><a class="anchor" id="macosx">
 Macintosh OS-X (CoreAudio and Jack):</a></h2>
-The Apple CoreAudio API is designed to use a separate callback procedure for each of its audio devices. A single <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> duplex stream using two different devices is supported, though it cannot be guaranteed to always behave correctly because we cannot synchronize these two callbacks. The <em>numberOfBuffers</em> parameter to the <a class="el" href="classRtAudio.html#facc99740fa4c5606fb35467cdea6da8" title="A public function for opening a stream with the specified parameters.">RtAudio::openStream()</a> function has no affect in this implementation.<p>
-It is not possible to have multiple instances of <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> accessing the same CoreAudio device.<p>
-The <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> Jack support can be compiled on Macintosh OS-X systems, as well as in Linux.<h2><a class="anchor" name="windowsds">
+<p>The Apple CoreAudio API is designed to use a separate callback procedure for each of its audio devices. A single <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> duplex stream using two different devices is supported, though it cannot be guaranteed to always behave correctly because we cannot synchronize these two callbacks. The <em>numberOfBuffers</em> parameter to the <a class="el" href="classRtAudio.html#afacc99740fa4c5606fb35467cdea6da8" title="A public function for opening a stream with the specified parameters.">RtAudio::openStream()</a> function has no affect in this implementation.</p>
+<p>It is not possible to have multiple instances of <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> accessing the same CoreAudio device.</p>
+<p>The <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> Jack support can be compiled on Macintosh OS-X systems, as well as in Linux.</p>
+<h2><a class="anchor" id="windowsds">
 Windows (DirectSound):</a></h2>
-The <code>configure</code> script provides support for the MinGW compiler. DirectSound support is specified with the "--with-ds" flag.<p>
-In order to compile <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> under Windows for the DirectSound API, you must have the header and source files for DirectSound version 5.0 or higher. As far as I know, there is no DirectSoundCapture support for Windows NT. Audio output latency with DirectSound can be reasonably good, especially since <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> version 3.0.2. Input audio latency still tends to be bad but better since version 3.0.2. <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> was originally developed with Visual C++ version 6.0 but has been tested with .NET.<p>
-The DirectSound version of <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> can be compiled with or without the UNICODE preprocessor definition.<h2><a class="anchor" name="windowsasio">
+<p>The <code>configure</code> script provides support for the MinGW compiler. DirectSound support is specified with the "--with-ds" flag.</p>
+<p>In order to compile <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> under Windows for the DirectSound API, you must have the header and source files for DirectSound version 5.0 or higher. As far as I know, there is no DirectSoundCapture support for Windows NT. Audio output latency with DirectSound can be reasonably good, especially since <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> version 3.0.2. Input audio latency still tends to be bad but better since version 3.0.2. <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> was originally developed with Visual C++ version 6.0 but has been tested with .NET.</p>
+<p>The DirectSound version of <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> can be compiled with or without the UNICODE preprocessor definition.</p>
+<h2><a class="anchor" id="windowsasio">
 Windows (ASIO):</a></h2>
-ASIO support using MinGW and the <code>configure</code> script is specified with the "--with-asio" flag.<p>
-The Steinberg ASIO audio API allows only a single device driver to be loaded and accessed at a time. ASIO device drivers must be supplied by audio hardware manufacturers, though ASIO emulation is possible on top of systems with DirectSound drivers. The <em>numberOfBuffers</em> parameter to the <a class="el" href="classRtAudio.html#facc99740fa4c5606fb35467cdea6da8" title="A public function for opening a stream with the specified parameters.">RtAudio::openStream()</a> function has no affect in this implementation.<p>
-A number of ASIO source and header files are required for use with <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a>. Specifically, an <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> project must include the following files: <code>asio.h,cpp; asiodrivers.h,cpp; asiolist.h,cpp; asiodrvr.h; asiosys.h; ginclude.h; iasiodrv.h; iasiothiscallresolver.h,cpp</code>. The Visual C++ projects found in <code>/tests/Windows/</code> compile both ASIO and DirectSound support.<p>
-The Steinberg provided <code>asiolist</code> class does not compile when the preprocessor definition UNICODE is defined. Note that this could be an issue when using <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> with Qt, though Qt programs appear to compile without the UNICODE definition (try <code>DEFINES -= UNICODE</code> in your .pro file). <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> with ASIO support has been tested using the MinGW compiler under Windows XP, as well as in the Visual Studio environment. </div>
+<p>ASIO support using MinGW and the <code>configure</code> script is specified with the "--with-asio" flag.</p>
+<p>The Steinberg ASIO audio API allows only a single device driver to be loaded and accessed at a time. ASIO device drivers must be supplied by audio hardware manufacturers, though ASIO emulation is possible on top of systems with DirectSound drivers. The <em>numberOfBuffers</em> parameter to the <a class="el" href="classRtAudio.html#afacc99740fa4c5606fb35467cdea6da8" title="A public function for opening a stream with the specified parameters.">RtAudio::openStream()</a> function has no affect in this implementation.</p>
+<p>A number of ASIO source and header files are required for use with <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a>. Specifically, an <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> project must include the following files: <code>asio.h,cpp; asiodrivers.h,cpp; asiolist.h,cpp; asiodrvr.h; asiosys.h; ginclude.h; iasiodrv.h; iasiothiscallresolver.h,cpp</code>. The Visual C++ projects found in <code>/tests/Windows/</code> compile both ASIO and DirectSound support.</p>
+<p>The Steinberg provided <code>asiolist</code> class does not compile when the preprocessor definition UNICODE is defined. Note that this could be an issue when using <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> with Qt, though Qt programs appear to compile without the UNICODE definition (try <code>DEFINES -= UNICODE</code> in your .pro file). <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> with ASIO support has been tested using the MinGW compiler under Windows XP, as well as in the Visual Studio environment. </p>
+</div>
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2001-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
 </table>
 
 </BODY>
index 493ff03e8564bb29203663f709f9b4a58b0ad9d6..686bc7a48b456efae171a3406da1b7d9ca6c2381 100644 (file)
@@ -12,7 +12,7 @@
 
 <table border=1 cellpadding=10 cellspacing=0>
 <tr bgcolor="#C7CAFF"><td><b>#</b></td><td><b>Version</b></td><td><b>API</b></td><td><b>Description</b></td><td><b>Status</b></td></b></tr>
-
+<tr><td>1</td><td>4.0.7</td><td>Windows ASIO using gcc4.4 (MinGW)</td><td>Functions to set and query supported sample rates fail</td></tr>
 </table>
 
 <h2>Confirmed Bugs (Unfixed):</h2>
index c7169c070337a340881b1f1d4fd2d9095965bd77..ed75476285d414a0837d578d282c9f13abd2db78 100644 (file)
@@ -8,42 +8,42 @@
 <CENTER>
 <a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
 <HR>
-<!-- Generated by Doxygen 1.5.8 -->
+<!-- Generated by Doxygen 1.6.2 -->
 <div class="contents">
-<h1>RtAudio Member List</h1>This is the complete list of members for <a class="el" href="classRtAudio.html">RtAudio</a>, including all inherited members.<p><table>
-  <tr class="memlist"><td><a class="el" href="classRtAudio.html#d0586b47cd6bb9591a80b4052815991f">abortStream</a>(void)</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d849">Api</a> enum name</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtAudio.html#90d599002ad32cf250a4cb866f2cc93a">closeStream</a>(void)</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtAudio.html#e266ffad2ef428d0b2c6c262d391ce26">getCompiledApi</a>(std::vector&lt; RtAudio::Api &gt; &amp;apis)</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td><code> [static]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtAudio.html#83687634795792b2c47e4ae1cf8a5246">getCurrentApi</a>(void)</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtAudio.html#ad8b94edd3cd379ee300b125750ac6ce">getDefaultInputDevice</a>(void)</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtAudio.html#3a3f3dbe13ea696b521e49cdaaa357bc">getDefaultOutputDevice</a>(void)</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtAudio.html#747ce2d73803641bbb66d6e78092aa1a">getDeviceCount</a>(void)</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtAudio.html#02d7ff44ad1d7eae22283a052f3dfda8">getDeviceInfo</a>(unsigned int device)</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtAudio.html#843c989d9f501c71bc2f2c5ca18df9f3">getStreamLatency</a>(void)</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtAudio.html#28214b8b05d60b45c24ee6fae7b2a0b5">getStreamSampleRate</a>(void)</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtAudio.html#344e59a62353c5791db4621b985cb2ca">getStreamTime</a>(void)</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtAudio.html#3863e45ff81dbe97176de0ee7545917f">isStreamOpen</a>(void) const </td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtAudio.html#84cc8d9b7ab9bc5f37bcf48430ec5aea">isStreamRunning</a>(void) const </td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d849a7a2ba095c2806caa893b6fb8fc3a1a8">LINUX_ALSA</a> enum value</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d84939c84615e61de75e6a4e865596d62c82">LINUX_OSS</a> enum value</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d8499fec92b8272244a87a6a11a717bd662d">MACOSX_CORE</a> enum value</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtAudio.html#facc99740fa4c5606fb35467cdea6da8">openStream</a>(RtAudio::StreamParameters *outputParameters, RtAudio::StreamParameters *inputParameters, RtAudioFormat format, unsigned int sampleRate, unsigned int *bufferFrames, RtAudioCallback callback, void *userData=NULL, RtAudio::StreamOptions *options=NULL)</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtAudio.html#fd0bfa26deae9804e18faff59d0273d9">RtAudio</a>(RtAudio::Api api=UNSPECIFIED)</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d849b06b8fd88bf18c9a2b8271f6961ae2d1">RTAUDIO_DUMMY</a> enum value</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtAudio.html#f0752ee51cce3dd90a3bd009f9fdbe77">showWarnings</a>(bool value=true)</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtAudio.html#ec017a89629ccef66a90b60be22a2f80">startStream</a>(void)</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtAudio.html#f4c241ff86936ecc8108f0d9dfe3efdd">stopStream</a>(void)</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d8494767e17c6edfbd827f91763915df4105">UNIX_JACK</a> enum value</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d849a49af3ac767106158bc6cad74fb214ae">UNSPECIFIED</a> enum value</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d849219517d1df90f94d07758481155bd469">WINDOWS_ASIO</a> enum value</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d84928478830f42c2fd61e6c7ad498901931">WINDOWS_DS</a> enum value</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtAudio.html#a8a9716fd64680657ef69c9465442a2f">~RtAudio</a>()</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td></td></tr>
+<h1>RtAudio Member List</h1>This is the complete list of members for <a class="el" href="classRtAudio.html">RtAudio</a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="classRtAudio.html#ad0586b47cd6bb9591a80b4052815991f">abortStream</a>(void)</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849">Api</a> enum name</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtAudio.html#a90d599002ad32cf250a4cb866f2cc93a">closeStream</a>(void)</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtAudio.html#ae266ffad2ef428d0b2c6c262d391ce26">getCompiledApi</a>(std::vector&lt; RtAudio::Api &gt; &amp;apis)</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td><code> [static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtAudio.html#a83687634795792b2c47e4ae1cf8a5246">getCurrentApi</a>(void)</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtAudio.html#aad8b94edd3cd379ee300b125750ac6ce">getDefaultInputDevice</a>(void)</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtAudio.html#a3a3f3dbe13ea696b521e49cdaaa357bc">getDefaultOutputDevice</a>(void)</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtAudio.html#a747ce2d73803641bbb66d6e78092aa1a">getDeviceCount</a>(void)</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtAudio.html#a02d7ff44ad1d7eae22283a052f3dfda8">getDeviceInfo</a>(unsigned int device)</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtAudio.html#a843c989d9f501c71bc2f2c5ca18df9f3">getStreamLatency</a>(void)</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtAudio.html#a28214b8b05d60b45c24ee6fae7b2a0b5">getStreamSampleRate</a>(void)</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtAudio.html#a344e59a62353c5791db4621b985cb2ca">getStreamTime</a>(void)</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtAudio.html#a3863e45ff81dbe97176de0ee7545917f">isStreamOpen</a>(void) const </td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtAudio.html#a84cc8d9b7ab9bc5f37bcf48430ec5aea">isStreamRunning</a>(void) const </td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849aa7a2ba095c2806caa893b6fb8fc3a1a8">LINUX_ALSA</a> enum value</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a39c84615e61de75e6a4e865596d62c82">LINUX_OSS</a> enum value</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a9fec92b8272244a87a6a11a717bd662d">MACOSX_CORE</a> enum value</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtAudio.html#afacc99740fa4c5606fb35467cdea6da8">openStream</a>(RtAudio::StreamParameters *outputParameters, RtAudio::StreamParameters *inputParameters, RtAudioFormat format, unsigned int sampleRate, unsigned int *bufferFrames, RtAudioCallback callback, void *userData=NULL, RtAudio::StreamOptions *options=NULL)</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtAudio.html#afd0bfa26deae9804e18faff59d0273d9">RtAudio</a>(RtAudio::Api api=UNSPECIFIED)</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849ab06b8fd88bf18c9a2b8271f6961ae2d1">RTAUDIO_DUMMY</a> enum value</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtAudio.html#af0752ee51cce3dd90a3bd009f9fdbe77">showWarnings</a>(bool value=true)</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtAudio.html#aec017a89629ccef66a90b60be22a2f80">startStream</a>(void)</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtAudio.html#af4c241ff86936ecc8108f0d9dfe3efdd">stopStream</a>(void)</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a4767e17c6edfbd827f91763915df4105">UNIX_JACK</a> enum value</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849aa49af3ac767106158bc6cad74fb214ae">UNSPECIFIED</a> enum value</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a219517d1df90f94d07758481155bd469">WINDOWS_ASIO</a> enum value</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a28478830f42c2fd61e6c7ad498901931">WINDOWS_DS</a> enum value</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtAudio.html#aa8a9716fd64680657ef69c9465442a2f">~RtAudio</a>()</td><td><a class="el" href="classRtAudio.html">RtAudio</a></td><td></td></tr>
 </table></div>
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2001-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
 </table>
 
 </BODY>
index f0d62a13ad822d288ba791a4d06ed6f4956bf88d..2038c9155a4122b240fe02a35436ec78e0c6fe8a 100644 (file)
 <CENTER>
 <a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
 <HR>
-<!-- Generated by Doxygen 1.5.8 -->
+<!-- Generated by Doxygen 1.6.2 -->
 <div class="contents">
-<h1>RtAudio Class Reference</h1><!-- doxytag: class="RtAudio" -->Realtime audio i/o C++ classes.  
-<a href="#_details">More...</a>
-<p>
-<code>#include &lt;<a class="el" href="RtAudio_8h-source.html">RtAudio.h</a>&gt;</code>
-<p>
-
-<p>
-<a href="classRtAudio-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
-<tr><td></td></tr>
-<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1DeviceInfo.html">DeviceInfo</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The public device information structure for returning queried values.  <a href="structRtAudio_1_1DeviceInfo.html#_details">More...</a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1StreamOptions.html">StreamOptions</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The structure for specifying stream options.  <a href="structRtAudio_1_1StreamOptions.html#_details">More...</a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1StreamParameters.html">StreamParameters</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The structure for specifying input or ouput stream parameters.  <a href="structRtAudio_1_1StreamParameters.html#_details">More...</a><br></td></tr>
-<tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d849">Api</a> { <br>
-&nbsp;&nbsp;<a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d849a49af3ac767106158bc6cad74fb214ae">UNSPECIFIED</a>, 
-<a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d849a7a2ba095c2806caa893b6fb8fc3a1a8">LINUX_ALSA</a>, 
-<a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d84939c84615e61de75e6a4e865596d62c82">LINUX_OSS</a>, 
-<a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d8494767e17c6edfbd827f91763915df4105">UNIX_JACK</a>, 
-<br>
-&nbsp;&nbsp;<a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d8499fec92b8272244a87a6a11a717bd662d">MACOSX_CORE</a>, 
-<a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d849219517d1df90f94d07758481155bd469">WINDOWS_ASIO</a>, 
-<a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d84928478830f42c2fd61e6c7ad498901931">WINDOWS_DS</a>, 
-<a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d849b06b8fd88bf18c9a2b8271f6961ae2d1">RTAUDIO_DUMMY</a>
-<br>
+<h1>RtAudio Class Reference</h1><!-- doxytag: class="RtAudio" -->
+<p>Realtime audio i/o C++ classes.  
+<a href="#_details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="RtAudio_8h_source.html">RtAudio.h</a>&gt;</code></p>
+
+<p><a href="classRtAudio-members.html">List of all members.</a></p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1DeviceInfo.html">DeviceInfo</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The public device information structure for returning queried values.  <a href="structRtAudio_1_1DeviceInfo.html#_details">More...</a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1StreamOptions.html">StreamOptions</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The structure for specifying stream options.  <a href="structRtAudio_1_1StreamOptions.html#_details">More...</a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1StreamParameters.html">StreamParameters</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The structure for specifying input or ouput stream parameters.  <a href="structRtAudio_1_1StreamParameters.html#_details">More...</a><br/></td></tr>
+<tr><td colspan="2"><h2>Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849">Api</a> { <br/>
+&nbsp;&nbsp;<a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849aa49af3ac767106158bc6cad74fb214ae">UNSPECIFIED</a>, 
+<a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849aa7a2ba095c2806caa893b6fb8fc3a1a8">LINUX_ALSA</a>, 
+<a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a39c84615e61de75e6a4e865596d62c82">LINUX_OSS</a>, 
+<a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a4767e17c6edfbd827f91763915df4105">UNIX_JACK</a>, 
+<br/>
+&nbsp;&nbsp;<a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a9fec92b8272244a87a6a11a717bd662d">MACOSX_CORE</a>, 
+<a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a219517d1df90f94d07758481155bd469">WINDOWS_ASIO</a>, 
+<a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a28478830f42c2fd61e6c7ad498901931">WINDOWS_DS</a>, 
+<a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849ab06b8fd88bf18c9a2b8271f6961ae2d1">RTAUDIO_DUMMY</a>
+<br/>
  }</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Audio API specifier arguments.  <a href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d849">More...</a><br></td></tr>
-<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#fd0bfa26deae9804e18faff59d0273d9">RtAudio</a> (<a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d849">RtAudio::Api</a> api=UNSPECIFIED)  throw ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The class constructor.  <a href="#fd0bfa26deae9804e18faff59d0273d9"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#a8a9716fd64680657ef69c9465442a2f">~RtAudio</a> ()  throw ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The destructor.  <a href="#a8a9716fd64680657ef69c9465442a2f"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="83687634795792b2c47e4ae1cf8a5246"></a><!-- doxytag: member="RtAudio::getCurrentApi" ref="83687634795792b2c47e4ae1cf8a5246" args="(void)" -->
-<a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d849">RtAudio::Api</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#83687634795792b2c47e4ae1cf8a5246">getCurrentApi</a> (void)  throw ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the audio API specifier for the current instance of <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a>. <br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#747ce2d73803641bbb66d6e78092aa1a">getDeviceCount</a> (void)  throw ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A public function that queries for the number of audio devices available.  <a href="#747ce2d73803641bbb66d6e78092aa1a"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structRtAudio_1_1DeviceInfo.html">RtAudio::DeviceInfo</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#02d7ff44ad1d7eae22283a052f3dfda8">getDeviceInfo</a> (unsigned int device)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return an <a class="el" href="structRtAudio_1_1DeviceInfo.html" title="The public device information structure for returning queried values.">RtAudio::DeviceInfo</a> structure for a specified device number.  <a href="#02d7ff44ad1d7eae22283a052f3dfda8"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#3a3f3dbe13ea696b521e49cdaaa357bc">getDefaultOutputDevice</a> (void)  throw ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A function that returns the index of the default output device.  <a href="#3a3f3dbe13ea696b521e49cdaaa357bc"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#ad8b94edd3cd379ee300b125750ac6ce">getDefaultInputDevice</a> (void)  throw ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A function that returns the index of the default input device.  <a href="#ad8b94edd3cd379ee300b125750ac6ce"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#facc99740fa4c5606fb35467cdea6da8">openStream</a> (<a class="el" href="structRtAudio_1_1StreamParameters.html">RtAudio::StreamParameters</a> *outputParameters, <a class="el" href="structRtAudio_1_1StreamParameters.html">RtAudio::StreamParameters</a> *inputParameters, <a class="el" href="RtAudio_8h.html#afca92882d25915560018873221e44b8">RtAudioFormat</a> format, unsigned int sampleRate, unsigned int *bufferFrames, <a class="el" href="RtAudio_8h.html#112c7b7e25a974977f6fc094cef1a31f">RtAudioCallback</a> callback, void *userData=NULL, <a class="el" href="structRtAudio_1_1StreamOptions.html">RtAudio::StreamOptions</a> *options=NULL)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A public function for opening a stream with the specified parameters.  <a href="#facc99740fa4c5606fb35467cdea6da8"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#90d599002ad32cf250a4cb866f2cc93a">closeStream</a> (void)  throw ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A function that closes a stream and frees any associated stream memory.  <a href="#90d599002ad32cf250a4cb866f2cc93a"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#ec017a89629ccef66a90b60be22a2f80">startStream</a> (void)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A function that starts a stream.  <a href="#ec017a89629ccef66a90b60be22a2f80"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#f4c241ff86936ecc8108f0d9dfe3efdd">stopStream</a> (void)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Stop a stream, allowing any samples remaining in the output queue to be played.  <a href="#f4c241ff86936ecc8108f0d9dfe3efdd"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#d0586b47cd6bb9591a80b4052815991f">abortStream</a> (void)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Stop a stream, discarding any samples remaining in the input/output queue.  <a href="#d0586b47cd6bb9591a80b4052815991f"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3863e45ff81dbe97176de0ee7545917f"></a><!-- doxytag: member="RtAudio::isStreamOpen" ref="3863e45ff81dbe97176de0ee7545917f" args="(void) const " -->
-bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#3863e45ff81dbe97176de0ee7545917f">isStreamOpen</a> (void) const   throw ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if a stream is open and false if not. <br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="84cc8d9b7ab9bc5f37bcf48430ec5aea"></a><!-- doxytag: member="RtAudio::isStreamRunning" ref="84cc8d9b7ab9bc5f37bcf48430ec5aea" args="(void) const " -->
-bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#84cc8d9b7ab9bc5f37bcf48430ec5aea">isStreamRunning</a> (void) const   throw ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the stream is running and false if it is stopped or not open. <br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#344e59a62353c5791db4621b985cb2ca">getStreamTime</a> (void)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of elapsed seconds since the stream was started.  <a href="#344e59a62353c5791db4621b985cb2ca"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#843c989d9f501c71bc2f2c5ca18df9f3">getStreamLatency</a> (void)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the internal stream latency in sample frames.  <a href="#843c989d9f501c71bc2f2c5ca18df9f3"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#28214b8b05d60b45c24ee6fae7b2a0b5">getStreamSampleRate</a> (void)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns actual sample rate in use by the stream.  <a href="#28214b8b05d60b45c24ee6fae7b2a0b5"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f0752ee51cce3dd90a3bd009f9fdbe77"></a><!-- doxytag: member="RtAudio::showWarnings" ref="f0752ee51cce3dd90a3bd009f9fdbe77" args="(bool value=true)" -->
-void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#f0752ee51cce3dd90a3bd009f9fdbe77">showWarnings</a> (bool value=true)  throw ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specify whether warning messages should be printed to stderr. <br></td></tr>
-<tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#e266ffad2ef428d0b2c6c262d391ce26">getCompiledApi</a> (std::vector&lt; <a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d849">RtAudio::Api</a> &gt; &amp;apis)  throw ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A static function to determine the available compiled audio APIs.  <a href="#e266ffad2ef428d0b2c6c262d391ce26"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Audio API specifier arguments. </p>
+ <a href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849">More...</a><br/></td></tr>
+<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#afd0bfa26deae9804e18faff59d0273d9">RtAudio</a> (<a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849">RtAudio::Api</a> api=UNSPECIFIED)  throw ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The class constructor.  <a href="#afd0bfa26deae9804e18faff59d0273d9"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#aa8a9716fd64680657ef69c9465442a2f">~RtAudio</a> ()  throw ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The destructor.  <a href="#aa8a9716fd64680657ef69c9465442a2f"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a83687634795792b2c47e4ae1cf8a5246"></a><!-- doxytag: member="RtAudio::getCurrentApi" ref="a83687634795792b2c47e4ae1cf8a5246" args="(void)" -->
+<a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849">RtAudio::Api</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#a83687634795792b2c47e4ae1cf8a5246">getCurrentApi</a> (void)  throw ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the audio API specifier for the current instance of <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a>. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#a747ce2d73803641bbb66d6e78092aa1a">getDeviceCount</a> (void)  throw ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A public function that queries for the number of audio devices available.  <a href="#a747ce2d73803641bbb66d6e78092aa1a"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structRtAudio_1_1DeviceInfo.html">RtAudio::DeviceInfo</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#a02d7ff44ad1d7eae22283a052f3dfda8">getDeviceInfo</a> (unsigned int device)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return an <a class="el" href="structRtAudio_1_1DeviceInfo.html" title="The public device information structure for returning queried values.">RtAudio::DeviceInfo</a> structure for a specified device number.  <a href="#a02d7ff44ad1d7eae22283a052f3dfda8"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#a3a3f3dbe13ea696b521e49cdaaa357bc">getDefaultOutputDevice</a> (void)  throw ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A function that returns the index of the default output device.  <a href="#a3a3f3dbe13ea696b521e49cdaaa357bc"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#aad8b94edd3cd379ee300b125750ac6ce">getDefaultInputDevice</a> (void)  throw ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A function that returns the index of the default input device.  <a href="#aad8b94edd3cd379ee300b125750ac6ce"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#afacc99740fa4c5606fb35467cdea6da8">openStream</a> (<a class="el" href="structRtAudio_1_1StreamParameters.html">RtAudio::StreamParameters</a> *outputParameters, <a class="el" href="structRtAudio_1_1StreamParameters.html">RtAudio::StreamParameters</a> *inputParameters, <a class="el" href="RtAudio_8h.html#aafca92882d25915560018873221e44b8">RtAudioFormat</a> format, unsigned int sampleRate, unsigned int *bufferFrames, <a class="el" href="RtAudio_8h.html#a112c7b7e25a974977f6fc094cef1a31f">RtAudioCallback</a> callback, void *userData=NULL, <a class="el" href="structRtAudio_1_1StreamOptions.html">RtAudio::StreamOptions</a> *options=NULL)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A public function for opening a stream with the specified parameters.  <a href="#afacc99740fa4c5606fb35467cdea6da8"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#a90d599002ad32cf250a4cb866f2cc93a">closeStream</a> (void)  throw ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A function that closes a stream and frees any associated stream memory.  <a href="#a90d599002ad32cf250a4cb866f2cc93a"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#aec017a89629ccef66a90b60be22a2f80">startStream</a> (void)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A function that starts a stream.  <a href="#aec017a89629ccef66a90b60be22a2f80"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#af4c241ff86936ecc8108f0d9dfe3efdd">stopStream</a> (void)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Stop a stream, allowing any samples remaining in the output queue to be played.  <a href="#af4c241ff86936ecc8108f0d9dfe3efdd"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#ad0586b47cd6bb9591a80b4052815991f">abortStream</a> (void)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Stop a stream, discarding any samples remaining in the input/output queue.  <a href="#ad0586b47cd6bb9591a80b4052815991f"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3863e45ff81dbe97176de0ee7545917f"></a><!-- doxytag: member="RtAudio::isStreamOpen" ref="a3863e45ff81dbe97176de0ee7545917f" args="(void) const " -->
+bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#a3863e45ff81dbe97176de0ee7545917f">isStreamOpen</a> (void) const   throw ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if a stream is open and false if not. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a84cc8d9b7ab9bc5f37bcf48430ec5aea"></a><!-- doxytag: member="RtAudio::isStreamRunning" ref="a84cc8d9b7ab9bc5f37bcf48430ec5aea" args="(void) const " -->
+bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#a84cc8d9b7ab9bc5f37bcf48430ec5aea">isStreamRunning</a> (void) const   throw ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the stream is running and false if it is stopped or not open. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#a344e59a62353c5791db4621b985cb2ca">getStreamTime</a> (void)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of elapsed seconds since the stream was started.  <a href="#a344e59a62353c5791db4621b985cb2ca"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#a843c989d9f501c71bc2f2c5ca18df9f3">getStreamLatency</a> (void)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the internal stream latency in sample frames.  <a href="#a843c989d9f501c71bc2f2c5ca18df9f3"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#a28214b8b05d60b45c24ee6fae7b2a0b5">getStreamSampleRate</a> (void)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns actual sample rate in use by the stream.  <a href="#a28214b8b05d60b45c24ee6fae7b2a0b5"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af0752ee51cce3dd90a3bd009f9fdbe77"></a><!-- doxytag: member="RtAudio::showWarnings" ref="af0752ee51cce3dd90a3bd009f9fdbe77" args="(bool value=true)" -->
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#af0752ee51cce3dd90a3bd009f9fdbe77">showWarnings</a> (bool value=true)  throw ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specify whether warning messages should be printed to stderr. <br/></td></tr>
+<tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html#ae266ffad2ef428d0b2c6c262d391ce26">getCompiledApi</a> (std::vector&lt; <a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849">RtAudio::Api</a> &gt; &amp;apis)  throw ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A static function to determine the available compiled audio APIs.  <a href="#ae266ffad2ef428d0b2c6c262d391ce26"></a><br/></td></tr>
 </table>
-<hr><a name="_details"></a><h2>Detailed Description</h2>
-Realtime audio i/o C++ classes. 
-<p>
-<a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> provides a common API (Application Programming Interface) for realtime audio input/output across Linux (native ALSA, Jack, and OSS), Macintosh OS X (CoreAudio and Jack), and Windows (DirectSound and ASIO) operating systems.<p>
-<a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> WWW site: <a href="http://www.music.mcgill.ca/~gary/rtaudio/">http://www.music.mcgill.ca/~gary/rtaudio/</a><p>
-<a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a>: realtime audio i/o C++ classes Copyright (c) 2001-2009 Gary P. Scavone<p>
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:<p>
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.<p>
-Any person wishing to distribute modifications to the Software is asked to send the modifications to the original developer so that they can be incorporated into the canonical version. This is, however, not a binding provision of this license.<p>
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. <hr><h2>Member Enumeration Documentation</h2>
-<a class="anchor" name="c9b6f625da88249d08a8409a9db0d849"></a><!-- doxytag: member="RtAudio::Api" ref="c9b6f625da88249d08a8409a9db0d849" args="" -->
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>Realtime audio i/o C++ classes. </p>
+<p><a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> provides a common API (Application Programming Interface) for realtime audio input/output across Linux (native ALSA, Jack, and OSS), Macintosh OS X (CoreAudio and Jack), and Windows (DirectSound and ASIO) operating systems.</p>
+<p><a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> WWW site: <a href="http://www.music.mcgill.ca/~gary/rtaudio/">http://www.music.mcgill.ca/~gary/rtaudio/</a></p>
+<p><a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a>: realtime audio i/o C++ classes Copyright (c) 2001-2010 Gary P. Scavone</p>
+<p>Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
+<p>Any person wishing to distribute modifications to the Software is asked to send the modifications to the original developer so that they can be incorporated into the canonical version. This is, however, not a binding provision of this license.</p>
+<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. </p>
+<hr/><h2>Member Enumeration Documentation</h2>
+<a class="anchor" id="ac9b6f625da88249d08a8409a9db0d849"></a><!-- doxytag: member="RtAudio::Api" ref="ac9b6f625da88249d08a8409a9db0d849" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">enum <a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d849">RtAudio::Api</a>          </td>
+          <td class="memname">enum <a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849">RtAudio::Api</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>
-Audio API specifier arguments. 
-<p>
-<dl compact><dt><b>Enumerator: </b></dt><dd>
-<table border="0" cellspacing="2" cellpadding="0">
-<tr><td valign="top"><em><a class="anchor" name="c9b6f625da88249d08a8409a9db0d849a49af3ac767106158bc6cad74fb214ae"></a><!-- doxytag: member="UNSPECIFIED" ref="c9b6f625da88249d08a8409a9db0d849a49af3ac767106158bc6cad74fb214ae" args="" -->UNSPECIFIED</em>&nbsp;</td><td>
-Search for a working compiled API. </td></tr>
-<tr><td valign="top"><em><a class="anchor" name="c9b6f625da88249d08a8409a9db0d849a7a2ba095c2806caa893b6fb8fc3a1a8"></a><!-- doxytag: member="LINUX_ALSA" ref="c9b6f625da88249d08a8409a9db0d849a7a2ba095c2806caa893b6fb8fc3a1a8" args="" -->LINUX_ALSA</em>&nbsp;</td><td>
-The Advanced Linux Sound Architecture API. </td></tr>
-<tr><td valign="top"><em><a class="anchor" name="c9b6f625da88249d08a8409a9db0d84939c84615e61de75e6a4e865596d62c82"></a><!-- doxytag: member="LINUX_OSS" ref="c9b6f625da88249d08a8409a9db0d84939c84615e61de75e6a4e865596d62c82" args="" -->LINUX_OSS</em>&nbsp;</td><td>
-The Linux Open Sound System API. </td></tr>
-<tr><td valign="top"><em><a class="anchor" name="c9b6f625da88249d08a8409a9db0d8494767e17c6edfbd827f91763915df4105"></a><!-- doxytag: member="UNIX_JACK" ref="c9b6f625da88249d08a8409a9db0d8494767e17c6edfbd827f91763915df4105" args="" -->UNIX_JACK</em>&nbsp;</td><td>
-The Jack Low-Latency Audio Server API. </td></tr>
-<tr><td valign="top"><em><a class="anchor" name="c9b6f625da88249d08a8409a9db0d8499fec92b8272244a87a6a11a717bd662d"></a><!-- doxytag: member="MACOSX_CORE" ref="c9b6f625da88249d08a8409a9db0d8499fec92b8272244a87a6a11a717bd662d" args="" -->MACOSX_CORE</em>&nbsp;</td><td>
-Macintosh OS-X Core Audio API. </td></tr>
-<tr><td valign="top"><em><a class="anchor" name="c9b6f625da88249d08a8409a9db0d849219517d1df90f94d07758481155bd469"></a><!-- doxytag: member="WINDOWS_ASIO" ref="c9b6f625da88249d08a8409a9db0d849219517d1df90f94d07758481155bd469" args="" -->WINDOWS_ASIO</em>&nbsp;</td><td>
-The Steinberg Audio Stream I/O API. </td></tr>
-<tr><td valign="top"><em><a class="anchor" name="c9b6f625da88249d08a8409a9db0d84928478830f42c2fd61e6c7ad498901931"></a><!-- doxytag: member="WINDOWS_DS" ref="c9b6f625da88249d08a8409a9db0d84928478830f42c2fd61e6c7ad498901931" args="" -->WINDOWS_DS</em>&nbsp;</td><td>
-The Microsoft Direct Sound API. </td></tr>
-<tr><td valign="top"><em><a class="anchor" name="c9b6f625da88249d08a8409a9db0d849b06b8fd88bf18c9a2b8271f6961ae2d1"></a><!-- doxytag: member="RTAUDIO_DUMMY" ref="c9b6f625da88249d08a8409a9db0d849b06b8fd88bf18c9a2b8271f6961ae2d1" args="" -->RTAUDIO_DUMMY</em>&nbsp;</td><td>
-A compilable but non-functional API. </td></tr>
+<p>Audio API specifier arguments. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ac9b6f625da88249d08a8409a9db0d849aa49af3ac767106158bc6cad74fb214ae"></a><!-- doxytag: member="UNSPECIFIED" ref="ac9b6f625da88249d08a8409a9db0d849aa49af3ac767106158bc6cad74fb214ae" args="" -->UNSPECIFIED</em>&nbsp;</td><td>
+<p>Search for a working compiled API. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ac9b6f625da88249d08a8409a9db0d849aa7a2ba095c2806caa893b6fb8fc3a1a8"></a><!-- doxytag: member="LINUX_ALSA" ref="ac9b6f625da88249d08a8409a9db0d849aa7a2ba095c2806caa893b6fb8fc3a1a8" args="" -->LINUX_ALSA</em>&nbsp;</td><td>
+<p>The Advanced Linux Sound Architecture API. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ac9b6f625da88249d08a8409a9db0d849a39c84615e61de75e6a4e865596d62c82"></a><!-- doxytag: member="LINUX_OSS" ref="ac9b6f625da88249d08a8409a9db0d849a39c84615e61de75e6a4e865596d62c82" args="" -->LINUX_OSS</em>&nbsp;</td><td>
+<p>The Linux Open Sound System API. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ac9b6f625da88249d08a8409a9db0d849a4767e17c6edfbd827f91763915df4105"></a><!-- doxytag: member="UNIX_JACK" ref="ac9b6f625da88249d08a8409a9db0d849a4767e17c6edfbd827f91763915df4105" args="" -->UNIX_JACK</em>&nbsp;</td><td>
+<p>The Jack Low-Latency Audio Server API. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ac9b6f625da88249d08a8409a9db0d849a9fec92b8272244a87a6a11a717bd662d"></a><!-- doxytag: member="MACOSX_CORE" ref="ac9b6f625da88249d08a8409a9db0d849a9fec92b8272244a87a6a11a717bd662d" args="" -->MACOSX_CORE</em>&nbsp;</td><td>
+<p>Macintosh OS-X Core Audio API. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ac9b6f625da88249d08a8409a9db0d849a219517d1df90f94d07758481155bd469"></a><!-- doxytag: member="WINDOWS_ASIO" ref="ac9b6f625da88249d08a8409a9db0d849a219517d1df90f94d07758481155bd469" args="" -->WINDOWS_ASIO</em>&nbsp;</td><td>
+<p>The Steinberg Audio Stream I/O API. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ac9b6f625da88249d08a8409a9db0d849a28478830f42c2fd61e6c7ad498901931"></a><!-- doxytag: member="WINDOWS_DS" ref="ac9b6f625da88249d08a8409a9db0d849a28478830f42c2fd61e6c7ad498901931" args="" -->WINDOWS_DS</em>&nbsp;</td><td>
+<p>The Microsoft Direct Sound API. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ac9b6f625da88249d08a8409a9db0d849ab06b8fd88bf18c9a2b8271f6961ae2d1"></a><!-- doxytag: member="RTAUDIO_DUMMY" ref="ac9b6f625da88249d08a8409a9db0d849ab06b8fd88bf18c9a2b8271f6961ae2d1" args="" -->RTAUDIO_DUMMY</em>&nbsp;</td><td>
+<p>A compilable but non-functional API. </p>
+</td></tr>
 </table>
+</dd>
 </dl>
 
 </div>
-</div><p>
-<hr><h2>Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" name="fd0bfa26deae9804e18faff59d0273d9"></a><!-- doxytag: member="RtAudio::RtAudio" ref="fd0bfa26deae9804e18faff59d0273d9" args="(RtAudio::Api api=UNSPECIFIED)" -->
+</div>
+<hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="afd0bfa26deae9804e18faff59d0273d9"></a><!-- doxytag: member="RtAudio::RtAudio" ref="afd0bfa26deae9804e18faff59d0273d9" args="(RtAudio::Api api=UNSPECIFIED)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">RtAudio::RtAudio           </td>
+          <td class="memname">RtAudio::RtAudio </td>
           <td>(</td>
-          <td class="paramtype"><a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d849">RtAudio::Api</a>&nbsp;</td>
-          <td class="paramname"> <em>api</em> = <code>UNSPECIFIED</code>          </td>
+          <td class="paramtype"><a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849">RtAudio::Api</a>&nbsp;</td>
+          <td class="paramname"> <em>api</em> = <code>UNSPECIFIED</code></td>
           <td>&nbsp;)&nbsp;</td>
           <td>  throw ()</td>
         </tr>
@@ -172,21 +155,20 @@ A compilable but non-functional API. </td></tr>
 </div>
 <div class="memdoc">
 
-<p>
-The class constructor. 
-<p>
-The constructor performs minor initialization tasks. No exceptions can be thrown.<p>
-If no API argument is specified and multiple API support has been compiled, the default order of use is JACK, ALSA, OSS (Linux systems) and ASIO, DS (Windows systems). 
+<p>The class constructor. </p>
+<p>The constructor performs minor initialization tasks. No exceptions can be thrown.</p>
+<p>If no API argument is specified and multiple API support has been compiled, the default order of use is JACK, ALSA, OSS (Linux systems) and ASIO, DS (Windows systems). </p>
+
 </div>
-</div><p>
-<a class="anchor" name="a8a9716fd64680657ef69c9465442a2f"></a><!-- doxytag: member="RtAudio::~RtAudio" ref="a8a9716fd64680657ef69c9465442a2f" args="()" -->
+</div>
+<a class="anchor" id="aa8a9716fd64680657ef69c9465442a2f"></a><!-- doxytag: member="RtAudio::~RtAudio" ref="aa8a9716fd64680657ef69c9465442a2f" args="()" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">RtAudio::~RtAudio           </td>
+          <td class="memname">RtAudio::~RtAudio </td>
           <td>(</td>
-          <td class="paramname">          </td>
+          <td class="paramname"></td>
           <td>&nbsp;)&nbsp;</td>
           <td>  throw ()</td>
         </tr>
@@ -194,22 +176,21 @@ If no API argument is specified and multiple API support has been compiled, the
 </div>
 <div class="memdoc">
 
-<p>
-The destructor. 
-<p>
-If a stream is running or open, it will be stopped and closed automatically. 
+<p>The destructor. </p>
+<p>If a stream is running or open, it will be stopped and closed automatically. </p>
+
+</div>
 </div>
-</div><p>
-<hr><h2>Member Function Documentation</h2>
-<a class="anchor" name="e266ffad2ef428d0b2c6c262d391ce26"></a><!-- doxytag: member="RtAudio::getCompiledApi" ref="e266ffad2ef428d0b2c6c262d391ce26" args="(std::vector&lt; RtAudio::Api &gt; &amp;apis)" -->
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="ae266ffad2ef428d0b2c6c262d391ce26"></a><!-- doxytag: member="RtAudio::getCompiledApi" ref="ae266ffad2ef428d0b2c6c262d391ce26" args="(std::vector&lt; RtAudio::Api &gt; &amp;apis)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">static void RtAudio::getCompiledApi           </td>
+          <td class="memname">static void RtAudio::getCompiledApi </td>
           <td>(</td>
-          <td class="paramtype">std::vector&lt; <a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d849">RtAudio::Api</a> &gt; &amp;&nbsp;</td>
-          <td class="paramname"> <em>apis</em>          </td>
+          <td class="paramtype">std::vector&lt; <a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849">RtAudio::Api</a> &gt; &amp;&nbsp;</td>
+          <td class="paramname"> <em>apis</em></td>
           <td>&nbsp;)&nbsp;</td>
           <td>  throw ()<code> [static]</code></td>
         </tr>
@@ -217,21 +198,20 @@ If a stream is running or open, it will be stopped and closed automatically.
 </div>
 <div class="memdoc">
 
-<p>
-A static function to determine the available compiled audio APIs. 
-<p>
-The values returned in the std::vector can be compared against the enumerated list values. Note that there can be more than one API compiled for certain operating systems. 
+<p>A static function to determine the available compiled audio APIs. </p>
+<p>The values returned in the std::vector can be compared against the enumerated list values. Note that there can be more than one API compiled for certain operating systems. </p>
+
+</div>
 </div>
-</div><p>
-<a class="anchor" name="747ce2d73803641bbb66d6e78092aa1a"></a><!-- doxytag: member="RtAudio::getDeviceCount" ref="747ce2d73803641bbb66d6e78092aa1a" args="(void)" -->
+<a class="anchor" id="a747ce2d73803641bbb66d6e78092aa1a"></a><!-- doxytag: member="RtAudio::getDeviceCount" ref="a747ce2d73803641bbb66d6e78092aa1a" args="(void)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">unsigned int RtAudio::getDeviceCount           </td>
+          <td class="memname">unsigned int RtAudio::getDeviceCount </td>
           <td>(</td>
           <td class="paramtype">void&nbsp;</td>
-          <td class="paramname">          </td>
+          <td class="paramname"></td>
           <td>&nbsp;)&nbsp;</td>
           <td>  throw ()<code> [inline]</code></td>
         </tr>
@@ -239,21 +219,20 @@ The values returned in the std::vector can be compared against the enumerated li
 </div>
 <div class="memdoc">
 
-<p>
-A public function that queries for the number of audio devices available. 
-<p>
-This function performs a system query of available devices each time it is called, thus supporting devices connected <em>after</em> instantiation. If a system error occurs during processing, a warning will be issued. 
+<p>A public function that queries for the number of audio devices available. </p>
+<p>This function performs a system query of available devices each time it is called, thus supporting devices connected <em>after</em> instantiation. If a system error occurs during processing, a warning will be issued. </p>
+
+</div>
 </div>
-</div><p>
-<a class="anchor" name="02d7ff44ad1d7eae22283a052f3dfda8"></a><!-- doxytag: member="RtAudio::getDeviceInfo" ref="02d7ff44ad1d7eae22283a052f3dfda8" args="(unsigned int device)" -->
+<a class="anchor" id="a02d7ff44ad1d7eae22283a052f3dfda8"></a><!-- doxytag: member="RtAudio::getDeviceInfo" ref="a02d7ff44ad1d7eae22283a052f3dfda8" args="(unsigned int device)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="structRtAudio_1_1DeviceInfo.html">RtAudio::DeviceInfo</a> RtAudio::getDeviceInfo           </td>
+          <td class="memname"><a class="el" href="structRtAudio_1_1DeviceInfo.html">RtAudio::DeviceInfo</a> RtAudio::getDeviceInfo </td>
           <td>(</td>
           <td class="paramtype">unsigned int&nbsp;</td>
-          <td class="paramname"> <em>device</em>          </td>
+          <td class="paramname"> <em>device</em></td>
           <td>&nbsp;)&nbsp;</td>
           <td><code> [inline]</code></td>
         </tr>
@@ -261,21 +240,20 @@ This function performs a system query of available devices each time it is calle
 </div>
 <div class="memdoc">
 
-<p>
-Return an <a class="el" href="structRtAudio_1_1DeviceInfo.html" title="The public device information structure for returning queried values.">RtAudio::DeviceInfo</a> structure for a specified device number. 
-<p>
-Any device integer between 0 and <a class="el" href="classRtAudio.html#747ce2d73803641bbb66d6e78092aa1a" title="A public function that queries for the number of audio devices available.">getDeviceCount()</a> - 1 is valid. If an invalid argument is provided, an <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> (type = INVALID_USE) will be thrown. If a device is busy or otherwise unavailable, the structure member "probed" will have a value of "false" and all other members are undefined. If the specified device is the current default input or output device, the corresponding "isDefault" member will have a value of "true". 
+<p>Return an <a class="el" href="structRtAudio_1_1DeviceInfo.html" title="The public device information structure for returning queried values.">RtAudio::DeviceInfo</a> structure for a specified device number. </p>
+<p>Any device integer between 0 and <a class="el" href="classRtAudio.html#a747ce2d73803641bbb66d6e78092aa1a" title="A public function that queries for the number of audio devices available.">getDeviceCount()</a> - 1 is valid. If an invalid argument is provided, an <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> (type = INVALID_USE) will be thrown. If a device is busy or otherwise unavailable, the structure member "probed" will have a value of "false" and all other members are undefined. If the specified device is the current default input or output device, the corresponding "isDefault" member will have a value of "true". </p>
+
+</div>
 </div>
-</div><p>
-<a class="anchor" name="3a3f3dbe13ea696b521e49cdaaa357bc"></a><!-- doxytag: member="RtAudio::getDefaultOutputDevice" ref="3a3f3dbe13ea696b521e49cdaaa357bc" args="(void)" -->
+<a class="anchor" id="a3a3f3dbe13ea696b521e49cdaaa357bc"></a><!-- doxytag: member="RtAudio::getDefaultOutputDevice" ref="a3a3f3dbe13ea696b521e49cdaaa357bc" args="(void)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">unsigned int RtAudio::getDefaultOutputDevice           </td>
+          <td class="memname">unsigned int RtAudio::getDefaultOutputDevice </td>
           <td>(</td>
           <td class="paramtype">void&nbsp;</td>
-          <td class="paramname">          </td>
+          <td class="paramname"></td>
           <td>&nbsp;)&nbsp;</td>
           <td>  throw ()<code> [inline]</code></td>
         </tr>
@@ -283,21 +261,21 @@ Any device integer between 0 and <a class="el" href="classRtAudio.html#747ce2d73
 </div>
 <div class="memdoc">
 
-<p>
-A function that returns the index of the default output device. 
-<p>
-If the underlying audio API does not provide a "default device", or if no devices are available, the return value will be 0. Note that this is a valid device identifier and it is the client's responsibility to verify that a device is available before attempting to open a stream. 
+<p>A function that returns the index of the default output device. </p>
+<p>If the underlying audio API does not provide a "default
+    device", or if no devices are available, the return value will be 0. Note that this is a valid device identifier and it is the client's responsibility to verify that a device is available before attempting to open a stream. </p>
+
 </div>
-</div><p>
-<a class="anchor" name="ad8b94edd3cd379ee300b125750ac6ce"></a><!-- doxytag: member="RtAudio::getDefaultInputDevice" ref="ad8b94edd3cd379ee300b125750ac6ce" args="(void)" -->
+</div>
+<a class="anchor" id="aad8b94edd3cd379ee300b125750ac6ce"></a><!-- doxytag: member="RtAudio::getDefaultInputDevice" ref="aad8b94edd3cd379ee300b125750ac6ce" args="(void)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">unsigned int RtAudio::getDefaultInputDevice           </td>
+          <td class="memname">unsigned int RtAudio::getDefaultInputDevice </td>
           <td>(</td>
           <td class="paramtype">void&nbsp;</td>
-          <td class="paramname">          </td>
+          <td class="paramname"></td>
           <td>&nbsp;)&nbsp;</td>
           <td>  throw ()<code> [inline]</code></td>
         </tr>
@@ -305,18 +283,18 @@ If the underlying audio API does not provide a "default device", or if no device
 </div>
 <div class="memdoc">
 
-<p>
-A function that returns the index of the default input device. 
-<p>
-If the underlying audio API does not provide a "default device", or if no devices are available, the return value will be 0. Note that this is a valid device identifier and it is the client's responsibility to verify that a device is available before attempting to open a stream. 
+<p>A function that returns the index of the default input device. </p>
+<p>If the underlying audio API does not provide a "default
+    device", or if no devices are available, the return value will be 0. Note that this is a valid device identifier and it is the client's responsibility to verify that a device is available before attempting to open a stream. </p>
+
+</div>
 </div>
-</div><p>
-<a class="anchor" name="facc99740fa4c5606fb35467cdea6da8"></a><!-- doxytag: member="RtAudio::openStream" ref="facc99740fa4c5606fb35467cdea6da8" args="(RtAudio::StreamParameters *outputParameters, RtAudio::StreamParameters *inputParameters, RtAudioFormat format, unsigned int sampleRate, unsigned int *bufferFrames, RtAudioCallback callback, void *userData=NULL, RtAudio::StreamOptions *options=NULL)" -->
+<a class="anchor" id="afacc99740fa4c5606fb35467cdea6da8"></a><!-- doxytag: member="RtAudio::openStream" ref="afacc99740fa4c5606fb35467cdea6da8" args="(RtAudio::StreamParameters *outputParameters, RtAudio::StreamParameters *inputParameters, RtAudioFormat format, unsigned int sampleRate, unsigned int *bufferFrames, RtAudioCallback callback, void *userData=NULL, RtAudio::StreamOptions *options=NULL)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">void RtAudio::openStream           </td>
+          <td class="memname">void RtAudio::openStream </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="structRtAudio_1_1StreamParameters.html">RtAudio::StreamParameters</a> *&nbsp;</td>
           <td class="paramname"> <em>outputParameters</em>, </td>
@@ -330,7 +308,7 @@ If the underlying audio API does not provide a "default device", or if no device
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="RtAudio_8h.html#afca92882d25915560018873221e44b8">RtAudioFormat</a>&nbsp;</td>
+          <td class="paramtype"><a class="el" href="RtAudio_8h.html#aafca92882d25915560018873221e44b8">RtAudioFormat</a>&nbsp;</td>
           <td class="paramname"> <em>format</em>, </td>
         </tr>
         <tr>
@@ -348,7 +326,7 @@ If the underlying audio API does not provide a "default device", or if no device
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="RtAudio_8h.html#112c7b7e25a974977f6fc094cef1a31f">RtAudioCallback</a>&nbsp;</td>
+          <td class="paramtype"><a class="el" href="RtAudio_8h.html#a112c7b7e25a974977f6fc094cef1a31f">RtAudioCallback</a>&nbsp;</td>
           <td class="paramname"> <em>callback</em>, </td>
         </tr>
         <tr>
@@ -372,14 +350,12 @@ If the underlying audio API does not provide a "default device", or if no device
 </div>
 <div class="memdoc">
 
-<p>
-A public function for opening a stream with the specified parameters. 
-<p>
-An <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> (type = SYSTEM_ERROR) is thrown if a stream cannot be opened with the specified parameters or an error occurs during processing. An <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> (type = INVALID_USE) is thrown if any invalid device ID or channel number parameters are specified.<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
+<p>A public function for opening a stream with the specified parameters. </p>
+<p>An <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> (type = SYSTEM_ERROR) is thrown if a stream cannot be opened with the specified parameters or an error occurs during processing. An <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> (type = INVALID_USE) is thrown if any invalid device ID or channel number parameters are specified.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
   <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>outputParameters</em>&nbsp;</td><td>Specifies output stream parameters to use when opening a stream, including a device ID, number of channels, and starting channel number. For input-only streams, this argument should be NULL. The device ID is an index value between 0 and <a class="el" href="classRtAudio.html#747ce2d73803641bbb66d6e78092aa1a" title="A public function that queries for the number of audio devices available.">getDeviceCount()</a> - 1. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>inputParameters</em>&nbsp;</td><td>Specifies input stream parameters to use when opening a stream, including a device ID, number of channels, and starting channel number. For output-only streams, this argument should be NULL. The device ID is an index value between 0 and <a class="el" href="classRtAudio.html#747ce2d73803641bbb66d6e78092aa1a" title="A public function that queries for the number of audio devices available.">getDeviceCount()</a> - 1. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>outputParameters</em>&nbsp;</td><td>Specifies output stream parameters to use when opening a stream, including a device ID, number of channels, and starting channel number. For input-only streams, this argument should be NULL. The device ID is an index value between 0 and <a class="el" href="classRtAudio.html#a747ce2d73803641bbb66d6e78092aa1a" title="A public function that queries for the number of audio devices available.">getDeviceCount()</a> - 1. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>inputParameters</em>&nbsp;</td><td>Specifies input stream parameters to use when opening a stream, including a device ID, number of channels, and starting channel number. For output-only streams, this argument should be NULL. The device ID is an index value between 0 and <a class="el" href="classRtAudio.html#a747ce2d73803641bbb66d6e78092aa1a" title="A public function that queries for the number of audio devices available.">getDeviceCount()</a> - 1. </td></tr>
     <tr><td valign="top"></td><td valign="top"><em>format</em>&nbsp;</td><td>An RtAudioFormat specifying the desired sample data format. </td></tr>
     <tr><td valign="top"></td><td valign="top"><em>sampleRate</em>&nbsp;</td><td>The desired sample rate (sample frames per second). </td></tr>
     <tr><td valign="top"></td><td valign="top"><em>*bufferFrames</em>&nbsp;</td><td>A pointer to a value indicating the desired internal buffer size in sample frames. The actual value used by the device is returned via the same pointer. A value of zero can be specified, in which case the lowest allowable value is determined. </td></tr>
@@ -387,19 +363,20 @@ An <a class="el" href="classRtError.html" title="Exception handling class for Rt
     <tr><td valign="top"></td><td valign="top"><em>userData</em>&nbsp;</td><td>An optional pointer to data that can be accessed from within the callback function. </td></tr>
     <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>An optional pointer to a structure containing various global stream options, including a list of OR'ed RtAudioStreamFlags and a suggested number of stream buffers that can be used to control stream latency. More buffers typically result in more robust performance, though at a cost of greater latency. If a value of zero is specified, a system-specific median value is chosen. If the RTAUDIO_MINIMIZE_LATENCY flag bit is set, the lowest allowable value is used. The actual value used is returned via the structure argument. The parameter is API dependent. </td></tr>
   </table>
+  </dd>
 </dl>
 
 </div>
-</div><p>
-<a class="anchor" name="90d599002ad32cf250a4cb866f2cc93a"></a><!-- doxytag: member="RtAudio::closeStream" ref="90d599002ad32cf250a4cb866f2cc93a" args="(void)" -->
+</div>
+<a class="anchor" id="a90d599002ad32cf250a4cb866f2cc93a"></a><!-- doxytag: member="RtAudio::closeStream" ref="a90d599002ad32cf250a4cb866f2cc93a" args="(void)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">void RtAudio::closeStream           </td>
+          <td class="memname">void RtAudio::closeStream </td>
           <td>(</td>
           <td class="paramtype">void&nbsp;</td>
-          <td class="paramname">          </td>
+          <td class="paramname"></td>
           <td>&nbsp;)&nbsp;</td>
           <td>  throw ()<code> [inline]</code></td>
         </tr>
@@ -407,21 +384,20 @@ An <a class="el" href="classRtError.html" title="Exception handling class for Rt
 </div>
 <div class="memdoc">
 
-<p>
-A function that closes a stream and frees any associated stream memory. 
-<p>
-If a stream is not open, this function issues a warning and returns (no exception is thrown). 
+<p>A function that closes a stream and frees any associated stream memory. </p>
+<p>If a stream is not open, this function issues a warning and returns (no exception is thrown). </p>
+
+</div>
 </div>
-</div><p>
-<a class="anchor" name="ec017a89629ccef66a90b60be22a2f80"></a><!-- doxytag: member="RtAudio::startStream" ref="ec017a89629ccef66a90b60be22a2f80" args="(void)" -->
+<a class="anchor" id="aec017a89629ccef66a90b60be22a2f80"></a><!-- doxytag: member="RtAudio::startStream" ref="aec017a89629ccef66a90b60be22a2f80" args="(void)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">void RtAudio::startStream           </td>
+          <td class="memname">void RtAudio::startStream </td>
           <td>(</td>
           <td class="paramtype">void&nbsp;</td>
-          <td class="paramname">          </td>
+          <td class="paramname"></td>
           <td>&nbsp;)&nbsp;</td>
           <td><code> [inline]</code></td>
         </tr>
@@ -429,21 +405,20 @@ If a stream is not open, this function issues a warning and returns (no exceptio
 </div>
 <div class="memdoc">
 
-<p>
-A function that starts a stream. 
-<p>
-An <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> (type = SYSTEM_ERROR) is thrown if an error occurs during processing. An <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> (type = INVALID_USE) is thrown if a stream is not open. A warning is issued if the stream is already running. 
+<p>A function that starts a stream. </p>
+<p>An <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> (type = SYSTEM_ERROR) is thrown if an error occurs during processing. An <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> (type = INVALID_USE) is thrown if a stream is not open. A warning is issued if the stream is already running. </p>
+
+</div>
 </div>
-</div><p>
-<a class="anchor" name="f4c241ff86936ecc8108f0d9dfe3efdd"></a><!-- doxytag: member="RtAudio::stopStream" ref="f4c241ff86936ecc8108f0d9dfe3efdd" args="(void)" -->
+<a class="anchor" id="af4c241ff86936ecc8108f0d9dfe3efdd"></a><!-- doxytag: member="RtAudio::stopStream" ref="af4c241ff86936ecc8108f0d9dfe3efdd" args="(void)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">void RtAudio::stopStream           </td>
+          <td class="memname">void RtAudio::stopStream </td>
           <td>(</td>
           <td class="paramtype">void&nbsp;</td>
-          <td class="paramname">          </td>
+          <td class="paramname"></td>
           <td>&nbsp;)&nbsp;</td>
           <td><code> [inline]</code></td>
         </tr>
@@ -451,21 +426,20 @@ An <a class="el" href="classRtError.html" title="Exception handling class for Rt
 </div>
 <div class="memdoc">
 
-<p>
-Stop a stream, allowing any samples remaining in the output queue to be played. 
-<p>
-An <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> (type = SYSTEM_ERROR) is thrown if an error occurs during processing. An <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> (type = INVALID_USE) is thrown if a stream is not open. A warning is issued if the stream is already stopped. 
+<p>Stop a stream, allowing any samples remaining in the output queue to be played. </p>
+<p>An <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> (type = SYSTEM_ERROR) is thrown if an error occurs during processing. An <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> (type = INVALID_USE) is thrown if a stream is not open. A warning is issued if the stream is already stopped. </p>
+
 </div>
-</div><p>
-<a class="anchor" name="d0586b47cd6bb9591a80b4052815991f"></a><!-- doxytag: member="RtAudio::abortStream" ref="d0586b47cd6bb9591a80b4052815991f" args="(void)" -->
+</div>
+<a class="anchor" id="ad0586b47cd6bb9591a80b4052815991f"></a><!-- doxytag: member="RtAudio::abortStream" ref="ad0586b47cd6bb9591a80b4052815991f" args="(void)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">void RtAudio::abortStream           </td>
+          <td class="memname">void RtAudio::abortStream </td>
           <td>(</td>
           <td class="paramtype">void&nbsp;</td>
-          <td class="paramname">          </td>
+          <td class="paramname"></td>
           <td>&nbsp;)&nbsp;</td>
           <td><code> [inline]</code></td>
         </tr>
@@ -473,21 +447,20 @@ An <a class="el" href="classRtError.html" title="Exception handling class for Rt
 </div>
 <div class="memdoc">
 
-<p>
-Stop a stream, discarding any samples remaining in the input/output queue. 
-<p>
-An <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> (type = SYSTEM_ERROR) is thrown if an error occurs during processing. An <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> (type = INVALID_USE) is thrown if a stream is not open. A warning is issued if the stream is already stopped. 
+<p>Stop a stream, discarding any samples remaining in the input/output queue. </p>
+<p>An <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> (type = SYSTEM_ERROR) is thrown if an error occurs during processing. An <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> (type = INVALID_USE) is thrown if a stream is not open. A warning is issued if the stream is already stopped. </p>
+
+</div>
 </div>
-</div><p>
-<a class="anchor" name="344e59a62353c5791db4621b985cb2ca"></a><!-- doxytag: member="RtAudio::getStreamTime" ref="344e59a62353c5791db4621b985cb2ca" args="(void)" -->
+<a class="anchor" id="a344e59a62353c5791db4621b985cb2ca"></a><!-- doxytag: member="RtAudio::getStreamTime" ref="a344e59a62353c5791db4621b985cb2ca" args="(void)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">double RtAudio::getStreamTime           </td>
+          <td class="memname">double RtAudio::getStreamTime </td>
           <td>(</td>
           <td class="paramtype">void&nbsp;</td>
-          <td class="paramname">          </td>
+          <td class="paramname"></td>
           <td>&nbsp;)&nbsp;</td>
           <td><code> [inline]</code></td>
         </tr>
@@ -495,21 +468,20 @@ An <a class="el" href="classRtError.html" title="Exception handling class for Rt
 </div>
 <div class="memdoc">
 
-<p>
-Returns the number of elapsed seconds since the stream was started. 
-<p>
-If a stream is not open, an <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> (type = INVALID_USE) will be thrown. 
+<p>Returns the number of elapsed seconds since the stream was started. </p>
+<p>If a stream is not open, an <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> (type = INVALID_USE) will be thrown. </p>
+
+</div>
 </div>
-</div><p>
-<a class="anchor" name="843c989d9f501c71bc2f2c5ca18df9f3"></a><!-- doxytag: member="RtAudio::getStreamLatency" ref="843c989d9f501c71bc2f2c5ca18df9f3" args="(void)" -->
+<a class="anchor" id="a843c989d9f501c71bc2f2c5ca18df9f3"></a><!-- doxytag: member="RtAudio::getStreamLatency" ref="a843c989d9f501c71bc2f2c5ca18df9f3" args="(void)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">long RtAudio::getStreamLatency           </td>
+          <td class="memname">long RtAudio::getStreamLatency </td>
           <td>(</td>
           <td class="paramtype">void&nbsp;</td>
-          <td class="paramname">          </td>
+          <td class="paramname"></td>
           <td>&nbsp;)&nbsp;</td>
           <td><code> [inline]</code></td>
         </tr>
@@ -517,21 +489,20 @@ If a stream is not open, an <a class="el" href="classRtError.html" title="Except
 </div>
 <div class="memdoc">
 
-<p>
-Returns the internal stream latency in sample frames. 
-<p>
-The stream latency refers to delay in audio input and/or output caused by internal buffering by the audio system and/or hardware. For duplex streams, the returned value will represent the sum of the input and output latencies. If a stream is not open, an <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> (type = INVALID_USE) will be thrown. If the API does not report latency, the return value will be zero. 
+<p>Returns the internal stream latency in sample frames. </p>
+<p>The stream latency refers to delay in audio input and/or output caused by internal buffering by the audio system and/or hardware. For duplex streams, the returned value will represent the sum of the input and output latencies. If a stream is not open, an <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> (type = INVALID_USE) will be thrown. If the API does not report latency, the return value will be zero. </p>
+
 </div>
-</div><p>
-<a class="anchor" name="28214b8b05d60b45c24ee6fae7b2a0b5"></a><!-- doxytag: member="RtAudio::getStreamSampleRate" ref="28214b8b05d60b45c24ee6fae7b2a0b5" args="(void)" -->
+</div>
+<a class="anchor" id="a28214b8b05d60b45c24ee6fae7b2a0b5"></a><!-- doxytag: member="RtAudio::getStreamSampleRate" ref="a28214b8b05d60b45c24ee6fae7b2a0b5" args="(void)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">unsigned int RtAudio::getStreamSampleRate           </td>
+          <td class="memname">unsigned int RtAudio::getStreamSampleRate </td>
           <td>(</td>
           <td class="paramtype">void&nbsp;</td>
-          <td class="paramname">          </td>
+          <td class="paramname"></td>
           <td>&nbsp;)&nbsp;</td>
           <td><code> [inline]</code></td>
         </tr>
@@ -539,19 +510,19 @@ The stream latency refers to delay in audio input and/or output caused by intern
 </div>
 <div class="memdoc">
 
-<p>
-Returns actual sample rate in use by the stream. 
-<p>
-On some systems, the sample rate used may be slightly different than that specified in the stream parameters. If a stream is not open, an <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> (type = INVALID_USE) will be thrown. 
+<p>Returns actual sample rate in use by the stream. </p>
+<p>On some systems, the sample rate used may be slightly different than that specified in the stream parameters. If a stream is not open, an <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> (type = INVALID_USE) will be thrown. </p>
+
+</div>
 </div>
-</div><p>
-<hr>The documentation for this class was generated from the following file:<ul>
-<li><a class="el" href="RtAudio_8h-source.html">RtAudio.h</a></ul>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="RtAudio_8h_source.html">RtAudio.h</a></li>
+</ul>
 </div>
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2001-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
 </table>
 
 </BODY>
index c81d2a3c31cb987dac8d719864347d0a647167fd..a1604e837081afcc0eaf4f915802474589575a69 100644 (file)
@@ -8,32 +8,32 @@
 <CENTER>
 <a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
 <HR>
-<!-- Generated by Doxygen 1.5.8 -->
+<!-- Generated by Doxygen 1.6.2 -->
 <div class="contents">
-<h1>RtError Member List</h1>This is the complete list of members for <a class="el" href="classRtError.html">RtError</a>, including all inherited members.<p><table>
-  <tr class="memlist"><td><a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac20e5a369394d19b704ace17002007eba">DEBUG_WARNING</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac995e97ecf6beeedaba525022a63aec6b">DRIVER_ERROR</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtError.html#c7f467788e29d246333d7af050801164">getMessage</a>(void)</td><td><a class="el" href="classRtError.html">RtError</a></td><td><code> [inline, virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtError.html#4ee7df9728d73f533afbaddcd9ca4d9c">getType</a>(void)</td><td><a class="el" href="classRtError.html">RtError</a></td><td><code> [inline, virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903acd6064062066fffdba258237a7c2159b1">INVALID_DEVICE</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903aca3eabf0f71120beaba94148a1b78fed6">INVALID_PARAMETER</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac8e65f51a3fbdc1a4a1552b3260df36bc">INVALID_USE</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903acb4f813e5a36905c89d4081a59497432e">MEMORY_ERROR</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903acf267eb2d710f33d649ba840eeab6ff82">NO_DEVICES_FOUND</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtError.html#da41f7472122f45bc5b4677f066e0943">printMessage</a>(void)</td><td><a class="el" href="classRtError.html">RtError</a></td><td><code> [inline, virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtError.html#a479a305ccbe56be0fd9137b9b405a37">RtError</a>(const std::string &amp;message, Type type=RtError::UNSPECIFIED)</td><td><a class="el" href="classRtError.html">RtError</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac8947d0a2e2a84ecf3646271844e06a6b">SYSTEM_ERROR</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903aceb6282f991e2d93ab294a4272fc3f6c6">THREAD_ERROR</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac">Type</a> enum name</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac444efd3ccf774b2ba9f9bde70ec71cd6">UNSPECIFIED</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac3a1603c24a56cbdaf5f8ae4ddcb86398">WARNING</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtError.html#eb843b7a7785d66061c61ebfc29e7e9d">what</a>(void) const </td><td><a class="el" href="classRtError.html">RtError</a></td><td><code> [inline, virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classRtError.html#6793e03386e7e69ffafb65a296dfa48c">~RtError</a>(void)</td><td><a class="el" href="classRtError.html">RtError</a></td><td><code> [inline, virtual]</code></td></tr>
+<h1>RtError Member List</h1>This is the complete list of members for <a class="el" href="classRtError.html">RtError</a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca20e5a369394d19b704ace17002007eba">DEBUG_WARNING</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca995e97ecf6beeedaba525022a63aec6b">DRIVER_ERROR</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtError.html#ac7f467788e29d246333d7af050801164">getMessage</a>(void)</td><td><a class="el" href="classRtError.html">RtError</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtError.html#a4ee7df9728d73f533afbaddcd9ca4d9c">getType</a>(void)</td><td><a class="el" href="classRtError.html">RtError</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acad6064062066fffdba258237a7c2159b1">INVALID_DEVICE</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaa3eabf0f71120beaba94148a1b78fed6">INVALID_PARAMETER</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca8e65f51a3fbdc1a4a1552b3260df36bc">INVALID_USE</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acab4f813e5a36905c89d4081a59497432e">MEMORY_ERROR</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaf267eb2d710f33d649ba840eeab6ff82">NO_DEVICES_FOUND</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtError.html#ada41f7472122f45bc5b4677f066e0943">printMessage</a>(void)</td><td><a class="el" href="classRtError.html">RtError</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtError.html#aa479a305ccbe56be0fd9137b9b405a37">RtError</a>(const std::string &amp;message, Type type=RtError::UNSPECIFIED)</td><td><a class="el" href="classRtError.html">RtError</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca8947d0a2e2a84ecf3646271844e06a6b">SYSTEM_ERROR</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaeb6282f991e2d93ab294a4272fc3f6c6">THREAD_ERROR</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903ac">Type</a> enum name</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca444efd3ccf774b2ba9f9bde70ec71cd6">UNSPECIFIED</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca3a1603c24a56cbdaf5f8ae4ddcb86398">WARNING</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtError.html#aeb843b7a7785d66061c61ebfc29e7e9d">what</a>(void) const </td><td><a class="el" href="classRtError.html">RtError</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classRtError.html#a6793e03386e7e69ffafb65a296dfa48c">~RtError</a>(void)</td><td><a class="el" href="classRtError.html">RtError</a></td><td><code> [inline, virtual]</code></td></tr>
 </table></div>
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2001-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
 </table>
 
 </BODY>
index e90dcf15f1b4abd51879e186263182bb551624bc..29fd5648530d3e909c0b94e6c4f9f1207ae8e891 100644 (file)
 <CENTER>
 <a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
 <HR>
-<!-- Generated by Doxygen 1.5.8 -->
+<!-- Generated by Doxygen 1.6.2 -->
 <div class="contents">
-<h1>RtError Class Reference</h1><!-- doxytag: class="RtError" -->Exception handling class for <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> &amp; RtMidi.  
-<a href="#_details">More...</a>
-<p>
-<code>#include &lt;<a class="el" href="RtError_8h-source.html">RtError.h</a>&gt;</code>
-<p>
+<h1>RtError Class Reference</h1><!-- doxytag: class="RtError" -->
+<p>Exception handling class for <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> &amp; RtMidi.  
+<a href="#_details">More...</a></p>
 
-<p>
-<a href="classRtError-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
-<tr><td></td></tr>
-<tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac">Type</a> { <br>
-&nbsp;&nbsp;<a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac3a1603c24a56cbdaf5f8ae4ddcb86398">WARNING</a>, 
-<a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac20e5a369394d19b704ace17002007eba">DEBUG_WARNING</a>, 
-<a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac444efd3ccf774b2ba9f9bde70ec71cd6">UNSPECIFIED</a>, 
-<a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903acf267eb2d710f33d649ba840eeab6ff82">NO_DEVICES_FOUND</a>, 
-<br>
-&nbsp;&nbsp;<a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903acd6064062066fffdba258237a7c2159b1">INVALID_DEVICE</a>, 
-<a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903acb4f813e5a36905c89d4081a59497432e">MEMORY_ERROR</a>, 
-<a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903aca3eabf0f71120beaba94148a1b78fed6">INVALID_PARAMETER</a>, 
-<a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac8e65f51a3fbdc1a4a1552b3260df36bc">INVALID_USE</a>, 
-<br>
-&nbsp;&nbsp;<a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac995e97ecf6beeedaba525022a63aec6b">DRIVER_ERROR</a>, 
-<a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac8947d0a2e2a84ecf3646271844e06a6b">SYSTEM_ERROR</a>, 
-<a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903aceb6282f991e2d93ab294a4272fc3f6c6">THREAD_ERROR</a>
-<br>
- }</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defined <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> types.  <a href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac">More...</a><br></td></tr>
-<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a479a305ccbe56be0fd9137b9b405a37"></a><!-- doxytag: member="RtError::RtError" ref="a479a305ccbe56be0fd9137b9b405a37" args="(const std::string &amp;message, Type type=RtError::UNSPECIFIED)" -->
-&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtError.html#a479a305ccbe56be0fd9137b9b405a37">RtError</a> (const std::string &amp;message, <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac">Type</a> type=RtError::UNSPECIFIED)  throw ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The constructor. <br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6793e03386e7e69ffafb65a296dfa48c"></a><!-- doxytag: member="RtError::~RtError" ref="6793e03386e7e69ffafb65a296dfa48c" args="(void)" -->
-virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtError.html#6793e03386e7e69ffafb65a296dfa48c">~RtError</a> (void)  throw ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The destructor. <br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="da41f7472122f45bc5b4677f066e0943"></a><!-- doxytag: member="RtError::printMessage" ref="da41f7472122f45bc5b4677f066e0943" args="(void)" -->
-virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtError.html#da41f7472122f45bc5b4677f066e0943">printMessage</a> (void)  throw ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Prints thrown error message to stderr. <br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4ee7df9728d73f533afbaddcd9ca4d9c"></a><!-- doxytag: member="RtError::getType" ref="4ee7df9728d73f533afbaddcd9ca4d9c" args="(void)" -->
-virtual const <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac">Type</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtError.html#4ee7df9728d73f533afbaddcd9ca4d9c">getType</a> (void)  throw ()</td></tr>
+<p><code>#include &lt;<a class="el" href="RtError_8h_source.html">RtError.h</a>&gt;</code></p>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the thrown error message type. <br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c7f467788e29d246333d7af050801164"></a><!-- doxytag: member="RtError::getMessage" ref="c7f467788e29d246333d7af050801164" args="(void)" -->
-virtual const std::string &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtError.html#c7f467788e29d246333d7af050801164">getMessage</a> (void)  throw ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the thrown error message string. <br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="eb843b7a7785d66061c61ebfc29e7e9d"></a><!-- doxytag: member="RtError::what" ref="eb843b7a7785d66061c61ebfc29e7e9d" args="(void) const " -->
-virtual const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtError.html#eb843b7a7785d66061c61ebfc29e7e9d">what</a> (void) const   throw ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the thrown error message as a c-style string. <br></td></tr>
+<p><a href="classRtError-members.html">List of all members.</a></p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903ac">Type</a> { <br/>
+&nbsp;&nbsp;<a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca3a1603c24a56cbdaf5f8ae4ddcb86398">WARNING</a>, 
+<a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca20e5a369394d19b704ace17002007eba">DEBUG_WARNING</a>, 
+<a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca444efd3ccf774b2ba9f9bde70ec71cd6">UNSPECIFIED</a>, 
+<a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaf267eb2d710f33d649ba840eeab6ff82">NO_DEVICES_FOUND</a>, 
+<br/>
+&nbsp;&nbsp;<a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acad6064062066fffdba258237a7c2159b1">INVALID_DEVICE</a>, 
+<a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acab4f813e5a36905c89d4081a59497432e">MEMORY_ERROR</a>, 
+<a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaa3eabf0f71120beaba94148a1b78fed6">INVALID_PARAMETER</a>, 
+<a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca8e65f51a3fbdc1a4a1552b3260df36bc">INVALID_USE</a>, 
+<br/>
+&nbsp;&nbsp;<a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca995e97ecf6beeedaba525022a63aec6b">DRIVER_ERROR</a>, 
+<a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca8947d0a2e2a84ecf3646271844e06a6b">SYSTEM_ERROR</a>, 
+<a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaeb6282f991e2d93ab294a4272fc3f6c6">THREAD_ERROR</a>
+<br/>
+ }</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Defined <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> types. </p>
+ <a href="classRtError.html#ab04667aae01bffc354a9ac6bda6903ac">More...</a><br/></td></tr>
+<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa479a305ccbe56be0fd9137b9b405a37"></a><!-- doxytag: member="RtError::RtError" ref="aa479a305ccbe56be0fd9137b9b405a37" args="(const std::string &amp;message, Type type=RtError::UNSPECIFIED)" -->
+&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtError.html#aa479a305ccbe56be0fd9137b9b405a37">RtError</a> (const std::string &amp;message, <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903ac">Type</a> type=RtError::UNSPECIFIED)  throw ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The constructor. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6793e03386e7e69ffafb65a296dfa48c"></a><!-- doxytag: member="RtError::~RtError" ref="a6793e03386e7e69ffafb65a296dfa48c" args="(void)" -->
+virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtError.html#a6793e03386e7e69ffafb65a296dfa48c">~RtError</a> (void)  throw ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The destructor. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ada41f7472122f45bc5b4677f066e0943"></a><!-- doxytag: member="RtError::printMessage" ref="ada41f7472122f45bc5b4677f066e0943" args="(void)" -->
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtError.html#ada41f7472122f45bc5b4677f066e0943">printMessage</a> (void)  throw ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Prints thrown error message to stderr. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4ee7df9728d73f533afbaddcd9ca4d9c"></a><!-- doxytag: member="RtError::getType" ref="a4ee7df9728d73f533afbaddcd9ca4d9c" args="(void)" -->
+virtual const <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903ac">Type</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtError.html#a4ee7df9728d73f533afbaddcd9ca4d9c">getType</a> (void)  throw ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the thrown error message type. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac7f467788e29d246333d7af050801164"></a><!-- doxytag: member="RtError::getMessage" ref="ac7f467788e29d246333d7af050801164" args="(void)" -->
+virtual const std::string &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtError.html#ac7f467788e29d246333d7af050801164">getMessage</a> (void)  throw ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the thrown error message string. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeb843b7a7785d66061c61ebfc29e7e9d"></a><!-- doxytag: member="RtError::what" ref="aeb843b7a7785d66061c61ebfc29e7e9d" args="(void) const " -->
+virtual const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRtError.html#aeb843b7a7785d66061c61ebfc29e7e9d">what</a> (void) const   throw ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the thrown error message as a c-style string. <br/></td></tr>
 </table>
-<hr><a name="_details"></a><h2>Detailed Description</h2>
-Exception handling class for <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> &amp; RtMidi. 
-<p>
-The <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> class is quite simple but it does allow errors to be "caught" by <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac" title="Defined RtError types.">RtError::Type</a>. See the <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> and RtMidi documentation to know which methods can throw an <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a>. <hr><h2>Member Enumeration Documentation</h2>
-<a class="anchor" name="b04667aae01bffc354a9ac6bda6903ac"></a><!-- doxytag: member="RtError::Type" ref="b04667aae01bffc354a9ac6bda6903ac" args="" -->
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>Exception handling class for <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> &amp; RtMidi. </p>
+<p>The <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> class is quite simple but it does allow errors to be "caught" by <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903ac" title="Defined RtError types.">RtError::Type</a>. See the <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> and RtMidi documentation to know which methods can throw an <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a>. </p>
+<hr/><h2>Member Enumeration Documentation</h2>
+<a class="anchor" id="ab04667aae01bffc354a9ac6bda6903ac"></a><!-- doxytag: member="RtError::Type" ref="ab04667aae01bffc354a9ac6bda6903ac" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">enum <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac">RtError::Type</a>          </td>
+          <td class="memname">enum <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903ac">RtError::Type</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>
-Defined <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> types. 
-<p>
-<dl compact><dt><b>Enumerator: </b></dt><dd>
-<table border="0" cellspacing="2" cellpadding="0">
-<tr><td valign="top"><em><a class="anchor" name="b04667aae01bffc354a9ac6bda6903ac3a1603c24a56cbdaf5f8ae4ddcb86398"></a><!-- doxytag: member="WARNING" ref="b04667aae01bffc354a9ac6bda6903ac3a1603c24a56cbdaf5f8ae4ddcb86398" args="" -->WARNING</em>&nbsp;</td><td>
-A non-critical error. </td></tr>
-<tr><td valign="top"><em><a class="anchor" name="b04667aae01bffc354a9ac6bda6903ac20e5a369394d19b704ace17002007eba"></a><!-- doxytag: member="DEBUG_WARNING" ref="b04667aae01bffc354a9ac6bda6903ac20e5a369394d19b704ace17002007eba" args="" -->DEBUG_WARNING</em>&nbsp;</td><td>
-A non-critical error which might be useful for debugging. </td></tr>
-<tr><td valign="top"><em><a class="anchor" name="b04667aae01bffc354a9ac6bda6903ac444efd3ccf774b2ba9f9bde70ec71cd6"></a><!-- doxytag: member="UNSPECIFIED" ref="b04667aae01bffc354a9ac6bda6903ac444efd3ccf774b2ba9f9bde70ec71cd6" args="" -->UNSPECIFIED</em>&nbsp;</td><td>
-The default, unspecified error type. </td></tr>
-<tr><td valign="top"><em><a class="anchor" name="b04667aae01bffc354a9ac6bda6903acf267eb2d710f33d649ba840eeab6ff82"></a><!-- doxytag: member="NO_DEVICES_FOUND" ref="b04667aae01bffc354a9ac6bda6903acf267eb2d710f33d649ba840eeab6ff82" args="" -->NO_DEVICES_FOUND</em>&nbsp;</td><td>
-No devices found on system. </td></tr>
-<tr><td valign="top"><em><a class="anchor" name="b04667aae01bffc354a9ac6bda6903acd6064062066fffdba258237a7c2159b1"></a><!-- doxytag: member="INVALID_DEVICE" ref="b04667aae01bffc354a9ac6bda6903acd6064062066fffdba258237a7c2159b1" args="" -->INVALID_DEVICE</em>&nbsp;</td><td>
-An invalid device ID was specified. </td></tr>
-<tr><td valign="top"><em><a class="anchor" name="b04667aae01bffc354a9ac6bda6903acb4f813e5a36905c89d4081a59497432e"></a><!-- doxytag: member="MEMORY_ERROR" ref="b04667aae01bffc354a9ac6bda6903acb4f813e5a36905c89d4081a59497432e" args="" -->MEMORY_ERROR</em>&nbsp;</td><td>
-An error occured during memory allocation. </td></tr>
-<tr><td valign="top"><em><a class="anchor" name="b04667aae01bffc354a9ac6bda6903aca3eabf0f71120beaba94148a1b78fed6"></a><!-- doxytag: member="INVALID_PARAMETER" ref="b04667aae01bffc354a9ac6bda6903aca3eabf0f71120beaba94148a1b78fed6" args="" -->INVALID_PARAMETER</em>&nbsp;</td><td>
-An invalid parameter was specified to a function. </td></tr>
-<tr><td valign="top"><em><a class="anchor" name="b04667aae01bffc354a9ac6bda6903ac8e65f51a3fbdc1a4a1552b3260df36bc"></a><!-- doxytag: member="INVALID_USE" ref="b04667aae01bffc354a9ac6bda6903ac8e65f51a3fbdc1a4a1552b3260df36bc" args="" -->INVALID_USE</em>&nbsp;</td><td>
-The function was called incorrectly. </td></tr>
-<tr><td valign="top"><em><a class="anchor" name="b04667aae01bffc354a9ac6bda6903ac995e97ecf6beeedaba525022a63aec6b"></a><!-- doxytag: member="DRIVER_ERROR" ref="b04667aae01bffc354a9ac6bda6903ac995e97ecf6beeedaba525022a63aec6b" args="" -->DRIVER_ERROR</em>&nbsp;</td><td>
-A system driver error occured. </td></tr>
-<tr><td valign="top"><em><a class="anchor" name="b04667aae01bffc354a9ac6bda6903ac8947d0a2e2a84ecf3646271844e06a6b"></a><!-- doxytag: member="SYSTEM_ERROR" ref="b04667aae01bffc354a9ac6bda6903ac8947d0a2e2a84ecf3646271844e06a6b" args="" -->SYSTEM_ERROR</em>&nbsp;</td><td>
-A system error occured. </td></tr>
-<tr><td valign="top"><em><a class="anchor" name="b04667aae01bffc354a9ac6bda6903aceb6282f991e2d93ab294a4272fc3f6c6"></a><!-- doxytag: member="THREAD_ERROR" ref="b04667aae01bffc354a9ac6bda6903aceb6282f991e2d93ab294a4272fc3f6c6" args="" -->THREAD_ERROR</em>&nbsp;</td><td>
-A thread error occured. </td></tr>
+<p>Defined <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> types. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ab04667aae01bffc354a9ac6bda6903aca3a1603c24a56cbdaf5f8ae4ddcb86398"></a><!-- doxytag: member="WARNING" ref="ab04667aae01bffc354a9ac6bda6903aca3a1603c24a56cbdaf5f8ae4ddcb86398" args="" -->WARNING</em>&nbsp;</td><td>
+<p>A non-critical error. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ab04667aae01bffc354a9ac6bda6903aca20e5a369394d19b704ace17002007eba"></a><!-- doxytag: member="DEBUG_WARNING" ref="ab04667aae01bffc354a9ac6bda6903aca20e5a369394d19b704ace17002007eba" args="" -->DEBUG_WARNING</em>&nbsp;</td><td>
+<p>A non-critical error which might be useful for debugging. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ab04667aae01bffc354a9ac6bda6903aca444efd3ccf774b2ba9f9bde70ec71cd6"></a><!-- doxytag: member="UNSPECIFIED" ref="ab04667aae01bffc354a9ac6bda6903aca444efd3ccf774b2ba9f9bde70ec71cd6" args="" -->UNSPECIFIED</em>&nbsp;</td><td>
+<p>The default, unspecified error type. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ab04667aae01bffc354a9ac6bda6903acaf267eb2d710f33d649ba840eeab6ff82"></a><!-- doxytag: member="NO_DEVICES_FOUND" ref="ab04667aae01bffc354a9ac6bda6903acaf267eb2d710f33d649ba840eeab6ff82" args="" -->NO_DEVICES_FOUND</em>&nbsp;</td><td>
+<p>No devices found on system. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ab04667aae01bffc354a9ac6bda6903acad6064062066fffdba258237a7c2159b1"></a><!-- doxytag: member="INVALID_DEVICE" ref="ab04667aae01bffc354a9ac6bda6903acad6064062066fffdba258237a7c2159b1" args="" -->INVALID_DEVICE</em>&nbsp;</td><td>
+<p>An invalid device ID was specified. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ab04667aae01bffc354a9ac6bda6903acab4f813e5a36905c89d4081a59497432e"></a><!-- doxytag: member="MEMORY_ERROR" ref="ab04667aae01bffc354a9ac6bda6903acab4f813e5a36905c89d4081a59497432e" args="" -->MEMORY_ERROR</em>&nbsp;</td><td>
+<p>An error occured during memory allocation. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ab04667aae01bffc354a9ac6bda6903acaa3eabf0f71120beaba94148a1b78fed6"></a><!-- doxytag: member="INVALID_PARAMETER" ref="ab04667aae01bffc354a9ac6bda6903acaa3eabf0f71120beaba94148a1b78fed6" args="" -->INVALID_PARAMETER</em>&nbsp;</td><td>
+<p>An invalid parameter was specified to a function. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ab04667aae01bffc354a9ac6bda6903aca8e65f51a3fbdc1a4a1552b3260df36bc"></a><!-- doxytag: member="INVALID_USE" ref="ab04667aae01bffc354a9ac6bda6903aca8e65f51a3fbdc1a4a1552b3260df36bc" args="" -->INVALID_USE</em>&nbsp;</td><td>
+<p>The function was called incorrectly. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ab04667aae01bffc354a9ac6bda6903aca995e97ecf6beeedaba525022a63aec6b"></a><!-- doxytag: member="DRIVER_ERROR" ref="ab04667aae01bffc354a9ac6bda6903aca995e97ecf6beeedaba525022a63aec6b" args="" -->DRIVER_ERROR</em>&nbsp;</td><td>
+<p>A system driver error occured. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ab04667aae01bffc354a9ac6bda6903aca8947d0a2e2a84ecf3646271844e06a6b"></a><!-- doxytag: member="SYSTEM_ERROR" ref="ab04667aae01bffc354a9ac6bda6903aca8947d0a2e2a84ecf3646271844e06a6b" args="" -->SYSTEM_ERROR</em>&nbsp;</td><td>
+<p>A system error occured. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ab04667aae01bffc354a9ac6bda6903acaeb6282f991e2d93ab294a4272fc3f6c6"></a><!-- doxytag: member="THREAD_ERROR" ref="ab04667aae01bffc354a9ac6bda6903acaeb6282f991e2d93ab294a4272fc3f6c6" args="" -->THREAD_ERROR</em>&nbsp;</td><td>
+<p>A thread error occured. </p>
+</td></tr>
 </table>
+</dd>
 </dl>
 
 </div>
-</div><p>
-<hr>The documentation for this class was generated from the following file:<ul>
-<li><a class="el" href="RtError_8h-source.html">RtError.h</a></ul>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="RtError_8h_source.html">RtError.h</a></li>
+</ul>
 </div>
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2001-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
 </table>
 
 </BODY>
index 0e20935fcb52f40a62e9850f467738283dff7b05..ca47b03588f2978fc03d53c08790dd347b7fea06 100644 (file)
@@ -8,17 +8,19 @@
 <CENTER>
 <a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
 <HR>
-<!-- Generated by Doxygen 1.5.8 -->
+<!-- Generated by Doxygen 1.6.2 -->
 <div class="contents">
-<h1>Class Index</h1><p><div class="qindex"><a class="qindex" href="#letter_R">R</a></div><p>
+<h1>Class Index</h1><div class="qindex"><a class="qindex" href="#letter_D">D</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_R">R</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_S">S</a></div>
 <table align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
-<tr><td><a name="letter_R"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;R&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a class="el" href="structRtAudio_1_1DeviceInfo.html">RtAudio::DeviceInfo</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structRtAudio_1_1StreamOptions.html">RtAudio::StreamOptions</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structRtAudio_1_1StreamParameters.html">RtAudio::StreamParameters</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classRtError.html">RtError</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classRtAudio.html">RtAudio</a>&nbsp;&nbsp;&nbsp;</td></tr></table><p><div class="qindex"><a class="qindex" href="#letter_R">R</a></div><p>
+<tr><td><a name="letter_D"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;D&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a name="letter_R"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;R&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="classRtError.html">RtError</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structRtAudio_1_1StreamOptions.html">RtAudio::StreamOptions</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structRtAudio_1_1StreamParameters.html">RtAudio::StreamParameters</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="structRtAudio_1_1DeviceInfo.html">RtAudio::DeviceInfo</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classRtAudio.html">RtAudio</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_S"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;S&nbsp;&nbsp;</div></td></tr></table>
+</td></tr></table><div class="qindex"><a class="qindex" href="#letter_D">D</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_R">R</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_S">S</a></div>
 </div>
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2001-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
 </table>
 
 </BODY>
index c055362e4bbea302eb6b67fc029adfa0b9b7d86c..39cde7ba1c442d61aa9f6cea9fe2a629dcd4addf 100644 (file)
@@ -8,14 +8,17 @@
 <CENTER>
 <a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
 <HR>
-<!-- Generated by Doxygen 1.5.8 -->
+<!-- Generated by Doxygen 1.6.2 -->
 <div class="contents">
-<h1><a class="anchor" name="compiling">Debugging &amp; Compiling </a></h1><h2><a class="anchor" name="debug">
+
+
+<h1><a class="anchor" id="compiling">Debugging &amp; Compiling </a></h1><h2><a class="anchor" id="debug">
 Debugging</a></h2>
-If you are having problems getting <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> to run on your system, make sure to pass a value of <em>true</em> to the <a class="el" href="classRtAudio.html#f0752ee51cce3dd90a3bd009f9fdbe77" title="Specify whether warning messages should be printed to stderr.">RtAudio::showWarnings()</a> function (this is the default setting). A variety of warning messages will be displayed which may help in determining the problem. Also, try using the programs included in the <code>tests</code> directory. The program <code>audioprobe</code> displays the queried capabilities of all hardware devices found for all APIs compiled. When using the ALSA and JACK APIs, further information can be displayed by defining the preprocessor definition __RTAUDIO_DEBUG__.<h2><a class="anchor" name="compile">
+<p>If you are having problems getting <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> to run on your system, make sure to pass a value of <em>true</em> to the <a class="el" href="classRtAudio.html#af0752ee51cce3dd90a3bd009f9fdbe77" title="Specify whether warning messages should be printed to stderr.">RtAudio::showWarnings()</a> function (this is the default setting). A variety of warning messages will be displayed which may help in determining the problem. Also, try using the programs included in the <code>tests</code> directory. The program <code>audioprobe</code> displays the queried capabilities of all hardware devices found for all APIs compiled. When using the ALSA and JACK APIs, further information can be displayed by defining the preprocessor definition __RTAUDIO_DEBUG__.</p>
+<h2><a class="anchor" id="compile">
 Compiling</a></h2>
-In order to compile <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> for a specific OS and audio API, it is necessary to supply the appropriate preprocessor definition and library within the compiler statement: <p>
-<table border="2" cols="5" width="100%" cellspacing="3" cellpadding="3">
+<p>In order to compile <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> for a specific OS and audio API, it is necessary to supply the appropriate preprocessor definition and library within the compiler statement: </p>
+<table class="doxtable" border="2" cols="5" width="100%">
 <tr bgcolor="beige">
 <td width="5%"><b>OS:</b> </td><td width="5%"><b>Audio API:</b> </td><td width="5%"><b>C++ Class:</b> </td><td width="5%"><b>Preprocessor Definition:</b> </td><td width="5%"><b>Library or Framework:</b> </td><td><b>Example Compiler Statement:</b>  </td></tr>
 <tr>
@@ -23,7 +26,8 @@ In order to compile <a class="el" href="classRtAudio.html" title="Realtime audio
 <tr>
 <td>Linux </td><td>OSS </td><td>RtApiOss </td><td>__LINUX_OSS__ </td><td><code>pthread</code> </td><td><code>g++ -Wall -D__LINUX_OSS__ -o audioprobe audioprobe.cpp RtAudio.cpp -lpthread</code>  </td></tr>
 <tr>
-<td>Linux or Macintosh OS-X </td><td>Jack Audio Server </td><td>RtApiJack </td><td>__UNIX_JACK__ </td><td><code>jack, pthread</code> </td><td><code>g++ -Wall -D__UNIX_JACK__ -o audioprobe audioprobe.cpp RtAudio.cpp `pkg-config --cflags --libs jack` -lpthread</code> <p>
+<td>Linux or Macintosh OS-X </td><td>Jack Audio Server </td><td>RtApiJack </td><td>__UNIX_JACK__ </td><td><code>jack, pthread</code> </td><td><p class="starttd"><code>g++ -Wall -D__UNIX_JACK__ -o audioprobe audioprobe.cpp RtAudio.cpp `pkg-config --cflags --libs jack` -lpthread</code> </p>
+<p class="endtd"></p>
 </td></tr>
 <tr>
 <td>Macintosh OS-X </td><td>CoreAudio </td><td>RtApiCore </td><td>__MACOSX_CORE__ </td><td><code>pthread, CoreAudio</code> </td><td><code>g++ -Wall -D__MACOSX_CORE__ -o audioprobe audioprobe.cpp RtAudio.cpp -framework CoreAudio -lpthread</code>  </td></tr>
@@ -32,12 +36,12 @@ In order to compile <a class="el" href="classRtAudio.html" title="Realtime audio
 <tr>
 <td>Windows </td><td>ASIO </td><td>RtApiAsio </td><td>__WINDOWS_ASIO__ </td><td><em>various ASIO header and source files</em> </td><td><em>compiler specific</em>  </td></tr>
 </table>
-<p>
-The example compiler statements above could be used to compile the <code>audioprobe.cpp</code> example file, assuming that <code>audioprobe.cpp</code>, <code><a class="el" href="RtAudio_8h.html">RtAudio.h</a></code>, <code><a class="el" href="RtError_8h-source.html">RtError.h</a></code>, and <code>RtAudio.cpp</code> all exist in the same directory. </div>
+<p>The example compiler statements above could be used to compile the <code>audioprobe.cpp</code> example file, assuming that <code>audioprobe.cpp</code>, <code><a class="el" href="RtAudio_8h.html">RtAudio.h</a></code>, <code><a class="el" href="RtError_8h_source.html">RtError.h</a></code>, and <code>RtAudio.cpp</code> all exist in the same directory. </p>
+</div>
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2001-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
 </table>
 
 </BODY>
index 3767dc957b0dd2268ea831deb86dae6b7a7222a0..b057a928811fe5b1e5ef2e72464c79e130cd28c4 100644 (file)
@@ -1,3 +1,5 @@
+/* The standard CSS for doxygen */
+
 body, table, div, p, dl {
        font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
        font-size: 12px;
@@ -18,12 +20,49 @@ h3 {
        font-size: 100%;
 }
 
+dt {
+       font-weight: bold;
+}
+
+div.multicol {
+       -moz-column-gap: 1em;
+       -webkit-column-gap: 1em;
+       -moz-column-count: 3;
+       -webkit-column-count: 3;
+}
+
+p.startli, p.startdd, p.starttd {
+       margin-top: 2px;
+}
+
+p.endli {
+       margin-bottom: 0px;
+}
+
+p.enddd {
+       margin-bottom: 4px;
+}
+
+p.endtd {
+       margin-bottom: 2px;
+}
+
 /* @end */
 
 caption {
        font-weight: bold;
 }
 
+span.legend {
+        font-size: 70%;
+        text-align: center;
+}
+
+h3.version {
+        font-size: 90%;
+        text-align: center;
+}
+
 div.qindex, div.navtab{
        background-color: #e8eef2;
        border: 1px solid #84b0c7;
@@ -80,9 +119,11 @@ a.elRef {
 }
 
 a.code {
+       color: #3030f0;
 }
 
 a.codeRef {
+       color: #3030f0;
 }
 
 /* @end */
@@ -101,6 +142,10 @@ pre.fragment {
        background-color: #f5f5f5;
        padding: 4px 6px;
        margin: 4px 8px 4px 2px;
+       overflow: auto;
+       word-wrap: break-word;
+       font-size:  9pt;
+       line-height: 125%;
 }
 
 div.ah {
@@ -161,6 +206,22 @@ img.formulaInl {
        vertical-align: middle;
 }
 
+div.center {
+       text-align: center;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        padding: 0px;
+}
+
+div.center img {
+       border: 0px;
+}
+
+img.footer {
+       border: 0px;
+       vertical-align: middle;
+}
+
 /* @group Code Colorization */
 
 span.keyword {
@@ -267,8 +328,13 @@ hr {
        border-top: 1px solid #ccc;
 }
 
+.memItemLeft, .memTemplItemLeft {
+        white-space: nowrap;
+}
+
 .memTemplParams {
        color: #606060;
+        white-space: nowrap;
 }
 
 /* @end */
@@ -295,6 +361,7 @@ hr {
 
 .memitem {
        padding: 0;
+       margin-bottom: 10px;
 }
 
 .memname {
@@ -312,8 +379,11 @@ hr {
        font-weight: bold;
        -webkit-border-top-left-radius: 8px;
        -webkit-border-top-right-radius: 8px;
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
        -moz-border-radius-topleft: 8px;
        -moz-border-radius-topright: 8px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+
 }
 
 .memdoc {
@@ -322,8 +392,10 @@ hr {
        border-top-width: 0;
        -webkit-border-bottom-left-radius: 8px;
        -webkit-border-bottom-right-radius: 8px;
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
        -moz-border-radius-bottomleft: 8px;
        -moz-border-radius-bottomright: 8px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
 }
 
 .paramkey {
@@ -439,3 +511,22 @@ address {
        font-style: normal;
        color: #333;
 }
+
+table.doxtable {
+       border-collapse:collapse;
+}
+
+table.doxtable td, table.doxtable th {
+       border: 1px solid #153788;
+       padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+       background-color: #254798;
+       color: #FFFFFF;
+       font-size: 110%;
+       padding-bottom: 4px;
+       padding-top: 5px;
+       text-align:left;
+}
+
index 7bfdb644694eaf5d17d808313471eb2a052c61e9..6e85d6918a3484ecb96d67cfcf6efcc1c0cd7d56 100644 (file)
@@ -8,21 +8,23 @@
 <CENTER>
 <a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
 <HR>
-<!-- Generated by Doxygen 1.5.8 -->
+<!-- Generated by Doxygen 1.6.2 -->
 <div class="contents">
-<h1><a class="anchor" name="duplex">Duplex Mode </a></h1>Finally, it is easy to use <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> for simultaneous audio input/output, or duplex operation. In this example, we simply pass the input data back to the output.<p>
-<div class="fragment"><pre class="fragment"><span class="preprocessor">#include "<a class="code" href="RtAudio_8h.html">RtAudio.h</a>"</span>
+
+
+<h1><a class="anchor" id="duplex">Duplex Mode </a></h1><p>Finally, it is easy to use <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> for simultaneous audio input/output, or duplex operation. In this example, we simply pass the input data back to the output.</p>
+<div class="fragment"><pre class="fragment"><span class="preprocessor">#include &quot;<a class="code" href="RtAudio_8h.html">RtAudio.h</a>&quot;</span>
 <span class="preprocessor">#include &lt;iostream&gt;</span>
 <span class="preprocessor">#include &lt;cstdlib&gt;</span>
 <span class="preprocessor">#include &lt;cstring&gt;</span>
 
 <span class="comment">// Pass-through function.</span>
 <span class="keywordtype">int</span> inout( <span class="keywordtype">void</span> *outputBuffer, <span class="keywordtype">void</span> *inputBuffer, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nBufferFrames,
-           <span class="keywordtype">double</span> streamTime, <a class="code" href="RtAudio_8h.html#80e306d363583da3b0a1b65d9b57c806" title="RtAudio stream status (over- or underflow) flags.">RtAudioStreamStatus</a> status, <span class="keywordtype">void</span> *data )
+           <span class="keywordtype">double</span> streamTime, <a class="code" href="RtAudio_8h.html#a80e306d363583da3b0a1b65d9b57c806" title="RtAudio stream status (over- or underflow) flags.">RtAudioStreamStatus</a> status, <span class="keywordtype">void</span> *data )
 {
   <span class="comment">// Since the number of input and output channels is equal, we can do</span>
   <span class="comment">// a simple buffer copy operation here.</span>
-  <span class="keywordflow">if</span> ( status ) std::cout &lt;&lt; <span class="stringliteral">"Stream over/underflow detected."</span> &lt;&lt; std::endl;
+  <span class="keywordflow">if</span> ( status ) std::cout &lt;&lt; <span class="stringliteral">&quot;Stream over/underflow detected.&quot;</span> &lt;&lt; std::endl;
 
   <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *bytes = (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *) data;
   memcpy( outputBuffer, inputBuffer, *bytes );
 <span class="keywordtype">int</span> main()
 {
  <a class="code" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> adac;
-  <span class="keywordflow">if</span> ( adac.<a class="code" href="classRtAudio.html#747ce2d73803641bbb66d6e78092aa1a" title="A public function that queries for the number of audio devices available.">getDeviceCount</a>() &lt; 1 ) {
-    std::cout &lt;&lt; <span class="stringliteral">"\nNo audio devices found!\n"</span>;
+  <span class="keywordflow">if</span> ( adac.<a class="code" href="classRtAudio.html#a747ce2d73803641bbb66d6e78092aa1a" title="A public function that queries for the number of audio devices available.">getDeviceCount</a>() &lt; 1 ) {
+    std::cout &lt;&lt; <span class="stringliteral">&quot;\nNo audio devices found!\n&quot;</span>;
     exit( 0 );
   }
 
   <span class="comment">// Set the same number of channels for both input and output.</span>
   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> bufferBytes, bufferFrames = 512;
   <a class="code" href="structRtAudio_1_1StreamParameters.html" title="The structure for specifying input or ouput stream parameters.">RtAudio::StreamParameters</a> iParams, oParams;
-  iParams.<a class="code" href="structRtAudio_1_1StreamParameters.html#ffd27496c70c0986522056234c64e28e">deviceId</a> = 0; <span class="comment">// first available device</span>
-  iParams.<a class="code" href="structRtAudio_1_1StreamParameters.html#78798b65fada7941e1a7e47c11c9e627">nChannels</a> = 2;
-  oParams.<a class="code" href="structRtAudio_1_1StreamParameters.html#ffd27496c70c0986522056234c64e28e">deviceId</a> = 0; <span class="comment">// first available device</span>
-  oParams.<a class="code" href="structRtAudio_1_1StreamParameters.html#78798b65fada7941e1a7e47c11c9e627">nChannels</a> = 2;
+  iParams.<a class="code" href="structRtAudio_1_1StreamParameters.html#ab3c72bcf3ef12149ae9a4fb597cc5489">deviceId</a> = 0; <span class="comment">// first available device</span>
+  iParams.<a class="code" href="structRtAudio_1_1StreamParameters.html#a88a10091b6e284e21235cc6f25332ebd">nChannels</a> = 2;
+  oParams.<a class="code" href="structRtAudio_1_1StreamParameters.html#ab3c72bcf3ef12149ae9a4fb597cc5489">deviceId</a> = 0; <span class="comment">// first available device</span>
+  oParams.<a class="code" href="structRtAudio_1_1StreamParameters.html#a88a10091b6e284e21235cc6f25332ebd">nChannels</a> = 2;
 
   <span class="keywordflow">try</span> {
-    adac.<a class="code" href="classRtAudio.html#facc99740fa4c5606fb35467cdea6da8" title="A public function for opening a stream with the specified parameters.">openStream</a>( &amp;oParams, &amp;iParams, RTAUDIO_SINT32, 44100, &amp;bufferFrames, &amp;inout, (<span class="keywordtype">void</span> *)&amp;bufferBytes );
+    adac.<a class="code" href="classRtAudio.html#afacc99740fa4c5606fb35467cdea6da8" title="A public function for opening a stream with the specified parameters.">openStream</a>( &amp;oParams, &amp;iParams, RTAUDIO_SINT32, 44100, &amp;bufferFrames, &amp;inout, (<span class="keywordtype">void</span> *)&amp;bufferBytes );
   }
   <span class="keywordflow">catch</span> ( <a class="code" href="classRtError.html" title="Exception handling class for RtAudio &amp;amp; RtMidi.">RtError</a>&amp; e ) {
-    e.<a class="code" href="classRtError.html#da41f7472122f45bc5b4677f066e0943" title="Prints thrown error message to stderr.">printMessage</a>();
+    e.<a class="code" href="classRtError.html#ada41f7472122f45bc5b4677f066e0943" title="Prints thrown error message to stderr.">printMessage</a>();
     exit( 0 );
   }
 
   bufferBytes = bufferFrames * 2 * 4;
 
   <span class="keywordflow">try</span> {
-    adac.<a class="code" href="classRtAudio.html#ec017a89629ccef66a90b60be22a2f80" title="A function that starts a stream.">startStream</a>();
+    adac.<a class="code" href="classRtAudio.html#aec017a89629ccef66a90b60be22a2f80" title="A function that starts a stream.">startStream</a>();
 
     <span class="keywordtype">char</span> input;
-    std::cout &lt;&lt; <span class="stringliteral">"\nRunning ... press &lt;enter&gt; to quit.\n"</span>;
+    std::cout &lt;&lt; <span class="stringliteral">&quot;\nRunning ... press &lt;enter&gt; to quit.\n&quot;</span>;
     std::cin.get(input);
 
     <span class="comment">// Stop the stream.</span>
-    adac.<a class="code" href="classRtAudio.html#f4c241ff86936ecc8108f0d9dfe3efdd" title="Stop a stream, allowing any samples remaining in the output queue to be played.">stopStream</a>();
+    adac.<a class="code" href="classRtAudio.html#af4c241ff86936ecc8108f0d9dfe3efdd" title="Stop a stream, allowing any samples remaining in the output queue to be played.">stopStream</a>();
   }
   <span class="keywordflow">catch</span> ( <a class="code" href="classRtError.html" title="Exception handling class for RtAudio &amp;amp; RtMidi.">RtError</a>&amp; e ) {
-    e.<a class="code" href="classRtError.html#da41f7472122f45bc5b4677f066e0943" title="Prints thrown error message to stderr.">printMessage</a>();
+    e.<a class="code" href="classRtError.html#ada41f7472122f45bc5b4677f066e0943" title="Prints thrown error message to stderr.">printMessage</a>();
     <span class="keywordflow">goto</span> cleanup;
   }
 
  cleanup:
-  <span class="keywordflow">if</span> ( adac.<a class="code" href="classRtAudio.html#3863e45ff81dbe97176de0ee7545917f" title="Returns true if a stream is open and false if not.">isStreamOpen</a>() ) adac.<a class="code" href="classRtAudio.html#90d599002ad32cf250a4cb866f2cc93a" title="A function that closes a stream and frees any associated stream memory.">closeStream</a>();
+  <span class="keywordflow">if</span> ( adac.<a class="code" href="classRtAudio.html#a3863e45ff81dbe97176de0ee7545917f" title="Returns true if a stream is open and false if not.">isStreamOpen</a>() ) adac.<a class="code" href="classRtAudio.html#a90d599002ad32cf250a4cb866f2cc93a" title="A function that closes a stream and frees any associated stream memory.">closeStream</a>();
 
   <span class="keywordflow">return</span> 0;
 }
-</pre></div><p>
-In this example, audio recorded by the stream input will be played out during the next round of audio processing.<p>
-Note that a duplex stream can make use of two different devices (except when using the Linux Jack and Windows ASIO APIs). However, this may cause timing problems due to possible device clock variations, unless a common external "sync" is provided. </div>
+</pre></div><p>In this example, audio recorded by the stream input will be played out during the next round of audio processing.</p>
+<p>Note that a duplex stream can make use of two different devices (except when using the Linux Jack and Windows ASIO APIs). However, this may cause timing problems due to possible device clock variations, unless a common external "sync" is provided. </p>
+</div>
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2001-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
 </table>
 
 </BODY>
index bbd5805342c6a0050f779a7668ae75639ff2ff28..1d434d34be0db96facb4701c8e8a6b8728ae7da5 100644 (file)
@@ -8,13 +8,16 @@
 <CENTER>
 <a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
 <HR>
-<!-- Generated by Doxygen 1.5.8 -->
+<!-- Generated by Doxygen 1.6.2 -->
 <div class="contents">
-<h1><a class="anchor" name="errors">Error Handling </a></h1><a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> makes restrained use of C++ exceptions. That is, exceptions are thrown only when system errors occur that prevent further class operation or when the user makes invalid function calls. In other cases, a warning message may be displayed and an appropriate value is returned. For example, if a system error occurs when processing the <a class="el" href="classRtAudio.html#747ce2d73803641bbb66d6e78092aa1a" title="A public function that queries for the number of audio devices available.">RtAudio::getDeviceCount()</a> function, the return value is zero. In such a case, the user cannot expect to make use of most other <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> functions because no devices are available (and thus a stream cannot be opened). A client can call the function <a class="el" href="classRtAudio.html#f0752ee51cce3dd90a3bd009f9fdbe77" title="Specify whether warning messages should be printed to stderr.">RtAudio::showWarnings()</a> with a boolean argument to enable or disable the printing of warning messages to <code>stderr</code>. By default, warning messages are displayed. There is a protected <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> method, error(), that can be modified to globally control how these messages are handled and reported. </div>
+
+
+<h1><a class="anchor" id="errors">Error Handling </a></h1><p><a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> makes restrained use of C++ exceptions. That is, exceptions are thrown only when system errors occur that prevent further class operation or when the user makes invalid function calls. In other cases, a warning message may be displayed and an appropriate value is returned. For example, if a system error occurs when processing the <a class="el" href="classRtAudio.html#a747ce2d73803641bbb66d6e78092aa1a" title="A public function that queries for the number of audio devices available.">RtAudio::getDeviceCount()</a> function, the return value is zero. In such a case, the user cannot expect to make use of most other <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> functions because no devices are available (and thus a stream cannot be opened). A client can call the function <a class="el" href="classRtAudio.html#af0752ee51cce3dd90a3bd009f9fdbe77" title="Specify whether warning messages should be printed to stderr.">RtAudio::showWarnings()</a> with a boolean argument to enable or disable the printing of warning messages to <code>stderr</code>. By default, warning messages are displayed. There is a protected <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> method, error(), that can be modified to globally control how these messages are handled and reported. </p>
+</div>
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2001-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
 </table>
 
 </BODY>
index 4505706e3669488dbb8ddfb574a488844feea8e3..92314be79eb261c7faaef1d86539fa8850e41d15 100644 (file)
@@ -8,17 +8,17 @@
 <CENTER>
 <a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
 <HR>
-<!-- Generated by Doxygen 1.5.8 -->
+<!-- Generated by Doxygen 1.6.2 -->
 <div class="contents">
 <h1>File List</h1>Here is a list of all documented files with brief descriptions:<table>
-  <tr><td class="indexkey"><a class="el" href="RtAudio_8h.html">RtAudio.h</a> <a href="RtAudio_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
-  <tr><td class="indexkey"><b>RtError.h</b> <a href="RtError_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="RtAudio_8h.html">RtAudio.h</a> <a href="RtAudio_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>RtError.h</b> <a href="RtError_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
 </table>
 </div>
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2001-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
 </table>
 
 </BODY>
index 89fca6ef73f1434cf335593127542fa7835bfef1..611ba70f0e224f3f58e9199f1ac436910fa7eb19 100644 (file)
@@ -8,7 +8,7 @@
 <CENTER>
 <a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
 <HR>
-<!-- Generated by Doxygen 1.5.8 -->
+<!-- Generated by Doxygen 1.6.2 -->
   <div class="tabs">
     <ul>
       <li class="current"><a href="functions.html"><span>All</span></a></li>
   </div>
 <div class="contents">
 Here is a list of all documented class members with links to the class documentation for each member:
-<p>
-<h3><a class="anchor" name="index_a">- a -</a></h3><ul>
+
+<h3><a class="anchor" id="index_a">- a -</a></h3><ul>
 <li>abortStream()
-: <a class="el" href="classRtAudio.html#d0586b47cd6bb9591a80b4052815991f">RtAudio</a>
+: <a class="el" href="classRtAudio.html#ad0586b47cd6bb9591a80b4052815991f">RtAudio</a>
+</li>
 <li>Api
-: <a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d849">RtAudio</a>
+: <a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849">RtAudio</a>
+</li>
 </ul>
-<h3><a class="anchor" name="index_c">- c -</a></h3><ul>
+
+
+<h3><a class="anchor" id="index_c">- c -</a></h3><ul>
 <li>closeStream()
-: <a class="el" href="classRtAudio.html#90d599002ad32cf250a4cb866f2cc93a">RtAudio</a>
+: <a class="el" href="classRtAudio.html#a90d599002ad32cf250a4cb866f2cc93a">RtAudio</a>
+</li>
 </ul>
-<h3><a class="anchor" name="index_d">- d -</a></h3><ul>
+
+
+<h3><a class="anchor" id="index_d">- d -</a></h3><ul>
 <li>DEBUG_WARNING
-: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac20e5a369394d19b704ace17002007eba">RtError</a>
+: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca20e5a369394d19b704ace17002007eba">RtError</a>
+</li>
 <li>deviceId
-: <a class="el" href="structRtAudio_1_1StreamParameters.html#ffd27496c70c0986522056234c64e28e">RtAudio::RtAudio::StreamParameters</a>
+: <a class="el" href="structRtAudio_1_1StreamParameters.html#ab3c72bcf3ef12149ae9a4fb597cc5489">RtAudio::StreamParameters</a>
+</li>
 <li>DRIVER_ERROR
-: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac995e97ecf6beeedaba525022a63aec6b">RtError</a>
+: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca995e97ecf6beeedaba525022a63aec6b">RtError</a>
+</li>
 <li>duplexChannels
-: <a class="el" href="structRtAudio_1_1DeviceInfo.html#ca6ecfb8b5b8c114c54809d8af50ee5b">RtAudio::RtAudio::DeviceInfo</a>
+: <a class="el" href="structRtAudio_1_1DeviceInfo.html#a3e8ad34c2d14e24293a0beafc26186e7">RtAudio::DeviceInfo</a>
+</li>
 </ul>
-<h3><a class="anchor" name="index_f">- f -</a></h3><ul>
+
+
+<h3><a class="anchor" id="index_f">- f -</a></h3><ul>
 <li>firstChannel
-: <a class="el" href="structRtAudio_1_1StreamParameters.html#ddc8281f23a87455ec6dedbc766a74db">RtAudio::RtAudio::StreamParameters</a>
+: <a class="el" href="structRtAudio_1_1StreamParameters.html#ad4b4503782653ec93c83328c46abe50c">RtAudio::StreamParameters</a>
+</li>
 <li>flags
-: <a class="el" href="structRtAudio_1_1StreamOptions.html#6a284d045b8adcfcf178a4f6a22330f8">RtAudio::RtAudio::StreamOptions</a>
+: <a class="el" href="structRtAudio_1_1StreamOptions.html#a0ecc98b031aa3af49d09b781643e298b">RtAudio::StreamOptions</a>
+</li>
 </ul>
-<h3><a class="anchor" name="index_g">- g -</a></h3><ul>
+
+
+<h3><a class="anchor" id="index_g">- g -</a></h3><ul>
 <li>getCompiledApi()
-: <a class="el" href="classRtAudio.html#e266ffad2ef428d0b2c6c262d391ce26">RtAudio</a>
+: <a class="el" href="classRtAudio.html#ae266ffad2ef428d0b2c6c262d391ce26">RtAudio</a>
+</li>
 <li>getCurrentApi()
-: <a class="el" href="classRtAudio.html#83687634795792b2c47e4ae1cf8a5246">RtAudio</a>
+: <a class="el" href="classRtAudio.html#a83687634795792b2c47e4ae1cf8a5246">RtAudio</a>
+</li>
 <li>getDefaultInputDevice()
-: <a class="el" href="classRtAudio.html#ad8b94edd3cd379ee300b125750ac6ce">RtAudio</a>
+: <a class="el" href="classRtAudio.html#aad8b94edd3cd379ee300b125750ac6ce">RtAudio</a>
+</li>
 <li>getDefaultOutputDevice()
-: <a class="el" href="classRtAudio.html#3a3f3dbe13ea696b521e49cdaaa357bc">RtAudio</a>
+: <a class="el" href="classRtAudio.html#a3a3f3dbe13ea696b521e49cdaaa357bc">RtAudio</a>
+</li>
 <li>getDeviceCount()
-: <a class="el" href="classRtAudio.html#747ce2d73803641bbb66d6e78092aa1a">RtAudio</a>
+: <a class="el" href="classRtAudio.html#a747ce2d73803641bbb66d6e78092aa1a">RtAudio</a>
+</li>
 <li>getDeviceInfo()
-: <a class="el" href="classRtAudio.html#02d7ff44ad1d7eae22283a052f3dfda8">RtAudio</a>
+: <a class="el" href="classRtAudio.html#a02d7ff44ad1d7eae22283a052f3dfda8">RtAudio</a>
+</li>
 <li>getMessage()
-: <a class="el" href="classRtError.html#c7f467788e29d246333d7af050801164">RtError</a>
+: <a class="el" href="classRtError.html#ac7f467788e29d246333d7af050801164">RtError</a>
+</li>
 <li>getStreamLatency()
-: <a class="el" href="classRtAudio.html#843c989d9f501c71bc2f2c5ca18df9f3">RtAudio</a>
+: <a class="el" href="classRtAudio.html#a843c989d9f501c71bc2f2c5ca18df9f3">RtAudio</a>
+</li>
 <li>getStreamSampleRate()
-: <a class="el" href="classRtAudio.html#28214b8b05d60b45c24ee6fae7b2a0b5">RtAudio</a>
+: <a class="el" href="classRtAudio.html#a28214b8b05d60b45c24ee6fae7b2a0b5">RtAudio</a>
+</li>
 <li>getStreamTime()
-: <a class="el" href="classRtAudio.html#344e59a62353c5791db4621b985cb2ca">RtAudio</a>
+: <a class="el" href="classRtAudio.html#a344e59a62353c5791db4621b985cb2ca">RtAudio</a>
+</li>
 <li>getType()
-: <a class="el" href="classRtError.html#4ee7df9728d73f533afbaddcd9ca4d9c">RtError</a>
+: <a class="el" href="classRtError.html#a4ee7df9728d73f533afbaddcd9ca4d9c">RtError</a>
+</li>
 </ul>
-<h3><a class="anchor" name="index_i">- i -</a></h3><ul>
+
+
+<h3><a class="anchor" id="index_i">- i -</a></h3><ul>
 <li>inputChannels
-: <a class="el" href="structRtAudio_1_1DeviceInfo.html#731b31adf84c550ab98329be1baa58b4">RtAudio::RtAudio::DeviceInfo</a>
+: <a class="el" href="structRtAudio_1_1DeviceInfo.html#a56247b458a937ae84d98ca9c4b243275">RtAudio::DeviceInfo</a>
+</li>
 <li>INVALID_DEVICE
-: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903acd6064062066fffdba258237a7c2159b1">RtError</a>
+: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acad6064062066fffdba258237a7c2159b1">RtError</a>
+</li>
 <li>INVALID_PARAMETER
-: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903aca3eabf0f71120beaba94148a1b78fed6">RtError</a>
+: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaa3eabf0f71120beaba94148a1b78fed6">RtError</a>
+</li>
 <li>INVALID_USE
-: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac8e65f51a3fbdc1a4a1552b3260df36bc">RtError</a>
+: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca8e65f51a3fbdc1a4a1552b3260df36bc">RtError</a>
+</li>
 <li>isDefaultInput
-: <a class="el" href="structRtAudio_1_1DeviceInfo.html#a8b03618fa1d4c051f6add14bb031728">RtAudio::RtAudio::DeviceInfo</a>
+: <a class="el" href="structRtAudio_1_1DeviceInfo.html#a7c8aca084bd908799b6be5954b80def2">RtAudio::DeviceInfo</a>
+</li>
 <li>isDefaultOutput
-: <a class="el" href="structRtAudio_1_1DeviceInfo.html#af74fc23f451fdd22ed073a47f0db674">RtAudio::RtAudio::DeviceInfo</a>
+: <a class="el" href="structRtAudio_1_1DeviceInfo.html#a5365245e73ffe29a05734de4474acd58">RtAudio::DeviceInfo</a>
+</li>
 <li>isStreamOpen()
-: <a class="el" href="classRtAudio.html#3863e45ff81dbe97176de0ee7545917f">RtAudio</a>
+: <a class="el" href="classRtAudio.html#a3863e45ff81dbe97176de0ee7545917f">RtAudio</a>
+</li>
 <li>isStreamRunning()
-: <a class="el" href="classRtAudio.html#84cc8d9b7ab9bc5f37bcf48430ec5aea">RtAudio</a>
+: <a class="el" href="classRtAudio.html#a84cc8d9b7ab9bc5f37bcf48430ec5aea">RtAudio</a>
+</li>
 </ul>
-<h3><a class="anchor" name="index_l">- l -</a></h3><ul>
+
+
+<h3><a class="anchor" id="index_l">- l -</a></h3><ul>
 <li>LINUX_ALSA
-: <a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d849a7a2ba095c2806caa893b6fb8fc3a1a8">RtAudio</a>
+: <a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849aa7a2ba095c2806caa893b6fb8fc3a1a8">RtAudio</a>
+</li>
 <li>LINUX_OSS
-: <a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d84939c84615e61de75e6a4e865596d62c82">RtAudio</a>
+: <a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a39c84615e61de75e6a4e865596d62c82">RtAudio</a>
+</li>
 </ul>
-<h3><a class="anchor" name="index_m">- m -</a></h3><ul>
+
+
+<h3><a class="anchor" id="index_m">- m -</a></h3><ul>
 <li>MACOSX_CORE
-: <a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d8499fec92b8272244a87a6a11a717bd662d">RtAudio</a>
+: <a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a9fec92b8272244a87a6a11a717bd662d">RtAudio</a>
+</li>
 <li>MEMORY_ERROR
-: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903acb4f813e5a36905c89d4081a59497432e">RtError</a>
+: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acab4f813e5a36905c89d4081a59497432e">RtError</a>
+</li>
 </ul>
-<h3><a class="anchor" name="index_n">- n -</a></h3><ul>
+
+
+<h3><a class="anchor" id="index_n">- n -</a></h3><ul>
 <li>name
-: <a class="el" href="structRtAudio_1_1DeviceInfo.html#a0e2ea10c52c206c9e105ac76b01f194">RtAudio::RtAudio::DeviceInfo</a>
+: <a class="el" href="structRtAudio_1_1DeviceInfo.html#a24df596ab8d54f2eb540c7cf16212b3b">RtAudio::DeviceInfo</a>
+</li>
 <li>nativeFormats
-: <a class="el" href="structRtAudio_1_1DeviceInfo.html#97559ee4a1f2c8cfb765949e6193e1f4">RtAudio::RtAudio::DeviceInfo</a>
+: <a class="el" href="structRtAudio_1_1DeviceInfo.html#a23251b549b89b2fe04a57fcd7cb76ea4">RtAudio::DeviceInfo</a>
+</li>
 <li>nChannels
-: <a class="el" href="structRtAudio_1_1StreamParameters.html#78798b65fada7941e1a7e47c11c9e627">RtAudio::RtAudio::StreamParameters</a>
+: <a class="el" href="structRtAudio_1_1StreamParameters.html#a88a10091b6e284e21235cc6f25332ebd">RtAudio::StreamParameters</a>
+</li>
 <li>NO_DEVICES_FOUND
-: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903acf267eb2d710f33d649ba840eeab6ff82">RtError</a>
+: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaf267eb2d710f33d649ba840eeab6ff82">RtError</a>
+</li>
 <li>numberOfBuffers
-: <a class="el" href="structRtAudio_1_1StreamOptions.html#5a04d3c3d0c1cfa063872ecff383af1d">RtAudio::RtAudio::StreamOptions</a>
+: <a class="el" href="structRtAudio_1_1StreamOptions.html#a75a14cfab903d0e1c091bc16aec80240">RtAudio::StreamOptions</a>
+</li>
 </ul>
-<h3><a class="anchor" name="index_o">- o -</a></h3><ul>
+
+
+<h3><a class="anchor" id="index_o">- o -</a></h3><ul>
 <li>openStream()
-: <a class="el" href="classRtAudio.html#facc99740fa4c5606fb35467cdea6da8">RtAudio</a>
+: <a class="el" href="classRtAudio.html#afacc99740fa4c5606fb35467cdea6da8">RtAudio</a>
+</li>
 <li>outputChannels
-: <a class="el" href="structRtAudio_1_1DeviceInfo.html#185f8aac1095de4fbb6e0076875d24c4">RtAudio::RtAudio::DeviceInfo</a>
+: <a class="el" href="structRtAudio_1_1DeviceInfo.html#a81aaf488f8158ef55b1bb678f66feb7d">RtAudio::DeviceInfo</a>
+</li>
 </ul>
-<h3><a class="anchor" name="index_p">- p -</a></h3><ul>
+
+
+<h3><a class="anchor" id="index_p">- p -</a></h3><ul>
 <li>printMessage()
-: <a class="el" href="classRtError.html#da41f7472122f45bc5b4677f066e0943">RtError</a>
+: <a class="el" href="classRtError.html#ada41f7472122f45bc5b4677f066e0943">RtError</a>
+</li>
 <li>priority
-: <a class="el" href="structRtAudio_1_1StreamOptions.html#81b364f137d1ee1073b74dac666af352">RtAudio::RtAudio::StreamOptions</a>
+: <a class="el" href="structRtAudio_1_1StreamOptions.html#adfd267059434edb21573c584e6367def">RtAudio::StreamOptions</a>
+</li>
 <li>probed
-: <a class="el" href="structRtAudio_1_1DeviceInfo.html#5bf008c629ef493c713ec870d0217407">RtAudio::RtAudio::DeviceInfo</a>
+: <a class="el" href="structRtAudio_1_1DeviceInfo.html#a97573717ccb1e75a834a0a108cd6982d">RtAudio::DeviceInfo</a>
+</li>
 </ul>
-<h3><a class="anchor" name="index_r">- r -</a></h3><ul>
+
+
+<h3><a class="anchor" id="index_r">- r -</a></h3><ul>
 <li>RtAudio()
-: <a class="el" href="classRtAudio.html#fd0bfa26deae9804e18faff59d0273d9">RtAudio</a>
+: <a class="el" href="classRtAudio.html#afd0bfa26deae9804e18faff59d0273d9">RtAudio</a>
+</li>
 <li>RTAUDIO_DUMMY
-: <a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d849b06b8fd88bf18c9a2b8271f6961ae2d1">RtAudio</a>
+: <a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849ab06b8fd88bf18c9a2b8271f6961ae2d1">RtAudio</a>
+</li>
 <li>RtError()
-: <a class="el" href="classRtError.html#a479a305ccbe56be0fd9137b9b405a37">RtError</a>
+: <a class="el" href="classRtError.html#aa479a305ccbe56be0fd9137b9b405a37">RtError</a>
+</li>
 </ul>
-<h3><a class="anchor" name="index_s">- s -</a></h3><ul>
+
+
+<h3><a class="anchor" id="index_s">- s -</a></h3><ul>
 <li>sampleRates
-: <a class="el" href="structRtAudio_1_1DeviceInfo.html#5b158efcbfbd30e7226df92d0109d475">RtAudio::RtAudio::DeviceInfo</a>
+: <a class="el" href="structRtAudio_1_1DeviceInfo.html#afa65f5f92f66ce7aacd3ff35e11b230f">RtAudio::DeviceInfo</a>
+</li>
 <li>showWarnings()
-: <a class="el" href="classRtAudio.html#f0752ee51cce3dd90a3bd009f9fdbe77">RtAudio</a>
+: <a class="el" href="classRtAudio.html#af0752ee51cce3dd90a3bd009f9fdbe77">RtAudio</a>
+</li>
 <li>startStream()
-: <a class="el" href="classRtAudio.html#ec017a89629ccef66a90b60be22a2f80">RtAudio</a>
+: <a class="el" href="classRtAudio.html#aec017a89629ccef66a90b60be22a2f80">RtAudio</a>
+</li>
 <li>stopStream()
-: <a class="el" href="classRtAudio.html#f4c241ff86936ecc8108f0d9dfe3efdd">RtAudio</a>
+: <a class="el" href="classRtAudio.html#af4c241ff86936ecc8108f0d9dfe3efdd">RtAudio</a>
+</li>
 <li>streamName
-: <a class="el" href="structRtAudio_1_1StreamOptions.html#214da35056f18ffb7c8e4dc074a01a9a">RtAudio::RtAudio::StreamOptions</a>
+: <a class="el" href="structRtAudio_1_1StreamOptions.html#a2a4b0b8d690c624d20f4e8f4be6ca9ba">RtAudio::StreamOptions</a>
+</li>
 <li>SYSTEM_ERROR
-: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac8947d0a2e2a84ecf3646271844e06a6b">RtError</a>
+: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca8947d0a2e2a84ecf3646271844e06a6b">RtError</a>
+</li>
 </ul>
-<h3><a class="anchor" name="index_t">- t -</a></h3><ul>
+
+
+<h3><a class="anchor" id="index_t">- t -</a></h3><ul>
 <li>THREAD_ERROR
-: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903aceb6282f991e2d93ab294a4272fc3f6c6">RtError</a>
+: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaeb6282f991e2d93ab294a4272fc3f6c6">RtError</a>
+</li>
 <li>Type
-: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac">RtError</a>
+: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903ac">RtError</a>
+</li>
 </ul>
-<h3><a class="anchor" name="index_u">- u -</a></h3><ul>
+
+
+<h3><a class="anchor" id="index_u">- u -</a></h3><ul>
 <li>UNIX_JACK
-: <a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d8494767e17c6edfbd827f91763915df4105">RtAudio</a>
+: <a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a4767e17c6edfbd827f91763915df4105">RtAudio</a>
+</li>
 <li>UNSPECIFIED
-: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac444efd3ccf774b2ba9f9bde70ec71cd6">RtError</a>
-, <a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d849a49af3ac767106158bc6cad74fb214ae">RtAudio</a>
+: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca444efd3ccf774b2ba9f9bde70ec71cd6">RtError</a>
+, <a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849aa49af3ac767106158bc6cad74fb214ae">RtAudio</a>
+</li>
 </ul>
-<h3><a class="anchor" name="index_w">- w -</a></h3><ul>
+
+
+<h3><a class="anchor" id="index_w">- w -</a></h3><ul>
 <li>WARNING
-: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac3a1603c24a56cbdaf5f8ae4ddcb86398">RtError</a>
+: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca3a1603c24a56cbdaf5f8ae4ddcb86398">RtError</a>
+</li>
 <li>what()
-: <a class="el" href="classRtError.html#eb843b7a7785d66061c61ebfc29e7e9d">RtError</a>
+: <a class="el" href="classRtError.html#aeb843b7a7785d66061c61ebfc29e7e9d">RtError</a>
+</li>
 <li>WINDOWS_ASIO
-: <a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d849219517d1df90f94d07758481155bd469">RtAudio</a>
+: <a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a219517d1df90f94d07758481155bd469">RtAudio</a>
+</li>
 <li>WINDOWS_DS
-: <a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d84928478830f42c2fd61e6c7ad498901931">RtAudio</a>
+: <a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a28478830f42c2fd61e6c7ad498901931">RtAudio</a>
+</li>
 </ul>
-<h3><a class="anchor" name="index_~">- ~ -</a></h3><ul>
+
+
+<h3><a class="anchor" id="index_0x7e">- ~ -</a></h3><ul>
 <li>~RtAudio()
-: <a class="el" href="classRtAudio.html#a8a9716fd64680657ef69c9465442a2f">RtAudio</a>
+: <a class="el" href="classRtAudio.html#aa8a9716fd64680657ef69c9465442a2f">RtAudio</a>
+</li>
 <li>~RtError()
-: <a class="el" href="classRtError.html#6793e03386e7e69ffafb65a296dfa48c">RtError</a>
+: <a class="el" href="classRtError.html#a6793e03386e7e69ffafb65a296dfa48c">RtError</a>
+</li>
 </ul>
 </div>
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2001-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
 </table>
 
 </BODY>
index 007c4f61bda425c57d619aa945c1132f857e25c5..e8b38d8763af0cfc20e7844dfd8fb583fd77d390 100644 (file)
@@ -8,7 +8,7 @@
 <CENTER>
 <a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
 <HR>
-<!-- Generated by Doxygen 1.5.8 -->
+<!-- Generated by Doxygen 1.6.2 -->
   <div class="tabs">
     <ul>
       <li><a href="functions.html"><span>All</span></a></li>
     </ul>
   </div>
 <div class="contents">
-&nbsp;
-<p>
-<ul>
+&nbsp;<ul>
 <li>Api
-: <a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d849">RtAudio</a>
+: <a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849">RtAudio</a>
+</li>
 <li>Type
-: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac">RtError</a>
+: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903ac">RtError</a>
+</li>
 </ul>
 </div>
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2001-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
 </table>
 
 </BODY>
index 92c87932a8e6179a8c35dbc2a01330d666656efe..ab5a68f25e8a07c1a4378c6d911278ccddf89279 100644 (file)
@@ -8,7 +8,7 @@
 <CENTER>
 <a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
 <HR>
-<!-- Generated by Doxygen 1.5.8 -->
+<!-- Generated by Doxygen 1.6.2 -->
   <div class="tabs">
     <ul>
       <li><a href="functions.html"><span>All</span></a></li>
     </ul>
   </div>
 <div class="contents">
-&nbsp;
-<p>
-<ul>
+&nbsp;<ul>
 <li>DEBUG_WARNING
-: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac20e5a369394d19b704ace17002007eba">RtError</a>
+: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca20e5a369394d19b704ace17002007eba">RtError</a>
+</li>
 <li>DRIVER_ERROR
-: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac995e97ecf6beeedaba525022a63aec6b">RtError</a>
+: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca995e97ecf6beeedaba525022a63aec6b">RtError</a>
+</li>
 <li>INVALID_DEVICE
-: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903acd6064062066fffdba258237a7c2159b1">RtError</a>
+: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acad6064062066fffdba258237a7c2159b1">RtError</a>
+</li>
 <li>INVALID_PARAMETER
-: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903aca3eabf0f71120beaba94148a1b78fed6">RtError</a>
+: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaa3eabf0f71120beaba94148a1b78fed6">RtError</a>
+</li>
 <li>INVALID_USE
-: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac8e65f51a3fbdc1a4a1552b3260df36bc">RtError</a>
+: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca8e65f51a3fbdc1a4a1552b3260df36bc">RtError</a>
+</li>
 <li>LINUX_ALSA
-: <a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d849a7a2ba095c2806caa893b6fb8fc3a1a8">RtAudio</a>
+: <a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849aa7a2ba095c2806caa893b6fb8fc3a1a8">RtAudio</a>
+</li>
 <li>LINUX_OSS
-: <a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d84939c84615e61de75e6a4e865596d62c82">RtAudio</a>
+: <a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a39c84615e61de75e6a4e865596d62c82">RtAudio</a>
+</li>
 <li>MACOSX_CORE
-: <a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d8499fec92b8272244a87a6a11a717bd662d">RtAudio</a>
+: <a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a9fec92b8272244a87a6a11a717bd662d">RtAudio</a>
+</li>
 <li>MEMORY_ERROR
-: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903acb4f813e5a36905c89d4081a59497432e">RtError</a>
+: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acab4f813e5a36905c89d4081a59497432e">RtError</a>
+</li>
 <li>NO_DEVICES_FOUND
-: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903acf267eb2d710f33d649ba840eeab6ff82">RtError</a>
+: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaf267eb2d710f33d649ba840eeab6ff82">RtError</a>
+</li>
 <li>RTAUDIO_DUMMY
-: <a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d849b06b8fd88bf18c9a2b8271f6961ae2d1">RtAudio</a>
+: <a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849ab06b8fd88bf18c9a2b8271f6961ae2d1">RtAudio</a>
+</li>
 <li>SYSTEM_ERROR
-: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac8947d0a2e2a84ecf3646271844e06a6b">RtError</a>
+: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca8947d0a2e2a84ecf3646271844e06a6b">RtError</a>
+</li>
 <li>THREAD_ERROR
-: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903aceb6282f991e2d93ab294a4272fc3f6c6">RtError</a>
+: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaeb6282f991e2d93ab294a4272fc3f6c6">RtError</a>
+</li>
 <li>UNIX_JACK
-: <a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d8494767e17c6edfbd827f91763915df4105">RtAudio</a>
+: <a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a4767e17c6edfbd827f91763915df4105">RtAudio</a>
+</li>
 <li>UNSPECIFIED
-: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac444efd3ccf774b2ba9f9bde70ec71cd6">RtError</a>
-, <a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d849a49af3ac767106158bc6cad74fb214ae">RtAudio</a>
+: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca444efd3ccf774b2ba9f9bde70ec71cd6">RtError</a>
+, <a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849aa49af3ac767106158bc6cad74fb214ae">RtAudio</a>
+</li>
 <li>WARNING
-: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac3a1603c24a56cbdaf5f8ae4ddcb86398">RtError</a>
+: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca3a1603c24a56cbdaf5f8ae4ddcb86398">RtError</a>
+</li>
 <li>WINDOWS_ASIO
-: <a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d849219517d1df90f94d07758481155bd469">RtAudio</a>
+: <a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a219517d1df90f94d07758481155bd469">RtAudio</a>
+</li>
 <li>WINDOWS_DS
-: <a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d84928478830f42c2fd61e6c7ad498901931">RtAudio</a>
+: <a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a28478830f42c2fd61e6c7ad498901931">RtAudio</a>
+</li>
 </ul>
 </div>
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2001-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
 </table>
 
 </BODY>
index c5520d954f805eee13df8f7c7d97e32485099584..1ef9c06876be18fce32d2e3fa1f280638394f622 100644 (file)
@@ -8,7 +8,7 @@
 <CENTER>
 <a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
 <HR>
-<!-- Generated by Doxygen 1.5.8 -->
+<!-- Generated by Doxygen 1.6.2 -->
   <div class="tabs">
     <ul>
       <li><a href="functions.html"><span>All</span></a></li>
     </ul>
   </div>
 <div class="contents">
-&nbsp;
-<p>
-<ul>
+&nbsp;<ul>
 <li>abortStream()
-: <a class="el" href="classRtAudio.html#d0586b47cd6bb9591a80b4052815991f">RtAudio</a>
+: <a class="el" href="classRtAudio.html#ad0586b47cd6bb9591a80b4052815991f">RtAudio</a>
+</li>
 <li>closeStream()
-: <a class="el" href="classRtAudio.html#90d599002ad32cf250a4cb866f2cc93a">RtAudio</a>
+: <a class="el" href="classRtAudio.html#a90d599002ad32cf250a4cb866f2cc93a">RtAudio</a>
+</li>
 <li>getCompiledApi()
-: <a class="el" href="classRtAudio.html#e266ffad2ef428d0b2c6c262d391ce26">RtAudio</a>
+: <a class="el" href="classRtAudio.html#ae266ffad2ef428d0b2c6c262d391ce26">RtAudio</a>
+</li>
 <li>getCurrentApi()
-: <a class="el" href="classRtAudio.html#83687634795792b2c47e4ae1cf8a5246">RtAudio</a>
+: <a class="el" href="classRtAudio.html#a83687634795792b2c47e4ae1cf8a5246">RtAudio</a>
+</li>
 <li>getDefaultInputDevice()
-: <a class="el" href="classRtAudio.html#ad8b94edd3cd379ee300b125750ac6ce">RtAudio</a>
+: <a class="el" href="classRtAudio.html#aad8b94edd3cd379ee300b125750ac6ce">RtAudio</a>
+</li>
 <li>getDefaultOutputDevice()
-: <a class="el" href="classRtAudio.html#3a3f3dbe13ea696b521e49cdaaa357bc">RtAudio</a>
+: <a class="el" href="classRtAudio.html#a3a3f3dbe13ea696b521e49cdaaa357bc">RtAudio</a>
+</li>
 <li>getDeviceCount()
-: <a class="el" href="classRtAudio.html#747ce2d73803641bbb66d6e78092aa1a">RtAudio</a>
+: <a class="el" href="classRtAudio.html#a747ce2d73803641bbb66d6e78092aa1a">RtAudio</a>
+</li>
 <li>getDeviceInfo()
-: <a class="el" href="classRtAudio.html#02d7ff44ad1d7eae22283a052f3dfda8">RtAudio</a>
+: <a class="el" href="classRtAudio.html#a02d7ff44ad1d7eae22283a052f3dfda8">RtAudio</a>
+</li>
 <li>getMessage()
-: <a class="el" href="classRtError.html#c7f467788e29d246333d7af050801164">RtError</a>
+: <a class="el" href="classRtError.html#ac7f467788e29d246333d7af050801164">RtError</a>
+</li>
 <li>getStreamLatency()
-: <a class="el" href="classRtAudio.html#843c989d9f501c71bc2f2c5ca18df9f3">RtAudio</a>
+: <a class="el" href="classRtAudio.html#a843c989d9f501c71bc2f2c5ca18df9f3">RtAudio</a>
+</li>
 <li>getStreamSampleRate()
-: <a class="el" href="classRtAudio.html#28214b8b05d60b45c24ee6fae7b2a0b5">RtAudio</a>
+: <a class="el" href="classRtAudio.html#a28214b8b05d60b45c24ee6fae7b2a0b5">RtAudio</a>
+</li>
 <li>getStreamTime()
-: <a class="el" href="classRtAudio.html#344e59a62353c5791db4621b985cb2ca">RtAudio</a>
+: <a class="el" href="classRtAudio.html#a344e59a62353c5791db4621b985cb2ca">RtAudio</a>
+</li>
 <li>getType()
-: <a class="el" href="classRtError.html#4ee7df9728d73f533afbaddcd9ca4d9c">RtError</a>
+: <a class="el" href="classRtError.html#a4ee7df9728d73f533afbaddcd9ca4d9c">RtError</a>
+</li>
 <li>isStreamOpen()
-: <a class="el" href="classRtAudio.html#3863e45ff81dbe97176de0ee7545917f">RtAudio</a>
+: <a class="el" href="classRtAudio.html#a3863e45ff81dbe97176de0ee7545917f">RtAudio</a>
+</li>
 <li>isStreamRunning()
-: <a class="el" href="classRtAudio.html#84cc8d9b7ab9bc5f37bcf48430ec5aea">RtAudio</a>
+: <a class="el" href="classRtAudio.html#a84cc8d9b7ab9bc5f37bcf48430ec5aea">RtAudio</a>
+</li>
 <li>openStream()
-: <a class="el" href="classRtAudio.html#facc99740fa4c5606fb35467cdea6da8">RtAudio</a>
+: <a class="el" href="classRtAudio.html#afacc99740fa4c5606fb35467cdea6da8">RtAudio</a>
+</li>
 <li>printMessage()
-: <a class="el" href="classRtError.html#da41f7472122f45bc5b4677f066e0943">RtError</a>
+: <a class="el" href="classRtError.html#ada41f7472122f45bc5b4677f066e0943">RtError</a>
+</li>
 <li>RtAudio()
-: <a class="el" href="classRtAudio.html#fd0bfa26deae9804e18faff59d0273d9">RtAudio</a>
+: <a class="el" href="classRtAudio.html#afd0bfa26deae9804e18faff59d0273d9">RtAudio</a>
+</li>
 <li>RtError()
-: <a class="el" href="classRtError.html#a479a305ccbe56be0fd9137b9b405a37">RtError</a>
+: <a class="el" href="classRtError.html#aa479a305ccbe56be0fd9137b9b405a37">RtError</a>
+</li>
 <li>showWarnings()
-: <a class="el" href="classRtAudio.html#f0752ee51cce3dd90a3bd009f9fdbe77">RtAudio</a>
+: <a class="el" href="classRtAudio.html#af0752ee51cce3dd90a3bd009f9fdbe77">RtAudio</a>
+</li>
 <li>startStream()
-: <a class="el" href="classRtAudio.html#ec017a89629ccef66a90b60be22a2f80">RtAudio</a>
+: <a class="el" href="classRtAudio.html#aec017a89629ccef66a90b60be22a2f80">RtAudio</a>
+</li>
 <li>stopStream()
-: <a class="el" href="classRtAudio.html#f4c241ff86936ecc8108f0d9dfe3efdd">RtAudio</a>
+: <a class="el" href="classRtAudio.html#af4c241ff86936ecc8108f0d9dfe3efdd">RtAudio</a>
+</li>
 <li>what()
-: <a class="el" href="classRtError.html#eb843b7a7785d66061c61ebfc29e7e9d">RtError</a>
+: <a class="el" href="classRtError.html#aeb843b7a7785d66061c61ebfc29e7e9d">RtError</a>
+</li>
 <li>~RtAudio()
-: <a class="el" href="classRtAudio.html#a8a9716fd64680657ef69c9465442a2f">RtAudio</a>
+: <a class="el" href="classRtAudio.html#aa8a9716fd64680657ef69c9465442a2f">RtAudio</a>
+</li>
 <li>~RtError()
-: <a class="el" href="classRtError.html#6793e03386e7e69ffafb65a296dfa48c">RtError</a>
+: <a class="el" href="classRtError.html#a6793e03386e7e69ffafb65a296dfa48c">RtError</a>
+</li>
 </ul>
 </div>
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2001-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
 </table>
 
 </BODY>
index d28575c31b0567083d8ccabf4fa50c7c384f1063..1f5d09253ed097765d2d0a2253c092d7e9ec70ad 100644 (file)
@@ -8,7 +8,7 @@
 <CENTER>
 <a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
 <HR>
-<!-- Generated by Doxygen 1.5.8 -->
+<!-- Generated by Doxygen 1.6.2 -->
   <div class="tabs">
     <ul>
       <li><a href="functions.html"><span>All</span></a></li>
     </ul>
   </div>
 <div class="contents">
-&nbsp;
-<p>
-<ul>
+&nbsp;<ul>
 <li>deviceId
-: <a class="el" href="structRtAudio_1_1StreamParameters.html#ffd27496c70c0986522056234c64e28e">RtAudio::RtAudio::StreamParameters</a>
+: <a class="el" href="structRtAudio_1_1StreamParameters.html#ab3c72bcf3ef12149ae9a4fb597cc5489">RtAudio::StreamParameters</a>
+</li>
 <li>duplexChannels
-: <a class="el" href="structRtAudio_1_1DeviceInfo.html#ca6ecfb8b5b8c114c54809d8af50ee5b">RtAudio::RtAudio::DeviceInfo</a>
+: <a class="el" href="structRtAudio_1_1DeviceInfo.html#a3e8ad34c2d14e24293a0beafc26186e7">RtAudio::DeviceInfo</a>
+</li>
 <li>firstChannel
-: <a class="el" href="structRtAudio_1_1StreamParameters.html#ddc8281f23a87455ec6dedbc766a74db">RtAudio::RtAudio::StreamParameters</a>
+: <a class="el" href="structRtAudio_1_1StreamParameters.html#ad4b4503782653ec93c83328c46abe50c">RtAudio::StreamParameters</a>
+</li>
 <li>flags
-: <a class="el" href="structRtAudio_1_1StreamOptions.html#6a284d045b8adcfcf178a4f6a22330f8">RtAudio::RtAudio::StreamOptions</a>
+: <a class="el" href="structRtAudio_1_1StreamOptions.html#a0ecc98b031aa3af49d09b781643e298b">RtAudio::StreamOptions</a>
+</li>
 <li>inputChannels
-: <a class="el" href="structRtAudio_1_1DeviceInfo.html#731b31adf84c550ab98329be1baa58b4">RtAudio::RtAudio::DeviceInfo</a>
+: <a class="el" href="structRtAudio_1_1DeviceInfo.html#a56247b458a937ae84d98ca9c4b243275">RtAudio::DeviceInfo</a>
+</li>
 <li>isDefaultInput
-: <a class="el" href="structRtAudio_1_1DeviceInfo.html#a8b03618fa1d4c051f6add14bb031728">RtAudio::RtAudio::DeviceInfo</a>
+: <a class="el" href="structRtAudio_1_1DeviceInfo.html#a7c8aca084bd908799b6be5954b80def2">RtAudio::DeviceInfo</a>
+</li>
 <li>isDefaultOutput
-: <a class="el" href="structRtAudio_1_1DeviceInfo.html#af74fc23f451fdd22ed073a47f0db674">RtAudio::RtAudio::DeviceInfo</a>
+: <a class="el" href="structRtAudio_1_1DeviceInfo.html#a5365245e73ffe29a05734de4474acd58">RtAudio::DeviceInfo</a>
+</li>
 <li>name
-: <a class="el" href="structRtAudio_1_1DeviceInfo.html#a0e2ea10c52c206c9e105ac76b01f194">RtAudio::RtAudio::DeviceInfo</a>
+: <a class="el" href="structRtAudio_1_1DeviceInfo.html#a24df596ab8d54f2eb540c7cf16212b3b">RtAudio::DeviceInfo</a>
+</li>
 <li>nativeFormats
-: <a class="el" href="structRtAudio_1_1DeviceInfo.html#97559ee4a1f2c8cfb765949e6193e1f4">RtAudio::RtAudio::DeviceInfo</a>
+: <a class="el" href="structRtAudio_1_1DeviceInfo.html#a23251b549b89b2fe04a57fcd7cb76ea4">RtAudio::DeviceInfo</a>
+</li>
 <li>nChannels
-: <a class="el" href="structRtAudio_1_1StreamParameters.html#78798b65fada7941e1a7e47c11c9e627">RtAudio::RtAudio::StreamParameters</a>
+: <a class="el" href="structRtAudio_1_1StreamParameters.html#a88a10091b6e284e21235cc6f25332ebd">RtAudio::StreamParameters</a>
+</li>
 <li>numberOfBuffers
-: <a class="el" href="structRtAudio_1_1StreamOptions.html#5a04d3c3d0c1cfa063872ecff383af1d">RtAudio::RtAudio::StreamOptions</a>
+: <a class="el" href="structRtAudio_1_1StreamOptions.html#a75a14cfab903d0e1c091bc16aec80240">RtAudio::StreamOptions</a>
+</li>
 <li>outputChannels
-: <a class="el" href="structRtAudio_1_1DeviceInfo.html#185f8aac1095de4fbb6e0076875d24c4">RtAudio::RtAudio::DeviceInfo</a>
+: <a class="el" href="structRtAudio_1_1DeviceInfo.html#a81aaf488f8158ef55b1bb678f66feb7d">RtAudio::DeviceInfo</a>
+</li>
 <li>priority
-: <a class="el" href="structRtAudio_1_1StreamOptions.html#81b364f137d1ee1073b74dac666af352">RtAudio::RtAudio::StreamOptions</a>
+: <a class="el" href="structRtAudio_1_1StreamOptions.html#adfd267059434edb21573c584e6367def">RtAudio::StreamOptions</a>
+</li>
 <li>probed
-: <a class="el" href="structRtAudio_1_1DeviceInfo.html#5bf008c629ef493c713ec870d0217407">RtAudio::RtAudio::DeviceInfo</a>
+: <a class="el" href="structRtAudio_1_1DeviceInfo.html#a97573717ccb1e75a834a0a108cd6982d">RtAudio::DeviceInfo</a>
+</li>
 <li>sampleRates
-: <a class="el" href="structRtAudio_1_1DeviceInfo.html#5b158efcbfbd30e7226df92d0109d475">RtAudio::RtAudio::DeviceInfo</a>
+: <a class="el" href="structRtAudio_1_1DeviceInfo.html#afa65f5f92f66ce7aacd3ff35e11b230f">RtAudio::DeviceInfo</a>
+</li>
 <li>streamName
-: <a class="el" href="structRtAudio_1_1StreamOptions.html#214da35056f18ffb7c8e4dc074a01a9a">RtAudio::RtAudio::StreamOptions</a>
+: <a class="el" href="structRtAudio_1_1StreamOptions.html#a2a4b0b8d690c624d20f4e8f4be6ca9ba">RtAudio::StreamOptions</a>
+</li>
 </ul>
 </div>
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2001-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
 </table>
 
 </BODY>
index 4140e968fbdad6a3afeceda3e08dc0948de8ddeb..62a95b70dbab5a7e7171eea4665f92f6876389db 100644 (file)
@@ -8,7 +8,7 @@
 <CENTER>
 <a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
 <HR>
-<!-- Generated by Doxygen 1.5.8 -->
+<!-- Generated by Doxygen 1.6.2 -->
   <div class="tabs">
     <ul>
       <li class="current"><a href="globals.html"><span>All</span></a></li>
     </ul>
   </div>
 <div class="contents">
-Here is a list of all documented file members with links to the documentation:
-<p>
-<ul>
+Here is a list of all documented file members with links to the documentation:<ul>
 <li>RtAudioCallback
-: <a class="el" href="RtAudio_8h.html#112c7b7e25a974977f6fc094cef1a31f">RtAudio.h</a>
+: <a class="el" href="RtAudio_8h.html#a112c7b7e25a974977f6fc094cef1a31f">RtAudio.h</a>
+</li>
 <li>RtAudioFormat
-: <a class="el" href="RtAudio_8h.html#afca92882d25915560018873221e44b8">RtAudio.h</a>
+: <a class="el" href="RtAudio_8h.html#aafca92882d25915560018873221e44b8">RtAudio.h</a>
+</li>
 <li>RtAudioStreamFlags
-: <a class="el" href="RtAudio_8h.html#2c0f59b200dcec4d4e760f9166b29c41">RtAudio.h</a>
+: <a class="el" href="RtAudio_8h.html#a2c0f59b200dcec4d4e760f9166b29c41">RtAudio.h</a>
+</li>
 <li>RtAudioStreamStatus
-: <a class="el" href="RtAudio_8h.html#80e306d363583da3b0a1b65d9b57c806">RtAudio.h</a>
+: <a class="el" href="RtAudio_8h.html#a80e306d363583da3b0a1b65d9b57c806">RtAudio.h</a>
+</li>
 </ul>
 </div>
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2001-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
 </table>
 
 </BODY>
index eb3207e6534cc548c7b9aaeb707a05845afd1715..920789956bdfeaf37f641f1795f6bdf0f9878ecf 100644 (file)
@@ -8,7 +8,7 @@
 <CENTER>
 <a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
 <HR>
-<!-- Generated by Doxygen 1.5.8 -->
+<!-- Generated by Doxygen 1.6.2 -->
   <div class="tabs">
     <ul>
       <li><a href="globals.html"><span>All</span></a></li>
     </ul>
   </div>
 <div class="contents">
-&nbsp;
-<p>
-<ul>
+&nbsp;<ul>
 <li>RtAudioCallback
-: <a class="el" href="RtAudio_8h.html#112c7b7e25a974977f6fc094cef1a31f">RtAudio.h</a>
+: <a class="el" href="RtAudio_8h.html#a112c7b7e25a974977f6fc094cef1a31f">RtAudio.h</a>
+</li>
 <li>RtAudioFormat
-: <a class="el" href="RtAudio_8h.html#afca92882d25915560018873221e44b8">RtAudio.h</a>
+: <a class="el" href="RtAudio_8h.html#aafca92882d25915560018873221e44b8">RtAudio.h</a>
+</li>
 <li>RtAudioStreamFlags
-: <a class="el" href="RtAudio_8h.html#2c0f59b200dcec4d4e760f9166b29c41">RtAudio.h</a>
+: <a class="el" href="RtAudio_8h.html#a2c0f59b200dcec4d4e760f9166b29c41">RtAudio.h</a>
+</li>
 <li>RtAudioStreamStatus
-: <a class="el" href="RtAudio_8h.html#80e306d363583da3b0a1b65d9b57c806">RtAudio.h</a>
+: <a class="el" href="RtAudio_8h.html#a80e306d363583da3b0a1b65d9b57c806">RtAudio.h</a>
+</li>
 </ul>
 </div>
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2001-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
 </table>
 
 </BODY>
index 5767cdcb906eb61d2bfa85938b8cf72aca8db54b..531fc6a309940750a08bf8f4b5f89570ebcb9ca5 100644 (file)
@@ -8,11 +8,9 @@
 <CENTER>
 <a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
 <HR>
-<!-- Generated by Doxygen 1.5.8 -->
+<!-- Generated by Doxygen 1.6.2 -->
 <div class="contents">
-<h1>The RtAudio Home Page</h1>
-<p>
-<h3 align="center">4.0.6 </h3><a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> is a set of C++ classes that provide a common API (Application Programming Interface) for realtime audio input/output across Linux, Macintosh OS-X and Windows (DirectSound and ASIO) operating systems. <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> significantly simplifies the process of interacting with computer audio hardware. It was designed with the following objectives:<p>
+<h1>The <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> Home Page </h1><h3 class="version">4.0.7 </h3><p><a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> is a set of C++ classes that provide a common API (Application Programming Interface) for realtime audio input/output across Linux, Macintosh OS-X and Windows (DirectSound and ASIO) operating systems. <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> significantly simplifies the process of interacting with computer audio hardware. It was designed with the following objectives:</p>
 <ul>
 <li>
 object-oriented C++ design </li>
@@ -31,23 +29,48 @@ allow audio device capability probing </li>
 <li>
 automatic internal conversion for data format, channel number compensation, (de)interleaving, and byte-swapping </li>
 </ul>
-<p>
-<a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> incorporates the concept of audio streams, which represent audio output (playback) and/or input (recording). Available audio devices and their capabilities can be enumerated and then specified when opening a stream. Where applicable, multiple API support can be compiled and a particular API specified when creating an <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> instance. See the <a class="el" href="apinotes.html">API Notes</a> section for information specific to each of the supported audio APIs.<h2><a class="anchor" name="whatsnew">
+<p><a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> incorporates the concept of audio streams, which represent audio output (playback) and/or input (recording). Available audio devices and their capabilities can be enumerated and then specified when opening a stream. Where applicable, multiple API support can be compiled and a particular API specified when creating an <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> instance. See the <a class="el" href="apinotes.html">API Notes</a> section for information specific to each of the supported audio APIs.</p>
+<h2><a class="anchor" id="whatsnew">
 What's New (Version 4.0)</a></h2>
-<a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> V4 represents a significant rewrite of the code and includes a number of API and functionality changes from previous versions. A partial list of the changes includes:<ul>
-<li>new support for non-interleaved user data</li><li>additional input/output parameter specifications, including channel offset</li><li>new support for dynamic connection of devices</li><li>new support for stream time</li><li>revised callback arguments, including separate input and output buffer arguments</li><li>revised C++ exception handling</li><li>updated support for OSS version 4.0</li><li>discontinued support of blocking functionality</li><li>discontinued support of SGI</li></ul>
-<p>
-Devices are now re-enumerated every time the <a class="el" href="classRtAudio.html#747ce2d73803641bbb66d6e78092aa1a" title="A public function that queries for the number of audio devices available.">RtAudio::getDeviceCount()</a>, <a class="el" href="classRtAudio.html#02d7ff44ad1d7eae22283a052f3dfda8" title="Return an RtAudio::DeviceInfo structure for a specified device number.">RtAudio::getDeviceInfo()</a>, and <a class="el" href="classRtAudio.html#facc99740fa4c5606fb35467cdea6da8" title="A public function for opening a stream with the specified parameters.">RtAudio::openStream()</a> functions are called. This allows for the proper identification of hot-pluggable (USB, Firewire, ...) devices that are connected after an <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> instance is created.<h2><a class="anchor" name="download">
+<p><a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> V4 represents a significant rewrite of the code and includes a number of API and functionality changes from previous versions. A partial list of the changes includes:</p>
+<ul>
+<li>new support for non-interleaved user data</li>
+<li>additional input/output parameter specifications, including channel offset</li>
+<li>new support for dynamic connection of devices</li>
+<li>new support for stream time</li>
+<li>revised callback arguments, including separate input and output buffer arguments</li>
+<li>revised C++ exception handling</li>
+<li>updated support for OSS version 4.0</li>
+<li>discontinued support of blocking functionality</li>
+<li>discontinued support of SGI</li>
+</ul>
+<p>Devices are now re-enumerated every time the <a class="el" href="classRtAudio.html#a747ce2d73803641bbb66d6e78092aa1a" title="A public function that queries for the number of audio devices available.">RtAudio::getDeviceCount()</a>, <a class="el" href="classRtAudio.html#a02d7ff44ad1d7eae22283a052f3dfda8" title="Return an RtAudio::DeviceInfo structure for a specified device number.">RtAudio::getDeviceInfo()</a>, and <a class="el" href="classRtAudio.html#afacc99740fa4c5606fb35467cdea6da8" title="A public function for opening a stream with the specified parameters.">RtAudio::openStream()</a> functions are called. This allows for the proper identification of hot-pluggable (USB, Firewire, ...) devices that are connected after an <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> instance is created.</p>
+<h2><a class="anchor" id="download">
 Download</a></h2>
-Latest Release (3 June 2009): <a href="http://www.music.mcgill.ca/~gary/rtaudio/release/rtaudio-4.0.6.tar.gz">Version 4.0.6</a><h2><a class="anchor" name="documentation">
+<p>Latest Release (4 February 2010): <a href="http://www.music.mcgill.ca/~gary/rtaudio/release/rtaudio-4.0.7.tar.gz">Version 4.0.7</a></p>
+<h2><a class="anchor" id="documentation">
 Documentation Links</a></h2>
-<ol type=1>
-<li><a class="el" href="errors.html">Error Handling</a></li><li><a class="el" href="probe.html">Probing Device Capabilities</a></li><li><a class="el" href="settings.html">Device Settings</a></li><li><a class="el" href="playback.html">Playback</a></li><li><a class="el" href="recording.html">Recording</a></li><li><a class="el" href="duplex.html">Duplex Mode</a></li><li><a class="el" href="multi.html">Using Simultaneous Multiple APIs</a></li><li><a class="el" href="compiling.html">Debugging &amp; Compiling</a></li><li><a class="el" href="apinotes.html">API Notes</a></li><li><a class="el" href="acknowledge.html">Acknowledgements</a></li><li><a class="el" href="license.html">License</a></li><li><a href="bugs.html">Bug Tracker</a></li><li><a href="updates.html">Possible Updates</a></li><li><a href="http://sourceforge.net/projects/rtaudio">RtAudio at SourceForge</a> </li></ol>
+<ol type="1">
+<li><a class="el" href="errors.html">Error Handling</a></li>
+<li><a class="el" href="probe.html">Probing Device Capabilities</a></li>
+<li><a class="el" href="settings.html">Device Settings</a></li>
+<li><a class="el" href="playback.html">Playback</a></li>
+<li><a class="el" href="recording.html">Recording</a></li>
+<li><a class="el" href="duplex.html">Duplex Mode</a></li>
+<li><a class="el" href="multi.html">Using Simultaneous Multiple APIs</a></li>
+<li><a class="el" href="compiling.html">Debugging &amp; Compiling</a></li>
+<li><a class="el" href="apinotes.html">API Notes</a></li>
+<li><a class="el" href="acknowledge.html">Acknowledgements</a></li>
+<li><a class="el" href="license.html">License</a></li>
+<li><a href="bugs.html">Bug Tracker</a></li>
+<li><a href="updates.html">Possible Updates</a></li>
+<li><a href="http://sourceforge.net/projects/rtaudio">RtAudio at SourceForge</a> </li>
+</ol>
 </div>
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2001-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
 </table>
 
 </BODY>
index 80a740865e36c061c87f5dca04e43cd31201f8cf..2e6a981bbc4b15fd55a47a9373040cba06088937 100644 (file)
@@ -8,18 +8,21 @@
 <CENTER>
 <a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
 <HR>
-<!-- Generated by Doxygen 1.5.8 -->
+<!-- Generated by Doxygen 1.6.2 -->
 <div class="contents">
-<h1><a class="anchor" name="license">License </a></h1><a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a>: a set of realtime audio i/o C++ classes<br>
- Copyright (c) 2001-2009 Gary P. Scavone<p>
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:<p>
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.<p>
-Any person wishing to distribute modifications to the Software is asked to send the modifications to the original developer so that they can be incorporated into the canonical version. This is, however, not a binding provision of this license.<p>
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. </div>
+
+
+<h1><a class="anchor" id="license">License </a></h1><p><a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a>: a set of realtime audio i/o C++ classes<br/>
+ Copyright (c) 2001-2010 Gary P. Scavone</p>
+<p>Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
+<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
+<p>Any person wishing to distribute modifications to the Software is asked to send the modifications to the original developer so that they can be incorporated into the canonical version. This is, however, not a binding provision of this license.</p>
+<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. </p>
+</div>
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2001-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
 </table>
 
 </BODY>
index acc6088203cf59159441b59581918d92d4cb785d..bbcd2785ac436d93f8419fc07066424a4dbc1c41 100644 (file)
@@ -8,14 +8,17 @@
 <CENTER>
 <a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
 <HR>
-<!-- Generated by Doxygen 1.5.8 -->
+<!-- Generated by Doxygen 1.6.2 -->
 <div class="contents">
-<h1><a class="anchor" name="multi">Using Simultaneous Multiple APIs </a></h1>Because support for each audio API is encapsulated in a specific RtApi subclass, it is possible to compile and instantiate multiple API-specific subclasses on a given operating system. For example, one can compile both the RtApiDs and RtApiAsio classes on Windows operating systems by providing the appropriate preprocessor definitions, include files, and libraries for each. In a run-time situation, one might first attempt to determine whether any ASIO device drivers exist. This can be done by specifying the api argument <a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d849219517d1df90f94d07758481155bd469">RtAudio::WINDOWS_ASIO</a> when attempting to create an instance of <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a>. If no available devices are found, then an instance of <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> with the api argument <a class="el" href="classRtAudio.html#c9b6f625da88249d08a8409a9db0d84928478830f42c2fd61e6c7ad498901931">RtAudio::WINDOWS_DS</a> can be created. Alternately, if no api argument is specified, <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> will first look for an ASIO instance and then a DirectSound instance (on Linux systems, the default API search order is Jack, Alsa, and finally OSS). In theory, it should also be possible to have separate instances of <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> open at the same time with different underlying audio API support, though this has not been tested. It is difficult to know how well different audio APIs can simultaneously coexist on a given operating system. In particular, it is unlikely that the same device could be simultaneously controlled with two different audio APIs.<p>
-The static function <a class="el" href="classRtAudio.html#e266ffad2ef428d0b2c6c262d391ce26" title="A static function to determine the available compiled audio APIs.">RtAudio::getCompiledApi()</a> is provided to determine the available compiled API support. The function <a class="el" href="classRtAudio.html#83687634795792b2c47e4ae1cf8a5246" title="Returns the audio API specifier for the current instance of RtAudio.">RtAudio::getCurrentApi()</a> indicates the API selected for a given <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> instance. </div>
+
+
+<h1><a class="anchor" id="multi">Using Simultaneous Multiple APIs </a></h1><p>Because support for each audio API is encapsulated in a specific RtApi subclass, it is possible to compile and instantiate multiple API-specific subclasses on a given operating system. For example, one can compile both the RtApiDs and RtApiAsio classes on Windows operating systems by providing the appropriate preprocessor definitions, include files, and libraries for each. In a run-time situation, one might first attempt to determine whether any ASIO device drivers exist. This can be done by specifying the api argument <a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a219517d1df90f94d07758481155bd469">RtAudio::WINDOWS_ASIO</a> when attempting to create an instance of <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a>. If no available devices are found, then an instance of <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> with the api argument <a class="el" href="classRtAudio.html#ac9b6f625da88249d08a8409a9db0d849a28478830f42c2fd61e6c7ad498901931">RtAudio::WINDOWS_DS</a> can be created. Alternately, if no api argument is specified, <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> will first look for an ASIO instance and then a DirectSound instance (on Linux systems, the default API search order is Jack, Alsa, and finally OSS). In theory, it should also be possible to have separate instances of <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> open at the same time with different underlying audio API support, though this has not been tested. It is difficult to know how well different audio APIs can simultaneously coexist on a given operating system. In particular, it is unlikely that the same device could be simultaneously controlled with two different audio APIs.</p>
+<p>The static function <a class="el" href="classRtAudio.html#ae266ffad2ef428d0b2c6c262d391ce26" title="A static function to determine the available compiled audio APIs.">RtAudio::getCompiledApi()</a> is provided to determine the available compiled API support. The function <a class="el" href="classRtAudio.html#a83687634795792b2c47e4ae1cf8a5246" title="Returns the audio API specifier for the current instance of RtAudio.">RtAudio::getCurrentApi()</a> indicates the API selected for a given <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> instance. </p>
+</div>
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2001-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
 </table>
 
 </BODY>
index b417146a34eab3917a42a0560a51a51f1440b964..4d8bc836511048dff64947982c7f591a9dc6e6dd 100644 (file)
@@ -8,37 +8,37 @@
 <CENTER>
 <a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
 <HR>
-<!-- Generated by Doxygen 1.5.8 -->
+<!-- Generated by Doxygen 1.6.2 -->
 <div class="contents">
 <h1>Related Pages</h1>Here is a list of all related documentation pages:<ul>
 <li><a class="el" href="acknowledge.html">Acknowledgements</a>
-
+</li>
 <li><a class="el" href="apinotes.html">API Notes</a>
-
+</li>
 <li><a class="el" href="compiling.html">Debugging &amp; Compiling</a>
-
+</li>
 <li><a class="el" href="duplex.html">Duplex Mode</a>
-
+</li>
 <li><a class="el" href="errors.html">Error Handling</a>
-
+</li>
 <li><a class="el" href="license.html">License</a>
-
+</li>
 <li><a class="el" href="multi.html">Using Simultaneous Multiple APIs</a>
-
+</li>
 <li><a class="el" href="playback.html">Playback</a>
-
+</li>
 <li><a class="el" href="probe.html">Probing Device Capabilities</a>
-
+</li>
 <li><a class="el" href="recording.html">Recording</a>
-
+</li>
 <li><a class="el" href="settings.html">Device Settings</a>
-
+</li>
 </ul>
 </div>
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2001-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
 </table>
 
 </BODY>
index 0dbcab12bb465e01e93578f54cdf209b4114671f..0af9ebbc7d3c2d72325f6fbf3c319ae62863b099 100644 (file)
@@ -8,23 +8,25 @@
 <CENTER>
 <a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
 <HR>
-<!-- Generated by Doxygen 1.5.8 -->
+<!-- Generated by Doxygen 1.6.2 -->
 <div class="contents">
-<h1><a class="anchor" name="playback">Playback </a></h1>In this example, we provide a complete program that demonstrates the use of <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> for audio playback. Our program produces a two-channel sawtooth waveform for output.<p>
-<div class="fragment"><pre class="fragment"><span class="preprocessor">#include "<a class="code" href="RtAudio_8h.html">RtAudio.h</a>"</span>
+
+
+<h1><a class="anchor" id="playback">Playback </a></h1><p>In this example, we provide a complete program that demonstrates the use of <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> for audio playback. Our program produces a two-channel sawtooth waveform for output.</p>
+<div class="fragment"><pre class="fragment"><span class="preprocessor">#include &quot;<a class="code" href="RtAudio_8h.html">RtAudio.h</a>&quot;</span>
 <span class="preprocessor">#include &lt;iostream&gt;</span>
 <span class="preprocessor">#include &lt;cstdlib&gt;</span>
 
 <span class="comment">// Two-channel sawtooth wave generator.</span>
 <span class="keywordtype">int</span> saw( <span class="keywordtype">void</span> *outputBuffer, <span class="keywordtype">void</span> *inputBuffer, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nBufferFrames,
-         <span class="keywordtype">double</span> streamTime, <a class="code" href="RtAudio_8h.html#80e306d363583da3b0a1b65d9b57c806" title="RtAudio stream status (over- or underflow) flags.">RtAudioStreamStatus</a> status, <span class="keywordtype">void</span> *userData )
+         <span class="keywordtype">double</span> streamTime, <a class="code" href="RtAudio_8h.html#a80e306d363583da3b0a1b65d9b57c806" title="RtAudio stream status (over- or underflow) flags.">RtAudioStreamStatus</a> status, <span class="keywordtype">void</span> *userData )
 {
   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i, j;
   <span class="keywordtype">double</span> *buffer = (<span class="keywordtype">double</span> *) outputBuffer;
   <span class="keywordtype">double</span> *lastValues = (<span class="keywordtype">double</span> *) userData;
 
   <span class="keywordflow">if</span> ( status )
-    std::cout &lt;&lt; <span class="stringliteral">"Stream underflow detected!"</span> &lt;&lt; std::endl;
+    std::cout &lt;&lt; <span class="stringliteral">&quot;Stream underflow detected!&quot;</span> &lt;&lt; std::endl;
 
   <span class="comment">// Write interleaved audio data.</span>
   <span class="keywordflow">for</span> ( i=0; i&lt;nBufferFrames; i++ ) {
 <span class="keywordtype">int</span> main()
 {
   <a class="code" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> dac;
-  <span class="keywordflow">if</span> ( dac.<a class="code" href="classRtAudio.html#747ce2d73803641bbb66d6e78092aa1a" title="A public function that queries for the number of audio devices available.">getDeviceCount</a>() &lt; 1 ) {
-    std::cout &lt;&lt; <span class="stringliteral">"\nNo audio devices found!\n"</span>;
+  <span class="keywordflow">if</span> ( dac.<a class="code" href="classRtAudio.html#a747ce2d73803641bbb66d6e78092aa1a" title="A public function that queries for the number of audio devices available.">getDeviceCount</a>() &lt; 1 ) {
+    std::cout &lt;&lt; <span class="stringliteral">&quot;\nNo audio devices found!\n&quot;</span>;
     exit( 0 );
   }
 
   <a class="code" href="structRtAudio_1_1StreamParameters.html" title="The structure for specifying input or ouput stream parameters.">RtAudio::StreamParameters</a> parameters;
-  parameters.<a class="code" href="structRtAudio_1_1StreamParameters.html#ffd27496c70c0986522056234c64e28e">deviceId</a> = dac.<a class="code" href="classRtAudio.html#3a3f3dbe13ea696b521e49cdaaa357bc" title="A function that returns the index of the default output device.">getDefaultOutputDevice</a>();
-  parameters.<a class="code" href="structRtAudio_1_1StreamParameters.html#78798b65fada7941e1a7e47c11c9e627">nChannels</a> = 2;
-  parameters.<a class="code" href="structRtAudio_1_1StreamParameters.html#ddc8281f23a87455ec6dedbc766a74db">firstChannel</a> = 0;
+  parameters.<a class="code" href="structRtAudio_1_1StreamParameters.html#ab3c72bcf3ef12149ae9a4fb597cc5489">deviceId</a> = dac.<a class="code" href="classRtAudio.html#a3a3f3dbe13ea696b521e49cdaaa357bc" title="A function that returns the index of the default output device.">getDefaultOutputDevice</a>();
+  parameters.<a class="code" href="structRtAudio_1_1StreamParameters.html#a88a10091b6e284e21235cc6f25332ebd">nChannels</a> = 2;
+  parameters.<a class="code" href="structRtAudio_1_1StreamParameters.html#ad4b4503782653ec93c83328c46abe50c">firstChannel</a> = 0;
   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> sampleRate = 44100;
   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> bufferFrames = 256; <span class="comment">// 256 sample frames</span>
   <span class="keywordtype">double</span> data[2];
 
   <span class="keywordflow">try</span> {
-    dac.<a class="code" href="classRtAudio.html#facc99740fa4c5606fb35467cdea6da8" title="A public function for opening a stream with the specified parameters.">openStream</a>( &amp;parameters, NULL, RTAUDIO_FLOAT64,
+    dac.<a class="code" href="classRtAudio.html#afacc99740fa4c5606fb35467cdea6da8" title="A public function for opening a stream with the specified parameters.">openStream</a>( &amp;parameters, NULL, RTAUDIO_FLOAT64,
                     sampleRate, &amp;bufferFrames, &amp;saw, (<span class="keywordtype">void</span> *)&amp;data );
-    dac.<a class="code" href="classRtAudio.html#ec017a89629ccef66a90b60be22a2f80" title="A function that starts a stream.">startStream</a>();
+    dac.<a class="code" href="classRtAudio.html#aec017a89629ccef66a90b60be22a2f80" title="A function that starts a stream.">startStream</a>();
   }
   <span class="keywordflow">catch</span> ( <a class="code" href="classRtError.html" title="Exception handling class for RtAudio &amp;amp; RtMidi.">RtError</a>&amp; e ) {
-    e.<a class="code" href="classRtError.html#da41f7472122f45bc5b4677f066e0943" title="Prints thrown error message to stderr.">printMessage</a>();
+    e.<a class="code" href="classRtError.html#ada41f7472122f45bc5b4677f066e0943" title="Prints thrown error message to stderr.">printMessage</a>();
     exit( 0 );
   }
   
   <span class="keywordtype">char</span> input;
-  std::cout &lt;&lt; <span class="stringliteral">"\nPlaying ... press &lt;enter&gt; to quit.\n"</span>;
+  std::cout &lt;&lt; <span class="stringliteral">&quot;\nPlaying ... press &lt;enter&gt; to quit.\n&quot;</span>;
   std::cin.get( input );
 
   <span class="keywordflow">try</span> {
     <span class="comment">// Stop the stream</span>
-    dac.<a class="code" href="classRtAudio.html#f4c241ff86936ecc8108f0d9dfe3efdd" title="Stop a stream, allowing any samples remaining in the output queue to be played.">stopStream</a>();
+    dac.<a class="code" href="classRtAudio.html#af4c241ff86936ecc8108f0d9dfe3efdd" title="Stop a stream, allowing any samples remaining in the output queue to be played.">stopStream</a>();
   }
   <span class="keywordflow">catch</span> (<a class="code" href="classRtError.html" title="Exception handling class for RtAudio &amp;amp; RtMidi.">RtError</a>&amp; e) {
-    e.<a class="code" href="classRtError.html#da41f7472122f45bc5b4677f066e0943" title="Prints thrown error message to stderr.">printMessage</a>();
+    e.<a class="code" href="classRtError.html#ada41f7472122f45bc5b4677f066e0943" title="Prints thrown error message to stderr.">printMessage</a>();
   }
 
-  <span class="keywordflow">if</span> ( dac.<a class="code" href="classRtAudio.html#3863e45ff81dbe97176de0ee7545917f" title="Returns true if a stream is open and false if not.">isStreamOpen</a>() ) dac.<a class="code" href="classRtAudio.html#90d599002ad32cf250a4cb866f2cc93a" title="A function that closes a stream and frees any associated stream memory.">closeStream</a>();
+  <span class="keywordflow">if</span> ( dac.<a class="code" href="classRtAudio.html#a3863e45ff81dbe97176de0ee7545917f" title="Returns true if a stream is open and false if not.">isStreamOpen</a>() ) dac.<a class="code" href="classRtAudio.html#a90d599002ad32cf250a4cb866f2cc93a" title="A function that closes a stream and frees any associated stream memory.">closeStream</a>();
 
   <span class="keywordflow">return</span> 0;
 }
-</pre></div><p>
-We open the stream in exactly the same way as the previous example (except with a data format change) and specify the address of our callback function <em>"saw()"</em>. The callback function will automatically be invoked when the underlying audio system needs data for output. Note that the callback function is called only when the stream is "running" (between calls to the <a class="el" href="classRtAudio.html#ec017a89629ccef66a90b60be22a2f80" title="A function that starts a stream.">RtAudio::startStream()</a> and <a class="el" href="classRtAudio.html#f4c241ff86936ecc8108f0d9dfe3efdd" title="Stop a stream, allowing any samples remaining in the output queue to be played.">RtAudio::stopStream()</a> functions). We can also pass a pointer value to the <a class="el" href="classRtAudio.html#facc99740fa4c5606fb35467cdea6da8" title="A public function for opening a stream with the specified parameters.">RtAudio::openStream()</a> function that is made available in the callback function. In this way, it is possible to gain access to arbitrary data created in our <em>main()</em> function from within the globally defined callback function.<p>
-In this example, we stop the stream with an explicit call to <a class="el" href="classRtAudio.html#f4c241ff86936ecc8108f0d9dfe3efdd" title="Stop a stream, allowing any samples remaining in the output queue to be played.">RtAudio::stopStream()</a>. It is also possible to stop a stream by returning a non-zero value from the callback function. A return value of 1 will cause the stream to finish draining its internal buffers and then halt (equivalent to calling the <a class="el" href="classRtAudio.html#f4c241ff86936ecc8108f0d9dfe3efdd" title="Stop a stream, allowing any samples remaining in the output queue to be played.">RtAudio::stopStream()</a> function). A return value of 2 will cause the stream to stop immediately (equivalent to calling the <a class="el" href="classRtAudio.html#d0586b47cd6bb9591a80b4052815991f" title="Stop a stream, discarding any samples remaining in the input/output queue.">RtAudio::abortStream()</a> function). </div>
+</pre></div><p>We open the stream in exactly the same way as the previous example (except with a data format change) and specify the address of our callback function <em>"saw()"</em>. The callback function will automatically be invoked when the underlying audio system needs data for output. Note that the callback function is called only when the stream is "running" (between calls to the <a class="el" href="classRtAudio.html#aec017a89629ccef66a90b60be22a2f80" title="A function that starts a stream.">RtAudio::startStream()</a> and <a class="el" href="classRtAudio.html#af4c241ff86936ecc8108f0d9dfe3efdd" title="Stop a stream, allowing any samples remaining in the output queue to be played.">RtAudio::stopStream()</a> functions). We can also pass a pointer value to the <a class="el" href="classRtAudio.html#afacc99740fa4c5606fb35467cdea6da8" title="A public function for opening a stream with the specified parameters.">RtAudio::openStream()</a> function that is made available in the callback function. In this way, it is possible to gain access to arbitrary data created in our <em>main()</em> function from within the globally defined callback function.</p>
+<p>In this example, we stop the stream with an explicit call to <a class="el" href="classRtAudio.html#af4c241ff86936ecc8108f0d9dfe3efdd" title="Stop a stream, allowing any samples remaining in the output queue to be played.">RtAudio::stopStream()</a>. It is also possible to stop a stream by returning a non-zero value from the callback function. A return value of 1 will cause the stream to finish draining its internal buffers and then halt (equivalent to calling the <a class="el" href="classRtAudio.html#af4c241ff86936ecc8108f0d9dfe3efdd" title="Stop a stream, allowing any samples remaining in the output queue to be played.">RtAudio::stopStream()</a> function). A return value of 2 will cause the stream to stop immediately (equivalent to calling the <a class="el" href="classRtAudio.html#ad0586b47cd6bb9591a80b4052815991f" title="Stop a stream, discarding any samples remaining in the input/output queue.">RtAudio::abortStream()</a> function). </p>
+</div>
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2001-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
 </table>
 
 </BODY>
index ef7ba417e214478025ab5d18c8aa7e4f562b5128..3f5d2c9bcbe1082c29891a0eadff61568991da7f 100644 (file)
@@ -8,66 +8,66 @@
 <CENTER>
 <a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
 <HR>
-<!-- Generated by Doxygen 1.5.8 -->
+<!-- Generated by Doxygen 1.6.2 -->
 <div class="contents">
-<h1><a class="anchor" name="probe">Probing Device Capabilities </a></h1>A programmer may wish to query the available audio device capabilities before deciding which to use. The following example outlines how this can be done.<p>
+
+
+<h1><a class="anchor" id="probe">Probing Device Capabilities </a></h1><p>A programmer may wish to query the available audio device capabilities before deciding which to use. The following example outlines how this can be done.</p>
 <div class="fragment"><pre class="fragment"><span class="comment">// audioprobe.cpp</span>
 
 <span class="preprocessor">#include &lt;iostream&gt;</span>
-<span class="preprocessor">#include "<a class="code" href="RtAudio_8h.html">RtAudio.h</a>"</span>
+<span class="preprocessor">#include &quot;<a class="code" href="RtAudio_8h.html">RtAudio.h</a>&quot;</span>
 
 <span class="keywordtype">int</span> main()
 {
   <a class="code" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> audio;
 
   <span class="comment">// Determine the number of devices available</span>
-  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> devices = audio.<a class="code" href="classRtAudio.html#747ce2d73803641bbb66d6e78092aa1a" title="A public function that queries for the number of audio devices available.">getDeviceCount</a>();
+  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> devices = audio.<a class="code" href="classRtAudio.html#a747ce2d73803641bbb66d6e78092aa1a" title="A public function that queries for the number of audio devices available.">getDeviceCount</a>();
 
   <span class="comment">// Scan through devices for various capabilities</span>
   <a class="code" href="structRtAudio_1_1DeviceInfo.html" title="The public device information structure for returning queried values.">RtAudio::DeviceInfo</a> info;
-  <span class="keywordflow">for</span> ( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i=1; i&lt;=devices; i++ ) {
+  <span class="keywordflow">for</span> ( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i=0; i&lt;=devices; i++ ) {
 
-    info = audio.<a class="code" href="classRtAudio.html#02d7ff44ad1d7eae22283a052f3dfda8" title="Return an RtAudio::DeviceInfo structure for a specified device number.">getDeviceInfo</a>( i );
+    info = audio.<a class="code" href="classRtAudio.html#a02d7ff44ad1d7eae22283a052f3dfda8" title="Return an RtAudio::DeviceInfo structure for a specified device number.">getDeviceInfo</a>( i );
 
-    <span class="keywordflow">if</span> ( info.<a class="code" href="structRtAudio_1_1DeviceInfo.html#5bf008c629ef493c713ec870d0217407">probed</a> == <span class="keyword">true</span> ) {
+    <span class="keywordflow">if</span> ( info.<a class="code" href="structRtAudio_1_1DeviceInfo.html#a97573717ccb1e75a834a0a108cd6982d">probed</a> == <span class="keyword">true</span> ) {
       <span class="comment">// Print, for example, the maximum number of output channels for each device</span>
-      std::cout &lt;&lt; <span class="stringliteral">"device = "</span> &lt;&lt; i;
-      std::cout &lt;&lt; <span class="stringliteral">": maximum output channels = "</span> &lt;&lt; info.<a class="code" href="structRtAudio_1_1DeviceInfo.html#185f8aac1095de4fbb6e0076875d24c4">outputChannels</a> &lt;&lt; <span class="stringliteral">"\n"</span>;
+      std::cout &lt;&lt; <span class="stringliteral">&quot;device = &quot;</span> &lt;&lt; i;
+      std::cout &lt;&lt; <span class="stringliteral">&quot;: maximum output channels = &quot;</span> &lt;&lt; info.<a class="code" href="structRtAudio_1_1DeviceInfo.html#a81aaf488f8158ef55b1bb678f66feb7d">outputChannels</a> &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;
     }
   }
 
   <span class="keywordflow">return</span> 0;
 }
-</pre></div><p>
-The <a class="el" href="structRtAudio_1_1DeviceInfo.html" title="The public device information structure for returning queried values.">RtAudio::DeviceInfo</a> structure is defined in <a class="el" href="RtAudio_8h.html">RtAudio.h</a> and provides a variety of information useful in assessing the capabilities of a device:<p>
+</pre></div><p>The <a class="el" href="structRtAudio_1_1DeviceInfo.html" title="The public device information structure for returning queried values.">RtAudio::DeviceInfo</a> structure is defined in <a class="el" href="RtAudio_8h.html">RtAudio.h</a> and provides a variety of information useful in assessing the capabilities of a device:</p>
 <div class="fragment"><pre class="fragment">  <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structRtAudio_1_1DeviceInfo.html" title="The public device information structure for returning queried values.">RtAudio::DeviceInfo</a> {
-    <span class="keywordtype">bool</span> <a class="code" href="structRtAudio_1_1DeviceInfo.html#5bf008c629ef493c713ec870d0217407">probed</a>;                           <span class="comment">// true if the device capabilities were successfully probed.</span>
-    std::string <a class="code" href="structRtAudio_1_1DeviceInfo.html#a0e2ea10c52c206c9e105ac76b01f194">name</a>;                      <span class="comment">// Character string device identifier.</span>
-    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structRtAudio_1_1DeviceInfo.html#185f8aac1095de4fbb6e0076875d24c4">outputChannels</a>;           <span class="comment">// Maximum output channels supported by device.</span>
-    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structRtAudio_1_1DeviceInfo.html#731b31adf84c550ab98329be1baa58b4">inputChannels</a>;            <span class="comment">// Maximum input channels supported by device.</span>
-    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structRtAudio_1_1DeviceInfo.html#ca6ecfb8b5b8c114c54809d8af50ee5b">duplexChannels</a>;           <span class="comment">// Maximum simultaneous input/output channels supported by device.</span>
-    <span class="keywordtype">bool</span> <a class="code" href="structRtAudio_1_1DeviceInfo.html#af74fc23f451fdd22ed073a47f0db674">isDefaultOutput</a>;                  <span class="comment">// true if this is the default output device.</span>
-    <span class="keywordtype">bool</span> <a class="code" href="structRtAudio_1_1DeviceInfo.html#a8b03618fa1d4c051f6add14bb031728">isDefaultInput</a>;                   <span class="comment">// true if this is the default input device.</span>
-    std::vector&lt;unsigned int&gt; <a class="code" href="structRtAudio_1_1DeviceInfo.html#5b158efcbfbd30e7226df92d0109d475">sampleRates</a>; <span class="comment">// Supported sample rates.</span>
-    <a class="code" href="RtAudio_8h.html#afca92882d25915560018873221e44b8" title="RtAudio data format type.">RtAudioFormat</a> <a class="code" href="structRtAudio_1_1DeviceInfo.html#97559ee4a1f2c8cfb765949e6193e1f4">nativeFormats</a>;           <span class="comment">// Bit mask of supported data formats.</span>
+    <span class="keywordtype">bool</span> <a class="code" href="structRtAudio_1_1DeviceInfo.html#a97573717ccb1e75a834a0a108cd6982d">probed</a>;                           <span class="comment">// true if the device capabilities were successfully probed.</span>
+    std::string <a class="code" href="structRtAudio_1_1DeviceInfo.html#a24df596ab8d54f2eb540c7cf16212b3b">name</a>;                      <span class="comment">// Character string device identifier.</span>
+    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structRtAudio_1_1DeviceInfo.html#a81aaf488f8158ef55b1bb678f66feb7d">outputChannels</a>;           <span class="comment">// Maximum output channels supported by device.</span>
+    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structRtAudio_1_1DeviceInfo.html#a56247b458a937ae84d98ca9c4b243275">inputChannels</a>;            <span class="comment">// Maximum input channels supported by device.</span>
+    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structRtAudio_1_1DeviceInfo.html#a3e8ad34c2d14e24293a0beafc26186e7">duplexChannels</a>;           <span class="comment">// Maximum simultaneous input/output channels supported by device.</span>
+    <span class="keywordtype">bool</span> <a class="code" href="structRtAudio_1_1DeviceInfo.html#a5365245e73ffe29a05734de4474acd58">isDefaultOutput</a>;                  <span class="comment">// true if this is the default output device.</span>
+    <span class="keywordtype">bool</span> <a class="code" href="structRtAudio_1_1DeviceInfo.html#a7c8aca084bd908799b6be5954b80def2">isDefaultInput</a>;                   <span class="comment">// true if this is the default input device.</span>
+    std::vector&lt;unsigned int&gt; <a class="code" href="structRtAudio_1_1DeviceInfo.html#afa65f5f92f66ce7aacd3ff35e11b230f">sampleRates</a>; <span class="comment">// Supported sample rates.</span>
+    <a class="code" href="RtAudio_8h.html#aafca92882d25915560018873221e44b8" title="RtAudio data format type.">RtAudioFormat</a> <a class="code" href="structRtAudio_1_1DeviceInfo.html#a23251b549b89b2fe04a57fcd7cb76ea4">nativeFormats</a>;           <span class="comment">// Bit mask of supported data formats.</span>
   };
-</pre></div><p>
-The following data formats are defined and fully supported by <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a>:<p>
-<div class="fragment"><pre class="fragment">  <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="RtAudio_8h.html#afca92882d25915560018873221e44b8" title="RtAudio data format type.">RtAudioFormat</a>;
+</pre></div><p>The following data formats are defined and fully supported by <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a>:</p>
+<div class="fragment"><pre class="fragment">  <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="RtAudio_8h.html#aafca92882d25915560018873221e44b8" title="RtAudio data format type.">RtAudioFormat</a>;
   <span class="keyword">static</span> <span class="keyword">const</span> RtAudioFormat  RTAUDIO_SINT8;   <span class="comment">// Signed 8-bit integer</span>
   <span class="keyword">static</span> <span class="keyword">const</span> RtAudioFormat  RTAUDIO_SINT16;  <span class="comment">// Signed 16-bit integer</span>
   <span class="keyword">static</span> <span class="keyword">const</span> RtAudioFormat  RTAUDIO_SINT24;  <span class="comment">// Signed 24-bit integer (lower 3 bytes of 32-bit signed integer.)</span>
   <span class="keyword">static</span> <span class="keyword">const</span> RtAudioFormat  RTAUDIO_SINT32;  <span class="comment">// Signed 32-bit integer</span>
   <span class="keyword">static</span> <span class="keyword">const</span> RtAudioFormat  RTAUDIO_FLOAT32; <span class="comment">// 32-bit float normalized between +/- 1.0</span>
   <span class="keyword">static</span> <span class="keyword">const</span> RtAudioFormat  RTAUDIO_FLOAT64; <span class="comment">// 64-bit double normalized between +/- 1.0</span>
-</pre></div><p>
-The <code>nativeFormats</code> member of the <a class="el" href="structRtAudio_1_1DeviceInfo.html" title="The public device information structure for returning queried values.">RtAudio::DeviceInfo</a> structure is a bit mask of the above formats which are natively supported by the device. However, <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> will automatically provide format conversion if a particular format is not natively supported. When the <code>probed</code> member of the <a class="el" href="structRtAudio_1_1DeviceInfo.html" title="The public device information structure for returning queried values.">RtAudio::DeviceInfo</a> structure is false, the remaining structure members are undefined and the device is probably unusable.<p>
-Some audio devices may require a minimum channel value greater than one. <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> will provide automatic channel number compensation when the number of channels set by the user is less than that required by the device. Channel compensation is <em>NOT</em> possible when the number of channels set by the user is greater than that supported by the device.<p>
-It should be noted that the capabilities reported by a device driver or underlying audio API are not always accurate and/or may be dependent on a combination of device settings. For this reason, <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> does not rely on the queried values when attempting to open a stream. </div>
+</pre></div><p>The <code>nativeFormats</code> member of the <a class="el" href="structRtAudio_1_1DeviceInfo.html" title="The public device information structure for returning queried values.">RtAudio::DeviceInfo</a> structure is a bit mask of the above formats which are natively supported by the device. However, <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> will automatically provide format conversion if a particular format is not natively supported. When the <code>probed</code> member of the <a class="el" href="structRtAudio_1_1DeviceInfo.html" title="The public device information structure for returning queried values.">RtAudio::DeviceInfo</a> structure is false, the remaining structure members are undefined and the device is probably unusable.</p>
+<p>Some audio devices may require a minimum channel value greater than one. <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> will provide automatic channel number compensation when the number of channels set by the user is less than that required by the device. Channel compensation is <em>NOT</em> possible when the number of channels set by the user is greater than that supported by the device.</p>
+<p>It should be noted that the capabilities reported by a device driver or underlying audio API are not always accurate and/or may be dependent on a combination of device settings. For this reason, <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> does not rely on the queried values when attempting to open a stream. </p>
+</div>
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2001-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
 </table>
 
 </BODY>
index c7772bf54b4ad03f33319097d4510bc93edd607b..3e86db4b3db586d433e4d5222cb8eec9545a37a8 100644 (file)
@@ -8,21 +8,23 @@
 <CENTER>
 <a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
 <HR>
-<!-- Generated by Doxygen 1.5.8 -->
+<!-- Generated by Doxygen 1.6.2 -->
 <div class="contents">
-<h1><a class="anchor" name="recording">Recording </a></h1>Using <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> for audio input is almost identical to the way it is used for playback. Here's the blocking playback example rewritten for recording:<p>
-<div class="fragment"><pre class="fragment"><span class="preprocessor">#include "<a class="code" href="RtAudio_8h.html">RtAudio.h</a>"</span>
+
+
+<h1><a class="anchor" id="recording">Recording </a></h1><p>Using <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> for audio input is almost identical to the way it is used for playback. Here's the blocking playback example rewritten for recording:</p>
+<div class="fragment"><pre class="fragment"><span class="preprocessor">#include &quot;<a class="code" href="RtAudio_8h.html">RtAudio.h</a>&quot;</span>
 <span class="preprocessor">#include &lt;iostream&gt;</span>
 <span class="preprocessor">#include &lt;cstdlib&gt;</span>
 <span class="preprocessor">#include &lt;cstring&gt;</span>
 
 <span class="keywordtype">int</span> record( <span class="keywordtype">void</span> *outputBuffer, <span class="keywordtype">void</span> *inputBuffer, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nBufferFrames,
-         <span class="keywordtype">double</span> streamTime, <a class="code" href="RtAudio_8h.html#80e306d363583da3b0a1b65d9b57c806" title="RtAudio stream status (over- or underflow) flags.">RtAudioStreamStatus</a> status, <span class="keywordtype">void</span> *userData )
+         <span class="keywordtype">double</span> streamTime, <a class="code" href="RtAudio_8h.html#a80e306d363583da3b0a1b65d9b57c806" title="RtAudio stream status (over- or underflow) flags.">RtAudioStreamStatus</a> status, <span class="keywordtype">void</span> *userData )
 {
   <span class="keywordflow">if</span> ( status )
-    std::cout &lt;&lt; <span class="stringliteral">"Stream overflow detected!"</span> &lt;&lt; std::endl;
+    std::cout &lt;&lt; <span class="stringliteral">&quot;Stream overflow detected!&quot;</span> &lt;&lt; std::endl;
 
-  <span class="comment">// Do something with the data in the "inputBuffer" buffer.</span>
+  <span class="comment">// Do something with the data in the &quot;inputBuffer&quot; buffer.</span>
 
   <span class="keywordflow">return</span> 0;
 }
 <span class="keywordtype">int</span> main()
 {
   <a class="code" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> adc;
-  <span class="keywordflow">if</span> ( adc.<a class="code" href="classRtAudio.html#747ce2d73803641bbb66d6e78092aa1a" title="A public function that queries for the number of audio devices available.">getDeviceCount</a>() &lt; 1 ) {
-    std::cout &lt;&lt; <span class="stringliteral">"\nNo audio devices found!\n"</span>;
+  <span class="keywordflow">if</span> ( adc.<a class="code" href="classRtAudio.html#a747ce2d73803641bbb66d6e78092aa1a" title="A public function that queries for the number of audio devices available.">getDeviceCount</a>() &lt; 1 ) {
+    std::cout &lt;&lt; <span class="stringliteral">&quot;\nNo audio devices found!\n&quot;</span>;
     exit( 0 );
   }
 
   <a class="code" href="structRtAudio_1_1StreamParameters.html" title="The structure for specifying input or ouput stream parameters.">RtAudio::StreamParameters</a> parameters;
-  parameters.<a class="code" href="structRtAudio_1_1StreamParameters.html#ffd27496c70c0986522056234c64e28e">deviceId</a> = adc.<a class="code" href="classRtAudio.html#ad8b94edd3cd379ee300b125750ac6ce" title="A function that returns the index of the default input device.">getDefaultInputDevice</a>();
-  parameters.<a class="code" href="structRtAudio_1_1StreamParameters.html#78798b65fada7941e1a7e47c11c9e627">nChannels</a> = 2;
-  parameters.<a class="code" href="structRtAudio_1_1StreamParameters.html#ddc8281f23a87455ec6dedbc766a74db">firstChannel</a> = 0;
+  parameters.<a class="code" href="structRtAudio_1_1StreamParameters.html#ab3c72bcf3ef12149ae9a4fb597cc5489">deviceId</a> = adc.<a class="code" href="classRtAudio.html#aad8b94edd3cd379ee300b125750ac6ce" title="A function that returns the index of the default input device.">getDefaultInputDevice</a>();
+  parameters.<a class="code" href="structRtAudio_1_1StreamParameters.html#a88a10091b6e284e21235cc6f25332ebd">nChannels</a> = 2;
+  parameters.<a class="code" href="structRtAudio_1_1StreamParameters.html#ad4b4503782653ec93c83328c46abe50c">firstChannel</a> = 0;
   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> sampleRate = 44100;
   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> bufferFrames = 256; <span class="comment">// 256 sample frames</span>
 
   <span class="keywordflow">try</span> {
-    adc.<a class="code" href="classRtAudio.html#facc99740fa4c5606fb35467cdea6da8" title="A public function for opening a stream with the specified parameters.">openStream</a>( NULL, &amp;parameters, RTAUDIO_SINT16,
+    adc.<a class="code" href="classRtAudio.html#afacc99740fa4c5606fb35467cdea6da8" title="A public function for opening a stream with the specified parameters.">openStream</a>( NULL, &amp;parameters, RTAUDIO_SINT16,
                     sampleRate, &amp;bufferFrames, &amp;record );
-    adc.<a class="code" href="classRtAudio.html#ec017a89629ccef66a90b60be22a2f80" title="A function that starts a stream.">startStream</a>();
+    adc.<a class="code" href="classRtAudio.html#aec017a89629ccef66a90b60be22a2f80" title="A function that starts a stream.">startStream</a>();
   }
   <span class="keywordflow">catch</span> ( <a class="code" href="classRtError.html" title="Exception handling class for RtAudio &amp;amp; RtMidi.">RtError</a>&amp; e ) {
-    e.<a class="code" href="classRtError.html#da41f7472122f45bc5b4677f066e0943" title="Prints thrown error message to stderr.">printMessage</a>();
+    e.<a class="code" href="classRtError.html#ada41f7472122f45bc5b4677f066e0943" title="Prints thrown error message to stderr.">printMessage</a>();
     exit( 0 );
   }
   
   <span class="keywordtype">char</span> input;
-  std::cout &lt;&lt; <span class="stringliteral">"\nRecording ... press &lt;enter&gt; to quit.\n"</span>;
+  std::cout &lt;&lt; <span class="stringliteral">&quot;\nRecording ... press &lt;enter&gt; to quit.\n&quot;</span>;
   std::cin.get( input );
 
   <span class="keywordflow">try</span> {
     <span class="comment">// Stop the stream</span>
-    adc.<a class="code" href="classRtAudio.html#f4c241ff86936ecc8108f0d9dfe3efdd" title="Stop a stream, allowing any samples remaining in the output queue to be played.">stopStream</a>();
+    adc.<a class="code" href="classRtAudio.html#af4c241ff86936ecc8108f0d9dfe3efdd" title="Stop a stream, allowing any samples remaining in the output queue to be played.">stopStream</a>();
   }
   <span class="keywordflow">catch</span> (<a class="code" href="classRtError.html" title="Exception handling class for RtAudio &amp;amp; RtMidi.">RtError</a>&amp; e) {
-    e.<a class="code" href="classRtError.html#da41f7472122f45bc5b4677f066e0943" title="Prints thrown error message to stderr.">printMessage</a>();
+    e.<a class="code" href="classRtError.html#ada41f7472122f45bc5b4677f066e0943" title="Prints thrown error message to stderr.">printMessage</a>();
   }
 
-  <span class="keywordflow">if</span> ( adc.<a class="code" href="classRtAudio.html#3863e45ff81dbe97176de0ee7545917f" title="Returns true if a stream is open and false if not.">isStreamOpen</a>() ) adc.<a class="code" href="classRtAudio.html#90d599002ad32cf250a4cb866f2cc93a" title="A function that closes a stream and frees any associated stream memory.">closeStream</a>();
+  <span class="keywordflow">if</span> ( adc.<a class="code" href="classRtAudio.html#a3863e45ff81dbe97176de0ee7545917f" title="Returns true if a stream is open and false if not.">isStreamOpen</a>() ) adc.<a class="code" href="classRtAudio.html#a90d599002ad32cf250a4cb866f2cc93a" title="A function that closes a stream and frees any associated stream memory.">closeStream</a>();
 
   <span class="keywordflow">return</span> 0;
 }
-</pre></div><p>
-In this example, we pass the address of the stream parameter structure as the second argument of the <a class="el" href="classRtAudio.html#facc99740fa4c5606fb35467cdea6da8" title="A public function for opening a stream with the specified parameters.">RtAudio::openStream()</a> function and pass a NULL value for the output stream parameters. In this example, the <em>record()</em> callback function performs no specific operations. </div>
+</pre></div><p>In this example, we pass the address of the stream parameter structure as the second argument of the <a class="el" href="classRtAudio.html#afacc99740fa4c5606fb35467cdea6da8" title="A public function for opening a stream with the specified parameters.">RtAudio::openStream()</a> function and pass a NULL value for the output stream parameters. In this example, the <em>record()</em> callback function performs no specific operations. </p>
+</div>
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2001-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
 </table>
 
 </BODY>
index cb62dc9b5e4bd93ae25e08a37ace34cc880c6fcb..2813a1dbf51a1985a0e5c82f9af12d7582b6e79b 100644 (file)
@@ -8,47 +8,49 @@
 <CENTER>
 <a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
 <HR>
-<!-- Generated by Doxygen 1.5.8 -->
+<!-- Generated by Doxygen 1.6.2 -->
 <div class="contents">
-<h1><a class="anchor" name="settings">Device Settings </a></h1>The next step in using <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> is to open a stream with particular device and parameter settings.<p>
-<div class="fragment"><pre class="fragment"><span class="preprocessor">#include "<a class="code" href="RtAudio_8h.html">RtAudio.h</a>"</span>
+
+
+<h1><a class="anchor" id="settings">Device Settings </a></h1><p>The next step in using <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> is to open a stream with particular device and parameter settings.</p>
+<div class="fragment"><pre class="fragment"><span class="preprocessor">#include &quot;<a class="code" href="RtAudio_8h.html">RtAudio.h</a>&quot;</span>
 
 <span class="keywordtype">int</span> main()
 {
   <a class="code" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> dac;
-  <span class="keywordflow">if</span> ( dac.<a class="code" href="classRtAudio.html#747ce2d73803641bbb66d6e78092aa1a" title="A public function that queries for the number of audio devices available.">getDeviceCount</a>() == 0 ) exit( 0 );
+  <span class="keywordflow">if</span> ( dac.<a class="code" href="classRtAudio.html#a747ce2d73803641bbb66d6e78092aa1a" title="A public function that queries for the number of audio devices available.">getDeviceCount</a>() == 0 ) exit( 0 );
 
   <a class="code" href="structRtAudio_1_1StreamParameters.html" title="The structure for specifying input or ouput stream parameters.">RtAudio::StreamParameters</a> parameters;
-  parameters.<a class="code" href="structRtAudio_1_1StreamParameters.html#ffd27496c70c0986522056234c64e28e">deviceId</a> = dac.<a class="code" href="classRtAudio.html#3a3f3dbe13ea696b521e49cdaaa357bc" title="A function that returns the index of the default output device.">getDefaultOutputDevice</a>();
-  parameters.<a class="code" href="structRtAudio_1_1StreamParameters.html#78798b65fada7941e1a7e47c11c9e627">nChannels</a> = 2;
+  parameters.<a class="code" href="structRtAudio_1_1StreamParameters.html#ab3c72bcf3ef12149ae9a4fb597cc5489">deviceId</a> = dac.<a class="code" href="classRtAudio.html#a3a3f3dbe13ea696b521e49cdaaa357bc" title="A function that returns the index of the default output device.">getDefaultOutputDevice</a>();
+  parameters.<a class="code" href="structRtAudio_1_1StreamParameters.html#a88a10091b6e284e21235cc6f25332ebd">nChannels</a> = 2;
   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> sampleRate = 44100;
   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> bufferFrames = 256; <span class="comment">// 256 sample frames</span>
 
   <a class="code" href="structRtAudio_1_1StreamOptions.html" title="The structure for specifying stream options.">RtAudio::StreamOptions</a> options;
-  options.<a class="code" href="structRtAudio_1_1StreamOptions.html#6a284d045b8adcfcf178a4f6a22330f8">flags</a> = RTAUDIO_NONINTERLEAVED;
+  options.<a class="code" href="structRtAudio_1_1StreamOptions.html#a0ecc98b031aa3af49d09b781643e298b">flags</a> = RTAUDIO_NONINTERLEAVED;
 
   <span class="keywordflow">try</span> {
-    dac.<a class="code" href="classRtAudio.html#facc99740fa4c5606fb35467cdea6da8" title="A public function for opening a stream with the specified parameters.">openStream</a>( &amp;parameters, NULL, RTAUDIO_FLOAT32,
+    dac.<a class="code" href="classRtAudio.html#afacc99740fa4c5606fb35467cdea6da8" title="A public function for opening a stream with the specified parameters.">openStream</a>( &amp;parameters, NULL, RTAUDIO_FLOAT32,
                     sampleRate, &amp;bufferFrames, &amp;myCallback, NULL, &amp;options );
   }
   <span class="keywordflow">catch</span> ( <a class="code" href="classRtError.html" title="Exception handling class for RtAudio &amp;amp; RtMidi.">RtError</a>&amp; e ) {
-    std::cout &lt;&lt; <span class="charliteral">'\n'</span> &lt;&lt; e.<a class="code" href="classRtError.html#c7f467788e29d246333d7af050801164" title="Returns the thrown error message string.">getMessage</a>() &lt;&lt; <span class="charliteral">'\n'</span> &lt;&lt; std::endl;
+    std::cout &lt;&lt; <span class="charliteral">&#39;\n&#39;</span> &lt;&lt; e.<a class="code" href="classRtError.html#ac7f467788e29d246333d7af050801164" title="Returns the thrown error message string.">getMessage</a>() &lt;&lt; <span class="charliteral">&#39;\n&#39;</span> &lt;&lt; std::endl;
     exit( 0 );
   }
   
   <span class="keywordflow">return</span> 0;
 }
-</pre></div><p>
-The <a class="el" href="classRtAudio.html#facc99740fa4c5606fb35467cdea6da8" title="A public function for opening a stream with the specified parameters.">RtAudio::openStream()</a> function attempts to open a stream with a specified set of parameter values. In the above example, we attempt to open a two channel playback stream using the default output device, 32-bit floating point data, a sample rate of 44100 Hz, and a frame rate of 256 sample frames per output buffer. If the user specifies an invalid parameter value (such as a device id greater than or equal to the number of enumerated devices), an <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> is thrown of type = INVALID_USE. If a system error occurs or the device does not support the specified parameter values, an <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> of type = SYSTEM_ERROR is thrown. In either case, a descriptive error message is bundled with the exception and can be queried with the <a class="el" href="classRtError.html#c7f467788e29d246333d7af050801164" title="Returns the thrown error message string.">RtError::getMessage()</a> or <a class="el" href="classRtError.html#eb843b7a7785d66061c61ebfc29e7e9d" title="Returns the thrown error message as a c-style string.">RtError::what()</a> functions.<p>
-<a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> provides four signed integer and two floating point data formats which can be specified using the RtAudioFormat parameter values mentioned earlier. If the opened device does not natively support the given format, <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> will automatically perform the necessary data format conversion.<p>
-The <code>bufferFrames</code> parameter specifies the desired number of sample frames that will be written to and/or read from a device per write/read operation. This parameter can be used to control stream latency though there is no guarantee that the passed value will be that used by a device. In general, a lower <code>bufferFrames</code> value will produce less latency but perhaps less robust performance. A value of zero can be specified, in which case the smallest allowable value will be used. The <code>bufferFrames</code> parameter is passed as a pointer and the actual value used by the stream is set during the device setup procedure. <code>bufferFrames</code> values should be a power of two. Optimal and allowable buffer values tend to vary between systems and devices. Stream latency can also be controlled via the optional <a class="el" href="structRtAudio_1_1StreamOptions.html" title="The structure for specifying stream options.">RtAudio::StreamOptions</a> member <code>numberOfBuffers</code> (not used in the example above), though this tends to be more system dependent. In particular, the <code>numberOfBuffers</code> parameter is ignored when using the OS-X Core Audio, Jack, and the Windows ASIO APIs.<p>
-As noted earlier, the device capabilities reported by a driver or underlying audio API are not always accurate and/or may be dependent on a combination of device settings. Because of this, <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> does not attempt to query a device's capabilities or use previously reported values when opening a device. Instead, <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> simply attempts to set the given parameters on a specified device and then checks whether the setup is successful or not.<p>
-The RtAudioCallback parameter above is a pointer to a user-defined function that will be called whenever the audio system is ready for new output data or has new input data to be read. Further details on the use of a callback function are provided in the next section.<p>
-Several stream options are available to fine-tune the behavior of an audio stream. In the example above, we specify that data will be written by the user in a <em>non-interleaved</em> format via the <a class="el" href="structRtAudio_1_1StreamOptions.html" title="The structure for specifying stream options.">RtAudio::StreamOptions</a> member <code>flags</code>. That is, all <code>bufferFrames</code> of the first channel should be written consecutively, followed by all <code>bufferFrames</code> of the second channel. By default (when no option is specified), <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> expects data to be written in an <em>interleaved</em> format. </div>
+</pre></div><p>The <a class="el" href="classRtAudio.html#afacc99740fa4c5606fb35467cdea6da8" title="A public function for opening a stream with the specified parameters.">RtAudio::openStream()</a> function attempts to open a stream with a specified set of parameter values. In the above example, we attempt to open a two channel playback stream using the default output device, 32-bit floating point data, a sample rate of 44100 Hz, and a frame rate of 256 sample frames per output buffer. If the user specifies an invalid parameter value (such as a device id greater than or equal to the number of enumerated devices), an <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> is thrown of type = INVALID_USE. If a system error occurs or the device does not support the specified parameter values, an <a class="el" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> of type = SYSTEM_ERROR is thrown. In either case, a descriptive error message is bundled with the exception and can be queried with the <a class="el" href="classRtError.html#ac7f467788e29d246333d7af050801164" title="Returns the thrown error message string.">RtError::getMessage()</a> or <a class="el" href="classRtError.html#aeb843b7a7785d66061c61ebfc29e7e9d" title="Returns the thrown error message as a c-style string.">RtError::what()</a> functions.</p>
+<p><a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> provides four signed integer and two floating point data formats which can be specified using the RtAudioFormat parameter values mentioned earlier. If the opened device does not natively support the given format, <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> will automatically perform the necessary data format conversion.</p>
+<p>The <code>bufferFrames</code> parameter specifies the desired number of sample frames that will be written to and/or read from a device per write/read operation. This parameter can be used to control stream latency though there is no guarantee that the passed value will be that used by a device. In general, a lower <code>bufferFrames</code> value will produce less latency but perhaps less robust performance. A value of zero can be specified, in which case the smallest allowable value will be used. The <code>bufferFrames</code> parameter is passed as a pointer and the actual value used by the stream is set during the device setup procedure. <code>bufferFrames</code> values should be a power of two. Optimal and allowable buffer values tend to vary between systems and devices. Stream latency can also be controlled via the optional <a class="el" href="structRtAudio_1_1StreamOptions.html" title="The structure for specifying stream options.">RtAudio::StreamOptions</a> member <code>numberOfBuffers</code> (not used in the example above), though this tends to be more system dependent. In particular, the <code>numberOfBuffers</code> parameter is ignored when using the OS-X Core Audio, Jack, and the Windows ASIO APIs.</p>
+<p>As noted earlier, the device capabilities reported by a driver or underlying audio API are not always accurate and/or may be dependent on a combination of device settings. Because of this, <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> does not attempt to query a device's capabilities or use previously reported values when opening a device. Instead, <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> simply attempts to set the given parameters on a specified device and then checks whether the setup is successful or not.</p>
+<p>The RtAudioCallback parameter above is a pointer to a user-defined function that will be called whenever the audio system is ready for new output data or has new input data to be read. Further details on the use of a callback function are provided in the next section.</p>
+<p>Several stream options are available to fine-tune the behavior of an audio stream. In the example above, we specify that data will be written by the user in a <em>non-interleaved</em> format via the <a class="el" href="structRtAudio_1_1StreamOptions.html" title="The structure for specifying stream options.">RtAudio::StreamOptions</a> member <code>flags</code>. That is, all <code>bufferFrames</code> of the first channel should be written consecutively, followed by all <code>bufferFrames</code> of the second channel. By default (when no option is specified), <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> expects data to be written in an <em>interleaved</em> format. </p>
+</div>
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2001-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
 </table>
 
 </BODY>
index a8bfa72a41ea1202ffaecc98f64d6e83ec71569b..3fef735b4d128a6462bb6548b59a895d39b89675 100644 (file)
@@ -8,23 +8,23 @@
 <CENTER>
 <a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
 <HR>
-<!-- Generated by Doxygen 1.5.8 -->
+<!-- Generated by Doxygen 1.6.2 -->
 <div class="contents">
-<h1>RtAudio::RtAudio::DeviceInfo Member List</h1>This is the complete list of members for <a class="el" href="structRtAudio_1_1DeviceInfo.html">RtAudio::RtAudio::DeviceInfo</a>, including all inherited members.<p><table>
-  <tr class="memlist"><td><a class="el" href="structRtAudio_1_1DeviceInfo.html#ca6ecfb8b5b8c114c54809d8af50ee5b">duplexChannels</a></td><td><a class="el" href="structRtAudio_1_1DeviceInfo.html">RtAudio::RtAudio::DeviceInfo</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="structRtAudio_1_1DeviceInfo.html#731b31adf84c550ab98329be1baa58b4">inputChannels</a></td><td><a class="el" href="structRtAudio_1_1DeviceInfo.html">RtAudio::RtAudio::DeviceInfo</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="structRtAudio_1_1DeviceInfo.html#a8b03618fa1d4c051f6add14bb031728">isDefaultInput</a></td><td><a class="el" href="structRtAudio_1_1DeviceInfo.html">RtAudio::RtAudio::DeviceInfo</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="structRtAudio_1_1DeviceInfo.html#af74fc23f451fdd22ed073a47f0db674">isDefaultOutput</a></td><td><a class="el" href="structRtAudio_1_1DeviceInfo.html">RtAudio::RtAudio::DeviceInfo</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="structRtAudio_1_1DeviceInfo.html#a0e2ea10c52c206c9e105ac76b01f194">name</a></td><td><a class="el" href="structRtAudio_1_1DeviceInfo.html">RtAudio::RtAudio::DeviceInfo</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="structRtAudio_1_1DeviceInfo.html#97559ee4a1f2c8cfb765949e6193e1f4">nativeFormats</a></td><td><a class="el" href="structRtAudio_1_1DeviceInfo.html">RtAudio::RtAudio::DeviceInfo</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="structRtAudio_1_1DeviceInfo.html#185f8aac1095de4fbb6e0076875d24c4">outputChannels</a></td><td><a class="el" href="structRtAudio_1_1DeviceInfo.html">RtAudio::RtAudio::DeviceInfo</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="structRtAudio_1_1DeviceInfo.html#5bf008c629ef493c713ec870d0217407">probed</a></td><td><a class="el" href="structRtAudio_1_1DeviceInfo.html">RtAudio::RtAudio::DeviceInfo</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="structRtAudio_1_1DeviceInfo.html#5b158efcbfbd30e7226df92d0109d475">sampleRates</a></td><td><a class="el" href="structRtAudio_1_1DeviceInfo.html">RtAudio::RtAudio::DeviceInfo</a></td><td></td></tr>
+<h1>RtAudio::DeviceInfo Member List</h1>This is the complete list of members for <a class="el" href="structRtAudio_1_1DeviceInfo.html">RtAudio::DeviceInfo</a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="structRtAudio_1_1DeviceInfo.html#a3e8ad34c2d14e24293a0beafc26186e7">duplexChannels</a></td><td><a class="el" href="structRtAudio_1_1DeviceInfo.html">RtAudio::DeviceInfo</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structRtAudio_1_1DeviceInfo.html#a56247b458a937ae84d98ca9c4b243275">inputChannels</a></td><td><a class="el" href="structRtAudio_1_1DeviceInfo.html">RtAudio::DeviceInfo</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structRtAudio_1_1DeviceInfo.html#a7c8aca084bd908799b6be5954b80def2">isDefaultInput</a></td><td><a class="el" href="structRtAudio_1_1DeviceInfo.html">RtAudio::DeviceInfo</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structRtAudio_1_1DeviceInfo.html#a5365245e73ffe29a05734de4474acd58">isDefaultOutput</a></td><td><a class="el" href="structRtAudio_1_1DeviceInfo.html">RtAudio::DeviceInfo</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structRtAudio_1_1DeviceInfo.html#a24df596ab8d54f2eb540c7cf16212b3b">name</a></td><td><a class="el" href="structRtAudio_1_1DeviceInfo.html">RtAudio::DeviceInfo</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structRtAudio_1_1DeviceInfo.html#a23251b549b89b2fe04a57fcd7cb76ea4">nativeFormats</a></td><td><a class="el" href="structRtAudio_1_1DeviceInfo.html">RtAudio::DeviceInfo</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structRtAudio_1_1DeviceInfo.html#a81aaf488f8158ef55b1bb678f66feb7d">outputChannels</a></td><td><a class="el" href="structRtAudio_1_1DeviceInfo.html">RtAudio::DeviceInfo</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structRtAudio_1_1DeviceInfo.html#a97573717ccb1e75a834a0a108cd6982d">probed</a></td><td><a class="el" href="structRtAudio_1_1DeviceInfo.html">RtAudio::DeviceInfo</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structRtAudio_1_1DeviceInfo.html#afa65f5f92f66ce7aacd3ff35e11b230f">sampleRates</a></td><td><a class="el" href="structRtAudio_1_1DeviceInfo.html">RtAudio::DeviceInfo</a></td><td></td></tr>
 </table></div>
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2001-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
 </table>
 
 </BODY>
index f32ae408c10d831ccffcf407aabc600f1b2fecc1..59feb30a2235e8ec39a3516401155029e900e125 100644 (file)
 <CENTER>
 <a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
 <HR>
-<!-- Generated by Doxygen 1.5.8 -->
+<!-- Generated by Doxygen 1.6.2 -->
   <div class="navpath"><a class="el" href="classRtAudio.html">RtAudio</a>::<a class="el" href="structRtAudio_1_1DeviceInfo.html">DeviceInfo</a>
   </div>
 <div class="contents">
-<h1>RtAudio::RtAudio::DeviceInfo Struct Reference</h1><!-- doxytag: class="RtAudio::DeviceInfo" -->The public device information structure for returning queried values.  
-<a href="#_details">More...</a>
-<p>
-<code>#include &lt;<a class="el" href="RtAudio_8h-source.html">RtAudio.h</a>&gt;</code>
-<p>
-
-<p>
-<a href="structRtAudio_1_1DeviceInfo-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
-<tr><td></td></tr>
-<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1DeviceInfo.html#5bf008c629ef493c713ec870d0217407">probed</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1DeviceInfo.html#a0e2ea10c52c206c9e105ac76b01f194">name</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1DeviceInfo.html#185f8aac1095de4fbb6e0076875d24c4">outputChannels</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1DeviceInfo.html#731b31adf84c550ab98329be1baa58b4">inputChannels</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1DeviceInfo.html#ca6ecfb8b5b8c114c54809d8af50ee5b">duplexChannels</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1DeviceInfo.html#af74fc23f451fdd22ed073a47f0db674">isDefaultOutput</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1DeviceInfo.html#a8b03618fa1d4c051f6add14bb031728">isDefaultInput</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">std::vector&lt; unsigned int &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1DeviceInfo.html#5b158efcbfbd30e7226df92d0109d475">sampleRates</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="RtAudio_8h.html#afca92882d25915560018873221e44b8">RtAudioFormat</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1DeviceInfo.html#97559ee4a1f2c8cfb765949e6193e1f4">nativeFormats</a></td></tr>
-
+<h1>RtAudio::DeviceInfo Struct Reference</h1><!-- doxytag: class="RtAudio::DeviceInfo" -->
+<p>The public device information structure for returning queried values.  
+<a href="#_details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="RtAudio_8h_source.html">RtAudio.h</a>&gt;</code></p>
+
+<p><a href="structRtAudio_1_1DeviceInfo-members.html">List of all members.</a></p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1DeviceInfo.html#a97573717ccb1e75a834a0a108cd6982d">probed</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1DeviceInfo.html#a24df596ab8d54f2eb540c7cf16212b3b">name</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1DeviceInfo.html#a81aaf488f8158ef55b1bb678f66feb7d">outputChannels</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1DeviceInfo.html#a56247b458a937ae84d98ca9c4b243275">inputChannels</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1DeviceInfo.html#a3e8ad34c2d14e24293a0beafc26186e7">duplexChannels</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1DeviceInfo.html#a5365245e73ffe29a05734de4474acd58">isDefaultOutput</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1DeviceInfo.html#a7c8aca084bd908799b6be5954b80def2">isDefaultInput</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::vector&lt; unsigned int &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1DeviceInfo.html#afa65f5f92f66ce7aacd3ff35e11b230f">sampleRates</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="RtAudio_8h.html#aafca92882d25915560018873221e44b8">RtAudioFormat</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1DeviceInfo.html#a23251b549b89b2fe04a57fcd7cb76ea4">nativeFormats</a></td></tr>
 </table>
-<hr><a name="_details"></a><h2>Detailed Description</h2>
-The public device information structure for returning queried values. <hr><h2>Member Data Documentation</h2>
-<a class="anchor" name="5bf008c629ef493c713ec870d0217407"></a><!-- doxytag: member="RtAudio::DeviceInfo::probed" ref="5bf008c629ef493c713ec870d0217407" args="" -->
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>The public device information structure for returning queried values. </p>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a97573717ccb1e75a834a0a108cd6982d"></a><!-- doxytag: member="RtAudio::DeviceInfo::probed" ref="a97573717ccb1e75a834a0a108cd6982d" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">bool RtAudio::RtAudio::DeviceInfo::probed          </td>
+          <td class="memname">bool <a class="el" href="structRtAudio_1_1DeviceInfo.html#a97573717ccb1e75a834a0a108cd6982d">RtAudio::DeviceInfo::probed</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
+<p>true if the device capabilities were successfully probed. </p>
 
-<p>
-true if the device capabilities were successfully probed. 
 </div>
-</div><p>
-<a class="anchor" name="a0e2ea10c52c206c9e105ac76b01f194"></a><!-- doxytag: member="RtAudio::DeviceInfo::name" ref="a0e2ea10c52c206c9e105ac76b01f194" args="" -->
+</div>
+<a class="anchor" id="a24df596ab8d54f2eb540c7cf16212b3b"></a><!-- doxytag: member="RtAudio::DeviceInfo::name" ref="a24df596ab8d54f2eb540c7cf16212b3b" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">std::string RtAudio::RtAudio::DeviceInfo::name          </td>
+          <td class="memname">std::string <a class="el" href="structRtAudio_1_1DeviceInfo.html#a24df596ab8d54f2eb540c7cf16212b3b">RtAudio::DeviceInfo::name</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
+<p>Character string device identifier. </p>
 
-<p>
-Character string device identifier. 
 </div>
-</div><p>
-<a class="anchor" name="185f8aac1095de4fbb6e0076875d24c4"></a><!-- doxytag: member="RtAudio::DeviceInfo::outputChannels" ref="185f8aac1095de4fbb6e0076875d24c4" args="" -->
+</div>
+<a class="anchor" id="a81aaf488f8158ef55b1bb678f66feb7d"></a><!-- doxytag: member="RtAudio::DeviceInfo::outputChannels" ref="a81aaf488f8158ef55b1bb678f66feb7d" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">unsigned int RtAudio::RtAudio::DeviceInfo::outputChannels          </td>
+          <td class="memname">unsigned int <a class="el" href="structRtAudio_1_1DeviceInfo.html#a81aaf488f8158ef55b1bb678f66feb7d">RtAudio::DeviceInfo::outputChannels</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
+<p>Maximum output channels supported by device. </p>
 
-<p>
-Maximum output channels supported by device. 
 </div>
-</div><p>
-<a class="anchor" name="731b31adf84c550ab98329be1baa58b4"></a><!-- doxytag: member="RtAudio::DeviceInfo::inputChannels" ref="731b31adf84c550ab98329be1baa58b4" args="" -->
+</div>
+<a class="anchor" id="a56247b458a937ae84d98ca9c4b243275"></a><!-- doxytag: member="RtAudio::DeviceInfo::inputChannels" ref="a56247b458a937ae84d98ca9c4b243275" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">unsigned int RtAudio::RtAudio::DeviceInfo::inputChannels          </td>
+          <td class="memname">unsigned int <a class="el" href="structRtAudio_1_1DeviceInfo.html#a56247b458a937ae84d98ca9c4b243275">RtAudio::DeviceInfo::inputChannels</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
+<p>Maximum input channels supported by device. </p>
 
-<p>
-Maximum input channels supported by device. 
 </div>
-</div><p>
-<a class="anchor" name="ca6ecfb8b5b8c114c54809d8af50ee5b"></a><!-- doxytag: member="RtAudio::DeviceInfo::duplexChannels" ref="ca6ecfb8b5b8c114c54809d8af50ee5b" args="" -->
+</div>
+<a class="anchor" id="a3e8ad34c2d14e24293a0beafc26186e7"></a><!-- doxytag: member="RtAudio::DeviceInfo::duplexChannels" ref="a3e8ad34c2d14e24293a0beafc26186e7" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">unsigned int RtAudio::RtAudio::DeviceInfo::duplexChannels          </td>
+          <td class="memname">unsigned int <a class="el" href="structRtAudio_1_1DeviceInfo.html#a3e8ad34c2d14e24293a0beafc26186e7">RtAudio::DeviceInfo::duplexChannels</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
+<p>Maximum simultaneous input/output channels supported by device. </p>
 
-<p>
-Maximum simultaneous input/output channels supported by device. 
 </div>
-</div><p>
-<a class="anchor" name="af74fc23f451fdd22ed073a47f0db674"></a><!-- doxytag: member="RtAudio::DeviceInfo::isDefaultOutput" ref="af74fc23f451fdd22ed073a47f0db674" args="" -->
+</div>
+<a class="anchor" id="a5365245e73ffe29a05734de4474acd58"></a><!-- doxytag: member="RtAudio::DeviceInfo::isDefaultOutput" ref="a5365245e73ffe29a05734de4474acd58" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">bool RtAudio::RtAudio::DeviceInfo::isDefaultOutput          </td>
+          <td class="memname">bool <a class="el" href="structRtAudio_1_1DeviceInfo.html#a5365245e73ffe29a05734de4474acd58">RtAudio::DeviceInfo::isDefaultOutput</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
+<p>true if this is the default output device. </p>
 
-<p>
-true if this is the default output device. 
 </div>
-</div><p>
-<a class="anchor" name="a8b03618fa1d4c051f6add14bb031728"></a><!-- doxytag: member="RtAudio::DeviceInfo::isDefaultInput" ref="a8b03618fa1d4c051f6add14bb031728" args="" -->
+</div>
+<a class="anchor" id="a7c8aca084bd908799b6be5954b80def2"></a><!-- doxytag: member="RtAudio::DeviceInfo::isDefaultInput" ref="a7c8aca084bd908799b6be5954b80def2" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">bool RtAudio::RtAudio::DeviceInfo::isDefaultInput          </td>
+          <td class="memname">bool <a class="el" href="structRtAudio_1_1DeviceInfo.html#a7c8aca084bd908799b6be5954b80def2">RtAudio::DeviceInfo::isDefaultInput</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
+<p>true if this is the default input device. </p>
 
-<p>
-true if this is the default input device. 
 </div>
-</div><p>
-<a class="anchor" name="5b158efcbfbd30e7226df92d0109d475"></a><!-- doxytag: member="RtAudio::DeviceInfo::sampleRates" ref="5b158efcbfbd30e7226df92d0109d475" args="" -->
+</div>
+<a class="anchor" id="afa65f5f92f66ce7aacd3ff35e11b230f"></a><!-- doxytag: member="RtAudio::DeviceInfo::sampleRates" ref="afa65f5f92f66ce7aacd3ff35e11b230f" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">std::vector&lt;unsigned int&gt; RtAudio::RtAudio::DeviceInfo::sampleRates          </td>
+          <td class="memname">std::vector&lt;unsigned int&gt; <a class="el" href="structRtAudio_1_1DeviceInfo.html#afa65f5f92f66ce7aacd3ff35e11b230f">RtAudio::DeviceInfo::sampleRates</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
+<p>Supported sample rates (queried from list of standard rates). </p>
 
-<p>
-Supported sample rates (queried from list of standard rates). 
 </div>
-</div><p>
-<a class="anchor" name="97559ee4a1f2c8cfb765949e6193e1f4"></a><!-- doxytag: member="RtAudio::DeviceInfo::nativeFormats" ref="97559ee4a1f2c8cfb765949e6193e1f4" args="" -->
+</div>
+<a class="anchor" id="a23251b549b89b2fe04a57fcd7cb76ea4"></a><!-- doxytag: member="RtAudio::DeviceInfo::nativeFormats" ref="a23251b549b89b2fe04a57fcd7cb76ea4" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="RtAudio_8h.html#afca92882d25915560018873221e44b8">RtAudioFormat</a> RtAudio::RtAudio::DeviceInfo::nativeFormats          </td>
+          <td class="memname"><a class="el" href="RtAudio_8h.html#aafca92882d25915560018873221e44b8">RtAudioFormat</a> <a class="el" href="structRtAudio_1_1DeviceInfo.html#a23251b549b89b2fe04a57fcd7cb76ea4">RtAudio::DeviceInfo::nativeFormats</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
+<p>Bit mask of supported data formats. </p>
 
-<p>
-Bit mask of supported data formats. 
 </div>
-</div><p>
-<hr>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="RtAudio_8h-source.html">RtAudio.h</a></ul>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="RtAudio_8h_source.html">RtAudio.h</a></li>
+</ul>
 </div>
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2001-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
 </table>
 
 </BODY>
index 56a03cded45013f8250532284832be21fb18bf3d..f17637e3661c192fe9011bd6ffafb474567d7bfb 100644 (file)
@@ -8,18 +8,18 @@
 <CENTER>
 <a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
 <HR>
-<!-- Generated by Doxygen 1.5.8 -->
+<!-- Generated by Doxygen 1.6.2 -->
 <div class="contents">
-<h1>RtAudio::RtAudio::StreamOptions Member List</h1>This is the complete list of members for <a class="el" href="structRtAudio_1_1StreamOptions.html">RtAudio::RtAudio::StreamOptions</a>, including all inherited members.<p><table>
-  <tr class="memlist"><td><a class="el" href="structRtAudio_1_1StreamOptions.html#6a284d045b8adcfcf178a4f6a22330f8">flags</a></td><td><a class="el" href="structRtAudio_1_1StreamOptions.html">RtAudio::RtAudio::StreamOptions</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="structRtAudio_1_1StreamOptions.html#5a04d3c3d0c1cfa063872ecff383af1d">numberOfBuffers</a></td><td><a class="el" href="structRtAudio_1_1StreamOptions.html">RtAudio::RtAudio::StreamOptions</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="structRtAudio_1_1StreamOptions.html#81b364f137d1ee1073b74dac666af352">priority</a></td><td><a class="el" href="structRtAudio_1_1StreamOptions.html">RtAudio::RtAudio::StreamOptions</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="structRtAudio_1_1StreamOptions.html#214da35056f18ffb7c8e4dc074a01a9a">streamName</a></td><td><a class="el" href="structRtAudio_1_1StreamOptions.html">RtAudio::RtAudio::StreamOptions</a></td><td></td></tr>
+<h1>RtAudio::StreamOptions Member List</h1>This is the complete list of members for <a class="el" href="structRtAudio_1_1StreamOptions.html">RtAudio::StreamOptions</a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="structRtAudio_1_1StreamOptions.html#a0ecc98b031aa3af49d09b781643e298b">flags</a></td><td><a class="el" href="structRtAudio_1_1StreamOptions.html">RtAudio::StreamOptions</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structRtAudio_1_1StreamOptions.html#a75a14cfab903d0e1c091bc16aec80240">numberOfBuffers</a></td><td><a class="el" href="structRtAudio_1_1StreamOptions.html">RtAudio::StreamOptions</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structRtAudio_1_1StreamOptions.html#adfd267059434edb21573c584e6367def">priority</a></td><td><a class="el" href="structRtAudio_1_1StreamOptions.html">RtAudio::StreamOptions</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structRtAudio_1_1StreamOptions.html#a2a4b0b8d690c624d20f4e8f4be6ca9ba">streamName</a></td><td><a class="el" href="structRtAudio_1_1StreamOptions.html">RtAudio::StreamOptions</a></td><td></td></tr>
 </table></div>
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2001-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
 </table>
 
 </BODY>
index 47a09caf9971259cbb98cd316efcac63c3571d01..336c8761d469b084683c01c411d36d0922a7ac2c 100644 (file)
 <CENTER>
 <a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
 <HR>
-<!-- Generated by Doxygen 1.5.8 -->
+<!-- Generated by Doxygen 1.6.2 -->
   <div class="navpath"><a class="el" href="classRtAudio.html">RtAudio</a>::<a class="el" href="structRtAudio_1_1StreamOptions.html">StreamOptions</a>
   </div>
 <div class="contents">
-<h1>RtAudio::RtAudio::StreamOptions Struct Reference</h1><!-- doxytag: class="RtAudio::StreamOptions" -->The structure for specifying stream options.  
-<a href="#_details">More...</a>
-<p>
-<code>#include &lt;<a class="el" href="RtAudio_8h-source.html">RtAudio.h</a>&gt;</code>
-<p>
+<h1>RtAudio::StreamOptions Struct Reference</h1><!-- doxytag: class="RtAudio::StreamOptions" -->
+<p>The structure for specifying stream options.  
+<a href="#_details">More...</a></p>
 
-<p>
-<a href="structRtAudio_1_1StreamOptions-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
-<tr><td></td></tr>
-<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="RtAudio_8h.html#2c0f59b200dcec4d4e760f9166b29c41">RtAudioStreamFlags</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1StreamOptions.html#6a284d045b8adcfcf178a4f6a22330f8">flags</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1StreamOptions.html#5a04d3c3d0c1cfa063872ecff383af1d">numberOfBuffers</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1StreamOptions.html#214da35056f18ffb7c8e4dc074a01a9a">streamName</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1StreamOptions.html#81b364f137d1ee1073b74dac666af352">priority</a></td></tr>
+<p><code>#include &lt;<a class="el" href="RtAudio_8h_source.html">RtAudio.h</a>&gt;</code></p>
 
+<p><a href="structRtAudio_1_1StreamOptions-members.html">List of all members.</a></p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="RtAudio_8h.html#a2c0f59b200dcec4d4e760f9166b29c41">RtAudioStreamFlags</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1StreamOptions.html#a0ecc98b031aa3af49d09b781643e298b">flags</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1StreamOptions.html#a75a14cfab903d0e1c091bc16aec80240">numberOfBuffers</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1StreamOptions.html#a2a4b0b8d690c624d20f4e8f4be6ca9ba">streamName</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1StreamOptions.html#adfd267059434edb21573c584e6367def">priority</a></td></tr>
 </table>
-<hr><a name="_details"></a><h2>Detailed Description</h2>
-The structure for specifying stream options. 
-<p>
-The following flags can be OR'ed together to allow a client to make changes to the default stream behavior:<p>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>The structure for specifying stream options. </p>
+<p>The following flags can be OR'ed together to allow a client to make changes to the default stream behavior:</p>
 <ul>
-<li><em>RTAUDIO_NONINTERLEAVED:</em> Use non-interleaved buffers (default = interleaved).</li><li><em>RTAUDIO_MINIMIZE_LATENCY:</em> Attempt to set stream parameters for lowest possible latency.</li><li><em>RTAUDIO_HOG_DEVICE:</em> Attempt grab device for exclusive use.</li><li><em>RTAUDIO_SCHEDULE_REALTIME:</em> Attempt to select realtime scheduling for callback thread.</li></ul>
-<p>
-By default, <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> streams pass and receive audio data from the client in an interleaved format. By passing the RTAUDIO_NONINTERLEAVED flag to the <a class="el" href="classRtAudio.html#facc99740fa4c5606fb35467cdea6da8" title="A public function for opening a stream with the specified parameters.">openStream()</a> function, audio data will instead be presented in non-interleaved buffers. In this case, each buffer argument in the RtAudioCallback function will point to a single array of data, with <code>nFrames</code> samples for each channel concatenated back-to-back. For example, the first sample of data for the second channel would be located at index <code>nFrames</code> (assuming the <code>buffer</code> pointer was recast to the correct data type for the stream).<p>
-Certain audio APIs offer a number of parameters that influence the I/O latency of a stream. By default, <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> will attempt to set these parameters internally for robust (glitch-free) performance (though some APIs, like Windows Direct Sound, make this difficult). By passing the RTAUDIO_MINIMIZE_LATENCY flag to the <a class="el" href="classRtAudio.html#facc99740fa4c5606fb35467cdea6da8" title="A public function for opening a stream with the specified parameters.">openStream()</a> function, internal stream settings will be influenced in an attempt to minimize stream latency, though possibly at the expense of stream performance.<p>
-If the RTAUDIO_HOG_DEVICE flag is set, <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> will attempt to open the input and/or output stream device(s) for exclusive use. Note that this is not possible with all supported audio APIs.<p>
-If the RTAUDIO_SCHEDULE_REALTIME flag is set, <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> will attempt to select realtime scheduling (round-robin) for the callback thread. The <code>priority</code> parameter will only be used if the RTAUDIO_SCHEDULE_REALTIME flag is set. It defines the thread's realtime priority.<p>
-The <code>numberOfBuffers</code> parameter can be used to control stream latency in the Windows DirectSound, Linux OSS, and Linux Alsa APIs only. A value of two is usually the smallest allowed. Larger numbers can potentially result in more robust stream performance, though likely at the cost of stream latency. The value set by the user is replaced during execution of the <a class="el" href="classRtAudio.html#facc99740fa4c5606fb35467cdea6da8" title="A public function for opening a stream with the specified parameters.">RtAudio::openStream()</a> function by the value actually used by the system.<p>
-The <code>streamName</code> parameter can be used to set the client name when using the Jack API. By default, the client name is set to RtApiJack. However, if you wish to create multiple instances of <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> with Jack, each instance must have a unique client name. <hr><h2>Member Data Documentation</h2>
-<a class="anchor" name="6a284d045b8adcfcf178a4f6a22330f8"></a><!-- doxytag: member="RtAudio::StreamOptions::flags" ref="6a284d045b8adcfcf178a4f6a22330f8" args="" -->
+<li><em>RTAUDIO_NONINTERLEAVED:</em> Use non-interleaved buffers (default = interleaved).</li>
+<li><em>RTAUDIO_MINIMIZE_LATENCY:</em> Attempt to set stream parameters for lowest possible latency.</li>
+<li><em>RTAUDIO_HOG_DEVICE:</em> Attempt grab device for exclusive use.</li>
+<li><em>RTAUDIO_SCHEDULE_REALTIME:</em> Attempt to select realtime scheduling for callback thread.</li>
+</ul>
+<p>By default, <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> streams pass and receive audio data from the client in an interleaved format. By passing the RTAUDIO_NONINTERLEAVED flag to the <a class="el" href="classRtAudio.html#afacc99740fa4c5606fb35467cdea6da8" title="A public function for opening a stream with the specified parameters.">openStream()</a> function, audio data will instead be presented in non-interleaved buffers. In this case, each buffer argument in the RtAudioCallback function will point to a single array of data, with <code>nFrames</code> samples for each channel concatenated back-to-back. For example, the first sample of data for the second channel would be located at index <code>nFrames</code> (assuming the <code>buffer</code> pointer was recast to the correct data type for the stream).</p>
+<p>Certain audio APIs offer a number of parameters that influence the I/O latency of a stream. By default, <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> will attempt to set these parameters internally for robust (glitch-free) performance (though some APIs, like Windows Direct Sound, make this difficult). By passing the RTAUDIO_MINIMIZE_LATENCY flag to the <a class="el" href="classRtAudio.html#afacc99740fa4c5606fb35467cdea6da8" title="A public function for opening a stream with the specified parameters.">openStream()</a> function, internal stream settings will be influenced in an attempt to minimize stream latency, though possibly at the expense of stream performance.</p>
+<p>If the RTAUDIO_HOG_DEVICE flag is set, <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> will attempt to open the input and/or output stream device(s) for exclusive use. Note that this is not possible with all supported audio APIs.</p>
+<p>If the RTAUDIO_SCHEDULE_REALTIME flag is set, <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> will attempt to select realtime scheduling (round-robin) for the callback thread. The <code>priority</code> parameter will only be used if the RTAUDIO_SCHEDULE_REALTIME flag is set. It defines the thread's realtime priority.</p>
+<p>The <code>numberOfBuffers</code> parameter can be used to control stream latency in the Windows DirectSound, Linux OSS, and Linux Alsa APIs only. A value of two is usually the smallest allowed. Larger numbers can potentially result in more robust stream performance, though likely at the cost of stream latency. The value set by the user is replaced during execution of the <a class="el" href="classRtAudio.html#afacc99740fa4c5606fb35467cdea6da8" title="A public function for opening a stream with the specified parameters.">RtAudio::openStream()</a> function by the value actually used by the system.</p>
+<p>The <code>streamName</code> parameter can be used to set the client name when using the Jack API. By default, the client name is set to RtApiJack. However, if you wish to create multiple instances of <a class="el" href="classRtAudio.html" title="Realtime audio i/o C++ classes.">RtAudio</a> with Jack, each instance must have a unique client name. </p>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a0ecc98b031aa3af49d09b781643e298b"></a><!-- doxytag: member="RtAudio::StreamOptions::flags" ref="a0ecc98b031aa3af49d09b781643e298b" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="RtAudio_8h.html#2c0f59b200dcec4d4e760f9166b29c41">RtAudioStreamFlags</a> RtAudio::RtAudio::StreamOptions::flags          </td>
+          <td class="memname"><a class="el" href="RtAudio_8h.html#a2c0f59b200dcec4d4e760f9166b29c41">RtAudioStreamFlags</a> <a class="el" href="structRtAudio_1_1StreamOptions.html#a0ecc98b031aa3af49d09b781643e298b">RtAudio::StreamOptions::flags</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
+<p>A bit-mask of stream flags (RTAUDIO_NONINTERLEAVED, RTAUDIO_MINIMIZE_LATENCY, RTAUDIO_HOG_DEVICE). </p>
 
-<p>
-A bit-mask of stream flags (RTAUDIO_NONINTERLEAVED, RTAUDIO_MINIMIZE_LATENCY, RTAUDIO_HOG_DEVICE). 
 </div>
-</div><p>
-<a class="anchor" name="5a04d3c3d0c1cfa063872ecff383af1d"></a><!-- doxytag: member="RtAudio::StreamOptions::numberOfBuffers" ref="5a04d3c3d0c1cfa063872ecff383af1d" args="" -->
+</div>
+<a class="anchor" id="a75a14cfab903d0e1c091bc16aec80240"></a><!-- doxytag: member="RtAudio::StreamOptions::numberOfBuffers" ref="a75a14cfab903d0e1c091bc16aec80240" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">unsigned int RtAudio::RtAudio::StreamOptions::numberOfBuffers          </td>
+          <td class="memname">unsigned int <a class="el" href="structRtAudio_1_1StreamOptions.html#a75a14cfab903d0e1c091bc16aec80240">RtAudio::StreamOptions::numberOfBuffers</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
+<p>Number of stream buffers. </p>
 
-<p>
-Number of stream buffers. 
 </div>
-</div><p>
-<a class="anchor" name="214da35056f18ffb7c8e4dc074a01a9a"></a><!-- doxytag: member="RtAudio::StreamOptions::streamName" ref="214da35056f18ffb7c8e4dc074a01a9a" args="" -->
+</div>
+<a class="anchor" id="a2a4b0b8d690c624d20f4e8f4be6ca9ba"></a><!-- doxytag: member="RtAudio::StreamOptions::streamName" ref="a2a4b0b8d690c624d20f4e8f4be6ca9ba" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">std::string RtAudio::RtAudio::StreamOptions::streamName          </td>
+          <td class="memname">std::string <a class="el" href="structRtAudio_1_1StreamOptions.html#a2a4b0b8d690c624d20f4e8f4be6ca9ba">RtAudio::StreamOptions::streamName</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
+<p>A stream name (currently used only in Jack). </p>
 
-<p>
-A stream name (currently used only in Jack). 
 </div>
-</div><p>
-<a class="anchor" name="81b364f137d1ee1073b74dac666af352"></a><!-- doxytag: member="RtAudio::StreamOptions::priority" ref="81b364f137d1ee1073b74dac666af352" args="" -->
+</div>
+<a class="anchor" id="adfd267059434edb21573c584e6367def"></a><!-- doxytag: member="RtAudio::StreamOptions::priority" ref="adfd267059434edb21573c584e6367def" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">int RtAudio::RtAudio::StreamOptions::priority          </td>
+          <td class="memname">int <a class="el" href="structRtAudio_1_1StreamOptions.html#adfd267059434edb21573c584e6367def">RtAudio::StreamOptions::priority</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
+<p>Scheduling priority of callback thread (only used with flag RTAUDIO_SCHEDULE_REALTIME). </p>
 
-<p>
-Scheduling priority of callback thread (only used with flag RTAUDIO_SCHEDULE_REALTIME). 
 </div>
-</div><p>
-<hr>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="RtAudio_8h-source.html">RtAudio.h</a></ul>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="RtAudio_8h_source.html">RtAudio.h</a></li>
+</ul>
 </div>
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2001-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
 </table>
 
 </BODY>
index ab67bfb7af2676ce99951d35ddc97622da157680..b0a7c2df47eb97306977b4c7aa0275359ddff732 100644 (file)
@@ -8,17 +8,17 @@
 <CENTER>
 <a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
 <HR>
-<!-- Generated by Doxygen 1.5.8 -->
+<!-- Generated by Doxygen 1.6.2 -->
 <div class="contents">
-<h1>RtAudio::RtAudio::StreamParameters Member List</h1>This is the complete list of members for <a class="el" href="structRtAudio_1_1StreamParameters.html">RtAudio::RtAudio::StreamParameters</a>, including all inherited members.<p><table>
-  <tr class="memlist"><td><a class="el" href="structRtAudio_1_1StreamParameters.html#ffd27496c70c0986522056234c64e28e">deviceId</a></td><td><a class="el" href="structRtAudio_1_1StreamParameters.html">RtAudio::RtAudio::StreamParameters</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="structRtAudio_1_1StreamParameters.html#ddc8281f23a87455ec6dedbc766a74db">firstChannel</a></td><td><a class="el" href="structRtAudio_1_1StreamParameters.html">RtAudio::RtAudio::StreamParameters</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="structRtAudio_1_1StreamParameters.html#78798b65fada7941e1a7e47c11c9e627">nChannels</a></td><td><a class="el" href="structRtAudio_1_1StreamParameters.html">RtAudio::RtAudio::StreamParameters</a></td><td></td></tr>
+<h1>RtAudio::StreamParameters Member List</h1>This is the complete list of members for <a class="el" href="structRtAudio_1_1StreamParameters.html">RtAudio::StreamParameters</a>, including all inherited members.<table>
+  <tr class="memlist"><td><a class="el" href="structRtAudio_1_1StreamParameters.html#ab3c72bcf3ef12149ae9a4fb597cc5489">deviceId</a></td><td><a class="el" href="structRtAudio_1_1StreamParameters.html">RtAudio::StreamParameters</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structRtAudio_1_1StreamParameters.html#ad4b4503782653ec93c83328c46abe50c">firstChannel</a></td><td><a class="el" href="structRtAudio_1_1StreamParameters.html">RtAudio::StreamParameters</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structRtAudio_1_1StreamParameters.html#a88a10091b6e284e21235cc6f25332ebd">nChannels</a></td><td><a class="el" href="structRtAudio_1_1StreamParameters.html">RtAudio::StreamParameters</a></td><td></td></tr>
 </table></div>
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2001-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
 </table>
 
 </BODY>
index 71f2853ba8a70942eedb19c10c591e8af9584242..7498652f8f08d356248999efc6e3accd59e14b50 100644 (file)
@@ -8,81 +8,76 @@
 <CENTER>
 <a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="annotated.html">Class/Enum List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </CENTER>
 <HR>
-<!-- Generated by Doxygen 1.5.8 -->
+<!-- Generated by Doxygen 1.6.2 -->
   <div class="navpath"><a class="el" href="classRtAudio.html">RtAudio</a>::<a class="el" href="structRtAudio_1_1StreamParameters.html">StreamParameters</a>
   </div>
 <div class="contents">
-<h1>RtAudio::RtAudio::StreamParameters Struct Reference</h1><!-- doxytag: class="RtAudio::StreamParameters" -->The structure for specifying input or ouput stream parameters.  
-<a href="#_details">More...</a>
-<p>
-<code>#include &lt;<a class="el" href="RtAudio_8h-source.html">RtAudio.h</a>&gt;</code>
-<p>
+<h1>RtAudio::StreamParameters Struct Reference</h1><!-- doxytag: class="RtAudio::StreamParameters" -->
+<p>The structure for specifying input or ouput stream parameters.  
+<a href="#_details">More...</a></p>
 
-<p>
-<a href="structRtAudio_1_1StreamParameters-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
-<tr><td></td></tr>
-<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1StreamParameters.html#ffd27496c70c0986522056234c64e28e">deviceId</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1StreamParameters.html#78798b65fada7941e1a7e47c11c9e627">nChannels</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1StreamParameters.html#ddc8281f23a87455ec6dedbc766a74db">firstChannel</a></td></tr>
+<p><code>#include &lt;<a class="el" href="RtAudio_8h_source.html">RtAudio.h</a>&gt;</code></p>
 
+<p><a href="structRtAudio_1_1StreamParameters-members.html">List of all members.</a></p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1StreamParameters.html#ab3c72bcf3ef12149ae9a4fb597cc5489">deviceId</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1StreamParameters.html#a88a10091b6e284e21235cc6f25332ebd">nChannels</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1StreamParameters.html#ad4b4503782653ec93c83328c46abe50c">firstChannel</a></td></tr>
 </table>
-<hr><a name="_details"></a><h2>Detailed Description</h2>
-The structure for specifying input or ouput stream parameters. <hr><h2>Member Data Documentation</h2>
-<a class="anchor" name="ffd27496c70c0986522056234c64e28e"></a><!-- doxytag: member="RtAudio::StreamParameters::deviceId" ref="ffd27496c70c0986522056234c64e28e" args="" -->
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>The structure for specifying input or ouput stream parameters. </p>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="ab3c72bcf3ef12149ae9a4fb597cc5489"></a><!-- doxytag: member="RtAudio::StreamParameters::deviceId" ref="ab3c72bcf3ef12149ae9a4fb597cc5489" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">unsigned int RtAudio::RtAudio::StreamParameters::deviceId          </td>
+          <td class="memname">unsigned int <a class="el" href="structRtAudio_1_1StreamParameters.html#ab3c72bcf3ef12149ae9a4fb597cc5489">RtAudio::StreamParameters::deviceId</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
+<p>Device index (0 to <a class="el" href="classRtAudio.html#a747ce2d73803641bbb66d6e78092aa1a" title="A public function that queries for the number of audio devices available.">getDeviceCount()</a> - 1). </p>
 
-<p>
-Device index (0 to <a class="el" href="classRtAudio.html#747ce2d73803641bbb66d6e78092aa1a" title="A public function that queries for the number of audio devices available.">getDeviceCount()</a> - 1). 
 </div>
-</div><p>
-<a class="anchor" name="78798b65fada7941e1a7e47c11c9e627"></a><!-- doxytag: member="RtAudio::StreamParameters::nChannels" ref="78798b65fada7941e1a7e47c11c9e627" args="" -->
+</div>
+<a class="anchor" id="a88a10091b6e284e21235cc6f25332ebd"></a><!-- doxytag: member="RtAudio::StreamParameters::nChannels" ref="a88a10091b6e284e21235cc6f25332ebd" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">unsigned int RtAudio::RtAudio::StreamParameters::nChannels          </td>
+          <td class="memname">unsigned int <a class="el" href="structRtAudio_1_1StreamParameters.html#a88a10091b6e284e21235cc6f25332ebd">RtAudio::StreamParameters::nChannels</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
+<p>Number of channels. </p>
 
-<p>
-Number of channels. 
 </div>
-</div><p>
-<a class="anchor" name="ddc8281f23a87455ec6dedbc766a74db"></a><!-- doxytag: member="RtAudio::StreamParameters::firstChannel" ref="ddc8281f23a87455ec6dedbc766a74db" args="" -->
+</div>
+<a class="anchor" id="ad4b4503782653ec93c83328c46abe50c"></a><!-- doxytag: member="RtAudio::StreamParameters::firstChannel" ref="ad4b4503782653ec93c83328c46abe50c" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">unsigned int RtAudio::RtAudio::StreamParameters::firstChannel          </td>
+          <td class="memname">unsigned int <a class="el" href="structRtAudio_1_1StreamParameters.html#ad4b4503782653ec93c83328c46abe50c">RtAudio::StreamParameters::firstChannel</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
+<p>First channel index on device (default = 0). </p>
 
-<p>
-First channel index on device (default = 0). 
 </div>
-</div><p>
-<hr>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="RtAudio_8h-source.html">RtAudio.h</a></ul>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="RtAudio_8h_source.html">RtAudio.h</a></li>
+</ul>
 </div>
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2001-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+  <td>&copy;2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
 </table>
 
 </BODY>
index ab02c624afffb3c72a51ea259104cfeeeb7498c4..a444163416f5df282a30d86192c3cd3d2f3a09de 100644 (file)
@@ -57,7 +57,7 @@ DIV.tabs SPAN
    white-space      : nowrap;
 }
 
-DIV.tabs INPUT
+DIV.tabs #MSearchBox
 {
    float            : right;
    display          : inline;