Commit | Line | Data |
---|---|---|
a09e091a JB |
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 | ||
36 | /** \file | |
37 | * Provide the main entry points for input initialization and processing | |
38 | * that arequired by the dix layer. | |
39 | */ | |
40 | ||
41 | #ifdef HAVE_DMX_CONFIG_H | |
42 | #include <dmx-config.h> | |
43 | #endif | |
44 | ||
45 | #include "dmx.h" | |
46 | #include "dmxlog.h" | |
47 | #include "dmxinput.h" | |
48 | ||
49 | #include "inputstr.h" | |
50 | #include "input.h" | |
51 | #include "mi.h" | |
52 | ||
53 | /** Returns TRUE if the key is a valid modifier. For PC-class | |
54 | * keyboards, all keys can be used as modifiers, so return TRUE | |
55 | * always. */ | |
56 | Bool | |
57 | LegalModifier(unsigned int key, DeviceIntPtr pDev) | |
58 | { | |
59 | return TRUE; | |
60 | } | |
61 | ||
62 | /** Called from dix/main.c on each server generation to initialize | |
63 | * inputs. All the work is done in dmxInputInit. \see | |
64 | * dmxInputInit() */ | |
65 | void | |
66 | InitInput(int argc, char **argv) | |
67 | { | |
68 | int i; | |
69 | DMXInputInfo *dmxInput; | |
70 | ||
71 | if (!dmxNumInputs) | |
72 | dmxLog(dmxFatal, "InitInput: no inputs specified\n"); | |
73 | ||
74 | for (i = 0, dmxInput = &dmxInputs[0]; i < dmxNumInputs; i++, dmxInput++) | |
75 | dmxInputInit(dmxInput); | |
76 | ||
77 | mieqInit(); | |
78 | } | |
79 | ||
80 | void | |
81 | CloseInput(void) | |
82 | { | |
83 | mieqFini(); | |
84 | } | |
85 | ||
86 | /** Called from dix/dispatch.c in Dispatch() whenever input events | |
87 | * require processing. All the work is done in the lower level | |
88 | * routines. */ | |
89 | void | |
90 | ProcessInputEvents(void) | |
91 | { | |
92 | int i; | |
93 | DMXInputInfo *dmxInput; | |
94 | ||
95 | for (i = 0, dmxInput = &dmxInputs[0]; i < dmxNumInputs; i++, dmxInput++) | |
96 | if (!dmxInput->detached && dmxInput->processInputEvents) | |
97 | dmxInput->processInputEvents(dmxInput); | |
98 | } | |
99 | ||
100 | /** This routine is called from \a dmxwindow.c whenever the layout of | |
101 | * windows on the display might have changed. This information is used | |
102 | * by input drivers (currently only the console driver) that provide | |
103 | * information about window layout to the user. */ | |
104 | void | |
105 | dmxUpdateWindowInfo(DMXUpdateType type, WindowPtr pWindow) | |
106 | { | |
107 | int i; | |
108 | DMXInputInfo *dmxInput; | |
109 | ||
110 | for (i = 0, dmxInput = &dmxInputs[0]; i < dmxNumInputs; i++, dmxInput++) | |
111 | if (!dmxInput->detached && dmxInput->updateWindowInfo) | |
112 | dmxInput->updateWindowInfo(dmxInput, type, pWindow); | |
113 | } | |
114 | ||
115 | int | |
116 | NewInputDeviceRequest(InputOption *options, InputAttributes * attrs, | |
117 | DeviceIntPtr *pdev) | |
118 | { | |
119 | return BadRequest; | |
120 | } | |
121 | ||
122 | void | |
123 | DeleteInputDeviceRequest(DeviceIntPtr pDev) | |
124 | { | |
125 | } |