#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) |
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.
void dmxMapClear | ( | DMXLocalInputInfoPtr | dmxLocal | ) |
Remove all mappings there were inserted with dmxMapInsert.
References DMX_MAP_ENTRIES, _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 DMX_MAP_ENTRIES, DMX_MAP_MASK, 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 DMX_MAP_ENTRIES, DMX_MAP_MASK, _DMXLocalInputInfo::map, _DMXLocalInputInfo::mapOptimize, _DMXEventMap::remote, and _DMXEventMap::server.
Referenced by dmxTranslateAndEnqueueExtEvent().