Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > a9c350d829560247cbd4473be3ac9eea > files > 13

libffado-devel-2.0.1-4.20100706.svn1864.fc14.i686.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>LIBFFADO: ffado.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.1 -->
<script type="text/javascript">
function hasClass(ele,cls) {
  return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}

function addClass(ele,cls) {
  if (!this.hasClass(ele,cls)) ele.className += " "+cls;
}

function removeClass(ele,cls) {
  if (hasClass(ele,cls)) {
    var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
    ele.className=ele.className.replace(reg,' ');
  }
}

function toggleVisibility(linkObj) {
 var base = linkObj.getAttribute('id');
 var summary = document.getElementById(base + '-summary');
 var content = document.getElementById(base + '-content');
 var trigger = document.getElementById(base + '-trigger');
 if ( hasClass(linkObj,'closed') ) {
   summary.style.display = 'none';
   content.style.display = 'block';
   trigger.src = 'open.png';
   removeClass(linkObj,'closed');
   addClass(linkObj,'opened');
 } else if ( hasClass(linkObj,'opened') ) {
   summary.style.display = 'block';
   content.style.display = 'none';
   trigger.src = 'closed.png';
   removeClass(linkObj,'opened');
   addClass(linkObj,'closed');
 }
 return false;
}
</script>
<div class="navigation" id="top">
  <div class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#define-members">Defines</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<h1>ffado.h File Reference</h1>  </div>
</div>
<div class="contents">
<code>#include &lt;stdlib.h&gt;</code><br/>

<p><a href="ffado_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structffado__device__info.html">ffado_device_info</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structffado__options.html">ffado_options</a></td></tr>
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#a06fbf52dd0e9ed8c932b0043305098c7">FFADO_MAX_NAME_LEN</a>&nbsp;&nbsp;&nbsp;256</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#a69a67820ab7f047163d4ce7bbb41fcbe">FFADO_STREAMING_MAX_URL_LENGTH</a>&nbsp;&nbsp;&nbsp;2048</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#a33dbcdcadd3bf9703aa4171849dc6ed9">FFADO_IGNORE_CAPTURE</a>&nbsp;&nbsp;&nbsp;(1&lt;&lt;0)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#a82a6e94216d0672b07c1d8f52ddcf501">FFADO_IGNORE_PLAYBACK</a>&nbsp;&nbsp;&nbsp;(1&lt;&lt;1)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#ae9cad2cd03e596231bfad807f026d409">FFADO_MAX_SPECSTRING_LENGTH</a>&nbsp;&nbsp;&nbsp;256</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#a967e91d3f20717cc988d4655f34284cc">FFADO_MAX_SPECSTRINGS</a>&nbsp;&nbsp;&nbsp;64</td></tr>
<tr><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct ffado_handle *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#a6cee5288da4bbcac7ef3b7d768bb104f">ffado_handle_t</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct _ffado_device&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#aa8ddad9af89c48492223356376528447">ffado_sample_t</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#ae5f80cddec32a4ec608b747fa725a215">ffado_nframes_t</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structffado__device__info.html">ffado_device_info</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#a8311cffe3177718ba8ccfff5ba7da73b">ffado_device_info_t</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structffado__options.html">ffado_options</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#a50ff4581b7ecd5d3280df0a3cb992b62">ffado_options_t</a></td></tr>
<tr><td colspan="2"><h2><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#ab8ee9ac9d189e1af60cd93f8dfcd495b">ffado_direction</a> { <a class="el" href="ffado_8h.html#ab8ee9ac9d189e1af60cd93f8dfcd495ba9ba7f302b9ce79977dfa97b704fcd119">FFADO_CAPTURE</a> =  0, 
<a class="el" href="ffado_8h.html#ab8ee9ac9d189e1af60cd93f8dfcd495ba477a2264620788148dfc751911104696">FFADO_PLAYBACK</a> =  1
 }</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#ad951231df410434aade1438062960ce2">ffado_streaming_stream_type</a> { <br/>
&nbsp;&nbsp;<a class="el" href="ffado_8h.html#ad951231df410434aade1438062960ce2aad7b1467f9be5a644a70fc7ecc3a873f">ffado_stream_type_invalid</a> =  -1, 
<a class="el" href="ffado_8h.html#ad951231df410434aade1438062960ce2a0322dec9795ba78cdc88f411f81af038">ffado_stream_type_unknown</a> =  0, 
<a class="el" href="ffado_8h.html#ad951231df410434aade1438062960ce2a97b6d9c9936eedbe2dd341156354b67e">ffado_stream_type_audio</a> =  1, 
<a class="el" href="ffado_8h.html#ad951231df410434aade1438062960ce2a683c714613500c5b0416b353c2c266e6">ffado_stream_type_midi</a> =  2, 
<br/>
&nbsp;&nbsp;<a class="el" href="ffado_8h.html#ad951231df410434aade1438062960ce2a8b13ba44528ce7d0de36565c38501c99">ffado_stream_type_control</a> =  3
<br/>
 }</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#a2893d390b58431470d0bd1191f1f568c">ffado_streaming_audio_datatype</a> { <a class="el" href="ffado_8h.html#a2893d390b58431470d0bd1191f1f568cae27fc83ddcc0d322a1fbae28275d638d">ffado_audio_datatype_error</a> =  -1, 
