# dmxmap.c File Reference

`#include "dmxinputinit.h"`
`#include "dmxmap.h"`

## Functions

void | dmxMapInsert (DMXLocalInputInfoPtr dmxLocal, int remoteEvent, int serverEvent)
void | dmxMapClear (DMXLocalInputInfoPtr dmxLocal)
int | dmxMapLookup (DMXLocalInputInfoPtr dmxLocal, int remoteEvent)

## Detailed Description

This file implements a mapping from remote XInput event types to Xdmx XInput event types.

The exglobals.h file defines global server-side variables with names Device* to be integers that hold the value of the type of the server-side XInput extension event.

The client-side X11/extensions/XInput.h file defines macros with THE EXACT SAME Device* names!

Using those macros to extract remote server event type values from the (opaque) XDevice structure is appropriate, but makes a direct mapping to the Device* integers impossible. So we use the normalized XI_Device* names for these routines.

## Function Documentation

void dmxMapClear | ( | DMXLocalInputInfoPtr | dmxLocal | ) |

Remove all mappings there were inserted with dmxMapInsert.

References _DMXLocalInputInfo::map, _DMXLocalInputInfo::mapOptimize, and _DMXEventMap::remote.

void dmxMapInsert | ( | DMXLocalInputInfoPtr | dmxLocal,
|  | int | remoteEvent,
|  | int | serverEvent |
| ) |  |  |

Create a mapping from remoteEvent to serverEvent. The remoteEvent is the type returned from the remote server. The serverEvent is from the XI_* list of events in include/extensions/XIproto.h.

References dmxLog(), dmxWarning, _DMXLocalInputInfo::map, _DMXLocalInputInfo::mapOptimize, _DMXEventMap::remote, and _DMXEventMap::server.

int dmxMapLookup | ( | DMXLocalInputInfoPtr | dmxLocal,
|  | int | remoteEvent |
| ) |  |  |

Lookup a mapping for remoteEvent. The remoteEvent is the type returned from the remote server. The return value is that which was passed into dmxMapInsert (i.e., a value from the XI_* list in include/extensions/XIproto.h). If a mapping is not available, -1 is returned.

References _DMXLocalInputInfo::map, _DMXLocalInputInfo::mapOptimize, _DMXEventMap::remote, and _DMXEventMap::server.

Referenced by dmxTranslateAndEnqueueExtEvent().

Generated June 29, 2004 for Distributed Multihead X by doxygen 1.3.4. </addres>