# dmxinputinit.c File Reference

`#include "dmxinputinit.h"`
`#include "dmxextension.h"`
`#include "dmxdummy.h"`
`#include "dmxbackend.h"`
`#include "dmxconsole.h"`
`#include "dmxcommon.h"`
`#include "dmxevents.h"`
`#include "dmxmotion.h"`
`#include "dmxprop.h"`
`#include "config/dmxconfig.h"`
`#include "dmxcursor.h"`
`#include "lnx-keyboard.h"`
`#include "lnx-ms.h"`
`#include "lnx-ps2.h"`
`#include "usb-keyboard.h"`
`#include "usb-mouse.h"`
`#include "usb-other.h"`
`#include "usb-common.h"`
`#include "dmxsigio.h"`
`#include "dmxarg.h"`
`#include "inputstr.h"`
`#include "input.h"`
`#include "mipointer.h"`
`#include "windowstr.h"`
`#include "mi.h"`
`#include "xkbsrv.h"`
`#include <X11/extensions/XI.h>`
`#include <X11/extensions/XIproto.h>`
`#include "exevents.h"`
`#include "extinit.h"`

## Defines

#define | DMX_WINDOW_DEBUG 0
#define | LEN 32

## Functions

void | DDXRingBell (int volume, int pitch, int duration)
static void | dmxKbdCtrl (DeviceIntPtr pDevice, KeybdCtrl *ctrl)
static void | dmxBell (int volume, DeviceIntPtr pDev, pointer arg, int something)
static void | _dmxChangePointerControl (DMXLocalInputInfoPtr dmxLocal, PtrCtrl *ctrl)
void | dmxChangePointerControl (DeviceIntPtr pDevice, PtrCtrl *ctrl)
static void | _dmxKeyboardKbdCtrlProc (DMXLocalInputInfoPtr dmxLocal, KeybdCtrl *ctrl)
void | dmxKeyboardKbdCtrlProc (DeviceIntPtr pDevice, KeybdCtrl *ctrl)
static void | _dmxKeyboardBellProc (DMXLocalInputInfoPtr dmxLocal, int percent)
void | dmxKeyboardBellProc (int percent, DeviceIntPtr pDevice, pointer ctrl, int unknown)
static void | dmxKeyboardFreeNames (XkbComponentNamesPtr names)
static int | dmxKeyboardOn (DeviceIntPtr pDevice, DMXLocalInitInfo *info)
static int | dmxDeviceOnOff (DeviceIntPtr pDevice, int what)
static void | dmxProcessInputEvents (DMXInputInfo *dmxInput)
static void | dmxUpdateWindowInformation (DMXInputInfo *dmxInput, DMXUpdateType type, WindowPtr pWindow)
static void | dmxCollectAll (DMXInputInfo *dmxInput)
static void | dmxBlockHandler (pointer blockData, OSTimePtr pTimeout, pointer pReadMask)
static void | dmxSwitchReturn (pointer p)
static void | dmxWakeupHandler (pointer blockData, int result, pointer pReadMask)
static char * | dmxMakeUniqueDeviceName (DMXLocalInputInfoPtr dmxLocal)
static DeviceIntPtr | dmxAddDevice (DMXLocalInputInfoPtr dmxLocal)
static DMXLocalInputInfoPtr | dmxLookupLocal (const char *name)
DMXLocalInputInfoPtr | dmxInputCopyLocal (DMXInputInfo *dmxInput, DMXLocalInputInfoPtr s)
static void | dmxPopulateLocal (DMXInputInfo *dmxInput, dmxArg a)
int | dmxInputExtensionErrorHandler (Display *dsp, _Xconst char *name, _Xconst char *reason)
static void | dmxInputScanForExtensions (DMXInputInfo *dmxInput, int doXI)
void | dmxInputReInit (DMXInputInfo *dmxInput)
void | dmxInputLateReInit (DMXInputInfo *dmxInput)
void | dmxInputInit (DMXInputInfo *dmxInput)
static void | dmxInputFreeLocal (DMXLocalInputInfoRec *local)
void | dmxInputFree (DMXInputInfo *dmxInput)
void | dmxInputLogDevices (void)
int | dmxInputDetach (DMXInputInfo *dmxInput)
void | dmxInputDetachAll (DMXScreenInfo *dmxScreen)
int | dmxInputDetachId (int id)
DMXInputInfo * | dmxInputLocateId (int id)
static int | dmxInputAttachNew (DMXInputInfo *dmxInput, int *id)
static int | dmxInputAttachOld (DMXInputInfo *dmxInput, int *id)
int | dmxInputAttachConsole (const char *name, int isCore, int *id)
int | dmxInputAttachBackend (int physicalScreen, int isCore, int *id)

