Project

General

Profile

Task #557 » group___h_control.html

Alexey Khoroshilov, 11/15/2010 09:27 PM

 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>ALSA project - the C library reference: High level Control Interface</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.0 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<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></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef _snd_hctl_elem&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef _snd_hctl&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*)&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#ge14562fff3a229aa20ddd4ff43996197">snd_hctl_compare_t</a> (const <a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *e1, const <a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *e2)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare function for sorting HCTL elements. <a href="#ge14562fff3a229aa20ddd4ff43996197"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*)&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gd2a3777b8415b865fc542a55dc4e1683">snd_hctl_callback_t</a> (<a class="el" href="group___h_control.html#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *hctl, unsigned int mask, <a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *elem)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">HCTL callback function. <a href="#gd2a3777b8415b865fc542a55dc4e1683"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*)&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gf24db6bd9301b4a2ded15c57c2412a46">snd_hctl_elem_callback_t</a> (<a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *elem, unsigned int mask)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">HCTL element callback function. <a href="#gf24db6bd9301b4a2ded15c57c2412a46"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#g486e2c4107f251e678c90c1d094acdb2">snd_hctl_compare_fast</a> (const <a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *c1, const <a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *c2)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A "don't care" fast compare functions that may be used with <a class="el" href="group___h_control.html#g8072511c5c69386541a2aa67a5776bc3">snd_hctl_set_compare</a>. <a href="#g486e2c4107f251e678c90c1d094acdb2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#g3c0db161a8a3fe1407c88731ff2c18bd">snd_hctl_open</a> (<a class="el" href="group___h_control.html#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> **hctl, const char *name, int mode)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Opens an HCTL. <a href="#g3c0db161a8a3fe1407c88731ff2c18bd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#g162a0d8274cf1795e509305f2f1c47ea">snd_hctl_open_ctl</a> (<a class="el" href="group___h_control.html#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> **hctlp, <a class="el" href="group___control.html#g6fef7f4892f9960f41ead15ef8994aa0">snd_ctl_t</a> *ctl)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Opens an HCTL. <a href="#g162a0d8274cf1795e509305f2f1c47ea"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#g274c61c5b0180cd622ba44c1e47cc54d">snd_hctl_close</a> (<a class="el" href="group___h_control.html#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *hctl)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">close HCTL handle <a href="#g274c61c5b0180cd622ba44c1e47cc54d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#g35884dae3a28e37a42b2e1be98f98494">snd_hctl_nonblock</a> (<a class="el" href="group___h_control.html#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *hctl, int nonblock)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">set nonblock mode <a href="#g35884dae3a28e37a42b2e1be98f98494"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gebecdf5e72ca9b58ed3fc12d1b4a8326">snd_hctl_poll_descriptors_count</a> (<a class="el" href="group___h_control.html#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *hctl)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get count of poll descriptors for HCTL handle <a href="#gebecdf5e72ca9b58ed3fc12d1b4a8326"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#g5e40e814996f9e38d2d9f13f701a7c90">snd_hctl_poll_descriptors</a> (<a class="el" href="group___h_control.html#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *hctl, struct pollfd *pfds, unsigned int space)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get poll descriptors <a href="#g5e40e814996f9e38d2d9f13f701a7c90"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#g04fac06c1fc46d5a4858b2cb00b53475">snd_hctl_poll_descriptors_revents</a> (<a class="el" href="group___h_control.html#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *ctl, struct pollfd *pfds, unsigned int nfds, unsigned short *revents)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get returned events from poll descriptors <a href="#g04fac06c1fc46d5a4858b2cb00b53475"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#g633f95d74218510e4a8119e9db6217a7">snd_hctl_get_count</a> (<a class="el" href="group___h_control.html#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *hctl)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get number of loaded elements for an HCTL. <a href="#g633f95d74218510e4a8119e9db6217a7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#g8072511c5c69386541a2aa67a5776bc3">snd_hctl_set_compare</a> (<a class="el" href="group___h_control.html#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *hctl, <a class="el" href="group___h_control.html#ge14562fff3a229aa20ddd4ff43996197">snd_hctl_compare_t</a> hsort)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Change HCTL compare function and reorder elements. <a href="#g8072511c5c69386541a2aa67a5776bc3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gccec39864a07a38fc6d3733d79c97326">snd_hctl_first_elem</a> (<a class="el" href="group___h_control.html#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *hctl)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get first element for an HCTL <a href="#gccec39864a07a38fc6d3733d79c97326"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#g7eead53e019008677fb65df476ee594a">snd_hctl_last_elem</a> (<a class="el" href="group___h_control.html#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *hctl)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get last element for an HCTL <a href="#g7eead53e019008677fb65df476ee594a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gaea4f8c5973411153d3879d8b92b649a">snd_hctl_find_elem</a> (<a class="el" href="group___h_control.html#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *hctl, const <a class="el" href="group___control.html#gd91a3e04a25060e07917389417d474e4">snd_ctl_elem_id_t</a> *id)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Search an HCTL element. <a href="#gaea4f8c5973411153d3879d8b92b649a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#g0a72736d52cf9c6f646eea3077cfbfec">snd_hctl_set_callback</a> (<a class="el" href="group___h_control.html#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *hctl, <a class="el" href="group___h_control.html#gd2a3777b8415b865fc542a55dc4e1683">snd_hctl_callback_t</a> callback)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set callback function for an HCTL. <a href="#g0a72736d52cf9c6f646eea3077cfbfec"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gec91df50c9cd30e91f3ad5b86232aab9">snd_hctl_set_callback_private</a> (<a class="el" href="group___h_control.html#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *hctl, void *data)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set callback private value for an HCTL. <a href="#gec91df50c9cd30e91f3ad5b86232aab9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#g697a70d7df827aa6cc298d93cf4398b8">snd_hctl_get_callback_private</a> (<a class="el" href="group___h_control.html#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *hctl)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get callback private value for an HCTL. <a href="#g697a70d7df827aa6cc298d93cf4398b8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gd54300516a07b8af54822379445f9b5f">snd_hctl_load</a> (<a class="el" href="group___h_control.html#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *hctl)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Load an HCTL with all elements and sort them. <a href="#gd54300516a07b8af54822379445f9b5f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#g132fb54d9a2fad895b759e9c021a1876">snd_hctl_free</a> (<a class="el" href="group___h_control.html#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *hctl)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">free HCTL loaded elements <a href="#g132fb54d9a2fad895b759e9c021a1876"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#g29fb13d57d7b49787356854a2775fd15">snd_hctl_handle_events</a> (<a class="el" href="group___h_control.html#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *hctl)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Handle pending HCTL events invoking callbacks. <a href="#g29fb13d57d7b49787356854a2775fd15"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#ge6a7aeace096cae6e5e06e1ca03c4b03">snd_hctl_name</a> (<a class="el" href="group___h_control.html#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *hctl)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get identifier of HCTL handle <a href="#ge6a7aeace096cae6e5e06e1ca03c4b03"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gd004eac11730eae51ed0e73ce52440b9">snd_hctl_wait</a> (<a class="el" href="group___h_control.html#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *hctl, int timeout)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Wait for a HCTL to become ready (i.e. at least one event pending). <a href="#gd004eac11730eae51ed0e73ce52440b9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group___control.html#g6fef7f4892f9960f41ead15ef8994aa0">snd_ctl_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gfb3a699a585c1c2422335ad5cf61144d">snd_hctl_ctl</a> (<a class="el" href="group___h_control.html#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *hctl)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a ctl handle associated to the given hctl handle. <a href="#gfb3a699a585c1c2422335ad5cf61144d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gc51ed1cc133bebda16a49f06e5e41850">snd_hctl_elem_next</a> (<a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *elem)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get next HCTL element <a href="#gc51ed1cc133bebda16a49f06e5e41850"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gad295580da4a571a2cedd3cc6853e0ce">snd_hctl_elem_prev</a> (<a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *elem)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get previous HCTL element <a href="#gad295580da4a571a2cedd3cc6853e0ce"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#g9209d6db8151c96f5b6f885c59681902">snd_hctl_elem_info</a> (<a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *elem, <a class="el" href="group___control.html#g193d353c937d7b639784d4cd7c7005d7">snd_ctl_elem_info_t</a> *info)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get information for an HCTL element. <a href="#g9209d6db8151c96f5b6f885c59681902"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#g87181ff60195da9a3b6920305a3b8cc7">snd_hctl_elem_read</a> (<a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *elem, <a class="el" href="group___control.html#gdd89a5786a02a3f42d579c064c15221c">snd_ctl_elem_value_t</a> *value)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get value for an HCTL element. <a href="#g87181ff60195da9a3b6920305a3b8cc7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#g881a1bbb1e95b7bcadc5c2a88124c3d1">snd_hctl_elem_write</a> (<a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *elem, <a class="el" href="group___control.html#gdd89a5786a02a3f42d579c064c15221c">snd_ctl_elem_value_t</a> *value)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set value for an HCTL element. <a href="#g881a1bbb1e95b7bcadc5c2a88124c3d1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#g6a44fb433d3c63707955d20bb41d0318">snd_hctl_elem_tlv_read</a> (<a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *elem, unsigned int *tlv, unsigned int tlv_size)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get TLV value for an HCTL element. <a href="#g6a44fb433d3c63707955d20bb41d0318"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#gdc6eb7c9d8f9805a9ef29207b4725091">snd_hctl_elem_tlv_write</a> (<a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *elem, const unsigned int *tlv)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set TLV value for an HCTL element. <a href="#gdc6eb7c9d8f9805a9ef29207b4725091"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#g74d3d0a789d1474cbedc00fb8a9ddd09">snd_hctl_elem_tlv_command</a> (<a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *elem, const unsigned int *tlv)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set TLV value for an HCTL element. <a href="#g74d3d0a789d1474cbedc00fb8a9ddd09"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group___h_control.html#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#g5104191701225836dc328e8fcf73af48">snd_hctl_elem_get_hctl</a> (<a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *elem)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get HCTL handle for an HCTL element. <a href="#g5104191701225836dc328e8fcf73af48"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#g79600e6cc630d6a8ef82712e393eecae">snd_hctl_elem_get_id</a> (const <a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *obj, <a class="el" href="group___control.html#gd91a3e04a25060e07917389417d474e4">snd_ctl_elem_id_t</a> *ptr)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get CTL element identifier of a CTL element id/value. <a href="#g79600e6cc630d6a8ef82712e393eecae"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#g4ace515792dba3f8097e1ff6ec5eb4b6">snd_hctl_elem_get_numid</a> (const <a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *obj)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get element numeric identifier of a CTL element id/value. <a href="#g4ace515792dba3f8097e1ff6ec5eb4b6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group___control.html#gefabc042466e044251ea9990c94d46a6">snd_ctl_elem_iface_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#g6f5f0bdb32cdd07e076bbe643e2f67dd">snd_hctl_elem_get_interface</a> (const <a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *obj)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get interface part of CTL element identifier of a CTL element id/value. <a href="#g6f5f0bdb32cdd07e076bbe643e2f67dd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#g8fca1327e160099e8817af29efb5a7cf">snd_hctl_elem_get_device</a> (const <a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *obj)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get device part of CTL element identifier of a CTL element id/value. <a href="#g8fca1327e160099e8817af29efb5a7cf"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#g9e628e5684cb29696cf3fff46d8dde94">snd_hctl_elem_get_subdevice</a> (const <a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *obj)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get subdevice part of CTL element identifier of a CTL element id/value. <a href="#g9e628e5684cb29696cf3fff46d8dde94"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#g6253a88d2c65788e50c8b899777d8234">snd_hctl_elem_get_name</a> (const <a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *obj)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get name part of CTL element identifier of a CTL element id/value. <a href="#g6253a88d2c65788e50c8b899777d8234"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#g9957521413559538da34de095c58bd98">snd_hctl_elem_get_index</a> (const <a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *obj)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get index part of CTL element identifier of a CTL element id/value. <a href="#g9957521413559538da34de095c58bd98"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#g65e8a49c63d62f602c73f02dd2677047">snd_hctl_elem_set_callback</a> (<a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *obj, <a class="el" href="group___h_control.html#gf24db6bd9301b4a2ded15c57c2412a46">snd_hctl_elem_callback_t</a> val)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set callback function for an HCTL element. <a href="#g65e8a49c63d62f602c73f02dd2677047"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#g686c413c14c3eab407b15774ae79787f">snd_hctl_elem_get_callback_private</a> (const <a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *obj)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get callback private value for an HCTL element. <a href="#g686c413c14c3eab407b15774ae79787f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___h_control.html#g473abc9a6f45d847e4c227b341ead3aa">snd_hctl_elem_set_callback_private</a> (<a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *obj, void *val)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set callback private value for an HCTL element. <a href="#g473abc9a6f45d847e4c227b341ead3aa"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
