brender-v1.3.2/inc/eventq.h
2022-05-03 13:10:51 -07:00

83 lines
1.4 KiB
C

/*
* Copyright (c) 1992,1993-1995 Argonaut Technologies Limited. All rights reserved.
*
* $Id: eventq.h 1.1 1997/12/10 16:40:59 jon Exp $
* $Locker: $
*
* Event queue for mouse and keyboard events - events can be added to queue
* from both real-mode and protected mode
*
* NB: the structures and equates in eventq.inc must match
*/
#ifndef _EVENTQ_H_
#define _EVENTQ_H_
typedef struct dosio_event {
br_uint_16 type;
br_uint_16 qualifiers;
br_uint_32 value_1;
br_uint_32 value_2;
} dosio_event;
/*
* Event types - matches those in brwap.h
*/
enum dosio_event_type {
DOSIO_EVENT_KEY_DOWN,
DOSIO_EVENT_KEY_UP,
/* value_1 == key code */
DOSIO_EVENT_POINTER1_DOWN,
DOSIO_EVENT_POINTER1_UP,
DOSIO_EVENT_POINTER2_DOWN,
DOSIO_EVENT_POINTER2_UP,
DOSIO_EVENT_POINTER3_DOWN,
DOSIO_EVENT_POINTER3_UP,
/* value_1 == x */
/* value_2 == y */
DOSIO_EVENT_POINTER_MOVE,
/* value_1 == x */
/* value_2 == y */
DOSIO_EVENT_MAX
};
enum dosio_event_qual {
DOSIO_QUAL_SHIFT = 1,
DOSIO_QUAL_CONTROL = 2,
DOSIO_QUAL_ALT = 4,
};
/*
* An event queue
*
*/
typedef struct dosio_event_queue {
/*
* Maximum number of events in buffer
*/
br_uint_16 total;
/*
* Number of events in queue
*/
br_uint_16 count;
/*
* Next free slot in which to add an event
*/
br_uint_16 head;
/*
* Next event slot to remove from queue
*/
br_uint_16 tail;
/*
* Array of event slots
*/
dosio_event slots[1];
} dosio_event_queue;
#endif