2 Copyright © 1995-2014, The AROS Development Team. All rights reserved.
5 Desc: Internal definitions for the input.device
10 #define INPUT_INTERN_H
12 #ifndef AROS_LIBCALL_H
13 # include <aros/libcall.h>
15 #ifndef EXEC_EXECBASE_H
16 # include <exec/execbase.h>
18 #ifndef EXEC_DEVICES_H
19 # include <exec/devices.h>
24 #ifndef EXEC_SEMAPHORES_H
25 # include <exec/semaphores.h>
27 #include <devices/input.h>
28 #ifndef DEVICES_INPUTEVENT_H
29 # include <devices/inputevent.h>
31 #ifndef DEVICES_TIMER_H
32 # include <devices/timer.h>
35 /* Size of the input device's stack */
36 #define IDTASK_STACKSIZE (AROS_STACKSIZE + 10240)
38 /* Priority of the input.device task */
39 #define IDTASK_PRIORITY 20
41 /* Default key repeat threshold/interval in 1/50 secs */
43 #define DEFAULT_KEY_REPEAT_THRESHOLD 25
44 #define DEFAULT_KEY_REPEAT_INTERVAL 2
48 struct InputDevice pub
;
50 /* The stuff below will never get deallocated, since
51 ** input device is never removed, once it's initialized.
53 struct Task
*InputTask
;
54 struct MsgPort
*CommandPort
;
55 struct MinList HandlerList
;
56 struct InputEvent
*EventQueueHead
;
57 struct InputEvent
*EventQueueTail
;
58 struct timeval KeyRepeatThreshold
;
59 struct timeval KeyRepeatInterval
;
69 VOID
ProcessEvents(struct inputbase
*InputDevice
);
70 struct Task
*CreateInputTask(APTR taskparams
,
71 struct inputbase
*InputDevice
);
72 VOID
AddEQTail(struct InputEvent
*ie
, struct inputbase
*InputDevice
);
73 struct InputEvent
*GetEventsFromQueue(struct inputbase
*InputDevice
);
74 BOOL
IsQualifierKey(UWORD key
);
75 BOOL
IsRepeatableKey(UWORD key
);
77 #endif /* INPUT_INTERN_H */