The high level control interface. See <a class="el" href="hcontrol.html">High level control interface</a> page for more details. <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="gd2a3777b8415b865fc542a55dc4e1683"></a><!-- doxytag: member="control.h::snd_hctl_callback_t" ref="gd2a3777b8415b865fc542a55dc4e1683" 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#gd2a3777b8415b865fc542a55dc4e1683">snd_hctl_callback_t</a>(<a class="el" href="group___h_control.html#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *hctl, unsigned int mask, <a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *elem) </td>
</tr>
</table>
</div>
<div class="memdoc">

<p>
HCTL callback function.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>hctl</em>&nbsp;</td><td>HCTL handle </td></tr>
<tr><td valign="top"></td><td valign="top"><em>mask</em>&nbsp;</td><td>event mask </td></tr>
<tr><td valign="top"></td><td valign="top"><em>elem</em>&nbsp;</td><td>related HCTL element (if any) </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge14562fff3a229aa20ddd4ff43996197"></a><!-- doxytag: member="control.h::snd_hctl_compare_t" ref="ge14562fff3a229aa20ddd4ff43996197" 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#ge14562fff3a229aa20ddd4ff43996197">snd_hctl_compare_t</a>(const <a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *e1, const <a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *e2) </td>
</tr>
</table>
</div>
<div class="memdoc">