<a class="el" href="ffado_8h.html#a2893d390b58431470d0bd1191f1f568ca14c285c45fa3931fe559a8a1b1db4d6a">ffado_audio_datatype_int24</a> =  0, 
<a class="el" href="ffado_8h.html#a2893d390b58431470d0bd1191f1f568ca6a1f23f0d851d268d0808c1deab4f957">ffado_audio_datatype_float</a> =  1
 }</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#a022a8af7c32500c581526378f93ec962">ffado_wait_response</a> { <a class="el" href="ffado_8h.html#a022a8af7c32500c581526378f93ec962af8fae5a8c7d33e26e5042eb88ae14392">ffado_wait_shutdown</a> =  -3, 
<a class="el" href="ffado_8h.html#a022a8af7c32500c581526378f93ec962a2089a9ef0acfe03681871c5f9131f70c">ffado_wait_error</a> =  -2, 
<a class="el" href="ffado_8h.html#a022a8af7c32500c581526378f93ec962aa9dfbfbee49f3e196dc1c4cb86483423">ffado_wait_xrun</a> =  -1, 
<a class="el" href="ffado_8h.html#a022a8af7c32500c581526378f93ec962a759bf1cb51512a1045fb9b9ee6f4d3a4">ffado_wait_ok</a> =  0
 }</td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#ae3874fc8eeef725414b209ee99fd9632">ffado_get_version</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#a752a9c9211e61c45a49c2b4cb3b83936">ffado_get_api_version</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#a12dcfdad383cf44bc8f44d0a77168780">ffado_streaming_init</a> (<a class="el" href="structffado__device__info.html">ffado_device_info_t</a> device_info, <a class="el" href="structffado__options.html">ffado_options_t</a> options)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#a510f745b2d5515f3692a0c0b097f8014">ffado_streaming_prepare</a> (<a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *dev)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#ab92d18a1f0e580c966287d799be5dceb">ffado_streaming_finish</a> (<a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *dev)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#a29c6be45adcbeb9ce74dcefb4c42d584">ffado_streaming_get_nb_capture_streams</a> (<a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *dev)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#abe6a50886aed02a5ddb5d1ea8b022629">ffado_streaming_get_nb_playback_streams</a> (<a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *dev)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#a2522f2adcbfd17e1643ae8f146f5e239">ffado_streaming_get_capture_stream_name</a> (<a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *dev, int number, char *buffer, size_t buffersize)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#a3301642dc2f3af1657904c6678a23165">ffado_streaming_get_playback_stream_name</a> (<a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *dev, int number, char *buffer, size_t buffersize)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="ffado_8h.html#ad951231df410434aade1438062960ce2">ffado_streaming_stream_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#a5b2ac34feed6f1ce3708de7783d56240">ffado_streaming_get_capture_stream_type</a> (<a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *dev, int number)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="ffado_8h.html#ad951231df410434aade1438062960ce2">ffado_streaming_stream_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#ad77c94bde9274a14fd5cbd967c5893fb">ffado_streaming_get_playback_stream_type</a> (<a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *dev, int number)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#a68ecec674c862e2365359fb8d1294f56">ffado_streaming_set_capture_stream_buffer</a> (<a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *dev, int number, char *buff)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#af588c0a752de1e58e86784560d11279f">ffado_streaming_capture_stream_onoff</a> (<a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *dev, int number, int on)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#a8d5e2ff8a3094e6018a25b1c2b333027">ffado_streaming_set_playback_stream_buffer</a> (<a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *dev, int number, char *buff)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#a554517c036886cc5cfb06759cc2a07ec">ffado_streaming_playback_stream_onoff</a> (<a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *dev, int number, int on)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="ffado_8h.html#a2893d390b58431470d0bd1191f1f568c">ffado_streaming_audio_datatype</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#af2c5f569cae38c7956f4c935840e9f7d">ffado_streaming_get_audio_datatype</a> (<a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *dev)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#af6cfbf9c09b869c722e6fcf6599e44e1">ffado_streaming_set_audio_datatype</a> (<a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *dev, <a class="el" href="ffado_8h.html#a2893d390b58431470d0bd1191f1f568c">ffado_streaming_audio_datatype</a> t)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#a50fd6f65789689533c649be3fdba28eb">ffado_streaming_start</a> (<a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *dev)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#a2ac22d23856127c6015088ea16e570af">ffado_streaming_stop</a> (<a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *dev)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#a7fd912af84d77929286e4c16ebf5e741">ffado_streaming_reset</a> (<a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *dev)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="ffado_8h.html#a022a8af7c32500c581526378f93ec962">ffado_wait_response</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#a12ef2ee375ad21cc3316d79151278415">ffado_streaming_wait</a> (<a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *dev)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#ab7fb46b71d7296dc65ecaa011f1852ef">ffado_streaming_transfer_buffers</a> (<a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *dev)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#a25684a8662cad73ea170bd285d1a2210">ffado_streaming_transfer_playback_buffers</a> (<a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *dev)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ffado_8h.html#ae37402898bb30bb58fb79af7ba85c089">ffado_streaming_transfer_capture_buffers</a> (<a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *dev)</td></tr>
