<!-- 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 Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li><a href="examples.html"><span>Examples</span></a></li> <li> <div id="MSearchBox" class="MSearchBoxInactive"> <img id="MSearchSelect" src="search/search.png" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/> <input type="text" id="MSearchField" value="Search" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> </div> </li> </ul> </div> </div> <div class="contents"> <h1>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"> </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 </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"> </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 </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 </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 </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(* </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"> </td><td class="mdescRight">Mixer callback function. <a href="#ga9e108905ed4fa236faa49f003c002d95"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef int(* </td><td class="memItemRight" valign="bottom"><a class="el" href="group___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"> </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(* </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"> </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(* </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"> </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 </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 </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"> </td><td class="mdescRight">Opens an empty mixer. <a href="#ga240cfebce7d68f22875d76e99cf19394"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </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"> </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> * </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"> </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> * </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </td><td class="mdescRight">get poll descriptors <a href="#ga07f7bc33587907988aaffc03ce72367e"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </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"> </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 </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"> </td><td class="mdescRight">Load a mixer elements. <a href="#ga24b6077528d04cb9fca072b3ae109aef"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </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"> </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 </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"> </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 </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"> </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 </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"> </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 * </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"> </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 </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"> </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 </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"> </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 </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"> </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> * </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"> </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> * </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"> </td><td class="mdescRight">get previous mixer element <a href="#gaaf9a9dfe1d52f40df2be517621f9474a"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </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"> </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 * </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"> </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 </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"> </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> </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"> </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 </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"> </td><td class="mdescRight">Register mixer element class. <a href="#ga595cbd9394f85f9af4a6b30e748e3930"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </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"> </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 </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"> </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 </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"> </td><td class="mdescRight">Remove a mixer element. <a href="#gacad36ead935e96f75fe44cf8dd4afa2a"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </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"> </td><td class="mdescRight">Free a mixer element. <a href="#ga40d8bf56621085d5ed5a7e92ad067e03"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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 * </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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> * </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"> </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> </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"> </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 * </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"> </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> </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"> </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 </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"> </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 </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"> </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 </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 </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"> </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 </td> <td class="paramname"></td> <td> ) </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> </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> </td><td>Mixer handle </td></tr> <tr><td valign="top"></td><td valign="top"><em>mask</em> </td><td>event mask </td></tr> <tr><td valign="top"></td><td valign="top"><em>elem</em> </td><td>related 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> </td><td>First element </td></tr> <tr><td valign="top"></td><td valign="top"><em>e2</em> </td><td>Second element </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>-1 if e1 < e2, 0 if e1 == e2, 1 if e1 > e2 </dd></dl> </div> </div> <a class="anchor" id="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> </td><td>Mixer element </td></tr> <tr><td valign="top"></td><td valign="top"><em>mask</em> </td><td>event mask </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code </dd></dl> </div> </div> <a class="anchor" id="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> </td><td>Mixer class </td></tr> <tr><td valign="top"></td><td valign="top"><em>mask</em> </td><td>Event mask (SND_CTL_EVENT_*) </td></tr> <tr><td valign="top"></td><td valign="top"><em>helem</em> </td><td>HCTL element which invoked the event </td></tr> <tr><td valign="top"></td><td valign="top"><em>melem</em> </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> * </td> <td class="paramname"> <em>mixer</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>name</em></td><td> </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> </td><td>Mixer handle </td></tr> <tr><td valign="top"></td><td valign="top"><em>name</em> </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> * </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> * </td> <td class="paramname"> <em>hctl</em></td><td> </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> </td><td>Mixer handle </td></tr> <tr><td valign="top"></td><td valign="top"><em>hctl</em> </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> * </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> * </td> <td class="paramname"> <em>src</em></td><td> </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> </td><td>pointer to destination </td></tr> <tr><td valign="top"></td><td valign="top"><em>src</em> </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> * </td> <td class="paramname"> <em>obj</em></td> <td> ) </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> </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> * </td> <td class="paramname"> <em>obj</em></td> <td> ) </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> </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> * </td> <td class="paramname"> <em>obj</em></td> <td> ) </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> </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> * </td> <td class="paramname"> <em>obj</em></td> <td> ) </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> </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> * </td> <td class="paramname"> <em>obj</em></td> <td> ) </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> </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> ** </td> <td class="paramname"> <em>ptr</em></td> <td> ) </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> </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> * </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> * </td> <td class="paramname"> <em>mixer</em></td><td> </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> </td><td>Mixer element class </td></tr> <tr><td valign="top"></td><td valign="top"><em>mixer</em> </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> * </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> </td> <td class="paramname"> <em>compare</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>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> </td><td>Mixer simple class identifier </td></tr> <tr><td valign="top"></td><td valign="top"><em>compare</em> </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> * </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> </td> <td class="paramname"> <em>event</em></td><td> </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> </td><td>Mixer simple class identifier </td></tr> <tr><td valign="top"></td><td valign="top"><em>event</em> </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> * </td> <td class="paramname"> <em>obj</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"> <em>private_data</em></td><td> </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> </td><td>Mixer simple class identifier </td></tr> <tr><td valign="top"></td><td valign="top"><em>private_data</em> </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 </td> <td class="paramname"></td> <td> ) </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> * </td> <td class="paramname"> <em>class</em></td> <td> ) </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> </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> * </td> <td class="paramname"> <em>mixer</em></td> <td> ) </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> </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> * </td> <td class="paramname"> <em>mixer</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>name</em></td><td> </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> </td><td>Mixer handle </td></tr> <tr><td valign="top"></td><td valign="top"><em>name</em> </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> * </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> * </td> <td class="paramname"> <em>hctl</em></td><td> </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> </td><td>Mixer handle </td></tr> <tr><td valign="top"></td><td valign="top"><em>hctl</em> </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> * </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> * </td> <td class="paramname"> <em>class</em></td><td> </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> </td><td>Mixer element </td></tr> <tr><td valign="top"></td><td valign="top"><em>class</em> </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> * </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> * </td> <td class="paramname"> <em>helem</em></td><td> </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> </td><td>Mixer element </td></tr> <tr><td valign="top"></td><td valign="top"><em>helem</em> </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> * </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> * </td> <td class="paramname"> <em>helem</em></td><td> </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> </td><td>Mixer element </td></tr> <tr><td valign="top"></td><td valign="top"><em>helem</em> </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> * </td> <td class="paramname"> <em>melem</em></td> <td> ) </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> </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> * </td> <td class="paramname"> <em>elem</em></td> <td> ) </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> </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> * </td> <td class="paramname"> <em>mixer</em></td> <td> ) </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> </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> * </td> <td class="paramname"> <em>elem</em></td> <td> ) </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> </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> * </td> <td class="paramname"> <em>mixer</em></td> <td> ) </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> </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> * </td> <td class="paramname"> <em>elem</em></td> <td> ) </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> </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> ** </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> </td> <td class="paramname"> <em>type</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>compare_weight</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </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) </td> <td class="paramname"> <em>private_free</em></td><td> </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> </td><td>Returned mixer element </td></tr> <tr><td valign="top"></td><td valign="top"><em>type</em> </td><td>Mixer element type </td></tr> <tr><td valign="top"></td><td valign="top"><em>compare_weight</em> </td><td>Mixer element compare weight </td></tr> <tr><td valign="top"></td><td valign="top"><em>private_data</em> </td><td>Private data </td></tr> <tr><td valign="top"></td><td valign="top"><em>private_free</em> </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> * </td> <td class="paramname"> <em>elem</em></td> <td> ) </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> </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> * </td> <td class="paramname"> <em>elem</em></td> <td> ) </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> </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> * </td> <td class="paramname"> <em>elem</em></td> <td> ) </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> </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> * </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> </td> <td class="paramname"> <em>val</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set callback function for 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> </td><td>mixer element </td></tr> <tr><td valign="top"></td><td valign="top"><em>val</em> </td><td>callback function </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="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> * </td> <td class="paramname"> <em>mixer</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"> <em>val</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set callback private value for 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> </td><td>mixer element </td></tr> <tr><td valign="top"></td><td valign="top"><em>val</em> </td><td>callback private value </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="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> * </td> <td class="paramname"> <em>elem</em></td> <td> ) </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> </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> * </td> <td class="paramname"> <em>mixer</em></td> <td> ) </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> </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> * </td> <td class="paramname"> <em>mixer</em></td> <td> ) </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> </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> * </td> <td class="paramname"> <em>mixer</em></td> <td> ) </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> </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> * </td> <td class="paramname"> <em>mixer</em></td> <td> ) </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> </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> * </td> <td class="paramname"> <em>mixer</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>name</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___h_control.html#ga13c9ad52c57ab7db06065a7f806b2369">snd_hctl_t</a> ** </td> <td class="paramname"> <em>hctl</em></td><td> </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> </td><td>Mixer handle </td></tr> <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>HCTL previously attached </td></tr> <tr><td valign="top"></td><td valign="top"><em>hctl</em> </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> * </td> <td class="paramname"> <em>mixer</em></td> <td> ) </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> </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> * </td> <td class="paramname"> <em>mixer</em></td> <td> ) </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> </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> * </td> <td class="paramname"> <em>mixer</em></td> <td> ) </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> </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> ** </td> <td class="paramname"> <em>mixerp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>mode</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Opens an 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> </td><td>Returned mixer handle </td></tr> <tr><td valign="top"></td><td valign="top"><em>mode</em> </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> * </td> <td class="paramname"> <em>mixer</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct pollfd * </td> <td class="paramname"> <em>pfds</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>space</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>get poll descriptors </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>mixer</em> </td><td>Mixer handle </td></tr> <tr><td valign="top"></td><td valign="top"><em>pfds</em> </td><td>array of poll descriptors </td></tr> <tr><td valign="top"></td><td valign="top"><em>space</em> </td><td>space in the poll descriptor array </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>count of filled descriptors </dd></dl> </div> </div> <a class="anchor" id="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> * </td> <td class="paramname"> <em>mixer</em></td> <td> ) </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> </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> * </td> <td class="paramname"> <em>mixer</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct pollfd * </td> <td class="paramname"> <em>pfds</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>nfds</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned short * </td> <td class="paramname"> <em>revents</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>get returned events from poll descriptors </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>mixer</em> </td><td>Mixer handle </td></tr> <tr><td valign="top"></td><td valign="top"><em>pfds</em> </td><td>array of poll descriptors </td></tr> <tr><td valign="top"></td><td valign="top"><em>nfds</em> </td><td>count of poll descriptors </td></tr> <tr><td valign="top"></td><td valign="top"><em>revents</em> </td><td>returned events </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>zero if success, otherwise a negative error code </dd></dl> </div> </div> <a class="anchor" id="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> * </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> </td> <td class="paramname"> <em>val</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set callback function for 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> </td><td>mixer handle </td></tr> <tr><td valign="top"></td><td valign="top"><em>val</em> </td><td>callback function </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="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> * </td> <td class="paramname"> <em>mixer</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"> <em>val</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set callback private value for 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> </td><td>mixer handle </td></tr> <tr><td valign="top"></td><td valign="top"><em>val</em> </td><td>callback private value </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="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> * </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> </td> <td class="paramname"> <em>compare</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Change 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> </td><td>Mixer handle </td></tr> <tr><td valign="top"></td><td valign="top"><em>compare</em> </td><td>Element compare function </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code </dd></dl> </div> </div> <a class="anchor" id="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> * </td> <td class="paramname"> <em>mixer</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>timeout</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Wait for a 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> </td><td>Mixer handle </td></tr> <tr><td valign="top"></td><td valign="top"><em>timeout</em> </td><td>maximum time in milliseconds to wait </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Defines</a></div> <!-- iframe showing the search results (closed by default) --> <div id="MSearchResultsWindow"> <iframe src="" frameborder="0" name="MSearchResults" id="MSearchResults"> </iframe> </div> <hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Nov 20 07:42:24 2010 for ALSA project - the C library reference by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address> </body> </html>