<p>
Compare function for sorting HCTL elements.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>e1</em>&nbsp;</td><td>First element </td></tr>
<tr><td valign="top"></td><td valign="top"><em>e2</em>&nbsp;</td><td>Second element </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>-1 if e1 &lt; e2, 0 if e1 == e2, 1 if e1 &gt; e2 </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf24db6bd9301b4a2ded15c57c2412a46"></a><!-- doxytag: member="control.h::snd_hctl_elem_callback_t" ref="gf24db6bd9301b4a2ded15c57c2412a46" 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#gf24db6bd9301b4a2ded15c57c2412a46">snd_hctl_elem_callback_t</a>(<a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *elem, unsigned int mask) </td>
</tr>
</table>
</div>
<div class="memdoc">

<p>
HCTL element callback function.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>elem</em>&nbsp;</td><td>HCTL element </td></tr>
<tr><td valign="top"></td><td valign="top"><em>mask</em>&nbsp;</td><td>event mask </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code </dd></dl>

</div>
</div><p>
<a class="anchor" name="gca792dcc655dc5caf7fd1f75ccc3f3e8"></a><!-- doxytag: member="control.h::snd_hctl_elem_t" ref="gca792dcc655dc5caf7fd1f75ccc3f3e8" 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#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> </td>
</tr>
</table>
</div>
<div class="memdoc">