</table>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="a33dbcdcadd3bf9703aa4171849dc6ed9"></a><!-- doxytag: member="ffado.h::FFADO_IGNORE_CAPTURE" ref="a33dbcdcadd3bf9703aa4171849dc6ed9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define FFADO_IGNORE_CAPTURE&nbsp;&nbsp;&nbsp;(1&lt;&lt;0)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a82a6e94216d0672b07c1d8f52ddcf501"></a><!-- doxytag: member="ffado.h::FFADO_IGNORE_PLAYBACK" ref="a82a6e94216d0672b07c1d8f52ddcf501" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define FFADO_IGNORE_PLAYBACK&nbsp;&nbsp;&nbsp;(1&lt;&lt;1)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a06fbf52dd0e9ed8c932b0043305098c7"></a><!-- doxytag: member="ffado.h::FFADO_MAX_NAME_LEN" ref="a06fbf52dd0e9ed8c932b0043305098c7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define FFADO_MAX_NAME_LEN&nbsp;&nbsp;&nbsp;256</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ae9cad2cd03e596231bfad807f026d409"></a><!-- doxytag: member="ffado.h::FFADO_MAX_SPECSTRING_LENGTH" ref="ae9cad2cd03e596231bfad807f026d409" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define FFADO_MAX_SPECSTRING_LENGTH&nbsp;&nbsp;&nbsp;256</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a967e91d3f20717cc988d4655f34284cc"></a><!-- doxytag: member="ffado.h::FFADO_MAX_SPECSTRINGS" ref="a967e91d3f20717cc988d4655f34284cc" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define FFADO_MAX_SPECSTRINGS&nbsp;&nbsp;&nbsp;64</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a69a67820ab7f047163d4ce7bbb41fcbe"></a><!-- doxytag: member="ffado.h::FFADO_STREAMING_MAX_URL_LENGTH" ref="a69a67820ab7f047163d4ce7bbb41fcbe" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define FFADO_STREAMING_MAX_URL_LENGTH&nbsp;&nbsp;&nbsp;2048</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="a8311cffe3177718ba8ccfff5ba7da73b"></a><!-- doxytag: member="ffado.h::ffado_device_info_t" ref="a8311cffe3177718ba8ccfff5ba7da73b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structffado__device__info.html">ffado_device_info</a>  <a class="el" href="structffado__device__info.html">ffado_device_info_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This struct serves to define the devices that should be used by the library device_spec_strings is an array of pointers that should contain nb_device_spec_strings valid pointers to strings.</p>
<p>The spec strings should be null terminated and can be no longer than FFADO_MAX_SPECSTRINGS.</p>
<p>nb_device_spec_strings &lt; FFADO_MAX_SPECSTRING_LENGTH nb_device_spec_strings &gt;= 0</p>
<p>If nb_device_spec_strings == 0, all busses are scanned for attached devices, and all found devices that are supported are combined into one large pseudo-device. The device order is defined by the GUID of the device. Devices with lower GUID's will be the first ones.</p>
<p>If multiple device specifications are present, the device order is defined as follows:</p>
<ul>
<li>device(s) that correspond to a spec string with a lower index will be added before devices from higher indexes.</li>
<li>if a spec string results in multiple devices, they are sorted by GUID unless the spec format dictates otherwise.</li>
</ul>
<p>The actual meaning of the device specification should be one of the following:</p>
<ul>
<li>Format 1: "hw:x[,y[,z]]" x = the firewire bus to use ('port' in raw1394 terminology) (mandatory) y = the node id the device currently has (bus resets might change that, but FFADO will track these changes and keep using the device specified on startup) (optional) z = the stream direction to use. 0 =&gt; capture (record) channels only 1 =&gt; playback channels only other/unspecified =&gt; both playback and capture (optional)</li>
</ul>
<ul>
<li>Format 2: the device alias as defined in the ffado config file (UNIMPLEMENTED) </li>
</ul>

