|
|
1.1 root 1: /*
2: * Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved.
3: *
4: * @APPLE_LICENSE_HEADER_START@
5: *
6: * The contents of this file constitute Original Code as defined in and
7: * are subject to the Apple Public Source License Version 1.1 (the
8: * "License"). You may not use this file except in compliance with the
9: * License. Please obtain a copy of the License at
10: * http://www.apple.com/publicsource and read it before using this file.
11: *
12: * This Original Code and all software distributed under the License are
13: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
14: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
15: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
16: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
17: * License for the specific language governing rights and limitations
18: * under the License.
19: *
20: * @APPLE_LICENSE_HEADER_END@
21: */
22: /******************************************************************************
23:
24: ev_private.h
25: Internal defs for the events driver. The contents of this module
26: may need to be tweaked slightly from one architecture to the next.
27: 22 May 1992 Mike Paquette at NeXT Computers, Inc.
28:
29: Copyright 1992 NeXT, Inc.
30:
31: Modified:
32:
33:
34: ******************************************************************************/
35:
36: #ifndef _DEV_EV_PRIVATE_H
37: #define _DEV_EV_PRIVATE_H
38:
39: #include <IOKit/hidsystem/IOLLEvent.h>
40:
41: /* Initial cursor position */
42: #define INIT_CURSOR_X 16
43: #define INIT_CURSOR_Y 16
44:
45: /* Default mouse click time and motion constants */
46: #define EV_DCLICKTIME 500000000 /* Default nanoseconds for a double-click */
47: #define EV_DCLICKSPACE 3 /* Default pixel threshold for double-clicks */
48:
49: /* Default Wait Cursor Timing Constants (in nanoseconds) */
50: #define DefaultWCSustain 300000000 /* 0.3 seconds */
51: #define DefaultWCFrameRate 75000000 /* 13.3 frames/second */
52: #define DefaultWCThreshold 1200000000ULL /* 1.2 seconds */
53:
54: #define EV_STD_CURSOR 0
55: #define EV_WAITCURSOR 1
56: #define EV_WAITCURSOR_1 2
57: #define EV_WAITCURSOR_2 3
58: #define EV_MAXCURSOR (EV_WAITCURSOR_2)
59:
60: /* Default dim time is 5 minutes, nanoseconds */
61: #define DAUTODIMPERIOD (1000ULL*1000ULL*1000ULL*60*5)
62: /* Default dim level is one-fourth */
63: #define DDIMBRIGHTNESS (EV_SCREEN_MAX_BRIGHTNESS/4)
64:
65:
66: /* Where event numbers start */
67: #define INITEVENTNUM 13
68: #define NULLEVENTNUM 0 /* The event number that never was */
69:
70: #define MOVEDEVENTMASK \
71: (NX_MOUSEMOVEDMASK | NX_LMOUSEDRAGGEDMASK | NX_RMOUSEDRAGGEDMASK )
72: #define COALESCEEVENTMASK \
73: (MOVEDEVENTMASK | NX_MOUSEEXITEDMASK)
74: #define MOUSEEVENTMASK \
75: (NX_LMOUSEDOWNMASK|NX_RMOUSEDOWNMASK|NX_LMOUSEUPMASK|NX_RMOUSEUPMASK)
76: #define PRESSUREEVENTMASK \
77: (NX_LMOUSEDOWNMASK|NX_LMOUSEUPMASK|NX_MOUSEMOVEDMASK|NX_LMOUSEDRAGGEDMASK)
78:
79: /* Flags which can modify meaning of special volume/brightness keys */
80: #define SPECIALKEYS_MODIFIER_MASK \
81: (NX_COMMANDMASK|NX_ALTERNATEMASK|NX_CONTROLMASK)
82:
83: /* Bits in evg->eventFlags owned by keyboard devices */
84: #define KEYBOARD_FLAGSMASK \
85: (NX_ALPHASHIFTMASK | NX_SHIFTMASK | NX_CONTROLMASK | NX_ALTERNATEMASK \
86: | NX_COMMANDMASK | NX_NUMERICPADMASK | NX_HELPMASK)
87: // | NX_NEXTCTLKEYMASK \
88: // | NX_NEXTLSHIFTKEYMASK | NX_NEXTRSHIFTKEYMASK | NX_NEXTLCMDKEYMASK \
89: // | NX_NEXTRCMDKEYMASK | NX_NEXTLALTKEYMASK | NX_NEXTRALTKEYMASK)
90:
91: /* Some non-zero token to or with screen number */
92: #define SCREENTOKEN 256
93:
94: /* A macro to report if the event queue is not empty */
95: #define EventsInQueue() \
96: (eventsOpen && (((EvGlobals*)evg)->LLEHead != ((EvGlobals*)evg)->LLETail))
97:
98: struct _eventMsg {
99: mach_msg_header_t h;
100: #ifdef mach3xxx // this is not needed anymore?
101: msg_type_t t;
102: #endif
103: };
104:
105: /******************************************************************************
106: EvScreen
107: This structure is used by the ev driver.
108: It holds information about a single screen: how much private shmem it owns,
109: where its private shmem region starts, its global bounds and four procedure
110: vectors. This structure is allocated by the ev driver and is filled in
111: when a driver calls ev_register_screen().
112: ******************************************************************************/
113:
114: typedef volatile struct _evScreen {
115: IOGraphicsDevice * instance;/* Driver instance owning this screen. */
116: // void *shmemPtr; /* Ptr to private shmem (if non-zero size) */
117: // int shmemSize; /* Size of private shmem */
118: Bounds * bounds; /* Screen's bounds in device coordinates */
119: } EvScreen;
120:
121: /*
122: * We maintain a queue of EventSrc instances attached to the Event
123: * Driver. These sources are dynamically checked in with the Event
124: * Driver. When the driver is closed (as on Window Server exit) we
125: * post a relinquishOwnership:client message to the drivers.
126: */
127: typedef struct {
128: IOHIDevice * eventSrc;
129: } eventSrcInfo;
130:
131: typedef struct {
132: eventSrcInfo info;
133: queue_chain_t link;
134: } attachedEventSrc;
135:
136: // No-op XPR stuff
137: #define xpr_ev_cursor(x, a, b, c, d, e)
138: #define xpr_ev_post(x, a, b, c, d, e)
139:
140: #endif /* !_DEV_EV_PRIVATE_H */
141:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.