<p>
HCTL element handle
</div>
</div><p>
<a class="anchor" name="g026390ac507385d40b36850d5dfafcbc"></a><!-- doxytag: member="control.h::snd_hctl_t" ref="g026390ac507385d40b36850d5dfafcbc" 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#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> </td>
</tr>
</table>
</div>
<div class="memdoc">

<p>
HCTL handle
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g274c61c5b0180cd622ba44c1e47cc54d"></a><!-- doxytag: member="control.h::snd_hctl_close" ref="g274c61c5b0180cd622ba44c1e47cc54d" 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#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *&nbsp;</td>
<td class="paramname"> <em>hctl</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<p>
close HCTL handle
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>hctl</em>&nbsp;</td><td>HCTL handle </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code</dd></dl>
Closes the specified HCTL handle and frees all associated resources.
</div>
</div><p>
<a class="anchor" name="g486e2c4107f251e678c90c1d094acdb2"></a><!-- doxytag: member="control.h::snd_hctl_compare_fast" ref="g486e2c4107f251e678c90c1d094acdb2" 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#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *&nbsp;</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#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *&nbsp;</td>
<td class="paramname"> <em>c2</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></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#g8072511c5c69386541a2aa67a5776bc3">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"></td><td valign="top"><em>c1</em>&nbsp;</td><td>First HCTL element </td></tr>
<tr><td valign="top"></td><td valign="top"><em>c2</em>&nbsp;</td><td>Second HCTL element </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>-1 if c1 &lt; c2, 0 if c1 == c2, 1 if c1 &gt; c2 </dd></dl>

</div>
</div><p>
<a class="anchor" name="gfb3a699a585c1c2422335ad5cf61144d"></a><!-- doxytag: member="control.h::snd_hctl_ctl" ref="gfb3a699a585c1c2422335ad5cf61144d" 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#g6fef7f4892f9960f41ead15ef8994aa0">snd_ctl_t</a>* snd_hctl_ctl </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___h_control.html#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *&nbsp;</td>
<td class="paramname"> <em>hctl</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<p>
Get a ctl handle associated to the given hctl handle.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>hctl</em>&nbsp;</td><td>HCTL handle </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a ctl handle otherwise NULL </dd></dl>

</div>
</div><p>
<a class="anchor" name="g686c413c14c3eab407b15774ae79787f"></a><!-- doxytag: member="control.h::snd_hctl_elem_get_callback_private" ref="g686c413c14c3eab407b15774ae79787f" 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#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *&nbsp;</td>
<td class="paramname"> <em>obj</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<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"></td><td valign="top"><em>obj</em>&nbsp;</td><td>HCTL element </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>callback private value </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8fca1327e160099e8817af29efb5a7cf"></a><!-- doxytag: member="control.h::snd_hctl_elem_get_device" ref="g8fca1327e160099e8817af29efb5a7cf" 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#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *&nbsp;</td>
<td class="paramname"> <em>obj</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<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"></td><td valign="top"><em>obj</em>&nbsp;</td><td>CTL element id/value </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>device part of element identifier </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5104191701225836dc328e8fcf73af48"></a><!-- doxytag: member="control.h::snd_hctl_elem_get_hctl" ref="g5104191701225836dc328e8fcf73af48" 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#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a>* snd_hctl_elem_get_hctl </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *&nbsp;</td>
<td class="paramname"> <em>elem</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<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"></td><td valign="top"><em>elem</em>&nbsp;</td><td>HCTL element </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>HCTL handle </dd></dl>

</div>
</div><p>
<a class="anchor" name="g79600e6cc630d6a8ef82712e393eecae"></a><!-- doxytag: member="control.h::snd_hctl_elem_get_id" ref="g79600e6cc630d6a8ef82712e393eecae" 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#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *&nbsp;</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#gd91a3e04a25060e07917389417d474e4">snd_ctl_elem_id_t</a> *&nbsp;</td>
<td class="paramname"> <em>ptr</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<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"></td><td valign="top"><em>obj</em>&nbsp;</td><td>CTL element id/value </td></tr>
<tr><td valign="top"></td><td valign="top"><em>ptr</em>&nbsp;</td><td>Pointer to returned CTL element identifier </td></tr>
</table>
</dl>

</div>
</div><p>
<a class="anchor" name="g9957521413559538da34de095c58bd98"></a><!-- doxytag: member="control.h::snd_hctl_elem_get_index" ref="g9957521413559538da34de095c58bd98" 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#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *&nbsp;</td>
<td class="paramname"> <em>obj</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<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"></td><td valign="top"><em>obj</em>&nbsp;</td><td>CTL element id/value </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>index part of element identifier </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6f5f0bdb32cdd07e076bbe643e2f67dd"></a><!-- doxytag: member="control.h::snd_hctl_elem_get_interface" ref="g6f5f0bdb32cdd07e076bbe643e2f67dd" 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#gefabc042466e044251ea9990c94d46a6">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#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *&nbsp;</td>
<td class="paramname"> <em>obj</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<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"></td><td valign="top"><em>obj</em>&nbsp;</td><td>CTL element id/value </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>interface part of element identifier </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6253a88d2c65788e50c8b899777d8234"></a><!-- doxytag: member="control.h::snd_hctl_elem_get_name" ref="g6253a88d2c65788e50c8b899777d8234" 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#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *&nbsp;</td>
<td class="paramname"> <em>obj</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<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"></td><td valign="top"><em>obj</em>&nbsp;</td><td>CTL element id/value </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>name part of element identifier </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4ace515792dba3f8097e1ff6ec5eb4b6"></a><!-- doxytag: member="control.h::snd_hctl_elem_get_numid" ref="g4ace515792dba3f8097e1ff6ec5eb4b6" 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#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *&nbsp;</td>
<td class="paramname"> <em>obj</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<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"></td><td valign="top"><em>obj</em>&nbsp;</td><td>CTL element id/value </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>element numeric identifier </dd></dl>

