<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>hcontrol.c File Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.2.18 --> <center> <a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="modules.html">Modules</a> <a class="qindex" href="annotated.html">Data Structures</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Data Fields</a> <a class="qindex" href="globals.html">Globals</a> <a class="qindex" href="pages.html">Related Pages</a> <a class="qindex" href="examples.html">Examples</a> </center> <hr><h1>hcontrol.c File Reference</h1>HCTL Interface - High Level CTL. <a href="#_details">More...</a> <p> <table border=0 cellpadding=0 cellspacing=0> <tr><td></td></tr> <tr><td colspan=2><br><h2>Functions</h2></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a1">snd_hctl_open</a> (<a class="el" href="group___h_control.html#a1">snd_hctl_t</a> **hctlp, const char *name, int mode)</td></tr> <tr><td> </td><td><font size=-1><em>Opens an HCTL.</em> <a href="#a1"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a2">snd_hctl_close</a> (<a class="el" href="group___h_control.html#a1">snd_hctl_t</a> *hctl)</td></tr> <tr><td> </td><td><font size=-1><em>close HCTL handle</em> <a href="#a2"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>const char * </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a3">snd_hctl_name</a> (<a class="el" href="group___h_control.html#a1">snd_hctl_t</a> *hctl)</td></tr> <tr><td> </td><td><font size=-1><em>get identifier of HCTL handle</em> <a href="#a3"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a4">snd_hctl_nonblock</a> (<a class="el" href="group___h_control.html#a1">snd_hctl_t</a> *hctl, int nonblock)</td></tr> <tr><td> </td><td><font size=-1><em>set nonblock mode</em> <a href="#a4"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a5">snd_hctl_async</a> (<a class="el" href="group___h_control.html#a1">snd_hctl_t</a> *hctl, int sig, pid_t pid)</td></tr> <tr><td> </td><td><font size=-1><em>set async mode</em> <a href="#a5"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a6">snd_hctl_poll_descriptors_count</a> (<a class="el" href="group___h_control.html#a1">snd_hctl_t</a> *hctl)</td></tr> <tr><td> </td><td><font size=-1><em>get count of poll descriptors for HCTL handle</em> <a href="#a6"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a7">snd_hctl_poll_descriptors</a> (<a class="el" href="group___h_control.html#a1">snd_hctl_t</a> *hctl, struct pollfd *pfds, unsigned int space)</td></tr> <tr><td> </td><td><font size=-1><em>get poll descriptors</em> <a href="#a7"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a15">snd_hctl_free</a> (<a class="el" href="group___h_control.html#a1">snd_hctl_t</a> *hctl)</td></tr> <tr><td> </td><td><font size=-1><em>free HCTL loaded elements</em> <a href="#a15"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a17">snd_hctl_set_compare</a> (<a class="el" href="group___h_control.html#a1">snd_hctl_t</a> *hctl, <a class="el" href="group___h_control.html#a2">snd_hctl_compare_t</a> compare)</td></tr> <tr><td> </td><td><font size=-1><em>Change HCTL compare function and reorder elements.</em> <a href="#a17"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a18">snd_hctl_compare_fast</a> (const <a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> *c1, const <a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> *c2)</td></tr> <tr><td> </td><td><font size=-1><em>A "don't care" fast compare functions that may be used with <a class="el" href="hcontrol_8c.html#a17">snd_hctl_set_compare</a>.</em> <a href="#a18"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> * </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a19">snd_hctl_first_elem</a> (<a class="el" href="group___h_control.html#a1">snd_hctl_t</a> *hctl)</td></tr> <tr><td> </td><td><font size=-1><em>get first element for an HCTL</em> <a href="#a19"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> * </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a20">snd_hctl_last_elem</a> (<a class="el" href="group___h_control.html#a1">snd_hctl_t</a> *hctl)</td></tr> <tr><td> </td><td><font size=-1><em>get last element for an HCTL</em> <a href="#a20"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> * </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a21">snd_hctl_elem_next</a> (<a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> *elem)</td></tr> <tr><td> </td><td><font size=-1><em>get next HCTL element</em> <a href="#a21"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> * </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a22">snd_hctl_elem_prev</a> (<a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> *elem)</td></tr> <tr><td> </td><td><font size=-1><em>get previous HCTL element</em> <a href="#a22"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> * </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a23">snd_hctl_find_elem</a> (<a class="el" href="group___h_control.html#a1">snd_hctl_t</a> *hctl, const <a class="el" href="group___control.html#a2">snd_ctl_elem_id_t</a> *id)</td></tr> <tr><td> </td><td><font size=-1><em>Search an HCTL element.</em> <a href="#a23"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a24">snd_hctl_load</a> (<a class="el" href="group___h_control.html#a1">snd_hctl_t</a> *hctl)</td></tr> <tr><td> </td><td><font size=-1><em>Load an HCTL with all elements and sort them.</em> <a href="#a24"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a25">snd_hctl_set_callback</a> (<a class="el" href="group___h_control.html#a1">snd_hctl_t</a> *hctl, <a class="el" href="group___h_control.html#a3">snd_hctl_callback_t</a> callback)</td></tr> <tr><td> </td><td><font size=-1><em>Set callback function for an HCTL.</em> <a href="#a25"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a26">snd_hctl_set_callback_private</a> (<a class="el" href="group___h_control.html#a1">snd_hctl_t</a> *hctl, void *callback_private)</td></tr> <tr><td> </td><td><font size=-1><em>Set callback private value for an HCTL.</em> <a href="#a26"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void * </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a27">snd_hctl_get_callback_private</a> (<a class="el" href="group___h_control.html#a1">snd_hctl_t</a> *hctl)</td></tr> <tr><td> </td><td><font size=-1><em>Get callback private value for an HCTL.</em> <a href="#a27"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>unsigned int </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a28">snd_hctl_get_count</a> (<a class="el" href="group___h_control.html#a1">snd_hctl_t</a> *hctl)</td></tr> <tr><td> </td><td><font size=-1><em>Get number of loaded elements for an HCTL.</em> <a href="#a28"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a29">snd_hctl_wait</a> (<a class="el" href="group___h_control.html#a1">snd_hctl_t</a> *hctl, int timeout)</td></tr> <tr><td> </td><td><font size=-1><em>Wait for a HCTL to become ready (i.e. at least one event pending).</em> <a href="#a29"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a31">snd_hctl_handle_events</a> (<a class="el" href="group___h_control.html#a1">snd_hctl_t</a> *hctl)</td></tr> <tr><td> </td><td><font size=-1><em>Handle pending HCTL events invoking callbacks.</em> <a href="#a31"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a32">snd_hctl_elem_info</a> (<a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> *elem, <a class="el" href="group___control.html#a4">snd_ctl_elem_info_t</a> *info)</td></tr> <tr><td> </td><td><font size=-1><em>Get information for an HCTL element.</em> <a href="#a32"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a33">snd_hctl_elem_read</a> (<a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> *elem, <a class="el" href="group___control.html#a5">snd_ctl_elem_value_t</a> *value)</td></tr> <tr><td> </td><td><font size=-1><em>Get value for an HCTL element.</em> <a href="#a33"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a34">snd_hctl_elem_write</a> (<a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> *elem, <a class="el" href="group___control.html#a5">snd_ctl_elem_value_t</a> *value)</td></tr> <tr><td> </td><td><font size=-1><em>Set value for an HCTL element.</em> <a href="#a34"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a class="el" href="group___h_control.html#a1">snd_hctl_t</a> * </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a35">snd_hctl_elem_get_hctl</a> (<a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> *elem)</td></tr> <tr><td> </td><td><font size=-1><em>Get HCTL handle for an HCTL element.</em> <a href="#a35"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a36">snd_hctl_elem_get_id</a> (const <a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> *obj, <a class="el" href="group___control.html#a2">snd_ctl_elem_id_t</a> *ptr)</td></tr> <tr><td> </td><td><font size=-1><em>Get CTL element identifier of a CTL element id/value.</em> <a href="#a36"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>unsigned int </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a37">snd_hctl_elem_get_numid</a> (const <a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> *obj)</td></tr> <tr><td> </td><td><font size=-1><em>Get element numeric identifier of a CTL element id/value.</em> <a href="#a37"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a class="el" href="group___control.html#a8">snd_ctl_elem_iface_t</a> </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a38">snd_hctl_elem_get_interface</a> (const <a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> *obj)</td></tr> <tr><td> </td><td><font size=-1><em>Get interface part of CTL element identifier of a CTL element id/value.</em> <a href="#a38"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>unsigned int </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a39">snd_hctl_elem_get_device</a> (const <a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> *obj)</td></tr> <tr><td> </td><td><font size=-1><em>Get device part of CTL element identifier of a CTL element id/value.</em> <a href="#a39"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>unsigned int </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a40">snd_hctl_elem_get_subdevice</a> (const <a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> *obj)</td></tr> <tr><td> </td><td><font size=-1><em>Get subdevice part of CTL element identifier of a CTL element id/value.</em> <a href="#a40"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>const char * </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a41">snd_hctl_elem_get_name</a> (const <a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> *obj)</td></tr> <tr><td> </td><td><font size=-1><em>Get name part of CTL element identifier of a CTL element id/value.</em> <a href="#a41"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>unsigned int </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a42">snd_hctl_elem_get_index</a> (const <a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> *obj)</td></tr> <tr><td> </td><td><font size=-1><em>Get index part of CTL element identifier of a CTL element id/value.</em> <a href="#a42"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a43">snd_hctl_elem_set_callback</a> (<a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> *obj, <a class="el" href="group___h_control.html#a4">snd_hctl_elem_callback_t</a> val)</td></tr> <tr><td> </td><td><font size=-1><em>Set callback function for an HCTL element.</em> <a href="#a43"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a44">snd_hctl_elem_set_callback_private</a> (<a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> *obj, void *val)</td></tr> <tr><td> </td><td><font size=-1><em>Set callback private value for an HCTL element.</em> <a href="#a44"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void * </td><td valign=bottom><a class="el" href="hcontrol_8c.html#a45">snd_hctl_elem_get_callback_private</a> (const <a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> *obj)</td></tr> <tr><td> </td><td><font size=-1><em>Get callback private value for an HCTL element.</em> <a href="#a45"></a><em></em></font><br><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> HCTL Interface - High Level CTL. <p> <p> <dl compact><dt><b>Author: </b></dt><dd> Jaroslav Kysela <<a href="mailto:perex@suse.cz">perex@suse.cz</a>> , Abramo Bagnara <<a href="mailto:abramo@alsa-project.org">abramo@alsa-project.org</a>> </dl><dl compact><dt><b>Date: </b></dt><dd> 2000</dl>HCTL interface is designed to access preloaded and sorted primitive controls. Callbacks may be used for event handling. See <a href="hcontrol.html#hcontrol">High level control interface</a> page for more details. <p> <hr><h2>Function Documentation</h2> <a name="a5" doxytag="hcontrol.c::snd_hctl_async"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_hctl_async </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___h_control.html#a1">snd_hctl_t</a> * </td> <td class="mdname" nowrap> <em>hctl</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>sig</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>pid_t </td> <td class="mdname" nowrap> <em>pid</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> set async mode <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>hctl</em> </td><td> HCTL handle </td></tr> <tr><td valign=top><em>sig</em> </td><td> Signal to raise: < 0 disable, 0 default (SIGIO) </td></tr> <tr><td valign=top><em>pid</em> </td><td> Process ID to signal: 0 current </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 0 on success otherwise a negative error code</dl>A signal is raised when a change happens. </td> </tr> </table> <a name="a2" doxytag="hcontrol.c::snd_hctl_close"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_hctl_close </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___h_control.html#a1">snd_hctl_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>hctl</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> close HCTL handle <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>hctl</em> </td><td> HCTL handle </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 0 on success otherwise a negative error code</dl>Closes the specified HCTL handle and frees all associated resources. </td> </tr> </table> <a name="a18" doxytag="hcontrol.c::snd_hctl_compare_fast"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_hctl_compare_fast </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> * </td> <td class="mdname" nowrap> <em>c1</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const <a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> * </td> <td class="mdname" nowrap> <em>c2</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> A "don't care" fast compare functions that may be used with <a class="el" href="hcontrol_8c.html#a17">snd_hctl_set_compare</a>. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>c1</em> </td><td> First HCTL element </td></tr> <tr><td valign=top><em>c2</em> </td><td> Second HCTL element </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> -1 if c1 < c2, 0 if c1 == c2, 1 if c1 > c2 </dl> </td> </tr> </table> <a name="a45" doxytag="hcontrol.c::snd_hctl_elem_get_callback_private"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void* snd_hctl_elem_get_callback_private </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>obj</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Get callback private value for an HCTL element. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>obj</em> </td><td> HCTL element </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> callback private value </dl> </td> </tr> </table> <a name="a39" doxytag="hcontrol.c::snd_hctl_elem_get_device"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> unsigned int snd_hctl_elem_get_device </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>obj</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Get device part of CTL element identifier of a CTL element id/value. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>obj</em> </td><td> CTL element id/value </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> device part of element identifier </dl> </td> </tr> </table> <a name="a35" doxytag="hcontrol.c::snd_hctl_elem_get_hctl"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> <a class="el" href="group___h_control.html#a1">snd_hctl_t</a>* snd_hctl_elem_get_hctl </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>elem</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Get HCTL handle for an HCTL element. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>elem</em> </td><td> HCTL element </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> HCTL handle </dl> </td> </tr> </table> <a name="a36" doxytag="hcontrol.c::snd_hctl_elem_get_id"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void snd_hctl_elem_get_id </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> * </td> <td class="mdname" nowrap> <em>obj</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="group___control.html#a2">snd_ctl_elem_id_t</a> * </td> <td class="mdname" nowrap> <em>ptr</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Get CTL element identifier of a CTL element id/value. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>obj</em> </td><td> CTL element id/value </td></tr> <tr><td valign=top><em>ptr</em> </td><td> Pointer to returned CTL element identifier </td></tr> </table> </dl> </td> </tr> </table> <a name="a42" doxytag="hcontrol.c::snd_hctl_elem_get_index"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> unsigned int snd_hctl_elem_get_index </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>obj</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Get index part of CTL element identifier of a CTL element id/value. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>obj</em> </td><td> CTL element id/value </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> index part of element identifier </dl> </td> </tr> </table> <a name="a38" doxytag="hcontrol.c::snd_hctl_elem_get_interface"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> <a class="el" href="group___control.html#a8">snd_ctl_elem_iface_t</a> snd_hctl_elem_get_interface </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>obj</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Get interface part of CTL element identifier of a CTL element id/value. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>obj</em> </td><td> CTL element id/value </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> interface part of element identifier </dl> </td> </tr> </table> <a name="a41" doxytag="hcontrol.c::snd_hctl_elem_get_name"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> const char* snd_hctl_elem_get_name </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>obj</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Get name part of CTL element identifier of a CTL element id/value. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>obj</em> </td><td> CTL element id/value </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> name part of element identifier </dl> </td> </tr> </table> <a name="a37" doxytag="hcontrol.c::snd_hctl_elem_get_numid"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> unsigned int snd_hctl_elem_get_numid </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>obj</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Get element numeric identifier of a CTL element id/value. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>obj</em> </td><td> CTL element id/value </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> element numeric identifier </dl> </td> </tr> </table> <a name="a40" doxytag="hcontrol.c::snd_hctl_elem_get_subdevice"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> unsigned int snd_hctl_elem_get_subdevice </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>obj</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Get subdevice part of CTL element identifier of a CTL element id/value. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>obj</em> </td><td> CTL element id/value </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> subdevice part of element identifier </dl> </td> </tr> </table> <a name="a32" doxytag="hcontrol.c::snd_hctl_elem_info"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_hctl_elem_info </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> * </td> <td class="mdname" nowrap> <em>elem</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="group___control.html#a4">snd_ctl_elem_info_t</a> * </td> <td class="mdname" nowrap> <em>info</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Get information for an HCTL element. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>elem</em> </td><td> HCTL element </td></tr> <tr><td valign=top><em>info</em> </td><td> HCTL element information </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 0 otherwise a negative error code on failure </dl> </td> </tr> </table> <a name="a21" doxytag="hcontrol.c::snd_hctl_elem_next"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> <a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a>* snd_hctl_elem_next </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>elem</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> get next HCTL element <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>elem</em> </td><td> HCTL element </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> pointer to next element </dl> </td> </tr> </table> <a name="a22" doxytag="hcontrol.c::snd_hctl_elem_prev"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> <a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a>* snd_hctl_elem_prev </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>elem</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> get previous HCTL element <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>elem</em> </td><td> HCTL element </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> pointer to previous element </dl> </td> </tr> </table> <a name="a33" doxytag="hcontrol.c::snd_hctl_elem_read"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_hctl_elem_read </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> * </td> <td class="mdname" nowrap> <em>elem</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="group___control.html#a5">snd_ctl_elem_value_t</a> * </td> <td class="mdname" nowrap> <em>value</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Get value for an HCTL element. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>elem</em> </td><td> HCTL element </td></tr> <tr><td valign=top><em>value</em> </td><td> HCTL element value </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 0 otherwise a negative error code on failure </dl> </td> </tr> </table> <a name="a43" doxytag="hcontrol.c::snd_hctl_elem_set_callback"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void snd_hctl_elem_set_callback </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> * </td> <td class="mdname" nowrap> <em>obj</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="group___h_control.html#a4">snd_hctl_elem_callback_t</a> </td> <td class="mdname" nowrap> <em>val</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Set callback function for an HCTL element. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>obj</em> </td><td> HCTL element </td></tr> <tr><td valign=top><em>val</em> </td><td> callback function </td></tr> </table> </dl> </td> </tr> </table> <a name="a44" doxytag="hcontrol.c::snd_hctl_elem_set_callback_private"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void snd_hctl_elem_set_callback_private </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> * </td> <td class="mdname" nowrap> <em>obj</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>void * </td> <td class="mdname" nowrap> <em>val</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Set callback private value for an HCTL element. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>obj</em> </td><td> HCTL element </td></tr> <tr><td valign=top><em>val</em> </td><td> callback private value </td></tr> </table> </dl> </td> </tr> </table> <a name="a34" doxytag="hcontrol.c::snd_hctl_elem_write"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_hctl_elem_write </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a> * </td> <td class="mdname" nowrap> <em>elem</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="group___control.html#a5">snd_ctl_elem_value_t</a> * </td> <td class="mdname" nowrap> <em>value</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Set value for an HCTL element. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>elem</em> </td><td> HCTL element </td></tr> <tr><td valign=top><em>value</em> </td><td> HCTL element value </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 0 otherwise a negative error code on failure </dl> </td> </tr> </table> <a name="a23" doxytag="hcontrol.c::snd_hctl_find_elem"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> <a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a>* snd_hctl_find_elem </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___h_control.html#a1">snd_hctl_t</a> * </td> <td class="mdname" nowrap> <em>hctl</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const <a class="el" href="group___control.html#a2">snd_ctl_elem_id_t</a> * </td> <td class="mdname" nowrap> <em>id</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Search an HCTL element. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>hctl</em> </td><td> HCTL handle </td></tr> <tr><td valign=top><em>id</em> </td><td> Element identifier </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> pointer to found HCTL element or NULL if it does not exists </dl> </td> </tr> </table> <a name="a19" doxytag="hcontrol.c::snd_hctl_first_elem"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> <a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a>* snd_hctl_first_elem </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___h_control.html#a1">snd_hctl_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>hctl</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> get first element for an HCTL <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>hctl</em> </td><td> HCTL handle </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> pointer to first element </dl> </td> </tr> </table> <a name="a15" doxytag="hcontrol.c::snd_hctl_free"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_hctl_free </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___h_control.html#a1">snd_hctl_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>hctl</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> free HCTL loaded elements <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>hctl</em> </td><td> HCTL handle </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 0 on success otherwise a negative error code </dl> </td> </tr> </table> <a name="a27" doxytag="hcontrol.c::snd_hctl_get_callback_private"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void* snd_hctl_get_callback_private </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___h_control.html#a1">snd_hctl_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>hctl</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Get callback private value for an HCTL. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>hctl</em> </td><td> HCTL handle </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> callback private value </dl> </td> </tr> </table> <a name="a28" doxytag="hcontrol.c::snd_hctl_get_count"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> unsigned int snd_hctl_get_count </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___h_control.html#a1">snd_hctl_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>hctl</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Get number of loaded elements for an HCTL. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>hctl</em> </td><td> HCTL handle </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> elements count </dl> </td> </tr> </table> <a name="a31" doxytag="hcontrol.c::snd_hctl_handle_events"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_hctl_handle_events </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___h_control.html#a1">snd_hctl_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>hctl</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Handle pending HCTL events invoking callbacks. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>hctl</em> </td><td> HCTL handle </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 0 otherwise a negative error code on failure </dl> </td> </tr> </table> <a name="a20" doxytag="hcontrol.c::snd_hctl_last_elem"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> <a class="el" href="group___h_control.html#a0">snd_hctl_elem_t</a>* snd_hctl_last_elem </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___h_control.html#a1">snd_hctl_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>hctl</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> get last element for an HCTL <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>hctl</em> </td><td> HCTL handle </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> pointer to last element </dl> </td> </tr> </table> <a name="a24" doxytag="hcontrol.c::snd_hctl_load"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_hctl_load </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___h_control.html#a1">snd_hctl_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>hctl</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Load an HCTL with all elements and sort them. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>hctl</em> </td><td> HCTL handle </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 0 on success otherwise a negative error code </dl> </td> </tr> </table> <a name="a3" doxytag="hcontrol.c::snd_hctl_name"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> const char* snd_hctl_name </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___h_control.html#a1">snd_hctl_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>hctl</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> get identifier of HCTL handle <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>hctl</em> </td><td> HCTL handle </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> ascii identifier of HCTL handle</dl>Returns the ASCII identifier of given HCTL handle. It's the same identifier specified in <a class="el" href="hcontrol_8c.html#a1">snd_hctl_open()</a>. </td> </tr> </table> <a name="a4" doxytag="hcontrol.c::snd_hctl_nonblock"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_hctl_nonblock </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___h_control.html#a1">snd_hctl_t</a> * </td> <td class="mdname" nowrap> <em>hctl</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>nonblock</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> set nonblock mode <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>hctl</em> </td><td> HCTL handle </td></tr> <tr><td valign=top><em>nonblock</em> </td><td> 0 = block, 1 = nonblock mode </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 0 on success otherwise a negative error code </dl> </td> </tr> </table> <a name="a1" doxytag="hcontrol.c::snd_hctl_open"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_hctl_open </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___h_control.html#a1">snd_hctl_t</a> ** </td> <td class="mdname" nowrap> <em>hctlp</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <em>name</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>mode</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Opens an HCTL. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>hctlp</em> </td><td> Returned HCTL handle </td></tr> <tr><td valign=top><em>name</em> </td><td> ASCII identifier of the underlying CTL handle </td></tr> <tr><td valign=top><em>mode</em> </td><td> Open mode (see <a class="el" href="group___control.html#a207">SND_CTL_NONBLOCK</a>, <a class="el" href="group___control.html#a208">SND_CTL_ASYNC</a>) </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 0 on success otherwise a negative error code </dl> </td> </tr> </table> <a name="a7" doxytag="hcontrol.c::snd_hctl_poll_descriptors"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_hctl_poll_descriptors </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___h_control.html#a1">snd_hctl_t</a> * </td> <td class="mdname" nowrap> <em>hctl</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>struct pollfd * </td> <td class="mdname" nowrap> <em>pfds</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>unsigned int </td> <td class="mdname" nowrap> <em>space</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> get poll descriptors <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>hctl</em> </td><td> HCTL handle </td></tr> <tr><td valign=top><em>pfds</em> </td><td> array of poll descriptors </td></tr> <tr><td valign=top><em>space</em> </td><td> space in the poll descriptor array </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> count of filled descriptors </dl> </td> </tr> </table> <a name="a6" doxytag="hcontrol.c::snd_hctl_poll_descriptors_count"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_hctl_poll_descriptors_count </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___h_control.html#a1">snd_hctl_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>hctl</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> get count of poll descriptors for HCTL handle <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>hctl</em> </td><td> HCTL handle </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> count of poll descriptors </dl> </td> </tr> </table> <a name="a25" doxytag="hcontrol.c::snd_hctl_set_callback"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void snd_hctl_set_callback </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___h_control.html#a1">snd_hctl_t</a> * </td> <td class="mdname" nowrap> <em>hctl</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="group___h_control.html#a3">snd_hctl_callback_t</a> </td> <td class="mdname" nowrap> <em>callback</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Set callback function for an HCTL. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>hctl</em> </td><td> HCTL handle </td></tr> <tr><td valign=top><em>callback</em> </td><td> callback function </td></tr> </table> </dl> </td> </tr> </table> <a name="a26" doxytag="hcontrol.c::snd_hctl_set_callback_private"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void snd_hctl_set_callback_private </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___h_control.html#a1">snd_hctl_t</a> * </td> <td class="mdname" nowrap> <em>hctl</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>void * </td> <td class="mdname" nowrap> <em>callback_private</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Set callback private value for an HCTL. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>hctl</em> </td><td> HCTL handle </td></tr> <tr><td valign=top><em>callback_private</em> </td><td> callback private value </td></tr> </table> </dl> </td> </tr> </table> <a name="a17" doxytag="hcontrol.c::snd_hctl_set_compare"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_hctl_set_compare </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___h_control.html#a1">snd_hctl_t</a> * </td> <td class="mdname" nowrap> <em>hctl</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="group___h_control.html#a2">snd_hctl_compare_t</a> </td> <td class="mdname" nowrap> <em>compare</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Change HCTL compare function and reorder elements. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>hctl</em> </td><td> HCTL handle </td></tr> <tr><td valign=top><em>compare</em> </td><td> Element compare function </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 0 on success otherwise a negative error code </dl> </td> </tr> </table> <a name="a29" doxytag="hcontrol.c::snd_hctl_wait"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_hctl_wait </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___h_control.html#a1">snd_hctl_t</a> * </td> <td class="mdname" nowrap> <em>hctl</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>timeout</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Wait for a HCTL to become ready (i.e. at least one event pending). <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>hctl</em> </td><td> HCTL handle </td></tr> <tr><td valign=top><em>timeout</em> </td><td> maximum time in milliseconds to wait </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 0 otherwise a negative error code on failure </dl> </td> </tr> </table> <hr><address style="align: right;"><small>Generated on Thu Feb 20 16:45:44 2003 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 width=110 height=53></a>1.2.18 </small></address> </body> </html>