Commit | Line | Data |
---|---|---|
a09e091a JB |
1 | /************************************************************ |
2 | Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc. | |
3 | ||
4 | Permission to use, copy, modify, and distribute this | |
5 | software and its documentation for any purpose and without | |
6 | fee is hereby granted, provided that the above copyright | |
7 | notice appear in all copies and that both that copyright | |
8 | notice and this permission notice appear in supporting | |
9 | documentation, and that the name of Silicon Graphics not be | |
10 | used in advertising or publicity pertaining to distribution | |
11 | of the software without specific prior written permission. | |
12 | Silicon Graphics makes no representation about the suitability | |
13 | of this software for any purpose. It is provided "as is" | |
14 | without any express or implied warranty. | |
15 | ||
16 | SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS | |
17 | SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY | |
18 | AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON | |
19 | GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL | |
20 | DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, | |
21 | DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE | |
22 | OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH | |
23 | THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
24 | ||
25 | ********************************************************/ | |
26 | ||
27 | #ifdef HAVE_DIX_CONFIG_H | |
28 | #include <dix-config.h> | |
29 | #endif | |
30 | ||
31 | #include <stdio.h> | |
32 | #include <X11/X.h> | |
33 | #include <X11/Xproto.h> | |
34 | #include <X11/keysym.h> | |
35 | #include "inputstr.h" | |
36 | #include "scrnintstr.h" | |
37 | #include "windowstr.h" | |
38 | #include <xkbsrv.h> | |
39 | #include <X11/extensions/XI.h> | |
40 | ||
41 | static void | |
42 | XkbDDXUpdateIndicators(DeviceIntPtr dev, CARD32 new) | |
43 | { | |
44 | dev->kbdfeed->ctrl.leds = new; | |
45 | (*dev->kbdfeed->CtrlProc) (dev, &dev->kbdfeed->ctrl); | |
46 | return; | |
47 | } | |
48 | ||
49 | void | |
50 | XkbDDXUpdateDeviceIndicators(DeviceIntPtr dev, XkbSrvLedInfoPtr sli, CARD32 new) | |
51 | { | |
52 | if (sli->fb.kf == dev->kbdfeed) | |
53 | XkbDDXUpdateIndicators(dev, new); | |
54 | else if (sli->class == KbdFeedbackClass) { | |
55 | KbdFeedbackPtr kf; | |
56 | ||
57 | kf = sli->fb.kf; | |
58 | if (kf && kf->CtrlProc) { | |
59 | (*kf->CtrlProc) (dev, &kf->ctrl); | |
60 | } | |
61 | } | |
62 | else if (sli->class == LedFeedbackClass) { | |
63 | LedFeedbackPtr lf; | |
64 | ||
65 | lf = sli->fb.lf; | |
66 | if (lf && lf->CtrlProc) { | |
67 | (*lf->CtrlProc) (dev, &lf->ctrl); | |
68 | } | |
69 | } | |
70 | return; | |
71 | } |