</div>
</div><p>
<a class="anchor" name="g9e628e5684cb29696cf3fff46d8dde94"></a><!-- doxytag: member="control.h::snd_hctl_elem_get_subdevice" ref="g9e628e5684cb29696cf3fff46d8dde94" 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#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *&nbsp;</td>
<td class="paramname"> <em>obj</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<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"></td><td valign="top"><em>obj</em>&nbsp;</td><td>CTL element id/value </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>subdevice part of element identifier </dd></dl>

</div>
</div><p>
<a class="anchor" name="g9209d6db8151c96f5b6f885c59681902"></a><!-- doxytag: member="control.h::snd_hctl_elem_info" ref="g9209d6db8151c96f5b6f885c59681902" 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#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *&nbsp;</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#g193d353c937d7b639784d4cd7c7005d7">snd_ctl_elem_info_t</a> *&nbsp;</td>
<td class="paramname"> <em>info</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<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"></td><td valign="top"><em>elem</em>&nbsp;</td><td>HCTL element </td></tr>
<tr><td valign="top"></td><td valign="top"><em>info</em>&nbsp;</td><td>HCTL element information </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 otherwise a negative error code on failure </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc51ed1cc133bebda16a49f06e5e41850"></a><!-- doxytag: member="control.h::snd_hctl_elem_next" ref="gc51ed1cc133bebda16a49f06e5e41850" 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#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a>* snd_hctl_elem_next </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *&nbsp;</td>
<td class="paramname"> <em>elem</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<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"></td><td valign="top"><em>elem</em>&nbsp;</td><td>HCTL element </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to next element </dd></dl>

</div>
</div><p>
<a class="anchor" name="gad295580da4a571a2cedd3cc6853e0ce"></a><!-- doxytag: member="control.h::snd_hctl_elem_prev" ref="gad295580da4a571a2cedd3cc6853e0ce" 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#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a>* snd_hctl_elem_prev </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *&nbsp;</td>
<td class="paramname"> <em>elem</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<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"></td><td valign="top"><em>elem</em>&nbsp;</td><td>HCTL element </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to previous element </dd></dl>

</div>
</div><p>
<a class="anchor" name="g87181ff60195da9a3b6920305a3b8cc7"></a><!-- doxytag: member="control.h::snd_hctl_elem_read" ref="g87181ff60195da9a3b6920305a3b8cc7" 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#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *&nbsp;</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#gdd89a5786a02a3f42d579c064c15221c">snd_ctl_elem_value_t</a> *&nbsp;</td>
<td class="paramname"> <em>value</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<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"></td><td valign="top"><em>elem</em>&nbsp;</td><td>HCTL element </td></tr>
<tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>HCTL element value </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 otherwise a negative error code on failure </dd></dl>

</div>
</div><p>
<a class="anchor" name="g65e8a49c63d62f602c73f02dd2677047"></a><!-- doxytag: member="control.h::snd_hctl_elem_set_callback" ref="g65e8a49c63d62f602c73f02dd2677047" 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#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *&nbsp;</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#gf24db6bd9301b4a2ded15c57c2412a46">snd_hctl_elem_callback_t</a>&nbsp;</td>
<td class="paramname"> <em>val</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<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"></td><td valign="top"><em>obj</em>&nbsp;</td><td>HCTL element </td></tr>
<tr><td valign="top"></td><td valign="top"><em>val</em>&nbsp;</td><td>callback function </td></tr>
</table>
</dl>

</div>
</div><p>
<a class="anchor" name="g473abc9a6f45d847e4c227b341ead3aa"></a><!-- doxytag: member="control.h::snd_hctl_elem_set_callback_private" ref="g473abc9a6f45d847e4c227b341ead3aa" 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#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *&nbsp;</td>
<td class="paramname"> <em>obj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&nbsp;</td>
<td class="paramname"> <em>val</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<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"></td><td valign="top"><em>obj</em>&nbsp;</td><td>HCTL element </td></tr>
<tr><td valign="top"></td><td valign="top"><em>val</em>&nbsp;</td><td>callback private value </td></tr>
</table>
</dl>

