aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/hw/dmx/doc/html/dmxmotion_8c.html
blob: 76e0babad7a786d0026d6cf8171c64875279dc24 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
<!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>File Index</title>
    <link href="doxygen.css" rel="stylesheet" type="text/css">
  </head>
  <body>
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>dmxmotion.c File Reference</h1><code>#include &quot;inputstr.h&quot;</code><br/>
<code>#include &quot;<a class="el" href="dmxinputinit_8h_source.html">dmxinputinit.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="dmxcommon_8h_source.html">dmxcommon.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="dmxmotion_8h_source.html">dmxmotion.h</a>&quot;</code><br/>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxmotion_8c.html#ab1f1378062fc8a2c5b4132193e143c95">OFFSET</a>(offset, element)&nbsp;&nbsp;&nbsp;((offset) * (numAxes + 1) + (element))</td></tr>
<tr><td colspan="2"><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxmotion_8c.html#a71e31cfbffb3603068d897374e173400">dmxPointerGetMotionBufferSize</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</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>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</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>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<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>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="ab1f1378062fc8a2c5b4132193e143c95"></a><!-- doxytag: member="dmxmotion.c::OFFSET" ref="ab1f1378062fc8a2c5b4132193e143c95" args="(offset, element)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define OFFSET</td>
          <td>(</td>
          <td class="paramtype">offset, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">element&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td>&nbsp;&nbsp;&nbsp;((offset) * (numAxes + 1) + (element))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Referenced by <a class="el" href="dmxmotion_8c_source.html#l00074">dmxPointerGetMotionEvents()</a>, and <a class="el" href="dmxmotion_8c_source.html#l00102">dmxPointerPutMotionEvent()</a>.</p>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a71e31cfbffb3603068d897374e173400"></a><!-- doxytag: member="dmxmotion.c::dmxPointerGetMotionBufferSize" ref="a71e31cfbffb3603068d897374e173400" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int dmxPointerGetMotionBufferSize </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Return size of motion buffer. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="dmxinputinit_8h.html#aa5877f857ec01a4754c187147f3e34f1">DMX_MOTION_SIZE</a> </dd></dl>

<p>References <a class="el" href="dmxinputinit_8h_source.html#l00048">DMX_MOTION_SIZE</a>.</p>

<p>Referenced by <a class="el" href="dmxinputinit_8c_source.html#l00430">dmxDeviceOnOff()</a>.</p>

</div>
</div>
<a class="anchor" id="a6ebfa18908cd0473f3f23643e9ca2a58"></a><!-- doxytag: member="dmxmotion.c::dmxPointerGetMotionEvents" ref="a6ebfa18908cd0473f3f23643e9ca2a58" args="(DeviceIntPtr pDevice, xTimecoord *coords, unsigned long start, unsigned long stop, ScreenPtr pScreen)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int dmxPointerGetMotionEvents </td>
          <td>(</td>
          <td class="paramtype">DeviceIntPtr&nbsp;</td>
          <td class="paramname"> <em>pDevice</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">xTimecoord *&nbsp;</td>
          <td class="paramname"> <em>coords</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned long&nbsp;</td>
          <td class="paramname"> <em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned long&nbsp;</td>
          <td class="paramname"> <em>stop</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ScreenPtr&nbsp;</td>
          <td class="paramname"> <em>pScreen</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<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-&gt;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>
<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>

<p>References <a class="el" href="dmxinputinit_8h_source.html#l00048">DMX_MOTION_SIZE</a>, <a class="el" href="dmxcommon_8h_source.html#l00073">GETDMXLOCALFROMPDEVICE</a>, and <a class="el" href="dmxmotion_8c_source.html#l00050">OFFSET</a>.</p>

</div>
</div>
<a class="anchor" id="abe71ba14a07f4077ca2658f81426f4c6"></a><!-- doxytag: member="dmxmotion.c::dmxPointerPutMotionEvent" ref="abe71ba14a07f4077ca2658f81426f4c6" args="(DeviceIntPtr pDevice, int firstAxis, int axesCount, int *v, unsigned long time)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dmxPointerPutMotionEvent </td>
          <td>(</td>
          <td class="paramtype">DeviceIntPtr&nbsp;</td>
          <td class="paramname"> <em>pDevice</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>firstAxis</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>axesCount</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>v</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned long&nbsp;</td>
          <td class="paramname"> <em>time</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<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>

<p>References <a class="el" href="dmxinputinit_8h_source.html#l00048">DMX_MOTION_SIZE</a>, <a class="el" href="dmxcommon_8h_source.html#l00073">GETDMXLOCALFROMPDEVICE</a>, and <a class="el" href="dmxmotion_8c_source.html#l00050">OFFSET</a>.</p>

</div>
</div>
</div>
    <hr>
    <address>
      <small>
        Generated June 29, 2004 for <a
        href="http://dmx.sourceforge.net">Distributed Multihead X</a> by
        <a href="http://www.doxygen.org/index.html">doxygen</a>
        1.3.4.
      </small>
    </addres>
    </hr>
  </body>
</html>