Sophie

Sophie

distrib > Mageia > 5 > i586 > media > core-release > by-pkgid > 406d9b580cc28afca9442eab7324087d > files > 7

libalsa2-docs-1.0.28-1.mga5.noarch.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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>ALSA project - the C library reference: /test/timer.c</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/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</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 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.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></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="headertitle">
<div class="title">/test/timer.c</div>  </div>
</div><!--header-->
<div class="contents">
<p><a class="anchor" id="example_test_timer"></a> </p><div class="fragment"><div class="line"><span class="preprocessor">#include &lt;stdio.h&gt;</span></div>
<div class="line"><span class="preprocessor">#include &lt;stdlib.h&gt;</span></div>
<div class="line"><span class="preprocessor">#include &lt;string.h&gt;</span></div>
<div class="line"><span class="preprocessor">#include &lt;sys/time.h&gt;</span></div>
<div class="line"><span class="preprocessor">#include &quot;../include/asoundlib.h&quot;</span></div>
<div class="line"></div>
<div class="line"><span class="keywordtype">void</span> show_status(<span class="keywordtype">void</span> *handle)</div>
<div class="line">{</div>
<div class="line">    <span class="keywordtype">int</span> err;</div>
<div class="line">    <a class="code" href="group___timer.html#ga6fe20f2c0d1535e3a200944b1244f855">snd_timer_status_t</a> *status;</div>
<div class="line">    </div>
<div class="line">    <a name="a0"></a><a class="code" href="group___timer.html#ga6597b8f73b30a3f2bf2aa9f3590b92f2">snd_timer_status_alloca</a>(&amp;status);</div>
<div class="line">    <span class="keywordflow">if</span> ((err = <a name="a1"></a><a class="code" href="group___timer.html#gaa78c7089909252ee0ca69f7552fa2804">snd_timer_status</a>(handle, status)) &lt; 0) {</div>
<div class="line">        fprintf(stderr, <span class="stringliteral">&quot;timer status %i (%s)\n&quot;</span>, err, <a name="a2"></a><a class="code" href="group___error.html#ga182bbadf2349e11602bc531e8cf22f7e">snd_strerror</a>(err));</div>
<div class="line">        <span class="keywordflow">return</span>;</div>
<div class="line">    }</div>
<div class="line">    printf(<span class="stringliteral">&quot;STATUS:\n&quot;</span>);</div>
<div class="line">    printf(<span class="stringliteral">&quot;  resolution = %li\n&quot;</span>, <a name="a3"></a><a class="code" href="group___timer.html#gaaab668cc548b6c4a24236504d63da0a0">snd_timer_status_get_resolution</a>(status));</div>
<div class="line">    printf(<span class="stringliteral">&quot;  lost = %li\n&quot;</span>, <a name="a4"></a><a class="code" href="group___timer.html#gaa7ad78e8af9855e71d4951147869693b">snd_timer_status_get_lost</a>(status));</div>
<div class="line">    printf(<span class="stringliteral">&quot;  overrun = %li\n&quot;</span>, <a name="a5"></a><a class="code" href="group___timer.html#gaf3a83c122c2e19059297599d3486c04d">snd_timer_status_get_overrun</a>(status));</div>
<div class="line">    printf(<span class="stringliteral">&quot;  queue = %li\n&quot;</span>, <a name="a6"></a><a class="code" href="group___timer.html#ga6edb10e32b6b485ecccef73d862ca648">snd_timer_status_get_queue</a>(status));</div>
<div class="line">}</div>
<div class="line"></div>
<div class="line"><span class="keywordtype">void</span> read_loop(<span class="keywordtype">void</span> *handle, <span class="keywordtype">int</span> master_ticks, <span class="keywordtype">int</span> timeout)</div>
<div class="line">{</div>
<div class="line">    <span class="keywordtype">int</span> count, err;</div>
<div class="line">    <span class="keyword">struct </span>pollfd *fds;</div>
<div class="line">    <a name="_a7"></a><a class="code" href="structsnd__timer__read__t.html">snd_timer_read_t</a> tr;</div>
<div class="line">    </div>
<div class="line">    count = <a name="a8"></a><a class="code" href="group___timer.html#gaf035c37343afed7f13c60e950e461cdf">snd_timer_poll_descriptors_count</a>(handle);</div>
<div class="line">    fds = calloc(count, <span class="keyword">sizeof</span>(<span class="keyword">struct</span> pollfd));</div>
<div class="line">    <span class="keywordflow">if</span> (fds == NULL) {</div>
<div class="line">        fprintf(stderr, <span class="stringliteral">&quot;malloc error\n&quot;</span>);</div>
<div class="line">        exit(EXIT_FAILURE);</div>
<div class="line">    }</div>
<div class="line">    <span class="keywordflow">while</span> (master_ticks-- &gt; 0) {</div>
<div class="line">        <span class="keywordflow">if</span> ((err = <a name="a9"></a><a class="code" href="group___timer.html#ga89ec000a41fa7dd1269e332324663f61">snd_timer_poll_descriptors</a>(handle, fds, count)) &lt; 0) {</div>
<div class="line">            fprintf(stderr, <span class="stringliteral">&quot;snd_timer_poll_descriptors error: %s\n&quot;</span>, <a class="code" href="group___error.html#ga182bbadf2349e11602bc531e8cf22f7e">snd_strerror</a>(err));</div>
<div class="line">            exit(EXIT_FAILURE);</div>
<div class="line">        }</div>
<div class="line">        <span class="keywordflow">if</span> ((err = poll(fds, count, timeout)) &lt; 0) {</div>
<div class="line">            fprintf(stderr, <span class="stringliteral">&quot;poll error %i (%s)\n&quot;</span>, err, strerror(err));</div>
<div class="line">            exit(EXIT_FAILURE);</div>
<div class="line">        }</div>
<div class="line">        <span class="keywordflow">if</span> (err == 0) {</div>
<div class="line">            fprintf(stderr, <span class="stringliteral">&quot;timer time out!!\n&quot;</span>);</div>
<div class="line">            exit(EXIT_FAILURE);</div>
<div class="line">        }</div>
<div class="line">        <span class="keywordflow">while</span> (<a name="a10"></a><a class="code" href="group___timer.html#ga724ada94d0bc3564ad77973c0a084682">snd_timer_read</a>(handle, &amp;tr, <span class="keyword">sizeof</span>(tr)) == <span class="keyword">sizeof</span>(tr)) {</div>
<div class="line">            printf(<span class="stringliteral">&quot;TIMER: resolution = %uns, ticks = %u\n&quot;</span>,</div>
<div class="line">                tr.<a name="a11"></a><a class="code" href="structsnd__timer__read__t.html#a74c2d329a2a2c9c3bc53d5678b0fafe9">resolution</a>, tr.<a name="a12"></a><a class="code" href="structsnd__timer__read__t.html#a6f1deb447c21188ac4590e872358edd9">ticks</a>);</div>
<div class="line">        }</div>
<div class="line">    }</div>
<div class="line">    free(fds);</div>
<div class="line">}</div>
<div class="line"></div>
<div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> async_callback(<a class="code" href="group___global.html#ga8cd9a1d441e9219ca5f2ff04094c7c6d">snd_async_handler_t</a> *ahandler)</div>
<div class="line">{</div>
<div class="line">    <a class="code" href="group___timer.html#ga7f514d85bfd93e1e5853a5fded89b668">snd_timer_t</a> *handle = <a name="a13"></a><a class="code" href="group___timer.html#gaa497b2873abd234df7e932ecdefad5e0">snd_async_handler_get_timer</a>(ahandler);</div>
<div class="line">    <span class="keywordtype">int</span> *acount = <a name="a14"></a><a class="code" href="group___global.html#gad9c76588a87918901c6273e6bc98a1bc">snd_async_handler_get_callback_private</a>(ahandler);</div>
<div class="line">    <a class="code" href="structsnd__timer__read__t.html">snd_timer_read_t</a> tr;</div>
<div class="line">    </div>
<div class="line">    <span class="keywordflow">while</span> (<a class="code" href="group___timer.html#ga724ada94d0bc3564ad77973c0a084682">snd_timer_read</a>(handle, &amp;tr, <span class="keyword">sizeof</span>(tr)) == <span class="keyword">sizeof</span>(tr)) {</div>
<div class="line">        printf(<span class="stringliteral">&quot;TIMER: resolution = %uns, ticks = %u\n&quot;</span>,</div>
<div class="line">            tr.<a class="code" href="structsnd__timer__read__t.html#a74c2d329a2a2c9c3bc53d5678b0fafe9">resolution</a>, tr.<a class="code" href="structsnd__timer__read__t.html#a6f1deb447c21188ac4590e872358edd9">ticks</a>);</div>
<div class="line">    }</div>
<div class="line">    (*acount)++;</div>
<div class="line">}</div>
<div class="line"></div>
<div class="line"><span class="keywordtype">int</span> main(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> *argv[])</div>
<div class="line">{</div>
<div class="line">    <span class="keywordtype">int</span> idx, err;</div>
<div class="line">    <span class="keywordtype">int</span> <span class="keyword">class </span>= <a name="a15"></a><a class="code" href="group___timer.html#ggafcf09894847cdee6925ab6e405c358d9ae7a63ed172c4c38199e4d6b3ed9fd728">SND_TIMER_CLASS_GLOBAL</a>;</div>
<div class="line">    <span class="keywordtype">int</span> sclass = <a name="a16"></a><a class="code" href="group___timer.html#ggafcf09894847cdee6925ab6e405c358d9a678ee4a7108ad3653fc49a6fe07ae45f">SND_TIMER_CLASS_NONE</a>;</div>
<div class="line">    <span class="keywordtype">int</span> card = 0;</div>
<div class="line">    <span class="keywordtype">int</span> device = <a name="a17"></a><a class="code" href="group___timer.html#ga1cda350fb4de9a2f7a137c5649e3793c">SND_TIMER_GLOBAL_SYSTEM</a>;</div>
<div class="line">    <span class="keywordtype">int</span> subdevice = 0;</div>
<div class="line">    <span class="keywordtype">int</span> list = 0;</div>
<div class="line">    <span class="keywordtype">int</span> async = 0;</div>
<div class="line">    <span class="keywordtype">int</span> acount = 0;</div>
<div class="line">    <a class="code" href="group___timer.html#ga7f514d85bfd93e1e5853a5fded89b668">snd_timer_t</a> *handle;</div>
<div class="line">    <a class="code" href="group___timer.html#ga87c7e9656e171a76dada7e7e2da37136">snd_timer_id_t</a> *id;</div>
<div class="line">    <a class="code" href="group___timer.html#ga8d2a9e26d1f38ce65160d3cd71a2bce3">snd_timer_info_t</a> *info;</div>
<div class="line">    <a class="code" href="group___timer.html#ga3450759fce8e0863ebce3221e82bafca">snd_timer_params_t</a> *params;</div>
<div class="line">    <span class="keywordtype">char</span> timername[64];</div>
<div class="line">    <a class="code" href="group___global.html#ga8cd9a1d441e9219ca5f2ff04094c7c6d">snd_async_handler_t</a> *ahandler;</div>
<div class="line"></div>
<div class="line">    <a name="a18"></a><a class="code" href="group___timer.html#gaef1895685cb2f65d1a40cc46fa5a7eb2">snd_timer_id_alloca</a>(&amp;<span class="keywordtype">id</span>);</div>
<div class="line">    <a name="a19"></a><a class="code" href="group___timer.html#gafad2100b7f0478b8c3c59f0f4aced23e">snd_timer_info_alloca</a>(&amp;info);</div>
<div class="line">    <a name="a20"></a><a class="code" href="group___timer.html#ga2e76b7b6f7fe340b4a06935f080fbbbd">snd_timer_params_alloca</a>(&amp;params);</div>
<div class="line"></div>
<div class="line">    idx = 1;</div>
<div class="line">    <span class="keywordflow">while</span> (idx &lt; argc) {</div>
<div class="line">        <span class="keywordflow">if</span> (!strncmp(argv[idx], <span class="stringliteral">&quot;class=&quot;</span>, 5)) {</div>
<div class="line">            <span class="keyword">class </span>= atoi(argv[idx]+6);</div>
<div class="line">        } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strncmp(argv[idx], <span class="stringliteral">&quot;sclass=&quot;</span>, 6)) {</div>
<div class="line">            sclass = atoi(argv[idx]+7);</div>
<div class="line">        } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strncmp(argv[idx], <span class="stringliteral">&quot;card=&quot;</span>, 5)) {</div>
<div class="line">            card = atoi(argv[idx]+5);</div>
<div class="line">        } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strncmp(argv[idx], <span class="stringliteral">&quot;device=&quot;</span>, 7)) {</div>
<div class="line">            device = atoi(argv[idx]+7);</div>
<div class="line">        } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strncmp(argv[idx], <span class="stringliteral">&quot;subdevice=&quot;</span>, 10)) {</div>
<div class="line">            subdevice = atoi(argv[idx]+10);</div>
<div class="line">        } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(argv[idx], <span class="stringliteral">&quot;list&quot;</span>)) {</div>
<div class="line">            list = 1;</div>
<div class="line">        } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(argv[idx], <span class="stringliteral">&quot;async&quot;</span>)) {</div>
<div class="line">            async = 1;</div>
<div class="line">        }</div>
<div class="line">        idx++;</div>
<div class="line">    }</div>
<div class="line">    <span class="keywordflow">if</span> (<span class="keyword">class</span> == <a name="a21"></a><a class="code" href="group___timer.html#ggafcf09894847cdee6925ab6e405c358d9a532f7292aafb8e4eaa8fce3bb42b7ea1">SND_TIMER_CLASS_SLAVE</a> &amp;&amp; sclass == <a name="a22"></a><a class="code" href="group___timer.html#ggad834b328331c3a4a4fb42041e2e61298a93c410a46bba52d680058f0718a32879">SND_TIMER_SCLASS_NONE</a>) {</div>
<div class="line">        fprintf(stderr, <span class="stringliteral">&quot;slave class is not set\n&quot;</span>);</div>
<div class="line">        exit(EXIT_FAILURE);</div>
<div class="line">    }</div>
<div class="line">    <span class="keywordflow">if</span> (list) {</div>
<div class="line">        <a class="code" href="group___timer.html#ga279f189051eba2c5e072c30198deb81a">snd_timer_query_t</a> *qhandle;</div>
<div class="line">        <span class="keywordflow">if</span> ((err = <a name="a23"></a><a class="code" href="group___timer.html#ga54f6d3838ff4680fcda97952a60376ff">snd_timer_query_open</a>(&amp;qhandle, <span class="stringliteral">&quot;hw&quot;</span>, 0)) &lt; 0) {</div>
<div class="line">            fprintf(stderr, <span class="stringliteral">&quot;snd_timer_query_open error: %s\n&quot;</span>, <a class="code" href="group___error.html#ga182bbadf2349e11602bc531e8cf22f7e">snd_strerror</a>(err));</div>
<div class="line">            exit(EXIT_FAILURE);</div>
<div class="line">        }</div>
<div class="line">        <a name="a24"></a><a class="code" href="group___timer.html#ga93bce2afe5e3f40f9f7adc17339273c4">snd_timer_id_set_class</a>(<span class="keywordtype">id</span>, <a class="code" href="group___timer.html#ggafcf09894847cdee6925ab6e405c358d9a678ee4a7108ad3653fc49a6fe07ae45f">SND_TIMER_CLASS_NONE</a>);</div>
<div class="line">        <span class="keywordflow">while</span> (1) {</div>
<div class="line">            <span class="keywordflow">if</span> ((err = <a name="a25"></a><a class="code" href="group___timer.html#ga5c10a9b8dc5f4442908fa3d15ab79169">snd_timer_query_next_device</a>(qhandle, <span class="keywordtype">id</span>)) &lt; 0) {</div>
<div class="line">                fprintf(stderr, <span class="stringliteral">&quot;timer next device error: %s\n&quot;</span>, <a class="code" href="group___error.html#ga182bbadf2349e11602bc531e8cf22f7e">snd_strerror</a>(err));</div>
<div class="line">                <span class="keywordflow">break</span>;</div>
<div class="line">            }</div>
<div class="line">            <span class="keywordflow">if</span> (<a name="a26"></a><a class="code" href="group___timer.html#ga42ea98dbaf720519453c0110bd06fb8b">snd_timer_id_get_class</a>(<span class="keywordtype">id</span>) &lt; 0)</div>
<div class="line">                <span class="keywordflow">break</span>;</div>
<div class="line">            printf(<span class="stringliteral">&quot;Timer device: class %i, sclass %i, card %i, device %i, subdevice %i\n&quot;</span>,</div>
<div class="line">                    <a class="code" href="group___timer.html#ga42ea98dbaf720519453c0110bd06fb8b">snd_timer_id_get_class</a>(<span class="keywordtype">id</span>),</div>
<div class="line">                    <a name="a27"></a><a class="code" href="group___timer.html#ga82e2754532fa2b5b28733820eab4d600">snd_timer_id_get_sclass</a>(<span class="keywordtype">id</span>),</div>
<div class="line">                    <a name="a28"></a><a class="code" href="group___timer.html#ga305324f73fc12e7e42891598613a2d29">snd_timer_id_get_card</a>(<span class="keywordtype">id</span>),</div>
<div class="line">                    <a name="a29"></a><a class="code" href="group___timer.html#gaa864bb9270989329f8acc86c5aec2093">snd_timer_id_get_device</a>(<span class="keywordtype">id</span>),</div>
<div class="line">                    <a name="a30"></a><a class="code" href="group___timer.html#ga7f52f12140cd97f267143cbcd0832d02">snd_timer_id_get_subdevice</a>(<span class="keywordtype">id</span>));</div>
<div class="line">        }</div>
<div class="line">        <a name="a31"></a><a class="code" href="group___timer.html#ga13063464032aae91ab4e72dfdb57cb10">snd_timer_query_close</a>(qhandle);</div>
<div class="line">        exit(EXIT_SUCCESS);</div>
<div class="line">    }</div>
<div class="line">    sprintf(timername, <span class="stringliteral">&quot;hw:CLASS=%i,SCLASS=%i,CARD=%i,DEV=%i,SUBDEV=%i&quot;</span>, <span class="keyword">class</span>, sclass, card, device, subdevice);</div>
<div class="line">    <span class="keywordflow">if</span> ((err = <a name="a32"></a><a class="code" href="group___timer.html#ga9fa22f49745d1e383f0d6e5d9e795e2e">snd_timer_open</a>(&amp;handle, timername, <a name="a33"></a><a class="code" href="group___timer.html#gac2c50bf6045560bc13aab81f25b2b740">SND_TIMER_OPEN_NONBLOCK</a>))&lt;0) {</div>
<div class="line">        fprintf(stderr, <span class="stringliteral">&quot;timer open %i (%s)\n&quot;</span>, err, <a class="code" href="group___error.html#ga182bbadf2349e11602bc531e8cf22f7e">snd_strerror</a>(err));</div>
<div class="line">        exit(EXIT_FAILURE);</div>
<div class="line">    }</div>
<div class="line">    printf(<span class="stringliteral">&quot;Using timer class %i, slave class %i, card %i, device %i, subdevice %i\n&quot;</span>, <span class="keyword">class</span>, sclass, card, device, subdevice);</div>
<div class="line">    <span class="keywordflow">if</span> ((err = <a name="a34"></a><a class="code" href="group___timer.html#ga608cb266bf1cfd8f3796e6e55a2d5fe8">snd_timer_info</a>(handle, info)) &lt; 0) {</div>
<div class="line">        fprintf(stderr, <span class="stringliteral">&quot;timer info %i (%s)\n&quot;</span>, err, <a class="code" href="group___error.html#ga182bbadf2349e11602bc531e8cf22f7e">snd_strerror</a>(err));</div>
<div class="line">        exit(0);</div>
<div class="line">    }</div>
<div class="line">    printf(<span class="stringliteral">&quot;Timer info:\n&quot;</span>);</div>
<div class="line">    printf(<span class="stringliteral">&quot;  slave = %s\n&quot;</span>, <a name="a35"></a><a class="code" href="group___timer.html#gaccf0a207b91965e7200355a0daaac6ce">snd_timer_info_is_slave</a>(info) ? <span class="stringliteral">&quot;yes&quot;</span> : <span class="stringliteral">&quot;no&quot;</span>);</div>
<div class="line">    printf(<span class="stringliteral">&quot;  card = %i\n&quot;</span>, <a name="a36"></a><a class="code" href="group___timer.html#gaddb757aa65e9532ced42ff7e9146ff34">snd_timer_info_get_card</a>(info));</div>
<div class="line">    printf(<span class="stringliteral">&quot;  id = &#39;%s&#39;\n&quot;</span>, <a name="a37"></a><a class="code" href="group___timer.html#gaf46477b4ca62a7c2bd87926a45ecbd50">snd_timer_info_get_id</a>(info));</div>
<div class="line">    printf(<span class="stringliteral">&quot;  name = &#39;%s&#39;\n&quot;</span>, <a name="a38"></a><a class="code" href="group___timer.html#ga9360acea37a3351ab9d2c17b7a264395">snd_timer_info_get_name</a>(info));</div>
<div class="line">    printf(<span class="stringliteral">&quot;  average resolution = %li\n&quot;</span>, <a name="a39"></a><a class="code" href="group___timer.html#ga3b33c3f0af5c93461e9493b0d4a3b81c">snd_timer_info_get_resolution</a>(info));</div>
<div class="line">    <a name="a40"></a><a class="code" href="group___timer.html#gac39b36fdcc72cbb05adb909673df04f0">snd_timer_params_set_auto_start</a>(params, 1);</div>
<div class="line">    <span class="keywordflow">if</span> (!<a class="code" href="group___timer.html#gaccf0a207b91965e7200355a0daaac6ce">snd_timer_info_is_slave</a>(info)) {</div>
<div class="line">        <a name="a41"></a><a class="code" href="group___timer.html#gaa7101edb9ec33fdbbb94e04256388caa">snd_timer_params_set_ticks</a>(params, (1000000000 / <a class="code" href="group___timer.html#ga3b33c3f0af5c93461e9493b0d4a3b81c">snd_timer_info_get_resolution</a>(info)) / 50); <span class="comment">/* 50Hz */</span></div>
<div class="line">        <span class="keywordflow">if</span> (<a name="a42"></a><a class="code" href="group___timer.html#ga298418a42230f305c3c4efdf14da3403">snd_timer_params_get_ticks</a>(params) &lt; 1)</div>
<div class="line">            <a class="code" href="group___timer.html#gaa7101edb9ec33fdbbb94e04256388caa">snd_timer_params_set_ticks</a>(params, 1);</div>
<div class="line">        printf(<span class="stringliteral">&quot;Using %li tick(s)\n&quot;</span>, <a class="code" href="group___timer.html#ga298418a42230f305c3c4efdf14da3403">snd_timer_params_get_ticks</a>(params));</div>
<div class="line">    } <span class="keywordflow">else</span> {</div>
<div class="line">        <a class="code" href="group___timer.html#gaa7101edb9ec33fdbbb94e04256388caa">snd_timer_params_set_ticks</a>(params, 1);</div>
<div class="line">    }</div>
<div class="line">    <span class="keywordflow">if</span> ((err = <a name="a43"></a><a class="code" href="group___timer.html#ga3fd358a410688c3aba3e2d69acf027a8">snd_timer_params</a>(handle, params)) &lt; 0) {</div>
<div class="line">        fprintf(stderr, <span class="stringliteral">&quot;timer params %i (%s)\n&quot;</span>, err, <a class="code" href="group___error.html#ga182bbadf2349e11602bc531e8cf22f7e">snd_strerror</a>(err));</div>
<div class="line">        exit(0);</div>
<div class="line">    }</div>
<div class="line">    show_status(handle);</div>
<div class="line">    <span class="keywordflow">if</span> (async) {</div>
<div class="line">        err = <a name="a44"></a><a class="code" href="group___timer.html#ga076a6bbae3bfdb956b0a1a6ea9daa0a2">snd_async_add_timer_handler</a>(&amp;ahandler, handle, async_callback, &amp;acount);</div>
<div class="line">        <span class="keywordflow">if</span> (err &lt; 0) {</div>
<div class="line">            fprintf(stderr, <span class="stringliteral">&quot;unable to add async handler %i (%s)\n&quot;</span>, err, <a class="code" href="group___error.html#ga182bbadf2349e11602bc531e8cf22f7e">snd_strerror</a>(err));</div>
<div class="line">            exit(EXIT_FAILURE);</div>
<div class="line">        }</div>
<div class="line">    }</div>
<div class="line">    <span class="keywordflow">if</span> ((err = <a name="a45"></a><a class="code" href="group___timer.html#gafc990117a12e19a729ff10ef217fe2f9">snd_timer_start</a>(handle)) &lt; 0) {</div>
<div class="line">        fprintf(stderr, <span class="stringliteral">&quot;timer start %i (%s)\n&quot;</span>, err, <a class="code" href="group___error.html#ga182bbadf2349e11602bc531e8cf22f7e">snd_strerror</a>(err));</div>
<div class="line">        exit(EXIT_FAILURE);</div>
<div class="line">    }</div>
<div class="line">    <span class="keywordflow">if</span> (async) {</div>
<div class="line">        <span class="comment">/* because all other work is done in the signal handler,</span></div>
<div class="line"><span class="comment">           suspend the process */</span></div>
<div class="line">        <span class="keywordflow">while</span> (acount &lt; 25)</div>
<div class="line">            sleep(1);</div>
<div class="line">        <a name="a46"></a><a class="code" href="group___timer.html#ga6f8147c0679c820a77f98b1dd5b664a5">snd_timer_stop</a>(handle);</div>
<div class="line">    } <span class="keywordflow">else</span> {</div>
<div class="line">        read_loop(handle, 25, <a class="code" href="group___timer.html#gaccf0a207b91965e7200355a0daaac6ce">snd_timer_info_is_slave</a>(info) ? 10000 : 25);</div>
<div class="line">    }</div>
<div class="line">    show_status(handle);</div>
<div class="line">    <a name="a47"></a><a class="code" href="group___timer.html#ga155e0b5c831a3140f49c04932da9404f">snd_timer_close</a>(handle);</div>
<div class="line">    printf(<span class="stringliteral">&quot;Done\n&quot;</span>);</div>
<div class="line">    <span class="keywordflow">return</span> EXIT_SUCCESS;</div>
<div class="line">}</div>
</div><!-- fragment --> </div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Jun 18 2014 05:47:49 for ALSA project - the C library reference by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</small></address>
</body>
</html>