</div>
</div>
<a class="anchor" id="af63ec4fee431588343a8d4b73c8e102c"></a><!-- doxytag: member="ffado.h::ffado_device_t" ref="af63ec4fee431588343a8d4b73c8e102c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct _ffado_device <a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a6cee5288da4bbcac7ef3b7d768bb104f"></a><!-- doxytag: member="ffado.h::ffado_handle_t" ref="a6cee5288da4bbcac7ef3b7d768bb104f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct ffado_handle* <a class="el" href="ffado_8h.html#a6cee5288da4bbcac7ef3b7d768bb104f">ffado_handle_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ae5f80cddec32a4ec608b747fa725a215"></a><!-- doxytag: member="ffado.h::ffado_nframes_t" ref="ae5f80cddec32a4ec608b747fa725a215" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef unsigned int <a class="el" href="ffado_8h.html#ae5f80cddec32a4ec608b747fa725a215">ffado_nframes_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a50ff4581b7ecd5d3280df0a3cb992b62"></a><!-- doxytag: member="ffado.h::ffado_options_t" ref="a50ff4581b7ecd5d3280df0a3cb992b62" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structffado__options.html">ffado_options</a>  <a class="el" href="structffado__options.html">ffado_options_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Structure to pass the options to the ffado streaming code. </p>

</div>
</div>
<a class="anchor" id="aa8ddad9af89c48492223356376528447"></a><!-- doxytag: member="ffado.h::ffado_sample_t" ref="aa8ddad9af89c48492223356376528447" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef unsigned int <a class="el" href="ffado_8h.html#aa8ddad9af89c48492223356376528447">ffado_sample_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>The sample format used by the ffado streaming API </p>

</div>
</div>
<hr/><h2>Enumeration Type Documentation</h2>
<a class="anchor" id="ab8ee9ac9d189e1af60cd93f8dfcd495b"></a><!-- doxytag: member="ffado.h::ffado_direction" ref="ab8ee9ac9d189e1af60cd93f8dfcd495b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="ffado_8h.html#ab8ee9ac9d189e1af60cd93f8dfcd495b">ffado_direction</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="ab8ee9ac9d189e1af60cd93f8dfcd495ba9ba7f302b9ce79977dfa97b704fcd119"></a><!-- doxytag: member="FFADO_CAPTURE" ref="ab8ee9ac9d189e1af60cd93f8dfcd495ba9ba7f302b9ce79977dfa97b704fcd119" args="" -->FFADO_CAPTURE</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ab8ee9ac9d189e1af60cd93f8dfcd495ba477a2264620788148dfc751911104696"></a><!-- doxytag: member="FFADO_PLAYBACK" ref="ab8ee9ac9d189e1af60cd93f8dfcd495ba477a2264620788148dfc751911104696" args="" -->FFADO_PLAYBACK</em>&nbsp;</td><td>
</td></tr>
</table>
</dd>
</dl>

</div>
</div>
<a class="anchor" id="a2893d390b58431470d0bd1191f1f568c"></a><!-- doxytag: member="ffado.h::ffado_streaming_audio_datatype" ref="a2893d390b58431470d0bd1191f1f568c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="ffado_8h.html#a2893d390b58431470d0bd1191f1f568c">ffado_streaming_audio_datatype</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Audio data types known to the API </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a2893d390b58431470d0bd1191f1f568cae27fc83ddcc0d322a1fbae28275d638d"></a><!-- doxytag: member="ffado_audio_datatype_error" ref="a2893d390b58431470d0bd1191f1f568cae27fc83ddcc0d322a1fbae28275d638d" args="" -->ffado_audio_datatype_error</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a2893d390b58431470d0bd1191f1f568ca14c285c45fa3931fe559a8a1b1db4d6a"></a><!-- doxytag: member="ffado_audio_datatype_int24" ref="a2893d390b58431470d0bd1191f1f568ca14c285c45fa3931fe559a8a1b1db4d6a" args="" -->ffado_audio_datatype_int24</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a2893d390b58431470d0bd1191f1f568ca6a1f23f0d851d268d0808c1deab4f957"></a><!-- doxytag: member="ffado_audio_datatype_float" ref="a2893d390b58431470d0bd1191f1f568ca6a1f23f0d851d268d0808c1deab4f957" args="" -->ffado_audio_datatype_float</em>&nbsp;</td><td>
</td></tr>
</table>
</dd>
</dl>

