<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>timer.h Source File</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.2.18 --> <center> <a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="modules.html">Modules</a> <a class="qindex" href="annotated.html">Data Structures</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Data Fields</a> <a class="qindex" href="globals.html">Globals</a> <a class="qindex" href="pages.html">Related Pages</a> <a class="qindex" href="examples.html">Examples</a> </center> <hr><h1>timer.h</h1><div class="fragment"><pre>00001 00028 <span class="preprocessor">#ifndef __ALSA_TIMER_H</span> 00029 <span class="preprocessor"></span><span class="preprocessor">#define __ALSA_TIMER_H</span> 00030 <span class="preprocessor"></span> 00031 <span class="preprocessor">#ifdef __cplusplus</span> 00032 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> { 00033 <span class="preprocessor">#endif</span> 00034 <span class="preprocessor"></span> <a name="l00042"></a><a class="code" href="group___timer.html#a69">00042</a> <span class="preprocessor">#define SND_TIMER_DLSYM_VERSION _dlsym_timer_001</span> 00043 <span class="preprocessor"></span> <a name="l00044"></a><a class="code" href="group___timer.html#a70">00044</a> <span class="preprocessor">#define SND_TIMER_QUERY_DLSYM_VERSION _dlsym_timer_query_001</span> 00045 <span class="preprocessor"></span> <a name="l00047"></a><a class="code" href="group___timer.html#a0">00047</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>_snd_timer_id <a class="code" href="group___timer.html#a0">snd_timer_id_t</a>; <a name="l00049"></a><a class="code" href="group___timer.html#a1">00049</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>_snd_timer_info <a class="code" href="group___timer.html#a1">snd_timer_info_t</a>; <a name="l00051"></a><a class="code" href="group___timer.html#a2">00051</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>_snd_timer_params <a class="code" href="group___timer.html#a2">snd_timer_params_t</a>; <a name="l00053"></a><a class="code" href="group___timer.html#a3">00053</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>_snd_timer_status <a class="code" href="group___timer.html#a3">snd_timer_status_t</a>; <a name="l00055"></a><a class="code" href="struct__snd__timer__read.html">00055</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__snd__timer__read.html">_snd_timer_read</a> { <a name="l00056"></a><a class="code" href="struct__snd__timer__read.html#m0">00056</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="struct__snd__timer__read.html#m0">resolution</a>; <a name="l00057"></a><a class="code" href="struct__snd__timer__read.html#m1">00057</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="struct__snd__timer__read.html#m1">ticks</a>; 00058 } <a class="code" href="struct__snd__timer__read.html">snd_timer_read_t</a>; 00059 <a name="l00061"></a><a class="code" href="group___timer.html#a78">00061</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="group___timer.html#a78">_snd_timer_class</a> { 00062 <a class="code" href="group___timer.html#a78a19">SND_TIMER_CLASS_NONE</a> = -1, 00063 <a class="code" href="group___timer.html#a78a20">SND_TIMER_CLASS_SLAVE</a> = 0, 00064 <a class="code" href="group___timer.html#a78a21">SND_TIMER_CLASS_GLOBAL</a>, 00065 <a class="code" href="group___timer.html#a78a22">SND_TIMER_CLASS_CARD</a>, 00066 <a class="code" href="group___timer.html#a78a23">SND_TIMER_CLASS_PCM</a>, 00067 <a class="code" href="group___timer.html#a78a24">SND_TIMER_CLASS_LAST</a> = <a class="code" href="group___timer.html#a78a23">SND_TIMER_CLASS_PCM</a> 00068 } <a class="code" href="group___timer.html#a5">snd_timer_class_t</a>; 00069 <a name="l00071"></a><a class="code" href="group___timer.html#a79">00071</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="group___timer.html#a79">_snd_timer_slave_class</a> { 00072 <a class="code" href="group___timer.html#a79a25">SND_TIMER_SCLASS_NONE</a> = 0, 00073 <a class="code" href="group___timer.html#a79a26">SND_TIMER_SCLASS_APPLICATION</a>, 00074 <a class="code" href="group___timer.html#a79a27">SND_TIMER_SCLASS_SEQUENCER</a>, 00075 <a class="code" href="group___timer.html#a79a28">SND_TIMER_SCLASS_OSS_SEQUENCER</a>, 00076 <a class="code" href="group___timer.html#a79a29">SND_TIMER_SCLASS_LAST</a> = <a class="code" href="group___timer.html#a79a28">SND_TIMER_SCLASS_OSS_SEQUENCER</a> 00077 } <a class="code" href="group___timer.html#a6">snd_timer_slave_class_t</a>; 00078 <a name="l00080"></a><a class="code" href="group___timer.html#a71">00080</a> <span class="preprocessor">#define SND_TIMER_GLOBAL_SYSTEM 0</span> 00081 <span class="preprocessor"></span> <a name="l00082"></a><a class="code" href="group___timer.html#a72">00082</a> <span class="preprocessor">#define SND_TIMER_GLOBAL_RTC 1</span> 00083 <span class="preprocessor"></span> <a name="l00085"></a><a class="code" href="group___timer.html#a73">00085</a> <span class="preprocessor">#define SND_TIMER_OPEN_NONBLOCK 0x0001</span> 00086 <span class="preprocessor"></span> <a name="l00088"></a><a class="code" href="group___timer.html#a80">00088</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="group___timer.html#a80">_snd_timer_type</a> { 00090 <a class="code" href="group___timer.html#a80a30">SND_TIMER_TYPE_HW</a> = 0, 00092 <a class="code" href="group___timer.html#a80a31">SND_TIMER_TYPE_SHM</a>, 00094 <a class="code" href="group___timer.html#a80a32">SND_TIMER_TYPE_INET</a> 00095 } <a class="code" href="group___timer.html#a7">snd_timer_type_t</a>; 00096 <a name="l00098"></a><a class="code" href="group___timer.html#a8">00098</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>_snd_timer_query snd_timer_query_t; <a name="l00100"></a><a class="code" href="group___timer.html#a9">00100</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>_snd_timer snd_timer_t; 00101 00102 00103 <span class="keywordtype">int</span> <a class="code" href="group___timer.html#a10">snd_timer_query_open</a>(snd_timer_query_t **handle, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">int</span> mode); 00104 <span class="keywordtype">int</span> <a class="code" href="group___timer.html#a11">snd_timer_query_open_lconf</a>(snd_timer_query_t **handle, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">int</span> mode, <a class="code" href="group___config.html#a1">snd_config_t</a> *lconf); 00105 <span class="keywordtype">int</span> <a class="code" href="group___timer.html#a12">snd_timer_query_close</a>(snd_timer_query_t *handle); 00106 <span class="keywordtype">int</span> <a class="code" href="group___timer.html#a13">snd_timer_query_next_device</a>(snd_timer_query_t *handle, <a class="code" href="group___timer.html#a0">snd_timer_id_t</a> *tid); 00107 00108 <span class="keywordtype">int</span> <a class="code" href="group___timer.html#a14">snd_timer_open</a>(snd_timer_t **handle, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">int</span> mode); 00109 <span class="keywordtype">int</span> <a class="code" href="group___timer.html#a15">snd_timer_open_lconf</a>(snd_timer_t **handle, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">int</span> mode, <a class="code" href="group___config.html#a1">snd_config_t</a> *lconf); 00110 <span class="keywordtype">int</span> <a class="code" href="group___timer.html#a16">snd_timer_close</a>(snd_timer_t *handle); 00111 <span class="keywordtype">int</span> <a class="code" href="group___timer.html#a17">snd_timer_poll_descriptors_count</a>(snd_timer_t *handle); 00112 <span class="keywordtype">int</span> <a class="code" href="group___timer.html#a18">snd_timer_poll_descriptors</a>(snd_timer_t *handle, <span class="keyword">struct</span> pollfd *pfds, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> space); 00113 <span class="keywordtype">int</span> <a class="code" href="group___timer.html#a19">snd_timer_poll_descriptors_revents</a>(snd_timer_t *timer, <span class="keyword">struct</span> pollfd *pfds, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nfds, <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> *revents); 00114 <span class="keywordtype">int</span> <a class="code" href="group___timer.html#a20">snd_timer_info</a>(snd_timer_t *handle, <a class="code" href="group___timer.html#a1">snd_timer_info_t</a> *timer); 00115 <span class="keywordtype">int</span> <a class="code" href="group___timer.html#a21">snd_timer_params</a>(snd_timer_t *handle, <a class="code" href="group___timer.html#a2">snd_timer_params_t</a> *params); 00116 <span class="keywordtype">int</span> <a class="code" href="group___timer.html#a22">snd_timer_status</a>(snd_timer_t *handle, <a class="code" href="group___timer.html#a3">snd_timer_status_t</a> *status); 00117 <span class="keywordtype">int</span> <a class="code" href="group___timer.html#a23">snd_timer_start</a>(snd_timer_t *handle); 00118 <span class="keywordtype">int</span> <a class="code" href="group___timer.html#a24">snd_timer_stop</a>(snd_timer_t *handle); 00119 <span class="keywordtype">int</span> <a class="code" href="group___timer.html#a25">snd_timer_continue</a>(snd_timer_t *handle); 00120 ssize_t <a class="code" href="group___timer.html#a26">snd_timer_read</a>(snd_timer_t *handle, <span class="keywordtype">void</span> *buffer, size_t size); 00121 00122 size_t <a class="code" href="group___timer.html#a27">snd_timer_id_sizeof</a>(<span class="keywordtype">void</span>); <a name="l00124"></a><a class="code" href="group___timer.html#a74">00124</a> <span class="preprocessor">#define snd_timer_id_alloca(ptr) do { assert(ptr); *ptr = (snd_timer_id_t *) alloca(snd_timer_id_sizeof()); memset(*ptr, 0, snd_timer_id_sizeof()); } while (0)</span> 00125 <span class="preprocessor"></span><span class="keywordtype">int</span> <a class="code" href="group___timer.html#a28">snd_timer_id_malloc</a>(<a class="code" href="group___timer.html#a0">snd_timer_id_t</a> **ptr); 00126 <span class="keywordtype">void</span> <a class="code" href="group___timer.html#a29">snd_timer_id_free</a>(<a class="code" href="group___timer.html#a0">snd_timer_id_t</a> *obj); 00127 <span class="keywordtype">void</span> <a class="code" href="group___timer.html#a30">snd_timer_id_copy</a>(<a class="code" href="group___timer.html#a0">snd_timer_id_t</a> *dst, <span class="keyword">const</span> <a class="code" href="group___timer.html#a0">snd_timer_id_t</a> *src); 00128 00129 <span class="keywordtype">void</span> <a class="code" href="group___timer.html#a31">snd_timer_id_set_class</a>(<a class="code" href="group___timer.html#a0">snd_timer_id_t</a> *id, <span class="keywordtype">int</span> dev_class); 00130 <span class="keywordtype">int</span> <a class="code" href="group___timer.html#a32">snd_timer_id_get_class</a>(<a class="code" href="group___timer.html#a0">snd_timer_id_t</a> *id); 00131 <span class="keywordtype">void</span> <a class="code" href="group___timer.html#a33">snd_timer_id_set_sclass</a>(<a class="code" href="group___timer.html#a0">snd_timer_id_t</a> *id, <span class="keywordtype">int</span> dev_sclass); 00132 <span class="keywordtype">int</span> <a class="code" href="group___timer.html#a34">snd_timer_id_get_sclass</a>(<a class="code" href="group___timer.html#a0">snd_timer_id_t</a> *id); 00133 <span class="keywordtype">void</span> <a class="code" href="group___timer.html#a35">snd_timer_id_set_card</a>(<a class="code" href="group___timer.html#a0">snd_timer_id_t</a> *id, <span class="keywordtype">int</span> card); 00134 <span class="keywordtype">int</span> <a class="code" href="group___timer.html#a36">snd_timer_id_get_card</a>(<a class="code" href="group___timer.html#a0">snd_timer_id_t</a> *id); 00135 <span class="keywordtype">void</span> <a class="code" href="group___timer.html#a37">snd_timer_id_set_device</a>(<a class="code" href="group___timer.html#a0">snd_timer_id_t</a> *id, <span class="keywordtype">int</span> device); 00136 <span class="keywordtype">int</span> <a class="code" href="group___timer.html#a38">snd_timer_id_get_device</a>(<a class="code" href="group___timer.html#a0">snd_timer_id_t</a> *id); 00137 <span class="keywordtype">void</span> <a class="code" href="group___timer.html#a39">snd_timer_id_set_subdevice</a>(<a class="code" href="group___timer.html#a0">snd_timer_id_t</a> *id, <span class="keywordtype">int</span> subdevice); 00138 <span class="keywordtype">int</span> <a class="code" href="group___timer.html#a40">snd_timer_id_get_subdevice</a>(<a class="code" href="group___timer.html#a0">snd_timer_id_t</a> *id); 00139 00140 size_t <a class="code" href="group___timer.html#a41">snd_timer_info_sizeof</a>(<span class="keywordtype">void</span>); <a name="l00142"></a><a class="code" href="group___timer.html#a75">00142</a> <span class="preprocessor">#define snd_timer_info_alloca(ptr) do { assert(ptr); *ptr = (snd_timer_info_t *) alloca(snd_timer_info_sizeof()); memset(*ptr, 0, snd_timer_info_sizeof()); } while (0)</span> 00143 <span class="preprocessor"></span><span class="keywordtype">int</span> <a class="code" href="group___timer.html#a42">snd_timer_info_malloc</a>(<a class="code" href="group___timer.html#a1">snd_timer_info_t</a> **ptr); 00144 <span class="keywordtype">void</span> <a class="code" href="group___timer.html#a43">snd_timer_info_free</a>(<a class="code" href="group___timer.html#a1">snd_timer_info_t</a> *obj); 00145 <span class="keywordtype">void</span> <a class="code" href="group___timer.html#a44">snd_timer_info_copy</a>(<a class="code" href="group___timer.html#a1">snd_timer_info_t</a> *dst, <span class="keyword">const</span> <a class="code" href="group___timer.html#a1">snd_timer_info_t</a> *src); 00146 00147 <span class="keywordtype">int</span> <a class="code" href="group___timer.html#a45">snd_timer_info_is_slave</a>(<a class="code" href="group___timer.html#a1">snd_timer_info_t</a> * info); 00148 <span class="keywordtype">int</span> <a class="code" href="group___timer.html#a46">snd_timer_info_get_card</a>(<a class="code" href="group___timer.html#a1">snd_timer_info_t</a> * info); 00149 <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="group___timer.html#a47">snd_timer_info_get_id</a>(<a class="code" href="group___timer.html#a1">snd_timer_info_t</a> * info); 00150 <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="group___timer.html#a48">snd_timer_info_get_name</a>(<a class="code" href="group___timer.html#a1">snd_timer_info_t</a> * info); 00151 <span class="keywordtype">long</span> <a class="code" href="group___timer.html#a49">snd_timer_info_get_ticks</a>(<a class="code" href="group___timer.html#a1">snd_timer_info_t</a> * info); 00152 <span class="keywordtype">long</span> <a class="code" href="group___timer.html#a50">snd_timer_info_get_resolution</a>(<a class="code" href="group___timer.html#a1">snd_timer_info_t</a> * info); 00153 00154 size_t <a class="code" href="group___timer.html#a51">snd_timer_params_sizeof</a>(<span class="keywordtype">void</span>); <a name="l00156"></a><a class="code" href="group___timer.html#a76">00156</a> <span class="preprocessor">#define snd_timer_params_alloca(ptr) do { assert(ptr); *ptr = (snd_timer_params_t *) alloca(snd_timer_params_sizeof()); memset(*ptr, 0, snd_timer_params_sizeof()); } while (0)</span> 00157 <span class="preprocessor"></span><span class="keywordtype">int</span> <a class="code" href="group___timer.html#a52">snd_timer_params_malloc</a>(<a class="code" href="group___timer.html#a2">snd_timer_params_t</a> **ptr); 00158 <span class="keywordtype">void</span> <a class="code" href="group___timer.html#a53">snd_timer_params_free</a>(<a class="code" href="group___timer.html#a2">snd_timer_params_t</a> *obj); 00159 <span class="keywordtype">void</span> <a class="code" href="group___timer.html#a54">snd_timer_params_copy</a>(<a class="code" href="group___timer.html#a2">snd_timer_params_t</a> *dst, <span class="keyword">const</span> <a class="code" href="group___timer.html#a2">snd_timer_params_t</a> *src); 00160 00161 <span class="keywordtype">void</span> <a class="code" href="group___timer.html#a55">snd_timer_params_set_auto_start</a>(<a class="code" href="group___timer.html#a2">snd_timer_params_t</a> * params, <span class="keywordtype">int</span> auto_start); 00162 <span class="keywordtype">void</span> <a class="code" href="group___timer.html#a56">snd_timer_params_set_ticks</a>(<a class="code" href="group___timer.html#a2">snd_timer_params_t</a> * params, <span class="keywordtype">long</span> ticks); 00163 <span class="keywordtype">long</span> <a class="code" href="group___timer.html#a57">snd_timer_params_get_ticks</a>(<a class="code" href="group___timer.html#a2">snd_timer_params_t</a> * params); 00164 <span class="keywordtype">void</span> <a class="code" href="group___timer.html#a58">snd_timer_params_set_queue_size</a>(<a class="code" href="group___timer.html#a2">snd_timer_params_t</a> * params, <span class="keywordtype">long</span> queue_size); 00165 <span class="keywordtype">long</span> <a class="code" href="group___timer.html#a59">snd_timer_params_get_queue_size</a>(<a class="code" href="group___timer.html#a2">snd_timer_params_t</a> * params); 00166 00167 size_t <a class="code" href="group___timer.html#a60">snd_timer_status_sizeof</a>(<span class="keywordtype">void</span>); <a name="l00169"></a><a class="code" href="group___timer.html#a77">00169</a> <span class="preprocessor">#define snd_timer_status_alloca(ptr) do { assert(ptr); *ptr = (snd_timer_status_t *) alloca(snd_timer_status_sizeof()); memset(*ptr, 0, snd_timer_status_sizeof()); } while (0)</span> 00170 <span class="preprocessor"></span><span class="keywordtype">int</span> <a class="code" href="group___timer.html#a61">snd_timer_status_malloc</a>(<a class="code" href="group___timer.html#a3">snd_timer_status_t</a> **ptr); 00171 <span class="keywordtype">void</span> <a class="code" href="group___timer.html#a62">snd_timer_status_free</a>(<a class="code" href="group___timer.html#a3">snd_timer_status_t</a> *obj); 00172 <span class="keywordtype">void</span> <a class="code" href="group___timer.html#a63">snd_timer_status_copy</a>(<a class="code" href="group___timer.html#a3">snd_timer_status_t</a> *dst, <span class="keyword">const</span> <a class="code" href="group___timer.html#a3">snd_timer_status_t</a> *src); 00173 00174 <span class="keyword">struct </span>timeval snd_timer_status_get_timestamp(<a class="code" href="group___timer.html#a3">snd_timer_status_t</a> * status); 00175 <span class="keywordtype">long</span> <a class="code" href="group___timer.html#a65">snd_timer_status_get_resolution</a>(<a class="code" href="group___timer.html#a3">snd_timer_status_t</a> * status); 00176 <span class="keywordtype">long</span> <a class="code" href="group___timer.html#a66">snd_timer_status_get_lost</a>(<a class="code" href="group___timer.html#a3">snd_timer_status_t</a> * status); 00177 <span class="keywordtype">long</span> <a class="code" href="group___timer.html#a67">snd_timer_status_get_overrun</a>(<a class="code" href="group___timer.html#a3">snd_timer_status_t</a> * status); 00178 <span class="keywordtype">long</span> <a class="code" href="group___timer.html#a68">snd_timer_status_get_queue</a>(<a class="code" href="group___timer.html#a3">snd_timer_status_t</a> * status); 00179 00182 <span class="preprocessor">#ifdef __cplusplus</span> 00183 <span class="preprocessor"></span>} 00184 <span class="preprocessor">#endif</span> 00185 <span class="preprocessor"></span> 00186 <span class="preprocessor">#endif </span> </pre></div><hr><address style="align: right;"><small>Generated on Wed Apr 2 16:06:33 2003 for ALSA project - the C library reference by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53></a>1.2.18 </small></address> </body> </html>