<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>SphinxBase: include/sphinxbase/ad.h File Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="navtree.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="navtree.js"></script> <script type="text/javascript" src="resize.js"></script> <script type="text/javascript"> $(document).ready(initResizable); </script> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.3 --> <div id="top"> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">SphinxBase <span id="projectnumber">0.6</span></div> </td> </tr> </tbody> </table> </div> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> </div> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> initNavTree('ad_8h.html',''); </script> <div id="doc-content"> <div class="header"> <div class="summary"> <a href="#nested-classes">Data Structures</a> | <a href="#define-members">Defines</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"> <h1>include/sphinxbase/ad.h File Reference</h1> </div> </div> <div class="contents"> <p>generic live audio interface for recording and playback <a href="#_details">More...</a></p> <div class="textblock"><code>#include <sphinx_config.h></code><br/> <code>#include <sphinxbase/sphinxbase_export.h></code><br/> <code>#include <sphinxbase/prim_type.h></code><br/> </div> <p><a href="ad_8h_source.html">Go to the source code of this file.</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="nested-classes"></a> Data Structures</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structad__rec__t.html">ad_rec_t</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structad__play__t.html">ad_play_t</a></td></tr> <tr><td colspan="2"><h2><a name="define-members"></a> Defines</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a21e7cf6f08592c2fa2f78eb069f0e161"></a><!-- doxytag: member="ad.h::AD_SAMPLE_SIZE" ref="a21e7cf6f08592c2fa2f78eb069f0e161" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>AD_SAMPLE_SIZE</b>   (sizeof(int16))</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af6fb753bcfbd8dedec800ba4d0fb8546"></a><!-- doxytag: member="ad.h::DEFAULT_SAMPLES_PER_SEC" ref="af6fb753bcfbd8dedec800ba4d0fb8546" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>DEFAULT_SAMPLES_PER_SEC</b>   16000</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8d1358baba080a2f6b0d350928af7a89"></a><!-- doxytag: member="ad.h::AD_OK" ref="a8d1358baba080a2f6b0d350928af7a89" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>AD_OK</b>   0</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8aa969c2d485c3c17cf9abfd1bb88bdd"></a><!-- doxytag: member="ad.h::AD_EOF" ref="a8aa969c2d485c3c17cf9abfd1bb88bdd" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>AD_EOF</b>   -1</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad75f71249c0e72e6867599af315fe27d"></a><!-- doxytag: member="ad.h::AD_ERR_GEN" ref="ad75f71249c0e72e6867599af315fe27d" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>AD_ERR_GEN</b>   -1</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7ac31adbbd108d40792fc6ba3d14929f"></a><!-- doxytag: member="ad.h::AD_ERR_NOT_OPEN" ref="a7ac31adbbd108d40792fc6ba3d14929f" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>AD_ERR_NOT_OPEN</b>   -2</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abdeca1c656c9ed4699402adb3556ae39"></a><!-- doxytag: member="ad.h::AD_ERR_WAVE" ref="abdeca1c656c9ed4699402adb3556ae39" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>AD_ERR_WAVE</b>   -3</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a84cb8bbda8042a324f49102bc200cc54"></a><!-- doxytag: member="ad.h::DEFAULT_DEVICE" ref="a84cb8bbda8042a324f49102bc200cc54" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>DEFAULT_DEVICE</b>   NULL</td></tr> <tr><td colspan="2"><h2><a name="func-members"></a> Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">SPHINXBASE_EXPORT <a class="el" href="structad__rec__t.html">ad_rec_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="ad_8h.html#a43f66257a2457d6c711dc5c694bfc02f">ad_open_dev</a> (const char *dev, int32 samples_per_sec)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Open a specific audio device for recording. <a href="#a43f66257a2457d6c711dc5c694bfc02f"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">SPHINXBASE_EXPORT <a class="el" href="structad__rec__t.html">ad_rec_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="ad_8h.html#a71b4eec805fbe5c398ea0897816de6f0">ad_open_sps</a> (int32 samples_per_sec)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Open the default audio device with a given sampling rate. <a href="#a71b4eec805fbe5c398ea0897816de6f0"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3def0da951e840fb4c72ef9259540686"></a><!-- doxytag: member="ad.h::ad_open" ref="a3def0da951e840fb4c72ef9259540686" args="(void)" --> SPHINXBASE_EXPORT <a class="el" href="structad__rec__t.html">ad_rec_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="ad_8h.html#a3def0da951e840fb4c72ef9259540686">ad_open</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Open the default audio device. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9cb212b93cb439ba04dec2109ca043ff"></a><!-- doxytag: member="ad.h::ad_start_rec" ref="a9cb212b93cb439ba04dec2109ca043ff" args="(ad_rec_t *)" --> SPHINXBASE_EXPORT int32 </td><td class="memItemRight" valign="bottom"><b>ad_start_rec</b> (<a class="el" href="structad__rec__t.html">ad_rec_t</a> *)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a20fb285a5f93e172f6a6e04359216aa5"></a><!-- doxytag: member="ad.h::ad_stop_rec" ref="a20fb285a5f93e172f6a6e04359216aa5" args="(ad_rec_t *)" --> SPHINXBASE_EXPORT int32 </td><td class="memItemRight" valign="bottom"><b>ad_stop_rec</b> (<a class="el" href="structad__rec__t.html">ad_rec_t</a> *)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6bcf3ed5e9d0c2d51086cae93bc3b3fc"></a><!-- doxytag: member="ad.h::ad_close" ref="a6bcf3ed5e9d0c2d51086cae93bc3b3fc" args="(ad_rec_t *)" --> SPHINXBASE_EXPORT int32 </td><td class="memItemRight" valign="bottom"><b>ad_close</b> (<a class="el" href="structad__rec__t.html">ad_rec_t</a> *)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad4a5f4ab5267003169f6d3e15e54f697"></a><!-- doxytag: member="ad.h::ad_read" ref="ad4a5f4ab5267003169f6d3e15e54f697" args="(ad_rec_t *, int16 *buf, int32 max)" --> SPHINXBASE_EXPORT int32 </td><td class="memItemRight" valign="bottom"><b>ad_read</b> (<a class="el" href="structad__rec__t.html">ad_rec_t</a> *, int16 *buf, int32 max)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a89f8a1820e1c5ea658e692d2d15a7315"></a><!-- doxytag: member="ad.h::ad_open_play_sps" ref="a89f8a1820e1c5ea658e692d2d15a7315" args="(int32 samples_per_sec)" --> SPHINXBASE_EXPORT <a class="el" href="structad__play__t.html">ad_play_t</a> * </td><td class="memItemRight" valign="bottom"><b>ad_open_play_sps</b> (int32 samples_per_sec)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a859bfe925f634f6bb3faa1a52c013388"></a><!-- doxytag: member="ad.h::ad_open_play" ref="a859bfe925f634f6bb3faa1a52c013388" args="(void)" --> SPHINXBASE_EXPORT <a class="el" href="structad__play__t.html">ad_play_t</a> * </td><td class="memItemRight" valign="bottom"><b>ad_open_play</b> (void)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a899e10aaecde4ab33b9849ed7bb9fb73"></a><!-- doxytag: member="ad.h::ad_start_play" ref="a899e10aaecde4ab33b9849ed7bb9fb73" args="(ad_play_t *)" --> SPHINXBASE_EXPORT int32 </td><td class="memItemRight" valign="bottom"><b>ad_start_play</b> (<a class="el" href="structad__play__t.html">ad_play_t</a> *)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a823c2efb2892ff2c9b112ffcda58ce17"></a><!-- doxytag: member="ad.h::ad_stop_play" ref="a823c2efb2892ff2c9b112ffcda58ce17" args="(ad_play_t *)" --> SPHINXBASE_EXPORT int32 </td><td class="memItemRight" valign="bottom"><b>ad_stop_play</b> (<a class="el" href="structad__play__t.html">ad_play_t</a> *)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa65454c205e3f573f4f3433a6a044448"></a><!-- doxytag: member="ad.h::ad_close_play" ref="aa65454c205e3f573f4f3433a6a044448" args="(ad_play_t *)" --> SPHINXBASE_EXPORT int32 </td><td class="memItemRight" valign="bottom"><b>ad_close_play</b> (<a class="el" href="structad__play__t.html">ad_play_t</a> *)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">SPHINXBASE_EXPORT int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="ad_8h.html#aea278a0c26051f4fe011778f225ea9c4">ad_write</a> (<a class="el" href="structad__play__t.html">ad_play_t</a> *, int16 *buf, int32 len)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Queue a block of audio samples for playback. <a href="#aea278a0c26051f4fe011778f225ea9c4"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7eab4d2f35d221c569b85d4240b83600"></a><!-- doxytag: member="ad.h::ad_mu2li" ref="a7eab4d2f35d221c569b85d4240b83600" args="(int16 *outbuf, unsigned char *inbuf, int32 n_samp)" --> SPHINXBASE_EXPORT void </td><td class="memItemRight" valign="bottom"><a class="el" href="ad_8h.html#a7eab4d2f35d221c569b85d4240b83600">ad_mu2li</a> (int16 *outbuf, unsigned char *inbuf, int32 n_samp)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Convert mu-law data to int16 linear PCM format. <br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <div class="textblock"><p>generic live audio interface for recording and playback </p> <p>Definition in file <a class="el" href="ad_8h_source.html">ad.h</a>.</p> </div><hr/><h2>Function Documentation</h2> <a class="anchor" id="a43f66257a2457d6c711dc5c694bfc02f"></a><!-- doxytag: member="ad.h::ad_open_dev" ref="a43f66257a2457d6c711dc5c694bfc02f" args="(const char *dev, int32 samples_per_sec)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SPHINXBASE_EXPORT <a class="el" href="structad__rec__t.html">ad_rec_t</a>* ad_open_dev </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>dev</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int32 </td> <td class="paramname"><em>samples_per_sec</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Open a specific audio device for recording. </p> <p>The device is opened in non-blocking mode and placed in idle state.</p> <dl class="return"><dt><b>Returns:</b></dt><dd>pointer to read-only <a class="el" href="structad__rec__t.html">ad_rec_t</a> structure if successful, NULL otherwise. The return value to be used as the first argument to other recording functions. </dd></dl> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">dev</td><td>Device name (platform-specific) </td></tr> <tr><td class="paramname">samples_per_sec</td><td>Samples per second </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="ad__alsa_8c_source.html#l00252">252</a> of file <a class="el" href="ad__alsa_8c_source.html">ad_alsa.c</a>.</p> <p>References <a class="el" href="ad__alsa_8c_source.html#l00252">ad_open_dev()</a>, <a class="el" href="ad_8h_source.html#l00232">ad_rec_t::bps</a>, and <a class="el" href="ad_8h_source.html#l00231">ad_rec_t::sps</a>.</p> <p>Referenced by <a class="el" href="ad__alsa_8c_source.html#l00252">ad_open_dev()</a>, and <a class="el" href="ad__alsa_8c_source.html#l00290">ad_open_sps()</a>.</p> </div> </div> <a class="anchor" id="a71b4eec805fbe5c398ea0897816de6f0"></a><!-- doxytag: member="ad.h::ad_open_sps" ref="a71b4eec805fbe5c398ea0897816de6f0" args="(int32 samples_per_sec)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SPHINXBASE_EXPORT <a class="el" href="structad__rec__t.html">ad_rec_t</a>* ad_open_sps </td> <td>(</td> <td class="paramtype">int32 </td> <td class="paramname"><em>samples_per_sec</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Open the default audio device with a given sampling rate. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">samples_per_sec</td><td>Samples per second </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="ad__alsa_8c_source.html#l00290">290</a> of file <a class="el" href="ad__alsa_8c_source.html">ad_alsa.c</a>.</p> <p>References <a class="el" href="ad__alsa_8c_source.html#l00252">ad_open_dev()</a>, and <a class="el" href="ad__alsa_8c_source.html#l00290">ad_open_sps()</a>.</p> <p>Referenced by <a class="el" href="ad__alsa_8c_source.html#l00296">ad_open()</a>, and <a class="el" href="ad__alsa_8c_source.html#l00290">ad_open_sps()</a>.</p> </div> </div> <a class="anchor" id="aea278a0c26051f4fe011778f225ea9c4"></a><!-- doxytag: member="ad.h::ad_write" ref="aea278a0c26051f4fe011778f225ea9c4" args="(ad_play_t *, int16 *buf, int32 len)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SPHINXBASE_EXPORT int32 ad_write </td> <td>(</td> <td class="paramtype"><a class="el" href="structad__play__t.html">ad_play_t</a> * </td> <td class="paramname">, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int16 * </td> <td class="paramname"><em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int32 </td> <td class="paramname"><em>len</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Queue a block of audio samples for playback. </p> <p>Write the next block of [len] samples from rawbuf to the A/D device for playback. The device may queue less than len samples, possibly 0, since it is non-blocking. The application should resubmit the remaining data to be played. Return value: # samples accepted for playback; -1 if error. </p> <p>Definition at line <a class="el" href="play__win32_8c_source.html#l00373">373</a> of file <a class="el" href="play__win32_8c_source.html">play_win32.c</a>.</p> <p>References <a class="el" href="play__win32_8c_source.html#l00373">ad_write()</a>.</p> <p>Referenced by <a class="el" href="play__win32_8c_source.html#l00373">ad_write()</a>.</p> </div> </div> </div> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="ad_8h.html">ad.h</a> </li> <li class="footer">Generated on Tue Apr 19 2011 for SphinxBase by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li> </ul> </div> </body> </html>