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