</div>
</div>
<a class="anchor" id="ad951231df410434aade1438062960ce2"></a><!-- doxytag: member="ffado.h::ffado_streaming_stream_type" ref="ad951231df410434aade1438062960ce2" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="ffado_8h.html#ad951231df410434aade1438062960ce2">ffado_streaming_stream_type</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>The types of streams supported by the API</p>
<p>A ffado_audio type stream is a stream that consists of successive samples. The format is a 24bit UINT in host byte order, aligned as the 24LSB's of the 32bit UINT of the read/write buffer. The wait operation looks at this type of streams only.</p>
<p>A ffado_midi type stream is a stream of midi bytes. The bytes are 8bit UINT, aligned as the first 8LSB's of the 32bit UINT of the read/write buffer.</p>
<p>A ffado_control type stream is a stream that provides control information. The format of this control information is undefined, and the stream should be ignored. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="ad951231df410434aade1438062960ce2aad7b1467f9be5a644a70fc7ecc3a873f"></a><!-- doxytag: member="ffado_stream_type_invalid" ref="ad951231df410434aade1438062960ce2aad7b1467f9be5a644a70fc7ecc3a873f" args="" -->ffado_stream_type_invalid</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ad951231df410434aade1438062960ce2a0322dec9795ba78cdc88f411f81af038"></a><!-- doxytag: member="ffado_stream_type_unknown" ref="ad951231df410434aade1438062960ce2a0322dec9795ba78cdc88f411f81af038" args="" -->ffado_stream_type_unknown</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ad951231df410434aade1438062960ce2a97b6d9c9936eedbe2dd341156354b67e"></a><!-- doxytag: member="ffado_stream_type_audio" ref="ad951231df410434aade1438062960ce2a97b6d9c9936eedbe2dd341156354b67e" args="" -->ffado_stream_type_audio</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ad951231df410434aade1438062960ce2a683c714613500c5b0416b353c2c266e6"></a><!-- doxytag: member="ffado_stream_type_midi" ref="ad951231df410434aade1438062960ce2a683c714613500c5b0416b353c2c266e6" args="" -->ffado_stream_type_midi</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ad951231df410434aade1438062960ce2a8b13ba44528ce7d0de36565c38501c99"></a><!-- doxytag: member="ffado_stream_type_control" ref="ad951231df410434aade1438062960ce2a8b13ba44528ce7d0de36565c38501c99" args="" -->ffado_stream_type_control</em>&nbsp;</td><td>
</td></tr>
</table>
</dd>
</dl>

</div>
</div>
<a class="anchor" id="a022a8af7c32500c581526378f93ec962"></a><!-- doxytag: member="ffado.h::ffado_wait_response" ref="a022a8af7c32500c581526378f93ec962" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="ffado_8h.html#a022a8af7c32500c581526378f93ec962">ffado_wait_response</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Wait responses </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a022a8af7c32500c581526378f93ec962af8fae5a8c7d33e26e5042eb88ae14392"></a><!-- doxytag: member="ffado_wait_shutdown" ref="a022a8af7c32500c581526378f93ec962af8fae5a8c7d33e26e5042eb88ae14392" args="" -->ffado_wait_shutdown</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a022a8af7c32500c581526378f93ec962a2089a9ef0acfe03681871c5f9131f70c"></a><!-- doxytag: member="ffado_wait_error" ref="a022a8af7c32500c581526378f93ec962a2089a9ef0acfe03681871c5f9131f70c" args="" -->ffado_wait_error</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a022a8af7c32500c581526378f93ec962aa9dfbfbee49f3e196dc1c4cb86483423"></a><!-- doxytag: member="ffado_wait_xrun" ref="a022a8af7c32500c581526378f93ec962aa9dfbfbee49f3e196dc1c4cb86483423" args="" -->ffado_wait_xrun</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a022a8af7c32500c581526378f93ec962a759bf1cb51512a1045fb9b9ee6f4d3a4"></a><!-- doxytag: member="ffado_wait_ok" ref="a022a8af7c32500c581526378f93ec962a759bf1cb51512a1045fb9b9ee6f4d3a4" args="" -->ffado_wait_ok</em>&nbsp;</td><td>
</td></tr>
</table>
</dd>
</dl>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a752a9c9211e61c45a49c2b4cb3b83936"></a><!-- doxytag: member="ffado.h::ffado_get_api_version" ref="a752a9c9211e61c45a49c2b4cb3b83936" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ffado_get_api_version </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ae3874fc8eeef725414b209ee99fd9632"></a><!-- doxytag: member="ffado.h::ffado_get_version" ref="ae3874fc8eeef725414b209ee99fd9632" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* ffado_get_version </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="af588c0a752de1e58e86784560d11279f"></a><!-- doxytag: member="ffado.h::ffado_streaming_capture_stream_onoff" ref="af588c0a752de1e58e86784560d11279f" args="(ffado_device_t *dev, int number, int on)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ffado_streaming_capture_stream_onoff </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *&nbsp;</td>
          <td class="paramname"> <em>dev</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>number</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>on</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ab92d18a1f0e580c966287d799be5dceb"></a><!-- doxytag: member="ffado.h::ffado_streaming_finish" ref="ab92d18a1f0e580c966287d799be5dceb" args="(ffado_device_t *dev)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ffado_streaming_finish </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *&nbsp;</td>
          <td class="paramname"> <em>dev</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Finishes the FFADO streaming. Cleans up all internal data structures and terminates connections.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dev</em>&nbsp;</td><td>the ffado device to be closed. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="af2c5f569cae38c7956f4c935840e9f7d"></a><!-- doxytag: member="ffado.h::ffado_streaming_get_audio_datatype" ref="af2c5f569cae38c7956f4c935840e9f7d" args="(ffado_device_t *dev)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="ffado_8h.html#a2893d390b58431470d0bd1191f1f568c">ffado_streaming_audio_datatype</a> ffado_streaming_get_audio_datatype </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *&nbsp;</td>
          <td class="paramname"> <em>dev</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a2522f2adcbfd17e1643ae8f146f5e239"></a><!-- doxytag: member="ffado.h::ffado_streaming_get_capture_stream_name" ref="a2522f2adcbfd17e1643ae8f146f5e239" args="(ffado_device_t *dev, int number, char *buffer, size_t buffersize)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ffado_streaming_get_capture_stream_name </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *&nbsp;</td>
          <td class="paramname"> <em>dev</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>number</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>buffersize</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Copies the capture channel name into the specified buffer</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dev</em>&nbsp;</td><td>the ffado device </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>number</em>&nbsp;</td><td>the stream number </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buffer</em>&nbsp;</td><td>the buffer to copy the name into. has to be allocated. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buffersize</em>&nbsp;</td><td>the size of the buffer</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the number of characters copied into the buffer </dd></dl>

