# dmxinputinit.h File Reference

`#include "dmx.h"`
`#include "dmxinput.h"`
`#include "dmxlog.h"`

Go to the source code of this file.

## Data Structures

struct | _DMXLocalInitInfo
struct | _DMXEventMap
struct | _DMXLocalInputInfo

## Defines

#define | DMX_LOCAL_DEFAULT_KEYBOARD "kbd"
#define | DMX_LOCAL_DEFAULT_POINTER "ps2"
#define | DMX_MAX_BUTTONS 256
#define | DMX_MOTION_SIZE 256
#define | DMX_MAX_VALUATORS 32
#define | DMX_MAX_AXES 32
#define | DMX_MAX_XINPUT_EVENT_TYPES 100
#define | DMX_MAP_ENTRIES 16
#define | DMX_MAP_MASK (DMX_MAP_ENTRIES - 1)

## Typedefs

typedef struct _DMXLocalInitInfo | DMXLocalInitInfo
typedef struct _DMXLocalInitInfo * | DMXLocalInitInfoPtr
typedef pointer(* | dmxCreatePrivateProcPtr )(DeviceIntPtr)
typedef void(* | dmxDestroyPrivateProcPtr )(pointer)
typedef void(* | dmxInitProcPtr )(DevicePtr)
typedef void(* | dmxReInitProcPtr )(DevicePtr)
typedef void(* | dmxLateReInitProcPtr )(DevicePtr)
typedef void(* | dmxGetInfoProcPtr )(DevicePtr, DMXLocalInitInfoPtr)
typedef int(* | dmxOnProcPtr )(DevicePtr)
typedef void(* | dmxOffProcPtr )(DevicePtr)
typedef void(* | dmxUpdatePositionProcPtr )(pointer, int x, int y)
typedef void(* | dmxVTPreSwitchProcPtr )(pointer)
typedef void(* | dmxVTPostSwitchProcPtr )(pointer)
typedef void(* | dmxVTSwitchReturnProcPtr )(pointer)
typedef int(* | dmxVTSwitchProcPtr )(pointer, int vt, dmxVTSwitchReturnProcPtr, pointer)
typedef void(* | dmxMotionProcPtr )(DevicePtr, int *valuators, int firstAxis, int axesCount, DMXMotionType type, DMXBlockType block)
typedef void(* | dmxEnqueueProcPtr )(DevicePtr, int type, int detail, KeySym keySym, XEvent *e, DMXBlockType block)
typedef int(* | dmxCheckSpecialProcPtr )(DevicePtr, KeySym keySym)
typedef void(* | dmxCollectEventsProcPtr )(DevicePtr, dmxMotionProcPtr, dmxEnqueueProcPtr, dmxCheckSpecialProcPtr, DMXBlockType)
typedef void(* | dmxProcessInputProcPtr )(pointer)
typedef void(* | dmxUpdateInfoProcPtr )(pointer, DMXUpdateType, WindowPtr)
typedef int(* | dmxFunctionsProcPtr )(pointer, DMXFunctionType)
typedef void(* | dmxKBCtrlProcPtr )(DevicePtr, KeybdCtrl *ctrl)
typedef void(* | dmxMCtrlProcPtr )(DevicePtr, PtrCtrl *ctrl)
typedef void(* | dmxKBBellProcPtr )(DevicePtr, int percent, int volume, int pitch, int duration)
typedef struct _DMXEventMap | DMXEventMap
typedef struct _DMXLocalInputInfo | DMXLocalInputInfoRec

## Enumerations

enum | DMXFunctionType { DMX_FUNCTION_GRAB, DMX_FUNCTION_TERMINATE, DMX_FUNCTION_FINE }
enum | DMXLocalInputType { DMX_LOCAL_HIGHLEVEL, DMX_LOCAL_KEYBOARD, DMX_LOCAL_MOUSE, DMX_LOCAL_OTHER }
enum | DMXLocalInputExtType { DMX_LOCAL_TYPE_LOCAL, DMX_LOCAL_TYPE_CONSOLE, DMX_LOCAL_TYPE_BACKEND, DMX_LOCAL_TYPE_COMMON }
enum | DMXMotionType { DMX_RELATIVE, DMX_ABSOLUTE, DMX_ABSOLUTE_CONFINED }

## Functions

void | dmxLocalInitInput (DMXInputInfo *dmxInput)
DMXLocalInputInfoPtr | dmxInputCopyLocal (DMXInputInfo *dmxInput, DMXLocalInputInfoPtr s)
void | dmxChangePointerControl (DeviceIntPtr pDevice, PtrCtrl *ctrl)
void | dmxKeyboardKbdCtrlProc (DeviceIntPtr pDevice, KeybdCtrl *ctrl)
void | dmxKeyboardBellProc (int percent, DeviceIntPtr pDevice, pointer ctrl, int unknown)
int | dmxInputExtensionErrorHandler (Display *dsp, _Xconst char *name, _Xconst char *reason)
int | dmxInputDetach (DMXInputInfo *dmxInput)
void | dmxInputDetachAll (DMXScreenInfo *dmxScreen)
int | dmxInputDetachId (int id)
DMXInputInfo * | dmxInputLocateId (int id)
int | dmxInputAttachConsole (const char *name, int isCore, int *id)
int | dmxInputAttachBackend (int physicalScreen, int isCore, int *id)