## Variables

DMXLocalInputInfoPtr | dmxLocalCorePointer
DMXLocalInputInfoPtr | dmxLocalCoreKeyboard
static DMXLocalInputInfoRec | DMXDummyMou
static DMXLocalInputInfoRec | DMXDummyKbd
static DMXLocalInputInfoRec | DMXBackendMou
static DMXLocalInputInfoRec | DMXBackendKbd
static DMXLocalInputInfoRec | DMXConsoleMou
static DMXLocalInputInfoRec | DMXConsoleKbd
static DMXLocalInputInfoRec | DMXLocalDevices []

## Detailed Description

This file provides generic input support. Functions here set up input and lead to the calling of low-level device drivers for input.

## Define Documentation

#define DMX_WINDOW_DEBUG 0

#define LEN 32

Referenced by dmxMakeUniqueDeviceName().

## Function Documentation

static void _dmxChangePointerControl | ( | DMXLocalInputInfoPtr | dmxLocal,
|  | PtrCtrl * | ctrl
| ) |  | `[static]`

References _DMXLocalInputInfo::mCtrl, _DMXLocalInputInfo::mctrl, and _DMXLocalInputInfo::pDevice.

Referenced by dmxChangePointerControl().

static void _dmxKeyboardBellProc | ( | DMXLocalInputInfoPtr | dmxLocal,
|  | int | percent
| ) |  | `[static]`

References _DMXLocalInputInfo::kBell, _DMXLocalInputInfo::kctrl, and _DMXLocalInputInfo::pDevice.

Referenced by dmxKeyboardBellProc().

static void _dmxKeyboardKbdCtrlProc | ( | DMXLocalInputInfoPtr | dmxLocal,
|  | KeybdCtrl * | ctrl
| ) |  | `[static]`

References _DMXLocalInputInfo::kCtrl, _DMXLocalInputInfo::kctrl, and _DMXLocalInputInfo::pDevice.

Referenced by dmxKeyboardKbdCtrlProc().

void DDXRingBell | ( | int | volume,
|  | int | pitch,
|  | int | duration
| ) |  |

static DeviceIntPtr dmxAddDevice | ( | DMXLocalInputInfoPtr | dmxLocal | ) | `[static]`

References _DMXLocalInputInfo::create_private, DMX_LOCAL_KEYBOARD, DMX_LOCAL_MOUSE, dmxDeviceOnOff(), dmxError, dmxFatal, dmxInputs, dmxLog(), dmxLogInput(), dmxMakeUniqueDeviceName(), _DMXLocalInputInfo::inputIdx, _DMXLocalInputInfo::isCore, _DMXLocalInputInfo::name, _DMXLocalInputInfo::pDevice, _DMXLocalInputInfo::private, _DMXLocalInputInfo::sendsCore, and _DMXLocalInputInfo::type.

Referenced by dmxInputInit().

static void dmxBell | ( | int | volume,
|  | DeviceIntPtr | pDev,
|  | pointer | arg,
|  | int | something
| ) |  | `[static]`

Referenced by dmxDeviceOnOff().

static void dmxBlockHandler | ( | pointer | blockData,
|  | OSTimePtr | pTimeout,
|  | pointer | pReadMask
| ) |  | `[static]`

References dmxCollectAll(), and dmxInputs.

Referenced by dmxInputInit().

void dmxChangePointerControl | ( | DeviceIntPtr | pDevice,
|  | PtrCtrl * | ctrl
| ) |  |

