diff options
Diffstat (limited to 'doc/html/RtAudio_8h.html')
| -rw-r--r-- | doc/html/RtAudio_8h.html | 161 |
1 files changed, 66 insertions, 95 deletions
diff --git a/doc/html/RtAudio_8h.html b/doc/html/RtAudio_8h.html index 73f5584..5ffc249 100644 --- a/doc/html/RtAudio_8h.html +++ b/doc/html/RtAudio_8h.html @@ -8,7 +8,8 @@ <CENTER> <a class="qindex" href="index.html">Home</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> <HR> -<!-- Generated by Doxygen 1.4.4 --> +<!-- Generated by Doxygen 1.5.8 --> +<div class="contents"> <h1>RtAudio.h File Reference</h1><code>#include <string></code><br> <code>#include <vector></code><br> <code>#include "RtError.h"</code><br> @@ -21,141 +22,110 @@ <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtAudio.html">RtAudio</a></td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1DeviceInfo.html">RtAudio::DeviceInfo</a></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1DeviceInfo.html">RtAudio::RtAudio::DeviceInfo</a></td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1StreamParameters.html">RtAudio::StreamParameters</a></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1StreamParameters.html">RtAudio::RtAudio::StreamParameters</a></td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1StreamOptions.html">RtAudio::StreamOptions</a></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structRtAudio_1_1StreamOptions.html">RtAudio::RtAudio::StreamOptions</a></td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="RtAudio_8h.html#a1">RtAudioFormat</a></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef unsigned long </td><td class="memItemRight" valign="bottom"><a class="el" href="RtAudio_8h.html#afca92882d25915560018873221e44b8">RtAudioFormat</a></td></tr> -<tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classRtAudio.html">RtAudio</a> data format type. <a href="#a1"></a><br></td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="RtAudio_8h.html#a8">RtAudioStreamFlags</a></td></tr> +<tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="RtAudio_8h.html#2c0f59b200dcec4d4e760f9166b29c41">RtAudioStreamFlags</a></td></tr> -<tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classRtAudio.html">RtAudio</a> stream option flags. <a href="#a8"></a><br></td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="RtAudio_8h.html#a12">RtAudioStreamStatus</a></td></tr> +<tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="RtAudio_8h.html#80e306d363583da3b0a1b65d9b57c806">RtAudioStreamStatus</a></td></tr> -<tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classRtAudio.html">RtAudio</a> stream status (over- or underflow) flags. <a href="#a12"></a><br></td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(* </td><td class="memItemRight" valign="bottom"><a class="el" href="RtAudio_8h.html#a15">RtAudioCallback</a> )(void *outputBuffer, void *inputBuffer, unsigned int nFrames, double streamTime, <a class="el" href="RtAudio_8h.html#a12">RtAudioStreamStatus</a> status, void *userData)</td></tr> +<tr><td class="mdescLeft"> </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(* </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"> </td><td class="mdescRight"><a class="el" href="classRtAudio.html">RtAudio</a> callback function prototype. <a href="#a15"></a><br></td></tr> +<tr><td class="mdescLeft"> </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> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> <hr><h2>Typedef Documentation</h2> -<a class="anchor" name="a1"></a><!-- doxytag: member="RtAudio.h::RtAudioFormat" ref="a1" args="" --><p> -<table class="mdTable" cellpadding="2" cellspacing="0"> - <tr> - <td class="mdRow"> - <table cellpadding="0" cellspacing="0" border="0"> +<a class="anchor" name="afca92882d25915560018873221e44b8"></a><!-- doxytag: member="RtAudio.h::RtAudioFormat" ref="afca92882d25915560018873221e44b8" args="" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> <tr> - <td class="md" nowrap valign="top">typedef unsigned long <a class="el" href="RtAudio_8h.html#a1">RtAudioFormat</a> </td> + <td class="memname">typedef unsigned long <a class="el" href="RtAudio_8h.html#afca92882d25915560018873221e44b8">RtAudioFormat</a> </td> </tr> </table> - </td> - </tr> -</table> -<table cellspacing="5" cellpadding="0" border="0"> - <tr> - <td> - - </td> - <td> +</div> +<div class="memdoc"> <p> -<a class="el" href="classRtAudio.html">RtAudio</a> data format type. +<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">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> +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> - </td> - </tr> -</table> -<a class="anchor" name="a8"></a><!-- doxytag: member="RtAudio.h::RtAudioStreamFlags" ref="a8" args="" --><p> -<table class="mdTable" cellpadding="2" cellspacing="0"> - <tr> - <td class="mdRow"> - <table cellpadding="0" cellspacing="0" border="0"> +<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 class="memitem"> +<div class="memproto"> + <table class="memname"> <tr> - <td class="md" nowrap valign="top">typedef unsigned long <a class="el" href="RtAudio_8h.html#a8">RtAudioStreamFlags</a> </td> + <td class="memname">typedef unsigned long <a class="el" href="RtAudio_8h.html#2c0f59b200dcec4d4e760f9166b29c41">RtAudioStreamFlags</a> </td> </tr> </table> - </td> - </tr> -</table> -<table cellspacing="5" cellpadding="0" border="0"> - <tr> - <td> - - </td> - <td> +</div> +<div class="memdoc"> <p> -<a class="el" href="classRtAudio.html">RtAudio</a> stream option flags. +<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> <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">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">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">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. </td> - </tr> -</table> -<a class="anchor" name="a12"></a><!-- doxytag: member="RtAudio.h::RtAudioStreamStatus" ref="a12" args="" --><p> -<table class="mdTable" cellpadding="2" cellspacing="0"> - <tr> - <td class="mdRow"> - <table cellpadding="0" cellspacing="0" border="0"> +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. +</div> +</div><p> +<a class="anchor" name="80e306d363583da3b0a1b65d9b57c806"></a><!-- doxytag: member="RtAudio.h::RtAudioStreamStatus" ref="80e306d363583da3b0a1b65d9b57c806" args="" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> <tr> - <td class="md" nowrap valign="top">typedef unsigned long <a class="el" href="RtAudio_8h.html#a12">RtAudioStreamStatus</a> </td> + <td class="memname">typedef unsigned long <a class="el" href="RtAudio_8h.html#80e306d363583da3b0a1b65d9b57c806">RtAudioStreamStatus</a> </td> </tr> </table> - </td> - </tr> -</table> -<table cellspacing="5" cellpadding="0" border="0"> - <tr> - <td> - - </td> - <td> +</div> +<div class="memdoc"> <p> -<a class="el" href="classRtAudio.html">RtAudio</a> stream status (over- or underflow) flags. +<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> <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> - </td> - </tr> -</table> -<a class="anchor" name="a15"></a><!-- doxytag: member="RtAudio.h::RtAudioCallback" ref="a15" args=")(void *outputBuffer, void *inputBuffer, unsigned int nFrames, double streamTime, RtAudioStreamStatus status, void *userData)" --><p> -<table class="mdTable" cellpadding="2" cellspacing="0"> - <tr> - <td class="mdRow"> - <table cellpadding="0" cellspacing="0" border="0"> +<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 class="memitem"> +<div class="memproto"> + <table class="memname"> <tr> - <td class="md" nowrap valign="top">typedef int(* <a class="el" href="RtAudio_8h.html#a15">RtAudioCallback</a>)(void *outputBuffer, void *inputBuffer, unsigned int nFrames, double streamTime, <a class="el" href="RtAudio_8h.html#a12">RtAudioStreamStatus</a> status, void *userData) </td> + <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> </tr> </table> - </td> - </tr> -</table> -<table cellspacing="5" cellpadding="0" border="0"> - <tr> - <td> - - </td> - <td> +</div> +<div class="memdoc"> <p> -<a class="el" href="classRtAudio.html">RtAudio</a> callback function prototype. +<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">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> +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> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>outputBuffer</em> </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> @@ -166,13 +136,14 @@ All <a class="el" href="classRtAudio.html">RtAudio</a> clients must create a fun <tr><td valign="top"></td><td valign="top"><em>userData</em> </td><td>A pointer to optional data provided by the client when opening the stream (default = NULL).</td></tr> </table> </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. </td> - </tr> -</table> +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. +</div> +</div><p> +</div> <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2001-2008 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>©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> </table> </BODY> |
