1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<html>
3  <head>
4    <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
5    <title>File Index</title>
6    <link href="doxygen.css" rel="stylesheet" type="text/css">
7  </head>
8  <body>
9<!-- Generated by Doxygen 1.7.4 -->
10  <div id="navrow1" class="tabs">
11    <ul class="tablist">
12      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
13      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
14      <li class="current"><a href="files.html"><span>Files</span></a></li>
15    </ul>
16  </div>
17  <div id="navrow2" class="tabs2">
18    <ul class="tablist">
19      <li><a href="files.html"><span>File&#160;List</span></a></li>
20      <li><a href="globals.html"><span>Globals</span></a></li>
21    </ul>
22  </div>
23</div>
24<div id="side-nav" class="ui-resizable side-nav-resizable">
25  <div id="nav-tree">
26    <div id="nav-tree-contents">
27    </div>
28  </div>
29  <div id="splitbar" style="-moz-user-select:none;" 
30       class="ui-resizable-handle">
31  </div>
32</div>
33<script type="text/javascript">
34  initNavTree('dmxstat_8h.html','');
35</script>
36<div id="doc-content">
37<div class="header">
38  <div class="summary">
39<a href="#define-members">Defines</a> &#124;
40<a href="#func-members">Functions</a> &#124;
41<a href="#var-members">Variables</a>  </div>
42  <div class="headertitle">
43<div class="title">dmxstat.h File Reference</div>  </div>
44</div>
45<div class="contents">
46
47<p><a href="dmxstat_8h_source.html">Go to the source code of this file.</a></p>
48<table class="memberdecls">
49<tr><td colspan="2"><h2><a name="define-members"></a>
50Defines</h2></td></tr>
51<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8h.html#ad38ec0be743fab83c032d231034d4d49">DMX_STAT_LENGTH</a>&#160;&#160;&#160;10</td></tr>
52<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8h.html#a4cb43c9c7db58a10d8834a6b95a5c180">DMX_STAT_INTERVAL</a>&#160;&#160;&#160;1000</td></tr>
53<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8h.html#aac0caef45e7427ea05d5425da659ac56">DMX_STAT_BINS</a>&#160;&#160;&#160;3</td></tr>
54<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8h.html#a8757af3ae82fef58d05e31523454065f">DMX_STAT_BIN0</a>&#160;&#160;&#160;10000</td></tr>
55<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8h.html#a9c3e64f7fc0b5305bb6798b298ae6283">DMX_STAT_BINMULT</a>&#160;&#160;&#160;100</td></tr>
56<tr><td colspan="2"><h2><a name="func-members"></a>
57Functions</h2></td></tr>
58<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8h.html#a3d01ce5487317c131c32e31f05489c58">dmxStatActivate</a> (const char *interval, const char *displays)</td></tr>
59<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct__DMXStatInfo.html">DMXStatInfo</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8h.html#a5637440dfb18ba8ccf47bde3037d93aa">dmxStatAlloc</a> (void)</td></tr>
60<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8h.html#a33d0c28b9f5f129f4328a714f1da1db7">dmxStatFree</a> (<a class="el" href="struct__DMXStatInfo.html">DMXStatInfo</a> *)</td></tr>
61<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8h.html#a48ed41878576dd3ff9212deaecb2cc1f">dmxStatInit</a> (void)</td></tr>
62<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8h.html#a1098a195e40df685aaf2fbc238884027">dmxStatSync</a> (<a class="el" href="struct__DMXScreenInfo.html">DMXScreenInfo</a> *dmxScreen, struct timeval *stop, struct timeval *start, unsigned long pending)</td></tr>
63<tr><td colspan="2"><h2><a name="var-members"></a>
64Variables</h2></td></tr>
65<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8h.html#abe67369da5135f53f058261d3c173927">dmxStatInterval</a></td></tr>
66</table>
67<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
68<div class="textblock"><p>Interface for statistic gathering interface. </p>
69<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="dmxstat_8c.html">dmxstat.c</a> </dd></dl>
70</div><hr/><h2>Define Documentation</h2>
71<a class="anchor" id="a8757af3ae82fef58d05e31523454065f"></a><!-- doxytag: member="dmxstat.h::DMX_STAT_BIN0" ref="a8757af3ae82fef58d05e31523454065f" args="" -->
72<div class="memitem">
73<div class="memproto">
74      <table class="memname">
75        <tr>
76          <td class="memname">#define DMX_STAT_BIN0&#160;&#160;&#160;10000</td>
77        </tr>
78      </table>
79</div>
80<div class="memdoc">
81<p>us for bin[0] </p>
82
83<p>Referenced by <a class="el" href="dmxstat_8h.html#a1098a195e40df685aaf2fbc238884027">dmxStatSync()</a>.</p>
84
85</div>
86</div>
87<a class="anchor" id="a9c3e64f7fc0b5305bb6798b298ae6283"></a><!-- doxytag: member="dmxstat.h::DMX_STAT_BINMULT" ref="a9c3e64f7fc0b5305bb6798b298ae6283" args="" -->
88<div class="memitem">
89<div class="memproto">
90      <table class="memname">
91        <tr>
92          <td class="memname">#define DMX_STAT_BINMULT&#160;&#160;&#160;100</td>
93        </tr>
94      </table>
95</div>
96<div class="memdoc">
97<p>multiplier for next bin[] </p>
98
99<p>Referenced by <a class="el" href="dmxstat_8h.html#a1098a195e40df685aaf2fbc238884027">dmxStatSync()</a>.</p>
100
101</div>
102</div>
103<a class="anchor" id="aac0caef45e7427ea05d5425da659ac56"></a><!-- doxytag: member="dmxstat.h::DMX_STAT_BINS" ref="aac0caef45e7427ea05d5425da659ac56" args="" -->
104<div class="memitem">
105<div class="memproto">
106      <table class="memname">
107        <tr>
108          <td class="memname">#define DMX_STAT_BINS&#160;&#160;&#160;3</td>
109        </tr>
110      </table>
111</div>
112<div class="memdoc">
113<p>number of bins </p>
114
115<p>Referenced by <a class="el" href="dmxstat_8c.html#a218b57229dca87bd0564671d8f68f15f">dmxStatCallback()</a>, and <a class="el" href="dmxstat_8h.html#a1098a195e40df685aaf2fbc238884027">dmxStatSync()</a>.</p>
116
117</div>
118</div>
119<a class="anchor" id="a4cb43c9c7db58a10d8834a6b95a5c180"></a><!-- doxytag: member="dmxstat.h::DMX_STAT_INTERVAL" ref="a4cb43c9c7db58a10d8834a6b95a5c180" args="" -->
120<div class="memitem">
121<div class="memproto">
122      <table class="memname">
123        <tr>
124          <td class="memname">#define DMX_STAT_INTERVAL&#160;&#160;&#160;1000</td>
125        </tr>
126      </table>
127</div>
128<div class="memdoc">
129<p>msec between printouts </p>
130
131<p>Referenced by <a class="el" href="dmxstat_8c.html#a218b57229dca87bd0564671d8f68f15f">dmxStatCallback()</a>.</p>
132
133</div>
134</div>
135<a class="anchor" id="ad38ec0be743fab83c032d231034d4d49"></a><!-- doxytag: member="dmxstat.h::DMX_STAT_LENGTH" ref="ad38ec0be743fab83c032d231034d4d49" args="" -->
136<div class="memitem">
137<div class="memproto">
138      <table class="memname">
139        <tr>
140          <td class="memname">#define DMX_STAT_LENGTH&#160;&#160;&#160;10</td>
141        </tr>
142      </table>
143</div>
144<div class="memdoc">
145<p>number of events for moving average </p>
146
147<p>Referenced by <a class="el" href="dmxstat_8c.html#ab17f1e926473a1df95e781c6c7a8e940">dmxStatValue()</a>.</p>
148
149</div>
150</div>
151<hr/><h2>Function Documentation</h2>
152<a class="anchor" id="a3d01ce5487317c131c32e31f05489c58"></a><!-- doxytag: member="dmxstat.h::dmxStatActivate" ref="a3d01ce5487317c131c32e31f05489c58" args="(const char *interval, const char *displays)" -->
153<div class="memitem">
154<div class="memproto">
155      <table class="memname">
156        <tr>
157          <td class="memname">void dmxStatActivate </td>
158          <td>(</td>
159          <td class="paramtype">const char *&#160;</td>
160          <td class="paramname"><em>interval</em>, </td>
161        </tr>
162        <tr>
163          <td class="paramkey"></td>
164          <td></td>
165          <td class="paramtype">const char *&#160;</td>
166          <td class="paramname"><em>displays</em>&#160;</td>
167        </tr>
168        <tr>
169          <td></td>
170          <td>)</td>
171          <td></td><td></td>
172        </tr>
173      </table>
174</div>
175<div class="memdoc">
176<p>Turn on XSync statistic gathering and printing. Print every <em>interval</em> seconds, with lines for the first <em>displays</em>. If <em>interval</em> is NULL, 1 will be used. If <em>displays</em> is NULL, 0 will be used (meaning a line for every display will be printed). Note that this function takes string arguments because it will usually be called from <a class="el" href="dmxinit_8c.html#a6ed0a235a6d852bfe0cc0250159a5daf">ddxProcessArgument</a> in <em><a class="el" href="dmxinit_8c.html">dmxinit.c</a></em>. </p>
177
178<p>References <a class="el" href="dmxstat_8c.html#a9994506527c1e7aac2f30d4ed67ea4a5">dmxStatDisplays</a>, and <a class="el" href="dmxstat_8c.html#abe67369da5135f53f058261d3c173927">dmxStatInterval</a>.</p>
179
180<p>Referenced by <a class="el" href="dmxinit_8c.html#a6ed0a235a6d852bfe0cc0250159a5daf">ddxProcessArgument()</a>.</p>
181
182</div>
183</div>
184<a class="anchor" id="a5637440dfb18ba8ccf47bde3037d93aa"></a><!-- doxytag: member="dmxstat.h::dmxStatAlloc" ref="a5637440dfb18ba8ccf47bde3037d93aa" args="(void)" -->
185<div class="memitem">
186<div class="memproto">
187      <table class="memname">
188        <tr>
189          <td class="memname"><a class="el" href="struct__DMXStatInfo.html">DMXStatInfo</a>* dmxStatAlloc </td>
190          <td>(</td>
191          <td class="paramtype">void&#160;</td>
192          <td class="paramname"></td><td>)</td>
193          <td></td>
194        </tr>
195      </table>
196</div>
197<div class="memdoc">
198<p>Allocate a <em>DMXStatInfo</em> structure. </p>
199
200<p>Referenced by <a class="el" href="dmxconfig_8c.html#a5fa6729153f7f7e5d3037d451291fa64">dmxConfigAddDisplay()</a>.</p>
201
202</div>
203</div>
204<a class="anchor" id="a33d0c28b9f5f129f4328a714f1da1db7"></a><!-- doxytag: member="dmxstat.h::dmxStatFree" ref="a33d0c28b9f5f129f4328a714f1da1db7" args="(DMXStatInfo *)" -->
205<div class="memitem">
206<div class="memproto">
207      <table class="memname">
208        <tr>
209          <td class="memname">void dmxStatFree </td>
210          <td>(</td>
211          <td class="paramtype"><a class="el" href="struct__DMXStatInfo.html">DMXStatInfo</a> *&#160;</td>
212          <td class="paramname"><em>pt</em></td><td>)</td>
213          <td></td>
214        </tr>
215      </table>
216</div>
217<div class="memdoc">
218<p>Free the memory used by a <em>DMXStatInfo</em> structure. </p>
219
220<p>Referenced by <a class="el" href="dmxinit_8c.html#a51c195c51f4f09e981384a4215f82321">InitOutput()</a>.</p>
221
222</div>
223</div>
224<a class="anchor" id="a48ed41878576dd3ff9212deaecb2cc1f"></a><!-- doxytag: member="dmxstat.h::dmxStatInit" ref="a48ed41878576dd3ff9212deaecb2cc1f" args="(void)" -->
225<div class="memitem">
226<div class="memproto">
227      <table class="memname">
228        <tr>
229          <td class="memname">void dmxStatInit </td>
230          <td>(</td>
231          <td class="paramtype">void&#160;</td>
232          <td class="paramname"></td><td>)</td>
233          <td></td>
234        </tr>
235      </table>
236</div>
237<div class="memdoc">
238<p>Try to initialize the statistic gathering and printing routines. Initialization only takes place if <a class="el" href="dmxstat_8h.html#a3d01ce5487317c131c32e31f05489c58">dmxStatActivate</a> has already been called. We don't need the same generation protection that we used in dmxSyncInit because our timer is always on a queue -- hence, server generation will always free it. </p>
239
240<p>References <a class="el" href="dmxstat_8c.html#a218b57229dca87bd0564671d8f68f15f">dmxStatCallback()</a>, <a class="el" href="dmxstat_8c.html#abe67369da5135f53f058261d3c173927">dmxStatInterval</a>, and <a class="el" href="dmxstat_8c.html#a4b07a4c989d24e5cad8f85a24d24406c">dmxStatTimer</a>.</p>
241
242<p>Referenced by <a class="el" href="dmxinit_8c.html#a51c195c51f4f09e981384a4215f82321">InitOutput()</a>.</p>
243
244</div>
245</div>
246<a class="anchor" id="a1098a195e40df685aaf2fbc238884027"></a><!-- doxytag: member="dmxstat.h::dmxStatSync" ref="a1098a195e40df685aaf2fbc238884027" args="(DMXScreenInfo *dmxScreen, struct timeval *stop, struct timeval *start, unsigned long pending)" -->
247<div class="memitem">
248<div class="memproto">
249      <table class="memname">
250        <tr>
251          <td class="memname">void dmxStatSync </td>
252          <td>(</td>
253          <td class="paramtype"><a class="el" href="struct__DMXScreenInfo.html">DMXScreenInfo</a> *&#160;</td>
254          <td class="paramname"><em>dmxScreen</em>, </td>
255        </tr>
256        <tr>
257          <td class="paramkey"></td>
258          <td></td>
259          <td class="paramtype">struct timeval *&#160;</td>
260          <td class="paramname"><em>stop</em>, </td>
261        </tr>
262        <tr>
263          <td class="paramkey"></td>
264          <td></td>
265          <td class="paramtype">struct timeval *&#160;</td>
266          <td class="paramname"><em>start</em>, </td>
267        </tr>
268        <tr>
269          <td class="paramkey"></td>
270          <td></td>
271          <td class="paramtype">unsigned long&#160;</td>
272          <td class="paramname"><em>pending</em>&#160;</td>
273        </tr>
274        <tr>
275          <td></td>
276          <td>)</td>
277          <td></td><td></td>
278        </tr>
279      </table>
280</div>
281<div class="memdoc">
282<p>Note that a XSync() was just done on <em>dmxScreen</em> with the <em>start</em> and <em>stop</em> times (from gettimeofday()) and the number of pending-but-not-yet-processed XSync requests. This routine is called from <a class="el" href="dmxsync_8c.html#a3f47aabdd830525720f7a01acbac91ef">dmxDoSync</a> in <em><a class="el" href="dmxsync_8c.html">dmxsync.c</a></em> </p>
283
284<p>References <a class="el" href="struct__DMXStatInfo.html#a948f8674bc28129ad022a7678d81b38a">_DMXStatInfo::bins</a>, <a class="el" href="dmxstat_8h.html#a8757af3ae82fef58d05e31523454065f">DMX_STAT_BIN0</a>, <a class="el" href="dmxstat_8h.html#a9c3e64f7fc0b5305bb6798b298ae6283">DMX_STAT_BINMULT</a>, <a class="el" href="dmxstat_8h.html#aac0caef45e7427ea05d5425da659ac56">DMX_STAT_BINS</a>, <a class="el" href="dmxstat_8c.html#ab17f1e926473a1df95e781c6c7a8e940">dmxStatValue()</a>, <a class="el" href="struct__DMXStatInfo.html#a316b8214c93a5762b6dbd06a7617ef3c">_DMXStatInfo::pending</a>, <a class="el" href="struct__DMXScreenInfo.html#a31fd04698ffcb2b53ffee82468cc2862">_DMXScreenInfo::stat</a>, <a class="el" href="struct__DMXStatInfo.html#aa08d83f9455dcc98919fbc0085483aea">_DMXStatInfo::syncCount</a>, <a class="el" href="struct__DMXStatInfo.html#a4ed02fb0dd6e7e5ac3af88019331a895">_DMXStatInfo::usec</a>, and <a class="el" href="dmxstat_8c.html#a1a534cc2274afee02c883ac10ea9435f">usec()</a>.</p>
285
286<p>Referenced by <a class="el" href="dmxsync_8c.html#a3f47aabdd830525720f7a01acbac91ef">dmxDoSync()</a>.</p>
287
288</div>
289</div>
290<hr/><h2>Variable Documentation</h2>
291<a class="anchor" id="abe67369da5135f53f058261d3c173927"></a><!-- doxytag: member="dmxstat.h::dmxStatInterval" ref="abe67369da5135f53f058261d3c173927" args="" -->
292<div class="memitem">
293<div class="memproto">
294      <table class="memname">
295        <tr>
296          <td class="memname">int <a class="el" href="dmxstat_8h.html#abe67369da5135f53f058261d3c173927">dmxStatInterval</a></td>
297        </tr>
298      </table>
299</div>
300<div class="memdoc">
301<p>Only for <a class="el" href="dmxstat_8c.html">dmxstat.c</a> and <a class="el" href="dmxsync_8c.html">dmxsync.c</a> </p>
302
303<p>Referenced by <a class="el" href="dmxsync_8c.html#a3f47aabdd830525720f7a01acbac91ef">dmxDoSync()</a>, <a class="el" href="dmxstat_8h.html#a3d01ce5487317c131c32e31f05489c58">dmxStatActivate()</a>, <a class="el" href="dmxstat_8c.html#a218b57229dca87bd0564671d8f68f15f">dmxStatCallback()</a>, and <a class="el" href="dmxstat_8h.html#a48ed41878576dd3ff9212deaecb2cc1f">dmxStatInit()</a>.</p>
304
305</div>
306</div>
307</div>
308</div>
309  <div id="nav-path" class="navpath">
310    <ul>
311      <li class="navelem"><a class="el" href="dmxstat_8h.html">dmxstat.h</a>      </li>
312    <hr>
313    <address>
314      <small>
315        Generated June 29, 2004 for <a
316        href="http://dmx.sourceforge.net">Distributed Multihead X</a> by
317        <a href="http://www.doxygen.org/index.html">doxygen</a>
318        1.3.4.
319      </small>
320    </addres>
321    </hr>
322  </body>
323</html>
324