</div>
</div>
<a class="anchor" id="a5b2ac34feed6f1ce3708de7783d56240"></a><!-- doxytag: member="ffado.h::ffado_streaming_get_capture_stream_type" ref="a5b2ac34feed6f1ce3708de7783d56240" args="(ffado_device_t *dev, int number)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="ffado_8h.html#ad951231df410434aade1438062960ce2">ffado_streaming_stream_type</a> ffado_streaming_get_capture_stream_type </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *&nbsp;</td>
          <td class="paramname"> <em>dev</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>number</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the type of a capture channel</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dev</em>&nbsp;</td><td>the ffado device </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>number</em>&nbsp;</td><td>the stream number</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the channel type </dd></dl>

</div>
</div>
<a class="anchor" id="a29c6be45adcbeb9ce74dcefb4c42d584"></a><!-- doxytag: member="ffado.h::ffado_streaming_get_nb_capture_streams" ref="a29c6be45adcbeb9ce74dcefb4c42d584" args="(ffado_device_t *dev)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ffado_streaming_get_nb_capture_streams </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *&nbsp;</td>
          <td class="paramname"> <em>dev</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the amount of capture channels available</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dev</em>&nbsp;</td><td>the ffado device</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the number of capture streams present &amp; active on the device. can be 0. returns -1 upon error. </dd></dl>

</div>
</div>
<a class="anchor" id="abe6a50886aed02a5ddb5d1ea8b022629"></a><!-- doxytag: member="ffado.h::ffado_streaming_get_nb_playback_streams" ref="abe6a50886aed02a5ddb5d1ea8b022629" args="(ffado_device_t *dev)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ffado_streaming_get_nb_playback_streams </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *&nbsp;</td>
          <td class="paramname"> <em>dev</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the amount of playack channels available</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dev</em>&nbsp;</td><td>the ffado device</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the number of playback streams present &amp; active on the device. can be 0. returns -1 upon error. </dd></dl>

</div>
</div>
<a class="anchor" id="a3301642dc2f3af1657904c6678a23165"></a><!-- doxytag: member="ffado.h::ffado_streaming_get_playback_stream_name" ref="a3301642dc2f3af1657904c6678a23165" args="(ffado_device_t *dev, int number, char *buffer, size_t buffersize)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ffado_streaming_get_playback_stream_name </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *&nbsp;</td>
          <td class="paramname"> <em>dev</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>number</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>buffersize</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Copies the playback channel name into the specified buffer</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dev</em>&nbsp;</td><td>the ffado device </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>number</em>&nbsp;</td><td>the stream number </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buffer</em>&nbsp;</td><td>the buffer to copy the name into. has to be allocated. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buffersize</em>&nbsp;</td><td>the size of the buffer</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the number of characters copied into the buffer </dd></dl>

</div>
</div>
<a class="anchor" id="ad77c94bde9274a14fd5cbd967c5893fb"></a><!-- doxytag: member="ffado.h::ffado_streaming_get_playback_stream_type" ref="ad77c94bde9274a14fd5cbd967c5893fb" args="(ffado_device_t *dev, int number)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="ffado_8h.html#ad951231df410434aade1438062960ce2">ffado_streaming_stream_type</a> ffado_streaming_get_playback_stream_type </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *&nbsp;</td>
          <td class="paramname"> <em>dev</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>number</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the type of a playback channel</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dev</em>&nbsp;</td><td>the ffado device </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>number</em>&nbsp;</td><td>the stream number</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the channel type </dd></dl>

</div>
</div>
<a class="anchor" id="a12dcfdad383cf44bc8f44d0a77168780"></a><!-- doxytag: member="ffado.h::ffado_streaming_init" ref="a12dcfdad383cf44bc8f44d0a77168780" args="(ffado_device_info_t device_info, ffado_options_t options)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a>* ffado_streaming_init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structffado__device__info.html">ffado_device_info_t</a>&nbsp;</td>
          <td class="paramname"> <em>device_info</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structffado__options.html">ffado_options_t</a>&nbsp;</td>
          <td class="paramname"> <em>options</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Initializes the streaming from/to a FFADO device. A FFADO device is a virtual device composed of several BeBoB or compatible devices, linked together in one sync domain.</p>
