Add keyboard handling
This commit is contained in:
parent
15ba6869e2
commit
dea9bd191d
|
@ -0,0 +1,126 @@
|
||||||
|
#include <mach/mach.h>
|
||||||
|
#include <mach/mach_time.h>
|
||||||
|
#include <rfb/keysym.h>
|
||||||
|
#include <IOKit/hidsystem/IOHIDUsageTables.h>
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
typedef uint32_t IOHIDEventOptionBits;
|
||||||
|
typedef struct __IOHIDEvent *IOHIDEventRef;
|
||||||
|
typedef struct CF_BRIDGED_TYPE(id) __IOHIDEventSystemClient * IOHIDEventSystemClientRef;
|
||||||
|
IOHIDEventRef IOHIDEventCreateKeyboardEvent(
|
||||||
|
CFAllocatorRef allocator,
|
||||||
|
uint64_t time, uint16_t page, uint16_t usage,
|
||||||
|
Boolean down, IOHIDEventOptionBits flags
|
||||||
|
);
|
||||||
|
|
||||||
|
// IOHIDEventRef IOHIDEventCreateDigitizerEvent(CFAllocatorRef allocator, uint64_t timeStamp, IOHIDDigitizerTransducerType type, uint32_t index, uint32_t identity, uint32_t eventMask, uint32_t buttonMask, IOHIDFloat x, IOHIDFloat y, IOHIDFloat z, IOHIDFloat tipPressure, IOHIDFloat barrelPressure, Boolean range, Boolean touch, IOOptionBits options);
|
||||||
|
// IOHIDEventRef IOHIDEventCreateDigitizerFingerEvent(CFAllocatorRef allocator, uint64_t timeStamp, uint32_t index, uint32_t identity, uint32_t eventMask, IOHIDFloat x, IOHIDFloat y, IOHIDFloat z, IOHIDFloat tipPressure, IOHIDFloat twist, Boolean range, Boolean touch, IOOptionBits options);
|
||||||
|
|
||||||
|
IOHIDEventSystemClientRef IOHIDEventSystemClientCreate(CFAllocatorRef allocator);
|
||||||
|
|
||||||
|
// void IOHIDEventAppendEvent(IOHIDEventRef parent, IOHIDEventRef child);
|
||||||
|
// void IOHIDEventSetIntegerValue(IOHIDEventRef event, IOHIDEventField field, int value);
|
||||||
|
void IOHIDEventSetSenderID(IOHIDEventRef event, uint64_t sender);
|
||||||
|
|
||||||
|
void IOHIDEventSystemClientDispatchEvent(IOHIDEventSystemClientRef client, IOHIDEventRef event);
|
||||||
|
// void IOHIDEventSystemConnectionDispatchEvent(IOHIDEventSystemConnectionRef connection, IOHIDEventRef event);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void VNCSendHIDEvent(IOHIDEventRef event) {
|
||||||
|
static IOHIDEventSystemClientRef client_(NULL);
|
||||||
|
if (client_ == NULL)
|
||||||
|
client_ = IOHIDEventSystemClientCreate(kCFAllocatorDefault);
|
||||||
|
|
||||||
|
IOHIDEventSetSenderID(event, 0xDEFACEDBEEFFECE5);
|
||||||
|
IOHIDEventSystemClientDispatchEvent(client_, event);
|
||||||
|
CFRelease(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void VNCKeyboard(rfbBool down, rfbKeySym key, rfbClientPtr client) {
|
||||||
|
uint16_t usage;
|
||||||
|
|
||||||
|
switch (key) {
|
||||||
|
case XK_exclam: case XK_1: usage = kHIDUsage_Keyboard1; break;
|
||||||
|
case XK_at: case XK_2: usage = kHIDUsage_Keyboard2; break;
|
||||||
|
case XK_numbersign: case XK_3: usage = kHIDUsage_Keyboard3; break;
|
||||||
|
case XK_dollar: case XK_4: usage = kHIDUsage_Keyboard4; break;
|
||||||
|
case XK_percent: case XK_5: usage = kHIDUsage_Keyboard5; break;
|
||||||
|
case XK_asciicircum: case XK_6: usage = kHIDUsage_Keyboard6; break;
|
||||||
|
case XK_ampersand: case XK_7: usage = kHIDUsage_Keyboard7; break;
|
||||||
|
case XK_asterisk: case XK_8: usage = kHIDUsage_Keyboard8; break;
|
||||||
|
case XK_parenleft: case XK_9: usage = kHIDUsage_Keyboard9; break;
|
||||||
|
case XK_parenright: case XK_0: usage = kHIDUsage_Keyboard0; break;
|
||||||
|
|
||||||
|
case XK_A: case XK_a: usage = kHIDUsage_KeyboardA; break;
|
||||||
|
case XK_B: case XK_b: usage = kHIDUsage_KeyboardB; break;
|
||||||
|
case XK_C: case XK_c: usage = kHIDUsage_KeyboardC; break;
|
||||||
|
case XK_D: case XK_d: usage = kHIDUsage_KeyboardD; break;
|
||||||
|
case XK_E: case XK_e: usage = kHIDUsage_KeyboardE; break;
|
||||||
|
case XK_F: case XK_f: usage = kHIDUsage_KeyboardF; break;
|
||||||
|
case XK_G: case XK_g: usage = kHIDUsage_KeyboardG; break;
|
||||||
|
case XK_H: case XK_h: usage = kHIDUsage_KeyboardH; break;
|
||||||
|
case XK_I: case XK_i: usage = kHIDUsage_KeyboardI; break;
|
||||||
|
case XK_J: case XK_j: usage = kHIDUsage_KeyboardJ; break;
|
||||||
|
case XK_K: case XK_k: usage = kHIDUsage_KeyboardK; break;
|
||||||
|
case XK_L: case XK_l: usage = kHIDUsage_KeyboardL; break;
|
||||||
|
case XK_M: case XK_m: usage = kHIDUsage_KeyboardM; break;
|
||||||
|
case XK_N: case XK_n: usage = kHIDUsage_KeyboardN; break;
|
||||||
|
case XK_O: case XK_o: usage = kHIDUsage_KeyboardO; break;
|
||||||
|
case XK_P: case XK_p: usage = kHIDUsage_KeyboardP; break;
|
||||||
|
case XK_Q: case XK_q: usage = kHIDUsage_KeyboardQ; break;
|
||||||
|
case XK_R: case XK_r: usage = kHIDUsage_KeyboardR; break;
|
||||||
|
case XK_S: case XK_s: usage = kHIDUsage_KeyboardS; break;
|
||||||
|
case XK_T: case XK_t: usage = kHIDUsage_KeyboardT; break;
|
||||||
|
case XK_U: case XK_u: usage = kHIDUsage_KeyboardU; break;
|
||||||
|
case XK_V: case XK_v: usage = kHIDUsage_KeyboardV; break;
|
||||||
|
case XK_W: case XK_w: usage = kHIDUsage_KeyboardW; break;
|
||||||
|
case XK_X: case XK_x: usage = kHIDUsage_KeyboardX; break;
|
||||||
|
case XK_Y: case XK_y: usage = kHIDUsage_KeyboardY; break;
|
||||||
|
case XK_Z: case XK_z: usage = kHIDUsage_KeyboardZ; break;
|
||||||
|
|
||||||
|
case XK_underscore: case XK_minus: usage = kHIDUsage_KeyboardHyphen; break;
|
||||||
|
case XK_plus: case XK_equal: usage = kHIDUsage_KeyboardEqualSign; break;
|
||||||
|
case XK_braceleft: case XK_bracketleft: usage = kHIDUsage_KeyboardOpenBracket; break;
|
||||||
|
case XK_braceright: case XK_bracketright: usage = kHIDUsage_KeyboardCloseBracket; break;
|
||||||
|
case XK_bar: case XK_backslash: usage = kHIDUsage_KeyboardBackslash; break;
|
||||||
|
case XK_colon: case XK_semicolon: usage = kHIDUsage_KeyboardSemicolon; break;
|
||||||
|
case XK_quotedbl: case XK_apostrophe: usage = kHIDUsage_KeyboardQuote; break;
|
||||||
|
case XK_asciitilde: case XK_grave: usage = kHIDUsage_KeyboardGraveAccentAndTilde; break;
|
||||||
|
case XK_less: case XK_comma: usage = kHIDUsage_KeyboardComma; break;
|
||||||
|
case XK_greater: case XK_period: usage = kHIDUsage_KeyboardPeriod; break;
|
||||||
|
case XK_question: case XK_slash: usage = kHIDUsage_KeyboardSlash; break;
|
||||||
|
|
||||||
|
case XK_Return: usage = kHIDUsage_KeyboardReturnOrEnter; break;
|
||||||
|
case XK_BackSpace: usage = kHIDUsage_KeyboardDeleteOrBackspace; break;
|
||||||
|
case XK_Tab: usage = kHIDUsage_KeyboardTab; break;
|
||||||
|
case XK_space: usage = kHIDUsage_KeyboardSpacebar; break;
|
||||||
|
|
||||||
|
case XK_Shift_L: usage = kHIDUsage_KeyboardLeftShift; break;
|
||||||
|
case XK_Shift_R: usage = kHIDUsage_KeyboardRightShift; break;
|
||||||
|
case XK_Control_L: usage = kHIDUsage_KeyboardLeftControl; break;
|
||||||
|
case XK_Control_R: usage = kHIDUsage_KeyboardRightControl; break;
|
||||||
|
case XK_Meta_L: usage = kHIDUsage_KeyboardLeftAlt; break;
|
||||||
|
case XK_Meta_R: usage = kHIDUsage_KeyboardRightAlt; break;
|
||||||
|
case XK_Alt_L: usage = kHIDUsage_KeyboardLeftGUI; break;
|
||||||
|
case XK_Alt_R: usage = kHIDUsage_KeyboardRightGUI; break;
|
||||||
|
|
||||||
|
case XK_Up: usage = kHIDUsage_KeyboardUpArrow; break;
|
||||||
|
case XK_Down: usage = kHIDUsage_KeyboardDownArrow; break;
|
||||||
|
case XK_Left: usage = kHIDUsage_KeyboardLeftArrow; break;
|
||||||
|
case XK_Right: usage = kHIDUsage_KeyboardRightArrow; break;
|
||||||
|
|
||||||
|
case XK_Home: case XK_Begin: usage = kHIDUsage_KeyboardHome; break;
|
||||||
|
case XK_End: usage = kHIDUsage_KeyboardEnd; break;
|
||||||
|
case XK_Page_Up: usage = kHIDUsage_KeyboardPageUp; break;
|
||||||
|
case XK_Page_Down: usage = kHIDUsage_KeyboardPageDown; break;
|
||||||
|
|
||||||
|
default: return;
|
||||||
|
}
|
||||||
|
|
||||||
|
VNCSendHIDEvent(IOHIDEventCreateKeyboardEvent(kCFAllocatorDefault, mach_absolute_time(), kHIDPage_KeyboardOrKeypad, usage, down, 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void handleVNCKeyboard(rfbBool down, rfbKeySym key, rfbClientPtr client) {
|
||||||
|
NSLog(@"sharat d:%u k:%04x", down, key);
|
||||||
|
VNCKeyboard(down, key, client);
|
||||||
|
}
|
4
Makefile
4
Makefile
|
@ -5,10 +5,10 @@ include $(THEOS)/makefiles/common.mk
|
||||||
|
|
||||||
TWEAK_NAME = screendump
|
TWEAK_NAME = screendump
|
||||||
screendump_FILES = Tweak.xm
|
screendump_FILES = Tweak.xm
|
||||||
screendump_FRAMEWORKS := IOSurface
|
screendump_FRAMEWORKS := IOSurface IOKit
|
||||||
screendump_PRIVATE_FRAMEWORKS := IOMobileFramebuffer IOSurface
|
screendump_PRIVATE_FRAMEWORKS := IOMobileFramebuffer IOSurface
|
||||||
|
|
||||||
ADDITIONAL_OBJCFLAGS += -Ivncbuild/include
|
ADDITIONAL_OBJCFLAGS += -Ivncbuild/include -Iinclude
|
||||||
ADDITIONAL_LDFLAGS += -Lvncbuild/lib -lvncserver -lpng -llzo2 -ljpeg -lssl -lcrypto -lz
|
ADDITIONAL_LDFLAGS += -Lvncbuild/lib -lvncserver -lpng -llzo2 -ljpeg -lssl -lcrypto -lz
|
||||||
ADDITIONAL_CFLAGS = -w
|
ADDITIONAL_CFLAGS = -w
|
||||||
|
|
||||||
|
|
3
Tweak.xm
3
Tweak.xm
|
@ -2,6 +2,8 @@
|
||||||
#include <substrate.h>
|
#include <substrate.h>
|
||||||
#include <rfb/rfb.h>
|
#include <rfb/rfb.h>
|
||||||
|
|
||||||
|
#include "KeyboardHandle.xm"
|
||||||
|
|
||||||
static bool CCSisEnabled = true;
|
static bool CCSisEnabled = true;
|
||||||
static rfbScreenInfoPtr screen;
|
static rfbScreenInfoPtr screen;
|
||||||
static bool isVNCRunning;
|
static bool isVNCRunning;
|
||||||
|
@ -52,6 +54,7 @@ static void VNCSetup() {
|
||||||
screen->serverFormat.redShift = bits_per_sample * 2;
|
screen->serverFormat.redShift = bits_per_sample * 2;
|
||||||
screen->serverFormat.greenShift = bits_per_sample * 1;
|
screen->serverFormat.greenShift = bits_per_sample * 1;
|
||||||
screen->serverFormat.blueShift = bits_per_sample * 0;
|
screen->serverFormat.blueShift = bits_per_sample * 0;
|
||||||
|
screen->kbdAddEvent = &handleVNCKeyboard;
|
||||||
free(arg0);
|
free(arg0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,137 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 1998-2002 Apple Computer, Inc. All rights reserved.
|
||||||
|
*
|
||||||
|
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
|
||||||
|
*
|
||||||
|
* This file contains Original Code and/or Modifications of Original Code
|
||||||
|
* as defined in and that are subject to the Apple Public Source License
|
||||||
|
* Version 2.0 (the 'License'). You may not use this file except in
|
||||||
|
* compliance with the License. The rights granted to you under the License
|
||||||
|
* may not be used to create, or enable the creation or redistribution of,
|
||||||
|
* unlawful or unlicensed copies of an Apple operating system, or to
|
||||||
|
* circumvent, violate, or enable the circumvention or violation of, any
|
||||||
|
* terms of an Apple operating system software license agreement.
|
||||||
|
*
|
||||||
|
* Please obtain a copy of the License at
|
||||||
|
* http://www.opensource.apple.com/apsl/ and read it before using this file.
|
||||||
|
*
|
||||||
|
* The Original Code and all software distributed under the License are
|
||||||
|
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||||
|
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||||
|
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||||
|
* Please see the License for the specific language governing rights and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
* HISTORY
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Core IOReturn values. Others may be family defined.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __IOKIT_IORETURN_H
|
||||||
|
#define __IOKIT_IORETURN_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <mach/error.h>
|
||||||
|
|
||||||
|
typedef kern_return_t IOReturn;
|
||||||
|
|
||||||
|
#ifndef sys_iokit
|
||||||
|
#define sys_iokit err_system(0x38)
|
||||||
|
#endif /* sys_iokit */
|
||||||
|
#define sub_iokit_common err_sub(0)
|
||||||
|
#define sub_iokit_usb err_sub(1)
|
||||||
|
#define sub_iokit_firewire err_sub(2)
|
||||||
|
#define sub_iokit_block_storage err_sub(4)
|
||||||
|
#define sub_iokit_graphics err_sub(5)
|
||||||
|
#define sub_iokit_networking err_sub(6)
|
||||||
|
#define sub_iokit_bluetooth err_sub(8)
|
||||||
|
#define sub_iokit_pmu err_sub(9)
|
||||||
|
#define sub_iokit_acpi err_sub(10)
|
||||||
|
#define sub_iokit_smbus err_sub(11)
|
||||||
|
#define sub_iokit_ahci err_sub(12)
|
||||||
|
#define sub_iokit_powermanagement err_sub(13)
|
||||||
|
//#define sub_iokit_hidsystem err_sub(14)
|
||||||
|
#define sub_iokit_scsi err_sub(16)
|
||||||
|
//#define sub_iokit_pccard err_sub(21)
|
||||||
|
|
||||||
|
#define sub_iokit_vendor_specific err_sub(-2)
|
||||||
|
#define sub_iokit_reserved err_sub(-1)
|
||||||
|
|
||||||
|
#define iokit_common_err(return) (sys_iokit|sub_iokit_common|return)
|
||||||
|
#define iokit_family_err(sub,return) (sys_iokit|sub|return)
|
||||||
|
#define iokit_vendor_specific_err(return) (sys_iokit|sub_iokit_vendor_specific|return)
|
||||||
|
|
||||||
|
#define kIOReturnSuccess KERN_SUCCESS // OK
|
||||||
|
#define kIOReturnError iokit_common_err(0x2bc) // general error
|
||||||
|
#define kIOReturnNoMemory iokit_common_err(0x2bd) // can't allocate memory
|
||||||
|
#define kIOReturnNoResources iokit_common_err(0x2be) // resource shortage
|
||||||
|
#define kIOReturnIPCError iokit_common_err(0x2bf) // error during IPC
|
||||||
|
#define kIOReturnNoDevice iokit_common_err(0x2c0) // no such device
|
||||||
|
#define kIOReturnNotPrivileged iokit_common_err(0x2c1) // privilege violation
|
||||||
|
#define kIOReturnBadArgument iokit_common_err(0x2c2) // invalid argument
|
||||||
|
#define kIOReturnLockedRead iokit_common_err(0x2c3) // device read locked
|
||||||
|
#define kIOReturnLockedWrite iokit_common_err(0x2c4) // device write locked
|
||||||
|
#define kIOReturnExclusiveAccess iokit_common_err(0x2c5) // exclusive access and
|
||||||
|
// device already open
|
||||||
|
#define kIOReturnBadMessageID iokit_common_err(0x2c6) // sent/received messages
|
||||||
|
// had different msg_id
|
||||||
|
#define kIOReturnUnsupported iokit_common_err(0x2c7) // unsupported function
|
||||||
|
#define kIOReturnVMError iokit_common_err(0x2c8) // misc. VM failure
|
||||||
|
#define kIOReturnInternalError iokit_common_err(0x2c9) // internal error
|
||||||
|
#define kIOReturnIOError iokit_common_err(0x2ca) // General I/O error
|
||||||
|
//#define kIOReturn???Error iokit_common_err(0x2cb) // ???
|
||||||
|
#define kIOReturnCannotLock iokit_common_err(0x2cc) // can't acquire lock
|
||||||
|
#define kIOReturnNotOpen iokit_common_err(0x2cd) // device not open
|
||||||
|
#define kIOReturnNotReadable iokit_common_err(0x2ce) // read not supported
|
||||||
|
#define kIOReturnNotWritable iokit_common_err(0x2cf) // write not supported
|
||||||
|
#define kIOReturnNotAligned iokit_common_err(0x2d0) // alignment error
|
||||||
|
#define kIOReturnBadMedia iokit_common_err(0x2d1) // Media Error
|
||||||
|
#define kIOReturnStillOpen iokit_common_err(0x2d2) // device(s) still open
|
||||||
|
#define kIOReturnRLDError iokit_common_err(0x2d3) // rld failure
|
||||||
|
#define kIOReturnDMAError iokit_common_err(0x2d4) // DMA failure
|
||||||
|
#define kIOReturnBusy iokit_common_err(0x2d5) // Device Busy
|
||||||
|
#define kIOReturnTimeout iokit_common_err(0x2d6) // I/O Timeout
|
||||||
|
#define kIOReturnOffline iokit_common_err(0x2d7) // device offline
|
||||||
|
#define kIOReturnNotReady iokit_common_err(0x2d8) // not ready
|
||||||
|
#define kIOReturnNotAttached iokit_common_err(0x2d9) // device not attached
|
||||||
|
#define kIOReturnNoChannels iokit_common_err(0x2da) // no DMA channels left
|
||||||
|
#define kIOReturnNoSpace iokit_common_err(0x2db) // no space for data
|
||||||
|
//#define kIOReturn???Error iokit_common_err(0x2dc) // ???
|
||||||
|
#define kIOReturnPortExists iokit_common_err(0x2dd) // port already exists
|
||||||
|
#define kIOReturnCannotWire iokit_common_err(0x2de) // can't wire down
|
||||||
|
// physical memory
|
||||||
|
#define kIOReturnNoInterrupt iokit_common_err(0x2df) // no interrupt attached
|
||||||
|
#define kIOReturnNoFrames iokit_common_err(0x2e0) // no DMA frames enqueued
|
||||||
|
#define kIOReturnMessageTooLarge iokit_common_err(0x2e1) // oversized msg received
|
||||||
|
// on interrupt port
|
||||||
|
#define kIOReturnNotPermitted iokit_common_err(0x2e2) // not permitted
|
||||||
|
#define kIOReturnNoPower iokit_common_err(0x2e3) // no power to device
|
||||||
|
#define kIOReturnNoMedia iokit_common_err(0x2e4) // media not present
|
||||||
|
#define kIOReturnUnformattedMedia iokit_common_err(0x2e5)// media not formatted
|
||||||
|
#define kIOReturnUnsupportedMode iokit_common_err(0x2e6) // no such mode
|
||||||
|
#define kIOReturnUnderrun iokit_common_err(0x2e7) // data underrun
|
||||||
|
#define kIOReturnOverrun iokit_common_err(0x2e8) // data overrun
|
||||||
|
#define kIOReturnDeviceError iokit_common_err(0x2e9) // the device is not working properly!
|
||||||
|
#define kIOReturnNoCompletion iokit_common_err(0x2ea) // a completion routine is required
|
||||||
|
#define kIOReturnAborted iokit_common_err(0x2eb) // operation aborted
|
||||||
|
#define kIOReturnNoBandwidth iokit_common_err(0x2ec) // bus bandwidth would be exceeded
|
||||||
|
#define kIOReturnNotResponding iokit_common_err(0x2ed) // device not responding
|
||||||
|
#define kIOReturnIsoTooOld iokit_common_err(0x2ee) // isochronous I/O request for distant past!
|
||||||
|
#define kIOReturnIsoTooNew iokit_common_err(0x2ef) // isochronous I/O request for distant future
|
||||||
|
#define kIOReturnNotFound iokit_common_err(0x2f0) // data was not found
|
||||||
|
#define kIOReturnInvalid iokit_common_err(0x1) // should never be seen
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* ! __IOKIT_IORETURN_H */
|
|
@ -0,0 +1,250 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 1998-2006 Apple Computer, Inc. All rights reserved.
|
||||||
|
*
|
||||||
|
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
|
||||||
|
*
|
||||||
|
* This file contains Original Code and/or Modifications of Original Code
|
||||||
|
* as defined in and that are subject to the Apple Public Source License
|
||||||
|
* Version 2.0 (the 'License'). You may not use this file except in
|
||||||
|
* compliance with the License. The rights granted to you under the License
|
||||||
|
* may not be used to create, or enable the creation or redistribution of,
|
||||||
|
* unlawful or unlicensed copies of an Apple operating system, or to
|
||||||
|
* circumvent, violate, or enable the circumvention or violation of, any
|
||||||
|
* terms of an Apple operating system software license agreement.
|
||||||
|
*
|
||||||
|
* Please obtain a copy of the License at
|
||||||
|
* http://www.opensource.apple.com/apsl/ and read it before using this file.
|
||||||
|
*
|
||||||
|
* The Original Code and all software distributed under the License are
|
||||||
|
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||||
|
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||||
|
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||||
|
* Please see the License for the specific language governing rights and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
|
||||||
|
*/
|
||||||
|
#ifndef __IOKIT_IOTYPES_H
|
||||||
|
#define __IOKIT_IOTYPES_H
|
||||||
|
|
||||||
|
#ifndef IOKIT
|
||||||
|
#define IOKIT 1
|
||||||
|
#endif /* !IOKIT */
|
||||||
|
|
||||||
|
#if KERNEL
|
||||||
|
#include <IOKit/system.h>
|
||||||
|
#else
|
||||||
|
#include <mach/message.h>
|
||||||
|
#include <mach/vm_types.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <IOKit/IOReturn.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef NULL
|
||||||
|
#if defined (__cplusplus)
|
||||||
|
#define NULL 0
|
||||||
|
#else
|
||||||
|
#define NULL ((void *)0)
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Simple data types.
|
||||||
|
*/
|
||||||
|
#ifndef __MACTYPES__ /* CF MacTypes.h */
|
||||||
|
#ifndef __TYPES__ /* guess... Mac Types.h */
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include <libkern/OSTypes.h>
|
||||||
|
|
||||||
|
#endif /* __TYPES__ */
|
||||||
|
#endif /* __MACTYPES__ */
|
||||||
|
|
||||||
|
#if KERNEL
|
||||||
|
#include <libkern/OSBase.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef UInt32 IOOptionBits;
|
||||||
|
typedef SInt32 IOFixed;
|
||||||
|
typedef UInt32 IOVersion;
|
||||||
|
typedef UInt32 IOItemCount;
|
||||||
|
typedef UInt32 IOCacheMode;
|
||||||
|
|
||||||
|
typedef UInt32 IOByteCount32;
|
||||||
|
typedef UInt64 IOByteCount64;
|
||||||
|
|
||||||
|
typedef UInt32 IOPhysicalAddress32;
|
||||||
|
typedef UInt64 IOPhysicalAddress64;
|
||||||
|
typedef UInt32 IOPhysicalLength32;
|
||||||
|
typedef UInt64 IOPhysicalLength64;
|
||||||
|
|
||||||
|
#ifdef __LP64__
|
||||||
|
typedef mach_vm_address_t IOVirtualAddress;
|
||||||
|
#else
|
||||||
|
typedef vm_address_t IOVirtualAddress;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__LP64__) && defined(KERNEL)
|
||||||
|
typedef IOByteCount64 IOByteCount;
|
||||||
|
#else
|
||||||
|
typedef IOByteCount32 IOByteCount;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef IOVirtualAddress IOLogicalAddress;
|
||||||
|
|
||||||
|
#if defined(__LP64__) && defined(KERNEL)
|
||||||
|
|
||||||
|
typedef IOPhysicalAddress64 IOPhysicalAddress;
|
||||||
|
typedef IOPhysicalLength64 IOPhysicalLength;
|
||||||
|
#define IOPhysical32( hi, lo ) ((UInt64) lo + ((UInt64)(hi) << 32))
|
||||||
|
#define IOPhysSize 64
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
typedef IOPhysicalAddress32 IOPhysicalAddress;
|
||||||
|
typedef IOPhysicalLength32 IOPhysicalLength;
|
||||||
|
#define IOPhysical32( hi, lo ) (lo)
|
||||||
|
#define IOPhysSize 32
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
IOPhysicalAddress address;
|
||||||
|
IOByteCount length;
|
||||||
|
} IOPhysicalRange;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
IOVirtualAddress address;
|
||||||
|
IOByteCount length;
|
||||||
|
} IOVirtualRange;
|
||||||
|
|
||||||
|
#ifdef __LP64__
|
||||||
|
typedef IOVirtualRange IOAddressRange;
|
||||||
|
#else /* !__LP64__ */
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
mach_vm_address_t address;
|
||||||
|
mach_vm_size_t length;
|
||||||
|
} IOAddressRange;
|
||||||
|
#endif /* !__LP64__ */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Map between #defined or enum'd constants and text description.
|
||||||
|
*/
|
||||||
|
typedef struct {
|
||||||
|
int value;
|
||||||
|
const char *name;
|
||||||
|
} IONamedValue;
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Memory alignment -- specified as a power of two.
|
||||||
|
*/
|
||||||
|
typedef unsigned int IOAlignment;
|
||||||
|
|
||||||
|
#define IO_NULL_VM_TASK ((vm_task_t)0)
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Pull in machine specific stuff.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//#include <IOKit/machine/IOTypes.h>
|
||||||
|
|
||||||
|
#ifndef MACH_KERNEL
|
||||||
|
|
||||||
|
#ifndef __IOKIT_PORTS_DEFINED__
|
||||||
|
#define __IOKIT_PORTS_DEFINED__
|
||||||
|
#ifdef KERNEL
|
||||||
|
typedef struct OSObject * io_object_t;
|
||||||
|
#else /* KERNEL */
|
||||||
|
typedef mach_port_t io_object_t;
|
||||||
|
#endif /* KERNEL */
|
||||||
|
#endif /* __IOKIT_PORTS_DEFINED__ */
|
||||||
|
|
||||||
|
#include <device/device_types.h>
|
||||||
|
|
||||||
|
typedef io_object_t io_connect_t;
|
||||||
|
typedef io_object_t io_enumerator_t;
|
||||||
|
typedef io_object_t io_iterator_t;
|
||||||
|
typedef io_object_t io_registry_entry_t;
|
||||||
|
typedef io_object_t io_service_t;
|
||||||
|
|
||||||
|
#define IO_OBJECT_NULL ((io_object_t) 0)
|
||||||
|
|
||||||
|
#endif /* MACH_KERNEL */
|
||||||
|
|
||||||
|
// IOConnectMapMemory memoryTypes
|
||||||
|
enum {
|
||||||
|
kIODefaultMemoryType = 0
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
kIODefaultCache = 0,
|
||||||
|
kIOInhibitCache = 1,
|
||||||
|
kIOWriteThruCache = 2,
|
||||||
|
kIOCopybackCache = 3,
|
||||||
|
kIOWriteCombineCache = 4
|
||||||
|
};
|
||||||
|
|
||||||
|
// IOMemory mapping options
|
||||||
|
enum {
|
||||||
|
kIOMapAnywhere = 0x00000001,
|
||||||
|
|
||||||
|
kIOMapCacheMask = 0x00000700,
|
||||||
|
kIOMapCacheShift = 8,
|
||||||
|
kIOMapDefaultCache = kIODefaultCache << kIOMapCacheShift,
|
||||||
|
kIOMapInhibitCache = kIOInhibitCache << kIOMapCacheShift,
|
||||||
|
kIOMapWriteThruCache = kIOWriteThruCache << kIOMapCacheShift,
|
||||||
|
kIOMapCopybackCache = kIOCopybackCache << kIOMapCacheShift,
|
||||||
|
kIOMapWriteCombineCache = kIOWriteCombineCache << kIOMapCacheShift,
|
||||||
|
|
||||||
|
kIOMapUserOptionsMask = 0x00000fff,
|
||||||
|
|
||||||
|
kIOMapReadOnly = 0x00001000,
|
||||||
|
|
||||||
|
kIOMapStatic = 0x01000000,
|
||||||
|
kIOMapReference = 0x02000000,
|
||||||
|
kIOMapUnique = 0x04000000
|
||||||
|
#ifdef XNU_KERNEL_PRIVATE
|
||||||
|
, kIOMap64Bit = 0x08000000
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
/*! @enum Scale Factors
|
||||||
|
@discussion Used when a scale_factor parameter is required to define a unit of time.
|
||||||
|
@constant kNanosecondScale Scale factor for nanosecond based times.
|
||||||
|
@constant kMicrosecondScale Scale factor for microsecond based times.
|
||||||
|
@constant kMillisecondScale Scale factor for millisecond based times.
|
||||||
|
@constant kTickScale Scale factor for the standard (100Hz) tick.
|
||||||
|
@constant kSecondScale Scale factor for second based times. */
|
||||||
|
|
||||||
|
enum {
|
||||||
|
kNanosecondScale = 1,
|
||||||
|
kMicrosecondScale = 1000,
|
||||||
|
kMillisecondScale = 1000 * 1000,
|
||||||
|
kSecondScale = 1000 * 1000 * 1000,
|
||||||
|
kTickScale = (kSecondScale / 100)
|
||||||
|
};
|
||||||
|
|
||||||
|
/* compatibility types */
|
||||||
|
|
||||||
|
#ifndef KERNEL
|
||||||
|
|
||||||
|
typedef unsigned int IODeviceNumber;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* ! __IOKIT_IOTYPES_H */
|
|
@ -0,0 +1,616 @@
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* @APPLE_LICENSE_HEADER_START@
|
||||||
|
*
|
||||||
|
* Copyright (c) 1999-2003 Apple Computer, Inc. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* This file contains Original Code and/or Modifications of Original Code
|
||||||
|
* as defined in and that are subject to the Apple Public Source License
|
||||||
|
* Version 2.0 (the 'License'). You may not use this file except in
|
||||||
|
* compliance with the License. Please obtain a copy of the License at
|
||||||
|
* http://www.opensource.apple.com/apsl/ and read it before using this
|
||||||
|
* file.
|
||||||
|
*
|
||||||
|
* The Original Code and all software distributed under the License are
|
||||||
|
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||||
|
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||||
|
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||||
|
* Please see the License for the specific language governing rights and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* @APPLE_LICENSE_HEADER_END@
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _IOKIT_HID_IOHIDEVENTTYPES_H
|
||||||
|
#define _IOKIT_HID_IOHIDEVENTTYPES_H /* { */
|
||||||
|
|
||||||
|
#include <IOKit/IOTypes.h>
|
||||||
|
|
||||||
|
#define IOHIDEventTypeMask(type) (1<<type)
|
||||||
|
#define IOHIDEventFieldBase(type) (type << 16)
|
||||||
|
/*!
|
||||||
|
@typedef IOHIDEventType
|
||||||
|
@abstract The type of event represented by an IOHIDEventRef.
|
||||||
|
@discussion It is possible that a single IOHIDEventRef can conform to
|
||||||
|
multiple event types through the use of sub events. For futher information
|
||||||
|
as to how to determinte the type of event please reference IOHIDEventGetType
|
||||||
|
and IOHIDEventConformsTo.
|
||||||
|
@constant kIOHIDEventTypeNULL
|
||||||
|
@constant kIOHIDEventTypeVendorDefined
|
||||||
|
@constant kIOHIDEventTypeButton
|
||||||
|
@constant kIOHIDEventTypeTranslation
|
||||||
|
@constant kIOHIDEventTypeRotation
|
||||||
|
@constant kIOHIDEventTypeScroll
|
||||||
|
@constant kIOHIDEventTypeScale
|
||||||
|
@constant kIOHIDEventTypeVelocity
|
||||||
|
@constant kIOHIDEventTypeOrientation
|
||||||
|
@constant kIOHIDEventTypeKeyboard
|
||||||
|
@constant kIOHIDEventTypeDigitizer
|
||||||
|
@constant kIOHIDEventTypeAmbientLightSensor
|
||||||
|
@constant kIOHIDEventTypeAccelerometer
|
||||||
|
@constant kIOHIDEventTypeProximity
|
||||||
|
@constant kIOHIDEventTypeTemperature
|
||||||
|
@constant kIOHIDEventTypeMouse
|
||||||
|
@constant kIOHIDEventTypeProgress
|
||||||
|
@constant kIOHIDEventTypeNavigationSwipe
|
||||||
|
@constant kIOHIDEventTypeGyro
|
||||||
|
@constant kIOHIDEventTypeCompass
|
||||||
|
@constant kIOHIDEventTypeZoomToggle
|
||||||
|
@constant kIOHIDEventTypeDockSwipe
|
||||||
|
@constant kIOHIDEventTypePower
|
||||||
|
@constant kIOHIDEventTypeBrightness
|
||||||
|
@constant kIOHIDEventTypeFluidTouchGesture
|
||||||
|
@constant kIOHIDEventTypeBoundaryScroll
|
||||||
|
@constant kIOHIDEventTypeReset
|
||||||
|
|
||||||
|
*/
|
||||||
|
enum {
|
||||||
|
kIOHIDEventTypeNULL, // 0
|
||||||
|
kIOHIDEventTypeVendorDefined,
|
||||||
|
kIOHIDEventTypeButton,
|
||||||
|
kIOHIDEventTypeKeyboard,
|
||||||
|
kIOHIDEventTypeTranslation,
|
||||||
|
kIOHIDEventTypeRotation, // 5
|
||||||
|
kIOHIDEventTypeScroll,
|
||||||
|
kIOHIDEventTypeScale,
|
||||||
|
kIOHIDEventTypeZoom,
|
||||||
|
kIOHIDEventTypeVelocity,
|
||||||
|
kIOHIDEventTypeOrientation, // 10
|
||||||
|
kIOHIDEventTypeDigitizer,
|
||||||
|
kIOHIDEventTypeAmbientLightSensor,
|
||||||
|
kIOHIDEventTypeAccelerometer,
|
||||||
|
kIOHIDEventTypeProximity,
|
||||||
|
kIOHIDEventTypeTemperature, // 15
|
||||||
|
kIOHIDEventTypeNavigationSwipe,
|
||||||
|
kIOHIDEventTypeSwipe = kIOHIDEventTypeNavigationSwipe,
|
||||||
|
kIOHIDEventTypeMouse,
|
||||||
|
kIOHIDEventTypeProgress,
|
||||||
|
kIOHIDEventTypeCount,
|
||||||
|
kIOHIDEventTypeGyro, // 20
|
||||||
|
kIOHIDEventTypeCompass,
|
||||||
|
kIOHIDEventTypeZoomToggle,
|
||||||
|
kIOHIDEventTypeDockSwipe, // just like kIOHIDEventTypeNavigationSwipe, but intended for consumption by Dock
|
||||||
|
kIOHIDEventTypeSymbolicHotKey,
|
||||||
|
kIOHIDEventTypePower, // 25
|
||||||
|
kIOHIDEventTypeBrightness,
|
||||||
|
kIOHIDEventTypeFluidTouchGesture, // This will eventually superseed Navagation and Dock swipes
|
||||||
|
kIOHIDEventTypeBoundaryScroll,
|
||||||
|
kIOHIDEventTypeReset,
|
||||||
|
};
|
||||||
|
typedef uint32_t IOHIDEventType;
|
||||||
|
|
||||||
|
/*
|
||||||
|
@typedef IOHIDEventField
|
||||||
|
@abstract Keys used to set and get individual event fields.
|
||||||
|
*/
|
||||||
|
enum {
|
||||||
|
kIOHIDEventFieldIsRelative = IOHIDEventFieldBase(kIOHIDEventTypeNULL),
|
||||||
|
kIOHIDEventFieldIsCollection
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
kIOHIDEventFieldVendorDefinedUsagePage = IOHIDEventFieldBase(kIOHIDEventTypeVendorDefined),
|
||||||
|
kIOHIDEventFieldVendorDefinedUsage,
|
||||||
|
kIOHIDEventFieldVendorDefinedVersion,
|
||||||
|
kIOHIDEventFieldVendorDefinedDataLength,
|
||||||
|
kIOHIDEventFieldVendorDefinedData
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
kIOHIDEventFieldButtonMask = IOHIDEventFieldBase(kIOHIDEventTypeButton),
|
||||||
|
kIOHIDEventFieldButtonNumber,
|
||||||
|
kIOHIDEventFieldButtonClickCount,
|
||||||
|
kIOHIDEventFieldButtonPressure
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
kIOHIDEventFieldTranslationX = IOHIDEventFieldBase(kIOHIDEventTypeTranslation),
|
||||||
|
kIOHIDEventFieldTranslationY,
|
||||||
|
kIOHIDEventFieldTranslationZ
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
kIOHIDEventFieldRotationX = IOHIDEventFieldBase(kIOHIDEventTypeRotation),
|
||||||
|
kIOHIDEventFieldRotationY,
|
||||||
|
kIOHIDEventFieldRotationZ
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
kIOHIDEventFieldScrollX = IOHIDEventFieldBase(kIOHIDEventTypeScroll),
|
||||||
|
kIOHIDEventFieldScrollY,
|
||||||
|
kIOHIDEventFieldScrollZ,
|
||||||
|
kIOHIDEventFieldScrollIsPixels
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
kIOHIDEventFieldScaleX = IOHIDEventFieldBase(kIOHIDEventTypeScale),
|
||||||
|
kIOHIDEventFieldScaleY,
|
||||||
|
kIOHIDEventFieldScaleZ
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
kIOHIDEventFieldVelocityX = IOHIDEventFieldBase(kIOHIDEventTypeVelocity),
|
||||||
|
kIOHIDEventFieldVelocityY,
|
||||||
|
kIOHIDEventFieldVelocityZ
|
||||||
|
};
|
||||||
|
|
||||||
|
/*!
|
||||||
|
@typedef IOHIDMotionType
|
||||||
|
@abstract Type of Motion event triggered.
|
||||||
|
@discussion
|
||||||
|
@constant kIOHIDMotionStart
|
||||||
|
@constant kIOHIDMotionEnd
|
||||||
|
*/
|
||||||
|
enum {
|
||||||
|
kIOHIDMotionStart = 0,
|
||||||
|
kIOHIDMotionEnd = 1,
|
||||||
|
};
|
||||||
|
typedef uint32_t IOHIDMotionType;
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
@typedef IOHIDAccelerometerType
|
||||||
|
@abstract Type of accelerometer event triggered.
|
||||||
|
@discussion
|
||||||
|
@constant kIOHIDAccelerometerTypeNormal
|
||||||
|
@constant kIOHIDAccelerometerTypeShake
|
||||||
|
*/
|
||||||
|
enum {
|
||||||
|
kIOHIDAccelerometerTypeNormal = 0,
|
||||||
|
kIOHIDAccelerometerTypeShake = 1
|
||||||
|
};
|
||||||
|
typedef uint32_t IOHIDAccelerometerType;
|
||||||
|
typedef IOHIDMotionType IOHIDAccelerometerSubType;
|
||||||
|
|
||||||
|
enum {
|
||||||
|
kIOHIDEventFieldAccelerometerX = IOHIDEventFieldBase(kIOHIDEventTypeAccelerometer),
|
||||||
|
kIOHIDEventFieldAccelerometerY,
|
||||||
|
kIOHIDEventFieldAccelerometerZ,
|
||||||
|
kIOHIDEventFieldAccelerometerType,
|
||||||
|
kIOHIDEventFieldAccelerometerSubType
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
kIOHIDEventFieldMouseX = IOHIDEventFieldBase(kIOHIDEventTypeMouse),
|
||||||
|
kIOHIDEventFieldMouseY,
|
||||||
|
kIOHIDEventFieldMouseZ,
|
||||||
|
kIOHIDEventFieldMouseButtonMask,
|
||||||
|
kIOHIDEventFieldMouseNumber,
|
||||||
|
kIOHIDEventFieldMouseClickCount,
|
||||||
|
kIOHIDEventFieldMousePressure
|
||||||
|
};
|
||||||
|
|
||||||
|
/*!
|
||||||
|
@typedef IOHIDGyroType
|
||||||
|
@abstract Type of Gyro event triggered.
|
||||||
|
@discussion
|
||||||
|
@constant kIOHIDGyroTypeNormal
|
||||||
|
@constant kIOHIDGyroTypeShake
|
||||||
|
*/
|
||||||
|
enum {
|
||||||
|
kIOHIDGyroTypeNormal = 0,
|
||||||
|
kIOHIDGyroTypeShake = 1,
|
||||||
|
kIOHIDGyroTypeMotion = 2
|
||||||
|
};
|
||||||
|
typedef uint32_t IOHIDGyroType;
|
||||||
|
typedef IOHIDMotionType IOHIDGyroSubType ;
|
||||||
|
|
||||||
|
enum {
|
||||||
|
kIOHIDEventFieldGyroX = IOHIDEventFieldBase(kIOHIDEventTypeGyro),
|
||||||
|
kIOHIDEventFieldGyroY,
|
||||||
|
kIOHIDEventFieldGyroZ,
|
||||||
|
kIOHIDEventFieldGyroType,
|
||||||
|
kIOHIDEventFieldGyroSubType,
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef IOHIDMotionType IOHIDCompassType ;
|
||||||
|
|
||||||
|
enum {
|
||||||
|
kIOHIDEventFieldCompassX = IOHIDEventFieldBase(kIOHIDEventTypeCompass),
|
||||||
|
kIOHIDEventFieldCompassY,
|
||||||
|
kIOHIDEventFieldCompassZ,
|
||||||
|
kIOHIDEventFieldCompassType
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
kIOHIDEventFieldAmbientLightSensorLevel = IOHIDEventFieldBase(kIOHIDEventTypeAmbientLightSensor),
|
||||||
|
kIOHIDEventFieldAmbientLightSensorRawChannel0,
|
||||||
|
kIOHIDEventFieldAmbientLightSensorRawChannel1,
|
||||||
|
kIOHIDEventFieldAmbientLightSensorRawChannel2,
|
||||||
|
kIOHIDEventFieldAmbientLightSensorRawChannel3,
|
||||||
|
kIOHIDEventFieldAmbientLightDisplayBrightnessChanged
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
kIOHIDEventFieldTemperatureLevel = IOHIDEventFieldBase(kIOHIDEventTypeTemperature)
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
kIOHIDEventFieldProximityDetectionMask = IOHIDEventFieldBase(kIOHIDEventTypeProximity),
|
||||||
|
kIOHIDEventFieldProximityLevel
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
enum {
|
||||||
|
kIOHIDEventFieldOrientationRadius = IOHIDEventFieldBase(kIOHIDEventTypeOrientation),
|
||||||
|
kIOHIDEventFieldOrientationAzimuth,
|
||||||
|
kIOHIDEventFieldOrientationAltitude
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
kIOHIDEventFieldKeyboardUsagePage = IOHIDEventFieldBase(kIOHIDEventTypeKeyboard),
|
||||||
|
kIOHIDEventFieldKeyboardUsage,
|
||||||
|
kIOHIDEventFieldKeyboardDown,
|
||||||
|
kIOHIDEventFieldKeyboardRepeat
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
kIOHIDEventFieldDigitizerX = IOHIDEventFieldBase(kIOHIDEventTypeDigitizer),
|
||||||
|
kIOHIDEventFieldDigitizerY,
|
||||||
|
kIOHIDEventFieldDigitizerZ,
|
||||||
|
kIOHIDEventFieldDigitizerButtonMask,
|
||||||
|
kIOHIDEventFieldDigitizerType,
|
||||||
|
kIOHIDEventFieldDigitizerIndex,
|
||||||
|
kIOHIDEventFieldDigitizerIdentity,
|
||||||
|
kIOHIDEventFieldDigitizerEventMask,
|
||||||
|
kIOHIDEventFieldDigitizerRange,
|
||||||
|
kIOHIDEventFieldDigitizerTouch,
|
||||||
|
kIOHIDEventFieldDigitizerPressure,
|
||||||
|
kIOHIDEventFieldDigitizerBarrelPressure,
|
||||||
|
kIOHIDEventFieldDigitizerTwist,
|
||||||
|
kIOHIDEventFieldDigitizerTiltX,
|
||||||
|
kIOHIDEventFieldDigitizerTiltY,
|
||||||
|
kIOHIDEventFieldDigitizerAltitude,
|
||||||
|
kIOHIDEventFieldDigitizerAzimuth,
|
||||||
|
kIOHIDEventFieldDigitizerQuality,
|
||||||
|
kIOHIDEventFieldDigitizerDensity,
|
||||||
|
kIOHIDEventFieldDigitizerIrregularity,
|
||||||
|
kIOHIDEventFieldDigitizerMajorRadius,
|
||||||
|
kIOHIDEventFieldDigitizerMinorRadius,
|
||||||
|
kIOHIDEventFieldDigitizerCollection,
|
||||||
|
kIOHIDEventFieldDigitizerCollectionChord,
|
||||||
|
kIOHIDEventFieldDigitizerChildEventMask
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
kIOHIDEventFieldSwipeMask = IOHIDEventFieldBase(kIOHIDEventTypeSwipe),
|
||||||
|
kIOHIDEventFieldSwipeMotion,
|
||||||
|
kIOHIDEventFieldSwipeProgress,
|
||||||
|
kIOHIDEventFieldSwipePositionX,
|
||||||
|
kIOHIDEventFieldSwipePositionY,
|
||||||
|
kIOHIDEventFieldSwipeFlavor,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
kIOHIDEventFieldNavigationSwipeMask = IOHIDEventFieldBase(kIOHIDEventTypeNavigationSwipe),
|
||||||
|
kIOHIDEventFieldNavigationSwipeMotion,
|
||||||
|
kIOHIDEventFieldNavigationSwipeProgress,
|
||||||
|
kIOHIDEventFieldNavigationSwipePositionX,
|
||||||
|
kIOHIDEventFieldNavigationSwipePositionY,
|
||||||
|
kIOHIDEventFieldNavagationSwipeFlavor,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
kIOHIDEventFieldDockSwipeMask = IOHIDEventFieldBase(kIOHIDEventTypeDockSwipe),
|
||||||
|
kIOHIDEventFieldDockSwipeMotion,
|
||||||
|
kIOHIDEventFieldDockSwipeProgress,
|
||||||
|
kIOHIDEventFieldDockSwipePositionX,
|
||||||
|
kIOHIDEventFieldDockSwipePositionY,
|
||||||
|
kIOHIDEventFieldDockSwipeFlavor,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
kIOHIDEventFieldFluidTouchGestureMask = IOHIDEventFieldBase(kIOHIDEventTypeFluidTouchGesture),
|
||||||
|
kIOHIDEventFieldFluidTouchGestureMotion,
|
||||||
|
kIOHIDEventFieldFluidTouchGestureProgress,
|
||||||
|
kIOHIDEventFieldFluidTouchGesturePositionX,
|
||||||
|
kIOHIDEventFieldFluidTouchGesturePositionY,
|
||||||
|
kIOHIDEventFieldFluidTouchGestureFlavor,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
kIOHIDEventFieldBoundaryScrollMask = IOHIDEventFieldBase(kIOHIDEventTypeBoundaryScroll),
|
||||||
|
kIOHIDEventFieldBoundaryScrollMotion,
|
||||||
|
kIOHIDEventFieldBoundaryScrollProgress,
|
||||||
|
kIOHIDEventFieldBoundaryScrollPositionX,
|
||||||
|
kIOHIDEventFieldBoundaryScrollPositionY,
|
||||||
|
kIOHIDEventFieldBoundaryScrollFlavor,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
kIOHIDEventFieldProgressEventType = IOHIDEventFieldBase(kIOHIDEventTypeProgress),
|
||||||
|
kIOHIDEventFieldProgressLevel,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
kIOHIDEventFieldSymbolicHotKeyValue = IOHIDEventFieldBase(kIOHIDEventTypeSymbolicHotKey),
|
||||||
|
kIOHIDEventFieldSymbolicHotKeyIsCGSEvent,
|
||||||
|
};
|
||||||
|
|
||||||
|
/*!
|
||||||
|
@typedef IOHIDPowerType
|
||||||
|
@abstract Type of Power event triggered.
|
||||||
|
@discussion
|
||||||
|
@constant kIOHIDPowerTypePower
|
||||||
|
@constant kIOHIDPowerTypeCurrent
|
||||||
|
@constant kIOHIDPowerTypeVoltage
|
||||||
|
*/
|
||||||
|
enum {
|
||||||
|
kIOHIDPowerTypePower = 0,
|
||||||
|
kIOHIDPowerTypeCurrent = 1,
|
||||||
|
kIOHIDPowerTypeVoltage = 2
|
||||||
|
};
|
||||||
|
typedef uint32_t IOHIDPowerType;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
@typedef IOHIDPowerSubType
|
||||||
|
@abstract Reserved
|
||||||
|
@discussion
|
||||||
|
@constant kIOHIDPowerSubTypeNormal
|
||||||
|
*/
|
||||||
|
enum {
|
||||||
|
kIOHIDPowerSubTypeNormal = 0
|
||||||
|
};
|
||||||
|
typedef uint32_t IOHIDPowerSubType;
|
||||||
|
|
||||||
|
enum {
|
||||||
|
kIOHIDEventFieldPowerMeasurement = IOHIDEventFieldBase(kIOHIDEventTypePower),
|
||||||
|
kIOHIDEventFieldPowerType,
|
||||||
|
kIOHIDEventFieldPowerSubType,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
kIOHIDEventFieldBrightnessLevel = IOHIDEventFieldBase(kIOHIDEventTypeBrightness),
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef uint32_t IOHIDEventField;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
@typedef IOHIDSwipeMask
|
||||||
|
@abstract Mask detailing the type of swipe detected.
|
||||||
|
@discussion
|
||||||
|
@constant kIOHIDSwipeUp
|
||||||
|
@constant kIOHIDSwipeDown
|
||||||
|
@constant kIOHIDSwipeLeft
|
||||||
|
@constant kIOHIDSwipeRight
|
||||||
|
*/
|
||||||
|
enum {
|
||||||
|
kIOHIDSwipeNone = 0x00000000,
|
||||||
|
kIOHIDSwipeUp = 0x00000001,
|
||||||
|
kIOHIDSwipeDown = 0x00000002,
|
||||||
|
kIOHIDSwipeLeft = 0x00000004,
|
||||||
|
kIOHIDSwipeRight = 0x00000008,
|
||||||
|
kIOHIDScaleExpand = 0x00000010,
|
||||||
|
kIOHIDScaleContract = 0x00000020,
|
||||||
|
kIOHIDRotateCW = 0x00000040,
|
||||||
|
kIOHIDRotateCCW = 0x00000080,
|
||||||
|
};
|
||||||
|
typedef uint32_t IOHIDSwipeMask;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
@typedef IOHIDGestureMotion
|
||||||
|
@abstract
|
||||||
|
@constant kIOHIDGestureMotionNone
|
||||||
|
@constant kIOHIDGestureMotionHorizontalX
|
||||||
|
@constant kIOHIDGestureMotionVerticalY
|
||||||
|
@constant kIOHIDGestureMotionScale
|
||||||
|
@constant kIOHIDGestureMotionRotate
|
||||||
|
@constant kIOHIDGestureMotionTap
|
||||||
|
@constant kIOHIDGestureMotionDoubleTap
|
||||||
|
@constant kIOHIDGestureMotionFromLeftEdge
|
||||||
|
@constant kIOHIDGestureMotionOffLeftEdge
|
||||||
|
@constant kIOHIDGestureMotionFromRightEdge
|
||||||
|
@constant kIOHIDGestureMotionOffRightEdge
|
||||||
|
@constant kIOHIDGestureMotionFromTopEdge
|
||||||
|
@constant kIOHIDGestureMotionOffTopEdge
|
||||||
|
@constant kIOHIDGestureMotionFromBottomEdge
|
||||||
|
@constant kIOHIDGestureMotionOffBottomEdge
|
||||||
|
*/
|
||||||
|
enum {
|
||||||
|
kIOHIDGestureMotionNone,
|
||||||
|
kIOHIDGestureMotionHorizontalX,
|
||||||
|
kIOHIDGestureMotionVerticalY,
|
||||||
|
kIOHIDGestureMotionScale,
|
||||||
|
kIOHIDGestureMotionRotate,
|
||||||
|
kIOHIDGestureMotionTap,
|
||||||
|
kIOHIDGestureMotionDoubleTap,
|
||||||
|
kIOHIDGestureMotionFromLeftEdge,
|
||||||
|
kIOHIDGestureMotionOffLeftEdge,
|
||||||
|
kIOHIDGestureMotionFromRightEdge,
|
||||||
|
kIOHIDGestureMotionOffRightEdge,
|
||||||
|
kIOHIDGestureMotionFromTopEdge,
|
||||||
|
kIOHIDGestureMotionOffTopEdge,
|
||||||
|
kIOHIDGestureMotionFromBottomEdge,
|
||||||
|
kIOHIDGestureMotionOffBottomEdge,
|
||||||
|
};
|
||||||
|
typedef uint16_t IOHIDGestureMotion;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
@typedef IOHIDGestureFlavor
|
||||||
|
@abstract
|
||||||
|
@constant kIOHIDGestureFlavorNone
|
||||||
|
@constant kIOHIDGestureFlavorNotificationCenterPrimary
|
||||||
|
@constant kIOHIDGestureFlavorNotificationCenterSecondary
|
||||||
|
@constant kIOHIDGestureFlavorDockPrimary
|
||||||
|
@constant kIOHIDGestureFlavorDockSecondary
|
||||||
|
@constant kIOHIDGestureFlavorNavagationPrimary
|
||||||
|
@constant kIOHIDGestureFlavorNavagationSecondary
|
||||||
|
*/
|
||||||
|
enum {
|
||||||
|
kIOHIDGestureFlavorNone,
|
||||||
|
kIOHIDGestureFlavorNotificationCenterPrimary,
|
||||||
|
kIOHIDGestureFlavorNotificationCenterSecondary,
|
||||||
|
kIOHIDGestureFlavorDockPrimary,
|
||||||
|
kIOHIDGestureFlavorDockSecondary,
|
||||||
|
kIOHIDGestureFlavorNavagationPrimary,
|
||||||
|
kIOHIDGestureFlavorNavagationSecondary,
|
||||||
|
};
|
||||||
|
typedef uint16_t IOHIDGestureFlavor;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
@typedef IOHIDProximityDetectionMask
|
||||||
|
@abstract Proximity mask detailing the inputs that were detected.
|
||||||
|
@discussion
|
||||||
|
@constant kIOHIDProximityDetectionLargeBodyContact
|
||||||
|
@constant kIOHIDProximityDetectionLargeBodyFarField
|
||||||
|
@constant kIOHIDProximityDetectionIrregularObjects
|
||||||
|
@constant kIOHIDProximityDetectionEdgeStraddling
|
||||||
|
@constant kIOHIDProximityDetectionFlatFingerClasp
|
||||||
|
@constant kIOHIDProximityDetectionFingerTouch
|
||||||
|
@constant kIOHIDProximityDetectionReceiver
|
||||||
|
@constant kIOHIDProximityDetectionSmallObjectsHovering
|
||||||
|
@constant kIOHIDProximityDetectionReceiverCrude
|
||||||
|
@constant kIOHIDProximityDetectionReceiverMonitoring
|
||||||
|
*/
|
||||||
|
enum {
|
||||||
|
kIOHIDProximityDetectionLargeBodyContact = 0x0001,
|
||||||
|
kIOHIDProximityDetectionLargeBodyFarField = 0x0002,
|
||||||
|
kIOHIDProximityDetectionIrregularObjects = 0x0004,
|
||||||
|
kIOHIDProximityDetectionEdgeStraddling = 0x0008,
|
||||||
|
kIOHIDProximityDetectionFlatFingerClasp = 0x0010,
|
||||||
|
kIOHIDProximityDetectionFingerTouch = 0x0020,
|
||||||
|
kIOHIDProximityDetectionReceiver = 0x0040,
|
||||||
|
kIOHIDProximityDetectionSmallObjectsHovering = 0x0080,
|
||||||
|
kIOHIDProximityDetectionReceiverCrude = 0x0100,
|
||||||
|
kIOHIDProximityDetectionReceiverMonitoring = 0x0200
|
||||||
|
};
|
||||||
|
typedef uint32_t IOHIDProximityDetectionMask;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
@typedef IOHIDDigitizerType
|
||||||
|
@abstract The type of digitizer path initiating an event.
|
||||||
|
@discussion The IOHIDDigitizerType usually corresponds to the Logical Collection usage defined in Digitizer Usage Page (0x0d) of the USB HID Usage Tables.
|
||||||
|
@constant kIOHIDDigitizerTypeStylus
|
||||||
|
@constant kIOHIDDigitizerTypePuck
|
||||||
|
@constant kIOHIDDigitizerTypeFinger
|
||||||
|
*/
|
||||||
|
enum {
|
||||||
|
kIOHIDDigitizerTransducerTypeStylus = 0x20,
|
||||||
|
kIOHIDDigitizerTransducerTypePuck,
|
||||||
|
kIOHIDDigitizerTransducerTypeFinger,
|
||||||
|
kIOHIDDigitizerTransducerTypeHand
|
||||||
|
};
|
||||||
|
typedef uint32_t IOHIDDigitizerTransducerType;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
@typedef IOHIDDigitizerEventMask
|
||||||
|
@abstract Event mask detailing the events being dispatched by a digitizer.
|
||||||
|
@discussion It is possible for digitizer events to contain child digitizer events, effectively, behaving as collections.
|
||||||
|
In the collection case, the child event mask field referrence by kIOHIDEventFieldDigitizerChildEventMask will detail the
|
||||||
|
cumulative event state of the child digitizer events.
|
||||||
|
<br>
|
||||||
|
<b>Please Note:</b>
|
||||||
|
If you append a child digitizer event to a parent digitizer event, appropriate state will be transfered on to the parent.
|
||||||
|
@constant kIOHIDDigitizerEventRange Issued when the range state has changed.
|
||||||
|
@constant kIOHIDDigitizerEventTouch Issued when the touch state has changed.
|
||||||
|
@constant kIOHIDDigitizerEventPosition Issued when the position has changed.
|
||||||
|
@constant kIOHIDDigitizerEventStop Issued when motion has achieved a state of calculated non-movement.
|
||||||
|
@constant kIOHIDDigitizerEventPeak Issues when new maximum values have been detected.
|
||||||
|
@constant kIOHIDDigitizerEventIdentity Issued when the identity has changed.
|
||||||
|
@constant kIOHIDDigitizerEventAttribute Issued when an attribute has changed.
|
||||||
|
@constant kIOHIDDigitizerEventUpSwipe Issued when an up swipe has been detected.
|
||||||
|
@constant kIOHIDDigitizerEventDownSwipe Issued when an down swipe has been detected.
|
||||||
|
@constant kIOHIDDigitizerEventLeftSwipe Issued when an left swipe has been detected.
|
||||||
|
@constant kIOHIDDigitizerEventRightSwipe Issued when an right swipe has been detected.
|
||||||
|
@constant kIOHIDDigitizerEventSwipeMask Mask used to gather swipe events.
|
||||||
|
*/
|
||||||
|
enum {
|
||||||
|
kIOHIDDigitizerEventRange = 0x00000001,
|
||||||
|
kIOHIDDigitizerEventTouch = 0x00000002,
|
||||||
|
kIOHIDDigitizerEventPosition = 0x00000004,
|
||||||
|
kIOHIDDigitizerEventStop = 0x00000008,
|
||||||
|
kIOHIDDigitizerEventPeak = 0x00000010,
|
||||||
|
kIOHIDDigitizerEventIdentity = 0x00000020,
|
||||||
|
kIOHIDDigitizerEventAttribute = 0x00000040,
|
||||||
|
kIOHIDDigitizerEventCancel = 0x00000080,
|
||||||
|
kIOHIDDigitizerEventStart = 0x00000100,
|
||||||
|
kIOHIDDigitizerEventResting = 0x00000200,
|
||||||
|
kIOHIDDigitizerEventSwipeUp = 0x01000000,
|
||||||
|
kIOHIDDigitizerEventSwipeDown = 0x02000000,
|
||||||
|
kIOHIDDigitizerEventSwipeLeft = 0x04000000,
|
||||||
|
kIOHIDDigitizerEventSwipeRight = 0x08000000,
|
||||||
|
kIOHIDDigitizerEventSwipeMask = 0xFF000000,
|
||||||
|
};
|
||||||
|
typedef uint32_t IOHIDDigitizerEventMask;
|
||||||
|
|
||||||
|
enum {
|
||||||
|
kIOHIDEventOptionNone = 0x00000000,
|
||||||
|
kIOHIDEventOptionIsAbsolute = 0x00000001,
|
||||||
|
kIOHIDEventOptionIsCollection = 0x00000002,
|
||||||
|
kIOHIDEventOptionPixelUnits = 0x00000004
|
||||||
|
};
|
||||||
|
typedef uint32_t IOHIDEventOptionBits;
|
||||||
|
|
||||||
|
enum {
|
||||||
|
kIOHIDEventPhaseUndefined = 0x00,
|
||||||
|
kIOHIDEventPhaseBegan = 0x01,
|
||||||
|
kIOHIDEventPhaseChanged = 0x02,
|
||||||
|
kIOHIDEventPhaseEnded = 0x04,
|
||||||
|
kIOHIDEventPhaseCancelled = 0x08,
|
||||||
|
kIOHIDEventPhaseMayBegin = 0x80,
|
||||||
|
kIOHIDEventEventPhaseMask = 0xFF,
|
||||||
|
kIOHIDEventEventOptionPhaseShift = 24,
|
||||||
|
};
|
||||||
|
typedef uint16_t IOHIDEventPhaseBits;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
@typedef IOHIDSymbolicHotKey
|
||||||
|
@abstract Enumerted values for sending symbolic hot key events.
|
||||||
|
@constant kIOHIDSymbolicHotKeyDictionaryApp This will get translated into a kCGSDictionaryAppHotKey by CG.
|
||||||
|
@constant kIOHIDSymbolicHotKeyOptionIsCGSHotKey
|
||||||
|
This is an option flag to denote that the SymbolicHotKey value is
|
||||||
|
actually from the enumeration in CGSHotKeys.h.
|
||||||
|
*/
|
||||||
|
enum {
|
||||||
|
kIOHIDSymbolicHotKeyUndefined,
|
||||||
|
kIOHIDSymbolicHotKeyDictionaryApp,
|
||||||
|
};
|
||||||
|
typedef uint32_t IOHIDSymbolicHotKeyValue;
|
||||||
|
|
||||||
|
|
||||||
|
enum {
|
||||||
|
kIOHIDEventSenderIDUndefined = 0x0000000000000000LL,
|
||||||
|
};
|
||||||
|
typedef uint64_t IOHIDEventSenderID; // must be the same size as that returned from IORegistryEntry::getRegistryEntryID
|
||||||
|
|
||||||
|
#ifndef KERNEL
|
||||||
|
/*!
|
||||||
|
@typedef IOHIDFloat
|
||||||
|
*/
|
||||||
|
#ifdef __LP64__
|
||||||
|
typedef double IOHIDFloat;
|
||||||
|
#else
|
||||||
|
typedef float IOHIDFloat;
|
||||||
|
#endif
|
||||||
|
/*!
|
||||||
|
@typedef IOHID3DPoint
|
||||||
|
*/
|
||||||
|
typedef struct _IOHID3DPoint {
|
||||||
|
IOHIDFloat x;
|
||||||
|
IOHIDFloat y;
|
||||||
|
IOHIDFloat z;
|
||||||
|
} IOHID3DPoint;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* _IOKIT_HID_IOHIDEVENTTYPES_H } */
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue