1/*
2 * @APPLE_LICENSE_HEADER_START@
3 *
4 * Copyright (c) 1999-2003 Apple Computer, Inc.  All Rights Reserved.
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
11 * file.
12 *
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 */
23/* 	Copyright (c) 1992 NeXT Computer, Inc.  All rights reserved.
24 *
25 * EventIO.m - Event System MiG interface for driver control and status.
26 *
27 * HISTORY
28 * 2-April-92    Mike Paquette at NeXT
29 *      Created.
30 */
31
32#include <IOKit/system.h>
33
34#include <IOKit/hidsystem/IOHIDTypes.h>
35#include <IOKit/hidsystem/IOHIDSystem.h>
36#include <IOKit/hidsystem/IOHIDShared.h>
37
38#include <IOKit/hidsystem/ev_private.h>	/* Per-machine configuration info */
39
40/*
41 * Additional kernel API to drivers using the Event Driver
42 */
43int EventCoalesceDisplayCmd( int cmd, int oldcmd );
44int EventCoalesceDisplayCmd( int cmd, int oldcmd )
45{
46	static const char coalesce[4][4] = {
47	    /* nop */  {EVNOP,  EVHIDE, EVSHOW, EVMOVE},
48	    /* hide */ {EVHIDE, EVHIDE, EVNOP,  EVSHOW},
49	    /* show */ {EVSHOW, EVNOP,  EVSHOW, EVSHOW},
50	    /* move */ {EVMOVE, EVHIDE, EVSHOW, EVMOVE}
51	};
52	if ( cmd < EVLEVEL )	// coalesce EVNOP thru EVMOVE only
53	    cmd = coalesce[oldcmd & 3][cmd & 3];
54	return cmd;
55}
56
57