Sophie

Sophie

distrib > Mandriva > 2010.2 > i586 > by-pkgid > 34546d63baef3ab2a7675f37737b66ab > files > 69

libalsa2-docs-1.0.23-2.1mdv2010.1.i586.rpm

<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!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>ALSA project - the C library reference: Global defines and functions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.6.3 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <img id="MSearchSelect" src="search/search.png"
             onmouseover="return searchBox.OnSearchSelectShow()"
             onmouseout="return searchBox.OnSearchSelectHide()"
             alt=""/>
        <input type="text" id="MSearchField" value="Search" accesskey="S"
             onfocus="searchBox.OnSearchFieldFocus(true)" 
             onblur="searchBox.OnSearchFieldFocus(false)" 
             onkeyup="searchBox.OnSearchFieldChange(event)"/>
        <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
        </div>
      </li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>Global defines and functions</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafefcb2bb4a877727b16de5c56e09055b"></a><!-- doxytag: member="Global::__SND_DLSYM_VERSION" ref="gafefcb2bb4a877727b16de5c56e09055b" args="(name, version)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#gafefcb2bb4a877727b16de5c56e09055b">__SND_DLSYM_VERSION</a>(name, version)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Helper macro for <a class="el" href="group___global.html#ga355c462c8c5dee0aeadae17d096ba531" title="Appends the build version to the name of a versioned dynamic symbol.">SND_DLSYM_BUILD_VERSION</a>. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga355c462c8c5dee0aeadae17d096ba531"></a><!-- doxytag: member="Global::SND_DLSYM_BUILD_VERSION" ref="ga355c462c8c5dee0aeadae17d096ba531" args="(name, version)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#ga355c462c8c5dee0aeadae17d096ba531">SND_DLSYM_BUILD_VERSION</a>(name, version)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Appends the build version to the name of a versioned dynamic symbol. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga375c4dc9f0fb338999de81aab826f9d6"></a><!-- doxytag: member="Global::__STRING" ref="ga375c4dc9f0fb338999de81aab826f9d6" args="(x)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#ga375c4dc9f0fb338999de81aab826f9d6">__STRING</a>(x)&nbsp;&nbsp;&nbsp;#x</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return 'x' argument as string. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7bba39703a3275de48b3e919a2849c4b"></a><!-- doxytag: member="Global::SND_DLSYM_VERSION" ref="ga7bba39703a3275de48b3e919a2849c4b" args="(version)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#ga7bba39703a3275de48b3e919a2849c4b">SND_DLSYM_VERSION</a>(version)&nbsp;&nbsp;&nbsp;__STRING(version)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the version of a dynamic symbol as a string. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0d723ca68908f9c4eb7c6e9eb03cff3f"></a><!-- doxytag: member="Global::__snd_alloca" ref="ga0d723ca68908f9c4eb7c6e9eb03cff3f" args="(ptr, type)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#ga0d723ca68908f9c4eb7c6e9eb03cff3f">__snd_alloca</a>(ptr, type)&nbsp;&nbsp;&nbsp;do { *ptr = (type##_t *) alloca(type##_sizeof()); memset(*ptr, 0, type##_sizeof()); } while (0)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">alloca helper macro. <br/></td></tr>
<tr><td colspan="2"><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct _snd_async_handler&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#ga8cd9a1d441e9219ca5f2ff04094c7c6d">snd_async_handler_t</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Internal structure for an async notification client handler.  <a href="#ga8cd9a1d441e9219ca5f2ff04094c7c6d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef void(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#gaa0501fb0c332e2009977bb29f194200b">snd_async_callback_t</a> )(<a class="el" href="group___global.html#ga8cd9a1d441e9219ca5f2ff04094c7c6d">snd_async_handler_t</a> *handler)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Async notification callback.  <a href="#gaa0501fb0c332e2009977bb29f194200b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct timeval&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#gadd377862d568809fb0e32c9faddf99a4">snd_timestamp_t</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct timespec&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#ga3a3f5b65c40f498cdbc26944bd9855cf">snd_htimestamp_t</a></td></tr>
<tr><td colspan="2"><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#ga1b8d6e2acb0a62de5c23bd8aef3ec225">snd_asoundlib_version</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the ALSA sound library version in ASCII format.  <a href="#ga1b8d6e2acb0a62de5c23bd8aef3ec225"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#ga40fa4f69aa58fd0086a43baef8e685b8">snd_dlopen</a> (const char *file, int mode)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Opens a dynamic library - ALSA wrapper for <code>dlopen</code>.  <a href="#ga40fa4f69aa58fd0086a43baef8e685b8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#gae865f293c8771998b2b6a9f25a135408">snd_dlsym</a> (void *handle, const char *name, const char *version)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Resolves a symbol from a dynamic library - ALSA wrapper for <code>dlsym</code>.  <a href="#gae865f293c8771998b2b6a9f25a135408"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#ga7cc0866a9d1fbce4e34a8b342674836e">snd_dlclose</a> (void *handle)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Closes a dynamic library - ALSA wrapper for <code>dlclose</code>.  <a href="#ga7cc0866a9d1fbce4e34a8b342674836e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#gafd936c40505997bb659b74bd368636b8">snd_async_add_handler</a> (<a class="el" href="group___global.html#ga8cd9a1d441e9219ca5f2ff04094c7c6d">snd_async_handler_t</a> **handler, int fd, <a class="el" href="group___global.html#gaa0501fb0c332e2009977bb29f194200b">snd_async_callback_t</a> callback, void *private_data)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Registers an async handler.  <a href="#gafd936c40505997bb659b74bd368636b8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#ga1c0bd4d123e9581a749b80e2df48b4e1">snd_async_del_handler</a> (<a class="el" href="group___global.html#ga8cd9a1d441e9219ca5f2ff04094c7c6d">snd_async_handler_t</a> *handler)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Deletes an async handler.  <a href="#ga1c0bd4d123e9581a749b80e2df48b4e1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#gad601f70e0405a8522860edb15db6350c">snd_async_handler_get_fd</a> (<a class="el" href="group___global.html#ga8cd9a1d441e9219ca5f2ff04094c7c6d">snd_async_handler_t</a> *handler)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the file descriptor assigned to an async handler.  <a href="#gad601f70e0405a8522860edb15db6350c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#gab32c9afe265784634c78e7a6b5d27abe">snd_async_handler_get_signo</a> (<a class="el" href="group___global.html#ga8cd9a1d441e9219ca5f2ff04094c7c6d">snd_async_handler_t</a> *handler)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the signal number assigned to an async handler.  <a href="#gab32c9afe265784634c78e7a6b5d27abe"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#gad9c76588a87918901c6273e6bc98a1bc">snd_async_handler_get_callback_private</a> (<a class="el" href="group___global.html#ga8cd9a1d441e9219ca5f2ff04094c7c6d">snd_async_handler_t</a> *handler)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the private data assigned to an async handler.  <a href="#gad9c76588a87918901c6273e6bc98a1bc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct snd_shm_area *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#ga4141de7b343dd6e5af12df97f98c6caf">snd_shm_area_create</a> (int shmid, void *ptr)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a shm area record.  <a href="#ga4141de7b343dd6e5af12df97f98c6caf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct snd_shm_area *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#ga9dbf4bcf38bb7cc054accbbbf3a33df2">snd_shm_area_share</a> (struct snd_shm_area *area)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Increase the reference counter of shm area record.  <a href="#ga9dbf4bcf38bb7cc054accbbbf3a33df2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#ga59f424fb93a72226e642dbb04b870c45">snd_shm_area_destroy</a> (struct snd_shm_area *area)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Release the shared area record.  <a href="#ga59f424fb93a72226e642dbb04b870c45"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#gaade4b91c735abcec70101b9d83b11126">snd_user_file</a> (const char *file, char **result)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the full file name.  <a href="#gaade4b91c735abcec70101b9d83b11126"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Global defines and functions. </p>
<dl class="user"><dt><b></b></dt><dd>The ALSA library implementation uses these macros and functions. Most applications probably do not need them. </dd></dl>
<hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="gaa0501fb0c332e2009977bb29f194200b"></a><!-- doxytag: member="global.h::snd_async_callback_t" ref="gaa0501fb0c332e2009977bb29f194200b" args=")(snd_async_handler_t *handler)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* <a class="el" href="group___global.html#gaa0501fb0c332e2009977bb29f194200b">snd_async_callback_t</a>)(<a class="el" href="group___global.html#ga8cd9a1d441e9219ca5f2ff04094c7c6d">snd_async_handler_t</a> *handler)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Async notification callback. </p>
<p>See the <a class="el" href="group___global.html#gafd936c40505997bb659b74bd368636b8" title="Registers an async handler.">snd_async_add_handler</a> function for details. </p>