## Variables

DMXLocalInputInfoPtr | dmxLocalCorePointer
DMXLocalInputInfoPtr | dmxLocalCoreKeyboard

## Detailed Description

Interface for low-level input support.

See also:
  dmxinputinit.c

## Define Documentation

#define DMX_LOCAL_DEFAULT_KEYBOARD "kbd"

#define DMX_LOCAL_DEFAULT_POINTER "ps2"

#define DMX_MAP_ENTRIES 16

Referenced by dmxMapClear(), dmxMapInsert(), and dmxMapLookup().

#define DMX_MAP_MASK (DMX_MAP_ENTRIES - 1)

Referenced by dmxMapInsert(), and dmxMapLookup().

#define DMX_MAX_AXES 32

#define DMX_MAX_BUTTONS 256

Referenced by dmxCommonMouGetMap().

#define DMX_MAX_VALUATORS 32

#define DMX_MAX_XINPUT_EVENT_TYPES 100

Referenced by dmxCommonOthOn().

#define DMX_MOTION_SIZE 256

Referenced by dmxPointerGetMotionBufferSize(), dmxPointerGetMotionEvents(), and dmxPointerPutMotionEvent().

## Typedef Documentation

typedef int(* dmxCheckSpecialProcPtr)(DevicePtr, KeySym keySym)

typedef void(* dmxCollectEventsProcPtr)(DevicePtr, dmxMotionProcPtr, dmxEnqueueProcPtr, dmxCheckSpecialProcPtr, DMXBlockType)

typedef pointer(* dmxCreatePrivateProcPtr)(DeviceIntPtr)

typedef void(* dmxDestroyPrivateProcPtr)(pointer)

typedef void(* dmxEnqueueProcPtr)(DevicePtr, int type, int detail, KeySym keySym, XEvent *e, DMXBlockType block)

typedef struct _DMXEventMap DMXEventMap

Stores a mapping between the device id on the remote X server and the id on the DMX server

typedef int(* dmxFunctionsProcPtr)(pointer, DMXFunctionType)

typedef void(* dmxGetInfoProcPtr)(DevicePtr, DMXLocalInitInfoPtr)

typedef void(* dmxInitProcPtr)(DevicePtr)

typedef void(* dmxKBBellProcPtr)(DevicePtr, int percent, int volume, int pitch, int duration)

typedef void(* dmxKBCtrlProcPtr)(DevicePtr, KeybdCtrl *ctrl)

typedef void(* dmxLateReInitProcPtr)(DevicePtr)

typedef struct _DMXLocalInitInfo DMXLocalInitInfo

Stores information from low-level device that is used to initialize the device at the dix level.

typedef struct _DMXLocalInitInfo * DMXLocalInitInfoPtr

typedef struct _DMXLocalInputInfo DMXLocalInputInfoRec

This is the device-independent structure used by the low-level input routines. The contents are not exposed to top-level .c files (except dmxextensions.c).

See also:
  dmxinput.h
  dmxextensions.c

typedef void(* dmxMCtrlProcPtr)(DevicePtr, PtrCtrl *ctrl)

typedef void(* dmxMotionProcPtr)(DevicePtr, int *valuators, int firstAxis, int axesCount, DMXMotionType type, DMXBlockType block)

typedef void(* dmxOffProcPtr)(DevicePtr)

typedef int(* dmxOnProcPtr)(DevicePtr)

typedef void(* dmxProcessInputProcPtr)(pointer)

typedef void(* dmxReInitProcPtr)(DevicePtr)

typedef void(* dmxUpdateInfoProcPtr)(pointer, DMXUpdateType, WindowPtr)

typedef void(* dmxUpdatePositionProcPtr)(pointer, int x, int y)

typedef void(* dmxVTPostSwitchProcPtr)(pointer)

typedef void(* dmxVTPreSwitchProcPtr)(pointer)

typedef int(* dmxVTSwitchProcPtr)(pointer, int vt, dmxVTSwitchReturnProcPtr, pointer)

typedef void(* dmxVTSwitchReturnProcPtr)(pointer)

## Enumeration Type Documentation

enum DMXFunctionType

Enumerator:

  DMX_FUNCTION_GRAB |
  DMX_FUNCTION_TERMINATE |
  DMX_FUNCTION_FINE |

enum DMXLocalInputExtType

Enumerator:

  DMX_LOCAL_TYPE_LOCAL |
  DMX_LOCAL_TYPE_CONSOLE |
  DMX_LOCAL_TYPE_BACKEND |
  DMX_LOCAL_TYPE_COMMON |

enum DMXLocalInputType

Enumerator:

  DMX_LOCAL_HIGHLEVEL |
  DMX_LOCAL_KEYBOARD |
  DMX_LOCAL_MOUSE |
  DMX_LOCAL_OTHER |

enum DMXMotionType

Enumerator:

  DMX_RELATIVE |
  DMX_ABSOLUTE |
  DMX_ABSOLUTE_CONFINED |

## Function Documentation

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().

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().

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().

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

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

Referenced by dmxInputDetachId().

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().

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().

void dmxLocalInitInput | ( | DMXInputInfo * | dmxInput | ) |

## Variable Documentation

DMXLocalInputInfoPtr dmxLocalCoreKeyboard

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

DMXLocalInputInfoPtr dmxLocalCorePointer