6
6
<link href="doxygen.css" rel="stylesheet" type="text/css">
9
<!-- Generated by Doxygen 1.7.1 -->
10
<div class="navigation" id="top">
9
<!-- Generated by Doxygen 1.7.3 -->
10
<div id="navrow1" class="tabs">
12
11
<ul class="tablist">
13
<li><a href="main.html"><span>Main Page</span></a></li>
14
<li><a href="annotated.html"><span>Data Structures</span></a></li>
12
<li><a href="index.html"><span>Main Page</span></a></li>
13
<li><a href="annotated.html"><span>Data Structures</span></a></li>
15
14
<li class="current"><a href="files.html"><span>Files</span></a></li>
17
<div id="navrow2" class="tabs2">
19
18
<ul class="tablist">
20
<li><a href="files.html"><span>File List</span></a></li>
19
<li><a href="files.html"><span>File List</span></a></li>
21
20
<li><a href="globals.html"><span>Globals</span></a></li>
24
<div id="side-nav" class="ui-resizable side-nav-resizable">
26
<div id="nav-tree-contents">
29
<div id="splitbar" style="-moz-user-select:none;"
30
class="ui-resizable-handle">
33
<script type="text/javascript">
34
initNavTree('dmxmotion_8c.html','');
36
<div id="doc-content">
25
37
<div class="header">
26
38
<div class="summary">
27
39
<a href="#define-members">Defines</a> |
30
42
<h1>dmxmotion.c File Reference</h1> </div>
32
44
<div class="contents">
33
<code>#include "inputstr.h"</code><br/>
45
<div class="textblock"><code>#include "inputstr.h"</code><br/>
34
46
<code>#include "<a class="el" href="dmxinputinit_8h_source.html">dmxinputinit.h</a>"</code><br/>
35
47
<code>#include "<a class="el" href="dmxcommon_8h_source.html">dmxcommon.h</a>"</code><br/>
36
48
<code>#include "<a class="el" href="dmxmotion_8h_source.html">dmxmotion.h</a>"</code><br/>
37
<table class="memberdecls">
49
</div><table class="memberdecls">
38
50
<tr><td colspan="2"><h2><a name="define-members"></a>
39
51
Defines</h2></td></tr>
40
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dmxmotion_8c.html#ab1f1378062fc8a2c5b4132193e143c95">OFFSET</a>(offset, element) ((offset) * (numAxes + 1) + (element))</td></tr>
52
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dmxmotion_8c.html#ab1f1378062fc8a2c5b4132193e143c95">OFFSET</a>(offset, element)   ((offset) * (numAxes + 1) + (element))</td></tr>
41
53
<tr><td colspan="2"><h2><a name="func-members"></a>
42
54
Functions</h2></td></tr>
43
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dmxmotion_8c.html#a71e31cfbffb3603068d897374e173400">dmxPointerGetMotionBufferSize</a> (void)</td></tr>
44
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dmxmotion_8c.html#a6ebfa18908cd0473f3f23643e9ca2a58">dmxPointerGetMotionEvents</a> (DeviceIntPtr pDevice, xTimecoord *coords, unsigned long start, unsigned long stop, ScreenPtr pScreen)</td></tr>
45
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="dmxmotion_8c.html#abe71ba14a07f4077ca2658f81426f4c6">dmxPointerPutMotionEvent</a> (DeviceIntPtr pDevice, int firstAxis, int axesCount, int *v, unsigned long time)</td></tr>
55
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dmxmotion_8c.html#a71e31cfbffb3603068d897374e173400">dmxPointerGetMotionBufferSize</a> (void)</td></tr>
56
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dmxmotion_8c.html#a6ebfa18908cd0473f3f23643e9ca2a58">dmxPointerGetMotionEvents</a> (DeviceIntPtr pDevice, xTimecoord *coords, unsigned long start, unsigned long stop, ScreenPtr pScreen)</td></tr>
57
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="dmxmotion_8c.html#abe71ba14a07f4077ca2658f81426f4c6">dmxPointerPutMotionEvent</a> (DeviceIntPtr pDevice, int firstAxis, int axesCount, int *v, unsigned long time)</td></tr>
47
59
<hr/><a name="_details"></a><h2>Detailed Description</h2>
48
<p>This file provides functions similar to miPointerGetMotionEvents and miPointerPutMotionEvents, with the exception that devices with more than two axes are fully supported. These routines may be used only for motion buffers for extension devices, and are <em>not</em> compatible replacements for the mi routines. </p>
49
<hr/><h2>Define Documentation</h2>
60
<div class="textblock"><p>This file provides functions similar to miPointerGetMotionEvents and miPointerPutMotionEvents, with the exception that devices with more than two axes are fully supported. These routines may be used only for motion buffers for extension devices, and are <em>not</em> compatible replacements for the mi routines. </p>
61
</div><hr/><h2>Define Documentation</h2>
50
62
<a class="anchor" id="ab1f1378062fc8a2c5b4132193e143c95"></a><!-- doxytag: member="dmxmotion.c::OFFSET" ref="ab1f1378062fc8a2c5b4132193e143c95" args="(offset, element)" -->
51
63
<div class="memitem">
52
64
<div class="memproto">
55
67
<td class="memname">#define OFFSET</td>
57
<td class="paramtype"> </td>
69
<td class="paramtype"> </td>
58
70
<td class="paramname">offset, </td>
61
73
<td class="paramkey"></td>
63
<td class="paramtype"> </td>
64
<td class="paramname">element</td><td> </td>
75
<td class="paramtype"> </td>
76
<td class="paramname">element </td>
69
<td></td><td></td><td> ((offset) * (numAxes + 1) + (element))</td>
81
<td></td><td>   ((offset) * (numAxes + 1) + (element))</td>
107
120
<td class="memname">int dmxPointerGetMotionEvents </td>
109
<td class="paramtype">DeviceIntPtr </td>
110
<td class="paramname"> <em>pDevice</em>, </td>
113
<td class="paramkey"></td>
115
<td class="paramtype">xTimecoord * </td>
116
<td class="paramname"> <em>coords</em>, </td>
119
<td class="paramkey"></td>
121
<td class="paramtype">unsigned long </td>
122
<td class="paramname"> <em>start</em>, </td>
125
<td class="paramkey"></td>
127
<td class="paramtype">unsigned long </td>
128
<td class="paramname"> <em>stop</em>, </td>
131
<td class="paramkey"></td>
133
<td class="paramtype">ScreenPtr </td>
134
<td class="paramname"> <em>pScreen</em></td><td> </td>
122
<td class="paramtype">DeviceIntPtr </td>
123
<td class="paramname"><em>pDevice</em>, </td>
126
<td class="paramkey"></td>
128
<td class="paramtype">xTimecoord * </td>
129
<td class="paramname"><em>coords</em>, </td>
132
<td class="paramkey"></td>
134
<td class="paramtype">unsigned long </td>
135
<td class="paramname"><em>start</em>, </td>
138
<td class="paramkey"></td>
140
<td class="paramtype">unsigned long </td>
141
<td class="paramname"><em>stop</em>, </td>
144
<td class="paramkey"></td>
146
<td class="paramtype">ScreenPtr </td>
147
<td class="paramname"><em>pScreen</em> </td>
139
<td></td><td></td><td></td>
144
157
<p>This routine performs the same function as <em>miPointerGetMotionEvents:</em> the events in the motion history that are between the start and stop times (in mS) are placed in the coords vector, and the count of the number of items so placed is returned. This routine is called from dix/devices.c so that coords can hold valuator->numMotionEvents events. This routine is called from <em>Xi/gtmotion.c</em> with coords large enough to hold the same number of events in a variable-length extended <em>xTimecoord</em> structure. This provides sufficient data for the <em>XGetDeviceMotionEvents</em> library call, and would be identical to <em>miPointerGetMotionEvents</em> for devices with only 2 axes (i.e., core pointers) if <em>xTimecoord</em> used 32bit integers.</p>
145
158
<p>Because DMX uses the mi* routines for all core devices, this routine only has to support extension devices using the polymorphic coords. Because compatibility with miPointerGetMotionEvents is not possible, it is not provided. </p>
147
<p>References <a class="el" href="dmxinputinit_8h.html#aa5877f857ec01a4754c187147f3e34f1">DMX_MOTION_SIZE</a>, and <a class="el" href="dmxmotion_8c.html#ab1f1378062fc8a2c5b4132193e143c95">OFFSET</a>.</p>
160
<p>References <a class="el" href="dmxinputinit_8h.html#aa5877f857ec01a4754c187147f3e34f1">DMX_MOTION_SIZE</a>, <a class="el" href="dmxcommon_8h.html#ae60813d58a79b6dae5b98321fd7e1866">GETDMXLOCALFROMPDEVICE</a>, and <a class="el" href="dmxmotion_8c.html#ab1f1378062fc8a2c5b4132193e143c95">OFFSET</a>.</p>
156
169
<td class="memname">void dmxPointerPutMotionEvent </td>
158
<td class="paramtype">DeviceIntPtr </td>
159
<td class="paramname"> <em>pDevice</em>, </td>
162
<td class="paramkey"></td>
164
<td class="paramtype">int </td>
165
<td class="paramname"> <em>firstAxis</em>, </td>
168
<td class="paramkey"></td>
170
<td class="paramtype">int </td>
171
<td class="paramname"> <em>axesCount</em>, </td>
174
<td class="paramkey"></td>
176
<td class="paramtype">int * </td>
177
<td class="paramname"> <em>v</em>, </td>
180
<td class="paramkey"></td>
182
<td class="paramtype">unsigned long </td>
183
<td class="paramname"> <em>time</em></td><td> </td>
171
<td class="paramtype">DeviceIntPtr </td>
172
<td class="paramname"><em>pDevice</em>, </td>
175
<td class="paramkey"></td>
177
<td class="paramtype">int </td>
178
<td class="paramname"><em>firstAxis</em>, </td>
181
<td class="paramkey"></td>
183
<td class="paramtype">int </td>
184
<td class="paramname"><em>axesCount</em>, </td>
187
<td class="paramkey"></td>
189
<td class="paramtype">int * </td>
190
<td class="paramname"><em>v</em>, </td>
193
<td class="paramkey"></td>
195
<td class="paramtype">unsigned long </td>
196
<td class="paramname"><em>time</em> </td>
188
<td></td><td></td><td></td>
192
205
<div class="memdoc">
193
206
<p>This routine adds an event to the motion history. A similar function is performed by miPointerMove for the mi versions of these routines. </p>
195
<p>References <a class="el" href="dmxinputinit_8h.html#aa5877f857ec01a4754c187147f3e34f1">DMX_MOTION_SIZE</a>, and <a class="el" href="dmxmotion_8c.html#ab1f1378062fc8a2c5b4132193e143c95">OFFSET</a>.</p>
208
<p>References <a class="el" href="dmxinputinit_8h.html#aa5877f857ec01a4754c187147f3e34f1">DMX_MOTION_SIZE</a>, <a class="el" href="dmxcommon_8h.html#ae60813d58a79b6dae5b98321fd7e1866">GETDMXLOCALFROMPDEVICE</a>, and <a class="el" href="dmxmotion_8c.html#ab1f1378062fc8a2c5b4132193e143c95">OFFSET</a>.</p>
214
<div id="nav-path" class="navpath">
216
<li class="navelem"><a class="el" href="dmxmotion_8c.html">dmxmotion.c</a> </li>