<p>This prepares all IEEE1394 related stuff and sets up all buffering. It elects a sync master if nescessary.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>device_info</em>&nbsp;</td><td>provides a way to specify the virtual device </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>options regarding buffers, ieee1394 setup, ...</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Opaque device handle if successful. If this is NULL, the init operation failed. </dd></dl>

</div>
</div>
<a class="anchor" id="a554517c036886cc5cfb06759cc2a07ec"></a><!-- doxytag: member="ffado.h::ffado_streaming_playback_stream_onoff" ref="a554517c036886cc5cfb06759cc2a07ec" args="(ffado_device_t *dev, int number, int on)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ffado_streaming_playback_stream_onoff </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *&nbsp;</td>
          <td class="paramname"> <em>dev</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>number</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>on</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a510f745b2d5515f3692a0c0b097f8014"></a><!-- doxytag: member="ffado.h::ffado_streaming_prepare" ref="a510f745b2d5515f3692a0c0b097f8014" args="(ffado_device_t *dev)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ffado_streaming_prepare </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *&nbsp;</td>
          <td class="paramname"> <em>dev</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>preparation should be done after setting all per-stream parameters the way you want them. being buffer data type etc...</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dev</em>&nbsp;</td><td>the ffado device </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
<p>preparation should be done after setting all per-stream parameters the way you want them. being buffer data type etc...</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dev</em>&nbsp;</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div>
<a class="anchor" id="a7fd912af84d77929286e4c16ebf5e741"></a><!-- doxytag: member="ffado.h::ffado_streaming_reset" ref="a7fd912af84d77929286e4c16ebf5e741" args="(ffado_device_t *dev)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ffado_streaming_reset </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *&nbsp;</td>
          <td class="paramname"> <em>dev</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Resets the streaming as if it was stopped and restarted. The difference is that the connections are not nescessarily broken and restored.</p>
<p>All buffers are reset in the initial state and all data in them is lost.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dev</em>&nbsp;</td><td>the ffado device</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success, -1 on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="af6cfbf9c09b869c722e6fcf6599e44e1"></a><!-- doxytag: member="ffado.h::ffado_streaming_set_audio_datatype" ref="af6cfbf9c09b869c722e6fcf6599e44e1" args="(ffado_device_t *dev, ffado_streaming_audio_datatype t)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ffado_streaming_set_audio_datatype </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *&nbsp;</td>
          <td class="paramname"> <em>dev</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="ffado_8h.html#a2893d390b58431470d0bd1191f1f568c">ffado_streaming_audio_datatype</a>&nbsp;</td>
          <td class="paramname"> <em>t</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a68ecec674c862e2365359fb8d1294f56"></a><!-- doxytag: member="ffado.h::ffado_streaming_set_capture_stream_buffer" ref="a68ecec674c862e2365359fb8d1294f56" args="(ffado_device_t *dev, int number, char *buff)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ffado_streaming_set_capture_stream_buffer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *&nbsp;</td>
          <td class="paramname"> <em>dev</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>number</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>buff</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Sets the decode buffer for the stream. This allows for zero-copy decoding. The call to ffado_streaming_transfer_buffers will decode one period of the stream to this buffer. Make sure it is large enough.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dev</em>&nbsp;</td><td>the ffado device </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>number</em>&nbsp;</td><td>the stream number </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buff</em>&nbsp;</td><td>a pointer to the sample buffer, make sure it is large enough i.e. sizeof(your_sample_type)*period_size </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>the type of the buffer. this determines sample type and the decode function used.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>-1 on error, 0 on success </dd></dl>

</div>
</div>
<a class="anchor" id="a8d5e2ff8a3094e6018a25b1c2b333027"></a><!-- doxytag: member="ffado.h::ffado_streaming_set_playback_stream_buffer" ref="a8d5e2ff8a3094e6018a25b1c2b333027" args="(ffado_device_t *dev, int number, char *buff)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ffado_streaming_set_playback_stream_buffer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *&nbsp;</td>
          <td class="paramname"> <em>dev</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>number</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>buff</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Sets the encode buffer for the stream. This allows for zero-copy encoding (directly to the events). The call to ffado_streaming_transfer_buffers will encode one period of the stream from this buffer to the event buffer.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dev</em>&nbsp;</td><td>the ffado device </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>number</em>&nbsp;</td><td>the stream number </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buff</em>&nbsp;</td><td>a pointer to the sample buffer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>the type of the buffer. this determines sample type and the decode function used.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>-1 on error, 0 on success </dd></dl>

