From f4092abdf94af6a99aff944d6264bc1284e8bdd4 Mon Sep 17 00:00:00 2001 From: Reinhard Tartler Date: Mon, 10 Oct 2011 17:43:39 +0200 Subject: Imported nx-X11-3.1.0-1.tar.gz Summary: Imported nx-X11-3.1.0-1.tar.gz Keywords: Imported nx-X11-3.1.0-1.tar.gz into Git repository --- .../Xserver/hw/xfree86/os-support/os2/os2_kbd.c | 158 +++++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 nx-X11/programs/Xserver/hw/xfree86/os-support/os2/os2_kbd.c (limited to 'nx-X11/programs/Xserver/hw/xfree86/os-support/os2/os2_kbd.c') diff --git a/nx-X11/programs/Xserver/hw/xfree86/os-support/os2/os2_kbd.c b/nx-X11/programs/Xserver/hw/xfree86/os-support/os2/os2_kbd.c new file mode 100644 index 000000000..f99f12c0f --- /dev/null +++ b/nx-X11/programs/Xserver/hw/xfree86/os-support/os2/os2_kbd.c @@ -0,0 +1,158 @@ +/* + * Copied from os2_io.c which is + * + * (c) Copyright 1994,1999 by Holger Veit + * + * Modified 1996 by Sebastien Marineau + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * HOLGER VEIT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Except as contained in this notice, the name of Holger Veit shall not be + * used in advertising or otherwise to promote the sale, use or other dealings + * in this Software without prior written authorization from Holger Veit. + * + */ +/* $XFree86$ */ + +#define I_NEED_OS2_H +#ifdef HAVE_XORG_CONFIG_H +#include +#endif + +#include +#include +#include "compiler.h" +#include + +#define INCL_DOSPROCESS +#define INCL_KBD +#include "xf86.h" +#include "xf86Priv.h" +#include "xf86_OSlib.h" +#include "xf86Xinput.h" +#include "xf86OSKbd.h" + + + +/***************************************************************************/ + +static void SoundKbdBell(loudness, pitch, duration) +int loudness; +int pitch; +int duration; +{ + DosBeep((ULONG)pitch, (ULONG)duration); +} + +static void SetKbdLeds(pInfo, leds) +InputInfoPtr pInfo; +int leds; +{ + KBDINFO kinfo; + APIRET rc; + + rc = KbdGetStatus(&kinfo,(HKBD)xf86Info.consoleFd); + if (!rc) { + kinfo.fsMask = 0x10; + kinfo.fsState &= ~0x70; + kinfo.fsState |= (leds&0x70); + KbdSetStatus(&kinfo,(HKBD)xf86Info.consoleFd); + } +} + +static int GetKbdLeds(pInfo) +InputInfoPtr pInfo; +{ + KBDINFO kinfo; + APIRET rc; + + rc = KbdGetStatus(&kinfo,(HKBD)xf86Info.consoleFd); + return rc ? 0 : kinfo.fsState & 0x70; +} + +static void SetKbdRepeat(pInfo, rad) +InputInfoPtr pInfo; +char rad; +{ + /*notyet*/ +} + +static void KbdInit(pInfo) +InputInfoPtr pInfo; +{ + /*none required*/ + xf86Msg(X_INFO,"XKB module: Keyboard initialized\n"); +} + + +static USHORT OrigKbdState; +static USHORT OrigKbdInterim; + +typedef struct { + USHORT state; + UCHAR makeCode; + UCHAR breakCode; + USHORT keyID; +} HOTKEYPARAM; + + +static int KbdOn(pInfo) +InputInfoPtr pInfo; +{ + KBDINFO info; + + KbdGetStatus(&info,(HKBD)xf86Info.consoleFd); + OrigKbdState=info.fsMask; + OrigKbdInterim=info.fsInterim; + info.fsMask &= ~0x09; + info.fsMask |= 0x136; + info.fsInterim &= ~0x20; + KbdSetStatus(&info,(HKBD)xf86Info.consoleFd); + return -1; +} + +static int KbdOff(pInfo) +InputInfoPtr pInfo; +{ + KBDINFO info; + + info.fsMask=OrigKbdState; + info.fsInterim=OrigKbdInterim; + KbdSetStatus(&info,(HKBD)xf86Info.consoleFd); + return -1; +} + +Bool +xf86OSKbdPreInit(InputInfoPtr pInfo) +{ + KbdDevPtr pKbd = pInfo->private; + + pKbd->KbdInit = KbdInit; + pKbd->KbdOn = KbdOn; + pKbd->KbdOff = KbdOff; + pKbd->Bell = SoundKbdBell; + pKbd->SetLeds = SetKbdLeds; + pKbd->GetLeds = GetKbdLeds; + pKbd->SetKbdRepeat = SetKbdRepeat; + + pKbd->vtSwitchSupported = FALSE; + + /* not yet */ + return FALSE; +} -- cgit v1.2.3