|
|
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.