# dmxinput.h File Reference

Go to the source code of this file.

## Data Structures

struct | _DMXInputInfo

## Defines

#define | DMX_MAX_SIGIO_FDS 4

## Typedefs

typedef void(* | ProcessInputEventsProc )(struct _DMXInputInfo *)
typedef void(* | UpdateWindowInfoProc )(struct _DMXInputInfo *, DMXUpdateType, WindowPtr)
typedef struct _DMXLocalInputInfo * | DMXLocalInputInfoPtr

## Enumerations

enum | DMXUpdateType { DMX_UPDATE_REALIZE, DMX_UPDATE_UNREALIZE, DMX_UPDATE_RESTACK, DMX_UPDATE_COPY, DMX_UPDATE_RESIZE, DMX_UPDATE_REPARENT }
enum | dmxSigioState { DMX_NOSIGIO = 0, DMX_USESIGIO, DMX_ACTIVESIGIO }
enum | DMXBlockType { DMX_NO_BLOCK = 0, DMX_BLOCK = 1 }

## Functions

void | dmxInputInit (DMXInputInfo *dmxInput)
void | dmxInputReInit (DMXInputInfo *dmxInput)
void | dmxInputLateReInit (DMXInputInfo *dmxInput)
void | dmxInputFree (DMXInputInfo *dmxInput)
void | dmxInputLogDevices (void)
void | dmxUpdateWindowInfo (DMXUpdateType type, WindowPtr pWindow)
void | dmxeqSwitchScreen (DeviceIntPtr pDev, ScreenPtr pScreen, Bool fromDIX)
void | dmxGetGlobalPosition (int *x, int *y)
DMXScreenInfo * | dmxFindFirstScreen (int x, int y)
void | dmxCoreMotion (DevicePtr pDev, int x, int y, int delta, DMXBlockType block)
DMXInputInfo * | dmxConfigAddInput (const char *name, int core)

## Variables

int | dmxNumInputs
DMXInputInfo * | dmxInputs

## Detailed Description

This file provides access to:

- global variables available to all hw/dmx routines, and
- enumerations and typedefs needed by input routines in hw/dmx (and hw/dmx/input).

The goal is that no files in hw/dmx should include header files from hw/dmx/input -- the interface defined here should be the only interface exported to the hw/dmx layer.

See also:
  input/dmxinputinit.c.

## Define Documentation

#define DMX_MAX_SIGIO_FDS 4

Maximum number of file descriptors for SIGIO handling

Referenced by dmxSigioRegister().

## Typedef Documentation

typedef struct _DMXLocalInputInfo* DMXLocalInputInfoPtr

An opaque structure that is only exposed in the dmx/input layer.

typedef void(* ProcessInputEventsProc)(struct _DMXInputInfo *)

typedef void(* UpdateWindowInfoProc)(struct _DMXInputInfo *, DMXUpdateType, WindowPtr)

## Enumeration Type Documentation

enum DMXBlockType

Enumerator:

  DMX_NO_BLOCK |
  DMX_BLOCK |

enum dmxSigioState

State of the SIGIO engine

Enumerator:

  DMX_NOSIGIO | Device does not use SIGIO at all.
  DMX_USESIGIO | Device can use SIGIO, but is not (e.g., because the VT is switch away).
  DMX_ACTIVESIGIO | Device is currently using SIGIO.

enum DMXUpdateType

Reason why window layout was updated.

Enumerator:

  DMX_UPDATE_REALIZE | Window realized
  DMX_UPDATE_UNREALIZE | Window unrealized
  DMX_UPDATE_RESTACK | Stacking order changed
  DMX_UPDATE_COPY | Window copied
  DMX_UPDATE_RESIZE | Window resized
  DMX_UPDATE_REPARENT | Window reparented

## Function Documentation

DMXInputInfo* dmxConfigAddInput | ( | const char * | name,
|  | int | core
| ) |  |

References _DMXInputInfo::core, dmxFatal, dmxInputs, dmxLog(), dmxNumInputs, _DMXInputInfo::inputIdx, _DMXInputInfo::name, and _DMXInputInfo::scrnIdx.

Referenced by dmxConfigConfigInputs(), dmxInputAttachBackend(), and dmxInputAttachConsole().

