<!-- This comment will put IE 6, 7 and 8 in quirks mode --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>ALSA project - the C library reference: High level Control Interface</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="search/search.css" rel="stylesheet" type="text/css"/> <script type="text/javaScript" src="search/search.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body onload='searchBox.OnSelectItem(0);'> <!-- Generated by Doxygen 1.6.3 --> <script type="text/javascript"><!-- var searchBox = new SearchBox("searchBox", "search",false,'Search'); --></script> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main 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"> <img id="MSearchSelect" src="search/search.png" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/> <input type="text" id="MSearchField" value="Search" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> </div> </li> </ul> </div> </div> <div class="contents"> <h1>High level Control Interface<br/> <small> [<a class="el" href="group___control.html">Control Interface</a>]</small> </h1><table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Typedefs</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef struct _snd_hctl_elem </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef struct _snd_hctl </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef int(* </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#ga1801355a5473ac21a6f8996e50b12b98">snd_hctl_compare_t</a> )(const <a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *e1, const <a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *e2)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compare function for sorting HCTL elements. <a href="#ga1801355a5473ac21a6f8996e50b12b98"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef int(* </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gaeba80eb2e3f8900f1cdc9c677db9ddf7">snd_hctl_callback_t</a> )(<a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> *hctl, unsigned int mask, <a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *elem)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">HCTL callback function. <a href="#gaeba80eb2e3f8900f1cdc9c677db9ddf7"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef int(* </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#ga3002cda007033735dc31d632c4c84678">snd_hctl_elem_callback_t</a> )(<a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *elem, unsigned int mask)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">HCTL element callback function. <a href="#ga3002cda007033735dc31d632c4c84678"></a><br/></td></tr> <tr><td colspan="2"><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gaaa17b28ebe0f1e0e4443182312af7408">snd_hctl_compare_fast</a> (const <a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *c1, const <a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *c2)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A "don't care" fast compare functions that may be used with <a class="el" href="group___h_control.html#ga5917b8cbcdf5d44d8730027b18ff6172" title="Change HCTL compare function and reorder elements.">snd_hctl_set_compare</a>. <a href="#gaaa17b28ebe0f1e0e4443182312af7408"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#ga2a86455eaad4f2730a936d06c62cca29">snd_hctl_open</a> (<a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> **hctl, const char *name, int mode)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Opens an HCTL. <a href="#ga2a86455eaad4f2730a936d06c62cca29"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#ga48b556b219e99c36d65efc6b8a97029c">snd_hctl_open_ctl</a> (<a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> **hctlp, <a class="el" href="group___control.html#ga06628f38def84a0fe3da74041db9d51f">snd_ctl_t</a> *ctl)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Opens an HCTL. <a href="#ga48b556b219e99c36d65efc6b8a97029c"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gae9537f6a56d663aa9714ccc82689ff1e">snd_hctl_close</a> (<a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> *hctl)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">close HCTL handle <a href="#gae9537f6a56d663aa9714ccc82689ff1e"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#ga3c3e66e230fc93c15f18568342725a43">snd_hctl_nonblock</a> (<a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> *hctl, int nonblock)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">set nonblock mode <a href="#ga3c3e66e230fc93c15f18568342725a43"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#ga32238dba8935b2cb91fbad73aae9e3d4">snd_hctl_poll_descriptors_count</a> (<a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> *hctl)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">get count of poll descriptors for HCTL handle <a href="#ga32238dba8935b2cb91fbad73aae9e3d4"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#ga7dd3894b55740cbdb8b2a0bef15af295">snd_hctl_poll_descriptors</a> (<a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> *hctl, struct pollfd *pfds, unsigned int space)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">get poll descriptors <a href="#ga7dd3894b55740cbdb8b2a0bef15af295"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#ga704fd06286869e793e223956b186bfdf">snd_hctl_poll_descriptors_revents</a> (<a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> *ctl, struct pollfd *pfds, unsigned int nfds, unsigned short *revents)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">get returned events from poll descriptors <a href="#ga704fd06286869e793e223956b186bfdf"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#ga098944f4f2d7722550901bf6f80ee91c">snd_hctl_get_count</a> (<a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> *hctl)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get number of loaded elements for an HCTL. <a href="#ga098944f4f2d7722550901bf6f80ee91c"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#ga5917b8cbcdf5d44d8730027b18ff6172">snd_hctl_set_compare</a> (<a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> *hctl, <a class="el" href="group___h_control.html#ga1801355a5473ac21a6f8996e50b12b98">snd_hctl_compare_t</a> hsort)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Change HCTL compare function and reorder elements. <a href="#ga5917b8cbcdf5d44d8730027b18ff6172"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gaaa68ce403d30e4d152fe4ce82b6c02db">snd_hctl_first_elem</a> (<a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> *hctl)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">get first element for an HCTL <a href="#gaaa68ce403d30e4d152fe4ce82b6c02db"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#ga8b7270503d275040a391e05c991ec569">snd_hctl_last_elem</a> (<a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> *hctl)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">get last element for an HCTL <a href="#ga8b7270503d275040a391e05c991ec569"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gaeee7f3f76cb71fd4b3456a9566529bd5">snd_hctl_find_elem</a> (<a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> *hctl, const <a class="el" href="group___control.html#gad6c3746f1925bfec6a4fd0e913430e55">snd_ctl_elem_id_t</a> *id)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Search an HCTL element. <a href="#gaeee7f3f76cb71fd4b3456a9566529bd5"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#ga9c0abde0c53cafb640bbd6e3b1c3d6c6">snd_hctl_set_callback</a> (<a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> *hctl, <a class="el" href="group___h_control.html#gaeba80eb2e3f8900f1cdc9c677db9ddf7">snd_hctl_callback_t</a> callback)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set callback function for an HCTL. <a href="#ga9c0abde0c53cafb640bbd6e3b1c3d6c6"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gae678856658731969c884a4c9c810d799">snd_hctl_set_callback_private</a> (<a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> *hctl, void *data)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set callback private value for an HCTL. <a href="#gae678856658731969c884a4c9c810d799"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#ga60c1606f4d423301355344e5373d5ccc">snd_hctl_get_callback_private</a> (<a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> *hctl)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get callback private value for an HCTL. <a href="#ga60c1606f4d423301355344e5373d5ccc"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#ga700017b7d9b8decb775702d5dc6fef85">snd_hctl_load</a> (<a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> *hctl)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Load an HCTL with all elements and sort them. <a href="#ga700017b7d9b8decb775702d5dc6fef85"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#ga1b3e936bba7a6127459af1244c7da454">snd_hctl_free</a> (<a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> *hctl)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">free HCTL loaded elements <a href="#ga1b3e936bba7a6127459af1244c7da454"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#ga02d9dc1cdbdfe11880e3fe774f2034bd">snd_hctl_handle_events</a> (<a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> *hctl)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Handle pending HCTL events invoking callbacks. <a href="#ga02d9dc1cdbdfe11880e3fe774f2034bd"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gabd1208fbbe2061021494ea21ab382088">snd_hctl_name</a> (<a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> *hctl)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">get identifier of HCTL handle <a href="#gabd1208fbbe2061021494ea21ab382088"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#ga2f0d0548f5d848b6557b2967d0e73494">snd_hctl_wait</a> (<a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> *hctl, int timeout)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Wait for a HCTL to become ready (i.e. at least one event pending). <a href="#ga2f0d0548f5d848b6557b2967d0e73494"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___control.html#ga06628f38def84a0fe3da74041db9d51f">snd_ctl_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#ga93f19c0fb16337f72b6c413512b79f1a">snd_hctl_ctl</a> (<a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> *hctl)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get a ctl handle associated to the given hctl handle. <a href="#ga93f19c0fb16337f72b6c413512b79f1a"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gaf7c6b19c5feb2392f2d447bc3f54fd15">snd_hctl_elem_next</a> (<a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *elem)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">get next HCTL element <a href="#gaf7c6b19c5feb2392f2d447bc3f54fd15"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#ga89a720775cb955ee4069a45074e4b32f">snd_hctl_elem_prev</a> (<a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *elem)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">get previous HCTL element <a href="#ga89a720775cb955ee4069a45074e4b32f"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gae08b50b118461e6fcc55975e5530885c">snd_hctl_elem_info</a> (<a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *elem, <a class="el" href="group___control.html#ga2cae0bb76df919368e4ff9a7021dd3ab">snd_ctl_elem_info_t</a> *info)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get information for an HCTL element. <a href="#gae08b50b118461e6fcc55975e5530885c"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#ga86728d69cc5de843ed46ffb4f3b98e2c">snd_hctl_elem_read</a> (<a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *elem, <a class="el" href="group___control.html#ga266b478eb64f1cdd75e337df4b4b995e">snd_ctl_elem_value_t</a> *value)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get value for an HCTL element. <a href="#ga86728d69cc5de843ed46ffb4f3b98e2c"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gafaf6b88337fdc827c847e21a6fd0cd79">snd_hctl_elem_write</a> (<a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *elem, <a class="el" href="group___control.html#ga266b478eb64f1cdd75e337df4b4b995e">snd_ctl_elem_value_t</a> *value)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set value for an HCTL element. <a href="#gafaf6b88337fdc827c847e21a6fd0cd79"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#ga45fc0e8b3dfaeb2dfebce4f613b21297">snd_hctl_elem_tlv_read</a> (<a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *elem, unsigned int *tlv, unsigned int tlv_size)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get TLV value for an HCTL element. <a href="#ga45fc0e8b3dfaeb2dfebce4f613b21297"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gab5611090cee93ace74db2e744718ae25">snd_hctl_elem_tlv_write</a> (<a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *elem, const unsigned int *tlv)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set TLV value for an HCTL element. <a href="#gab5611090cee93ace74db2e744718ae25"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gaedec51e102fbf6161322553355439121">snd_hctl_elem_tlv_command</a> (<a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *elem, const unsigned int *tlv)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set TLV value for an HCTL element. <a href="#gaedec51e102fbf6161322553355439121"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#ga98660b650e7c060be8a574402e2f2257">snd_hctl_elem_get_hctl</a> (<a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *elem)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get HCTL handle for an HCTL element. <a href="#ga98660b650e7c060be8a574402e2f2257"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gac1c0ce6f627f2f1560c5db03a93caf5b">snd_hctl_elem_get_id</a> (const <a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *obj, <a class="el" href="group___control.html#gad6c3746f1925bfec6a4fd0e913430e55">snd_ctl_elem_id_t</a> *ptr)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get CTL element identifier of a CTL element id/value. <a href="#gac1c0ce6f627f2f1560c5db03a93caf5b"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gae5e86d487c6c964be8a59dfeddb2f36e">snd_hctl_elem_get_numid</a> (const <a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *obj)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get element numeric identifier of a CTL element id/value. <a href="#gae5e86d487c6c964be8a59dfeddb2f36e"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___control.html#ga14baa0febb91cc4c5d72dcc825acf518">snd_ctl_elem_iface_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gabe8c46cbe8b6a2612fa0eaeb1fa8fefb">snd_hctl_elem_get_interface</a> (const <a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *obj)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get interface part of CTL element identifier of a CTL element id/value. <a href="#gabe8c46cbe8b6a2612fa0eaeb1fa8fefb"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gae933e61025507ee572408138e935c63f">snd_hctl_elem_get_device</a> (const <a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *obj)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get device part of CTL element identifier of a CTL element id/value. <a href="#gae933e61025507ee572408138e935c63f"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#ga894c09354156fd12f8a089726449f6ac">snd_hctl_elem_get_subdevice</a> (const <a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *obj)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get subdevice part of CTL element identifier of a CTL element id/value. <a href="#ga894c09354156fd12f8a089726449f6ac"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gab89b9d62f8575795fc52b86415373a49">snd_hctl_elem_get_name</a> (const <a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *obj)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get name part of CTL element identifier of a CTL element id/value. <a href="#gab89b9d62f8575795fc52b86415373a49"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gaa2bad4d08aa1c8ea98f2a92435583e01">snd_hctl_elem_get_index</a> (const <a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *obj)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get index part of CTL element identifier of a CTL element id/value. <a href="#gaa2bad4d08aa1c8ea98f2a92435583e01"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gacc10c18b636db3388e9b6383058fc757">snd_hctl_elem_set_callback</a> (<a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *obj, <a class="el" href="group___h_control.html#ga3002cda007033735dc31d632c4c84678">snd_hctl_elem_callback_t</a> val)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set callback function for an HCTL element. <a href="#gacc10c18b636db3388e9b6383058fc757"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gac0aad0000d7eccde5d107b1b95f429e6">snd_hctl_elem_get_callback_private</a> (const <a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *obj)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get callback private value for an HCTL element. <a href="#gac0aad0000d7eccde5d107b1b95f429e6"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gaa9d511449fc220d09e69a05ae65f1ead">snd_hctl_elem_set_callback_private</a> (<a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *obj, void *val)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set callback private value for an HCTL element. <a href="#gaa9d511449fc220d09e69a05ae65f1ead"></a><br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>The high level control interface. See <a class="el" href="hcontrol.html">High level control interface</a> page for more details. </p> <hr/><h2>Typedef Documentation</h2> <a class="anchor" id="gaeba80eb2e3f8900f1cdc9c677db9ddf7"></a><!-- doxytag: member="control.h::snd_hctl_callback_t" ref="gaeba80eb2e3f8900f1cdc9c677db9ddf7" args=")(snd_hctl_t *hctl, unsigned int mask, snd_hctl_elem_t *elem)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef int(* <a class="el" href="group___h_control.html#gaeba80eb2e3f8900f1cdc9c677db9ddf7">snd_hctl_callback_t</a>)(<a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> *hctl, unsigned int mask, <a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *elem)</td> </tr> </table> </div> <div class="memdoc"> <p>HCTL callback function. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>hctl</em> </td><td>HCTL handle </td></tr> <tr><td valign="top"></td><td valign="top"><em>mask</em> </td><td>event mask </td></tr> <tr><td valign="top"></td><td valign="top"><em>elem</em> </td><td>related HCTL element (if any) </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code </dd></dl> </div> </div> <a class="anchor" id="ga1801355a5473ac21a6f8996e50b12b98"></a><!-- doxytag: member="control.h::snd_hctl_compare_t" ref="ga1801355a5473ac21a6f8996e50b12b98" args=")(const snd_hctl_elem_t *e1, const snd_hctl_elem_t *e2)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef int(* <a class="el" href="group___h_control.html#ga1801355a5473ac21a6f8996e50b12b98">snd_hctl_compare_t</a>)(const <a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *e1, const <a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *e2)</td> </tr> </table> </div> <div class="memdoc"> <p>Compare function for sorting HCTL elements. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>e1</em> </td><td>First element </td></tr> <tr><td valign="top"></td><td valign="top"><em>e2</em> </td><td>Second element </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>-1 if e1 < e2, 0 if e1 == e2, 1 if e1 > e2 </dd></dl> </div> </div> <a class="anchor" id="ga3002cda007033735dc31d632c4c84678"></a><!-- doxytag: member="control.h::snd_hctl_elem_callback_t" ref="ga3002cda007033735dc31d632c4c84678" args=")(snd_hctl_elem_t *elem, unsigned int mask)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef int(* <a class="el" href="group___h_control.html#ga3002cda007033735dc31d632c4c84678">snd_hctl_elem_callback_t</a>)(<a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *elem, unsigned int mask)</td> </tr> </table> </div> <div class="memdoc"> <p>HCTL element callback function. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>elem</em> </td><td>HCTL element </td></tr> <tr><td valign="top"></td><td valign="top"><em>mask</em> </td><td>event mask </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code </dd></dl> </div> </div> <a class="anchor" id="gaddfb152863e87857d463c7008d72ad74"></a><!-- doxytag: member="control.h::snd_hctl_elem_t" ref="gaddfb152863e87857d463c7008d72ad74" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef struct _snd_hctl_elem <a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a></td> </tr> </table> </div> <div class="memdoc"> <p>HCTL element handle </p> </div> </div> <a class="anchor" id="ga13c9ad52c57ab7db06065a7f806b2369"></a><!-- doxytag: member="control.h::snd_hctl_t" ref="ga13c9ad52c57ab7db06065a7f806b2369" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef struct _snd_hctl <a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a></td> </tr> </table> </div> <div class="memdoc"> <p>HCTL handle </p> </div> </div> <hr/><h2>Function Documentation</h2> <a class="anchor" id="gae9537f6a56d663aa9714ccc82689ff1e"></a><!-- doxytag: member="control.h::snd_hctl_close" ref="gae9537f6a56d663aa9714ccc82689ff1e" args="(snd_hctl_t *hctl)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_hctl_close </td> <td>(</td> <td class="paramtype"><a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> * </td> <td class="paramname"> <em>hctl</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>close HCTL handle </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>hctl</em> </td><td>HCTL handle </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code</dd></dl> <p>Closes the specified HCTL handle and frees all associated resources. </p> </div> </div> <a class="anchor" id="gaaa17b28ebe0f1e0e4443182312af7408"></a><!-- doxytag: member="control.h::snd_hctl_compare_fast" ref="gaaa17b28ebe0f1e0e4443182312af7408" args="(const snd_hctl_elem_t *c1, const snd_hctl_elem_t *c2)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_hctl_compare_fast </td> <td>(</td> <td class="paramtype">const <a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> * </td> <td class="paramname"> <em>c1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> * </td> <td class="paramname"> <em>c2</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>A "don't care" fast compare functions that may be used with <a class="el" href="group___h_control.html#ga5917b8cbcdf5d44d8730027b18ff6172" title="Change HCTL compare function and reorder elements.">snd_hctl_set_compare</a>. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>c1</em> </td><td>First HCTL element </td></tr> <tr><td valign="top"></td><td valign="top"><em>c2</em> </td><td>Second HCTL element </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>-1 if c1 < c2, 0 if c1 == c2, 1 if c1 > c2 </dd></dl> </div> </div> <a class="anchor" id="ga93f19c0fb16337f72b6c413512b79f1a"></a><!-- doxytag: member="control.h::snd_hctl_ctl" ref="ga93f19c0fb16337f72b6c413512b79f1a" args="(snd_hctl_t *hctl)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group___control.html#ga06628f38def84a0fe3da74041db9d51f">snd_ctl_t</a>* snd_hctl_ctl </td> <td>(</td> <td class="paramtype"><a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> * </td> <td class="paramname"> <em>hctl</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get a ctl handle associated to the given hctl handle. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>hctl</em> </td><td>HCTL handle </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>a ctl handle otherwise NULL </dd></dl> </div> </div> <a class="anchor" id="gac0aad0000d7eccde5d107b1b95f429e6"></a><!-- doxytag: member="control.h::snd_hctl_elem_get_callback_private" ref="gac0aad0000d7eccde5d107b1b95f429e6" args="(const snd_hctl_elem_t *obj)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void* snd_hctl_elem_get_callback_private </td> <td>(</td> <td class="paramtype">const <a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> * </td> <td class="paramname"> <em>obj</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get callback private value for an HCTL element. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>obj</em> </td><td>HCTL element </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>callback private value </dd></dl> </div> </div> <a class="anchor" id="gae933e61025507ee572408138e935c63f"></a><!-- doxytag: member="control.h::snd_hctl_elem_get_device" ref="gae933e61025507ee572408138e935c63f" args="(const snd_hctl_elem_t *obj)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned int snd_hctl_elem_get_device </td> <td>(</td> <td class="paramtype">const <a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> * </td> <td class="paramname"> <em>obj</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get device part of CTL element identifier of a CTL element id/value. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>obj</em> </td><td>CTL element id/value </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>device part of element identifier </dd></dl> </div> </div> <a class="anchor" id="ga98660b650e7c060be8a574402e2f2257"></a><!-- doxytag: member="control.h::snd_hctl_elem_get_hctl" ref="ga98660b650e7c060be8a574402e2f2257" args="(snd_hctl_elem_t *elem)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a>* snd_hctl_elem_get_hctl </td> <td>(</td> <td class="paramtype"><a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> * </td> <td class="paramname"> <em>elem</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get HCTL handle for an HCTL element. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>elem</em> </td><td>HCTL element </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>HCTL handle </dd></dl> </div> </div> <a class="anchor" id="gac1c0ce6f627f2f1560c5db03a93caf5b"></a><!-- doxytag: member="control.h::snd_hctl_elem_get_id" ref="gac1c0ce6f627f2f1560c5db03a93caf5b" args="(const snd_hctl_elem_t *obj, snd_ctl_elem_id_t *ptr)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void snd_hctl_elem_get_id </td> <td>(</td> <td class="paramtype">const <a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> * </td> <td class="paramname"> <em>obj</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___control.html#gad6c3746f1925bfec6a4fd0e913430e55">snd_ctl_elem_id_t</a> * </td> <td class="paramname"> <em>ptr</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Get CTL element identifier of a CTL element id/value. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>obj</em> </td><td>CTL element id/value </td></tr> <tr><td valign="top"></td><td valign="top"><em>ptr</em> </td><td>Pointer to returned CTL element identifier </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="gaa2bad4d08aa1c8ea98f2a92435583e01"></a><!-- doxytag: member="control.h::snd_hctl_elem_get_index" ref="gaa2bad4d08aa1c8ea98f2a92435583e01" args="(const snd_hctl_elem_t *obj)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned int snd_hctl_elem_get_index </td> <td>(</td> <td class="paramtype">const <a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> * </td> <td class="paramname"> <em>obj</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get index part of CTL element identifier of a CTL element id/value. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>obj</em> </td><td>CTL element id/value </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>index part of element identifier </dd></dl> </div> </div> <a class="anchor" id="gabe8c46cbe8b6a2612fa0eaeb1fa8fefb"></a><!-- doxytag: member="control.h::snd_hctl_elem_get_interface" ref="gabe8c46cbe8b6a2612fa0eaeb1fa8fefb" args="(const snd_hctl_elem_t *obj)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group___control.html#ga14baa0febb91cc4c5d72dcc825acf518">snd_ctl_elem_iface_t</a> snd_hctl_elem_get_interface </td> <td>(</td> <td class="paramtype">const <a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> * </td> <td class="paramname"> <em>obj</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get interface part of CTL element identifier of a CTL element id/value. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>obj</em> </td><td>CTL element id/value </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>interface part of element identifier </dd></dl> </div> </div> <a class="anchor" id="gab89b9d62f8575795fc52b86415373a49"></a><!-- doxytag: member="control.h::snd_hctl_elem_get_name" ref="gab89b9d62f8575795fc52b86415373a49" args="(const snd_hctl_elem_t *obj)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const char* snd_hctl_elem_get_name </td> <td>(</td> <td class="paramtype">const <a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> * </td> <td class="paramname"> <em>obj</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get name part of CTL element identifier of a CTL element id/value. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>obj</em> </td><td>CTL element id/value </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>name part of element identifier </dd></dl> </div> </div> <a class="anchor" id="gae5e86d487c6c964be8a59dfeddb2f36e"></a><!-- doxytag: member="control.h::snd_hctl_elem_get_numid" ref="gae5e86d487c6c964be8a59dfeddb2f36e" args="(const snd_hctl_elem_t *obj)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned int snd_hctl_elem_get_numid </td> <td>(</td> <td class="paramtype">const <a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> * </td> <td class="paramname"> <em>obj</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get element numeric identifier of a CTL element id/value. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>obj</em> </td><td>CTL element id/value </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>element numeric identifier </dd></dl> </div> </div> <a class="anchor" id="ga894c09354156fd12f8a089726449f6ac"></a><!-- doxytag: member="control.h::snd_hctl_elem_get_subdevice" ref="ga894c09354156fd12f8a089726449f6ac" args="(const snd_hctl_elem_t *obj)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned int snd_hctl_elem_get_subdevice </td> <td>(</td> <td class="paramtype">const <a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> * </td> <td class="paramname"> <em>obj</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get subdevice part of CTL element identifier of a CTL element id/value. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>obj</em> </td><td>CTL element id/value </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>subdevice part of element identifier </dd></dl> </div> </div> <a class="anchor" id="gae08b50b118461e6fcc55975e5530885c"></a><!-- doxytag: member="control.h::snd_hctl_elem_info" ref="gae08b50b118461e6fcc55975e5530885c" args="(snd_hctl_elem_t *elem, snd_ctl_elem_info_t *info)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_hctl_elem_info </td> <td>(</td> <td class="paramtype"><a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> * </td> <td class="paramname"> <em>elem</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___control.html#ga2cae0bb76df919368e4ff9a7021dd3ab">snd_ctl_elem_info_t</a> * </td> <td class="paramname"> <em>info</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Get information for an HCTL element. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>elem</em> </td><td>HCTL element </td></tr> <tr><td valign="top"></td><td valign="top"><em>info</em> </td><td>HCTL element information </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>0 otherwise a negative error code on failure </dd></dl> </div> </div> <a class="anchor" id="gaf7c6b19c5feb2392f2d447bc3f54fd15"></a><!-- doxytag: member="control.h::snd_hctl_elem_next" ref="gaf7c6b19c5feb2392f2d447bc3f54fd15" args="(snd_hctl_elem_t *elem)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a>* snd_hctl_elem_next </td> <td>(</td> <td class="paramtype"><a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> * </td> <td class="paramname"> <em>elem</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>get next HCTL element </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>elem</em> </td><td>HCTL element </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>pointer to next element </dd></dl> </div> </div> <a class="anchor" id="ga89a720775cb955ee4069a45074e4b32f"></a><!-- doxytag: member="control.h::snd_hctl_elem_prev" ref="ga89a720775cb955ee4069a45074e4b32f" args="(snd_hctl_elem_t *elem)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a>* snd_hctl_elem_prev </td> <td>(</td> <td class="paramtype"><a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> * </td> <td class="paramname"> <em>elem</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>get previous HCTL element </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>elem</em> </td><td>HCTL element </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>pointer to previous element </dd></dl> </div> </div> <a class="anchor" id="ga86728d69cc5de843ed46ffb4f3b98e2c"></a><!-- doxytag: member="control.h::snd_hctl_elem_read" ref="ga86728d69cc5de843ed46ffb4f3b98e2c" args="(snd_hctl_elem_t *elem, snd_ctl_elem_value_t *value)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_hctl_elem_read </td> <td>(</td> <td class="paramtype"><a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> * </td> <td class="paramname"> <em>elem</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___control.html#ga266b478eb64f1cdd75e337df4b4b995e">snd_ctl_elem_value_t</a> * </td> <td class="paramname"> <em>value</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Get value for an HCTL element. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>elem</em> </td><td>HCTL element </td></tr> <tr><td valign="top"></td><td valign="top"><em>value</em> </td><td>HCTL element value </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>0 otherwise a negative error code on failure </dd></dl> </div> </div> <a class="anchor" id="gacc10c18b636db3388e9b6383058fc757"></a><!-- doxytag: member="control.h::snd_hctl_elem_set_callback" ref="gacc10c18b636db3388e9b6383058fc757" args="(snd_hctl_elem_t *obj, snd_hctl_elem_callback_t val)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void snd_hctl_elem_set_callback </td> <td>(</td> <td class="paramtype"><a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> * </td> <td class="paramname"> <em>obj</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___h_control.html#ga3002cda007033735dc31d632c4c84678">snd_hctl_elem_callback_t</a> </td> <td class="paramname"> <em>val</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set callback function for an HCTL element. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>obj</em> </td><td>HCTL element </td></tr> <tr><td valign="top"></td><td valign="top"><em>val</em> </td><td>callback function </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="gaa9d511449fc220d09e69a05ae65f1ead"></a><!-- doxytag: member="control.h::snd_hctl_elem_set_callback_private" ref="gaa9d511449fc220d09e69a05ae65f1ead" args="(snd_hctl_elem_t *obj, void *val)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void snd_hctl_elem_set_callback_private </td> <td>(</td> <td class="paramtype"><a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> * </td> <td class="paramname"> <em>obj</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"> <em>val</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set callback private value for an HCTL element. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>obj</em> </td><td>HCTL element </td></tr> <tr><td valign="top"></td><td valign="top"><em>val</em> </td><td>callback private value </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="gaedec51e102fbf6161322553355439121"></a><!-- doxytag: member="control.h::snd_hctl_elem_tlv_command" ref="gaedec51e102fbf6161322553355439121" args="(snd_hctl_elem_t *elem, const unsigned int *tlv)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_hctl_elem_tlv_command </td> <td>(</td> <td class="paramtype"><a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> * </td> <td class="paramname"> <em>elem</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const unsigned int * </td> <td class="paramname"> <em>tlv</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set TLV value for an HCTL element. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>elem</em> </td><td>HCTL element </td></tr> <tr><td valign="top"></td><td valign="top"><em>tlv</em> </td><td>TLV array for value </td></tr> </table> </dd> </dl> <dl><dt><b>Return values:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>0</em> </td><td>on success </td></tr> <tr><td valign="top"></td><td valign="top"><em>>1</em> </td><td>on success when value was changed </td></tr> <tr><td valign="top"></td><td valign="top"><em><0</em> </td><td>a negative error code on failure </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga45fc0e8b3dfaeb2dfebce4f613b21297"></a><!-- doxytag: member="control.h::snd_hctl_elem_tlv_read" ref="ga45fc0e8b3dfaeb2dfebce4f613b21297" args="(snd_hctl_elem_t *elem, unsigned int *tlv, unsigned int tlv_size)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_hctl_elem_tlv_read </td> <td>(</td> <td class="paramtype"><a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> * </td> <td class="paramname"> <em>elem</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int * </td> <td class="paramname"> <em>tlv</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>tlv_size</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Get TLV value for an HCTL element. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>elem</em> </td><td>HCTL element </td></tr> <tr><td valign="top"></td><td valign="top"><em>tlv</em> </td><td>TLV array for value </td></tr> <tr><td valign="top"></td><td valign="top"><em>tlv_size</em> </td><td>size of TLV array in bytes </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>0 otherwise a negative error code on failure </dd></dl> </div> </div> <a class="anchor" id="gab5611090cee93ace74db2e744718ae25"></a><!-- doxytag: member="control.h::snd_hctl_elem_tlv_write" ref="gab5611090cee93ace74db2e744718ae25" args="(snd_hctl_elem_t *elem, const unsigned int *tlv)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_hctl_elem_tlv_write </td> <td>(</td> <td class="paramtype"><a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> * </td> <td class="paramname"> <em>elem</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const unsigned int * </td> <td class="paramname"> <em>tlv</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set TLV value for an HCTL element. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>elem</em> </td><td>HCTL element </td></tr> <tr><td valign="top"></td><td valign="top"><em>tlv</em> </td><td>TLV array for value </td></tr> </table> </dd> </dl> <dl><dt><b>Return values:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>0</em> </td><td>on success </td></tr> <tr><td valign="top"></td><td valign="top"><em>>1</em> </td><td>on success when value was changed </td></tr> <tr><td valign="top"></td><td valign="top"><em><0</em> </td><td>a negative error code on failure </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="gafaf6b88337fdc827c847e21a6fd0cd79"></a><!-- doxytag: member="control.h::snd_hctl_elem_write" ref="gafaf6b88337fdc827c847e21a6fd0cd79" args="(snd_hctl_elem_t *elem, snd_ctl_elem_value_t *value)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_hctl_elem_write </td> <td>(</td> <td class="paramtype"><a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> * </td> <td class="paramname"> <em>elem</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___control.html#ga266b478eb64f1cdd75e337df4b4b995e">snd_ctl_elem_value_t</a> * </td> <td class="paramname"> <em>value</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set value for an HCTL element. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>elem</em> </td><td>HCTL element </td></tr> <tr><td valign="top"></td><td valign="top"><em>value</em> </td><td>HCTL element value </td></tr> </table> </dd> </dl> <dl><dt><b>Return values:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>0</em> </td><td>on success </td></tr> <tr><td valign="top"></td><td valign="top"><em>>1</em> </td><td>on success when value was changed </td></tr> <tr><td valign="top"></td><td valign="top"><em><0</em> </td><td>a negative error code on failure </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="gaeee7f3f76cb71fd4b3456a9566529bd5"></a><!-- doxytag: member="control.h::snd_hctl_find_elem" ref="gaeee7f3f76cb71fd4b3456a9566529bd5" args="(snd_hctl_t *hctl, const snd_ctl_elem_id_t *id)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a>* snd_hctl_find_elem </td> <td>(</td> <td class="paramtype"><a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> * </td> <td class="paramname"> <em>hctl</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="group___control.html#gad6c3746f1925bfec6a4fd0e913430e55">snd_ctl_elem_id_t</a> * </td> <td class="paramname"> <em>id</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Search an HCTL element. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>hctl</em> </td><td>HCTL handle </td></tr> <tr><td valign="top"></td><td valign="top"><em>id</em> </td><td>Element identifier </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>pointer to found HCTL element or NULL if it does not exists </dd></dl> </div> </div> <a class="anchor" id="gaaa68ce403d30e4d152fe4ce82b6c02db"></a><!-- doxytag: member="control.h::snd_hctl_first_elem" ref="gaaa68ce403d30e4d152fe4ce82b6c02db" args="(snd_hctl_t *hctl)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a>* snd_hctl_first_elem </td> <td>(</td> <td class="paramtype"><a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> * </td> <td class="paramname"> <em>hctl</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>get first element for an HCTL </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>hctl</em> </td><td>HCTL handle </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>pointer to first element </dd></dl> </div> </div> <a class="anchor" id="ga1b3e936bba7a6127459af1244c7da454"></a><!-- doxytag: member="control.h::snd_hctl_free" ref="ga1b3e936bba7a6127459af1244c7da454" args="(snd_hctl_t *hctl)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_hctl_free </td> <td>(</td> <td class="paramtype"><a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> * </td> <td class="paramname"> <em>hctl</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>free HCTL loaded elements </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>hctl</em> </td><td>HCTL handle </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code </dd></dl> </div> </div> <a class="anchor" id="ga60c1606f4d423301355344e5373d5ccc"></a><!-- doxytag: member="control.h::snd_hctl_get_callback_private" ref="ga60c1606f4d423301355344e5373d5ccc" args="(snd_hctl_t *hctl)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void* snd_hctl_get_callback_private </td> <td>(</td> <td class="paramtype"><a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> * </td> <td class="paramname"> <em>hctl</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get callback private value for an HCTL. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>hctl</em> </td><td>HCTL handle </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>callback private value </dd></dl> </div> </div> <a class="anchor" id="ga098944f4f2d7722550901bf6f80ee91c"></a><!-- doxytag: member="control.h::snd_hctl_get_count" ref="ga098944f4f2d7722550901bf6f80ee91c" args="(snd_hctl_t *hctl)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned int snd_hctl_get_count </td> <td>(</td> <td class="paramtype"><a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> * </td> <td class="paramname"> <em>hctl</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get number of loaded elements for an HCTL. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>hctl</em> </td><td>HCTL handle </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>elements count </dd></dl> </div> </div> <a class="anchor" id="ga02d9dc1cdbdfe11880e3fe774f2034bd"></a><!-- doxytag: member="control.h::snd_hctl_handle_events" ref="ga02d9dc1cdbdfe11880e3fe774f2034bd" args="(snd_hctl_t *hctl)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_hctl_handle_events </td> <td>(</td> <td class="paramtype"><a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> * </td> <td class="paramname"> <em>hctl</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Handle pending HCTL events invoking callbacks. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>hctl</em> </td><td>HCTL handle </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>0 otherwise a negative error code on failure </dd></dl> </div> </div> <a class="anchor" id="ga8b7270503d275040a391e05c991ec569"></a><!-- doxytag: member="control.h::snd_hctl_last_elem" ref="ga8b7270503d275040a391e05c991ec569" args="(snd_hctl_t *hctl)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a>* snd_hctl_last_elem </td> <td>(</td> <td class="paramtype"><a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> * </td> <td class="paramname"> <em>hctl</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>get last element for an HCTL </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>hctl</em> </td><td>HCTL handle </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>pointer to last element </dd></dl> </div> </div> <a class="anchor" id="ga700017b7d9b8decb775702d5dc6fef85"></a><!-- doxytag: member="control.h::snd_hctl_load" ref="ga700017b7d9b8decb775702d5dc6fef85" args="(snd_hctl_t *hctl)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_hctl_load </td> <td>(</td> <td class="paramtype"><a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> * </td> <td class="paramname"> <em>hctl</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Load an HCTL with all elements and sort them. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>hctl</em> </td><td>HCTL handle </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code </dd></dl> </div> </div> <a class="anchor" id="gabd1208fbbe2061021494ea21ab382088"></a><!-- doxytag: member="control.h::snd_hctl_name" ref="gabd1208fbbe2061021494ea21ab382088" args="(snd_hctl_t *hctl)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const char* snd_hctl_name </td> <td>(</td> <td class="paramtype"><a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> * </td> <td class="paramname"> <em>hctl</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>get identifier of HCTL handle </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>hctl</em> </td><td>HCTL handle </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>ascii identifier of HCTL handle</dd></dl> <p>Returns the ASCII identifier of given HCTL handle. It's the same identifier specified in <a class="el" href="group___h_control.html#ga2a86455eaad4f2730a936d06c62cca29" title="Opens an HCTL.">snd_hctl_open()</a>. </p> </div> </div> <a class="anchor" id="ga3c3e66e230fc93c15f18568342725a43"></a><!-- doxytag: member="control.h::snd_hctl_nonblock" ref="ga3c3e66e230fc93c15f18568342725a43" args="(snd_hctl_t *hctl, int nonblock)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_hctl_nonblock </td> <td>(</td> <td class="paramtype"><a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> * </td> <td class="paramname"> <em>hctl</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>nonblock</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>set nonblock mode </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>hctl</em> </td><td>HCTL handle </td></tr> <tr><td valign="top"></td><td valign="top"><em>nonblock</em> </td><td>0 = block, 1 = nonblock mode </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code </dd></dl> </div> </div> <a class="anchor" id="ga2a86455eaad4f2730a936d06c62cca29"></a><!-- doxytag: member="control.h::snd_hctl_open" ref="ga2a86455eaad4f2730a936d06c62cca29" args="(snd_hctl_t **hctl, const char *name, int mode)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_hctl_open </td> <td>(</td> <td class="paramtype"><a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> ** </td> <td class="paramname"> <em>hctlp</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">int </td> <td class="paramname"> <em>mode</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Opens an HCTL. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>hctlp</em> </td><td>Returned HCTL handle </td></tr> <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>ASCII identifier of the underlying CTL handle </td></tr> <tr><td valign="top"></td><td valign="top"><em>mode</em> </td><td>Open mode (see <a class="el" href="group___control.html#gae8a46558414be5b5b3b7bed127ad4574">SND_CTL_NONBLOCK</a>, <a class="el" href="group___control.html#gadcbc5a476ffaf2b8d4dfd29a2cfaab3d">SND_CTL_ASYNC</a>) </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code </dd></dl> </div> </div> <a class="anchor" id="ga48b556b219e99c36d65efc6b8a97029c"></a><!-- doxytag: member="control.h::snd_hctl_open_ctl" ref="ga48b556b219e99c36d65efc6b8a97029c" args="(snd_hctl_t **hctlp, snd_ctl_t *ctl)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_hctl_open_ctl </td> <td>(</td> <td class="paramtype"><a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> ** </td> <td class="paramname"> <em>hctlp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___control.html#ga06628f38def84a0fe3da74041db9d51f">snd_ctl_t</a> * </td> <td class="paramname"> <em>ctl</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Opens an HCTL. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>hctlp</em> </td><td>Returned HCTL handle </td></tr> <tr><td valign="top"></td><td valign="top"><em>ctl</em> </td><td>underlying CTL handle </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code </dd></dl> </div> </div> <a class="anchor" id="ga7dd3894b55740cbdb8b2a0bef15af295"></a><!-- doxytag: member="control.h::snd_hctl_poll_descriptors" ref="ga7dd3894b55740cbdb8b2a0bef15af295" args="(snd_hctl_t *hctl, struct pollfd *pfds, unsigned int space)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_hctl_poll_descriptors </td> <td>(</td> <td class="paramtype"><a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> * </td> <td class="paramname"> <em>hctl</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct pollfd * </td> <td class="paramname"> <em>pfds</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>space</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>get poll descriptors </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>hctl</em> </td><td>HCTL handle </td></tr> <tr><td valign="top"></td><td valign="top"><em>pfds</em> </td><td>array of poll descriptors </td></tr> <tr><td valign="top"></td><td valign="top"><em>space</em> </td><td>space in the poll descriptor array </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>count of filled descriptors </dd></dl> </div> </div> <a class="anchor" id="ga32238dba8935b2cb91fbad73aae9e3d4"></a><!-- doxytag: member="control.h::snd_hctl_poll_descriptors_count" ref="ga32238dba8935b2cb91fbad73aae9e3d4" args="(snd_hctl_t *hctl)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_hctl_poll_descriptors_count </td> <td>(</td> <td class="paramtype"><a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> * </td> <td class="paramname"> <em>hctl</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>get count of poll descriptors for HCTL handle </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>hctl</em> </td><td>HCTL handle </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>count of poll descriptors </dd></dl> </div> </div> <a class="anchor" id="ga704fd06286869e793e223956b186bfdf"></a><!-- doxytag: member="control.h::snd_hctl_poll_descriptors_revents" ref="ga704fd06286869e793e223956b186bfdf" args="(snd_hctl_t *ctl, struct pollfd *pfds, unsigned int nfds, unsigned short *revents)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_hctl_poll_descriptors_revents </td> <td>(</td> <td class="paramtype"><a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> * </td> <td class="paramname"> <em>hctl</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct pollfd * </td> <td class="paramname"> <em>pfds</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>nfds</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned short * </td> <td class="paramname"> <em>revents</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>get returned events from poll descriptors </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>hctl</em> </td><td>HCTL handle </td></tr> <tr><td valign="top"></td><td valign="top"><em>pfds</em> </td><td>array of poll descriptors </td></tr> <tr><td valign="top"></td><td valign="top"><em>nfds</em> </td><td>count of poll descriptors </td></tr> <tr><td valign="top"></td><td valign="top"><em>revents</em> </td><td>returned events </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>zero if success, otherwise a negative error code </dd></dl> </div> </div> <a class="anchor" id="ga9c0abde0c53cafb640bbd6e3b1c3d6c6"></a><!-- doxytag: member="control.h::snd_hctl_set_callback" ref="ga9c0abde0c53cafb640bbd6e3b1c3d6c6" args="(snd_hctl_t *hctl, snd_hctl_callback_t callback)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void snd_hctl_set_callback </td> <td>(</td> <td class="paramtype"><a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> * </td> <td class="paramname"> <em>hctl</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___h_control.html#gaeba80eb2e3f8900f1cdc9c677db9ddf7">snd_hctl_callback_t</a> </td> <td class="paramname"> <em>callback</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set callback function for an HCTL. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>hctl</em> </td><td>HCTL handle </td></tr> <tr><td valign="top"></td><td valign="top"><em>callback</em> </td><td>callback function </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="gae678856658731969c884a4c9c810d799"></a><!-- doxytag: member="control.h::snd_hctl_set_callback_private" ref="gae678856658731969c884a4c9c810d799" args="(snd_hctl_t *hctl, void *data)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void snd_hctl_set_callback_private </td> <td>(</td> <td class="paramtype"><a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> * </td> <td class="paramname"> <em>hctl</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"> <em>callback_private</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set callback private value for an HCTL. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>hctl</em> </td><td>HCTL handle </td></tr> <tr><td valign="top"></td><td valign="top"><em>callback_private</em> </td><td>callback private value </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga5917b8cbcdf5d44d8730027b18ff6172"></a><!-- doxytag: member="control.h::snd_hctl_set_compare" ref="ga5917b8cbcdf5d44d8730027b18ff6172" args="(snd_hctl_t *hctl, snd_hctl_compare_t hsort)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_hctl_set_compare </td> <td>(</td> <td class="paramtype"><a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> * </td> <td class="paramname"> <em>hctl</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___h_control.html#ga1801355a5473ac21a6f8996e50b12b98">snd_hctl_compare_t</a> </td> <td class="paramname"> <em>compare</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Change HCTL compare function and reorder elements. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>hctl</em> </td><td>HCTL handle </td></tr> <tr><td valign="top"></td><td valign="top"><em>compare</em> </td><td>Element compare function </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code </dd></dl> </div> </div> <a class="anchor" id="ga2f0d0548f5d848b6557b2967d0e73494"></a><!-- doxytag: member="control.h::snd_hctl_wait" ref="ga2f0d0548f5d848b6557b2967d0e73494" args="(snd_hctl_t *hctl, int timeout)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_hctl_wait </td> <td>(</td> <td class="paramtype"><a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> * </td> <td class="paramname"> <em>hctl</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>timeout</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Wait for a HCTL to become ready (i.e. at least one event pending). </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>hctl</em> </td><td>HCTL handle </td></tr> <tr><td valign="top"></td><td valign="top"><em>timeout</em> </td><td>maximum time in milliseconds to wait </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>a positive value on success otherwise a negative error code </dd></dl> <dl><dt><b>Return values:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>0</em> </td><td>timeout occurred </td></tr> <tr><td valign="top"></td><td valign="top"><em>1</em> </td><td>an event is pending </td></tr> </table> </dd> </dl> </div> </div> </div> <!--- window showing the filter options --> <div id="MSearchSelectWindow" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" onkeydown="return searchBox.OnSearchSelectKey(event)"> <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </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>Defines</a></div> <!-- iframe showing the search results (closed by default) --> <div id="MSearchResultsWindow"> <iframe src="" frameborder="0" name="MSearchResults" id="MSearchResults"> </iframe> </div> <hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Nov 20 07:42:24 2010 for ALSA project - the C library reference by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address> </body> </html>