</div>
</div>
<a class="anchor" id="a50fd6f65789689533c649be3fdba28eb"></a><!-- doxytag: member="ffado.h::ffado_streaming_start" ref="a50fd6f65789689533c649be3fdba28eb" args="(ffado_device_t *dev)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ffado_streaming_start </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *&nbsp;</td>
          <td class="paramname"> <em>dev</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Starts the streaming operation. This initiates the connections to the FFADO devices and starts the packet handling thread(s). This has to be called before any I/O can occur.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dev</em>&nbsp;</td><td>the ffado device</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success, -1 on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a2ac22d23856127c6015088ea16e570af"></a><!-- doxytag: member="ffado.h::ffado_streaming_stop" ref="a2ac22d23856127c6015088ea16e570af" args="(ffado_device_t *dev)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ffado_streaming_stop </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *&nbsp;</td>
          <td class="paramname"> <em>dev</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Stops the streaming operation. This closes the connections to the FFADO devices and stops the packet handling thread(s).</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dev</em>&nbsp;</td><td>the ffado device</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success, -1 on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="ab7fb46b71d7296dc65ecaa011f1852ef"></a><!-- doxytag: member="ffado.h::ffado_streaming_transfer_buffers" ref="ab7fb46b71d7296dc65ecaa011f1852ef" args="(ffado_device_t *dev)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ffado_streaming_transfer_buffers </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *&nbsp;</td>
          <td class="paramname"> <em>dev</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Transfer &amp; decode the events from the packet buffer to the sample buffers</p>
<p>This should be called after the wait call returns, before reading/writing the sample buffers with ffado_streaming_[read|write].</p>
<p>The purpose is to allow more precise timing information. ffado_streaming_wait returns as soon as the period boundary is crossed, and can therefore be used to determine the time instant of this crossing (e.g. jack DLL).</p>
<p>The actual decoding work is done in this function and can therefore be omitted in this timing calculation. Note that you HAVE to call this function in order for the buffers not to overflow, and only call it when ffado_streaming_wait doesn't indicate a buffer xrun (xrun handler resets buffer).</p>
<p>If user supplied playback buffers are specified with ffado_streaming_set_playback_buffers their contents should be valid before calling this function. If user supplied capture buffers are specified with ffado_streaming_set_capture_buffers their contents are updated in this function.</p>
<p>Use either ffado_streaming_transfer_buffers to transfer all buffers at once, or use ffado_streaming_transfer_playback_buffers and ffado_streaming_transfer_capture_buffers to have more control. Don't use both.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dev</em>&nbsp;</td><td>the ffado device </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>-1 on error. </dd></dl>

</div>
</div>
<a class="anchor" id="ae37402898bb30bb58fb79af7ba85c089"></a><!-- doxytag: member="ffado.h::ffado_streaming_transfer_capture_buffers" ref="ae37402898bb30bb58fb79af7ba85c089" args="(ffado_device_t *dev)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ffado_streaming_transfer_capture_buffers </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *&nbsp;</td>
          <td class="paramname"> <em>dev</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Transfer &amp; decode the events from the packet buffer to the sample buffers</p>
<p>This should be called after the wait call returns, before reading the sample buffers with ffado_streaming_read.</p>
<p>If user supplied capture buffers are specified with ffado_streaming_set_capture_buffers their contents are updated in this function.</p>
<p>Use either ffado_streaming_transfer_buffers to transfer all buffers at once, or use ffado_streaming_transfer_playback_buffers and ffado_streaming_transfer_capture_buffers to have more control. Don't use both.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dev</em>&nbsp;</td><td>the ffado device </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>-1 on error. </dd></dl>

</div>
</div>
<a class="anchor" id="a25684a8662cad73ea170bd285d1a2210"></a><!-- doxytag: member="ffado.h::ffado_streaming_transfer_playback_buffers" ref="a25684a8662cad73ea170bd285d1a2210" args="(ffado_device_t *dev)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ffado_streaming_transfer_playback_buffers </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *&nbsp;</td>
          <td class="paramname"> <em>dev</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Transfer &amp; encode the events from the sample buffers to the packet buffer</p>
<p>This should be called after the wait call returns, after writing the sample buffers with ffado_streaming_write.</p>
<p>If user supplied playback buffers are specified with ffado_streaming_set_playback_buffers their contents should be valid before calling this function.</p>
<p>Use either ffado_streaming_transfer_buffers to transfer all buffers at once, or use ffado_streaming_transfer_playback_buffers and ffado_streaming_transfer_capture_buffers to have more control. Don't use both.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dev</em>&nbsp;</td><td>the ffado device </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>-1 on error. </dd></dl>

</div>
</div>
<a class="anchor" id="a12ef2ee375ad21cc3316d79151278415"></a><!-- doxytag: member="ffado.h::ffado_streaming_wait" ref="a12ef2ee375ad21cc3316d79151278415" args="(ffado_device_t *dev)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="ffado_8h.html#a022a8af7c32500c581526378f93ec962">ffado_wait_response</a> ffado_streaming_wait </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ffado_8h.html#af63ec4fee431588343a8d4b73c8e102c">ffado_device_t</a> *&nbsp;</td>
          <td class="paramname"> <em>dev</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Waits until there is at least one period of data available on all capture connections and room for one period of data on all playback connections</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dev</em>&nbsp;</td><td>the ffado device</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The number of frames ready. -1 when a problem occurred. </dd></dl>

</div>
</div>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Fri Jul 30 2010 for LIBFFADO by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
</body>
</html>