<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>gavl: Software timer</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.3 --> <div id="top"> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">gavl</div> </td> </tr> </tbody> </table> </div> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li><a href="dirs.html"><span>Directories</span></a></li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#typedef-members">Typedefs</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"> <h1>Software timer</h1> </div> <div class="ingroups"><a class="el" href="group__time.html">Time</a></div></div> <div class="contents"> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="typedef-members"></a> Typedefs</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef struct gavl_timer_s </td><td class="memItemRight" valign="bottom"><a class="el" href="group__timer.html#gaae620a307ba8533e991c512c56b1fd24">gavl_timer_t</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Opaque timer structure. <a href="#gaae620a307ba8533e991c512c56b1fd24"></a><br/></td></tr> <tr><td colspan="2"><h2><a name="func-members"></a> Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC <a class="el" href="group__timer.html#gaae620a307ba8533e991c512c56b1fd24">gavl_timer_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__timer.html#ga09c6a3b1ac4c57ee13347d0d654473c5">gavl_timer_create</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a timer. <a href="#ga09c6a3b1ac4c57ee13347d0d654473c5"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__timer.html#ga4e340350de373c7551c0de1ad4acdedb">gavl_timer_destroy</a> (<a class="el" href="group__timer.html#gaae620a307ba8533e991c512c56b1fd24">gavl_timer_t</a> *timer)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Destroy a timer. <a href="#ga4e340350de373c7551c0de1ad4acdedb"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__timer.html#ga5d43483e1bbdd6aa228991ff373d9f08">gavl_timer_start</a> (<a class="el" href="group__timer.html#gaae620a307ba8533e991c512c56b1fd24">gavl_timer_t</a> *timer)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Start a timer. <a href="#ga5d43483e1bbdd6aa228991ff373d9f08"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__timer.html#ga2089d703fe1e66509293eed209f05c72">gavl_timer_stop</a> (<a class="el" href="group__timer.html#gaae620a307ba8533e991c512c56b1fd24">gavl_timer_t</a> *timer)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Stop a timer. <a href="#ga2089d703fe1e66509293eed209f05c72"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC <a class="el" href="group__time.html#gaede83abbdd6102bd8683f4b94a7bd647">gavl_time_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__timer.html#ga8a7eb1f66bfb7d482f7097080d748a34">gavl_timer_get</a> (<a class="el" href="group__timer.html#gaae620a307ba8533e991c512c56b1fd24">gavl_timer_t</a> *timer)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the current time of the timer. <a href="#ga8a7eb1f66bfb7d482f7097080d748a34"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__timer.html#gab26ee9e5edf2758507f7ddf4dfb4d5ea">gavl_timer_set</a> (<a class="el" href="group__timer.html#gaae620a307ba8533e991c512c56b1fd24">gavl_timer_t</a> *timer, <a class="el" href="group__time.html#gaede83abbdd6102bd8683f4b94a7bd647">gavl_time_t</a> t)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the current time of the timer. <a href="#gab26ee9e5edf2758507f7ddf4dfb4d5ea"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__timer.html#ga7e7b71a5499480ed31eef3c0f29220a8">gavl_benchmark_get_time</a> (int flags)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the current time for benchmarking. <a href="#ga7e7b71a5499480ed31eef3c0f29220a8"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__timer.html#ga457f0b1e56a60476d4860f5a2c0c421d">gavl_benchmark_get_desc</a> (int flags)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get a description about the value returned by <a class="el" href="group__timer.html#ga7e7b71a5499480ed31eef3c0f29220a8">gavl_benchmark_get_time</a>. <a href="#ga457f0b1e56a60476d4860f5a2c0c421d"></a><br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>This is a simple software timer, which can be used for synchronization purposes for cases wherer there is no synchronization with hardware devices available. </p> <hr/><h2>Typedef Documentation</h2> <a class="anchor" id="gaae620a307ba8533e991c512c56b1fd24"></a><!-- doxytag: member="gavltime.h::gavl_timer_t" ref="gaae620a307ba8533e991c512c56b1fd24" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef struct gavl_timer_s <a class="el" href="group__timer.html#gaae620a307ba8533e991c512c56b1fd24">gavl_timer_t</a></td> </tr> </table> </div> <div class="memdoc"> <p>Opaque timer structure. </p> <p>You don't want to know what's inside. </p> </div> </div> <hr/><h2>Function Documentation</h2> <a class="anchor" id="ga09c6a3b1ac4c57ee13347d0d654473c5"></a><!-- doxytag: member="gavltime.h::gavl_timer_create" ref="ga09c6a3b1ac4c57ee13347d0d654473c5" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GAVL_PUBLIC <a class="el" href="group__timer.html#gaae620a307ba8533e991c512c56b1fd24">gavl_timer_t</a>* gavl_timer_create </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Create a timer. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>A newly allocated timer </dd></dl> </div> </div> <a class="anchor" id="ga4e340350de373c7551c0de1ad4acdedb"></a><!-- doxytag: member="gavltime.h::gavl_timer_destroy" ref="ga4e340350de373c7551c0de1ad4acdedb" args="(gavl_timer_t *timer)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GAVL_PUBLIC void gavl_timer_destroy </td> <td>(</td> <td class="paramtype"><a class="el" href="group__timer.html#gaae620a307ba8533e991c512c56b1fd24">gavl_timer_t</a> * </td> <td class="paramname"><em>timer</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Destroy a timer. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">timer</td><td>A timer</td></tr> </table> </dd> </dl> <p>Destroys a timer and frees all associated memory </p> </div> </div> <a class="anchor" id="ga5d43483e1bbdd6aa228991ff373d9f08"></a><!-- doxytag: member="gavltime.h::gavl_timer_start" ref="ga5d43483e1bbdd6aa228991ff373d9f08" args="(gavl_timer_t *timer)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GAVL_PUBLIC void gavl_timer_start </td> <td>(</td> <td class="paramtype"><a class="el" href="group__timer.html#gaae620a307ba8533e991c512c56b1fd24">gavl_timer_t</a> * </td> <td class="paramname"><em>timer</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Start a timer. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">timer</td><td>A timer </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga2089d703fe1e66509293eed209f05c72"></a><!-- doxytag: member="gavltime.h::gavl_timer_stop" ref="ga2089d703fe1e66509293eed209f05c72" args="(gavl_timer_t *timer)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GAVL_PUBLIC void gavl_timer_stop </td> <td>(</td> <td class="paramtype"><a class="el" href="group__timer.html#gaae620a307ba8533e991c512c56b1fd24">gavl_timer_t</a> * </td> <td class="paramname"><em>timer</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Stop a timer. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">timer</td><td>A timer </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga8a7eb1f66bfb7d482f7097080d748a34"></a><!-- doxytag: member="gavltime.h::gavl_timer_get" ref="ga8a7eb1f66bfb7d482f7097080d748a34" args="(gavl_timer_t *timer)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GAVL_PUBLIC <a class="el" href="group__time.html#gaede83abbdd6102bd8683f4b94a7bd647">gavl_time_t</a> gavl_timer_get </td> <td>(</td> <td class="paramtype"><a class="el" href="group__timer.html#gaae620a307ba8533e991c512c56b1fd24">gavl_timer_t</a> * </td> <td class="paramname"><em>timer</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get the current time of the timer. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">timer</td><td>A timer </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Current time </dd></dl> </div> </div> <a class="anchor" id="gab26ee9e5edf2758507f7ddf4dfb4d5ea"></a><!-- doxytag: member="gavltime.h::gavl_timer_set" ref="gab26ee9e5edf2758507f7ddf4dfb4d5ea" args="(gavl_timer_t *timer, gavl_time_t t)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GAVL_PUBLIC void gavl_timer_set </td> <td>(</td> <td class="paramtype"><a class="el" href="group__timer.html#gaae620a307ba8533e991c512c56b1fd24">gavl_timer_t</a> * </td> <td class="paramname"><em>timer</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__time.html#gaede83abbdd6102bd8683f4b94a7bd647">gavl_time_t</a> </td> <td class="paramname"><em>t</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set the current time of the timer. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">timer</td><td>A timer </td></tr> <tr><td class="paramname">t</td><td>New time </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga7e7b71a5499480ed31eef3c0f29220a8"></a><!-- doxytag: member="gavltime.h::gavl_benchmark_get_time" ref="ga7e7b71a5499480ed31eef3c0f29220a8" args="(int flags)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GAVL_PUBLIC uint64_t gavl_benchmark_get_time </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>flags</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get the current time for benchmarking. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">flags</td><td>Flags returned by <a class="el" href="group__accel__flags.html#ga9ee7b6f97f38d7f77a03f8e3b8fc47f3">gavl_accel_supported</a> </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>The time in arbitrary units</dd></dl> <p>The returned value itself is meaningless since the timescale depends on the system. Use this only for relative comparisons for benchmarks. A textual description on how the values can be interpreted can be ontained with <a class="el" href="group__timer.html#ga457f0b1e56a60476d4860f5a2c0c421d">gavl_benchmark_get_desc</a> </p> </div> </div> <a class="anchor" id="ga457f0b1e56a60476d4860f5a2c0c421d"></a><!-- doxytag: member="gavltime.h::gavl_benchmark_get_desc" ref="ga457f0b1e56a60476d4860f5a2c0c421d" args="(int flags)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GAVL_PUBLIC const char* gavl_benchmark_get_desc </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>flags</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get a description about the value returned by <a class="el" href="group__timer.html#ga7e7b71a5499480ed31eef3c0f29220a8">gavl_benchmark_get_time</a>. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">flags</td><td>Flags returned by <a class="el" href="group__accel__flags.html#ga9ee7b6f97f38d7f77a03f8e3b8fc47f3">gavl_accel_supported</a> </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>A string describing what the time value means </dd></dl> </div> </div> </div> <hr class="footer"/><address class="footer"><small>Generated on Sat Mar 26 2011 for gavl by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address> </body> </html>