File: //usr/share/doc/alsa-lib-devel-1.0.17/lib64/html/group___mixer.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>ALSA project - the C library reference: Mixer Interface</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main Page</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="pages.html"><span>Related Pages</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<h1>Mixer Interface</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Modules</h2></td></tr>
<tr><td class="memItemLeft" nowrap 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"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#gb74cbcb3de14b6d57f65b0a314b0d761">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#gcfaafa11f09f1d5e425de98c28626359">snd_mixer_class_t</a> using standard alloca <a href="#gb74cbcb3de14b6d57f65b0a314b0d761"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef _snd_mixer </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g7898f9d8a42208bbdb8a27acc1e02325">snd_mixer_t</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef _snd_mixer_class </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#gcfaafa11f09f1d5e425de98c28626359">snd_mixer_class_t</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef _snd_mixer_elem </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*) </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g4dc3c4fc95b75a725351dc8e6badc51e">snd_mixer_callback_t</a> (<a class="el" href="group___mixer.html#g7898f9d8a42208bbdb8a27acc1e02325">snd_mixer_t</a> *ctl, unsigned int mask, <a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> *elem)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Mixer callback function. <a href="#g4dc3c4fc95b75a725351dc8e6badc51e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*) </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ge5a8b76b3d124e0bd37cede97b7acf0f">snd_mixer_elem_callback_t</a> (<a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">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="#ge5a8b76b3d124e0bd37cede97b7acf0f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*) </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#gd3edc0567564ec99e613915b9fc0c266">snd_mixer_compare_t</a> (const <a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> *e1, const <a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> *e2)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Compare function for sorting mixer elements. <a href="#gd3edc0567564ec99e613915b9fc0c266"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*) </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g0d85e8a488faf9a48841eed26f0876fb">snd_mixer_event_t</a> (<a class="el" href="group___mixer.html#gcfaafa11f09f1d5e425de98c28626359">snd_mixer_class_t</a> *class_, unsigned int mask, <a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *helem, <a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> *melem)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Event callback for the mixer class. <a href="#g0d85e8a488faf9a48841eed26f0876fb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef enum <a class="el" href="group___mixer.html#ga99a4dcac9da72a1b98762dbdb223ad3">_snd_mixer_elem_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g21023a73a2fdf271df69edeb5a02aeb3">snd_mixer_elem_type_t</a></td></tr>
<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga99a4dcac9da72a1b98762dbdb223ad3">_snd_mixer_elem_type</a> { <b>SND_MIXER_ELEM_SIMPLE</b>,
<b>SND_MIXER_ELEM_LAST</b> = SND_MIXER_ELEM_SIMPLE
}</td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g90601adb3be1148e7f9ea8b8d72ea1f9">snd_mixer_open</a> (<a class="el" href="group___mixer.html#g7898f9d8a42208bbdb8a27acc1e02325">snd_mixer_t</a> **mixer, int mode)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Opens an empty mixer. <a href="#g90601adb3be1148e7f9ea8b8d72ea1f9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#gfb3f103adbf6e9cd28c3eb6a2663f5e2">snd_mixer_close</a> (<a class="el" href="group___mixer.html#g7898f9d8a42208bbdb8a27acc1e02325">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="#gfb3f103adbf6e9cd28c3eb6a2663f5e2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g6186f3f72c0a79758b77758ddd1b8e75">snd_mixer_first_elem</a> (<a class="el" href="group___mixer.html#g7898f9d8a42208bbdb8a27acc1e02325">snd_mixer_t</a> *mixer)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">get first element for a mixer <a href="#g6186f3f72c0a79758b77758ddd1b8e75"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g6fbd100367a656a90702d37334488583">snd_mixer_last_elem</a> (<a class="el" href="group___mixer.html#g7898f9d8a42208bbdb8a27acc1e02325">snd_mixer_t</a> *mixer)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">get last element for a mixer <a href="#g6fbd100367a656a90702d37334488583"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga5d17a7d0e70b4c198fcf9d23e6b8514">snd_mixer_handle_events</a> (<a class="el" href="group___mixer.html#g7898f9d8a42208bbdb8a27acc1e02325">snd_mixer_t</a> *mixer)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Handle pending mixer events invoking callbacks. <a href="#ga5d17a7d0e70b4c198fcf9d23e6b8514"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g740a0316561dda2e764b9958652fc336">snd_mixer_attach</a> (<a class="el" href="group___mixer.html#g7898f9d8a42208bbdb8a27acc1e02325">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="#g740a0316561dda2e764b9958652fc336"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g4c3c78142bda3142bb9458f5dfd84dfb">snd_mixer_attach_hctl</a> (<a class="el" href="group___mixer.html#g7898f9d8a42208bbdb8a27acc1e02325">snd_mixer_t</a> *mixer, <a class="el" href="group___h_control.html#g026390ac507385d40b36850d5dfafcbc">snd_hctl_t</a> *hctl)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Attach an HCTL to an opened mixer. <a href="#g4c3c78142bda3142bb9458f5dfd84dfb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g3c27767505a486c1425caaa50d56cbc9">snd_mixer_detach</a> (<a class="el" href="group___mixer.html#g7898f9d8a42208bbdb8a27acc1e02325">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="#g3c27767505a486c1425caaa50d56cbc9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g6aa83901559278be599ac447c39872ea">snd_mixer_detach_hctl</a> (<a class="el" href="group___mixer.html#g7898f9d8a42208bbdb8a27acc1e02325">snd_mixer_t</a> *mixer, <a class="el" href="group___h_control.html#g026390ac507385d40b36850d5dfafcbc">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="#g6aa83901559278be599ac447c39872ea"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g2ecae8e0e316cccda293dade1e3f9519">snd_mixer_get_hctl</a> (<a class="el" href="group___mixer.html#g7898f9d8a42208bbdb8a27acc1e02325">snd_mixer_t</a> *mixer, const char *name, <a class="el" href="group___h_control.html#g026390ac507385d40b36850d5dfafcbc">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="#g2ecae8e0e316cccda293dade1e3f9519"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g9060e820cb885c2ce2402bd73def2c75">snd_mixer_poll_descriptors_count</a> (<a class="el" href="group___mixer.html#g7898f9d8a42208bbdb8a27acc1e02325">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="#g9060e820cb885c2ce2402bd73def2c75"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g7eec8c8d8916e08388c0dd66d44477ee">snd_mixer_poll_descriptors</a> (<a class="el" href="group___mixer.html#g7898f9d8a42208bbdb8a27acc1e02325">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="#g7eec8c8d8916e08388c0dd66d44477ee"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#gb8859209756614288dbd4c998d5458da">snd_mixer_poll_descriptors_revents</a> (<a class="el" href="group___mixer.html#g7898f9d8a42208bbdb8a27acc1e02325">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="#gb8859209756614288dbd4c998d5458da"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#gccd3c60b4c1c4135a14945e28d228374">snd_mixer_load</a> (<a class="el" href="group___mixer.html#g7898f9d8a42208bbdb8a27acc1e02325">snd_mixer_t</a> *mixer)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Load a mixer elements. <a href="#gccd3c60b4c1c4135a14945e28d228374"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g3333cbffd7b225ff83b52ad5ff4db690">snd_mixer_free</a> (<a class="el" href="group___mixer.html#g7898f9d8a42208bbdb8a27acc1e02325">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="#g3333cbffd7b225ff83b52ad5ff4db690"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g19f23454eba09bf7a75448237f570245">snd_mixer_wait</a> (<a class="el" href="group___mixer.html#g7898f9d8a42208bbdb8a27acc1e02325">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="#g19f23454eba09bf7a75448237f570245"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga8046daa5ccafeb902e11e2d167d4ff9">snd_mixer_set_compare</a> (<a class="el" href="group___mixer.html#g7898f9d8a42208bbdb8a27acc1e02325">snd_mixer_t</a> *mixer, <a class="el" href="group___mixer.html#gd3edc0567564ec99e613915b9fc0c266">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="#ga8046daa5ccafeb902e11e2d167d4ff9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g249c478636d50f1e1e08c969b4a8019b">snd_mixer_set_callback</a> (<a class="el" href="group___mixer.html#g7898f9d8a42208bbdb8a27acc1e02325">snd_mixer_t</a> *obj, <a class="el" href="group___mixer.html#g4dc3c4fc95b75a725351dc8e6badc51e">snd_mixer_callback_t</a> val)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Set callback function for a mixer. <a href="#g249c478636d50f1e1e08c969b4a8019b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g1948858287f6b92d7e0594a3c5a1144a">snd_mixer_get_callback_private</a> (const <a class="el" href="group___mixer.html#g7898f9d8a42208bbdb8a27acc1e02325">snd_mixer_t</a> *obj)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get callback private value for a mixer. <a href="#g1948858287f6b92d7e0594a3c5a1144a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#gc38782c2eca9742c1cc0df5759951d02">snd_mixer_set_callback_private</a> (<a class="el" href="group___mixer.html#g7898f9d8a42208bbdb8a27acc1e02325">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="#gc38782c2eca9742c1cc0df5759951d02"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g444c47b34d6480ebe185cea0c787f138">snd_mixer_get_count</a> (const <a class="el" href="group___mixer.html#g7898f9d8a42208bbdb8a27acc1e02325">snd_mixer_t</a> *obj)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get elements count for a mixer. <a href="#g444c47b34d6480ebe185cea0c787f138"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#ga65a0eb6909c74dd27b0804be55e8fd8">snd_mixer_class_unregister</a> (<a class="el" href="group___mixer.html#gcfaafa11f09f1d5e425de98c28626359">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="#ga65a0eb6909c74dd27b0804be55e8fd8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g5e7af2c16b088ac3ded8a1848f7e151d">snd_mixer_elem_next</a> (<a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> *elem)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">get next mixer element <a href="#g5e7af2c16b088ac3ded8a1848f7e151d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#gb294f6a2545b8441a3b65db5b283a8b0">snd_mixer_elem_prev</a> (<a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> *elem)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">get previous mixer element <a href="#gb294f6a2545b8441a3b65db5b283a8b0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g3b302d9a9e6c8125d7fd8814740eb9bc">snd_mixer_elem_set_callback</a> (<a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> *obj, <a class="el" href="group___mixer.html#ge5a8b76b3d124e0bd37cede97b7acf0f">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="#g3b302d9a9e6c8125d7fd8814740eb9bc"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g1ef07e90fea79c5e2e731b3222556bb2">snd_mixer_elem_get_callback_private</a> (const <a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">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="#g1ef07e90fea79c5e2e731b3222556bb2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g900fb132b05fdb6cc157fb250ac78951">snd_mixer_elem_set_callback_private</a> (<a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">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="#g900fb132b05fdb6cc157fb250ac78951"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group___mixer.html#g21023a73a2fdf271df69edeb5a02aeb3">snd_mixer_elem_type_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g86adeb2a59d90b847d9f3451ad6da5cd">snd_mixer_elem_get_type</a> (const <a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> *obj)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get type for a mixer element. <a href="#g86adeb2a59d90b847d9f3451ad6da5cd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g5554fd45deaacace7cc5bd4d405ea806">snd_mixer_class_register</a> (<a class="el" href="group___mixer.html#gcfaafa11f09f1d5e425de98c28626359">snd_mixer_class_t</a> *class_, <a class="el" href="group___mixer.html#g7898f9d8a42208bbdb8a27acc1e02325">snd_mixer_t</a> *mixer)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Register mixer element class. <a href="#g5554fd45deaacace7cc5bd4d405ea806"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g7dde80a1a9b13a16f4db20aadb2939a4"></a><!-- doxytag: member="Mixer::snd_mixer_add_elem" ref="g7dde80a1a9b13a16f4db20aadb2939a4" args="(snd_mixer_t *mixer, snd_mixer_elem_t *elem)" -->
int </td><td class="memItemRight" valign="bottom"><b>snd_mixer_add_elem</b> (<a class="el" href="group___mixer.html#g7898f9d8a42208bbdb8a27acc1e02325">snd_mixer_t</a> *mixer, <a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> *elem)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g9626ac20cb8a8c18c82147fb880d78ef"></a><!-- doxytag: member="Mixer::snd_mixer_remove_elem" ref="g9626ac20cb8a8c18c82147fb880d78ef" args="(snd_mixer_t *mixer, snd_mixer_elem_t *elem)" -->
int </td><td class="memItemRight" valign="bottom"><b>snd_mixer_remove_elem</b> (<a class="el" href="group___mixer.html#g7898f9d8a42208bbdb8a27acc1e02325">snd_mixer_t</a> *mixer, <a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> *elem)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g8404a2af7b19957403aa3a226f9c28e1">snd_mixer_elem_new</a> (<a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> **elem, <a class="el" href="group___mixer.html#g21023a73a2fdf271df69edeb5a02aeb3">snd_mixer_elem_type_t</a> type, int compare_weight, void *private_data, void(*private_free)(<a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> *elem))</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Allocate a new mixer element. <a href="#g8404a2af7b19957403aa3a226f9c28e1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g1c77deb60618288946455feb23367c6f">snd_mixer_elem_add</a> (<a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> *elem, <a class="el" href="group___mixer.html#gcfaafa11f09f1d5e425de98c28626359">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="#g1c77deb60618288946455feb23367c6f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#gd12dc8ba10e3e060e56edc4a794acefa">snd_mixer_elem_remove</a> (<a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> *elem)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Remove a mixer element. <a href="#gd12dc8ba10e3e060e56edc4a794acefa"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g3b831e44cde7c19d0d0ee6d701611ed9">snd_mixer_elem_free</a> (<a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> *elem)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Free a mixer element. <a href="#g3b831e44cde7c19d0d0ee6d701611ed9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g7d64d829bf8b38e28e66070f087043a9">snd_mixer_elem_info</a> (<a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> *elem)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Mixer element informations are changed. <a href="#g7d64d829bf8b38e28e66070f087043a9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#gd50fb598467fd7f5398b6b27089676f6">snd_mixer_elem_value</a> (<a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> *elem)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Mixer element values is changed. <a href="#gd50fb598467fd7f5398b6b27089676f6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g6003c2bb0440425a9396834733351df0">snd_mixer_elem_attach</a> (<a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> *melem, <a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">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="#g6003c2bb0440425a9396834733351df0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g59469e2368383166af7201e113ceeaf5">snd_mixer_elem_detach</a> (<a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> *melem, <a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">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="#g59469e2368383166af7201e113ceeaf5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g972fbb87fb0a76505500e720d6cc3826">snd_mixer_elem_empty</a> (<a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">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="#g972fbb87fb0a76505500e720d6cc3826"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g3fc264d15c6a713ca6679c74750855ec">snd_mixer_elem_get_private</a> (const <a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">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="#g3fc264d15c6a713ca6679c74750855ec"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g820c0c088f7cde87ed4b6c55597a78f5">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#gcfaafa11f09f1d5e425de98c28626359">snd_mixer_class_t</a> <a href="#g820c0c088f7cde87ed4b6c55597a78f5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g2bbc7ea014d7846e7657d3284227e205">snd_mixer_class_malloc</a> (<a class="el" href="group___mixer.html#gcfaafa11f09f1d5e425de98c28626359">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#gcfaafa11f09f1d5e425de98c28626359">snd_mixer_class_t</a> using standard malloc <a href="#g2bbc7ea014d7846e7657d3284227e205"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g62f1f04b005ed2fad164b812355a959a">snd_mixer_class_free</a> (<a class="el" href="group___mixer.html#gcfaafa11f09f1d5e425de98c28626359">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#gcfaafa11f09f1d5e425de98c28626359">snd_mixer_class_t</a> <a href="#g62f1f04b005ed2fad164b812355a959a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g60352483aa60c45068d6cbc693637353">snd_mixer_class_copy</a> (<a class="el" href="group___mixer.html#gcfaafa11f09f1d5e425de98c28626359">snd_mixer_class_t</a> *dst, const <a class="el" href="group___mixer.html#gcfaafa11f09f1d5e425de98c28626359">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#gcfaafa11f09f1d5e425de98c28626359">snd_mixer_class_t</a> to another <a href="#g60352483aa60c45068d6cbc693637353"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group___mixer.html#g7898f9d8a42208bbdb8a27acc1e02325">snd_mixer_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g7d1ba46b209a5ba7dd22b757ffcaaf6f">snd_mixer_class_get_mixer</a> (const <a class="el" href="group___mixer.html#gcfaafa11f09f1d5e425de98c28626359">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="#g7d1ba46b209a5ba7dd22b757ffcaaf6f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group___mixer.html#g0d85e8a488faf9a48841eed26f0876fb">snd_mixer_event_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g157bac647e7adecbf07c0e95428f1e0d">snd_mixer_class_get_event</a> (const <a class="el" href="group___mixer.html#gcfaafa11f09f1d5e425de98c28626359">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="#g157bac647e7adecbf07c0e95428f1e0d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g434bf9d2c2d1e965484b5a65e0771839">snd_mixer_class_get_private</a> (const <a class="el" href="group___mixer.html#gcfaafa11f09f1d5e425de98c28626359">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="#g434bf9d2c2d1e965484b5a65e0771839"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group___mixer.html#gd3edc0567564ec99e613915b9fc0c266">snd_mixer_compare_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g62f0886e49e32c1f9b2cf9f30c1fca80">snd_mixer_class_get_compare</a> (const <a class="el" href="group___mixer.html#gcfaafa11f09f1d5e425de98c28626359">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="#g62f0886e49e32c1f9b2cf9f30c1fca80"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g9465a43555ee6941ea5769025fb504a6">snd_mixer_class_set_event</a> (<a class="el" href="group___mixer.html#gcfaafa11f09f1d5e425de98c28626359">snd_mixer_class_t</a> *class_, <a class="el" href="group___mixer.html#g0d85e8a488faf9a48841eed26f0876fb">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="#g9465a43555ee6941ea5769025fb504a6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#g774818680e03159aa4d0d0be0849d5e5">snd_mixer_class_set_private</a> (<a class="el" href="group___mixer.html#gcfaafa11f09f1d5e425de98c28626359">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="#g774818680e03159aa4d0d0be0849d5e5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g55a4bf925a16931fec5ce68feffc3ee9"></a><!-- doxytag: member="Mixer::snd_mixer_class_set_private_free" ref="g55a4bf925a16931fec5ce68feffc3ee9" 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#gcfaafa11f09f1d5e425de98c28626359">snd_mixer_class_t</a> *class_, void(*private_free)(<a class="el" href="group___mixer.html#gcfaafa11f09f1d5e425de98c28626359">snd_mixer_class_t</a> *class_))</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___mixer.html#gafa1501403655d4b4182980f35cc9a52">snd_mixer_class_set_compare</a> (<a class="el" href="group___mixer.html#gcfaafa11f09f1d5e425de98c28626359">snd_mixer_class_t</a> *class_, <a class="el" href="group___mixer.html#gd3edc0567564ec99e613915b9fc0c266">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="#gafa1501403655d4b4182980f35cc9a52"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
The mixer interface. <hr><h2>Define Documentation</h2>
<a class="anchor" name="gb74cbcb3de14b6d57f65b0a314b0d761"></a><!-- doxytag: member="mixer.h::snd_mixer_class_alloca" ref="gb74cbcb3de14b6d57f65b0a314b0d761" 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 width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
allocate an invalid <a class="el" href="group___mixer.html#gcfaafa11f09f1d5e425de98c28626359">snd_mixer_class_t</a> using standard alloca
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>ptr</em> </td><td>returned pointer </td></tr>
</table>
</dl>
</div>
</div><p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g4dc3c4fc95b75a725351dc8e6badc51e"></a><!-- doxytag: member="mixer.h::snd_mixer_callback_t" ref="g4dc3c4fc95b75a725351dc8e6badc51e" 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#g4dc3c4fc95b75a725351dc8e6badc51e">snd_mixer_callback_t</a>(<a class="el" href="group___mixer.html#g7898f9d8a42208bbdb8a27acc1e02325">snd_mixer_t</a> *ctl, unsigned int mask, <a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> *elem) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Mixer callback function.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code </dd></dl>
</div>
</div><p>
<a class="anchor" name="gcfaafa11f09f1d5e425de98c28626359"></a><!-- doxytag: member="mixer.h::snd_mixer_class_t" ref="gcfaafa11f09f1d5e425de98c28626359" 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#gcfaafa11f09f1d5e425de98c28626359">snd_mixer_class_t</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Mixer elements class handle
</div>
</div><p>
<a class="anchor" name="gd3edc0567564ec99e613915b9fc0c266"></a><!-- doxytag: member="mixer.h::snd_mixer_compare_t" ref="gd3edc0567564ec99e613915b9fc0c266" 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#gd3edc0567564ec99e613915b9fc0c266">snd_mixer_compare_t</a>(const <a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> *e1, const <a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> *e2) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Compare function for sorting mixer elements.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>e1</em> </td><td>First element </td></tr>
<tr><td valign="top"></td><td valign="top"><em>e2</em> </td><td>Second element </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>-1 if e1 < e2, 0 if e1 == e2, 1 if e1 > e2 </dd></dl>
</div>
</div><p>
<a class="anchor" name="ge5a8b76b3d124e0bd37cede97b7acf0f"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_callback_t" ref="ge5a8b76b3d124e0bd37cede97b7acf0f" 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#ge5a8b76b3d124e0bd37cede97b7acf0f">snd_mixer_elem_callback_t</a>(<a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> *elem, unsigned int mask) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Mixer element callback function.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>elem</em> </td><td>Mixer element </td></tr>
<tr><td valign="top"></td><td valign="top"><em>mask</em> </td><td>event mask </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code </dd></dl>
</div>
</div><p>
<a class="anchor" name="g5cee4435201cb3107bd49c625f1bc0af"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_t" ref="g5cee4435201cb3107bd49c625f1bc0af" 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#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Mixer element handle
</div>
</div><p>
<a class="anchor" name="g21023a73a2fdf271df69edeb5a02aeb3"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_type_t" ref="g21023a73a2fdf271df69edeb5a02aeb3" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef enum <a class="el" href="group___mixer.html#ga99a4dcac9da72a1b98762dbdb223ad3">_snd_mixer_elem_type</a> <a class="el" href="group___mixer.html#g21023a73a2fdf271df69edeb5a02aeb3">snd_mixer_elem_type_t</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Mixer element type
</div>
</div><p>
<a class="anchor" name="g0d85e8a488faf9a48841eed26f0876fb"></a><!-- doxytag: member="mixer.h::snd_mixer_event_t" ref="g0d85e8a488faf9a48841eed26f0876fb" 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#g0d85e8a488faf9a48841eed26f0876fb">snd_mixer_event_t</a>(<a class="el" href="group___mixer.html#gcfaafa11f09f1d5e425de98c28626359">snd_mixer_class_t</a> *class_, unsigned int mask, <a class="el" href="group___h_control.html#gca792dcc655dc5caf7fd1f75ccc3f3e8">snd_hctl_elem_t</a> *helem, <a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> *melem) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Event callback for the mixer class.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>zero if success, otherwise a negative error value </dd></dl>
</div>
</div><p>
<a class="anchor" name="g7898f9d8a42208bbdb8a27acc1e02325"></a><!-- doxytag: member="mixer.h::snd_mixer_t" ref="g7898f9d8a42208bbdb8a27acc1e02325" 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#g7898f9d8a42208bbdb8a27acc1e02325">snd_mixer_t</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Mixer handle
</div>
</div><p>
<hr><h2>Enumeration Type Documentation</h2>
<a class="anchor" name="ga99a4dcac9da72a1b98762dbdb223ad3"></a><!-- doxytag: member="mixer.h::_snd_mixer_elem_type" ref="ga99a4dcac9da72a1b98762dbdb223ad3" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group___mixer.html#ga99a4dcac9da72a1b98762dbdb223ad3">_snd_mixer_elem_type</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Mixer element type
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g740a0316561dda2e764b9958652fc336"></a><!-- doxytag: member="mixer.h::snd_mixer_attach" ref="g740a0316561dda2e764b9958652fc336" 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#g7898f9d8a42208bbdb8a27acc1e02325">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 width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Attach an HCTL specified with the CTL device name to an opened mixer.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>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#g3c0db161a8a3fe1407c88731ff2c18bd">snd_hctl_open</a>) </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code </dd></dl>
</div>
</div><p>
<a class="anchor" name="g4c3c78142bda3142bb9458f5dfd84dfb"></a><!-- doxytag: member="mixer.h::snd_mixer_attach_hctl" ref="g4c3c78142bda3142bb9458f5dfd84dfb" 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#g7898f9d8a42208bbdb8a27acc1e02325">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#g026390ac507385d40b36850d5dfafcbc">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 width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Attach an HCTL to an opened mixer.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code </dd></dl>
</div>
</div><p>
<a class="anchor" name="g60352483aa60c45068d6cbc693637353"></a><!-- doxytag: member="mixer.h::snd_mixer_class_copy" ref="g60352483aa60c45068d6cbc693637353" 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#gcfaafa11f09f1d5e425de98c28626359">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#gcfaafa11f09f1d5e425de98c28626359">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 width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
copy one <a class="el" href="group___mixer.html#gcfaafa11f09f1d5e425de98c28626359">snd_mixer_class_t</a> to another
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>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>
</dl>
</div>
</div><p>
<a class="anchor" name="g62f1f04b005ed2fad164b812355a959a"></a><!-- doxytag: member="mixer.h::snd_mixer_class_free" ref="g62f1f04b005ed2fad164b812355a959a" 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#gcfaafa11f09f1d5e425de98c28626359">snd_mixer_class_t</a> * </td>
<td class="paramname"> <em>obj</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
frees a previously allocated <a class="el" href="group___mixer.html#gcfaafa11f09f1d5e425de98c28626359">snd_mixer_class_t</a>
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>obj</em> </td><td>pointer to object to free </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="g62f0886e49e32c1f9b2cf9f30c1fca80"></a><!-- doxytag: member="mixer.h::snd_mixer_class_get_compare" ref="g62f0886e49e32c1f9b2cf9f30c1fca80" 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#gd3edc0567564ec99e613915b9fc0c266">snd_mixer_compare_t</a> snd_mixer_class_get_compare </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group___mixer.html#gcfaafa11f09f1d5e425de98c28626359">snd_mixer_class_t</a> * </td>
<td class="paramname"> <em>obj</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Get mixer compare callback associated to given mixer class.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>obj</em> </td><td>Mixer simple class identifier </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>event callback pointer </dd></dl>
</div>
</div><p>
<a class="anchor" name="g157bac647e7adecbf07c0e95428f1e0d"></a><!-- doxytag: member="mixer.h::snd_mixer_class_get_event" ref="g157bac647e7adecbf07c0e95428f1e0d" 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#g0d85e8a488faf9a48841eed26f0876fb">snd_mixer_event_t</a> snd_mixer_class_get_event </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group___mixer.html#gcfaafa11f09f1d5e425de98c28626359">snd_mixer_class_t</a> * </td>
<td class="paramname"> <em>obj</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Get mixer event callback associated to given mixer class.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>obj</em> </td><td>Mixer simple class identifier </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>event callback pointer </dd></dl>
</div>
</div><p>
<a class="anchor" name="g7d1ba46b209a5ba7dd22b757ffcaaf6f"></a><!-- doxytag: member="mixer.h::snd_mixer_class_get_mixer" ref="g7d1ba46b209a5ba7dd22b757ffcaaf6f" 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#g7898f9d8a42208bbdb8a27acc1e02325">snd_mixer_t</a>* snd_mixer_class_get_mixer </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group___mixer.html#gcfaafa11f09f1d5e425de98c28626359">snd_mixer_class_t</a> * </td>
<td class="paramname"> <em>obj</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Get a mixer associated to given mixer class.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>obj</em> </td><td>Mixer simple class identifier </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>mixer pointer </dd></dl>
</div>
</div><p>
<a class="anchor" name="g434bf9d2c2d1e965484b5a65e0771839"></a><!-- doxytag: member="mixer.h::snd_mixer_class_get_private" ref="g434bf9d2c2d1e965484b5a65e0771839" 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#gcfaafa11f09f1d5e425de98c28626359">snd_mixer_class_t</a> * </td>
<td class="paramname"> <em>obj</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Get mixer private data associated to given mixer class.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>obj</em> </td><td>Mixer simple class identifier </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>event callback pointer </dd></dl>
</div>
</div><p>
<a class="anchor" name="g2bbc7ea014d7846e7657d3284227e205"></a><!-- doxytag: member="mixer.h::snd_mixer_class_malloc" ref="g2bbc7ea014d7846e7657d3284227e205" 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#gcfaafa11f09f1d5e425de98c28626359">snd_mixer_class_t</a> ** </td>
<td class="paramname"> <em>ptr</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
allocate an invalid <a class="el" href="group___mixer.html#gcfaafa11f09f1d5e425de98c28626359">snd_mixer_class_t</a> using standard malloc
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>ptr</em> </td><td>returned pointer </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success otherwise negative error code </dd></dl>
</div>
</div><p>
<a class="anchor" name="g5554fd45deaacace7cc5bd4d405ea806"></a><!-- doxytag: member="mixer.h::snd_mixer_class_register" ref="g5554fd45deaacace7cc5bd4d405ea806" 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#gcfaafa11f09f1d5e425de98c28626359">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#g7898f9d8a42208bbdb8a27acc1e02325">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 width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Register mixer element class.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code</dd></dl>
For use by mixer element class specific code.
</div>
</div><p>
<a class="anchor" name="gafa1501403655d4b4182980f35cc9a52"></a><!-- doxytag: member="mixer.h::snd_mixer_class_set_compare" ref="gafa1501403655d4b4182980f35cc9a52" 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#gcfaafa11f09f1d5e425de98c28626359">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#gd3edc0567564ec99e613915b9fc0c266">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 width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Set mixer compare callback to given mixer class.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>obj</em> </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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>zero if success, otherwise a negative error code </dd></dl>
</div>
</div><p>
<a class="anchor" name="g9465a43555ee6941ea5769025fb504a6"></a><!-- doxytag: member="mixer.h::snd_mixer_class_set_event" ref="g9465a43555ee6941ea5769025fb504a6" 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#gcfaafa11f09f1d5e425de98c28626359">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#g0d85e8a488faf9a48841eed26f0876fb">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 width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Set mixer event callback to given mixer class.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>obj</em> </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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>zero if success, otherwise a negative error code </dd></dl>
</div>
</div><p>
<a class="anchor" name="g774818680e03159aa4d0d0be0849d5e5"></a><!-- doxytag: member="mixer.h::snd_mixer_class_set_private" ref="g774818680e03159aa4d0d0be0849d5e5" 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#gcfaafa11f09f1d5e425de98c28626359">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 width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Set mixer private data to given mixer class.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>obj</em> </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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>zero if success, otherwise a negative error code </dd></dl>
</div>
</div><p>
<a class="anchor" name="g820c0c088f7cde87ed4b6c55597a78f5"></a><!-- doxytag: member="mixer.h::snd_mixer_class_sizeof" ref="g820c0c088f7cde87ed4b6c55597a78f5" 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 width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
get size of <a class="el" href="group___mixer.html#gcfaafa11f09f1d5e425de98c28626359">snd_mixer_class_t</a>
<p>
<dl compact><dt><b>Returns:</b></dt><dd>size in bytes </dd></dl>
</div>
</div><p>
<a class="anchor" name="ga65a0eb6909c74dd27b0804be55e8fd8"></a><!-- doxytag: member="mixer.h::snd_mixer_class_unregister" ref="ga65a0eb6909c74dd27b0804be55e8fd8" 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#gcfaafa11f09f1d5e425de98c28626359">snd_mixer_class_t</a> * </td>
<td class="paramname"> <em>class</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Unregister mixer element class and remove all its elements.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>class</em> </td><td>Mixer element class </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code</dd></dl>
Note that the class structure is also deallocated!
</div>
</div><p>
<a class="anchor" name="gfb3f103adbf6e9cd28c3eb6a2663f5e2"></a><!-- doxytag: member="mixer.h::snd_mixer_close" ref="gfb3f103adbf6e9cd28c3eb6a2663f5e2" 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#g7898f9d8a42208bbdb8a27acc1e02325">snd_mixer_t</a> * </td>
<td class="paramname"> <em>mixer</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Close a mixer and free all related resources.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>mixer</em> </td><td>Mixer handle </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code </dd></dl>
</div>
</div><p>
<a class="anchor" name="g3c27767505a486c1425caaa50d56cbc9"></a><!-- doxytag: member="mixer.h::snd_mixer_detach" ref="g3c27767505a486c1425caaa50d56cbc9" 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#g7898f9d8a42208bbdb8a27acc1e02325">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 width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Detach a previously attached HCTL to an opened mixer freeing all related resources.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code </dd></dl>
</div>
</div><p>
<a class="anchor" name="g6aa83901559278be599ac447c39872ea"></a><!-- doxytag: member="mixer.h::snd_mixer_detach_hctl" ref="g6aa83901559278be599ac447c39872ea" 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#g7898f9d8a42208bbdb8a27acc1e02325">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#g026390ac507385d40b36850d5dfafcbc">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 width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Detach a previously attached HCTL to an opened mixer freeing all related resources.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code</dd></dl>
Note: The hctl handle is not closed!
</div>
</div><p>
<a class="anchor" name="g1c77deb60618288946455feb23367c6f"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_add" ref="g1c77deb60618288946455feb23367c6f" 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#g5cee4435201cb3107bd49c625f1bc0af">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#gcfaafa11f09f1d5e425de98c28626359">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 width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Add an element for a registered mixer element class.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>elem</em> </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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code</dd></dl>
For use by mixer element class specific code.
</div>
</div><p>
<a class="anchor" name="g6003c2bb0440425a9396834733351df0"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_attach" ref="g6003c2bb0440425a9396834733351df0" 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#g5cee4435201cb3107bd49c625f1bc0af">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#gca792dcc655dc5caf7fd1f75ccc3f3e8">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 width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Attach an HCTL element to a mixer element.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code</dd></dl>
For use by mixer element class specific code.
</div>
</div><p>
<a class="anchor" name="g59469e2368383166af7201e113ceeaf5"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_detach" ref="g59469e2368383166af7201e113ceeaf5" 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#g5cee4435201cb3107bd49c625f1bc0af">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#gca792dcc655dc5caf7fd1f75ccc3f3e8">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 width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Detach an HCTL element from a mixer element.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code</dd></dl>
For use by mixer element class specific code.
</div>
</div><p>
<a class="anchor" name="g972fbb87fb0a76505500e720d6cc3826"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_empty" ref="g972fbb87fb0a76505500e720d6cc3826" 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#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> * </td>
<td class="paramname"> <em>melem</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Return true if a mixer element does not contain any HCTL elements.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>melem</em> </td><td>Mixer element </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 if not empty, 1 if empty</dd></dl>
For use by mixer element class specific code.
</div>
</div><p>
<a class="anchor" name="g3b831e44cde7c19d0d0ee6d701611ed9"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_free" ref="g3b831e44cde7c19d0d0ee6d701611ed9" 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#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> * </td>
<td class="paramname"> <em>elem</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Free a mixer element.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>elem</em> </td><td>Mixer element </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code</dd></dl>
For use by mixer element class specific code.
</div>
</div><p>
<a class="anchor" name="g1ef07e90fea79c5e2e731b3222556bb2"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_get_callback_private" ref="g1ef07e90fea79c5e2e731b3222556bb2" 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#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> * </td>
<td class="paramname"> <em>mixer</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Get callback private value for a mixer element.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>mixer</em> </td><td>mixer element </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>callback private value </dd></dl>
</div>
</div><p>
<a class="anchor" name="g3fc264d15c6a713ca6679c74750855ec"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_get_private" ref="g3fc264d15c6a713ca6679c74750855ec" 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#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> * </td>
<td class="paramname"> <em>elem</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Get private data associated to give mixer element.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>elem</em> </td><td>Mixer element </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>private data</dd></dl>
For use by mixer element class specific code.
</div>
</div><p>
<a class="anchor" name="g86adeb2a59d90b847d9f3451ad6da5cd"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_get_type" ref="g86adeb2a59d90b847d9f3451ad6da5cd" 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#g21023a73a2fdf271df69edeb5a02aeb3">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#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> * </td>
<td class="paramname"> <em>mixer</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Get type for a mixer element.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>mixer</em> </td><td>mixer element </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>mixer element type </dd></dl>
</div>
</div><p>
<a class="anchor" name="g7d64d829bf8b38e28e66070f087043a9"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_info" ref="g7d64d829bf8b38e28e66070f087043a9" 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#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> * </td>
<td class="paramname"> <em>elem</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Mixer element informations are changed.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>elem</em> </td><td>Mixer element </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code</dd></dl>
For use by mixer element class specific code.
</div>
</div><p>
<a class="anchor" name="g8404a2af7b19957403aa3a226f9c28e1"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_new" ref="g8404a2af7b19957403aa3a226f9c28e1" 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#g5cee4435201cb3107bd49c625f1bc0af">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#g21023a73a2fdf271df69edeb5a02aeb3">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#g5cee4435201cb3107bd49c625f1bc0af">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 width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Allocate a new mixer element.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>elem</em> </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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code</dd></dl>
For use by mixer element class specific code.
</div>
</div><p>
<a class="anchor" name="g5e7af2c16b088ac3ded8a1848f7e151d"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_next" ref="g5e7af2c16b088ac3ded8a1848f7e151d" 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#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a>* snd_mixer_elem_next </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> * </td>
<td class="paramname"> <em>elem</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
get next mixer element
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>elem</em> </td><td>mixer element </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>pointer to next element </dd></dl>
</div>
</div><p>
<a class="anchor" name="gb294f6a2545b8441a3b65db5b283a8b0"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_prev" ref="gb294f6a2545b8441a3b65db5b283a8b0" 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#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a>* snd_mixer_elem_prev </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___mixer.html#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> * </td>
<td class="paramname"> <em>elem</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
get previous mixer element
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>elem</em> </td><td>mixer element </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>pointer to previous element </dd></dl>
</div>
</div><p>
<a class="anchor" name="gd12dc8ba10e3e060e56edc4a794acefa"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_remove" ref="gd12dc8ba10e3e060e56edc4a794acefa" 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#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> * </td>
<td class="paramname"> <em>elem</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Remove a mixer element.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>elem</em> </td><td>Mixer element </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code</dd></dl>
For use by mixer element class specific code.
</div>
</div><p>
<a class="anchor" name="g3b302d9a9e6c8125d7fd8814740eb9bc"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_set_callback" ref="g3b302d9a9e6c8125d7fd8814740eb9bc" 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#g5cee4435201cb3107bd49c625f1bc0af">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#ge5a8b76b3d124e0bd37cede97b7acf0f">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 width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Set callback function for a mixer element.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>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>
</dl>
</div>
</div><p>
<a class="anchor" name="g900fb132b05fdb6cc157fb250ac78951"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_set_callback_private" ref="g900fb132b05fdb6cc157fb250ac78951" 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#g5cee4435201cb3107bd49c625f1bc0af">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 width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Set callback private value for a mixer element.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>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>
</dl>
</div>
</div><p>
<a class="anchor" name="gd50fb598467fd7f5398b6b27089676f6"></a><!-- doxytag: member="mixer.h::snd_mixer_elem_value" ref="gd50fb598467fd7f5398b6b27089676f6" 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#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a> * </td>
<td class="paramname"> <em>elem</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Mixer element values is changed.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>elem</em> </td><td>Mixer element </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code</dd></dl>
For use by mixer element class specific code.
</div>
</div><p>
<a class="anchor" name="g6186f3f72c0a79758b77758ddd1b8e75"></a><!-- doxytag: member="mixer.h::snd_mixer_first_elem" ref="g6186f3f72c0a79758b77758ddd1b8e75" 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#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a>* snd_mixer_first_elem </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___mixer.html#g7898f9d8a42208bbdb8a27acc1e02325">snd_mixer_t</a> * </td>
<td class="paramname"> <em>mixer</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
get first element for a mixer
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>mixer</em> </td><td>Mixer handle </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>pointer to first element </dd></dl>
</div>
</div><p>
<a class="anchor" name="g3333cbffd7b225ff83b52ad5ff4db690"></a><!-- doxytag: member="mixer.h::snd_mixer_free" ref="g3333cbffd7b225ff83b52ad5ff4db690" 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#g7898f9d8a42208bbdb8a27acc1e02325">snd_mixer_t</a> * </td>
<td class="paramname"> <em>mixer</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Unload all mixer elements and free all related resources.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>mixer</em> </td><td>Mixer handle </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="g1948858287f6b92d7e0594a3c5a1144a"></a><!-- doxytag: member="mixer.h::snd_mixer_get_callback_private" ref="g1948858287f6b92d7e0594a3c5a1144a" 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#g7898f9d8a42208bbdb8a27acc1e02325">snd_mixer_t</a> * </td>
<td class="paramname"> <em>mixer</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Get callback private value for a mixer.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>mixer</em> </td><td>mixer handle </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>callback private value </dd></dl>
</div>
</div><p>
<a class="anchor" name="g444c47b34d6480ebe185cea0c787f138"></a><!-- doxytag: member="mixer.h::snd_mixer_get_count" ref="g444c47b34d6480ebe185cea0c787f138" 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#g7898f9d8a42208bbdb8a27acc1e02325">snd_mixer_t</a> * </td>
<td class="paramname"> <em>mixer</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Get elements count for a mixer.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>mixer</em> </td><td>mixer handle </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>elements count </dd></dl>
</div>
</div><p>
<a class="anchor" name="g2ecae8e0e316cccda293dade1e3f9519"></a><!-- doxytag: member="mixer.h::snd_mixer_get_hctl" ref="g2ecae8e0e316cccda293dade1e3f9519" 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#g7898f9d8a42208bbdb8a27acc1e02325">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#g026390ac507385d40b36850d5dfafcbc">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 width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Obtain a HCTL pointer associated to given name.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code </dd></dl>
</div>
</div><p>
<a class="anchor" name="ga5d17a7d0e70b4c198fcf9d23e6b8514"></a><!-- doxytag: member="mixer.h::snd_mixer_handle_events" ref="ga5d17a7d0e70b4c198fcf9d23e6b8514" 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#g7898f9d8a42208bbdb8a27acc1e02325">snd_mixer_t</a> * </td>
<td class="paramname"> <em>mixer</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Handle pending mixer events invoking callbacks.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>mixer</em> </td><td>Mixer handle </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>Number of events that occured on success, otherwise a negative error code on failure </dd></dl>
</div>
</div><p>
<a class="anchor" name="g6fbd100367a656a90702d37334488583"></a><!-- doxytag: member="mixer.h::snd_mixer_last_elem" ref="g6fbd100367a656a90702d37334488583" 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#g5cee4435201cb3107bd49c625f1bc0af">snd_mixer_elem_t</a>* snd_mixer_last_elem </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___mixer.html#g7898f9d8a42208bbdb8a27acc1e02325">snd_mixer_t</a> * </td>
<td class="paramname"> <em>mixer</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
get last element for a mixer
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>mixer</em> </td><td>Mixer handle </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>pointer to last element </dd></dl>
</div>
</div><p>
<a class="anchor" name="gccd3c60b4c1c4135a14945e28d228374"></a><!-- doxytag: member="mixer.h::snd_mixer_load" ref="gccd3c60b4c1c4135a14945e28d228374" 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#g7898f9d8a42208bbdb8a27acc1e02325">snd_mixer_t</a> * </td>
<td class="paramname"> <em>mixer</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Load a mixer elements.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>mixer</em> </td><td>Mixer handle </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code </dd></dl>
</div>
</div><p>
<a class="anchor" name="g90601adb3be1148e7f9ea8b8d72ea1f9"></a><!-- doxytag: member="mixer.h::snd_mixer_open" ref="g90601adb3be1148e7f9ea8b8d72ea1f9" 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#g7898f9d8a42208bbdb8a27acc1e02325">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 width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Opens an empty mixer.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code </dd></dl>
</div>
</div><p>
<a class="anchor" name="g7eec8c8d8916e08388c0dd66d44477ee"></a><!-- doxytag: member="mixer.h::snd_mixer_poll_descriptors" ref="g7eec8c8d8916e08388c0dd66d44477ee" 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#g7898f9d8a42208bbdb8a27acc1e02325">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 width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
get poll descriptors
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>count of filled descriptors </dd></dl>
</div>
</div><p>
<a class="anchor" name="g9060e820cb885c2ce2402bd73def2c75"></a><!-- doxytag: member="mixer.h::snd_mixer_poll_descriptors_count" ref="g9060e820cb885c2ce2402bd73def2c75" 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#g7898f9d8a42208bbdb8a27acc1e02325">snd_mixer_t</a> * </td>
<td class="paramname"> <em>mixer</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
get count of poll descriptors for mixer handle
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>mixer</em> </td><td>Mixer handle </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>count of poll descriptors </dd></dl>
</div>
</div><p>
<a class="anchor" name="gb8859209756614288dbd4c998d5458da"></a><!-- doxytag: member="mixer.h::snd_mixer_poll_descriptors_revents" ref="gb8859209756614288dbd4c998d5458da" 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#g7898f9d8a42208bbdb8a27acc1e02325">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 width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
get returned events from poll descriptors
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>zero if success, otherwise a negative error code </dd></dl>
</div>
</div><p>
<a class="anchor" name="g249c478636d50f1e1e08c969b4a8019b"></a><!-- doxytag: member="mixer.h::snd_mixer_set_callback" ref="g249c478636d50f1e1e08c969b4a8019b" 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#g7898f9d8a42208bbdb8a27acc1e02325">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#g4dc3c4fc95b75a725351dc8e6badc51e">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 width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Set callback function for a mixer.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>obj</em> </td><td>mixer handle </td></tr>
<tr><td valign="top"></td><td valign="top"><em>val</em> </td><td>callback function </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="gc38782c2eca9742c1cc0df5759951d02"></a><!-- doxytag: member="mixer.h::snd_mixer_set_callback_private" ref="gc38782c2eca9742c1cc0df5759951d02" 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#g7898f9d8a42208bbdb8a27acc1e02325">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 width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Set callback private value for a mixer.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>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>
</dl>
</div>
</div><p>
<a class="anchor" name="ga8046daa5ccafeb902e11e2d167d4ff9"></a><!-- doxytag: member="mixer.h::snd_mixer_set_compare" ref="ga8046daa5ccafeb902e11e2d167d4ff9" 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#g7898f9d8a42208bbdb8a27acc1e02325">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#gd3edc0567564ec99e613915b9fc0c266">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 width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Change mixer compare function and reorder elements.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code </dd></dl>
</div>
</div><p>
<a class="anchor" name="g19f23454eba09bf7a75448237f570245"></a><!-- doxytag: member="mixer.h::snd_mixer_wait" ref="g19f23454eba09bf7a75448237f570245" 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#g7898f9d8a42208bbdb8a27acc1e02325">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 width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Wait for a mixer to become ready (i.e. at least one event pending).
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 otherwise a negative error code on failure </dd></dl>
</div>
</div><p>
<hr size="1"><address style="align: right;"><small>Generated on Tue Jan 20 22:42:11 2009 for ALSA project - the C library reference by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>