Change the pointer control information for the pDevice. If the device sends core events, then also change the control information for all of the pointer devices that send core events.

References _dmxChangePointerControl(), _DMXInputInfo::detached, _DMXInputInfo::devs, dmxInputs, dmxNumInputs, GETDMXLOCALFROMPDEVICE, _DMXInputInfo::numDevs, and _DMXLocalInputInfo::sendsCore.

Referenced by dmxDeviceOnOff().

static void dmxCollectAll | ( | DMXInputInfo * | dmxInput | ) | `[static]`

References _DMXLocalInputInfo::binding, _DMXLocalInputInfo::collect_events, _DMXInputInfo::detached, _DMXInputInfo::devs, DMX_BLOCK, dmxCheckSpecialKeys(), dmxEnqueue(), dmxMotion(), _DMXInputInfo::numDevs, and _DMXLocalInputInfo::pDevice.

Referenced by dmxBlockHandler(), and dmxWakeupHandler().

static int dmxDeviceOnOff | ( | DeviceIntPtr | pDevice,
|  | int | what
| ) |  | `[static]`

References _DMXLocalInitInfo::belFeedbackClass, _DMXLocalInitInfo::buttonClass, dmxBell(), dmxChangePointerControl(), dmxConfigGetXkbLayout(), dmxConfigGetXkbModel(), dmxConfigGetXkbOptions(), dmxConfigGetXkbRules(), dmxConfigGetXkbVariant(), dmxKbdCtrl(), dmxKeyboardOn(), dmxLog(), dmxPointerGetMotionBufferSize(), dmxSigioRegister(), dmxSigioUnregister(), dmxWarning, _DMXLocalInitInfo::focusClass, _DMXLocalInitInfo::freemap, GETDMXINPUTFROMPDEVICE, _DMXLocalInitInfo::intFeedbackClass, _DMXLocalInitInfo::keyboard, _DMXLocalInitInfo::keyClass, _DMXLocalInitInfo::keySyms, _DMXLocalInitInfo::ledFeedbackClass, _DMXLocalInitInfo::map, _DMXLocalInitInfo::maxres, _DMXLocalInitInfo::maxval, _DMXLocalInitInfo::minres, _DMXLocalInitInfo::minval, _DMXLocalInitInfo::numAbsAxes, _DMXLocalInitInfo::numButtons, _DMXLocalInitInfo::numRelAxes, _DMXLocalInitInfo::proximityClass, _DMXLocalInitInfo::ptrFeedbackClass, _DMXLocalInitInfo::res, _DMXLocalInitInfo::strFeedbackClass, _DMXLocalInitInfo::valuatorClass, and _DMXLocalInitInfo::xkb.

Referenced by dmxAddDevice().

int dmxInputAttachBackend | ( | int | physicalScreen,
|  | int | isCore,
|  | int * | id
| ) |  |

References _DMXScreenInfo::beDisplay, _DMXInputInfo::detached, dmxConfigAddInput(), dmxInputAttachNew(), dmxInputAttachOld(), dmxInputs, dmxLogInput(), dmxNumInputs, dmxNumScreens, dmxScreens, _DMXScreenInfo::name, and _DMXInputInfo::scrnIdx.

Referenced by dmxAddInput().

int dmxInputAttachConsole | ( | const char * | name,
|  | int | isCore,
|  | int * | id
| ) |  |

References _DMXInputInfo::detached, dmxConfigAddInput(), dmxInputAttachNew(), dmxInputAttachOld(), dmxInputs, dmxLogInput(), dmxNumInputs, _DMXInputInfo::freename, _DMXInputInfo::name, and _DMXInputInfo::scrnIdx.

Referenced by dmxAddInput().

static int dmxInputAttachNew | ( | DMXInputInfo * | dmxInput,
|  | int * | id
| ) |  | `[static]`

References _DMXInputInfo::devs, dmxInputInit(), dmxInputLogDevices(), and _DMXLocalInputInfo::pDevice.

Referenced by dmxInputAttachBackend(), and dmxInputAttachConsole().

