EVOLUTION-MANAGER
Edit File: group___global.html
<!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"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.5"/> <title>ALSA project - the C library reference: Global defines and functions</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="search/search.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="search/search.js"></script> <script type="text/javascript"> $(document).ready(function() { searchBox.OnSelectItem(0); }); </script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">ALSA project - the C library reference </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.5 --> <script type="text/javascript"> var searchBox = new SearchBox("searchBox", "search",false,'Search'); </script> <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="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data 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"> <span class="left"> <img id="MSearchSelect" src="search/mag_sel.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)"/> </span><span class="right"> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> </span> </div> </li> </ul> </div> </div><!-- top --> <!-- 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Pages</a></div> <!-- iframe showing the search results (closed by default) --> <div id="MSearchResultsWindow"> <iframe src="javascript:void(0)" frameborder="0" name="MSearchResults" id="MSearchResults"> </iframe> </div> <div class="header"> <div class="summary"> <a href="#define-members">Macros</a> | <a href="#typedef-members">Typedefs</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"> <div class="title">Global defines and functions</div> </div> </div><!--header--> <div class="contents"> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> Macros</h2></td></tr> <tr class="memitem:gafefcb2bb4a877727b16de5c56e09055b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafefcb2bb4a877727b16de5c56e09055b"></a> #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#gafefcb2bb4a877727b16de5c56e09055b">__SND_DLSYM_VERSION</a>(name, version)</td></tr> <tr class="memdesc:gafefcb2bb4a877727b16de5c56e09055b"><td class="mdescLeft"> </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 class="separator:gafefcb2bb4a877727b16de5c56e09055b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga355c462c8c5dee0aeadae17d096ba531"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga355c462c8c5dee0aeadae17d096ba531"></a> #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#ga355c462c8c5dee0aeadae17d096ba531">SND_DLSYM_BUILD_VERSION</a>(name, version)</td></tr> <tr class="memdesc:ga355c462c8c5dee0aeadae17d096ba531"><td class="mdescLeft"> </td><td class="mdescRight">Appends the build version to the name of a versioned dynamic symbol. <br/></td></tr> <tr class="separator:ga355c462c8c5dee0aeadae17d096ba531"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga375c4dc9f0fb338999de81aab826f9d6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga375c4dc9f0fb338999de81aab826f9d6"></a> #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#ga375c4dc9f0fb338999de81aab826f9d6">__STRING</a>(x)   #x</td></tr> <tr class="memdesc:ga375c4dc9f0fb338999de81aab826f9d6"><td class="mdescLeft"> </td><td class="mdescRight">Return 'x' argument as string. <br/></td></tr> <tr class="separator:ga375c4dc9f0fb338999de81aab826f9d6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga7bba39703a3275de48b3e919a2849c4b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7bba39703a3275de48b3e919a2849c4b"></a> #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#ga7bba39703a3275de48b3e919a2849c4b">SND_DLSYM_VERSION</a>(version)   <a class="el" href="group___global.html#ga375c4dc9f0fb338999de81aab826f9d6">__STRING</a>(version)</td></tr> <tr class="memdesc:ga7bba39703a3275de48b3e919a2849c4b"><td class="mdescLeft"> </td><td class="mdescRight">Returns the version of a dynamic symbol as a string. <br/></td></tr> <tr class="separator:ga7bba39703a3275de48b3e919a2849c4b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga0d723ca68908f9c4eb7c6e9eb03cff3f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0d723ca68908f9c4eb7c6e9eb03cff3f"></a> #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#ga0d723ca68908f9c4eb7c6e9eb03cff3f">__snd_alloca</a>(<a class="el" href="seq__event_8h.html#add9af9569af79ec26dd741fb226b38ba">ptr</a>, type)   do { *<a class="el" href="seq__event_8h.html#add9af9569af79ec26dd741fb226b38ba">ptr</a> = (type##_t *) alloca(type##_sizeof()); memset(*<a class="el" href="seq__event_8h.html#add9af9569af79ec26dd741fb226b38ba">ptr</a>, 0, type##_sizeof()); } while (0)</td></tr> <tr class="memdesc:ga0d723ca68908f9c4eb7c6e9eb03cff3f"><td class="mdescLeft"> </td><td class="mdescRight">alloca helper macro. <br/></td></tr> <tr class="separator:ga0d723ca68908f9c4eb7c6e9eb03cff3f"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a> Typedefs</h2></td></tr> <tr class="memitem:ga8cd9a1d441e9219ca5f2ff04094c7c6d"><td class="memItemLeft" align="right" valign="top">typedef struct _snd_async_handler </td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#ga8cd9a1d441e9219ca5f2ff04094c7c6d">snd_async_handler_t</a></td></tr> <tr class="memdesc:ga8cd9a1d441e9219ca5f2ff04094c7c6d"><td class="mdescLeft"> </td><td class="mdescRight">Internal structure for an async notification client handler. <a href="#ga8cd9a1d441e9219ca5f2ff04094c7c6d">More...</a><br/></td></tr> <tr class="separator:ga8cd9a1d441e9219ca5f2ff04094c7c6d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaa0501fb0c332e2009977bb29f194200b"><td class="memItemLeft" align="right" valign="top">typedef void(* </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 class="memdesc:gaa0501fb0c332e2009977bb29f194200b"><td class="mdescLeft"> </td><td class="mdescRight">Async notification callback. <a href="#gaa0501fb0c332e2009977bb29f194200b">More...</a><br/></td></tr> <tr class="separator:gaa0501fb0c332e2009977bb29f194200b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gadd377862d568809fb0e32c9faddf99a4"><td class="memItemLeft" align="right" valign="top">typedef struct timeval </td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#gadd377862d568809fb0e32c9faddf99a4">snd_timestamp_t</a></td></tr> <tr class="separator:gadd377862d568809fb0e32c9faddf99a4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga3a3f5b65c40f498cdbc26944bd9855cf"><td class="memItemLeft" align="right" valign="top">typedef struct timespec </td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#ga3a3f5b65c40f498cdbc26944bd9855cf">snd_htimestamp_t</a></td></tr> <tr class="separator:ga3a3f5b65c40f498cdbc26944bd9855cf"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> Functions</h2></td></tr> <tr class="memitem:ga1b8d6e2acb0a62de5c23bd8aef3ec225"><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#ga1b8d6e2acb0a62de5c23bd8aef3ec225">snd_asoundlib_version</a> (void)</td></tr> <tr class="memdesc:ga1b8d6e2acb0a62de5c23bd8aef3ec225"><td class="mdescLeft"> </td><td class="mdescRight">Returns the ALSA sound library version in ASCII format. <a href="#ga1b8d6e2acb0a62de5c23bd8aef3ec225">More...</a><br/></td></tr> <tr class="separator:ga1b8d6e2acb0a62de5c23bd8aef3ec225"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga8d048fb538f1487e030396866c0374dd"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#ga8d048fb538f1487e030396866c0374dd">snd_dlopen</a> (const char *file, int mode, char *errbuf, size_t errbuflen)</td></tr> <tr class="memdesc:ga8d048fb538f1487e030396866c0374dd"><td class="mdescLeft"> </td><td class="mdescRight">Opens a dynamic library - ALSA wrapper for <code>dlopen</code>. <a href="#ga8d048fb538f1487e030396866c0374dd">More...</a><br/></td></tr> <tr class="separator:ga8d048fb538f1487e030396866c0374dd"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gae865f293c8771998b2b6a9f25a135408"><td class="memItemLeft" align="right" valign="top">void * </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 class="memdesc:gae865f293c8771998b2b6a9f25a135408"><td class="mdescLeft"> </td><td class="mdescRight">Resolves a symbol from a dynamic library - ALSA wrapper for <code>dlsym</code>. <a href="#gae865f293c8771998b2b6a9f25a135408">More...</a><br/></td></tr> <tr class="separator:gae865f293c8771998b2b6a9f25a135408"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga7cc0866a9d1fbce4e34a8b342674836e"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#ga7cc0866a9d1fbce4e34a8b342674836e">snd_dlclose</a> (void *handle)</td></tr> <tr class="memdesc:ga7cc0866a9d1fbce4e34a8b342674836e"><td class="mdescLeft"> </td><td class="mdescRight">Closes a dynamic library - ALSA wrapper for <code>dlclose</code>. <a href="#ga7cc0866a9d1fbce4e34a8b342674836e">More...</a><br/></td></tr> <tr class="separator:ga7cc0866a9d1fbce4e34a8b342674836e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gafd936c40505997bb659b74bd368636b8"><td class="memItemLeft" align="right" valign="top">int </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 class="memdesc:gafd936c40505997bb659b74bd368636b8"><td class="mdescLeft"> </td><td class="mdescRight">Registers an async handler. <a href="#gafd936c40505997bb659b74bd368636b8">More...</a><br/></td></tr> <tr class="separator:gafd936c40505997bb659b74bd368636b8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga1c0bd4d123e9581a749b80e2df48b4e1"><td class="memItemLeft" align="right" valign="top">int </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 class="memdesc:ga1c0bd4d123e9581a749b80e2df48b4e1"><td class="mdescLeft"> </td><td class="mdescRight">Deletes an async handler. <a href="#ga1c0bd4d123e9581a749b80e2df48b4e1">More...</a><br/></td></tr> <tr class="separator:ga1c0bd4d123e9581a749b80e2df48b4e1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gad601f70e0405a8522860edb15db6350c"><td class="memItemLeft" align="right" valign="top">int </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 class="memdesc:gad601f70e0405a8522860edb15db6350c"><td class="mdescLeft"> </td><td class="mdescRight">Returns the file descriptor assigned to an async handler. <a href="#gad601f70e0405a8522860edb15db6350c">More...</a><br/></td></tr> <tr class="separator:gad601f70e0405a8522860edb15db6350c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gab32c9afe265784634c78e7a6b5d27abe"><td class="memItemLeft" align="right" valign="top">int </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 class="memdesc:gab32c9afe265784634c78e7a6b5d27abe"><td class="mdescLeft"> </td><td class="mdescRight">Returns the signal number assigned to an async handler. <a href="#gab32c9afe265784634c78e7a6b5d27abe">More...</a><br/></td></tr> <tr class="separator:gab32c9afe265784634c78e7a6b5d27abe"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gad9c76588a87918901c6273e6bc98a1bc"><td class="memItemLeft" align="right" valign="top">void * </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 class="memdesc:gad9c76588a87918901c6273e6bc98a1bc"><td class="mdescLeft"> </td><td class="mdescRight">Returns the private data assigned to an async handler. <a href="#gad9c76588a87918901c6273e6bc98a1bc">More...</a><br/></td></tr> <tr class="separator:gad9c76588a87918901c6273e6bc98a1bc"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga4141de7b343dd6e5af12df97f98c6caf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4141de7b343dd6e5af12df97f98c6caf"></a> struct snd_shm_area * </td><td class="memItemRight" valign="bottom"><b>snd_shm_area_create</b> (int shmid, void *<a class="el" href="seq__event_8h.html#add9af9569af79ec26dd741fb226b38ba">ptr</a>)</td></tr> <tr class="separator:ga4141de7b343dd6e5af12df97f98c6caf"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga9dbf4bcf38bb7cc054accbbbf3a33df2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9dbf4bcf38bb7cc054accbbbf3a33df2"></a> struct snd_shm_area * </td><td class="memItemRight" valign="bottom"><b>snd_shm_area_share</b> (struct snd_shm_area *area)</td></tr> <tr class="separator:ga9dbf4bcf38bb7cc054accbbbf3a33df2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga59f424fb93a72226e642dbb04b870c45"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga59f424fb93a72226e642dbb04b870c45"></a> int </td><td class="memItemRight" valign="bottom"><b>snd_shm_area_destroy</b> (struct snd_shm_area *area)</td></tr> <tr class="separator:ga59f424fb93a72226e642dbb04b870c45"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaade4b91c735abcec70101b9d83b11126"><td class="memItemLeft" align="right" valign="top">int </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 class="memdesc:gaade4b91c735abcec70101b9d83b11126"><td class="mdescLeft"> </td><td class="mdescRight">Get the full file name. <a href="#gaade4b91c735abcec70101b9d83b11126">More...</a><br/></td></tr> <tr class="separator:gaade4b91c735abcec70101b9d83b11126"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <p>Global defines and functions. </p> <dl class="section user"><dt></dt><dd>The ALSA library implementation uses these macros and functions. Most applications probably do not need them. </dd></dl> <h2 class="groupheader">Typedef Documentation</h2> <a class="anchor" id="gaa0501fb0c332e2009977bb29f194200b"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef void(* snd_async_callback_t)(<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> <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> </div> </div> <a class="anchor" id="ga3a3f5b65c40f498cdbc26944bd9855cf"></a> <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> <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> </div> </div> <h2 class="groupheader">Function Documentation</h2> <a class="anchor" id="ga1b8d6e2acb0a62de5c23bd8aef3ec225"></a> <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 </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Returns the ALSA sound library version in ASCII format. </p> <dl class="section return"><dt>Returns</dt><dd>The ASCII description of the used ALSA sound library. </dd></dl> </div> </div> <a class="anchor" id="gafd936c40505997bb659b74bd368636b8"></a> <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> ** </td> <td class="paramname"><em>handler</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </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> </td> <td class="paramname"><em>callback</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>private_data</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Registers an async handler. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">handler</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 class="paramname">fd</td><td>The file descriptor to be associated with the callback. </td></tr> <tr><td class="paramname">callback</td><td>The async callback function. </td></tr> <tr><td class="paramname">private_data</td><td>Private data for the async callback function. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</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="section see"><dt>See Also</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> <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> * </td> <td class="paramname"><em>handler</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Deletes an async handler. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">handler</td><td>Handle of the async handler to delete. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code. </dd></dl> </div> </div> <a class="anchor" id="gad9c76588a87918901c6273e6bc98a1bc"></a> <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> * </td> <td class="paramname"><em>handler</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Returns the private data assigned to an async handler. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">handler</td><td>Handle to an async handler. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</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#a39">/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="gad601f70e0405a8522860edb15db6350c"></a> <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> * </td> <td class="paramname"><em>handler</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Returns the file descriptor assigned to an async handler. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">handler</td><td>Handle to an async handler. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The file descriptor if successful, otherwise a negative error code. </dd></dl> </div> </div> <a class="anchor" id="gab32c9afe265784634c78e7a6b5d27abe"></a> <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> * </td> <td class="paramname"><em>handler</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Returns the signal number assigned to an async handler. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">handler</td><td>Handle to an async handler. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</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> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_dlclose </td> <td>(</td> <td class="paramtype">void * </td> <td class="paramname"><em>handle</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Closes a dynamic library - ALSA wrapper for <code>dlclose</code>. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">handle</td><td>Library handle, similar to <code>dlclose</code>. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</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="ga8d048fb538f1487e030396866c0374dd"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void* snd_dlopen </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>name</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>mode</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"><em>errbuf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"><em>errbuflen</em> </td> </tr> <tr> <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 class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">name</td><td>name of the library, similar to <code>dlopen</code>. </td></tr> <tr><td class="paramname">mode</td><td>mode flags, similar to <code>dlopen</code>. </td></tr> <tr><td class="paramname">errbuf</td><td>a string buffer for the error message <code>dlerror</code>. </td></tr> <tr><td class="paramname">errbuflen</td><td>a length of the string buffer for the error message. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</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> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void* snd_dlsym </td> <td>(</td> <td class="paramtype">void * </td> <td class="paramname"><em>handle</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>name</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>version</em> </td> </tr> <tr> <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 class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">handle</td><td>Library handle, similar to <code>dlsym</code>. </td></tr> <tr><td class="paramname">name</td><td>Symbol name. </td></tr> <tr><td class="paramname">version</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="gaade4b91c735abcec70101b9d83b11126"></a> <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 * </td> <td class="paramname"><em>file</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char ** </td> <td class="paramname"><em>result</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Get the full file name. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">file</td><td>The file name string to parse </td></tr> <tr><td class="paramname">result</td><td>The pointer to store the resultant file name </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</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><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.5 </small></address> </body> </html>