</div>
</div>
<a class="anchor" id="ga8cd9a1d441e9219ca5f2ff04094c7c6d"></a><!-- doxytag: member="global.h::snd_async_handler_t" ref="ga8cd9a1d441e9219ca5f2ff04094c7c6d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct _snd_async_handler <a class="el" href="group___global.html#ga8cd9a1d441e9219ca5f2ff04094c7c6d">snd_async_handler_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Internal structure for an async notification client handler. </p>
<p>The ALSA library uses a pointer to this structure as a handle to an async notification object. Applications don't access its contents directly. </p>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="_2test_2pcm_8c-example.html#a43">/test/pcm.c</a>, and <a class="el" href="_2test_2timer_8c-example.html#a14">/test/timer.c</a>.</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga3a3f5b65c40f498cdbc26944bd9855cf"></a><!-- doxytag: member="global.h::snd_htimestamp_t" ref="ga3a3f5b65c40f498cdbc26944bd9855cf" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct timespec <a class="el" href="group___global.html#ga3a3f5b65c40f498cdbc26944bd9855cf">snd_htimestamp_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Hi-res timestamp </p>

</div>
</div>
<a class="anchor" id="gadd377862d568809fb0e32c9faddf99a4"></a><!-- doxytag: member="global.h::snd_timestamp_t" ref="gadd377862d568809fb0e32c9faddf99a4" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct timeval <a class="el" href="group___global.html#gadd377862d568809fb0e32c9faddf99a4">snd_timestamp_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Timestamp </p>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="_2test_2latency_8c-example.html#a33">/test/latency.c</a>.</dd>
</dl>
</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga1b8d6e2acb0a62de5c23bd8aef3ec225"></a><!-- doxytag: member="global.h::snd_asoundlib_version" ref="ga1b8d6e2acb0a62de5c23bd8aef3ec225" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* snd_asoundlib_version </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the ALSA sound library version in ASCII format. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>The ASCII description of the used ALSA sound library. </dd></dl>

</div>
</div>
<a class="anchor" id="gafd936c40505997bb659b74bd368636b8"></a><!-- doxytag: member="global.h::snd_async_add_handler" ref="gafd936c40505997bb659b74bd368636b8" args="(snd_async_handler_t **handler, int fd, snd_async_callback_t callback, void *private_data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_async_add_handler </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___global.html#ga8cd9a1d441e9219ca5f2ff04094c7c6d">snd_async_handler_t</a> **&nbsp;</td>
          <td class="paramname"> <em>handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___global.html#gaa0501fb0c332e2009977bb29f194200b">snd_async_callback_t</a>&nbsp;</td>
          <td class="paramname"> <em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>private_data</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Registers an async handler. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>handler</em>&nbsp;</td><td>The function puts the pointer to the new async handler object at the address specified by <code>handler</code>. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fd</em>&nbsp;</td><td>The file descriptor to be associated with the callback. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>callback</em>&nbsp;</td><td>The async callback function. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>private_data</em>&nbsp;</td><td>Private data for the async callback function. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Zero if successful, otherwise a negative error code.</dd></dl>