</div>
</div><p>
<a class="anchor" name="g74d3d0a789d1474cbedc00fb8a9ddd09"></a><!-- doxytag: member="control.h::snd_hctl_elem_tlv_command" ref="g74d3d0a789d1474cbedc00fb8a9ddd09" 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#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *&nbsp;</td>
<td class="paramname"> <em>elem</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const unsigned int *&nbsp;</td>
<td class="paramname"> <em>tlv</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<p>
Set TLV 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"></td><td valign="top"><em>elem</em>&nbsp;</td><td>HCTL element </td></tr>
<tr><td valign="top"></td><td valign="top"><em>tlv</em>&nbsp;</td><td>TLV array for value </td></tr>
</table>
</dl>
<dl compact><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>&nbsp;</td><td>on success </td></tr>
<tr><td valign="top"></td><td valign="top"><em>&gt;1</em>&nbsp;</td><td>on success when value was changed </td></tr>
<tr><td valign="top"></td><td valign="top"><em>&lt;0</em>&nbsp;</td><td>a negative error code on failure </td></tr>
</table>
</dl>

</div>
</div><p>
<a class="anchor" name="g6a44fb433d3c63707955d20bb41d0318"></a><!-- doxytag: member="control.h::snd_hctl_elem_tlv_read" ref="g6a44fb433d3c63707955d20bb41d0318" 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#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *&nbsp;</td>
<td class="paramname"> <em>elem</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int *&nbsp;</td>
<td class="paramname"> <em>tlv</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&nbsp;</td>
<td class="paramname"> <em>tlv_size</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<p>
Get TLV 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"></td><td valign="top"><em>elem</em>&nbsp;</td><td>HCTL element </td></tr>
<tr><td valign="top"></td><td valign="top"><em>tlv</em>&nbsp;</td><td>TLV array for value </td></tr>
<tr><td valign="top"></td><td valign="top"><em>tlv_size</em>&nbsp;</td><td>size of TLV array in bytes </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 otherwise a negative error code on failure </dd></dl>

</div>
</div><p>
<a class="anchor" name="gdc6eb7c9d8f9805a9ef29207b4725091"></a><!-- doxytag: member="control.h::snd_hctl_elem_tlv_write" ref="gdc6eb7c9d8f9805a9ef29207b4725091" 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#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *&nbsp;</td>
<td class="paramname"> <em>elem</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const unsigned int *&nbsp;</td>
<td class="paramname"> <em>tlv</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<p>
Set TLV 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"></td><td valign="top"><em>elem</em>&nbsp;</td><td>HCTL element </td></tr>
<tr><td valign="top"></td><td valign="top"><em>tlv</em>&nbsp;</td><td>TLV array for value </td></tr>
</table>
</dl>
<dl compact><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>&nbsp;</td><td>on success </td></tr>
<tr><td valign="top"></td><td valign="top"><em>&gt;1</em>&nbsp;</td><td>on success when value was changed </td></tr>
<tr><td valign="top"></td><td valign="top"><em>&lt;0</em>&nbsp;</td><td>a negative error code on failure </td></tr>
</table>
</dl>

</div>
</div><p>
<a class="anchor" name="g881a1bbb1e95b7bcadc5c2a88124c3d1"></a><!-- doxytag: member="control.h::snd_hctl_elem_write" ref="g881a1bbb1e95b7bcadc5c2a88124c3d1" 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#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *&nbsp;</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#gdd89a5786a02a3f42d579c064c15221c">snd_ctl_elem_value_t</a> *&nbsp;</td>
<td class="paramname"> <em>value</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<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"></td><td valign="top"><em>elem</em>&nbsp;</td><td>HCTL element </td></tr>
<tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>HCTL element value </td></tr>
</table>
</dl>
<dl compact><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>&nbsp;</td><td>on success </td></tr>
<tr><td valign="top"></td><td valign="top"><em>&gt;1</em>&nbsp;</td><td>on success when value was changed </td></tr>
<tr><td valign="top"></td><td valign="top"><em>&lt;0</em>&nbsp;</td><td>a negative error code on failure </td></tr>
</table>
</dl>

</div>
</div><p>
<a class="anchor" name="gaea4f8c5973411153d3879d8b92b649a"></a><!-- doxytag: member="control.h::snd_hctl_find_elem" ref="gaea4f8c5973411153d3879d8b92b649a" 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#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a>* snd_hctl_find_elem </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___h_control.html#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *&nbsp;</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#gd91a3e04a25060e07917389417d474e4">snd_ctl_elem_id_t</a> *&nbsp;</td>
<td class="paramname"> <em>id</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<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"></td><td valign="top"><em>hctl</em>&nbsp;</td><td>HCTL handle </td></tr>
<tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>Element identifier </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to found HCTL element or NULL if it does not exists </dd></dl>

</div>
</div><p>
<a class="anchor" name="gccec39864a07a38fc6d3733d79c97326"></a><!-- doxytag: member="control.h::snd_hctl_first_elem" ref="gccec39864a07a38fc6d3733d79c97326" 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#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a>* snd_hctl_first_elem </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___h_control.html#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *&nbsp;</td>
<td class="paramname"> <em>hctl</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<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"></td><td valign="top"><em>hctl</em>&nbsp;</td><td>HCTL handle </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to first element </dd></dl>

</div>
</div><p>
<a class="anchor" name="g132fb54d9a2fad895b759e9c021a1876"></a><!-- doxytag: member="control.h::snd_hctl_free" ref="g132fb54d9a2fad895b759e9c021a1876" 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#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *&nbsp;</td>
<td class="paramname"> <em>hctl</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<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"></td><td valign="top"><em>hctl</em>&nbsp;</td><td>HCTL handle </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code </dd></dl>