static int dmxInputAttachOld | ( | DMXInputInfo * | dmxInput,
|  | int * | id
| ) |  | `[static]`

References _DMXInputInfo::detached, _DMXInputInfo::devs, dmxInputLogDevices(), dmxLogInput(), _DMXLocalInputInfo::isCore, _DMXInputInfo::numDevs, _DMXLocalInputInfo::pDevice, and _DMXLocalInputInfo::sendsCore.

Referenced by dmxInputAttachBackend(), and dmxInputAttachConsole().

DMXLocalInputInfoPtr dmxInputCopyLocal | ( | DMXInputInfo * | dmxInput,
|  | DMXLocalInputInfoPtr | s
| ) |  |

Copy the local input information from s into a new devs slot in dmxInput.

References _DMXInputInfo::core, _DMXLocalInputInfo::deviceId, _DMXInputInfo::devs, dmxFatal, dmxLog(), _DMXInputInfo::inputIdx, _DMXLocalInputInfo::inputIdx, _DMXInputInfo::numDevs, _DMXLocalInputInfo::savedSendsCore, and _DMXLocalInputInfo::sendsCore.

Referenced by dmxInputInit(), and dmxPopulateLocal().

int dmxInputDetach | ( | DMXInputInfo * | dmxInput | ) |

Detach an input

References _DMXInputInfo::detached, _DMXInputInfo::devs, dmxInputLogDevices(), dmxLogInput(), _DMXLocalInputInfo::isCore, _DMXInputInfo::numDevs, _DMXLocalInputInfo::pDevice, and _DMXLocalInputInfo::sendsCore.

void dmxInputDetachAll | ( | DMXScreenInfo * | dmxScreen | ) |

Search for input associated with dmxScreen, and detach.

References dmxInputDetach(), dmxInputs, dmxNumInputs, _DMXScreenInfo::index, and _DMXInputInfo::scrnIdx.

Referenced by dmxDetachScreen().

int dmxInputDetachId | ( | int | id | ) |

Search for input associated with deviceId, and detach.

References dmxInputDetach(), and dmxInputLocateId().

Referenced by dmxRemoveInput().

int dmxInputExtensionErrorHandler | ( | Display * | dsp,
|  | _Xconst char * | name,
|  | _Xconst char * | reason
| ) |  |

Referenced by dmxCommonOthGetInfo(), and dmxInputScanForExtensions().

void dmxInputFree | ( | DMXInputInfo * | dmxInput | ) |

Free all of the memory associated with dmxInput

References _DMXInputInfo::devs, dmxInputFreeLocal(), _DMXInputInfo::freename, _DMXInputInfo::geometry, _DMXInputInfo::keycodes, _DMXInputInfo::name, _DMXInputInfo::numDevs, and _DMXInputInfo::symbols.

Referenced by InitOutput().

static void dmxInputFreeLocal | ( | DMXLocalInputInfoRec * | local | ) | `[static]`

References _DMXLocalInputInfo::destroy_private, _DMXLocalInputInfo::deviceName, DMX_LOCAL_KEYBOARD, DMX_LOCAL_MOUSE, _DMXLocalInputInfo::history, _DMXLocalInputInfo::isCore, _DMXLocalInputInfo::private, _DMXLocalInputInfo::type, and _DMXLocalInputInfo::valuators.

Referenced by dmxInputFree().

void dmxInputInit | ( | DMXInputInfo * | dmxInput | ) |

Initialize all of the devices described in dmxInput.

References _DMXInputInfo::console, _DMXInputInfo::core, _DMXInputInfo::detached, _DMXInputInfo::devs, DMX_LOCAL_KEYBOARD, DMX_LOCAL_MOUSE, dmxAddDevice(), dmxArgC(), dmxArgFree(), dmxArgParse(), dmxArgV(), dmxBlockHandler(), dmxFatal, dmxInputCopyLocal(), dmxInputScanForExtensions(), dmxLog(), dmxLogInput(), dmxNumScreens, dmxPopulateLocal(), dmxProcessInputEvents(), dmxPropertySameDisplay(), dmxScreens, dmxUpdateWindowInformation(), dmxWakeupHandler(), dmxWarning, _DMXInputInfo::geometry, _DMXInputInfo::inputIdx, _DMXLocalInputInfo::isCore, _DMXInputInfo::keycodes, _DMXInputInfo::name, _DMXInputInfo::numDevs, _DMXLocalInputInfo::pDevice, _DMXInputInfo::processInputEvents, _DMXInputInfo::scrnIdx, _DMXInputInfo::symbols, _DMXLocalInputInfo::type, _DMXInputInfo::updateWindowInfo, and _DMXInputInfo::windows.

