Current File : //proc/self/root/kunden/usr/share/doc/alsa-lib-devel/doxygen/html/_2test_2timer_8c-example.html |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ALSA project - the C library reference: /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/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">ALSA project - the C library reference
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="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 "config.h"</span></div>
<div class="line"><span class="preprocessor">#include <stdio.h></span></div>
<div class="line"><span class="preprocessor">#include <stdlib.h></span></div>
<div class="line"><span class="preprocessor">#include <string.h></span></div>
<div class="line"><span class="preprocessor">#include <sys/time.h></span></div>
<div class="line"><span class="preprocessor">#include "../include/asoundlib.h"</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> *<a name="a0"></a><a class="code" href="ump__msg_8h.html#ade20423e91627f07e610924cb0081623">status</a>;</div>
<div class="line"> </div>
<div class="line"> <a name="a1"></a><a class="code" href="group___timer.html#ga6597b8f73b30a3f2bf2aa9f3590b92f2">snd_timer_status_alloca</a>(&<a class="code" href="ump__msg_8h.html#ade20423e91627f07e610924cb0081623">status</a>);</div>
<div class="line"> <span class="keywordflow">if</span> ((err = <a name="a2"></a><a class="code" href="group___timer.html#gaa78c7089909252ee0ca69f7552fa2804">snd_timer_status</a>(handle, <a class="code" href="ump__msg_8h.html#ade20423e91627f07e610924cb0081623">status</a>)) < 0) {</div>
<div class="line"> fprintf(stderr, <span class="stringliteral">"timer status %i (%s)\n"</span>, err, <a name="a3"></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">"STATUS:\n"</span>);</div>
<div class="line"> printf(<span class="stringliteral">" resolution = %li\n"</span>, <a name="a4"></a><a class="code" href="group___timer.html#gaaab668cc548b6c4a24236504d63da0a0">snd_timer_status_get_resolution</a>(<a class="code" href="ump__msg_8h.html#ade20423e91627f07e610924cb0081623">status</a>));</div>
<div class="line"> printf(<span class="stringliteral">" lost = %li\n"</span>, <a name="a5"></a><a class="code" href="group___timer.html#gaa7ad78e8af9855e71d4951147869693b">snd_timer_status_get_lost</a>(<a class="code" href="ump__msg_8h.html#ade20423e91627f07e610924cb0081623">status</a>));</div>
<div class="line"> printf(<span class="stringliteral">" overrun = %li\n"</span>, <a name="a6"></a><a class="code" href="group___timer.html#gaf3a83c122c2e19059297599d3486c04d">snd_timer_status_get_overrun</a>(<a class="code" href="ump__msg_8h.html#ade20423e91627f07e610924cb0081623">status</a>));</div>
<div class="line"> printf(<span class="stringliteral">" queue = %li\n"</span>, <a name="a7"></a><a class="code" href="group___timer.html#ga6edb10e32b6b485ecccef73d862ca648">snd_timer_status_get_queue</a>(<a class="code" href="ump__msg_8h.html#ade20423e91627f07e610924cb0081623">status</a>));</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="_a8"></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="a9"></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">"malloc error\n"</span>);</div>
<div class="line"> exit(EXIT_FAILURE);</div>
<div class="line"> }</div>
<div class="line"> <span class="keywordflow">while</span> (master_ticks-- > 0) {</div>
<div class="line"> <span class="keywordflow">if</span> ((err = <a name="a10"></a><a class="code" href="group___timer.html#ga89ec000a41fa7dd1269e332324663f61">snd_timer_poll_descriptors</a>(handle, fds, count)) < 0) {</div>
<div class="line"> fprintf(stderr, <span class="stringliteral">"snd_timer_poll_descriptors error: %s\n"</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)) < 0) {</div>
<div class="line"> fprintf(stderr, <span class="stringliteral">"poll error %i (%s)\n"</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">"timer time out!!\n"</span>);</div>
<div class="line"> exit(EXIT_FAILURE);</div>
<div class="line"> }</div>
<div class="line"> <span class="keywordflow">while</span> (<a name="a11"></a><a class="code" href="group___timer.html#ga724ada94d0bc3564ad77973c0a084682">snd_timer_read</a>(handle, &tr, <span class="keyword">sizeof</span>(tr)) == <span class="keyword">sizeof</span>(tr)) {</div>
<div class="line"> printf(<span class="stringliteral">"TIMER: resolution = %uns, ticks = %u\n"</span>,</div>
<div class="line"> tr.<a name="a12"></a><a class="code" href="structsnd__timer__read__t.html#a74c2d329a2a2c9c3bc53d5678b0fafe9">resolution</a>, tr.<a name="a13"></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="a14"></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="a15"></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, &tr, <span class="keyword">sizeof</span>(tr)) == <span class="keyword">sizeof</span>(tr)) {</div>
<div class="line"> printf(<span class="stringliteral">"TIMER: resolution = %uns, ticks = %u\n"</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="a16"></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="a17"></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="a18"></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="a19"></a><a class="code" href="group___timer.html#gaef1895685cb2f65d1a40cc46fa5a7eb2">snd_timer_id_alloca</a>(&<span class="keywordtype">id</span>);</div>
<div class="line"> <a name="a20"></a><a class="code" href="group___timer.html#gafad2100b7f0478b8c3c59f0f4aced23e">snd_timer_info_alloca</a>(&info);</div>
<div class="line"> <a name="a21"></a><a class="code" href="group___timer.html#ga2e76b7b6f7fe340b4a06935f080fbbbd">snd_timer_params_alloca</a>(&params);</div>
<div class="line"> </div>
<div class="line"> idx = 1;</div>
<div class="line"> <span class="keywordflow">while</span> (idx < argc) {</div>
<div class="line"> <span class="keywordflow">if</span> (!strncmp(argv[idx], <span class="stringliteral">"class="</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">"sclass="</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">"card="</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">"device="</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">"subdevice="</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">"list"</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">"async"</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="a22"></a><a class="code" href="group___timer.html#ggafcf09894847cdee6925ab6e405c358d9a532f7292aafb8e4eaa8fce3bb42b7ea1">SND_TIMER_CLASS_SLAVE</a> && sclass == <a name="a23"></a><a class="code" href="group___timer.html#ggad834b328331c3a4a4fb42041e2e61298a93c410a46bba52d680058f0718a32879">SND_TIMER_SCLASS_NONE</a>) {</div>
<div class="line"> fprintf(stderr, <span class="stringliteral">"slave class is not set\n"</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="a24"></a><a class="code" href="group___timer.html#ga54f6d3838ff4680fcda97952a60376ff">snd_timer_query_open</a>(&qhandle, <span class="stringliteral">"hw"</span>, 0)) < 0) {</div>
<div class="line"> fprintf(stderr, <span class="stringliteral">"snd_timer_query_open error: %s\n"</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="a25"></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="a26"></a><a class="code" href="group___timer.html#ga5c10a9b8dc5f4442908fa3d15ab79169">snd_timer_query_next_device</a>(qhandle, <span class="keywordtype">id</span>)) < 0) {</div>
<div class="line"> fprintf(stderr, <span class="stringliteral">"timer next device error: %s\n"</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="a27"></a><a class="code" href="group___timer.html#ga42ea98dbaf720519453c0110bd06fb8b">snd_timer_id_get_class</a>(<span class="keywordtype">id</span>) < 0)</div>
<div class="line"> <span class="keywordflow">break</span>;</div>
<div class="line"> printf(<span class="stringliteral">"Timer device: class %i, sclass %i, card %i, device %i, subdevice %i\n"</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="a28"></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="a29"></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="a30"></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="a31"></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="a32"></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">"hw:CLASS=%i,SCLASS=%i,CARD=%i,DEV=%i,SUBDEV=%i"</span>, <span class="keyword">class</span>, sclass, card, device, subdevice);</div>
<div class="line"> <span class="keywordflow">if</span> ((err = <a name="a33"></a><a class="code" href="group___timer.html#ga9fa22f49745d1e383f0d6e5d9e795e2e">snd_timer_open</a>(&handle, timername, <a name="a34"></a><a class="code" href="group___timer.html#gac2c50bf6045560bc13aab81f25b2b740">SND_TIMER_OPEN_NONBLOCK</a>))<0) {</div>
<div class="line"> fprintf(stderr, <span class="stringliteral">"timer open %i (%s)\n"</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">"Using timer class %i, slave class %i, card %i, device %i, subdevice %i\n"</span>, <span class="keyword">class</span>, sclass, card, device, subdevice);</div>
<div class="line"> <span class="keywordflow">if</span> ((err = <a name="a35"></a><a class="code" href="group___timer.html#ga608cb266bf1cfd8f3796e6e55a2d5fe8">snd_timer_info</a>(handle, info)) < 0) {</div>
<div class="line"> fprintf(stderr, <span class="stringliteral">"timer info %i (%s)\n"</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">"Timer info:\n"</span>);</div>
<div class="line"> printf(<span class="stringliteral">" slave = %s\n"</span>, <a name="a36"></a><a class="code" href="group___timer.html#gaccf0a207b91965e7200355a0daaac6ce">snd_timer_info_is_slave</a>(info) ? <span class="stringliteral">"yes"</span> : <span class="stringliteral">"no"</span>);</div>
<div class="line"> printf(<span class="stringliteral">" card = %i\n"</span>, <a name="a37"></a><a class="code" href="group___timer.html#gaddb757aa65e9532ced42ff7e9146ff34">snd_timer_info_get_card</a>(info));</div>
<div class="line"> printf(<span class="stringliteral">" id = '%s'\n"</span>, <a name="a38"></a><a class="code" href="group___timer.html#gaf46477b4ca62a7c2bd87926a45ecbd50">snd_timer_info_get_id</a>(info));</div>
<div class="line"> printf(<span class="stringliteral">" name = '%s'\n"</span>, <a name="a39"></a><a class="code" href="group___timer.html#ga9360acea37a3351ab9d2c17b7a264395">snd_timer_info_get_name</a>(info));</div>
<div class="line"> printf(<span class="stringliteral">" average resolution = %li\n"</span>, <a name="a40"></a><a class="code" href="group___timer.html#ga3b33c3f0af5c93461e9493b0d4a3b81c">snd_timer_info_get_resolution</a>(info));</div>
<div class="line"> <a name="a41"></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="a42"></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="a43"></a><a class="code" href="group___timer.html#ga298418a42230f305c3c4efdf14da3403">snd_timer_params_get_ticks</a>(params) < 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">"Using %li tick(s)\n"</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="a44"></a><a class="code" href="group___timer.html#ga3fd358a410688c3aba3e2d69acf027a8">snd_timer_params</a>(handle, params)) < 0) {</div>
<div class="line"> fprintf(stderr, <span class="stringliteral">"timer params %i (%s)\n"</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="a45"></a><a class="code" href="group___timer.html#ga076a6bbae3bfdb956b0a1a6ea9daa0a2">snd_async_add_timer_handler</a>(&ahandler, handle, async_callback, &acount);</div>
<div class="line"> <span class="keywordflow">if</span> (err < 0) {</div>
<div class="line"> fprintf(stderr, <span class="stringliteral">"unable to add async handler %i (%s)\n"</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="a46"></a><a class="code" href="group___timer.html#gafc990117a12e19a729ff10ef217fe2f9">snd_timer_start</a>(handle)) < 0) {</div>
<div class="line"> fprintf(stderr, <span class="stringliteral">"timer start %i (%s)\n"</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 < 25)</div>
<div class="line"> sleep(1);</div>
<div class="line"> <a name="a47"></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="a48"></a><a class="code" href="group___timer.html#ga155e0b5c831a3140f49c04932da9404f">snd_timer_close</a>(handle);</div>
<div class="line"> printf(<span class="stringliteral">"Done\n"</span>);</div>
<div class="line"> <span class="keywordflow">return</span> EXIT_SUCCESS;</div>
<div class="line">}</div>
<div class="ttc" id="agroup___error_html_ga182bbadf2349e11602bc531e8cf22f7e"><div class="ttname"><a href="group___error.html#ga182bbadf2349e11602bc531e8cf22f7e">snd_strerror</a></div><div class="ttdeci">const char * snd_strerror(int errnum)</div><div class="ttdoc">Returns the message for an error code.</div><div class="ttdef"><b>Definition:</b> error.c:51</div></div>
<div class="ttc" id="agroup___global_html_ga8cd9a1d441e9219ca5f2ff04094c7c6d"><div class="ttname"><a href="group___global.html#ga8cd9a1d441e9219ca5f2ff04094c7c6d">snd_async_handler_t</a></div><div class="ttdeci">struct _snd_async_handler snd_async_handler_t</div><div class="ttdoc">Internal structure for an async notification client handler.</div><div class="ttdef"><b>Definition:</b> global.h:115</div></div>
<div class="ttc" id="agroup___global_html_gad9c76588a87918901c6273e6bc98a1bc"><div class="ttname"><a href="group___global.html#gad9c76588a87918901c6273e6bc98a1bc">snd_async_handler_get_callback_private</a></div><div class="ttdeci">void * snd_async_handler_get_callback_private(snd_async_handler_t *handler)</div><div class="ttdoc">Returns the private data assigned to an async handler.</div><div class="ttdef"><b>Definition:</b> async.c:232</div></div>
<div class="ttc" id="agroup___timer_html_ga076a6bbae3bfdb956b0a1a6ea9daa0a2"><div class="ttname"><a href="group___timer.html#ga076a6bbae3bfdb956b0a1a6ea9daa0a2">snd_async_add_timer_handler</a></div><div class="ttdeci">int snd_async_add_timer_handler(snd_async_handler_t **handler, snd_timer_t *timer, snd_async_callback_t callback, void *private_data)</div><div class="ttdoc">Add an async handler for a timer.</div><div class="ttdef"><b>Definition:</b> timer.c:301</div></div>
<div class="ttc" id="agroup___timer_html_ga13063464032aae91ab4e72dfdb57cb10"><div class="ttname"><a href="group___timer.html#ga13063464032aae91ab4e72dfdb57cb10">snd_timer_query_close</a></div><div class="ttdeci">int snd_timer_query_close(snd_timer_query_t *handle)</div><div class="ttdoc">close timer query handle</div><div class="ttdef"><b>Definition:</b> timer_query.c:200</div></div>
<div class="ttc" id="agroup___timer_html_ga155e0b5c831a3140f49c04932da9404f"><div class="ttname"><a href="group___timer.html#ga155e0b5c831a3140f49c04932da9404f">snd_timer_close</a></div><div class="ttdeci">int snd_timer_close(snd_timer_t *handle)</div><div class="ttdoc">close timer handle</div><div class="ttdef"><b>Definition:</b> timer.c:248</div></div>
<div class="ttc" id="agroup___timer_html_ga1cda350fb4de9a2f7a137c5649e3793c"><div class="ttname"><a href="group___timer.html#ga1cda350fb4de9a2f7a137c5649e3793c">SND_TIMER_GLOBAL_SYSTEM</a></div><div class="ttdeci">#define SND_TIMER_GLOBAL_SYSTEM</div><div class="ttdef"><b>Definition:</b> timer.h:113</div></div>
<div class="ttc" id="agroup___timer_html_ga279f189051eba2c5e072c30198deb81a"><div class="ttname"><a href="group___timer.html#ga279f189051eba2c5e072c30198deb81a">snd_timer_query_t</a></div><div class="ttdeci">struct _snd_timer_query snd_timer_query_t</div><div class="ttdef"><b>Definition:</b> timer.h:137</div></div>
<div class="ttc" id="agroup___timer_html_ga298418a42230f305c3c4efdf14da3403"><div class="ttname"><a href="group___timer.html#ga298418a42230f305c3c4efdf14da3403">snd_timer_params_get_ticks</a></div><div class="ttdeci">long snd_timer_params_get_ticks(snd_timer_params_t *params)</div><div class="ttdoc">get timer ticks</div><div class="ttdef"><b>Definition:</b> timer.c:712</div></div>
<div class="ttc" id="agroup___timer_html_ga2e76b7b6f7fe340b4a06935f080fbbbd"><div class="ttname"><a href="group___timer.html#ga2e76b7b6f7fe340b4a06935f080fbbbd">snd_timer_params_alloca</a></div><div class="ttdeci">#define snd_timer_params_alloca(ptr)</div><div class="ttdef"><b>Definition:</b> timer.h:218</div></div>
<div class="ttc" id="agroup___timer_html_ga305324f73fc12e7e42891598613a2d29"><div class="ttname"><a href="group___timer.html#ga305324f73fc12e7e42891598613a2d29">snd_timer_id_get_card</a></div><div class="ttdeci">int snd_timer_id_get_card(snd_timer_id_t *id)</div><div class="ttdoc">get timer card</div><div class="ttdef"><b>Definition:</b> timer_query.c:544</div></div>
<div class="ttc" id="agroup___timer_html_ga3450759fce8e0863ebce3221e82bafca"><div class="ttname"><a href="group___timer.html#ga3450759fce8e0863ebce3221e82bafca">snd_timer_params_t</a></div><div class="ttdeci">struct _snd_timer_params snd_timer_params_t</div><div class="ttdef"><b>Definition:</b> timer.h:57</div></div>
<div class="ttc" id="agroup___timer_html_ga3b33c3f0af5c93461e9493b0d4a3b81c"><div class="ttname"><a href="group___timer.html#ga3b33c3f0af5c93461e9493b0d4a3b81c">snd_timer_info_get_resolution</a></div><div class="ttdeci">long snd_timer_info_get_resolution(snd_timer_info_t *info)</div><div class="ttdoc">get timer resolution in us</div><div class="ttdef"><b>Definition:</b> timer.c:539</div></div>
<div class="ttc" id="agroup___timer_html_ga3fd358a410688c3aba3e2d69acf027a8"><div class="ttname"><a href="group___timer.html#ga3fd358a410688c3aba3e2d69acf027a8">snd_timer_params</a></div><div class="ttdeci">int snd_timer_params(snd_timer_t *handle, snd_timer_params_t *params)</div><div class="ttdoc">set parameters for timer handle</div><div class="ttdef"><b>Definition:</b> timer.c:778</div></div>
<div class="ttc" id="agroup___timer_html_ga42ea98dbaf720519453c0110bd06fb8b"><div class="ttname"><a href="group___timer.html#ga42ea98dbaf720519453c0110bd06fb8b">snd_timer_id_get_class</a></div><div class="ttdeci">int snd_timer_id_get_class(snd_timer_id_t *id)</div><div class="ttdoc">get timer class</div><div class="ttdef"><b>Definition:</b> timer_query.c:500</div></div>
<div class="ttc" id="agroup___timer_html_ga54f6d3838ff4680fcda97952a60376ff"><div class="ttname"><a href="group___timer.html#ga54f6d3838ff4680fcda97952a60376ff">snd_timer_query_open</a></div><div class="ttdeci">int snd_timer_query_open(snd_timer_query_t **handle, const char *name, int mode)</div><div class="ttdoc">Opens a new connection to the timer query interface.</div><div class="ttdef"><b>Definition:</b> timer_query.c:160</div></div>
<div class="ttc" id="agroup___timer_html_ga5c10a9b8dc5f4442908fa3d15ab79169"><div class="ttname"><a href="group___timer.html#ga5c10a9b8dc5f4442908fa3d15ab79169">snd_timer_query_next_device</a></div><div class="ttdeci">int snd_timer_query_next_device(snd_timer_query_t *handle, snd_timer_id_t *tid)</div><div class="ttdoc">obtain the next timer identification</div><div class="ttdef"><b>Definition:</b> timer_query.c:221</div></div>
<div class="ttc" id="agroup___timer_html_ga608cb266bf1cfd8f3796e6e55a2d5fe8"><div class="ttname"><a href="group___timer.html#ga608cb266bf1cfd8f3796e6e55a2d5fe8">snd_timer_info</a></div><div class="ttdeci">int snd_timer_info(snd_timer_t *handle, snd_timer_info_t *timer)</div><div class="ttdoc">get information about timer handle</div><div class="ttdef"><b>Definition:</b> timer.c:551</div></div>
<div class="ttc" id="agroup___timer_html_ga6597b8f73b30a3f2bf2aa9f3590b92f2"><div class="ttname"><a href="group___timer.html#ga6597b8f73b30a3f2bf2aa9f3590b92f2">snd_timer_status_alloca</a></div><div class="ttdeci">#define snd_timer_status_alloca(ptr)</div><div class="ttdef"><b>Definition:</b> timer.h:238</div></div>
<div class="ttc" id="agroup___timer_html_ga6edb10e32b6b485ecccef73d862ca648"><div class="ttname"><a href="group___timer.html#ga6edb10e32b6b485ecccef73d862ca648">snd_timer_status_get_queue</a></div><div class="ttdeci">long snd_timer_status_get_queue(snd_timer_status_t *status)</div><div class="ttdoc">get count of used queue elements</div><div class="ttdef"><b>Definition:</b> timer.c:886</div></div>
<div class="ttc" id="agroup___timer_html_ga6f8147c0679c820a77f98b1dd5b664a5"><div class="ttname"><a href="group___timer.html#ga6f8147c0679c820a77f98b1dd5b664a5">snd_timer_stop</a></div><div class="ttdeci">int snd_timer_stop(snd_timer_t *handle)</div><div class="ttdoc">stop the timer</div><div class="ttdef"><b>Definition:</b> timer.c:921</div></div>
<div class="ttc" id="agroup___timer_html_ga6fe20f2c0d1535e3a200944b1244f855"><div class="ttname"><a href="group___timer.html#ga6fe20f2c0d1535e3a200944b1244f855">snd_timer_status_t</a></div><div class="ttdeci">struct _snd_timer_status snd_timer_status_t</div><div class="ttdef"><b>Definition:</b> timer.h:59</div></div>
<div class="ttc" id="agroup___timer_html_ga724ada94d0bc3564ad77973c0a084682"><div class="ttname"><a href="group___timer.html#ga724ada94d0bc3564ad77973c0a084682">snd_timer_read</a></div><div class="ttdeci">ssize_t snd_timer_read(snd_timer_t *handle, void *buffer, size_t size)</div><div class="ttdoc">read bytes using timer handle</div><div class="ttdef"><b>Definition:</b> timer.c:944</div></div>
<div class="ttc" id="agroup___timer_html_ga7f514d85bfd93e1e5853a5fded89b668"><div class="ttname"><a href="group___timer.html#ga7f514d85bfd93e1e5853a5fded89b668">snd_timer_t</a></div><div class="ttdeci">struct _snd_timer snd_timer_t</div><div class="ttdef"><b>Definition:</b> timer.h:139</div></div>
<div class="ttc" id="agroup___timer_html_ga7f52f12140cd97f267143cbcd0832d02"><div class="ttname"><a href="group___timer.html#ga7f52f12140cd97f267143cbcd0832d02">snd_timer_id_get_subdevice</a></div><div class="ttdeci">int snd_timer_id_get_subdevice(snd_timer_id_t *id)</div><div class="ttdoc">get timer subdevice</div><div class="ttdef"><b>Definition:</b> timer_query.c:588</div></div>
<div class="ttc" id="agroup___timer_html_ga82e2754532fa2b5b28733820eab4d600"><div class="ttname"><a href="group___timer.html#ga82e2754532fa2b5b28733820eab4d600">snd_timer_id_get_sclass</a></div><div class="ttdeci">int snd_timer_id_get_sclass(snd_timer_id_t *id)</div><div class="ttdoc">get timer sub-class</div><div class="ttdef"><b>Definition:</b> timer_query.c:522</div></div>
<div class="ttc" id="agroup___timer_html_ga87c7e9656e171a76dada7e7e2da37136"><div class="ttname"><a href="group___timer.html#ga87c7e9656e171a76dada7e7e2da37136">snd_timer_id_t</a></div><div class="ttdeci">struct _snd_timer_id snd_timer_id_t</div><div class="ttdef"><b>Definition:</b> timer.h:47</div></div>
<div class="ttc" id="agroup___timer_html_ga89ec000a41fa7dd1269e332324663f61"><div class="ttname"><a href="group___timer.html#ga89ec000a41fa7dd1269e332324663f61">snd_timer_poll_descriptors</a></div><div class="ttdeci">int snd_timer_poll_descriptors(snd_timer_t *handle, struct pollfd *pfds, unsigned int space)</div><div class="ttdoc">get poll descriptors</div><div class="ttdef"><b>Definition:</b> timer.c:358</div></div>
<div class="ttc" id="agroup___timer_html_ga8d2a9e26d1f38ce65160d3cd71a2bce3"><div class="ttname"><a href="group___timer.html#ga8d2a9e26d1f38ce65160d3cd71a2bce3">snd_timer_info_t</a></div><div class="ttdeci">struct _snd_timer_info snd_timer_info_t</div><div class="ttdef"><b>Definition:</b> timer.h:55</div></div>
<div class="ttc" id="agroup___timer_html_ga9360acea37a3351ab9d2c17b7a264395"><div class="ttname"><a href="group___timer.html#ga9360acea37a3351ab9d2c17b7a264395">snd_timer_info_get_name</a></div><div class="ttdeci">const char * snd_timer_info_get_name(snd_timer_info_t *info)</div><div class="ttdoc">get timer name</div><div class="ttdef"><b>Definition:</b> timer.c:527</div></div>
<div class="ttc" id="agroup___timer_html_ga93bce2afe5e3f40f9f7adc17339273c4"><div class="ttname"><a href="group___timer.html#ga93bce2afe5e3f40f9f7adc17339273c4">snd_timer_id_set_class</a></div><div class="ttdeci">void snd_timer_id_set_class(snd_timer_id_t *id, int dev_class)</div><div class="ttdoc">set timer class</div><div class="ttdef"><b>Definition:</b> timer_query.c:489</div></div>
<div class="ttc" id="agroup___timer_html_ga9fa22f49745d1e383f0d6e5d9e795e2e"><div class="ttname"><a href="group___timer.html#ga9fa22f49745d1e383f0d6e5d9e795e2e">snd_timer_open</a></div><div class="ttdeci">int snd_timer_open(snd_timer_t **handle, const char *name, int mode)</div><div class="ttdoc">Opens a new connection to the timer interface.</div><div class="ttdef"><b>Definition:</b> timer.c:202</div></div>
<div class="ttc" id="agroup___timer_html_gaa497b2873abd234df7e932ecdefad5e0"><div class="ttname"><a href="group___timer.html#gaa497b2873abd234df7e932ecdefad5e0">snd_async_handler_get_timer</a></div><div class="ttdeci">snd_timer_t * snd_async_handler_get_timer(snd_async_handler_t *handler)</div><div class="ttdoc">Return timer handle related to an async handler.</div><div class="ttdef"><b>Definition:</b> timer.c:331</div></div>
<div class="ttc" id="agroup___timer_html_gaa7101edb9ec33fdbbb94e04256388caa"><div class="ttname"><a href="group___timer.html#gaa7101edb9ec33fdbbb94e04256388caa">snd_timer_params_set_ticks</a></div><div class="ttdeci">void snd_timer_params_set_ticks(snd_timer_params_t *params, long ticks)</div><div class="ttdoc">set timer ticks</div><div class="ttdef"><b>Definition:</b> timer.c:701</div></div>
<div class="ttc" id="agroup___timer_html_gaa78c7089909252ee0ca69f7552fa2804"><div class="ttname"><a href="group___timer.html#gaa78c7089909252ee0ca69f7552fa2804">snd_timer_status</a></div><div class="ttdeci">int snd_timer_status(snd_timer_t *handle, snd_timer_status_t *status)</div><div class="ttdoc">get status from timer handle</div><div class="ttdef"><b>Definition:</b> timer.c:898</div></div>
<div class="ttc" id="agroup___timer_html_gaa7ad78e8af9855e71d4951147869693b"><div class="ttname"><a href="group___timer.html#gaa7ad78e8af9855e71d4951147869693b">snd_timer_status_get_lost</a></div><div class="ttdeci">long snd_timer_status_get_lost(snd_timer_status_t *status)</div><div class="ttdoc">get master tick lost count</div><div class="ttdef"><b>Definition:</b> timer.c:864</div></div>
<div class="ttc" id="agroup___timer_html_gaa864bb9270989329f8acc86c5aec2093"><div class="ttname"><a href="group___timer.html#gaa864bb9270989329f8acc86c5aec2093">snd_timer_id_get_device</a></div><div class="ttdeci">int snd_timer_id_get_device(snd_timer_id_t *id)</div><div class="ttdoc">get timer device</div><div class="ttdef"><b>Definition:</b> timer_query.c:566</div></div>
<div class="ttc" id="agroup___timer_html_gaaab668cc548b6c4a24236504d63da0a0"><div class="ttname"><a href="group___timer.html#gaaab668cc548b6c4a24236504d63da0a0">snd_timer_status_get_resolution</a></div><div class="ttdeci">long snd_timer_status_get_resolution(snd_timer_status_t *status)</div><div class="ttdoc">get resolution in us</div><div class="ttdef"><b>Definition:</b> timer.c:853</div></div>
<div class="ttc" id="agroup___timer_html_gac2c50bf6045560bc13aab81f25b2b740"><div class="ttname"><a href="group___timer.html#gac2c50bf6045560bc13aab81f25b2b740">SND_TIMER_OPEN_NONBLOCK</a></div><div class="ttdeci">#define SND_TIMER_OPEN_NONBLOCK</div><div class="ttdef"><b>Definition:</b> timer.h:122</div></div>
<div class="ttc" id="agroup___timer_html_gac39b36fdcc72cbb05adb909673df04f0"><div class="ttname"><a href="group___timer.html#gac39b36fdcc72cbb05adb909673df04f0">snd_timer_params_set_auto_start</a></div><div class="ttdeci">int snd_timer_params_set_auto_start(snd_timer_params_t *params, int auto_start)</div><div class="ttdoc">set timer auto start</div><div class="ttdef"><b>Definition:</b> timer.c:613</div></div>
<div class="ttc" id="agroup___timer_html_gaccf0a207b91965e7200355a0daaac6ce"><div class="ttname"><a href="group___timer.html#gaccf0a207b91965e7200355a0daaac6ce">snd_timer_info_is_slave</a></div><div class="ttdeci">int snd_timer_info_is_slave(snd_timer_info_t *info)</div><div class="ttdoc">determine, if timer is slave</div><div class="ttdef"><b>Definition:</b> timer.c:494</div></div>
<div class="ttc" id="agroup___timer_html_gaddb757aa65e9532ced42ff7e9146ff34"><div class="ttname"><a href="group___timer.html#gaddb757aa65e9532ced42ff7e9146ff34">snd_timer_info_get_card</a></div><div class="ttdeci">int snd_timer_info_get_card(snd_timer_info_t *info)</div><div class="ttdoc">get timer card</div><div class="ttdef"><b>Definition:</b> timer.c:505</div></div>
<div class="ttc" id="agroup___timer_html_gaef1895685cb2f65d1a40cc46fa5a7eb2"><div class="ttname"><a href="group___timer.html#gaef1895685cb2f65d1a40cc46fa5a7eb2">snd_timer_id_alloca</a></div><div class="ttdeci">#define snd_timer_id_alloca(ptr)</div><div class="ttdef"><b>Definition:</b> timer.h:169</div></div>
<div class="ttc" id="agroup___timer_html_gaf035c37343afed7f13c60e950e461cdf"><div class="ttname"><a href="group___timer.html#gaf035c37343afed7f13c60e950e461cdf">snd_timer_poll_descriptors_count</a></div><div class="ttdeci">int snd_timer_poll_descriptors_count(snd_timer_t *handle)</div><div class="ttdoc">get count of poll descriptors for timer handle</div><div class="ttdef"><b>Definition:</b> timer.c:345</div></div>
<div class="ttc" id="agroup___timer_html_gaf3a83c122c2e19059297599d3486c04d"><div class="ttname"><a href="group___timer.html#gaf3a83c122c2e19059297599d3486c04d">snd_timer_status_get_overrun</a></div><div class="ttdeci">long snd_timer_status_get_overrun(snd_timer_status_t *status)</div><div class="ttdoc">get overrun count</div><div class="ttdef"><b>Definition:</b> timer.c:875</div></div>
<div class="ttc" id="agroup___timer_html_gaf46477b4ca62a7c2bd87926a45ecbd50"><div class="ttname"><a href="group___timer.html#gaf46477b4ca62a7c2bd87926a45ecbd50">snd_timer_info_get_id</a></div><div class="ttdeci">const char * snd_timer_info_get_id(snd_timer_info_t *info)</div><div class="ttdoc">get timer id</div><div class="ttdef"><b>Definition:</b> timer.c:516</div></div>
<div class="ttc" id="agroup___timer_html_gafad2100b7f0478b8c3c59f0f4aced23e"><div class="ttname"><a href="group___timer.html#gafad2100b7f0478b8c3c59f0f4aced23e">snd_timer_info_alloca</a></div><div class="ttdeci">#define snd_timer_info_alloca(ptr)</div><div class="ttdef"><b>Definition:</b> timer.h:205</div></div>
<div class="ttc" id="agroup___timer_html_gafc990117a12e19a729ff10ef217fe2f9"><div class="ttname"><a href="group___timer.html#gafc990117a12e19a729ff10ef217fe2f9">snd_timer_start</a></div><div class="ttdeci">int snd_timer_start(snd_timer_t *handle)</div><div class="ttdoc">start the timer</div><div class="ttdef"><b>Definition:</b> timer.c:910</div></div>
<div class="ttc" id="agroup___timer_html_ggad834b328331c3a4a4fb42041e2e61298a93c410a46bba52d680058f0718a32879"><div class="ttname"><a href="group___timer.html#ggad834b328331c3a4a4fb42041e2e61298a93c410a46bba52d680058f0718a32879">SND_TIMER_SCLASS_NONE</a></div><div class="ttdeci">@ SND_TIMER_SCLASS_NONE</div><div class="ttdef"><b>Definition:</b> timer.h:72</div></div>
<div class="ttc" id="agroup___timer_html_ggafcf09894847cdee6925ab6e405c358d9a532f7292aafb8e4eaa8fce3bb42b7ea1"><div class="ttname"><a href="group___timer.html#ggafcf09894847cdee6925ab6e405c358d9a532f7292aafb8e4eaa8fce3bb42b7ea1">SND_TIMER_CLASS_SLAVE</a></div><div class="ttdeci">@ SND_TIMER_CLASS_SLAVE</div><div class="ttdef"><b>Definition:</b> timer.h:63</div></div>
<div class="ttc" id="agroup___timer_html_ggafcf09894847cdee6925ab6e405c358d9a678ee4a7108ad3653fc49a6fe07ae45f"><div class="ttname"><a href="group___timer.html#ggafcf09894847cdee6925ab6e405c358d9a678ee4a7108ad3653fc49a6fe07ae45f">SND_TIMER_CLASS_NONE</a></div><div class="ttdeci">@ SND_TIMER_CLASS_NONE</div><div class="ttdef"><b>Definition:</b> timer.h:62</div></div>
<div class="ttc" id="agroup___timer_html_ggafcf09894847cdee6925ab6e405c358d9ae7a63ed172c4c38199e4d6b3ed9fd728"><div class="ttname"><a href="group___timer.html#ggafcf09894847cdee6925ab6e405c358d9ae7a63ed172c4c38199e4d6b3ed9fd728">SND_TIMER_CLASS_GLOBAL</a></div><div class="ttdeci">@ SND_TIMER_CLASS_GLOBAL</div><div class="ttdef"><b>Definition:</b> timer.h:64</div></div>
<div class="ttc" id="astructsnd__timer__read__t_html"><div class="ttname"><a href="structsnd__timer__read__t.html">snd_timer_read_t</a></div><div class="ttdef"><b>Definition:</b> timer.h:100</div></div>
<div class="ttc" id="astructsnd__timer__read__t_html_a6f1deb447c21188ac4590e872358edd9"><div class="ttname"><a href="structsnd__timer__read__t.html#a6f1deb447c21188ac4590e872358edd9">snd_timer_read_t::ticks</a></div><div class="ttdeci">unsigned int ticks</div><div class="ttdef"><b>Definition:</b> timer.h:102</div></div>
<div class="ttc" id="astructsnd__timer__read__t_html_a74c2d329a2a2c9c3bc53d5678b0fafe9"><div class="ttname"><a href="structsnd__timer__read__t.html#a74c2d329a2a2c9c3bc53d5678b0fafe9">snd_timer_read_t::resolution</a></div><div class="ttdeci">unsigned int resolution</div><div class="ttdef"><b>Definition:</b> timer.h:101</div></div>
<div class="ttc" id="aump__msg_8h_html_ade20423e91627f07e610924cb0081623"><div class="ttname"><a href="ump__msg_8h.html#ade20423e91627f07e610924cb0081623">status</a></div><div class="ttdeci">uint8_t status</div><div class="ttdef"><b>Definition:</b> ump_msg.h:11</div></div>
</div><!-- fragment --> </div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
</small></address>
</body>
</html>