Main Page | Alphabetical List | Data Structures | File List | Data Fields | Globals

dmxeq.c File Reference

#include "dmx.h"
#include "dmxeq.h"
#include "dmxinput.h"
#include "dmxlog.h"
#include "dmxdpms.h"
#include "inputstr.h"
#include "scrnintstr.h"
#include "XIproto.h"
#include "extinit.h"

Data Structures

struct  _Event
struct  _EventQueue


#define QUEUE_SIZE   256


typedef _Event EventRec
typedef _EventEventPtr
typedef _EventQueue EventQueueRec
typedef _EventQueueEventQueuePtr


void dmxeqEnqueue (xEvent *e)
void dmxeqSwitchScreen (ScreenPtr pScreen, Bool fromDIX)
void dmxeqProcessInputEvents (void)

Detailed Description

This file provides an event queue that knows about XInput events. All of the code is based on mi/mieq.c and was modified as little as possible to provide XInput event support (the copyright and some of the comments are from The Open Group, Keith Packard, MIT X Consortium). (Another example of similar code is provided in hw/xfree86/common/xf86Xinput.c.)

Define Documentation

#define QUEUE_SIZE   256

The size of our queue. (The queue provided by mi/mieq.c has a size of 256.)

Typedef Documentation

typedef struct _Event * EventPtr

Information about the event.

typedef struct _EventQueue * EventQueuePtr

Event queue.

typedef struct _EventQueue EventQueueRec

Event queue.

typedef struct _Event EventRec

Information about the event.

Function Documentation

void dmxeqEnqueue xEvent *  e  ) 

This function adds an event to the end of the queue. If the event is an XInput event, then the next event (the valuator event) is also stored in the queue. If the new event has a time before the time of the last event currently on the queue, then the time is updated for the new event.

Must be reentrant with ProcessInputEvents. Assumption: dmxeqEnqueue will never be interrupted. If this is called from both signal handlers and regular code, make sure the signal is suspended when called from regular code.

void dmxeqProcessInputEvents void   ) 

This function is called from ProcessInputEvents() to remove events from the queue and process them.

void dmxeqSwitchScreen ScreenPtr  pScreen,
Bool  fromDIX

Make pScreen the new screen for enqueueing events. If fromDIX is TRUE, also make pScreen the new screen for dequeuing events.

Generated June 13, 2004 for Distributed Multihead X by doxygen 1.3.4.