1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
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">
9
<!-- Generated by Doxygen 1.3.4 -->
10
<div class="qindex"><a class="qindex" href="main.html">Main Page</a> | <a class="qindex" href="classes.html">Alphabetical List</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></div>
11
<h1>dmxinput.h File Reference</h1>
13
<a href="dmxinput_8h-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0>
15
<tr><td colspan=2><br><h2>Data Structures</h2></td></tr>
16
<tr><td class="memItemLeft" nowrap align=right valign=top>struct </td><td class="memItemRight" valign=bottom><a class="el" href="struct__DMXInputInfo.html">_DMXInputInfo</a></td></tr>
18
<tr><td colspan=2><br><h2>Defines</h2></td></tr>
19
<tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="dmxinput_8h.html#a0">DMX_MAX_SIGIO_FDS</a> 4</td></tr>
21
<tr><td colspan=2><br><h2>Typedefs</h2></td></tr>
22
<tr><td class="memItemLeft" nowrap align=right valign=top>typedef <a class="el" href="struct__DMXLocalInputInfo.html">_DMXLocalInputInfo</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="dmxinput_8h.html#a3">DMXLocalInputInfoPtr</a></td></tr>
24
<tr><td colspan=2><br><h2>Enumerations</h2></td></tr>
25
<tr><td class="memItemLeft" nowrap align=right valign=top>enum </td><td class="memItemRight" valign=bottom><a class="el" href="dmxinput_8h.html#a30">DMXUpdateType</a> { <br>
26
<a class="el" href="dmxinput_8h.html#a30a6">DMX_UPDATE_REALIZE</a>,
27
<a class="el" href="dmxinput_8h.html#a30a7">DMX_UPDATE_UNREALIZE</a>,
28
<a class="el" href="dmxinput_8h.html#a30a8">DMX_UPDATE_RESTACK</a>,
29
<a class="el" href="dmxinput_8h.html#a30a9">DMX_UPDATE_COPY</a>,
31
<a class="el" href="dmxinput_8h.html#a30a10">DMX_UPDATE_RESIZE</a>,
32
<a class="el" href="dmxinput_8h.html#a30a11">DMX_UPDATE_REPARENT</a>
36
<tr><td class="memItemLeft" nowrap align=right valign=top>enum </td><td class="memItemRight" valign=bottom><a class="el" href="dmxinput_8h.html#a31">dmxSigioState</a> { <a class="el" href="dmxinput_8h.html#a31a12">DMX_NOSIGIO</a> = 0,
37
<a class="el" href="dmxinput_8h.html#a31a13">DMX_USESIGIO</a>,
38
<a class="el" href="dmxinput_8h.html#a31a14">DMX_ACTIVESIGIO</a>
41
<tr><td colspan=2><br><h2>Functions</h2></td></tr>
42
<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="dmxinput_8h.html#a17">dmxInputInit</a> (<a class="el" href="struct__DMXInputInfo.html">DMXInputInfo</a> *dmxInput)</td></tr>
44
<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="dmxinput_8h.html#a18">dmxInputReInit</a> (<a class="el" href="struct__DMXInputInfo.html">DMXInputInfo</a> *dmxInput)</td></tr>
46
<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="dmxinput_8h.html#a19">dmxInputLateReInit</a> (<a class="el" href="struct__DMXInputInfo.html">DMXInputInfo</a> *dmxInput)</td></tr>
48
<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="dmxinput_8h.html#a20">dmxInputFree</a> (<a class="el" href="struct__DMXInputInfo.html">DMXInputInfo</a> *dmxInput)</td></tr>
50
<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="dmxinput_8h.html#a21">dmxInputLogDevices</a> (void)</td></tr>
52
<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="dmxinput_8h.html#a22">dmxUpdateWindowInfo</a> (<a class="el" href="dmxinput_8h.html#a30">DMXUpdateType</a> type, WindowPtr pWindow)</td></tr>
54
<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="dmxinput_8h.html#a24">dmxeqEnqueue</a> (xEvent *e)</td></tr>
56
<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="dmxinput_8h.html#a25">dmxeqSwitchScreen</a> (ScreenPtr pScreen, Bool fromDIX)</td></tr>
58
<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="dmxinput_8h.html#a26">dmxGetGlobalPosition</a> (int *x, int *y)</td></tr>
60
<tr><td colspan=2><br><h2>Variables</h2></td></tr>
61
<tr><td class="memItemLeft" nowrap align=right valign=top>int </td><td class="memItemRight" valign=bottom><a class="el" href="dmxinput_8h.html#a4">dmxNumInputs</a></td></tr>
63
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="struct__DMXInputInfo.html">DMXInputInfo</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="dmxinput_8h.html#a5">dmxInputs</a></td></tr>
66
<hr><a name="_details"></a><h2>Detailed Description</h2>
67
This file provides access to:<ul>
68
<li>global variables available to all hw/dmx routines, and</li><li>enumerations and typedefs needed by input routines in hw/dmx (and hw/dmx/input).</li></ul>
70
The goal is that no files in hw/dmx should include header files from hw/dmx/input -- the interface defined here should be the only interface exported to the hw/dmx layer. <dl compact><dt><b>See also:</b></dt><dd>input/dmxinputinit.c.</dd></dl>
71
<hr><h2>Define Documentation</h2>
72
<a class="anchor" name="a0" doxytag="dmxinput.h::DMX_MAX_SIGIO_FDS" ></a><p>
73
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
76
<table cellpadding="0" cellspacing="0" border="0">
78
<td class="md" nowrap valign="top"> #define DMX_MAX_SIGIO_FDS 4
83
<table cellspacing=5 cellpadding=0 border=0>
91
Maximum number of file descriptors for SIGIO handling </td>
94
<hr><h2>Typedef Documentation</h2>
95
<a class="anchor" name="a3" doxytag="dmxinput.h::DMXLocalInputInfoPtr" ></a><p>
96
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
99
<table cellpadding="0" cellspacing="0" border="0">
101
<td class="md" nowrap valign="top"> typedef struct <a class="el" href="struct__DMXLocalInputInfo.html">_DMXLocalInputInfo</a>* <a class="el" href="struct__DMXLocalInputInfo.html">DMXLocalInputInfoPtr</a>
106
<table cellspacing=5 cellpadding=0 border=0>
114
An opaque structure that is only exposed in the dmx/input layer. </td>
117
<hr><h2>Enumeration Type Documentation</h2>
118
<a class="anchor" name="a31" doxytag="dmxinput.h::dmxSigioState" ></a><p>
119
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
122
<table cellpadding="0" cellspacing="0" border="0">
124
<td class="md" nowrap valign="top"> enum <a class="el" href="dmxinput_8h.html#a31">dmxSigioState</a>
129
<table cellspacing=5 cellpadding=0 border=0>
137
State of the SIGIO engine <dl compact><dt><b>Enumeration values: </b></dt><dd>
138
<table border=0 cellspacing=2 cellpadding=0>
139
<tr><td valign=top><em><a class="anchor" name="a31a12" doxytag="DMX_NOSIGIO" ></a>DMX_NOSIGIO</em> </td><td>
140
Device does not use SIGIO at all. </td></tr>
141
<tr><td valign=top><em><a class="anchor" name="a31a13" doxytag="DMX_USESIGIO" ></a>DMX_USESIGIO</em> </td><td>
142
Device can use SIGIO, but is not (e.g., because the VT is switch away). </td></tr>
143
<tr><td valign=top><em><a class="anchor" name="a31a14" doxytag="DMX_ACTIVESIGIO" ></a>DMX_ACTIVESIGIO</em> </td><td>
144
Device is currently using SIGIO. </td></tr>
150
<a class="anchor" name="a30" doxytag="dmxinput.h::DMXUpdateType" ></a><p>
151
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
154
<table cellpadding="0" cellspacing="0" border="0">
156
<td class="md" nowrap valign="top"> enum <a class="el" href="dmxinput_8h.html#a30">DMXUpdateType</a>
161
<table cellspacing=5 cellpadding=0 border=0>
169
Reason why window layout was updated. <dl compact><dt><b>Enumeration values: </b></dt><dd>
170
<table border=0 cellspacing=2 cellpadding=0>
171
<tr><td valign=top><em><a class="anchor" name="a30a6" doxytag="DMX_UPDATE_REALIZE" ></a>DMX_UPDATE_REALIZE</em> </td><td>
172
Window realized </td></tr>
173
<tr><td valign=top><em><a class="anchor" name="a30a7" doxytag="DMX_UPDATE_UNREALIZE" ></a>DMX_UPDATE_UNREALIZE</em> </td><td>
174
Window unrealized </td></tr>
175
<tr><td valign=top><em><a class="anchor" name="a30a8" doxytag="DMX_UPDATE_RESTACK" ></a>DMX_UPDATE_RESTACK</em> </td><td>
176
Stacking order changed </td></tr>
177
<tr><td valign=top><em><a class="anchor" name="a30a9" doxytag="DMX_UPDATE_COPY" ></a>DMX_UPDATE_COPY</em> </td><td>
178
Window copied </td></tr>
179
<tr><td valign=top><em><a class="anchor" name="a30a10" doxytag="DMX_UPDATE_RESIZE" ></a>DMX_UPDATE_RESIZE</em> </td><td>
180
Window resized </td></tr>
181
<tr><td valign=top><em><a class="anchor" name="a30a11" doxytag="DMX_UPDATE_REPARENT" ></a>DMX_UPDATE_REPARENT</em> </td><td>
182
Window reparented </td></tr>
188
<hr><h2>Function Documentation</h2>
189
<a class="anchor" name="a24" doxytag="dmxinput.h::dmxeqEnqueue" ></a><p>
190
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
193
<table cellpadding="0" cellspacing="0" border="0">
195
<td class="md" nowrap valign="top"> void dmxeqEnqueue </td>
196
<td class="md" valign="top">( </td>
197
<td class="md" nowrap valign="top">xEvent * </td>
198
<td class="mdname1" valign="top" nowrap> <em>e</em> </td>
199
<td class="md" valign="top"> ) </td>
200
<td class="md" nowrap></td>
207
<table cellspacing=5 cellpadding=0 border=0>
215
This function adds an event to the end of the queue. If the event is an XInput event, then the next event (the valuator event) is also stored in the queue. If the new event has a time before the time of the last event currently on the queue, then the time is updated for the new event.<p>
216
Must be reentrant with ProcessInputEvents. Assumption: dmxeqEnqueue will never be interrupted. If this is called from both signal handlers and regular code, make sure the signal is suspended when called from regular code. </td>
219
<a class="anchor" name="a25" doxytag="dmxinput.h::dmxeqSwitchScreen" ></a><p>
220
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
223
<table cellpadding="0" cellspacing="0" border="0">
225
<td class="md" nowrap valign="top"> void dmxeqSwitchScreen </td>
226
<td class="md" valign="top">( </td>
227
<td class="md" nowrap valign="top">ScreenPtr </td>
228
<td class="mdname" nowrap> <em>pScreen</em>, </td>
233
<td class="md" nowrap>Bool </td>
234
<td class="mdname" nowrap> <em>fromDIX</em></td>
238
<td class="md">) </td>
239
<td class="md" colspan="2"></td>
246
<table cellspacing=5 cellpadding=0 border=0>
254
Make <em>pScreen</em> the new screen for enqueueing events. If <em>fromDIX</em> is TRUE, also make <em>pScreen</em> the new screen for dequeuing events. </td>
257
<a class="anchor" name="a26" doxytag="dmxinput.h::dmxGetGlobalPosition" ></a><p>
258
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
261
<table cellpadding="0" cellspacing="0" border="0">
263
<td class="md" nowrap valign="top"> void dmxGetGlobalPosition </td>
264
<td class="md" valign="top">( </td>
265
<td class="md" nowrap valign="top">int * </td>
266
<td class="mdname" nowrap> <em>x</em>, </td>
271
<td class="md" nowrap>int * </td>
272
<td class="mdname" nowrap> <em>y</em></td>
276
<td class="md">) </td>
277
<td class="md" colspan="2"></td>
284
<table cellspacing=5 cellpadding=0 border=0>
292
Return DMX's notion of the pointer position in the global coordinate space. </td>
295
<a class="anchor" name="a20" doxytag="dmxinput.h::dmxInputFree" ></a><p>
296
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
299
<table cellpadding="0" cellspacing="0" border="0">
301
<td class="md" nowrap valign="top"> void dmxInputFree </td>
302
<td class="md" valign="top">( </td>
303
<td class="md" nowrap valign="top"><a class="el" href="struct__DMXInputInfo.html">DMXInputInfo</a> * </td>
304
<td class="mdname1" valign="top" nowrap> <em>dmxInput</em> </td>
305
<td class="md" valign="top"> ) </td>
306
<td class="md" nowrap></td>
313
<table cellspacing=5 cellpadding=0 border=0>
321
Free all of the memory associated with <em>dmxInput</em> </td>
324
<a class="anchor" name="a17" doxytag="dmxinput.h::dmxInputInit" ></a><p>
325
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
328
<table cellpadding="0" cellspacing="0" border="0">
330
<td class="md" nowrap valign="top"> void dmxInputInit </td>
331
<td class="md" valign="top">( </td>
332
<td class="md" nowrap valign="top"><a class="el" href="struct__DMXInputInfo.html">DMXInputInfo</a> * </td>
333
<td class="mdname1" valign="top" nowrap> <em>dmxInput</em> </td>
334
<td class="md" valign="top"> ) </td>
335
<td class="md" nowrap></td>
342
<table cellspacing=5 cellpadding=0 border=0>
350
Initialize all of the devices described in <em>dmxInput</em>. </td>
353
<a class="anchor" name="a19" doxytag="dmxinput.h::dmxInputLateReInit" ></a><p>
354
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
357
<table cellpadding="0" cellspacing="0" border="0">
359
<td class="md" nowrap valign="top"> void dmxInputLateReInit </td>
360
<td class="md" valign="top">( </td>
361
<td class="md" nowrap valign="top"><a class="el" href="struct__DMXInputInfo.html">DMXInputInfo</a> * </td>
362
<td class="mdname1" valign="top" nowrap> <em>dmxInput</em> </td>
363
<td class="md" valign="top"> ) </td>
364
<td class="md" nowrap></td>
371
<table cellspacing=5 cellpadding=0 border=0>
379
Re-initialize all the devices described in <em>dmxInput</em>. Called from #dmxReconfig after the cursor is redisplayed. </td>
382
<a class="anchor" name="a21" doxytag="dmxinput.h::dmxInputLogDevices" ></a><p>
383
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
386
<table cellpadding="0" cellspacing="0" border="0">
388
<td class="md" nowrap valign="top"> void dmxInputLogDevices </td>
389
<td class="md" valign="top">( </td>
390
<td class="md" nowrap valign="top">void </td>
391
<td class="mdname1" valign="top" nowrap> </td>
392
<td class="md" valign="top"> ) </td>
393
<td class="md" nowrap></td>
400
<table cellspacing=5 cellpadding=0 border=0>
408
Log information about all of the known devices using <a class="el" href="dmxlog_8c.html#a7">dmxLog()</a>. </td>
411
<a class="anchor" name="a18" doxytag="dmxinput.h::dmxInputReInit" ></a><p>
412
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
415
<table cellpadding="0" cellspacing="0" border="0">
417
<td class="md" nowrap valign="top"> void dmxInputReInit </td>
418
<td class="md" valign="top">( </td>
419
<td class="md" nowrap valign="top"><a class="el" href="struct__DMXInputInfo.html">DMXInputInfo</a> * </td>
420
<td class="mdname1" valign="top" nowrap> <em>dmxInput</em> </td>
421
<td class="md" valign="top"> ) </td>
422
<td class="md" nowrap></td>
429
<table cellspacing=5 cellpadding=0 border=0>
437
Re-initialize all the devices described in <em>dmxInput</em>. Called from #dmxReconfig before the cursor is redisplayed. </td>
440
<a class="anchor" name="a22" doxytag="dmxinput.h::dmxUpdateWindowInfo" ></a><p>
441
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
444
<table cellpadding="0" cellspacing="0" border="0">
446
<td class="md" nowrap valign="top"> void dmxUpdateWindowInfo </td>
447
<td class="md" valign="top">( </td>
448
<td class="md" nowrap valign="top"><a class="el" href="dmxinput_8h.html#a30">DMXUpdateType</a> </td>
449
<td class="mdname" nowrap> <em>type</em>, </td>
454
<td class="md" nowrap>WindowPtr </td>
455
<td class="mdname" nowrap> <em>pWindow</em></td>
459
<td class="md">) </td>
460
<td class="md" colspan="2"></td>
467
<table cellspacing=5 cellpadding=0 border=0>
475
This routine is called from #dmxwindow.c whenever the layout of windows on the display might have changed. This information is used by input drivers (currently only the console driver) that provide information about window layout to the user. </td>
478
<hr><h2>Variable Documentation</h2>
479
<a class="anchor" name="a5" doxytag="dmxinput.h::dmxInputs" ></a><p>
480
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
483
<table cellpadding="0" cellspacing="0" border="0">
485
<td class="md" nowrap valign="top"> <a class="el" href="struct__DMXInputInfo.html">DMXInputInfo</a>* <a class="el" href="dmxinput_8h.html#a5">dmxInputs</a>
490
<table cellspacing=5 cellpadding=0 border=0>
501
<a class="anchor" name="a4" doxytag="dmxinput.h::dmxNumInputs" ></a><p>
502
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
505
<table cellpadding="0" cellspacing="0" border="0">
507
<td class="md" nowrap valign="top"> int <a class="el" href="dmxinput_8h.html#a4">dmxNumInputs</a>
512
<table cellspacing=5 cellpadding=0 border=0>
520
Number of <a class="el" href="dmxinput_8h.html#a5">dmxInputs</a> </td>
526
Generated June 29, 2004 for <a
527
href="http://dmx.sourceforge.net">Distributed Multihead X</a> by
528
<a href="http://www.doxygen.org/index.html">doxygen</a>