2 // internal header stuff for the mouse
12 typedef struct _mouse_state
18 #define NUM_MOUSEEVENTS 32
19 #define NUM_MOUSE_CALLBACKS 16
21 // These are global for fast access from interrupt routine & others
23 extern short gMouseCritical
; // in critical region?
25 extern short mouseQueueSize
;
26 extern volatile short mouseQueueIn
; // back of event queue
27 extern volatile short mouseQueueOut
; // front of event queue
28 extern lgMouseEvent mouseQueue
[]; // array of events
29 extern short mouseInstantX
; // instantaneous mouse xpos (int-based)
30 extern short mouseInstantY
; // instantaneous mouse ypos (int-based)
31 extern short mouseInstantButts
;
32 extern short mouseButtMask
; // amt to mask to get buttons.
33 extern ubyte mouseXshift
; // Extra bits of mouse resolution
34 extern ubyte mouseYshift
;
36 extern ubyte mouseMask
; // mask of events to put in the queue.
37 extern bool mouseLefty
; // is the user left-handed?
39 extern mouse_callfunc mouseCall
[];
40 extern void* mouseCallData
[];
41 extern short mouseCalls
; // current number of mouse calls.
42 extern short mouseCallSize
;
44 extern bool mouse_installed
; // was mouse found?
47 extern ulong default_mouse_ticks
;
48 extern ulong
volatile *mouse_ticks
; // Place to get mouse timestamps.
50 typedef ulong (*fn_mouse_ticks_t
)();
51 extern fn_mouse_ticks_t pfn_mouse_ticks
; // Place to get mouse timestamps.
54 // MOUSE VELOCITY STUFF
56 extern int mouseVelX
, mouseVelY
;
57 extern int mouseVelXmax
;
58 extern int mouseVelYmax
;
59 extern int mouseVelXmin
;
60 extern int mouseVelYmin
;
64 #define MOUSECRITON() (gMouseCritical++)
65 #define MOUSECRITOFF() (gMouseCritical--)
71 #endif // __MOUSESYS_H