<p>This function associates the callback function with the given file, and saves this association in a <code>snd_async_handler_t</code> object.</p>
<p>Whenever the <code>SIGIO</code> signal is raised for the file <code>fd</code>, the callback function will be called with its parameter pointing to the async handler object returned by this function.</p>
<p>The ALSA <code>sigaction</code> handler for the <code>SIGIO</code> signal automatically multiplexes the notifications to the registered async callbacks. However, the application is responsible for instructing the device driver to generate the <code>SIGIO</code> signal.</p>
<p>The <code>SIGIO</code> signal may have been replaced with another signal, see <a class="el" href="group___global.html#gab32c9afe265784634c78e7a6b5d27abe" title="Returns the signal number assigned to an async handler.">snd_async_handler_get_signo</a>.</p>
<p>When the async handler isn't needed anymore, you must delete it with <a class="el" href="group___global.html#ga1c0bd4d123e9581a749b80e2df48b4e1" title="Deletes an async handler.">snd_async_del_handler</a>.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group___p_c_m.html#ga5a0c0da6d0d35a3ac9f6a97567ac3b63" title="Add an async handler for a PCM.">snd_async_add_pcm_handler</a>, <a class="el" href="group___control.html#ga23813430fb81fecb0e95d1dfd688337d" title="Add an async handler for a CTL.">snd_async_add_ctl_handler</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga1c0bd4d123e9581a749b80e2df48b4e1"></a><!-- doxytag: member="global.h::snd_async_del_handler" ref="ga1c0bd4d123e9581a749b80e2df48b4e1" args="(snd_async_handler_t *handler)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_async_del_handler </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___global.html#ga8cd9a1d441e9219ca5f2ff04094c7c6d">snd_async_handler_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Deletes an async handler. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>handler</em>&nbsp;</td><td>Handle of the async handler to delete. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Zero if successful, otherwise a negative error code. </dd></dl>

</div>
</div>
<a class="anchor" id="gad9c76588a87918901c6273e6bc98a1bc"></a><!-- doxytag: member="global.h::snd_async_handler_get_callback_private" ref="gad9c76588a87918901c6273e6bc98a1bc" args="(snd_async_handler_t *handler)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* snd_async_handler_get_callback_private </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___global.html#ga8cd9a1d441e9219ca5f2ff04094c7c6d">snd_async_handler_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the private data assigned to an async handler. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>handler</em>&nbsp;</td><td>Handle to an async handler. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The <code>private_data</code> value registered with the async handler. </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="_2test_2pcm_8c-example.html#a45">/test/pcm.c</a>, and <a class="el" href="_2test_2timer_8c-example.html#a17">/test/timer.c</a>.</dd>
</dl>
</div>
</div>
<a class="anchor" id="gad601f70e0405a8522860edb15db6350c"></a><!-- doxytag: member="global.h::snd_async_handler_get_fd" ref="gad601f70e0405a8522860edb15db6350c" args="(snd_async_handler_t *handler)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_async_handler_get_fd </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___global.html#ga8cd9a1d441e9219ca5f2ff04094c7c6d">snd_async_handler_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the file descriptor assigned to an async handler. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>handler</em>&nbsp;</td><td>Handle to an async handler. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The file descriptor if successful, otherwise a negative error code. </dd></dl>

</div>
</div>
<a class="anchor" id="gab32c9afe265784634c78e7a6b5d27abe"></a><!-- doxytag: member="global.h::snd_async_handler_get_signo" ref="gab32c9afe265784634c78e7a6b5d27abe" args="(snd_async_handler_t *handler)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_async_handler_get_signo </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___global.html#ga8cd9a1d441e9219ca5f2ff04094c7c6d">snd_async_handler_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the signal number assigned to an async handler. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>handler</em>&nbsp;</td><td>Handle to an async handler. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The signal number if successful, otherwise a negative error code.</dd></dl>
<p>The signal number for async handlers usually is <code>SIGIO</code>, but wizards can redefine it to a realtime signal when compiling the ALSA library. </p>

</div>
</div>
<a class="anchor" id="ga7cc0866a9d1fbce4e34a8b342674836e"></a><!-- doxytag: member="global.h::snd_dlclose" ref="ga7cc0866a9d1fbce4e34a8b342674836e" args="(void *handle)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_dlclose </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>handle</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Closes a dynamic library - ALSA wrapper for <code>dlclose</code>. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>handle</em>&nbsp;</td><td>Library handle, similar to <code>dlclose</code>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Zero if successful, otherwise an error code.</dd></dl>
<p>This function can emulate dynamic linking for the static build of the alsa-lib library. </p>

</div>
</div>
<a class="anchor" id="ga40fa4f69aa58fd0086a43baef8e685b8"></a><!-- doxytag: member="global.h::snd_dlopen" ref="ga40fa4f69aa58fd0086a43baef8e685b8" args="(const char *file, int mode)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* snd_dlopen </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>mode</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Opens a dynamic library - ALSA wrapper for <code>dlopen</code>. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>name of the library, similar to <code>dlopen</code>. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>mode</em>&nbsp;</td><td>mode flags, similar to <code>dlopen</code>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Library handle if successful, otherwise <code>NULL</code>.</dd></dl>
<p>This function can emulate dynamic linking for the static build of the alsa-lib library. In that case, <code>name</code> is set to <code>NULL</code>. </p>

