Distributed Multihead X  1.16.4
dmxinput.h
Go to the documentation of this file.
1 /*
2  * Copyright 2001,2002 Red Hat Inc., Durham, North Carolina.
3  *
4  * All Rights Reserved.
5  *
6  * Permission is hereby granted, free of charge, to any person obtaining
7  * a copy of this software and associated documentation files (the
8  * "Software"), to deal in the Software without restriction, including
9  * without limitation on the rights to use, copy, modify, merge,
10  * publish, distribute, sublicense, and/or sell copies of the Software,
11  * and to permit persons to whom the Software is furnished to do so,
12  * subject to the following conditions:
13  *
14  * The above copyright notice and this permission notice (including the
15  * next paragraph) shall be included in all copies or substantial
16  * portions of the Software.
17  *
18  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21  * NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS
22  * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
23  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
24  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
25  * SOFTWARE.
26  */
27 
28 /*
29  * Authors:
30  * David H. Dawes <dawes@xfree86.org>
31  * Kevin E. Martin <kem@redhat.com>
32  * Rickard E. (Rik) Faith <faith@redhat.com>
33  *
34  */
35 
47 #ifndef DMXINPUT_H
48 #define DMXINPUT_H
49 
51 #define DMX_MAX_SIGIO_FDS 4
52 
53 struct _DMXInputInfo;
54 
56 typedef enum {
64 
65 typedef void (*ProcessInputEventsProc) (struct _DMXInputInfo *);
66 typedef void (*UpdateWindowInfoProc) (struct _DMXInputInfo *,
67  DMXUpdateType, WindowPtr);
68 
71 
73 typedef enum {
80 
84 struct _DMXInputInfo {
85  const char *name;
88  Bool freename;
89  Bool detached;
90  int inputIdx;
91  int scrnIdx;
92  Bool core;
95  Bool console;
99  Bool windows;
104 
105  /* Local input information */
113 
116 
118  int numDevs;
119 
124  DMXLocalInputInfoPtr *devs;
125 
126  char *keycodes;
127  char *symbols;
128  char *geometry;
129 };
130 
131 extern int dmxNumInputs;
132 extern DMXInputInfo *dmxInputs;
134 extern void dmxInputInit(DMXInputInfo * dmxInput);
135 extern void dmxInputReInit(DMXInputInfo * dmxInput);
136 extern void dmxInputLateReInit(DMXInputInfo * dmxInput);
137 extern void dmxInputFree(DMXInputInfo * dmxInput);
138 extern void dmxInputLogDevices(void);
139 extern void dmxUpdateWindowInfo(DMXUpdateType type, WindowPtr pWindow);
140 
141 /* These functions are defined in input/dmxeq.c */
142 extern void dmxeqSwitchScreen(DeviceIntPtr pDev, ScreenPtr pScreen,
143  Bool fromDIX);
144 
145 /* This type is used in input/dmxevents.c. Also, these functions are
146  * defined in input/dmxevents.c */
147 typedef enum {
150 } DMXBlockType;
151 
152 extern void dmxGetGlobalPosition(int *x, int *y);
153 extern DMXScreenInfo *dmxFindFirstScreen(int x, int y);
154 extern void dmxCoreMotion(DevicePtr pDev, int x, int y, int delta,
155  DMXBlockType block);
156 
157 /* Support for dynamic addition of inputs. This functions is defined in
158  * config/dmxconfig.c */
159 extern DMXInputInfo *dmxConfigAddInput(const char *name, int core);
160 #endif /* DMXINPUT_H */
Definition: dmxinput.h:74
void(* ProcessInputEventsProc)(struct _DMXInputInfo *)
Definition: dmxinput.h:65
void dmxInputReInit(DMXInputInfo *dmxInput)
Definition: dmxinputinit.c:965
Definition: dmxinput.h:84
const char * name
Definition: dmxinput.h:85
Definition: dmxinput.h:61
void dmxInputLateReInit(DMXInputInfo *dmxInput)
Definition: dmxinputinit.c:980
char * symbols
Definition: dmxinput.h:127
void dmxeqSwitchScreen(DeviceIntPtr pDev, ScreenPtr pScreen, Bool fromDIX)
int vt_switched
Definition: dmxinput.h:115
void dmxUpdateWindowInfo(DMXUpdateType type, WindowPtr pWindow)
Definition: dmxinput.c:105
Definition: dmxinput.h:58
void dmxInputLogDevices(void)
Definition: dmxinputinit.c:1166
dmxSigioState
Definition: dmxinput.h:73
void dmxInputFree(DMXInputInfo *dmxInput)
Definition: dmxinputinit.c:1141
#define DMX_MAX_SIGIO_FDS
Definition: dmxinput.h:51
void dmxCoreMotion(DevicePtr pDev, int x, int y, int delta, DMXBlockType block)
Definition: dmxevents.c:195
struct _DMXLocalInputInfo * DMXLocalInputInfoPtr
Definition: dmxinput.h:70
int sigioFd[DMX_MAX_SIGIO_FDS]
Definition: dmxinput.h:108
dmxSigioState sigioState
Definition: dmxinput.h:106
Bool core
Definition: dmxinput.h:92
DMXLocalInputInfoPtr * devs
Definition: dmxinput.h:124
int vt_switch_pending
Definition: dmxinput.h:112
Definition: dmxinput.h:78
void dmxGetGlobalPosition(int *x, int *y)
Definition: dmxevents.c:571
ProcessInputEventsProc processInputEvents
Definition: dmxinput.h:102
Definition: dmxinput.h:75
Definition: dmxinputinit.h:179
int dmxNumInputs
Definition: dmxinit.c:82
UpdateWindowInfoProc updateWindowInfo
Definition: dmxinput.h:103
Definition: dmxinput.h:62
Definition: dmx.h:91
Definition: dmxinput.h:149
void dmxInputInit(DMXInputInfo *dmxInput)
Definition: dmxinputinit.c:994
Bool detached
Definition: dmxinput.h:89
void(* UpdateWindowInfoProc)(struct _DMXInputInfo *, DMXUpdateType, WindowPtr)
Definition: dmxinput.h:66
DMXInputInfo * dmxConfigAddInput(const char *name, int core)
Definition: dmxconfig.c:233
Definition: dmxinput.h:60
int inputIdx
Definition: dmxinput.h:90
char * keycodes
Definition: dmxinput.h:126
DMXUpdateType
Definition: dmxinput.h:56
DMXScreenInfo * dmxFindFirstScreen(int x, int y)
Definition: dmxevents.c:160
Definition: dmxinput.h:59
Definition: dmxinput.h:57
int sigioFdCount
Definition: dmxinput.h:107
int scrnIdx
Definition: dmxinput.h:91
Bool sigioAdded[DMX_MAX_SIGIO_FDS]
Definition: dmxinput.h:109
Bool windows
Definition: dmxinput.h:99
int numDevs
Definition: dmxinput.h:118
DMXBlockType
Definition: dmxinput.h:147
Definition: dmxinput.h:148
Bool console
Definition: dmxinput.h:95
char * geometry
Definition: dmxinput.h:128
Bool freename
Definition: dmxinput.h:88
DMXInputInfo * dmxInputs
Definition: dmxinit.c:83

Generated on Tue Aug 18 2015 01:27:31 for Distributed Multihead X by doxygen 1.8.8