Distributed Multihead X
1.16.4
|
#include "dmxinputinit.h"
#include "dmxbackend.h"
#include "dmxcommon.h"
#include "dmxconsole.h"
#include "dmxcursor.h"
#include "dmxprop.h"
#include "dmxsync.h"
#include "dmxcb.h"
#include "dmxevents.h"
#include "ChkNotMaskEv.h"
#include "inputstr.h"
#include "input.h"
#include <X11/keysym.h>
#include "mipointer.h"
#include "scrnintstr.h"
#include "windowstr.h"
Data Structures | |
struct | _myPrivate |
Macros | |
#define | DMX_BACKEND_DEBUG 0 |
#define | DMXDBG0(f) |
#define | DMXDBG1(f, a) |
#define | DMXDBG2(f, a, b) |
#define | DMXDBG3(f, a, b, c) |
#define | DMXDBG4(f, a, b, c, d) |
#define | DMXDBG5(f, a, b, c, d, e) |
#define | DMXDBG6(f, a, b, c, d, e, g) |
#define | DMXDBG7(f, a, b, c, d, e, g, h) |
#define | DMXDBG8(f, a, b, c, d, e, g, h, i) |
#define | DMXDBG9(f, a, b, c, d, e, g, h, i, j) |
Typedefs | |
typedef struct _myPrivate | myPrivate |
Functions | |
void * | dmxBackendCreatePrivate (DeviceIntPtr pDevice) |
void | dmxBackendDestroyPrivate (void *private) |
static void * | dmxBackendTestScreen (DMXScreenInfo *dmxScreen, void *closure) |
static int | dmxBackendSameDisplay (myPrivate *priv, long screen) |
static void * | dmxBackendTestEvents (DMXScreenInfo *dmxScreen, void *closure) |
static void * | dmxBackendTestMotionEvent (DMXScreenInfo *dmxScreen, void *closure) |
static DMXScreenInfo * | dmxBackendGetEvent (myPrivate *priv, XEvent *X) |
static DMXScreenInfo * | dmxBackendPendingMotionEvent (myPrivate *priv, int save) |
static void * | dmxBackendTestWindow (DMXScreenInfo *dmxScreen, void *closure) |
static DMXScreenInfo * | dmxBackendFindWindow (myPrivate *priv, Window win) |
static int | dmxBackendFindOverlapping (myPrivate *priv, int screen, int x, int y) |
static int | dmxBackendOffscreen (int screen, int x, int y) |
void | dmxBackendUpdatePosition (void *private, int x, int y) |
void | dmxBackendCollectEvents (DevicePtr pDev, dmxMotionProcPtr motion, dmxEnqueueProcPtr enqueue, dmxCheckSpecialProcPtr checkspecial, DMXBlockType block) |
void | dmxBackendProcessInput (void *private) |
static void | dmxBackendComputeCenter (myPrivate *priv) |
static DMXScreenInfo * | dmxBackendInitPrivate (DevicePtr pDev) |
void | dmxBackendLateReInit (DevicePtr pDev) |
void | dmxBackendInit (DevicePtr pDev) |
void | dmxBackendMouGetInfo (DevicePtr pDev, DMXLocalInitInfoPtr info) |
void | dmxBackendKbdGetInfo (DevicePtr pDev, DMXLocalInitInfoPtr info) |
int | dmxBackendFunctions (void *private, DMXFunctionType function) |
These routines support taking input from devices on the backend (output) displays.
#define DMX_BACKEND_DEBUG 0 |
#define DMXDBG0 | ( | f | ) |
Referenced by dmxBackendUpdatePosition().
#define DMXDBG1 | ( | f, | |
a | |||
) |
#define DMXDBG2 | ( | f, | |
a, | |||
b | |||
) |
Referenced by dmxBackendCollectEvents(), and dmxBackendUpdatePosition().
#define DMXDBG3 | ( | f, | |
a, | |||
b, | |||
c | |||
) |
#define DMXDBG4 | ( | f, | |
a, | |||
b, | |||
c, | |||
d | |||
) |
Referenced by dmxBackendCollectEvents(), and dmxBackendProcessInput().
#define DMXDBG5 | ( | f, | |
a, | |||
b, | |||
c, | |||
d, | |||
e | |||
) |
Referenced by dmxBackendCollectEvents(), and dmxBackendUpdatePosition().
#define DMXDBG6 | ( | f, | |
a, | |||
b, | |||
c, | |||
d, | |||
e, | |||
g | |||
) |
Referenced by dmxBackendProcessInput().
#define DMXDBG7 | ( | f, | |
a, | |||
b, | |||
c, | |||
d, | |||
e, | |||
g, | |||
h | |||
) |
Referenced by dmxBackendCollectEvents().
#define DMXDBG8 | ( | f, | |
a, | |||
b, | |||
c, | |||
d, | |||
e, | |||
g, | |||
h, | |||
i | |||
) |
Referenced by dmxBackendCollectEvents().
#define DMXDBG9 | ( | f, | |
a, | |||
b, | |||
c, | |||
d, | |||
e, | |||
g, | |||
h, | |||
i, | |||
j | |||
) |
Referenced by dmxBackendUpdatePosition().
typedef struct _myPrivate myPrivate |
void dmxBackendCollectEvents | ( | DevicePtr | pDev, |
dmxMotionProcPtr | motion, | ||
dmxEnqueueProcPtr | enqueue, | ||
dmxCheckSpecialProcPtr | checkspecial, | ||
DMXBlockType | block | ||
) |
Get events from the X queue on the backend servers and put the events into the DMX event queue.
References _DMXScreenInfo::beDisplay, DMX_ABSOLUTE, DMX_RELATIVE, dmxBackendFindWindow(), dmxBackendGetEvent(), dmxBackendPendingMotionEvent(), dmxCommonRestoreState(), dmxCommonSaveState(), DMXDBG2, DMXDBG4, DMXDBG5, DMXDBG7, DMXDBG8, dmxError, dmxFatal, dmxLog(), dmxSync(), GETDMXINPUTFROMPRIV, GETPRIVFROMPDEV, _DMXScreenInfo::index, _DMXScreenInfo::name, _DMXScreenInfo::rootHeight, _DMXScreenInfo::rootWidth, _DMXScreenInfo::rootX, _DMXScreenInfo::rootXOrigin, _DMXScreenInfo::rootY, _DMXScreenInfo::rootYOrigin, and _DMXScreenInfo::scrnWin.
|
static |
References _myPrivate::centerX, and _myPrivate::centerY.
Referenced by dmxBackendInit(), and dmxBackendLateReInit().
void* dmxBackendCreatePrivate | ( | DeviceIntPtr | pDevice | ) |
Create and return a private data structure.
References GETDMXLOCALFROMPDEVICE.
void dmxBackendDestroyPrivate | ( | void * | private | ) |
Destroy the private data structure. No checking is performed to verify that the structure was actually created by dmxBackendCreatePrivate.
|
static |
References dmxOnScreen(), dmxScreens, _DMXScreenInfo::index, _myPrivate::myScreen, and _DMXScreenInfo::over.
Referenced by dmxBackendUpdatePosition().
|
static |
References dmxBackendTestWindow(), and dmxPropertyIterate().
Referenced by dmxBackendCollectEvents().
int dmxBackendFunctions | ( | void * | private, |
DMXFunctionType | function | ||
) |
Process DMXFunctionType functions. The only function handled here is to acknowledge a pending server shutdown.
References DMX_FUNCTION_TERMINATE.
|
static |
References dmxBackendTestEvents(), and dmxPropertyIterate().
Referenced by dmxBackendCollectEvents().
void dmxBackendInit | ( | DevicePtr | pDev | ) |
Initialized the backend device described by pDev.
References DMX_LOCAL_KEYBOARD, DMX_LOCAL_MOUSE, dmxBackendComputeCenter(), dmxBackendInitPrivate(), dmxBackendSameDisplay(), GETPRIVFROMPDEV, and _DMXScreenInfo::index.
|
static |
References _DMXScreenInfo::beDisplay, dmxFatal, dmxInputs, dmxLog(), dmxNumScreens, dmxPropertySameDisplay(), dmxScreens, GETPRIVFROMPDEV, _DMXInputInfo::name, and _DMXScreenInfo::scrnWin.
Referenced by dmxBackendInit(), dmxBackendLateReInit(), and dmxBackendMouGetInfo().
void dmxBackendKbdGetInfo | ( | DevicePtr | pDev, |
DMXLocalInitInfoPtr | info | ||
) |
Get information about the backend keyboard (for initialization).
References dmxCommonKbdGetInfo(), dmxCommonKbdGetMap(), _DMXLocalInitInfo::focusClass, _DMXLocalInitInfo::freemap, _DMXLocalInitInfo::kbdFeedbackClass, _DMXLocalInitInfo::keyboard, _DMXLocalInitInfo::keyClass, _DMXLocalInitInfo::keySyms, and _DMXLocalInitInfo::modMap.
void dmxBackendLateReInit | ( | DevicePtr | pDev | ) |
Re-initialized the backend device described by pDev (after a reconfig).
References dmxBackendComputeCenter(), dmxBackendInitPrivate(), dmxBackendSameDisplay(), dmxBackendUpdatePosition(), dmxGetGlobalPosition(), dmxInvalidateGlobalPosition(), and GETPRIVFROMPDEV.
void dmxBackendMouGetInfo | ( | DevicePtr | pDev, |
DMXLocalInitInfoPtr | info | ||
) |
Get information about the backend pointer (for initialization).
References _DMXScreenInfo::beHeight, _DMXScreenInfo::beWidth, _DMXLocalInitInfo::buttonClass, dmxBackendInitPrivate(), dmxCommonMouGetMap(), _DMXLocalInitInfo::map, _DMXLocalInitInfo::maxres, _DMXLocalInitInfo::maxval, _DMXLocalInitInfo::minres, _DMXLocalInitInfo::minval, _DMXLocalInitInfo::numButtons, _DMXLocalInitInfo::numRelAxes, _DMXLocalInitInfo::ptrFeedbackClass, _DMXLocalInitInfo::res, and _DMXLocalInitInfo::valuatorClass.
|
static |
References dmxOnScreen(), and dmxScreens.
Referenced by dmxBackendUpdatePosition().
|
static |
References _DMXScreenInfo::beDisplay, dmxBackendTestMotionEvent(), and dmxPropertyIterate().
Referenced by dmxBackendCollectEvents(), and dmxBackendUpdatePosition().
void dmxBackendProcessInput | ( | void * | private | ) |
Called after input events are processed from the DMX queue. No event processing actually takes place here, but this is a convenient place to update the pointer.
References DMXDBG4, DMXDBG6, dmxScreens, dmxSync(), and GETPRIVFROMPRIVATE.
|
static |
References dmxBackendTestScreen(), dmxNumScreens, dmxPropertyIterate(), and _myPrivate::myScreen.
Referenced by dmxBackendInit(), dmxBackendLateReInit(), and dmxBackendUpdatePosition().
|
static |
References _DMXScreenInfo::beDisplay, and XCheckNotMaskEvent().
Referenced by dmxBackendGetEvent().
|
static |
References _DMXScreenInfo::beDisplay.
Referenced by dmxBackendPendingMotionEvent().
|
static |
References _DMXScreenInfo::index.
Referenced by dmxBackendSameDisplay().
|
static |
References _DMXScreenInfo::scrnWin.
Referenced by dmxBackendFindWindow().
void dmxBackendUpdatePosition | ( | void * | private, |
int | x, | ||
int | y | ||
) |
This routine is called from dmxCoreMotion for each motion event. x and y are global coordinants.
References dmxBackendFindOverlapping(), dmxBackendOffscreen(), dmxBackendPendingMotionEvent(), dmxBackendSameDisplay(), dmxCheckCursor(), dmxConsoleCapture(), dmxConsoleUncapture(), DMXDBG0, DMXDBG2, DMXDBG5, DMXDBG9, dmxHideCursor(), dmxScreens, dmxSync(), and GETPRIVFROMPRIVATE.
Referenced by dmxBackendLateReInit().