void dmxCoreMotion | ( | DevicePtr | pDev,
|  | int | x,
|  | int | y,
|  | int | delta,
|  | DMXBlockType | block
| ) |  |

References _DMXLocalInputInfo::binding, _DMXInputInfo::detached, _DMXInputInfo::devs, DMXDBG4, DMXDBG5, DMXDBG6, dmxFindFirstScreen(), dmxGlobalHeight, dmxGlobalInvalid, dmxGlobalWidth, dmxGlobalX, dmxGlobalY, dmxInputs, dmxNumInputs, dmxScreens, dmxSigioBlock(), dmxSigioUnblock(), enqueueMotion(), _DMXScreenInfo::index, _DMXInputInfo::numDevs, _DMXLocalInputInfo::private, ProcessInputEvents(), _DMXScreenInfo::rootXOrigin, _DMXScreenInfo::rootYOrigin, _DMXLocalInputInfo::sendsCore, and _DMXLocalInputInfo::update_position.

Referenced by dmxMotion(), and dmxSetCursor().

void dmxeqSwitchScreen | ( | DeviceIntPtr | pDev,
|  | ScreenPtr | pScreen,
|  | Bool | fromDIX
| ) |  |

DMXScreenInfo* dmxFindFirstScreen | ( | int | x,
|  | int | y
| ) |  |

References dmxNumScreens, dmxOnScreen(), and dmxScreens.

Referenced by dmxCheckCursor(), and dmxCoreMotion().

void dmxGetGlobalPosition | ( | int * | x,
|  | int * | y
| ) |  |

Return DMX's notion of the pointer position in the global coordinate space.

References dmxGlobalX, and dmxGlobalY.

Referenced by dmxBackendLateReInit(), dmxCheckCursor(), dmxConsoleUpdateFineCursor(), dmxHideCursor(), and dmxSetCursor().

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

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

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

void dmxUpdateWindowInfo | ( | DMXUpdateType | type,
|  | WindowPtr | pWindow
| ) |  |

This routine is called from dmxwindow.c whenever the layout of windows on the display might have changed. This information is used by input drivers (currently only the console driver) that provide information about window layout to the user.

References _DMXInputInfo::detached, dmxInputs, dmxNumInputs, and _DMXInputInfo::updateWindowInfo.

Referenced by dmxCopyWindow(), dmxRealizeWindow(), dmxReparentWindow(), dmxResizeWindow(), dmxRestackWindow(), and dmxUnrealizeWindow().

## Variable Documentation

DMXInputInfo* dmxInputs

List of inputs

Referenced by dmxAddDevice(), dmxAdjustCursorBoundaries(), dmxBackendInitPrivate(), dmxBlockHandler(), dmxChangePointerControl(), dmxCheckFunctionKeys(), dmxCommonCopyPrivate(), dmxConfigAddInput(), dmxConsoleInit(), dmxCoreMotion(), dmxDump(), dmxGetInputAttributes(), dmxGetInputCount(), dmxInputAttachBackend(), dmxInputAttachConsole(), dmxInputDetach(), dmxInputDetachAll(), dmxInputLocateId(), dmxInputLogDevices(), dmxKeyboardBellProc(), dmxKeyboardKbdCtrlProc(), dmxSigioDisableInput(), dmxSigioEnableInput(), dmxSigioHandler(), dmxTranslateAndEnqueueExtEvent(), dmxUpdateWindowInfo(), dmxWakeupHandler(), InitInput(), and ProcessInputEvents().

int dmxNumInputs

Number of dmxInputs

Referenced by dmxAdjustCursorBoundaries(), dmxChangePointerControl(), dmxConfigAddInput(), dmxConfigConfigInputs(), dmxCoreMotion(), dmxDump(), dmxGetInputAttributes(), dmxGetInputCount(), dmxInputAttachBackend(), dmxInputAttachConsole(), dmxInputDetach(), dmxInputDetachAll(), dmxInputLocateId(), dmxInputLogDevices(), dmxKeyboardBellProc(), dmxKeyboardKbdCtrlProc(), dmxSigioDisableInput(), dmxSigioEnableInput(), dmxSigioHandler(), dmxUpdateWindowInfo(), InitInput(), InitOutput(), and ProcessInputEvents().