Current File : //proc/self/root/kunden/usr/share/doc/alsa-lib-devel/doxygen/html/group___plugin___s_d_k.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ALSA project - the C library reference: External PCM plugin SDK</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">ALSA project - the C library reference
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#groups">Modules</a> &#124;
<a href="#files">Files</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">External PCM plugin SDK</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
Modules</h2></td></tr>
<tr class="memitem:group___p_c_m___ext_plug"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_c_m___ext_plug.html">External Filter plugin SDK</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group___p_c_m___i_o_plug"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_c_m___i_o_plug.html">External I/O plugin SDK</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
Files</h2></td></tr>
<tr class="memitem:pcm__extplug_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pcm__extplug_8c.html">pcm_extplug.c</a></td></tr>
<tr class="memdesc:pcm__extplug_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">External Filter Plugin SDK. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:pcm__ioplug_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pcm__ioplug_8c.html">pcm_ioplug.c</a></td></tr>
<tr class="memdesc:pcm__ioplug_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">I/O Plugin SDK. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:gaf1fae79f689774a0bdb72a5e15f5978c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___plugin___s_d_k.html#gaf1fae79f689774a0bdb72a5e15f5978c">SND_PCM_PLUGIN_ENTRY</a>(name)&#160;&#160;&#160;_snd_pcm_##name##_open</td></tr>
<tr class="separator:gaf1fae79f689774a0bdb72a5e15f5978c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga73a613cc5b7b3642f53bbd5a1d78004b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___plugin___s_d_k.html#ga73a613cc5b7b3642f53bbd5a1d78004b">SND_PCM_PLUGIN_SYMBOL</a>(name)&#160;&#160;&#160;<a class="el" href="group___global.html#ga355c462c8c5dee0aeadae17d096ba531">SND_DLSYM_BUILD_VERSION</a>(<a class="el" href="group___plugin___s_d_k.html#gaf1fae79f689774a0bdb72a5e15f5978c">SND_PCM_PLUGIN_ENTRY</a>(name), <a class="el" href="group___p_c_m.html#ga32ccf47736036e86b0d787dc43e64d4a">SND_PCM_DLSYM_VERSION</a>);</td></tr>
<tr class="separator:ga73a613cc5b7b3642f53bbd5a1d78004b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3fd72ea47a7a921943b26c580b9d6c41"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___plugin___s_d_k.html#ga3fd72ea47a7a921943b26c580b9d6c41">SND_PCM_PLUGIN_DEFINE_FUNC</a>(plugin)</td></tr>
<tr class="separator:ga3fd72ea47a7a921943b26c580b9d6c41"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga6cc0e84dc2822458b4ed163071a51ecd"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___plugin___s_d_k.html#ga6cc0e84dc2822458b4ed163071a51ecd">snd_pcm_parse_control_id</a> (<a class="el" href="group___configuration.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *conf, <a class="el" href="group___control.html#gad6c3746f1925bfec6a4fd0e913430e55">snd_ctl_elem_id_t</a> *ctl_id, int *cardp, int *cchannelsp, int *hwctlp)</td></tr>
<tr class="memdesc:ga6cc0e84dc2822458b4ed163071a51ecd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse control element id from the config.  <a href="group___plugin___s_d_k.html#ga6cc0e84dc2822458b4ed163071a51ecd">More...</a><br /></td></tr>
<tr class="separator:ga6cc0e84dc2822458b4ed163071a51ecd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="ga3fd72ea47a7a921943b26c580b9d6c41"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3fd72ea47a7a921943b26c580b9d6c41">&#9670;&nbsp;</a></span>SND_PCM_PLUGIN_DEFINE_FUNC</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SND_PCM_PLUGIN_DEFINE_FUNC</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">plugin</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="group___plugin___s_d_k.html#gaf1fae79f689774a0bdb72a5e15f5978c">SND_PCM_PLUGIN_ENTRY</a>(plugin) (<a class="code" href="group___p_c_m.html#ga919e634deecd855b6e2e15174e70d3ea">snd_pcm_t</a> **pcmp, <span class="keyword">const</span> <span class="keywordtype">char</span> *name,\</div>
<div class="line">                  snd_config_t *root, <a class="code" href="group___configuration.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *conf, \</div>
<div class="line">                  snd_pcm_stream_t stream, <span class="keywordtype">int</span> mode)</div>
<div class="ttc" id="agroup___configuration_html_ga1c20905af775ae77d04d1a5696f67985"><div class="ttname"><a href="group___configuration.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a></div><div class="ttdeci">struct _snd_config snd_config_t</div><div class="ttdoc">Internal structure for a configuration node object.</div><div class="ttdef"><b>Definition:</b> conf.h:69</div></div>
<div class="ttc" id="agroup___p_c_m_html_ga919e634deecd855b6e2e15174e70d3ea"><div class="ttname"><a href="group___p_c_m.html#ga919e634deecd855b6e2e15174e70d3ea">snd_pcm_t</a></div><div class="ttdeci">struct _snd_pcm snd_pcm_t</div><div class="ttdef"><b>Definition:</b> pcm.h:418</div></div>
<div class="ttc" id="agroup___plugin___s_d_k_html_gaf1fae79f689774a0bdb72a5e15f5978c"><div class="ttname"><a href="group___plugin___s_d_k.html#gaf1fae79f689774a0bdb72a5e15f5978c">SND_PCM_PLUGIN_ENTRY</a></div><div class="ttdeci">#define SND_PCM_PLUGIN_ENTRY(name)</div><div class="ttdef"><b>Definition:</b> pcm_external.h:43</div></div>
</div><!-- fragment --><p>Define the plugin </p>