Referenced by dmxInputAttachNew(), and InitInput().

void dmxInputLateReInit | ( | DMXInputInfo * | dmxInput | ) |

Re-initialize all the devices described in dmxInput. Called from dmxAdjustCursorBoundaries after the cursor is redisplayed.

References _DMXInputInfo::devs, _DMXLocalInputInfo::latereinit, _DMXInputInfo::numDevs, and _DMXLocalInputInfo::pDevice.

Referenced by dmxAdjustCursorBoundaries().

DMXInputInfo* dmxInputLocateId | ( | int | id | ) |

References _DMXInputInfo::devs, dmxInputs, dmxNumInputs, _DMXInputInfo::numDevs, and _DMXLocalInputInfo::pDevice.

Referenced by dmxInputDetachId().

void dmxInputLogDevices | ( | void |  | ) |

Log information about all of the known devices using dmxLog().

References _DMXInputInfo::detached, _DMXLocalInputInfo::deviceId, _DMXLocalInputInfo::deviceName, _DMXInputInfo::devs, dmxGetInputCount(), dmxInfo, dmxInputs, dmxLog(), dmxLogCont(), dmxNumInputs, _DMXInputInfo::inputIdx, _DMXLocalInputInfo::isCore, _DMXInputInfo::name, _DMXInputInfo::numDevs, _DMXLocalInputInfo::pDevice, and _DMXLocalInputInfo::sendsCore.

Referenced by dmxConnectionBlockCallback(), dmxInputAttachNew(), dmxInputAttachOld(), and dmxInputDetach().

void dmxInputReInit | ( | DMXInputInfo * | dmxInput | ) |

Re-initialize all the devices described in dmxInput. Called from dmxAdjustCursorBoundaries before the cursor is redisplayed.

References _DMXInputInfo::devs, _DMXInputInfo::numDevs, _DMXLocalInputInfo::pDevice, and _DMXLocalInputInfo::reinit.

Referenced by dmxAdjustCursorBoundaries().

static void dmxInputScanForExtensions | ( | DMXInputInfo * | dmxInput,
|  | int | doXI
| ) |  | `[static]`

References _DMXLocalInputInfo::deviceId, _DMXLocalInputInfo::deviceName, _DMXInputInfo::devs, display, DMX_LOCAL_KEYBOARD, DMX_LOCAL_MOUSE, dmxInputExtensionErrorHandler(), dmxLogInput(), _DMXInputInfo::name, _DMXInputInfo::numDevs, and _DMXLocalInputInfo::type.

Referenced by dmxInputInit().

static void dmxKbdCtrl | ( | DeviceIntPtr | pDevice,
|  | KeybdCtrl * | ctrl
| ) |  | `[static]`

Referenced by dmxDeviceOnOff().

void dmxKeyboardBellProc | ( | int | percent,
|  | DeviceIntPtr | pDevice,
|  | pointer | ctrl,
|  | int | unknown
| ) |  |

Sound the bell on the device. If the device send core events, then sound the bell on all of the devices that send core events.

References _dmxKeyboardBellProc(), _DMXInputInfo::detached, _DMXInputInfo::devs, dmxInputs, dmxNumInputs, GETDMXLOCALFROMPDEVICE, _DMXInputInfo::numDevs, and _DMXLocalInputInfo::sendsCore.

Referenced by dmxKeyboardOn().

static void dmxKeyboardFreeNames | ( | XkbComponentNamesPtr | names | ) | `[static]`

Referenced by dmxKeyboardOn().

