File: //usr/share/doc/alsa-lib-devel-1.0.17/lib64/html/group___global.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>ALSA project - the C library reference: Global defines and functions</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main Page</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="pages.html"><span>Related Pages</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<h1>Global defines and functions</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g45a3c6f7baa0ab1c02a101d658d27e1a"></a><!-- doxytag: member="Global::__SND_DLSYM_VERSION" ref="g45a3c6f7baa0ab1c02a101d658d27e1a" args="(name, version)" -->
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#g45a3c6f7baa0ab1c02a101d658d27e1a">__SND_DLSYM_VERSION</a>(name, version)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Helper macro for <a class="el" href="group___global.html#gd540b40558d67cc73ef44e4ced2d9785">SND_DLSYM_BUILD_VERSION</a>. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gd540b40558d67cc73ef44e4ced2d9785"></a><!-- doxytag: member="Global::SND_DLSYM_BUILD_VERSION" ref="gd540b40558d67cc73ef44e4ced2d9785" args="(name, version)" -->
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#gd540b40558d67cc73ef44e4ced2d9785">SND_DLSYM_BUILD_VERSION</a>(name, version)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Appends the build version to the name of a versioned dynamic symbol. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g328a38b2b346f38d36610a573b2a25d7"></a><!-- doxytag: member="Global::__STRING" ref="g328a38b2b346f38d36610a573b2a25d7" args="(x)" -->
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#g328a38b2b346f38d36610a573b2a25d7">__STRING</a>(x) #x</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Return 'x' argument as string. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g476fe5ed7a3951c1570d55848935ce95"></a><!-- doxytag: member="Global::SND_DLSYM_VERSION" ref="g476fe5ed7a3951c1570d55848935ce95" args="(version)" -->
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#g476fe5ed7a3951c1570d55848935ce95">SND_DLSYM_VERSION</a>(version) __STRING(version)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the version of a dynamic symbol as a string. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g3e2a7adc3899919fa7a1816cd7190be4"></a><!-- doxytag: member="Global::__snd_alloca" ref="g3e2a7adc3899919fa7a1816cd7190be4" args="(ptr, type)" -->
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#g3e2a7adc3899919fa7a1816cd7190be4">__snd_alloca</a>(ptr, type) do { *ptr = (type##_t *) alloca(type##_sizeof()); memset(*ptr, 0, type##_sizeof()); } while (0)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">alloca helper macro. <br></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef _snd_async_handler </td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#ga966cc0e80d3b8f070437c851114d5a5">snd_async_handler_t</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Internal structure for an async notification client handler. <a href="#ga966cc0e80d3b8f070437c851114d5a5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void(*) </td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#gc2c426c7ea09cdcc0cdb398660104baa">snd_async_callback_t</a> (<a class="el" href="group___global.html#ga966cc0e80d3b8f070437c851114d5a5">snd_async_handler_t</a> *handler)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Async notification callback. <a href="#gc2c426c7ea09cdcc0cdb398660104baa"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef timeval </td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#ga6e3b4cb5a0c680777cce7b09cc3e142">snd_timestamp_t</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef timespec </td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#g9ec799950aa7da856cf805705197c390">snd_htimestamp_t</a></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#g64de77a019cf5095075c8cf6c3e34ab4">snd_asoundlib_version</a> (void)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the ALSA sound library version in ASCII format. <a href="#g64de77a019cf5095075c8cf6c3e34ab4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#g2ca66583f26a52ca8fe2d2ab08c54c2c">snd_dlopen</a> (const char *file, int mode)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Opens a dynamic library - ALSA wrapper for <code>dlopen</code>. <a href="#g2ca66583f26a52ca8fe2d2ab08c54c2c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#g35343e506e24e86502b4a1b768699e30">snd_dlsym</a> (void *handle, const char *name, const char *version)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Resolves a symbol from a dynamic library - ALSA wrapper for <code>dlsym</code>. <a href="#g35343e506e24e86502b4a1b768699e30"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#g28ca0650a01dddeeebe9e7bdcdb09735">snd_dlclose</a> (void *handle)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Closes a dynamic library - ALSA wrapper for <code>dlclose</code>. <a href="#g28ca0650a01dddeeebe9e7bdcdb09735"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#g56cd7f93dd500780796faeb81a337d3a">snd_async_add_handler</a> (<a class="el" href="group___global.html#ga966cc0e80d3b8f070437c851114d5a5">snd_async_handler_t</a> **handler, int fd, <a class="el" href="group___global.html#gc2c426c7ea09cdcc0cdb398660104baa">snd_async_callback_t</a> callback, void *private_data)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Registers an async handler. <a href="#g56cd7f93dd500780796faeb81a337d3a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#g788f1f508fc6296b1b4422d34fdfcbe3">snd_async_del_handler</a> (<a class="el" href="group___global.html#ga966cc0e80d3b8f070437c851114d5a5">snd_async_handler_t</a> *handler)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Deletes an async handler. <a href="#g788f1f508fc6296b1b4422d34fdfcbe3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#g173014e6c85c5f4fa207744c5eea4066">snd_async_handler_get_fd</a> (<a class="el" href="group___global.html#ga966cc0e80d3b8f070437c851114d5a5">snd_async_handler_t</a> *handler)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the file descriptor assigned to an async handler. <a href="#g173014e6c85c5f4fa207744c5eea4066"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#g487c4bc2a3aaa198663c58883e340e43">snd_async_handler_get_signo</a> (<a class="el" href="group___global.html#ga966cc0e80d3b8f070437c851114d5a5">snd_async_handler_t</a> *handler)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the signal number assigned to an async handler. <a href="#g487c4bc2a3aaa198663c58883e340e43"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#g968d3fe95196a4e8d6a4d17b3ea41ff6">snd_async_handler_get_callback_private</a> (<a class="el" href="group___global.html#ga966cc0e80d3b8f070437c851114d5a5">snd_async_handler_t</a> *handler)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the private data assigned to an async handler. <a href="#g968d3fe95196a4e8d6a4d17b3ea41ff6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">snd_shm_area * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#gdc73101931458d5aaf0b0a15e6de1b9f">snd_shm_area_create</a> (int shmid, void *ptr)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Create a shm area record. <a href="#gdc73101931458d5aaf0b0a15e6de1b9f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">snd_shm_area * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#g23ea56f65bbd4800ef2a7fb9935c915a">snd_shm_area_share</a> (struct snd_shm_area *area)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Increase the reference counter of shm area record. <a href="#g23ea56f65bbd4800ef2a7fb9935c915a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#g00f08810a9a2aa7e6e47eb6f3fd4e4b8">snd_shm_area_destroy</a> (struct snd_shm_area *area)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Release the shared area record. <a href="#g00f08810a9a2aa7e6e47eb6f3fd4e4b8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___global.html#gd8e638fcc9694264c3daeb48263cf522">snd_user_file</a> (const char *file, char **result)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the full file name. <a href="#gd8e638fcc9694264c3daeb48263cf522"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Global defines and functions. <dl compact><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" name="gc2c426c7ea09cdcc0cdb398660104baa"></a><!-- doxytag: member="global.h::snd_async_callback_t" ref="gc2c426c7ea09cdcc0cdb398660104baa" 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#gc2c426c7ea09cdcc0cdb398660104baa">snd_async_callback_t</a>(<a class="el" href="group___global.html#ga966cc0e80d3b8f070437c851114d5a5">snd_async_handler_t</a> *handler) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Async notification callback.
<p>
See the <a class="el" href="group___global.html#g56cd7f93dd500780796faeb81a337d3a">snd_async_add_handler</a> function for details.
</div>
</div><p>
<a class="anchor" name="ga966cc0e80d3b8f070437c851114d5a5"></a><!-- doxytag: member="global.h::snd_async_handler_t" ref="ga966cc0e80d3b8f070437c851114d5a5" 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#ga966cc0e80d3b8f070437c851114d5a5">snd_async_handler_t</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Internal structure for an async notification client handler.
<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. <dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="_2test_2pcm_8c-example.html#a97">/test/pcm.c</a>, and <a class="el" href="_2test_2timer_8c-example.html#a150">/test/timer.c</a>.</dl>
</div>
</div><p>
<a class="anchor" name="g9ec799950aa7da856cf805705197c390"></a><!-- doxytag: member="global.h::snd_htimestamp_t" ref="g9ec799950aa7da856cf805705197c390" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct timespec <a class="el" href="group___global.html#g9ec799950aa7da856cf805705197c390">snd_htimestamp_t</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Hi-res timestamp
</div>
</div><p>
<a class="anchor" name="ga6e3b4cb5a0c680777cce7b09cc3e142"></a><!-- doxytag: member="global.h::snd_timestamp_t" ref="ga6e3b4cb5a0c680777cce7b09cc3e142" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct timeval <a class="el" href="group___global.html#ga6e3b4cb5a0c680777cce7b09cc3e142">snd_timestamp_t</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Timestamp <dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="_2test_2latency_8c-example.html#a34">/test/latency.c</a>.</dl>
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g64de77a019cf5095075c8cf6c3e34ab4"></a><!-- doxytag: member="global.h::snd_asoundlib_version" ref="g64de77a019cf5095075c8cf6c3e34ab4" 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 </td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns the ALSA sound library version in ASCII format.
<p>
<dl compact><dt><b>Returns:</b></dt><dd>The ASCII description of the used ALSA sound library. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g56cd7f93dd500780796faeb81a337d3a"></a><!-- doxytag: member="global.h::snd_async_add_handler" ref="g56cd7f93dd500780796faeb81a337d3a" 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#ga966cc0e80d3b8f070437c851114d5a5">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#gc2c426c7ea09cdcc0cdb398660104baa">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><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Registers an async handler.
<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>handler</em> </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> </td><td>The file descriptor to be associated with the callback. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>callback</em> </td><td>The async callback function. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>private_data</em> </td><td>Private data for the async callback function. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>Zero if successful, otherwise a negative error code.</dd></dl>
This function associates the callback function with the given file, and saves this association in a <code>snd_async_handler_t</code> object.<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>
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>
The <code>SIGIO</code> signal may have been replaced with another signal, see <a class="el" href="group___global.html#g487c4bc2a3aaa198663c58883e340e43">snd_async_handler_get_signo</a>.<p>
When the async handler isn't needed anymore, you must delete it with <a class="el" href="group___global.html#g788f1f508fc6296b1b4422d34fdfcbe3">snd_async_del_handler</a>.<p>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group___p_c_m.html#g0d343597cdce35871a5010b6e6d5535b">snd_async_add_pcm_handler</a>, <a class="el" href="group___control.html#gc6043c5e6f543bbb370e731f6b99fe38">snd_async_add_ctl_handler</a> </dd></dl>
</div>
</div><p>
<a class="anchor" name="g788f1f508fc6296b1b4422d34fdfcbe3"></a><!-- doxytag: member="global.h::snd_async_del_handler" ref="g788f1f508fc6296b1b4422d34fdfcbe3" 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#ga966cc0e80d3b8f070437c851114d5a5">snd_async_handler_t</a> * </td>
<td class="paramname"> <em>handler</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Deletes an async handler.
<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>handler</em> </td><td>Handle of the async handler to delete. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>Zero if successful, otherwise a negative error code. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g968d3fe95196a4e8d6a4d17b3ea41ff6"></a><!-- doxytag: member="global.h::snd_async_handler_get_callback_private" ref="g968d3fe95196a4e8d6a4d17b3ea41ff6" 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#ga966cc0e80d3b8f070437c851114d5a5">snd_async_handler_t</a> * </td>
<td class="paramname"> <em>handler</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns the private data assigned to an async handler.
<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>handler</em> </td><td>Handle to an async handler. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>The <code>private_data</code> value registered with the async handler. </dd></dl>
<dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="_2test_2pcm_8c-example.html#a99">/test/pcm.c</a>, and <a class="el" href="_2test_2timer_8c-example.html#a153">/test/timer.c</a>.</dl>
</div>
</div><p>
<a class="anchor" name="g173014e6c85c5f4fa207744c5eea4066"></a><!-- doxytag: member="global.h::snd_async_handler_get_fd" ref="g173014e6c85c5f4fa207744c5eea4066" 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#ga966cc0e80d3b8f070437c851114d5a5">snd_async_handler_t</a> * </td>
<td class="paramname"> <em>handler</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns the file descriptor assigned to an async handler.
<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>handler</em> </td><td>Handle to an async handler. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>The file descriptor if successful, otherwise a negative error code. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g487c4bc2a3aaa198663c58883e340e43"></a><!-- doxytag: member="global.h::snd_async_handler_get_signo" ref="g487c4bc2a3aaa198663c58883e340e43" 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#ga966cc0e80d3b8f070437c851114d5a5">snd_async_handler_t</a> * </td>
<td class="paramname"> <em>handler</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns the signal number assigned to an async handler.
<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>handler</em> </td><td>Handle to an async handler. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>The signal number if successful, otherwise a negative error code.</dd></dl>
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.
</div>
</div><p>
<a class="anchor" name="g28ca0650a01dddeeebe9e7bdcdb09735"></a><!-- doxytag: member="global.h::snd_dlclose" ref="g28ca0650a01dddeeebe9e7bdcdb09735" 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 * </td>
<td class="paramname"> <em>handle</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Closes a dynamic library - ALSA wrapper for <code>dlclose</code>.
<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>handle</em> </td><td>Library handle, similar to <code>dlclose</code>. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>Zero if successful, otherwise an error code.</dd></dl>
This function can emulate dynamic linking for the static build of the alsa-lib library.
</div>
</div><p>
<a class="anchor" name="g2ca66583f26a52ca8fe2d2ab08c54c2c"></a><!-- doxytag: member="global.h::snd_dlopen" ref="g2ca66583f26a52ca8fe2d2ab08c54c2c" 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 * </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><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Opens a dynamic library - ALSA wrapper for <code>dlopen</code>.
<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>name</em> </td><td>name of the library, similar to <code>dlopen</code>. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>mode</em> </td><td>mode flags, similar to <code>dlopen</code>. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>Library handle if successful, otherwise <code>NULL</code>.</dd></dl>
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>.
</div>
</div><p>
<a class="anchor" name="g35343e506e24e86502b4a1b768699e30"></a><!-- doxytag: member="global.h::snd_dlsym" ref="g35343e506e24e86502b4a1b768699e30" 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 * </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><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Resolves a symbol from a dynamic library - ALSA wrapper for <code>dlsym</code>.
<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>handle</em> </td><td>Library handle, similar to <code>dlsym</code>. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>Symbol name. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>version</em> </td><td>Version of the symbol.</td></tr>
</table>
</dl>
This function can emulate dynamic linking for the static build of the alsa-lib library.<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#gd540b40558d67cc73ef44e4ced2d9785">SND_DLSYM_BUILD_VERSION</a> macro.
</div>
</div><p>
<a class="anchor" name="gdc73101931458d5aaf0b0a15e6de1b9f"></a><!-- doxytag: member="global.h::snd_shm_area_create" ref="gdc73101931458d5aaf0b0a15e6de1b9f" 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 </td>
<td class="paramname"> <em>shmid</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void * </td>
<td class="paramname"> <em>ptr</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Create a shm area record.
<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>shmid</em> </td><td>IPC SHM ID </td></tr>
<tr><td valign="top"></td><td valign="top"><em>ptr</em> </td><td>the shared area pointer </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>The allocated shm area record, NULL if fail</dd></dl>
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.
</div>
</div><p>
<a class="anchor" name="g00f08810a9a2aa7e6e47eb6f3fd4e4b8"></a><!-- doxytag: member="global.h::snd_shm_area_destroy" ref="g00f08810a9a2aa7e6e47eb6f3fd4e4b8" 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 * </td>
<td class="paramname"> <em>area</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Release the shared area record.
<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>area</em> </td><td>the shared are record </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 if successful, or a negative error code</dd></dl>
Decreases the reference counter of the given shared area record, and releases the resources automaticall if it reaches to 0.
</div>
</div><p>
<a class="anchor" name="g23ea56f65bbd4800ef2a7fb9935c915a"></a><!-- doxytag: member="global.h::snd_shm_area_share" ref="g23ea56f65bbd4800ef2a7fb9935c915a" 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 * </td>
<td class="paramname"> <em>area</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Increase the reference counter of shm area record.
<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>area</em> </td><td>shm area record </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the shm area record (identical with the argument)</dd></dl>
Increases the reference counter of the given shared area record.
</div>
</div><p>
<a class="anchor" name="gd8e638fcc9694264c3daeb48263cf522"></a><!-- doxytag: member="global.h::snd_user_file" ref="gd8e638fcc9694264c3daeb48263cf522" 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 * </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><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Get the full file name.
<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>file</em> </td><td>The file name string to parse </td></tr>
<tr><td valign="top"></td><td valign="top"><em>result</em> </td><td>The pointer to store the resultant file name </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 if successful, or a negative error code</dd></dl>
Parses the given file name with POSIX-Shell-like expansion and stores the first matchine one. The returned string is strdup'ed.
</div>
</div><p>
<hr size="1"><address style="align: right;"><small>Generated on Tue Jan 20 22:42:10 2009 for ALSA project - the C library reference by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>