Sophie

Sophie

distrib > Mandriva > 2010.1 > i586 > by-pkgid > 34546d63baef3ab2a7675f37737b66ab > files > 77

libalsa2-docs-1.0.23-2.1mdv2010.1.i586.rpm

<!-- 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: Mixer 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&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</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="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>Mixer Interface</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Modules</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___simple_mixer.html">Simple Mixer Interface</a></td></tr>
<tr><td colspan="2"><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga040501051e4e4f8667caf0e89328702b">snd_mixer_class_alloca</a>(ptr)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">allocate an invalid <a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> using standard alloca  <a href="#ga040501051e4e4f8667caf0e89328702b"></a><br/></td></tr>
<tr><td colspan="2"><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct _snd_mixer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct _snd_mixer_class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct _snd_mixer_elem&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga9e108905ed4fa236faa49f003c002d95">snd_mixer_callback_t</a> )(<a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *ctl, unsigned int mask, <a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *elem)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Mixer callback function.  <a href="#ga9e108905ed4fa236faa49f003c002d95"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#gabb270fe0068703dee2df0caffa69498f">snd_mixer_elem_callback_t</a> )(<a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *elem, unsigned int mask)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Mixer element callback function.  <a href="#gabb270fe0068703dee2df0caffa69498f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#gae133dc10af535ebba0c717c23889f619">snd_mixer_compare_t</a> )(const <a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *e1, const <a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *e2)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare function for sorting mixer elements.  <a href="#gae133dc10af535ebba0c717c23889f619"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#gacad1f279dc4c9dcd259293b3b38196ef">snd_mixer_event_t</a> )(<a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> *class_, unsigned int mask, <a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *helem, <a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *melem)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Event callback for the mixer class.  <a href="#gacad1f279dc4c9dcd259293b3b38196ef"></a><br/></td></tr>
<tr><td colspan="2"><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga18a15493e66cc90ab851e49161d28b4c">snd_mixer_elem_type_t</a> { <b>SND_MIXER_ELEM_SIMPLE</b>, 
<b>SND_MIXER_ELEM_LAST</b> =  SND_MIXER_ELEM_SIMPLE
 }</td></tr>