</div>
</div>
<a class="anchor" id="gae865f293c8771998b2b6a9f25a135408"></a><!-- doxytag: member="global.h::snd_dlsym" ref="gae865f293c8771998b2b6a9f25a135408" args="(void *handle, const char *name, const char *version)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* snd_dlsym </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>version</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Resolves a symbol from a dynamic library - ALSA wrapper for <code>dlsym</code>. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>handle</em>&nbsp;</td><td>Library handle, similar to <code>dlsym</code>. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>Symbol name. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>version</em>&nbsp;</td><td>Version of the symbol.</td></tr>
  </table>
  </dd>
</dl>
<p>This function can emulate dynamic linking for the static build of the alsa-lib library.</p>
<p>This special version of the <code>dlsym</code> function checks also the version of the symbol. A versioned symbol should be defined using the <a class="el" href="group___global.html#ga355c462c8c5dee0aeadae17d096ba531" title="Appends the build version to the name of a versioned dynamic symbol.">SND_DLSYM_BUILD_VERSION</a> macro. </p>

</div>
</div>
<a class="anchor" id="ga4141de7b343dd6e5af12df97f98c6caf"></a><!-- doxytag: member="global.h::snd_shm_area_create" ref="ga4141de7b343dd6e5af12df97f98c6caf" args="(int shmid, void *ptr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct snd_shm_area* snd_shm_area_create </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>shmid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>ptr</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a shm area record. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>shmid</em>&nbsp;</td><td>IPC SHM ID </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ptr</em>&nbsp;</td><td>the shared area pointer </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The allocated shm area record, NULL if fail</dd></dl>
<p>Allocates a shared area record with the given SHM ID and pointer. The record has a reference counter, which is initialized to 1 by this function. </p>

</div>
</div>
<a class="anchor" id="ga59f424fb93a72226e642dbb04b870c45"></a><!-- doxytag: member="global.h::snd_shm_area_destroy" ref="ga59f424fb93a72226e642dbb04b870c45" args="(struct snd_shm_area *area)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_shm_area_destroy </td>
          <td>(</td>
          <td class="paramtype">struct snd_shm_area *&nbsp;</td>
          <td class="paramname"> <em>area</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Release the shared area record. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>area</em>&nbsp;</td><td>the shared are record </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 if successful, or a negative error code</dd></dl>
<p>Decreases the reference counter of the given shared area record, and releases the resources automaticall if it reaches to 0. </p>

</div>
</div>
<a class="anchor" id="ga9dbf4bcf38bb7cc054accbbbf3a33df2"></a><!-- doxytag: member="global.h::snd_shm_area_share" ref="ga9dbf4bcf38bb7cc054accbbbf3a33df2" args="(struct snd_shm_area *area)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct snd_shm_area* snd_shm_area_share </td>
          <td>(</td>
          <td class="paramtype">struct snd_shm_area *&nbsp;</td>
          <td class="paramname"> <em>area</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Increase the reference counter of shm area record. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>area</em>&nbsp;</td><td>shm area record </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the shm area record (identical with the argument)</dd></dl>
<p>Increases the reference counter of the given shared area record. </p>

</div>
</div>
<a class="anchor" id="gaade4b91c735abcec70101b9d83b11126"></a><!-- doxytag: member="global.h::snd_user_file" ref="gaade4b91c735abcec70101b9d83b11126" args="(const char *file, char **result)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_user_file </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&nbsp;</td>
          <td class="paramname"> <em>result</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the full file name. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>file</em>&nbsp;</td><td>The file name string to parse </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>result</em>&nbsp;</td><td>The pointer to store the resultant file name </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 if successful, or a negative error code</dd></dl>
<p>Parses the given file name with POSIX-Shell-like expansion and stores the first matchine one. The returned string is strdup'ed. </p>

</div>
</div>
</div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&nbsp;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&nbsp;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&nbsp;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&nbsp;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&nbsp;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&nbsp;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&nbsp;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&nbsp;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&nbsp;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Nov 20 07:42:24 2010 for ALSA project - the C library reference by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>