void dmxKeyboardKbdCtrlProc | ( | DeviceIntPtr | pDevice,
|  | KeybdCtrl * | ctrl
| ) |  |

Change the keyboard control information for the pDevice. If the device sends core events, then also change the control information for all of the keyboard devices that send core events.

References _dmxKeyboardKbdCtrlProc(), _DMXInputInfo::detached, _DMXInputInfo::devs, dmxInputs, dmxNumInputs, GETDMXLOCALFROMPDEVICE, _DMXInputInfo::numDevs, and _DMXLocalInputInfo::sendsCore.

Referenced by dmxKeyboardOn().

static int dmxKeyboardOn | ( | DeviceIntPtr | pDevice,
|  | DMXLocalInitInfo * | info
| ) |  | `[static]`

References dmxConfigGetXkbLayout(), dmxConfigGetXkbModel(), dmxConfigGetXkbOptions(), dmxConfigGetXkbRules(), dmxConfigGetXkbVariant(), dmxKeyboardBellProc(), dmxKeyboardFreeNames(), dmxKeyboardKbdCtrlProc(), dmxLogInput(), dmxLogInputCont(), _DMXLocalInitInfo::force, _DMXLocalInitInfo::freenames, GETDMXINPUTFROMPDEVICE, and _DMXLocalInitInfo::names.

Referenced by dmxDeviceOnOff().

static DMXLocalInputInfoPtr dmxLookupLocal | ( | const char * | name | ) | `[static]`

References _DMXLocalInputInfo::name.

Referenced by dmxPopulateLocal().

static char* dmxMakeUniqueDeviceName | ( | DMXLocalInputInfoPtr | dmxLocal | ) | `[static]`

References DMX_LOCAL_KEYBOARD, DMX_LOCAL_MOUSE, dmxGeneration, LEN, and _DMXLocalInputInfo::type.

Referenced by dmxAddDevice().

static void dmxPopulateLocal | ( | DMXInputInfo * | dmxInput,
|  | dmxArg | a
| ) |  | `[static]`

References DMX_LOCAL_KEYBOARD, DMX_LOCAL_MOUSE, dmxArgC(), dmxArgV(), dmxFatal, dmxInfo, dmxInputCopyLocal(), dmxLog(), dmxLookupLocal(), dmxWarning, _DMXLocalInputInfo::name, and _DMXLocalInputInfo::type.

Referenced by dmxInputInit().

static void dmxProcessInputEvents | ( | DMXInputInfo * | dmxInput | ) | `[static]`

References _DMXLocalInputInfo::binding, _DMXInputInfo::detached, _DMXInputInfo::devs, _DMXInputInfo::numDevs, _DMXLocalInputInfo::pDevice, _DMXLocalInputInfo::private, and _DMXLocalInputInfo::process_input.

Referenced by dmxInputInit().

static void dmxSwitchReturn | ( | pointer | p | ) | `[static]`

References _DMXInputInfo::devs, dmxFatal, dmxInfo, dmxLog(), dmxSigioEnableInput(), _DMXInputInfo::numDevs, _DMXLocalInputInfo::private, _DMXLocalInputInfo::vt_post_switch, and _DMXInputInfo::vt_switched.

Referenced by dmxWakeupHandler().

static void dmxUpdateWindowInformation | ( | DMXInputInfo * | dmxInput,
|  | DMXUpdateType | type,
|  | WindowPtr | pWindow
| ) |  | `[static]`

References _DMXLocalInputInfo::binding, _DMXInputInfo::detached, _DMXInputInfo::devs, DMX_UPDATE_COPY, DMX_UPDATE_REALIZE, DMX_UPDATE_REPARENT, DMX_UPDATE_RESIZE, DMX_UPDATE_RESTACK, DMX_UPDATE_UNREALIZE, dmxDebug, dmxLog(), _DMXInputInfo::numDevs, _DMXLocalInputInfo::private, and _DMXLocalInputInfo::update_info.

Referenced by dmxInputInit().

static void dmxWakeupHandler | ( | pointer | blockData,
|  | int | result,
|  | pointer | pReadMask
| ) |  | `[static]`