<tr><td colspan="2"><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga240cfebce7d68f22875d76e99cf19394">snd_mixer_open</a> (<a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> **mixer, int mode)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Opens an empty mixer.  <a href="#ga240cfebce7d68f22875d76e99cf19394"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga9deea3f628bf737001d968620cfd3b1a">snd_mixer_close</a> (<a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *mixer)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Close a mixer and free all related resources.  <a href="#ga9deea3f628bf737001d968620cfd3b1a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#gaffccf51ddf8ecdc357b216cb979a2318">snd_mixer_first_elem</a> (<a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *mixer)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get first element for a mixer  <a href="#gaffccf51ddf8ecdc357b216cb979a2318"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga51121b263ea3d3ee9367aabfd338ef11">snd_mixer_last_elem</a> (<a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *mixer)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get last element for a mixer  <a href="#ga51121b263ea3d3ee9367aabfd338ef11"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#gae0cfb6b50ec2493281107b0649f87cb8">snd_mixer_handle_events</a> (<a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *mixer)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Handle pending mixer events invoking callbacks.  <a href="#gae0cfb6b50ec2493281107b0649f87cb8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga8c36e99e3d2ab0cb76a5acd203face45">snd_mixer_attach</a> (<a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *mixer, const char *name)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Attach an HCTL specified with the CTL device name to an opened mixer.  <a href="#ga8c36e99e3d2ab0cb76a5acd203face45"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga01e5feeb925addfc245ce81c037b1397">snd_mixer_attach_hctl</a> (<a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *mixer, <a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> *hctl)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Attach an HCTL to an opened mixer.  <a href="#ga01e5feeb925addfc245ce81c037b1397"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga99ca1c15d46d5f194a216d5e0a8e9229">snd_mixer_detach</a> (<a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *mixer, const char *name)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Detach a previously attached HCTL to an opened mixer freeing all related resources.  <a href="#ga99ca1c15d46d5f194a216d5e0a8e9229"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga63b6f8183e08a2b3e6bb83638828e8df">snd_mixer_detach_hctl</a> (<a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *mixer, <a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> *hctl)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Detach a previously attached HCTL to an opened mixer freeing all related resources.  <a href="#ga63b6f8183e08a2b3e6bb83638828e8df"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#gafbbaedd662ea57e573e09f39ca8b247c">snd_mixer_get_hctl</a> (<a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *mixer, const char *name, <a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> **hctl)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtain a HCTL pointer associated to given name.  <a href="#gafbbaedd662ea57e573e09f39ca8b247c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#gab3ee14782a19e6d62acbdcdb5f9f7786">snd_mixer_poll_descriptors_count</a> (<a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *mixer)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get count of poll descriptors for mixer handle  <a href="#gab3ee14782a19e6d62acbdcdb5f9f7786"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga07f7bc33587907988aaffc03ce72367e">snd_mixer_poll_descriptors</a> (<a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *mixer, struct pollfd *pfds, unsigned int space)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get poll descriptors  <a href="#ga07f7bc33587907988aaffc03ce72367e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#gab26686311756ee3c66e05766227df818">snd_mixer_poll_descriptors_revents</a> (<a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *mixer, 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="#gab26686311756ee3c66e05766227df818"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga24b6077528d04cb9fca072b3ae109aef">snd_mixer_load</a> (<a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *mixer)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Load a mixer elements.  <a href="#ga24b6077528d04cb9fca072b3ae109aef"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga93a71c28e82c04e4c732703e309910fd">snd_mixer_free</a> (<a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *mixer)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Unload all mixer elements and free all related resources.  <a href="#ga93a71c28e82c04e4c732703e309910fd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga072846849f4bc2058336fd6601f18a15">snd_mixer_wait</a> (<a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *mixer, int timeout)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Wait for a mixer to become ready (i.e. at least one event pending).  <a href="#ga072846849f4bc2058336fd6601f18a15"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#gac7e1bbe5d5b69a6ee67d5bced6325a67">snd_mixer_set_compare</a> (<a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *mixer, <a class="el" href="group___mixer.html#gae133dc10af535ebba0c717c23889f619">snd_mixer_compare_t</a> msort)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Change mixer compare function and reorder elements.  <a href="#gac7e1bbe5d5b69a6ee67d5bced6325a67"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga691a593ea0a32f9535fff83b00a0a574">snd_mixer_set_callback</a> (<a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *obj, <a class="el" href="group___mixer.html#ga9e108905ed4fa236faa49f003c002d95">snd_mixer_callback_t</a> val)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set callback function for a mixer.  <a href="#ga691a593ea0a32f9535fff83b00a0a574"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga9cfc303fa34eb234efeb52151838f88b">snd_mixer_get_callback_private</a> (const <a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *obj)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get callback private value for a mixer.  <a href="#ga9cfc303fa34eb234efeb52151838f88b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#gab91fc99ac65c866e660d4d8be0cb3e17">snd_mixer_set_callback_private</a> (<a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *obj, void *val)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set callback private value for a mixer.  <a href="#gab91fc99ac65c866e660d4d8be0cb3e17"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga3447c190c69cfce4c52df4ad3300e319">snd_mixer_get_count</a> (const <a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *obj)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get elements count for a mixer.  <a href="#ga3447c190c69cfce4c52df4ad3300e319"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga6a7bf3805fbbfc3f6f8243e91fbce5f6">snd_mixer_class_unregister</a> (<a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> *clss)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Unregister mixer element class and remove all its elements.  <a href="#ga6a7bf3805fbbfc3f6f8243e91fbce5f6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga68254228ef108122b8178087ea0fcc16">snd_mixer_elem_next</a> (<a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *elem)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get next mixer element  <a href="#ga68254228ef108122b8178087ea0fcc16"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#gaaf9a9dfe1d52f40df2be517621f9474a">snd_mixer_elem_prev</a> (<a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *elem)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get previous mixer element  <a href="#gaaf9a9dfe1d52f40df2be517621f9474a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga01e1fd766a313ce513f561bd03c98317">snd_mixer_elem_set_callback</a> (<a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *obj, <a class="el" href="group___mixer.html#gabb270fe0068703dee2df0caffa69498f">snd_mixer_elem_callback_t</a> val)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set callback function for a mixer element.  <a href="#ga01e1fd766a313ce513f561bd03c98317"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga78c51ad2e60617137e47ad1d58b45916">snd_mixer_elem_get_callback_private</a> (const <a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *obj)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get callback private value for a mixer element.  <a href="#ga78c51ad2e60617137e47ad1d58b45916"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga4fb4ea11326c1cb1fdbf5dac0444507e">snd_mixer_elem_set_callback_private</a> (<a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *obj, void *val)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set callback private value for a mixer element.  <a href="#ga4fb4ea11326c1cb1fdbf5dac0444507e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___mixer.html#ga18a15493e66cc90ab851e49161d28b4c">snd_mixer_elem_type_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga1083ba441bb93da13f79bc0cda226ea3">snd_mixer_elem_get_type</a> (const <a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *obj)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get type for a mixer element.  <a href="#ga1083ba441bb93da13f79bc0cda226ea3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga595cbd9394f85f9af4a6b30e748e3930">snd_mixer_class_register</a> (<a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> *class_, <a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *mixer)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Register mixer element class.  <a href="#ga595cbd9394f85f9af4a6b30e748e3930"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga226cf962e72b6132fd61cbd434b28941">snd_mixer_elem_new</a> (<a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> **elem, <a class="el" href="group___mixer.html#ga18a15493e66cc90ab851e49161d28b4c">snd_mixer_elem_type_t</a> type, int compare_weight, void *private_data, void(*private_free)(<a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *elem))</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Allocate a new mixer element.  <a href="#ga226cf962e72b6132fd61cbd434b28941"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga3b0e73914256f2125d2b7bb48d602457">snd_mixer_elem_add</a> (<a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *elem, <a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> *class_)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add an element for a registered mixer element class.  <a href="#ga3b0e73914256f2125d2b7bb48d602457"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#gacad36ead935e96f75fe44cf8dd4afa2a">snd_mixer_elem_remove</a> (<a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *elem)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove a mixer element.  <a href="#gacad36ead935e96f75fe44cf8dd4afa2a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga40d8bf56621085d5ed5a7e92ad067e03">snd_mixer_elem_free</a> (<a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *elem)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Free a mixer element.  <a href="#ga40d8bf56621085d5ed5a7e92ad067e03"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#gae4a32f9d571201a2bf33a65340dc9afd">snd_mixer_elem_info</a> (<a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *elem)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Mixer element informations are changed.  <a href="#gae4a32f9d571201a2bf33a65340dc9afd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga0d23278769e37532f810cecf2ffffacb">snd_mixer_elem_value</a> (<a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *elem)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Mixer element values is changed.  <a href="#ga0d23278769e37532f810cecf2ffffacb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#gabe7f0255c9a981a6c73a8edf359781cc">snd_mixer_elem_attach</a> (<a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *melem, <a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *helem)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Attach an HCTL element to a mixer element.  <a href="#gabe7f0255c9a981a6c73a8edf359781cc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga7413e8f80e2e556c75c6b9fc7d0598f9">snd_mixer_elem_detach</a> (<a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *melem, <a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *helem)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Detach an HCTL element from a mixer element.  <a href="#ga7413e8f80e2e556c75c6b9fc7d0598f9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#gae0541b86ecfc094a172b4cd29bb70fd0">snd_mixer_elem_empty</a> (<a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *melem)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return true if a mixer element does not contain any HCTL elements.  <a href="#gae0541b86ecfc094a172b4cd29bb70fd0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga4cfddf235c06ae83765ecfd45c5a95d0">snd_mixer_elem_get_private</a> (const <a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *melem)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get private data associated to give mixer element.  <a href="#ga4cfddf235c06ae83765ecfd45c5a95d0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#gaa61b83017a92b67ea27a18777dcd141d">snd_mixer_class_sizeof</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get size of <a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a>  <a href="#gaa61b83017a92b67ea27a18777dcd141d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#gadc36fd49fdeccc37c41fc700d29adf39">snd_mixer_class_malloc</a> (<a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> **ptr)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">allocate an invalid <a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> using standard malloc  <a href="#gadc36fd49fdeccc37c41fc700d29adf39"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#gafef7028555b5c50b9bb072ba6d441ddb">snd_mixer_class_free</a> (<a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> *obj)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">frees a previously allocated <a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a>  <a href="#gafef7028555b5c50b9bb072ba6d441ddb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#gabaaa35c5538fec113fffdaff4cbed2fc">snd_mixer_class_copy</a> (<a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> *dst, const <a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> *src)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">copy one <a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> to another  <a href="#gabaaa35c5538fec113fffdaff4cbed2fc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga07e5edf36e361b3c1293ed14d2ef5b76">snd_mixer_class_get_mixer</a> (const <a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> *class_)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a mixer associated to given mixer class.  <a href="#ga07e5edf36e361b3c1293ed14d2ef5b76"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___mixer.html#gacad1f279dc4c9dcd259293b3b38196ef">snd_mixer_event_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga5744823b495ae331e7dd60f2abdf3589">snd_mixer_class_get_event</a> (const <a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> *class_)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get mixer event callback associated to given mixer class.  <a href="#ga5744823b495ae331e7dd60f2abdf3589"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga95b50447f32262756143cd7d9e76997c">snd_mixer_class_get_private</a> (const <a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> *class_)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get mixer private data associated to given mixer class.  <a href="#ga95b50447f32262756143cd7d9e76997c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___mixer.html#gae133dc10af535ebba0c717c23889f619">snd_mixer_compare_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#gad7182d1d18653709bf26fc53a8b1a94f">snd_mixer_class_get_compare</a> (const <a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> *class_)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get mixer compare callback associated to given mixer class.  <a href="#gad7182d1d18653709bf26fc53a8b1a94f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#gad0162769035880347ea9af0dbc518e79">snd_mixer_class_set_event</a> (<a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> *class_, <a class="el" href="group___mixer.html#gacad1f279dc4c9dcd259293b3b38196ef">snd_mixer_event_t</a> event)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set mixer event callback to given mixer class.  <a href="#gad0162769035880347ea9af0dbc518e79"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#gaf3b845bb0637fc59cacfe59ef29398d2">snd_mixer_class_set_private</a> (<a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> *class_, void *private_data)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set mixer private data to given mixer class.  <a href="#gaf3b845bb0637fc59cacfe59ef29398d2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5e45bc1b89f72f9b6d391a01343e7b04"></a><!-- doxytag: member="Mixer::snd_mixer_class_set_private_free" ref="ga5e45bc1b89f72f9b6d391a01343e7b04" args="(snd_mixer_class_t *class_, void(*private_free)(snd_mixer_class_t *class_))" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>snd_mixer_class_set_private_free</b> (<a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> *class_, void(*private_free)(<a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> *class_))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#gab389fb10998a950207001e3f8abead26">snd_mixer_class_set_compare</a> (<a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> *class_, <a class="el" href="group___mixer.html#gae133dc10af535ebba0c717c23889f619">snd_mixer_compare_t</a> compare)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set mixer compare callback to given mixer class.  <a href="#gab389fb10998a950207001e3f8abead26"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>The mixer interface. </p>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="ga040501051e4e4f8667caf0e89328702b"></a><!-- doxytag: member="mixer.h::snd_mixer_class_alloca" ref="ga040501051e4e4f8667caf0e89328702b" args="(ptr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define snd_mixer_class_alloca</td>
          <td>(</td>
          <td class="paramtype">ptr&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>allocate an invalid <a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> using standard alloca </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ptr</em>&nbsp;</td><td>returned pointer </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="ga9e108905ed4fa236faa49f003c002d95"></a><!-- doxytag: member="mixer.h::snd_mixer_callback_t" ref="ga9e108905ed4fa236faa49f003c002d95" args=")(snd_mixer_t *ctl, unsigned int mask, snd_mixer_elem_t *elem)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef int(* <a class="el" href="group___mixer.html#ga9e108905ed4fa236faa49f003c002d95">snd_mixer_callback_t</a>)(<a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *ctl, unsigned int mask, <a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *elem)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Mixer 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>mixer</em>&nbsp;</td><td>Mixer 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 mixer 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="ga51c7b205d5afc62342d9dec3ce54d11f"></a><!-- doxytag: member="mixer.h::snd_mixer_class_t" ref="ga51c7b205d5afc62342d9dec3ce54d11f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct _snd_mixer_class <a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Mixer elements class handle </p>

</div>
</div>
<a class="anchor" id="gae133dc10af535ebba0c717c23889f619"></a><!-- doxytag: member="mixer.h::snd_mixer_compare_t" ref="gae133dc10af535ebba0c717c23889f619" args=")(const snd_mixer_elem_t *e1, const snd_mixer_elem_t *e2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef int(* <a class="el" href="group___mixer.html#gae133dc10af535ebba0c717c23889f619">snd_mixer_compare_t</a>)(const <a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *e1, const <a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *e2)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Compare function for sorting mixer 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>&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>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>-1 if e1 &lt; e2, 0 if e1 == e2, 1 if e1 &gt; e2 </dd></dl>

</div>
</div>
<a class="anchor" id="gabb270fe0068703dee2df0caffa69498f"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_callback_t" ref="gabb270fe0068703dee2df0caffa69498f" args=")(snd_mixer_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___mixer.html#gabb270fe0068703dee2df0caffa69498f">snd_mixer_elem_callback_t</a>)(<a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *elem, unsigned int mask)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Mixer 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>&nbsp;</td><td>Mixer element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>mask</em>&nbsp;</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="ga9bb5eb24e4feea6c1a04c79b77938ef9"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_t" ref="ga9bb5eb24e4feea6c1a04c79b77938ef9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct _snd_mixer_elem <a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Mixer element handle </p>

</div>
</div>
<a class="anchor" id="gacad1f279dc4c9dcd259293b3b38196ef"></a><!-- doxytag: member="mixer.h::snd_mixer_event_t" ref="gacad1f279dc4c9dcd259293b3b38196ef" args=")(snd_mixer_class_t *class_, unsigned int mask, snd_hctl_elem_t *helem, snd_mixer_elem_t *melem)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef int(* <a class="el" href="group___mixer.html#gacad1f279dc4c9dcd259293b3b38196ef">snd_mixer_event_t</a>)(<a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> *class_, unsigned int mask, <a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *helem, <a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *melem)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Event callback for the mixer class. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>class_</em>&nbsp;</td><td>Mixer class </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>mask</em>&nbsp;</td><td>Event mask (SND_CTL_EVENT_*) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>helem</em>&nbsp;</td><td>HCTL element which invoked the event </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>melem</em>&nbsp;</td><td>Mixer element associated to HCTL element </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>zero if success, otherwise a negative error value </dd></dl>

</div>
</div>
<a class="anchor" id="ga34161447bc01a64f578456ed13d57e33"></a><!-- doxytag: member="mixer.h::snd_mixer_t" ref="ga34161447bc01a64f578456ed13d57e33" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct _snd_mixer <a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Mixer handle </p>

</div>
</div>
<hr/><h2>Enumeration Type Documentation</h2>
<a class="anchor" id="ga18a15493e66cc90ab851e49161d28b4c"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_type_t" ref="ga18a15493e66cc90ab851e49161d28b4c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group___mixer.html#ga18a15493e66cc90ab851e49161d28b4c">snd_mixer_elem_type_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Mixer element type </p>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga8c36e99e3d2ab0cb76a5acd203face45"></a><!-- doxytag: member="mixer.h::snd_mixer_attach" ref="ga8c36e99e3d2ab0cb76a5acd203face45" args="(snd_mixer_t *mixer, const char *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_mixer_attach </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>mixer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Attach an HCTL specified with the CTL device name to an opened mixer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mixer</em>&nbsp;</td><td>Mixer handle </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>HCTL name (see <a class="el" href="group___h_control.html#ga2a86455eaad4f2730a936d06c62cca29" title="Opens an HCTL.">snd_hctl_open</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="ga01e5feeb925addfc245ce81c037b1397"></a><!-- doxytag: member="mixer.h::snd_mixer_attach_hctl" ref="ga01e5feeb925addfc245ce81c037b1397" args="(snd_mixer_t *mixer, snd_hctl_t *hctl)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_mixer_attach_hctl </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>mixer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> *&nbsp;</td>
          <td class="paramname"> <em>hctl</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Attach an HCTL to an opened mixer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mixer</em>&nbsp;</td><td>Mixer handle </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>hctl</em>&nbsp;</td><td>the HCTL to be attached </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="gabaaa35c5538fec113fffdaff4cbed2fc"></a><!-- doxytag: member="mixer.h::snd_mixer_class_copy" ref="gabaaa35c5538fec113fffdaff4cbed2fc" args="(snd_mixer_class_t *dst, const snd_mixer_class_t *src)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void snd_mixer_class_copy </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> *&nbsp;</td>
          <td class="paramname"> <em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> *&nbsp;</td>
          <td class="paramname"> <em>src</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>copy one <a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> to another </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dst</em>&nbsp;</td><td>pointer to destination </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>src</em>&nbsp;</td><td>pointer to source </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gafef7028555b5c50b9bb072ba6d441ddb"></a><!-- doxytag: member="mixer.h::snd_mixer_class_free" ref="gafef7028555b5c50b9bb072ba6d441ddb" args="(snd_mixer_class_t *obj)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void snd_mixer_class_free </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> *&nbsp;</td>
          <td class="paramname"> <em>obj</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>frees a previously allocated <a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</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>obj</em>&nbsp;</td><td>pointer to object to free </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gad7182d1d18653709bf26fc53a8b1a94f"></a><!-- doxytag: member="mixer.h::snd_mixer_class_get_compare" ref="gad7182d1d18653709bf26fc53a8b1a94f" args="(const snd_mixer_class_t *class_)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group___mixer.html#gae133dc10af535ebba0c717c23889f619">snd_mixer_compare_t</a> snd_mixer_class_get_compare </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> *&nbsp;</td>
          <td class="paramname"> <em>obj</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get mixer compare callback associated to given mixer class. </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>&nbsp;</td><td>Mixer simple class identifier </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>event callback pointer </dd></dl>

</div>
</div>
<a class="anchor" id="ga5744823b495ae331e7dd60f2abdf3589"></a><!-- doxytag: member="mixer.h::snd_mixer_class_get_event" ref="ga5744823b495ae331e7dd60f2abdf3589" args="(const snd_mixer_class_t *class_)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group___mixer.html#gacad1f279dc4c9dcd259293b3b38196ef">snd_mixer_event_t</a> snd_mixer_class_get_event </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> *&nbsp;</td>
          <td class="paramname"> <em>obj</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get mixer event callback associated to given mixer class. </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>&nbsp;</td><td>Mixer simple class identifier </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>event callback pointer </dd></dl>

</div>
</div>
<a class="anchor" id="ga07e5edf36e361b3c1293ed14d2ef5b76"></a><!-- doxytag: member="mixer.h::snd_mixer_class_get_mixer" ref="ga07e5edf36e361b3c1293ed14d2ef5b76" args="(const snd_mixer_class_t *class_)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a>* snd_mixer_class_get_mixer </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> *&nbsp;</td>
          <td class="paramname"> <em>obj</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get a mixer associated to given mixer class. </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>&nbsp;</td><td>Mixer simple class identifier </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>mixer pointer </dd></dl>

</div>
</div>
<a class="anchor" id="ga95b50447f32262756143cd7d9e76997c"></a><!-- doxytag: member="mixer.h::snd_mixer_class_get_private" ref="ga95b50447f32262756143cd7d9e76997c" args="(const snd_mixer_class_t *class_)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* snd_mixer_class_get_private </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> *&nbsp;</td>
          <td class="paramname"> <em>obj</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get mixer private data associated to given mixer class. </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>&nbsp;</td><td>Mixer simple class identifier </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>event callback pointer </dd></dl>

</div>
</div>
<a class="anchor" id="gadc36fd49fdeccc37c41fc700d29adf39"></a><!-- doxytag: member="mixer.h::snd_mixer_class_malloc" ref="gadc36fd49fdeccc37c41fc700d29adf39" args="(snd_mixer_class_t **ptr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_mixer_class_malloc </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> **&nbsp;</td>
          <td class="paramname"> <em>ptr</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>allocate an invalid <a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> using standard malloc </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ptr</em>&nbsp;</td><td>returned pointer </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success otherwise negative error code </dd></dl>

</div>
</div>
<a class="anchor" id="ga595cbd9394f85f9af4a6b30e748e3930"></a><!-- doxytag: member="mixer.h::snd_mixer_class_register" ref="ga595cbd9394f85f9af4a6b30e748e3930" args="(snd_mixer_class_t *class_, snd_mixer_t *mixer)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_mixer_class_register </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> *&nbsp;</td>
          <td class="paramname"> <em>class</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>mixer</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Register mixer element class. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>class</em>&nbsp;</td><td>Mixer element class </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>mixer</em>&nbsp;</td><td>Mixer 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>For use by mixer element class specific code. </p>

</div>
</div>
<a class="anchor" id="gab389fb10998a950207001e3f8abead26"></a><!-- doxytag: member="mixer.h::snd_mixer_class_set_compare" ref="gab389fb10998a950207001e3f8abead26" args="(snd_mixer_class_t *class_, snd_mixer_compare_t compare)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_mixer_class_set_compare </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_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___mixer.html#gae133dc10af535ebba0c717c23889f619">snd_mixer_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></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set mixer compare callback to given mixer class. </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>&nbsp;</td><td>Mixer simple class identifier </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>compare</em>&nbsp;</td><td>the compare callback to be used </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="gad0162769035880347ea9af0dbc518e79"></a><!-- doxytag: member="mixer.h::snd_mixer_class_set_event" ref="gad0162769035880347ea9af0dbc518e79" args="(snd_mixer_class_t *class_, snd_mixer_event_t event)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_mixer_class_set_event </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_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___mixer.html#gacad1f279dc4c9dcd259293b3b38196ef">snd_mixer_event_t</a>&nbsp;</td>
          <td class="paramname"> <em>event</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set mixer event callback to given mixer class. </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>&nbsp;</td><td>Mixer simple class identifier </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>event</em>&nbsp;</td><td>Event callback </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="gaf3b845bb0637fc59cacfe59ef29398d2"></a><!-- doxytag: member="mixer.h::snd_mixer_class_set_private" ref="gaf3b845bb0637fc59cacfe59ef29398d2" args="(snd_mixer_class_t *class_, void *private_data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_mixer_class_set_private </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_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>private_data</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set mixer private data to given mixer class. </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>&nbsp;</td><td>Mixer simple class identifier </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>private_data</em>&nbsp;</td><td>class private data </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="gaa61b83017a92b67ea27a18777dcd141d"></a><!-- doxytag: member="mixer.h::snd_mixer_class_sizeof" ref="gaa61b83017a92b67ea27a18777dcd141d" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t snd_mixer_class_sizeof </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>get size of <a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>size in bytes </dd></dl>

</div>
</div>
<a class="anchor" id="ga6a7bf3805fbbfc3f6f8243e91fbce5f6"></a><!-- doxytag: member="mixer.h::snd_mixer_class_unregister" ref="ga6a7bf3805fbbfc3f6f8243e91fbce5f6" args="(snd_mixer_class_t *clss)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_mixer_class_unregister </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> *&nbsp;</td>
          <td class="paramname"> <em>class</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Unregister mixer element class and remove all its 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>class</em>&nbsp;</td><td>Mixer element class </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>Note that the class structure is also deallocated! </p>

</div>
</div>
<a class="anchor" id="ga9deea3f628bf737001d968620cfd3b1a"></a><!-- doxytag: member="mixer.h::snd_mixer_close" ref="ga9deea3f628bf737001d968620cfd3b1a" args="(snd_mixer_t *mixer)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_mixer_close </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>mixer</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Close a mixer and free all related resources. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mixer</em>&nbsp;</td><td>Mixer 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="ga99ca1c15d46d5f194a216d5e0a8e9229"></a><!-- doxytag: member="mixer.h::snd_mixer_detach" ref="ga99ca1c15d46d5f194a216d5e0a8e9229" args="(snd_mixer_t *mixer, const char *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_mixer_detach </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>mixer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Detach a previously attached HCTL to an opened mixer freeing all related resources. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mixer</em>&nbsp;</td><td>Mixer handle </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>HCTL previously attached </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="ga63b6f8183e08a2b3e6bb83638828e8df"></a><!-- doxytag: member="mixer.h::snd_mixer_detach_hctl" ref="ga63b6f8183e08a2b3e6bb83638828e8df" args="(snd_mixer_t *mixer, snd_hctl_t *hctl)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_mixer_detach_hctl </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>mixer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> *&nbsp;</td>
          <td class="paramname"> <em>hctl</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Detach a previously attached HCTL to an opened mixer freeing all related resources. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mixer</em>&nbsp;</td><td>Mixer handle </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>hctl</em>&nbsp;</td><td>HCTL previously attached </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>Note: The hctl handle is not closed! </p>

</div>
</div>
<a class="anchor" id="ga3b0e73914256f2125d2b7bb48d602457"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_add" ref="ga3b0e73914256f2125d2b7bb48d602457" args="(snd_mixer_elem_t *elem, snd_mixer_class_t *class_)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_mixer_elem_add </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_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___mixer.html#ga51c7b205d5afc62342d9dec3ce54d11f">snd_mixer_class_t</a> *&nbsp;</td>
          <td class="paramname"> <em>class</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add an element for a registered mixer element class. </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>&nbsp;</td><td>Mixer element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>class</em>&nbsp;</td><td>Mixer element class </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>For use by mixer element class specific code. </p>

</div>
</div>
<a class="anchor" id="gabe7f0255c9a981a6c73a8edf359781cc"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_attach" ref="gabe7f0255c9a981a6c73a8edf359781cc" args="(snd_mixer_elem_t *melem, snd_hctl_elem_t *helem)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_mixer_elem_attach </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *&nbsp;</td>
          <td class="paramname"> <em>melem</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *&nbsp;</td>
          <td class="paramname"> <em>helem</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Attach an HCTL element to a mixer 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>melem</em>&nbsp;</td><td>Mixer element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>helem</em>&nbsp;</td><td>HCTL element </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>For use by mixer element class specific code. </p>

</div>
</div>
<a class="anchor" id="ga7413e8f80e2e556c75c6b9fc7d0598f9"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_detach" ref="ga7413e8f80e2e556c75c6b9fc7d0598f9" args="(snd_mixer_elem_t *melem, snd_hctl_elem_t *helem)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_mixer_elem_detach </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *&nbsp;</td>
          <td class="paramname"> <em>melem</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___h_control.html#gaddfb152863e87857d463c7008d72ad74">snd_hctl_elem_t</a> *&nbsp;</td>
          <td class="paramname"> <em>helem</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Detach an HCTL element from a mixer 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>melem</em>&nbsp;</td><td>Mixer element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>helem</em>&nbsp;</td><td>HCTL element </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>For use by mixer element class specific code. </p>

</div>
</div>
<a class="anchor" id="gae0541b86ecfc094a172b4cd29bb70fd0"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_empty" ref="gae0541b86ecfc094a172b4cd29bb70fd0" args="(snd_mixer_elem_t *melem)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_mixer_elem_empty </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *&nbsp;</td>
          <td class="paramname"> <em>melem</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return true if a mixer element does not contain any 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>melem</em>&nbsp;</td><td>Mixer element </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 if not empty, 1 if empty</dd></dl>
<p>For use by mixer element class specific code. </p>

</div>
</div>
<a class="anchor" id="ga40d8bf56621085d5ed5a7e92ad067e03"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_free" ref="ga40d8bf56621085d5ed5a7e92ad067e03" args="(snd_mixer_elem_t *elem)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void snd_mixer_elem_free </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *&nbsp;</td>
          <td class="paramname"> <em>elem</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Free a mixer 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>&nbsp;</td><td>Mixer element </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>For use by mixer element class specific code. </p>

</div>
</div>
<a class="anchor" id="ga78c51ad2e60617137e47ad1d58b45916"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_get_callback_private" ref="ga78c51ad2e60617137e47ad1d58b45916" args="(const snd_mixer_elem_t *obj)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* snd_mixer_elem_get_callback_private </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *&nbsp;</td>
          <td class="paramname"> <em>mixer</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get callback private value for a mixer 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>mixer</em>&nbsp;</td><td>mixer 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="ga4cfddf235c06ae83765ecfd45c5a95d0"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_get_private" ref="ga4cfddf235c06ae83765ecfd45c5a95d0" args="(const snd_mixer_elem_t *melem)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* snd_mixer_elem_get_private </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *&nbsp;</td>
          <td class="paramname"> <em>elem</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get private data associated to give mixer 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>&nbsp;</td><td>Mixer element </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>private data</dd></dl>
<p>For use by mixer element class specific code. </p>

</div>
</div>
<a class="anchor" id="ga1083ba441bb93da13f79bc0cda226ea3"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_get_type" ref="ga1083ba441bb93da13f79bc0cda226ea3" args="(const snd_mixer_elem_t *obj)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group___mixer.html#ga18a15493e66cc90ab851e49161d28b4c">snd_mixer_elem_type_t</a> snd_mixer_elem_get_type </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *&nbsp;</td>
          <td class="paramname"> <em>mixer</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get type for a mixer 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>mixer</em>&nbsp;</td><td>mixer element </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>mixer element type </dd></dl>

</div>
</div>
<a class="anchor" id="gae4a32f9d571201a2bf33a65340dc9afd"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_info" ref="gae4a32f9d571201a2bf33a65340dc9afd" args="(snd_mixer_elem_t *elem)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_mixer_elem_info </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *&nbsp;</td>
          <td class="paramname"> <em>elem</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Mixer element informations are changed. </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>&nbsp;</td><td>Mixer element </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>For use by mixer element class specific code. </p>

</div>
</div>
<a class="anchor" id="ga226cf962e72b6132fd61cbd434b28941"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_new" ref="ga226cf962e72b6132fd61cbd434b28941" args="(snd_mixer_elem_t **elem, snd_mixer_elem_type_t type, int compare_weight, void *private_data, void(*private_free)(snd_mixer_elem_t *elem))" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_mixer_elem_new </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_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___mixer.html#ga18a15493e66cc90ab851e49161d28b4c">snd_mixer_elem_type_t</a>&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>compare_weight</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>private_data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void(*)(<a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *elem)&nbsp;</td>
          <td class="paramname"> <em>private_free</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Allocate a new mixer 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>&nbsp;</td><td>Returned mixer element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>type</em>&nbsp;</td><td>Mixer element type </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>compare_weight</em>&nbsp;</td><td>Mixer element compare weight </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>private_data</em>&nbsp;</td><td>Private data </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>private_free</em>&nbsp;</td><td>Private data free callback </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>For use by mixer element class specific code. </p>

</div>
</div>
<a class="anchor" id="ga68254228ef108122b8178087ea0fcc16"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_next" ref="ga68254228ef108122b8178087ea0fcc16" args="(snd_mixer_elem_t *elem)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a>* snd_mixer_elem_next </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *&nbsp;</td>
          <td class="paramname"> <em>elem</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>get next mixer 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>&nbsp;</td><td>mixer 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="gaaf9a9dfe1d52f40df2be517621f9474a"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_prev" ref="gaaf9a9dfe1d52f40df2be517621f9474a" args="(snd_mixer_elem_t *elem)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a>* snd_mixer_elem_prev </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *&nbsp;</td>
          <td class="paramname"> <em>elem</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>get previous mixer 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>&nbsp;</td><td>mixer 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="gacad36ead935e96f75fe44cf8dd4afa2a"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_remove" ref="gacad36ead935e96f75fe44cf8dd4afa2a" args="(snd_mixer_elem_t *elem)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_mixer_elem_remove </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *&nbsp;</td>
          <td class="paramname"> <em>elem</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Remove a mixer 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>&nbsp;</td><td>Mixer element </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>For use by mixer element class specific code. </p>

</div>
</div>
<a class="anchor" id="ga01e1fd766a313ce513f561bd03c98317"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_set_callback" ref="ga01e1fd766a313ce513f561bd03c98317" args="(snd_mixer_elem_t *obj, snd_mixer_elem_callback_t val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void snd_mixer_elem_set_callback </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *&nbsp;</td>
          <td class="paramname"> <em>mixer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___mixer.html#gabb270fe0068703dee2df0caffa69498f">snd_mixer_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></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set callback function for a mixer 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>mixer</em>&nbsp;</td><td>mixer element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>val</em>&nbsp;</td><td>callback function </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga4fb4ea11326c1cb1fdbf5dac0444507e"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_set_callback_private" ref="ga4fb4ea11326c1cb1fdbf5dac0444507e" args="(snd_mixer_elem_t *obj, void *val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void snd_mixer_elem_set_callback_private </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *&nbsp;</td>
          <td class="paramname"> <em>mixer</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></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set callback private value for a mixer 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>mixer</em>&nbsp;</td><td>mixer element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>val</em>&nbsp;</td><td>callback private value </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga0d23278769e37532f810cecf2ffffacb"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_value" ref="ga0d23278769e37532f810cecf2ffffacb" args="(snd_mixer_elem_t *elem)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_mixer_elem_value </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a> *&nbsp;</td>
          <td class="paramname"> <em>elem</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Mixer element values is changed. </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>&nbsp;</td><td>Mixer element </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>For use by mixer element class specific code. </p>

</div>
</div>
<a class="anchor" id="gaffccf51ddf8ecdc357b216cb979a2318"></a><!-- doxytag: member="mixer.h::snd_mixer_first_elem" ref="gaffccf51ddf8ecdc357b216cb979a2318" args="(snd_mixer_t *mixer)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a>* snd_mixer_first_elem </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>mixer</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>get first element for a mixer </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mixer</em>&nbsp;</td><td>Mixer 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="ga93a71c28e82c04e4c732703e309910fd"></a><!-- doxytag: member="mixer.h::snd_mixer_free" ref="ga93a71c28e82c04e4c732703e309910fd" args="(snd_mixer_t *mixer)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void snd_mixer_free </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>mixer</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Unload all mixer elements and free all related resources. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mixer</em>&nbsp;</td><td>Mixer handle </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga9cfc303fa34eb234efeb52151838f88b"></a><!-- doxytag: member="mixer.h::snd_mixer_get_callback_private" ref="ga9cfc303fa34eb234efeb52151838f88b" args="(const snd_mixer_t *obj)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* snd_mixer_get_callback_private </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>mixer</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get callback private value for a mixer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mixer</em>&nbsp;</td><td>mixer 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="ga3447c190c69cfce4c52df4ad3300e319"></a><!-- doxytag: member="mixer.h::snd_mixer_get_count" ref="ga3447c190c69cfce4c52df4ad3300e319" args="(const snd_mixer_t *obj)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int snd_mixer_get_count </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>mixer</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get elements count for a mixer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mixer</em>&nbsp;</td><td>mixer 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="gafbbaedd662ea57e573e09f39ca8b247c"></a><!-- doxytag: member="mixer.h::snd_mixer_get_hctl" ref="gafbbaedd662ea57e573e09f39ca8b247c" args="(snd_mixer_t *mixer, const char *name, snd_hctl_t **hctl)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_mixer_get_hctl </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>mixer</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"><a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> **&nbsp;</td>
          <td class="paramname"> <em>hctl</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Obtain a HCTL pointer associated to given name. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mixer</em>&nbsp;</td><td>Mixer handle </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>HCTL previously attached </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>hctl</em>&nbsp;</td><td>HCTL pointer </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="gae0cfb6b50ec2493281107b0649f87cb8"></a><!-- doxytag: member="mixer.h::snd_mixer_handle_events" ref="gae0cfb6b50ec2493281107b0649f87cb8" args="(snd_mixer_t *mixer)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_mixer_handle_events </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>mixer</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Handle pending mixer 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>mixer</em>&nbsp;</td><td>Mixer handle </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Number of events that occured on success, otherwise a negative error code on failure </dd></dl>

</div>
</div>
<a class="anchor" id="ga51121b263ea3d3ee9367aabfd338ef11"></a><!-- doxytag: member="mixer.h::snd_mixer_last_elem" ref="ga51121b263ea3d3ee9367aabfd338ef11" args="(snd_mixer_t *mixer)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group___mixer.html#ga9bb5eb24e4feea6c1a04c79b77938ef9">snd_mixer_elem_t</a>* snd_mixer_last_elem </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>mixer</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>get last element for a mixer </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mixer</em>&nbsp;</td><td>Mixer 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="ga24b6077528d04cb9fca072b3ae109aef"></a><!-- doxytag: member="mixer.h::snd_mixer_load" ref="ga24b6077528d04cb9fca072b3ae109aef" args="(snd_mixer_t *mixer)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_mixer_load </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>mixer</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Load a mixer 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>mixer</em>&nbsp;</td><td>Mixer 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="ga240cfebce7d68f22875d76e99cf19394"></a><!-- doxytag: member="mixer.h::snd_mixer_open" ref="ga240cfebce7d68f22875d76e99cf19394" args="(snd_mixer_t **mixer, int mode)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_mixer_open </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> **&nbsp;</td>
          <td class="paramname"> <em>mixerp</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></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Opens an empty mixer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mixerp</em>&nbsp;</td><td>Returned mixer handle </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>mode</em>&nbsp;</td><td>Open 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="ga07f7bc33587907988aaffc03ce72367e"></a><!-- doxytag: member="mixer.h::snd_mixer_poll_descriptors" ref="ga07f7bc33587907988aaffc03ce72367e" args="(snd_mixer_t *mixer, struct pollfd *pfds, unsigned int space)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_mixer_poll_descriptors </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>mixer</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></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>mixer</em>&nbsp;</td><td>Mixer 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>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>count of filled descriptors </dd></dl>

</div>
</div>
<a class="anchor" id="gab3ee14782a19e6d62acbdcdb5f9f7786"></a><!-- doxytag: member="mixer.h::snd_mixer_poll_descriptors_count" ref="gab3ee14782a19e6d62acbdcdb5f9f7786" args="(snd_mixer_t *mixer)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_mixer_poll_descriptors_count </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>mixer</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>get count of poll descriptors for mixer 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>mixer</em>&nbsp;</td><td>Mixer 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="gab26686311756ee3c66e05766227df818"></a><!-- doxytag: member="mixer.h::snd_mixer_poll_descriptors_revents" ref="gab26686311756ee3c66e05766227df818" args="(snd_mixer_t *mixer, struct pollfd *pfds, unsigned int nfds, unsigned short *revents)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_mixer_poll_descriptors_revents </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>mixer</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></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>mixer</em>&nbsp;</td><td>Mixer 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>
  </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="ga691a593ea0a32f9535fff83b00a0a574"></a><!-- doxytag: member="mixer.h::snd_mixer_set_callback" ref="ga691a593ea0a32f9535fff83b00a0a574" args="(snd_mixer_t *obj, snd_mixer_callback_t val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void snd_mixer_set_callback </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_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___mixer.html#ga9e108905ed4fa236faa49f003c002d95">snd_mixer_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></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set callback function for a mixer. </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>&nbsp;</td><td>mixer handle </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>val</em>&nbsp;</td><td>callback function </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gab91fc99ac65c866e660d4d8be0cb3e17"></a><!-- doxytag: member="mixer.h::snd_mixer_set_callback_private" ref="gab91fc99ac65c866e660d4d8be0cb3e17" args="(snd_mixer_t *obj, void *val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void snd_mixer_set_callback_private </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>mixer</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></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set callback private value for a mixer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mixer</em>&nbsp;</td><td>mixer handle </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>val</em>&nbsp;</td><td>callback private value </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gac7e1bbe5d5b69a6ee67d5bced6325a67"></a><!-- doxytag: member="mixer.h::snd_mixer_set_compare" ref="gac7e1bbe5d5b69a6ee67d5bced6325a67" args="(snd_mixer_t *mixer, snd_mixer_compare_t msort)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_mixer_set_compare </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>mixer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___mixer.html#gae133dc10af535ebba0c717c23889f619">snd_mixer_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></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Change mixer 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>mixer</em>&nbsp;</td><td>Mixer handle </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>compare</em>&nbsp;</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="ga072846849f4bc2058336fd6601f18a15"></a><!-- doxytag: member="mixer.h::snd_mixer_wait" ref="ga072846849f4bc2058336fd6601f18a15" args="(snd_mixer_t *mixer, int timeout)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_mixer_wait </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___mixer.html#ga34161447bc01a64f578456ed13d57e33">snd_mixer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>mixer</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></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Wait for a mixer 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>mixer</em>&nbsp;</td><td>Mixer 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>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 otherwise a negative error code on failure </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">&nbsp;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&nbsp;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&nbsp;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&nbsp;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&nbsp;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&nbsp;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&nbsp;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&nbsp;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&nbsp;</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&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>