</div>
</div>
<a id="gaf1fae79f689774a0bdb72a5e15f5978c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf1fae79f689774a0bdb72a5e15f5978c">&#9670;&nbsp;</a></span>SND_PCM_PLUGIN_ENTRY</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SND_PCM_PLUGIN_ENTRY</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">name</td><td>)</td>
          <td>&#160;&#160;&#160;_snd_pcm_##name##_open</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Define the object entry for external PCM plugins </p>

</div>
</div>
<a id="ga73a613cc5b7b3642f53bbd5a1d78004b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga73a613cc5b7b3642f53bbd5a1d78004b">&#9670;&nbsp;</a></span>SND_PCM_PLUGIN_SYMBOL</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SND_PCM_PLUGIN_SYMBOL</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">name</td><td>)</td>
          <td>&#160;&#160;&#160;<a class="el" href="group___global.html#ga355c462c8c5dee0aeadae17d096ba531">SND_DLSYM_BUILD_VERSION</a>(<a class="el" href="group___plugin___s_d_k.html#gaf1fae79f689774a0bdb72a5e15f5978c">SND_PCM_PLUGIN_ENTRY</a>(name), <a class="el" href="group___p_c_m.html#ga32ccf47736036e86b0d787dc43e64d4a">SND_PCM_DLSYM_VERSION</a>);</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Define the symbols of the given plugin with versions </p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga6cc0e84dc2822458b4ed163071a51ecd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6cc0e84dc2822458b4ed163071a51ecd">&#9670;&nbsp;</a></span>snd_pcm_parse_control_id()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_pcm_parse_control_id </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___configuration.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *&#160;</td>
          <td class="paramname"><em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___control.html#gad6c3746f1925bfec6a4fd0e913430e55">snd_ctl_elem_id_t</a> *&#160;</td>
          <td class="paramname"><em>ctl_id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>cardp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>cchannelsp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>hwctlp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Parse control element id from the config. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">conf</td><td>the config tree to parse </td></tr>
    <tr><td class="paramname">ctl_id</td><td>the pointer to store the resultant control element id </td></tr>
    <tr><td class="paramname">cardp</td><td>the pointer to store the card index </td></tr>
    <tr><td class="paramname">cchannelsp</td><td>the pointer to store the number of channels (optional) </td></tr>
    <tr><td class="paramname">hwctlp</td><td>the pointer to store the h/w control flag (optional) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, or a negative error code</dd></dl>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000006">Deprecated:</a></b></dt><dd>Since 1.2.5 This function parses the given config tree to retrieve the control element id and the card index. It's used by softvol. External PCM plugins can use this function for creating or assigining their controls.</dd></dl>
<p>cchannelsp and hwctlp arguments are optional. Set NULL if not necessary. </p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
</small></address>
</body>
</html>