</div>
</div><p>
<a class="anchor" name="g697a70d7df827aa6cc298d93cf4398b8"></a><!-- doxytag: member="control.h::snd_hctl_get_callback_private" ref="g697a70d7df827aa6cc298d93cf4398b8" 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#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *&nbsp;</td>
<td class="paramname"> <em>hctl</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<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"></td><td valign="top"><em>hctl</em>&nbsp;</td><td>HCTL handle </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>callback private value </dd></dl>

</div>
</div><p>
<a class="anchor" name="g633f95d74218510e4a8119e9db6217a7"></a><!-- doxytag: member="control.h::snd_hctl_get_count" ref="g633f95d74218510e4a8119e9db6217a7" 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#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *&nbsp;</td>
<td class="paramname"> <em>hctl</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<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"></td><td valign="top"><em>hctl</em>&nbsp;</td><td>HCTL handle </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>elements count </dd></dl>

</div>
</div><p>
<a class="anchor" name="g29fb13d57d7b49787356854a2775fd15"></a><!-- doxytag: member="control.h::snd_hctl_handle_events" ref="g29fb13d57d7b49787356854a2775fd15" 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#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *&nbsp;</td>
<td class="paramname"> <em>hctl</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<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"></td><td valign="top"><em>hctl</em>&nbsp;</td><td>HCTL handle </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 otherwise a negative error code on failure </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7eead53e019008677fb65df476ee594a"></a><!-- doxytag: member="control.h::snd_hctl_last_elem" ref="g7eead53e019008677fb65df476ee594a" 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#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a>* snd_hctl_last_elem </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___h_control.html#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *&nbsp;</td>
<td class="paramname"> <em>hctl</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<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"></td><td valign="top"><em>hctl</em>&nbsp;</td><td>HCTL handle </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to last element </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd54300516a07b8af54822379445f9b5f"></a><!-- doxytag: member="control.h::snd_hctl_load" ref="gd54300516a07b8af54822379445f9b5f" 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#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *&nbsp;</td>
<td class="paramname"> <em>hctl</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<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"></td><td valign="top"><em>hctl</em>&nbsp;</td><td>HCTL handle </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge6a7aeace096cae6e5e06e1ca03c4b03"></a><!-- doxytag: member="control.h::snd_hctl_name" ref="ge6a7aeace096cae6e5e06e1ca03c4b03" 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#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *&nbsp;</td>
<td class="paramname"> <em>hctl</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<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"></td><td valign="top"><em>hctl</em>&nbsp;</td><td>HCTL handle </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>ascii identifier of HCTL handle</dd></dl>
Returns the ASCII identifier of given HCTL handle. It's the same identifier specified in <a class="el" href="group___h_control.html#g3c0db161a8a3fe1407c88731ff2c18bd">snd_hctl_open()</a>.
</div>
</div><p>
<a class="anchor" name="g35884dae3a28e37a42b2e1be98f98494"></a><!-- doxytag: member="control.h::snd_hctl_nonblock" ref="g35884dae3a28e37a42b2e1be98f98494" 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#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *&nbsp;</td>
<td class="paramname"> <em>hctl</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>nonblock</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<p>
set nonblock mode
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>hctl</em>&nbsp;</td><td>HCTL handle </td></tr>
<tr><td valign="top"></td><td valign="top"><em>nonblock</em>&nbsp;</td><td>0 = block, 1 = nonblock mode </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3c0db161a8a3fe1407c88731ff2c18bd"></a><!-- doxytag: member="control.h::snd_hctl_open" ref="g3c0db161a8a3fe1407c88731ff2c18bd" 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#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> **&nbsp;</td>
<td class="paramname"> <em>hctlp</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>mode</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<p>
Opens an HCTL.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>hctlp</em>&nbsp;</td><td>Returned HCTL handle </td></tr>
<tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>ASCII identifier of the underlying CTL handle </td></tr>
<tr><td valign="top"></td><td valign="top"><em>mode</em>&nbsp;</td><td>Open mode (see <a class="el" href="group___control.html#g5586bc148cc719502294277c91a89ff5">SND_CTL_NONBLOCK</a>, <a class="el" href="group___control.html#g65f5927f20d2ee013b69b6df7f0f4087">SND_CTL_ASYNC</a>) </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code </dd></dl>

</div>
</div><p>
<a class="anchor" name="g162a0d8274cf1795e509305f2f1c47ea"></a><!-- doxytag: member="control.h::snd_hctl_open_ctl" ref="g162a0d8274cf1795e509305f2f1c47ea" 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#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> **&nbsp;</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#g6fef7f4892f9960f41ead15ef8994aa0">snd_ctl_t</a> *&nbsp;</td>
<td class="paramname"> <em>ctl</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<p>
Opens an HCTL.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>hctlp</em>&nbsp;</td><td>Returned HCTL handle </td></tr>
<tr><td valign="top"></td><td valign="top"><em>ctl</em>&nbsp;</td><td>underlying CTL handle </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5e40e814996f9e38d2d9f13f701a7c90"></a><!-- doxytag: member="control.h::snd_hctl_poll_descriptors" ref="g5e40e814996f9e38d2d9f13f701a7c90" 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#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *&nbsp;</td>
<td class="paramname"> <em>hctl</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct pollfd *&nbsp;</td>
<td class="paramname"> <em>pfds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&nbsp;</td>
<td class="paramname"> <em>space</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<p>
get poll descriptors
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>hctl</em>&nbsp;</td><td>HCTL handle </td></tr>
<tr><td valign="top"></td><td valign="top"><em>pfds</em>&nbsp;</td><td>array of poll descriptors </td></tr>
<tr><td valign="top"></td><td valign="top"><em>space</em>&nbsp;</td><td>space in the poll descriptor array </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>count of filled descriptors </dd></dl>

