dmxbackend.c File Reference
#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

Defines

#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

pointer dmxBackendCreatePrivate (DeviceIntPtr pDevice)
void dmxBackendDestroyPrivate (pointer 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 DMXScreenInfodmxBackendGetEvent (myPrivate *priv, XEvent *X)
static DMXScreenInfodmxBackendPendingMotionEvent (myPrivate *priv, int save)
static void * dmxBackendTestWindow (DMXScreenInfo *dmxScreen, void *closure)
static DMXScreenInfodmxBackendFindWindow (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 (pointer private, int x, int y)
void dmxBackendCollectEvents (DevicePtr pDev, dmxMotionProcPtr motion, dmxEnqueueProcPtr enqueue, dmxCheckSpecialProcPtr checkspecial, DMXBlockType block)
void dmxBackendProcessInput (pointer private)
static void dmxBackendComputeCenter (myPrivate *priv)
static DMXScreenInfodmxBackendInitPrivate (DevicePtr pDev)
void dmxBackendLateReInit (DevicePtr pDev)
void dmxBackendInit (DevicePtr pDev)
void dmxBackendMouGetInfo (DevicePtr pDev, DMXLocalInitInfoPtr info)
void dmxBackendKbdGetInfo (DevicePtr pDev, DMXLocalInitInfoPtr info)
int dmxBackendFunctions (pointer private, DMXFunctionType function)

Detailed Description

These routines support taking input from devices on the backend (output) displays.

See also:
dmxcommon.c.

Define Documentation

#define DMX_BACKEND_DEBUG   0
#define DMXDBG0 (   f)
#define DMXDBG1 (   f,
 
)

Referenced by dmxBackendLateReInit().

#define DMXDBG2 (   f,
  a,
 
)
#define DMXDBG3 (   f,
  a,
  b,
 
)
#define DMXDBG4 (   f,
  a,
  b,
  c,
 
)
#define DMXDBG5 (   f,
  a,
  b,
  c,
  d,
 
)
#define DMXDBG6 (   f,
  a,
  b,
  c,
  d,
  e,
 
)

Referenced by dmxBackendProcessInput().

#define DMXDBG7 (   f,
  a,
  b,
  c,
  d,
  e,
  g,
 
)

Referenced by dmxBackendCollectEvents().

#define DMXDBG8 (   f,
  a,
  b,
  c,
  d,
  e,
  g,
  h,
 
)

Referenced by dmxBackendCollectEvents().

#define DMXDBG9 (   f,
  a,
  b,
  c,
  d,
  e,
  g,
  h,
  i,
 
)

Typedef Documentation

typedef struct _myPrivate myPrivate

Function Documentation

static void dmxBackendComputeCenter ( myPrivate priv) [static]
pointer dmxBackendCreatePrivate ( DeviceIntPtr  pDevice)

Create and return a private data structure.

References GETDMXLOCALFROMPDEVICE.

void dmxBackendDestroyPrivate ( pointer  private)

Destroy the private data structure. No checking is performed to verify that the structure was actually created by dmxBackendCreatePrivate.

static int dmxBackendFindOverlapping ( myPrivate priv,
int  screen,
int  x,
int  y 
) [static]
static DMXScreenInfo* dmxBackendFindWindow ( myPrivate priv,
Window  win 
) [static]
int dmxBackendFunctions ( pointer  private,
DMXFunctionType  function 
)

Process DMXFunctionType functions. The only function handled here is to acknowledge a pending server shutdown.

References DMX_FUNCTION_TERMINATE.

static DMXScreenInfo* dmxBackendGetEvent ( myPrivate priv,
XEvent *  X 
) [static]
void dmxBackendInit ( DevicePtr  pDev)
void dmxBackendLateReInit ( DevicePtr  pDev)
static int dmxBackendOffscreen ( int  screen,
int  x,
int  y 
) [static]

References dmxOnScreen(), and dmxScreens.

Referenced by dmxBackendUpdatePosition().

static DMXScreenInfo* dmxBackendPendingMotionEvent ( myPrivate priv,
int  save 
) [static]
void dmxBackendProcessInput ( pointer  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 int dmxBackendSameDisplay ( myPrivate priv,
long  screen 
) [static]
static void* dmxBackendTestEvents ( DMXScreenInfo dmxScreen,
void *  closure 
) [static]
static void* dmxBackendTestMotionEvent ( DMXScreenInfo dmxScreen,
void *  closure 
) [static]
static void* dmxBackendTestScreen ( DMXScreenInfo dmxScreen,
void *  closure 
) [static]

References _DMXScreenInfo::index.

Referenced by dmxBackendSameDisplay().

static void* dmxBackendTestWindow ( DMXScreenInfo dmxScreen,
void *  closure 
) [static]

References _DMXScreenInfo::scrnWin.

Referenced by dmxBackendFindWindow().

void dmxBackendUpdatePosition ( pointer  private,
int  x,
int  y 
)