# dmxinput.c File Reference

`#include "dmx.h"`
`#include "dmxlog.h"`
`#include "dmxinput.h"`
`#include "inputstr.h"`
`#include "input.h"`
`#include "mi.h"`

## Functions

Bool | LegalModifier (unsigned int key, DeviceIntPtr pDev)
void | InitInput (int argc, char **argv)
void | CloseInput (void)
void | ProcessInputEvents (void)
void | dmxUpdateWindowInfo (DMXUpdateType type, WindowPtr pWindow)
int | NewInputDeviceRequest (InputOption *options, InputAttributes *attrs, DeviceIntPtr *pdev)
void | DeleteInputDeviceRequest (DeviceIntPtr pDev)

## Detailed Description

Provide the main entry points for input initialization and processing that arequired by the dix layer.

## Function Documentation

void CloseInput | ( | void |  | ) |

void DeleteInputDeviceRequest | ( | DeviceIntPtr | pDev | ) |

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

void InitInput | ( | int | argc,
|  | char ** | argv
| ) |  |

Called from dix/main.c on each server generation to initialize inputs. All the work is done in dmxInputInit.

See also:
  dmxInputInit()

References dmxFatal, dmxInputInit(), dmxInputs, dmxLog(), and dmxNumInputs.

Bool LegalModifier | ( | unsigned int | key,
|  | DeviceIntPtr | pDev
| ) |  |

Returns TRUE if the key is a valid modifier. For PC-class keyboards, all keys can be used as modifiers, so return TRUE always.

int NewInputDeviceRequest | ( | InputOption * | options,
|  | InputAttributes * | attrs,
|  | DeviceIntPtr * | pdev
| ) |  |

void ProcessInputEvents | ( | void |  | ) |

Called from dix/dispatch.c in Dispatch() whenever input events require processing. All the work is done in the lower level routines.

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

Referenced by dmxCoreMotion().