</div>
</div><p>
<a class="anchor" name="gebecdf5e72ca9b58ed3fc12d1b4a8326"></a><!-- doxytag: member="control.h::snd_hctl_poll_descriptors_count" ref="gebecdf5e72ca9b58ed3fc12d1b4a8326" 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#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *&nbsp;</td>
<td class="paramname"> <em>hctl</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<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"></td><td valign="top"><em>hctl</em>&nbsp;</td><td>HCTL handle </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>count of poll descriptors </dd></dl>

</div>
</div><p>
<a class="anchor" name="g04fac06c1fc46d5a4858b2cb00b53475"></a><!-- doxytag: member="control.h::snd_hctl_poll_descriptors_revents" ref="g04fac06c1fc46d5a4858b2cb00b53475" 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#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *&nbsp;</td>
<td class="paramname"> <em>hctl</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct pollfd *&nbsp;</td>
<td class="paramname"> <em>pfds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&nbsp;</td>
<td class="paramname"> <em>nfds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned short *&nbsp;</td>
<td class="paramname"> <em>revents</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<p>
get returned events from poll descriptors
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>hctl</em>&nbsp;</td><td>HCTL handle </td></tr>
<tr><td valign="top"></td><td valign="top"><em>pfds</em>&nbsp;</td><td>array of poll descriptors </td></tr>
<tr><td valign="top"></td><td valign="top"><em>nfds</em>&nbsp;</td><td>count of poll descriptors </td></tr>
<tr><td valign="top"></td><td valign="top"><em>revents</em>&nbsp;</td><td>returned events </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>zero if success, otherwise a negative error code </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0a72736d52cf9c6f646eea3077cfbfec"></a><!-- doxytag: member="control.h::snd_hctl_set_callback" ref="g0a72736d52cf9c6f646eea3077cfbfec" 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#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *&nbsp;</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#gd2a3777b8415b865fc542a55dc4e1683">snd_hctl_callback_t</a>&nbsp;</td>
<td class="paramname"> <em>callback</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<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"></td><td valign="top"><em>hctl</em>&nbsp;</td><td>HCTL handle </td></tr>
<tr><td valign="top"></td><td valign="top"><em>callback</em>&nbsp;</td><td>callback function </td></tr>
</table>
</dl>

</div>
</div><p>
<a class="anchor" name="gec91df50c9cd30e91f3ad5b86232aab9"></a><!-- doxytag: member="control.h::snd_hctl_set_callback_private" ref="gec91df50c9cd30e91f3ad5b86232aab9" 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#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *&nbsp;</td>
<td class="paramname"> <em>hctl</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&nbsp;</td>
<td class="paramname"> <em>callback_private</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<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"></td><td valign="top"><em>hctl</em>&nbsp;</td><td>HCTL handle </td></tr>
<tr><td valign="top"></td><td valign="top"><em>callback_private</em>&nbsp;</td><td>callback private value </td></tr>
</table>
</dl>

</div>
</div><p>
<a class="anchor" name="g8072511c5c69386541a2aa67a5776bc3"></a><!-- doxytag: member="control.h::snd_hctl_set_compare" ref="g8072511c5c69386541a2aa67a5776bc3" 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#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *&nbsp;</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#ge14562fff3a229aa20ddd4ff43996197">snd_hctl_compare_t</a>&nbsp;</td>
<td class="paramname"> <em>compare</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<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"></td><td valign="top"><em>hctl</em>&nbsp;</td><td>HCTL handle </td></tr>
<tr><td valign="top"></td><td valign="top"><em>compare</em>&nbsp;</td><td>Element compare function </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd004eac11730eae51ed0e73ce52440b9"></a><!-- doxytag: member="control.h::snd_hctl_wait" ref="gd004eac11730eae51ed0e73ce52440b9" 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#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *&nbsp;</td>
<td class="paramname"> <em>hctl</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>timeout</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">

<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"></td><td valign="top"><em>hctl</em>&nbsp;</td><td>HCTL handle </td></tr>
<tr><td valign="top"></td><td valign="top"><em>timeout</em>&nbsp;</td><td>maximum time in milliseconds to wait </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a positive value on success otherwise a negative error code </dd></dl>
<dl compact><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>&nbsp;</td><td>timeout occurred </td></tr>
<tr><td valign="top"></td><td valign="top"><em>1</em>&nbsp;</td><td>an event is pending </td></tr>
</table>
</dl>

</div>
</div><p>
<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 16 16:28:22 2009 for ALSA project - the C library reference by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.0 </small></address>
</body>
</html>
(1-1/3)