References _DMXInputInfo::devs, dmxCollectAll(), dmxInfo, dmxInputs, dmxLog(), dmxSigioDisableInput(), dmxSwitchReturn(), _DMXInputInfo::numDevs, _DMXLocalInputInfo::private, _DMXLocalInputInfo::vt_pre_switch, _DMXLocalInputInfo::vt_switch, _DMXInputInfo::vt_switch_pending, and _DMXInputInfo::vt_switched.

Referenced by dmxInputInit().

## Variable Documentation

DMXLocalInputInfoRec DMXBackendKbd `[static]`

Initial value:

     {
        "backend-kbd", DMX_LOCAL_KEYBOARD, DMX_LOCAL_TYPE_BACKEND,
        1,
        dmxCommonCopyPrivate, NULL,
        dmxBackendInit, NULL, NULL, dmxBackendKbdGetInfo,
        dmxCommonKbdOn, dmxCommonKbdOff, NULL,
        NULL, NULL, NULL,
        NULL, NULL, NULL, NULL,
        NULL, dmxCommonKbdCtrl, dmxCommonKbdBell
    }

DMXLocalInputInfoRec DMXBackendMou `[static]`

Initial value:

     {
        "backend-mou", DMX_LOCAL_MOUSE, DMX_LOCAL_TYPE_BACKEND, 2,
        dmxBackendCreatePrivate, dmxBackendDestroyPrivate,
        dmxBackendInit, NULL, dmxBackendLateReInit, dmxBackendMouGetInfo,
        dmxCommonMouOn, dmxCommonMouOff, dmxBackendUpdatePosition,
        NULL, NULL, NULL,
        dmxBackendCollectEvents, dmxBackendProcessInput, dmxBackendFunctions, NULL,
        dmxCommonMouCtrl
    }

DMXLocalInputInfoRec DMXConsoleKbd `[static]`

Initial value:

     {
        "console-kbd", DMX_LOCAL_KEYBOARD, DMX_LOCAL_TYPE_CONSOLE,
        1,
        dmxCommonCopyPrivate, NULL,
        dmxConsoleInit, dmxConsoleReInit, NULL, dmxConsoleKbdGetInfo,
        dmxCommonKbdOn, dmxCommonKbdOff, NULL,
        NULL, NULL, NULL,
        NULL, NULL, NULL, NULL,
        NULL, dmxCommonKbdCtrl, dmxCommonKbdBell
    }

DMXLocalInputInfoRec DMXConsoleMou `[static]`

Initial value:

     {
        "console-mou", DMX_LOCAL_MOUSE, DMX_LOCAL_TYPE_CONSOLE, 2,
        dmxConsoleCreatePrivate, dmxConsoleDestroyPrivate,
        dmxConsoleInit, dmxConsoleReInit, NULL, dmxConsoleMouGetInfo,
        dmxCommonMouOn, dmxCommonMouOff, dmxConsoleUpdatePosition,
        NULL, NULL, NULL,
        dmxConsoleCollectEvents, NULL, dmxConsoleFunctions, dmxConsoleUpdateInfo,
        dmxCommonMouCtrl
    }

DMXLocalInputInfoRec DMXDummyKbd `[static]`

Initial value:

     {
        "dummy-kbd", DMX_LOCAL_KEYBOARD, DMX_LOCAL_TYPE_LOCAL, 1,
        NULL, NULL, NULL, NULL, NULL, dmxDummyKbdGetInfo
    }

DMXLocalInputInfoRec DMXDummyMou `[static]`

Initial value:

     {
        "dummy-mou", DMX_LOCAL_MOUSE, DMX_LOCAL_TYPE_LOCAL, 1,
        NULL, NULL, NULL, NULL, NULL, dmxDummyMouGetInfo
    }

DMXLocalInputInfoPtr dmxLocalCoreKeyboard

Referenced by dmxCheckFunctionKeys(), dmxCheckSpecialKeys(), dmxEnqueue(), dmxFixup(), and dmxKeySymToKeyCode().

DMXLocalInputInfoPtr dmxLocalCorePointer

DMXLocalInputInfoRec DMXLocalDevices[]`[static]`