annotate src/joystick/darwin/10.3.9-FIX/IOHIDLib.h @ 3325:bb9c3d04f126

Ok, added long casts to get rid of compiler warnings.
author Bob Pendleton <bob@pendleton.com>
date Mon, 28 Sep 2009 18:44:26 +0000
parents 2c835d58faad
children
rev   line source
2120
2c835d58faad make indent
Sam Lantinga <slouken@libsdl.org>
parents: 2110
diff changeset
1 /* *INDENT-OFF* */
2110
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
2 /*
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
3 *
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
4 * @APPLE_LICENSE_HEADER_START@
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
5 *
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
6 * Copyright (c) 1999-2003 Apple Computer, Inc. All Rights Reserved.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
7 *
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
8 * This file contains Original Code and/or Modifications of Original Code
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
9 * as defined in and that are subject to the Apple Public Source License
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
10 * Version 2.0 (the 'License'). You may not use this file except in
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
11 * compliance with the License. Please obtain a copy of the License at
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
12 * http://www.opensource.apple.com/apsl/ and read it before using this
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
13 * file.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
14 *
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
15 * The Original Code and all software distributed under the License are
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
16 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
17 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
18 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
19 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
20 * Please see the License for the specific language governing rights and
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
21 * limitations under the License.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
22 *
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
23 * @APPLE_LICENSE_HEADER_END@
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
24 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
25
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
26 #ifndef _IOKIT_HID_IOHIDLIB_H_
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
27 #define _IOKIT_HID_IOHIDLIB_H_
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
28
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
29 #include <sys/cdefs.h>
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
30
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
31 __BEGIN_DECLS
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
32 #include <CoreFoundation/CoreFoundation.h>
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
33 #if COREFOUNDATION_CFPLUGINCOM_SEPARATE
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
34 #include <CoreFoundation/CFPlugInCOM.h>
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
35 #endif
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
36
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
37 #include <IOKit/IOTypes.h>
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
38 #include <IOKit/IOReturn.h>
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
39
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
40 #include <IOKit/hid/IOHIDKeys.h>
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
41
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
42 struct IOHIDEventStruct
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
43 {
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
44 IOHIDElementType type;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
45 IOHIDElementCookie elementCookie;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
46 SInt32 value;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
47 AbsoluteTime timestamp;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
48 UInt32 longValueSize;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
49 void * longValue;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
50 };
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
51 typedef struct IOHIDEventStruct IOHIDEventStruct;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
52
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
53 /* FA12FA38-6F1A-11D4-BA0C-0005028F18D5 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
54 #define kIOHIDDeviceUserClientTypeID CFUUIDGetConstantUUIDWithBytes(NULL, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
55 0xFA, 0x12, 0xFA, 0x38, 0x6F, 0x1A, 0x11, 0xD4, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
56 0xBA, 0x0C, 0x00, 0x05, 0x02, 0x8F, 0x18, 0xD5)
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
57
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
58 /* 13AA9C44-6F1B-11D4-907C-0005028F18D5 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
59 #define kIOHIDDeviceFactoryID CFUUIDGetConstantUUIDWithBytes(NULL, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
60 0x13, 0xAA, 0x9C, 0x44, 0x6F, 0x1B, 0x11, 0xD4, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
61 0x90, 0x7C, 0x00, 0x05, 0x02, 0x8F, 0x18, 0xD5)
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
62
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
63 /* 78BD420C-6F14-11D4-9474-0005028F18D5 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
64 /*! @defined kIOHIDDeviceInterfaceID
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
65 @discussion Interface ID for the IOHIDDeviceInterface. Corresponds to an
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
66 available HID device. */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
67 #define kIOHIDDeviceInterfaceID CFUUIDGetConstantUUIDWithBytes(NULL, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
68 0x78, 0xBD, 0x42, 0x0C, 0x6F, 0x14, 0x11, 0xD4, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
69 0x94, 0x74, 0x00, 0x05, 0x02, 0x8F, 0x18, 0xD5)
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
70
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
71 /* 7D0B510E-16D5-11D7-9E9B-000393992E38 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
72 /*! @defined kIOHIDDeviceInterfaceID121
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
73 @discussion Interface ID for the IOHIDDeviceInterface121. Corresponds to
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
74 an available HID device that includes methods from
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
75 IOHIDDeviceInterface. This interface is available on
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
76 IOHIDLib 1.2.1 and Mac OS X 10.2.3 or later.*/
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
77 #define kIOHIDDeviceInterfaceID121 CFUUIDGetConstantUUIDWithBytes(NULL, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
78 0x7d, 0xb, 0x51, 0xe, 0x16, 0xd5, 0x11, 0xd7, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
79 0x9e, 0x9b, 0x0, 0x3, 0x93, 0x99, 0x2e, 0x38)
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
80
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
81 /* B70ABF31-16D5-11D7-AB35-000393992E38 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
82 /*! @defined kIOHIDDeviceInterfaceID122
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
83 @discussion Interface ID for the IOHIDDeviceInterface122. Corresponds to
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
84 an available HID device that includes methods from
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
85 IOHIDDeviceInterface and IOHIDDeviceInterface121. This
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
86 interface is available on IOHIDLib 1.2.2 and Mac OS X 10.3
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
87 or later.*/
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
88 #define kIOHIDDeviceInterfaceID122 CFUUIDGetConstantUUIDWithBytes(NULL, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
89 0xb7, 0xa, 0xbf, 0x31, 0x16, 0xd5, 0x11, 0xd7, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
90 0xab, 0x35, 0x0, 0x3, 0x93, 0x99, 0x2e, 0x38)
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
91
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
92 /* 8138629E-6F14-11D4-970E-0005028F18D5 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
93 /*! @defined kIOHIDQueueInterfaceID
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
94 @discussion Interface ID for the kIOHIDQueueInterfaceID. Corresponds to a
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
95 queue for a specific HID device. */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
96 #define kIOHIDQueueInterfaceID CFUUIDGetConstantUUIDWithBytes(NULL, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
97 0x81, 0x38, 0x62, 0x9E, 0x6F, 0x14, 0x11, 0xD4, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
98 0x97, 0x0E, 0x00, 0x05, 0x02, 0x8F, 0x18, 0xD5)
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
99
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
100 /* 80CDCC00-755D-11D4-8E0F-0005028F18D5 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
101 /*! @defined kIOHIDOutputTransactionInterfaceID
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
102 @discussion Interface ID for the kIOHIDOutputTransactionInterfaceID.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
103 Corresponds to an output transaction for one or more report IDs
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
104 on a specific device. */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
105 #define kIOHIDOutputTransactionInterfaceID CFUUIDGetConstantUUIDWithBytes(NULL,\
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
106 0x80, 0xCD, 0xCC, 0x00, 0x75, 0x5D, 0x11, 0xD4, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
107 0x80, 0xEF, 0x00, 0x05, 0x02, 0x8F, 0x18, 0xD5)
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
108
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
109 /*! @typedef IOHIDCallbackFunction
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
110 @discussion Type and arguments of callout C function that is used when a
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
111 completion routine is called, see
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
112 IOHIDLib.h:setRemovalCallback().
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
113 @param target void * pointer to your data, often a pointer to an object.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
114 @param result Completion result of desired operation.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
115 @param refcon void * pointer to more data.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
116 @param sender Interface instance sending the completion routine.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
117 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
118 typedef void (*IOHIDCallbackFunction)
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
119 (void * target, IOReturn result, void * refcon, void * sender);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
120
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
121 /*! @typedef IOHIDElementCallbackFunction
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
122 @discussion Type and arguments of callout C function that is used when a
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
123 completion routine is called, see IOHIDLib.h:setElementValue().
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
124 @param target void * pointer to your data, often a pointer to an object.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
125 @param result Completion result of desired operation.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
126 @param refcon void * pointer to more data.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
127 @param sender Interface instance sending the completion routine.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
128 @param elementCookie Element within interface instance sending completion.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
129 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
130 typedef void (*IOHIDElementCallbackFunction)
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
131 (void * target,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
132 IOReturn result,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
133 void * refcon,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
134 void * sender,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
135 IOHIDElementCookie elementCookie);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
136
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
137 /*! @typedef IOHIDReportCallbackFunction
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
138 @discussion Type and arguments of callout C function that is used when a
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
139 completion routine is called, see IOHIDLib.h:setReport().
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
140 @param target void * pointer to your data, often a pointer to an object.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
141 @param result Completion result of desired operation.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
142 @param refcon void * pointer to more data.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
143 @param sender Interface instance sending the completion routine.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
144 @param bufferSize Size of the buffer received upon completion.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
145 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
146 typedef void (*IOHIDReportCallbackFunction)
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
147 (void * target,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
148 IOReturn result,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
149 void * refcon,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
150 void * sender,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
151 UInt32 bufferSize);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
152
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
153
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
154 /* Forward declarations of the queue and output transaction interfaces */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
155 struct IOHIDQueueInterface;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
156 struct IOHIDOutputTransactionInterface;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
157 typedef struct IOHIDQueueInterface IOHIDQueueInterface;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
158 typedef struct IOHIDOutputTransactionInterface IOHIDOutputTransactionInterface;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
159
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
160 //
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
161 // IOHIDDeviceInterface Functions available in version 1.0 (10.0) and higher of Mac OS X
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
162 //
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
163 #define IOHIDDEVICEINTERFACE_FUNCS_100 \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
164 IOReturn (*createAsyncEventSource)(void * self, CFRunLoopSourceRef * source); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
165 CFRunLoopSourceRef (*getAsyncEventSource)(void * self); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
166 IOReturn (*createAsyncPort)(void * self, mach_port_t * port); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
167 mach_port_t (*getAsyncPort)(void * self); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
168 IOReturn (*open)(void * self, UInt32 flags); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
169 IOReturn (*close)(void * self); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
170 IOReturn (*setRemovalCallback)(void * self, IOHIDCallbackFunction removalCallback, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
171 void * removalTarget, void * removalRefcon); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
172 IOReturn (*getElementValue)(void * self, IOHIDElementCookie elementCookie, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
173 IOHIDEventStruct * valueEvent); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
174 IOReturn (*setElementValue)(void * self, IOHIDElementCookie elementCookie, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
175 IOHIDEventStruct * valueEvent, UInt32 timeoutMS, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
176 IOHIDElementCallbackFunction callback, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
177 void * callbackTarget, void * callbackRefcon); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
178 IOReturn (*queryElementValue)(void * self, IOHIDElementCookie elementCookie, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
179 IOHIDEventStruct * valueEvent, UInt32 timeoutMS, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
180 IOHIDElementCallbackFunction callback, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
181 void * callbackTarget, void * callbackRefcon); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
182 IOReturn (*startAllQueues)(void * self); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
183 IOReturn (*stopAllQueues)(void * self); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
184 IOHIDQueueInterface ** (*allocQueue) (void *self); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
185 IOHIDOutputTransactionInterface ** (*allocOutputTransaction) (void *self)
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
186
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
187 //
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
188 // IOHIDDeviceInterface Functions available in version 1.2.1 (10.2.3) and higher of Mac OS X
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
189 //
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
190 #define IOHIDDEVICEINTERFACE_FUNCS_121 \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
191 IOReturn (*setReport)(void * self, IOHIDReportType reportType, UInt32 reportID, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
192 void * reportBuffer, UInt32 reportBufferSize, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
193 UInt32 timeoutMS, IOHIDReportCallbackFunction callback, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
194 void * callbackTarget, void * callbackRefcon); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
195 IOReturn (*getReport)(void * self, IOHIDReportType reportType, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
196 UInt32 reportID, void * reportBuffer, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
197 UInt32 * reportBufferSize, UInt32 timeoutMS, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
198 IOHIDReportCallbackFunction callback, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
199 void * callbackTarget, void * callbackRefcon)
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
200
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
201 //
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
202 // IOHIDDeviceInterface Functions available in version 1.2.2 (10.3) and higher of Mac OS X
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
203 //
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
204 #define IOHIDDEVICEINTERFACE_FUNCS_122 \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
205 IOReturn (*copyMatchingElements)(void * self, CFDictionaryRef matchingDict, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
206 CFArrayRef * elements); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
207 IOReturn (*setInterruptReportHandlerCallback)(void * self, void * reportBuffer, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
208 UInt32 reportBufferSize, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
209 IOHIDReportCallbackFunction callback, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
210 void * callbackTarget, void * callbackRefcon)
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
211
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
212 typedef struct IOHIDDeviceInterface
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
213 {
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
214 IUNKNOWN_C_GUTS;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
215 IOHIDDEVICEINTERFACE_FUNCS_100;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
216 IOHIDDEVICEINTERFACE_FUNCS_121;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
217 } IOHIDDeviceInterface;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
218
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
219 typedef struct IOHIDDeviceInterface121
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
220 {
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
221 IUNKNOWN_C_GUTS;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
222 IOHIDDEVICEINTERFACE_FUNCS_100;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
223 IOHIDDEVICEINTERFACE_FUNCS_121;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
224 } IOHIDDeviceInterface121;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
225
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
226 typedef struct IOHIDDeviceInterface122
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
227 {
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
228 IUNKNOWN_C_GUTS;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
229 IOHIDDEVICEINTERFACE_FUNCS_100;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
230 IOHIDDEVICEINTERFACE_FUNCS_121;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
231 IOHIDDEVICEINTERFACE_FUNCS_122;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
232 } IOHIDDeviceInterface122;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
233
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
234
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
235 //
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
236 // IOHIDQueueInterface Functions available in version 1.0 (10.0) and higher of Mac OS X
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
237 //
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
238 #define IOHIDQUEUEINTERFACE_FUNCS_100 \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
239 IOReturn (*createAsyncEventSource)(void * self, CFRunLoopSourceRef * source); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
240 CFRunLoopSourceRef (*getAsyncEventSource)(void * self); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
241 IOReturn (*createAsyncPort)(void * self, mach_port_t * port); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
242 mach_port_t (*getAsyncPort)(void * self); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
243 IOReturn (*create)(void * self, UInt32 flags, UInt32 depth); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
244 IOReturn (*dispose)(void * self); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
245 IOReturn (*addElement)(void * self, IOHIDElementCookie elementCookie, UInt32 flags);\
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
246 IOReturn (*removeElement)(void * self, IOHIDElementCookie elementCookie); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
247 Boolean (*hasElement)(void * self, IOHIDElementCookie elementCookie); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
248 IOReturn (*start)(void * self); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
249 IOReturn (*stop)(void * self); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
250 IOReturn (*getNextEvent)(void * self, IOHIDEventStruct * event, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
251 AbsoluteTime maxTime, UInt32 timeoutMS); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
252 IOReturn (*setEventCallout)(void * self, IOHIDCallbackFunction callback, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
253 void * callbackTarget, void * callbackRefcon); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
254 IOReturn (*getEventCallout)(void * self, IOHIDCallbackFunction * outCallback, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
255 void ** outCallbackTarget, void ** outCallbackRefcon)
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
256
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
257 struct IOHIDQueueInterface
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
258 {
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
259 IUNKNOWN_C_GUTS;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
260 IOHIDQUEUEINTERFACE_FUNCS_100;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
261 };
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
262
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
263 //
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
264 // IOHIDOutputTransactionInterface Functions available in version 1.2 (10.2) and higher of Mac OS X
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
265 //
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
266 #define IOHIDOUTPUTTRANSACTIONINTERFACE_FUNCS_120 \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
267 IOReturn (*createAsyncEventSource)(void * self, CFRunLoopSourceRef * source); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
268 CFRunLoopSourceRef (*getAsyncEventSource)(void * self); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
269 IOReturn (*createAsyncPort)(void * self, mach_port_t * port); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
270 mach_port_t (*getAsyncPort)(void * self); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
271 IOReturn (*create)(void * self); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
272 IOReturn (*dispose)(void * self); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
273 IOReturn (*addElement)(void * self, IOHIDElementCookie elementCookie); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
274 IOReturn (*removeElement)(void * self, IOHIDElementCookie elementCookie); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
275 Boolean (*hasElement)(void * self, IOHIDElementCookie elementCookie); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
276 IOReturn (*setElementDefault)(void *self, IOHIDElementCookie elementCookie, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
277 IOHIDEventStruct * valueEvent); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
278 IOReturn (*getElementDefault)(void * self, IOHIDElementCookie elementCookie, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
279 IOHIDEventStruct * outValueEvent); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
280 IOReturn (*setElementValue)(void * self, IOHIDElementCookie elementCookie, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
281 IOHIDEventStruct * valueEvent); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
282 IOReturn (*getElementValue)(void * self, IOHIDElementCookie elementCookie, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
283 IOHIDEventStruct * outValueEvent); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
284 IOReturn (*commit)(void * self, UInt32 timeoutMS, IOHIDCallbackFunction callback, \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
285 void * callbackTarget, void * callbackRefcon); \
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
286 IOReturn (*clear)(void * self)
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
287
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
288 struct IOHIDOutputTransactionInterface
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
289 {
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
290 IUNKNOWN_C_GUTS;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
291 IOHIDOUTPUTTRANSACTIONINTERFACE_FUNCS_120;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
292 };
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
293
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
294
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
295 //
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
296 // BEGIN READABLE STRUCTURE DEFINITIONS
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
297 //
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
298 // This portion of uncompiled code provides a more reader friendly representation of
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
299 // the CFPlugin methods defined above.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
300
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
301 #if 0
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
302 /*! @class IOHIDDeviceInterface
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
303 @discussion CFPlugin object subclass which provides the primary interface to
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
304 HID devices.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
305 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
306 typedef struct IOHIDDeviceInterface
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
307 {
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
308
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
309 IUNKNOWN_C_GUTS;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
310
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
311 /*! @function createAsyncEventSource
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
312 @abstract Creates async eventsource.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
313 @discussion This method will create an async mach port, if one
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
314 has not already been created.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
315 @param source Reference to CFRunLoopSourceRef that is created.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
316 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
317 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
318 IOReturn (*createAsyncEventSource)(void * self,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
319 CFRunLoopSourceRef * source);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
320
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
321 /*! @function getAsyncEventSource
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
322 @abstract Gets the created async event source.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
323 @result Returns a CFRunLoopSourceRef.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
324 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
325 CFRunLoopSourceRef (*getAsyncEventSource)(void * self);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
326
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
327 /*! @function createAsyncPort
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
328 @abstract Creates an async port.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
329 @discussion The port must be created before any callbacks can be used.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
330 @param port Reference to mach port that is created.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
331 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
332 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
333 IOReturn (*createAsyncPort)(void * self, mach_port_t * port);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
334
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
335 /*! @function getAsyncPort
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
336 @abstract Gets the current async port.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
337 @result Returns a mach_port_t.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
338 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
339 mach_port_t (*getAsyncPort)(void * self);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
340
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
341 /*! @function open
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
342 @abstract Opens the device.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
343 @param flags Flags to be passed down to the user client.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
344 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
345 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
346 IOReturn (*open)(void * self, UInt32 flags);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
347
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
348 /*! @function close
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
349 @abstract Closes the device.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
350 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
351 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
352 IOReturn (*close)(void * self);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
353
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
354 /*! @function setRemovalCallback
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
355 @abstract Sets callback to be used when device is removed.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
356 @param removalCallback Called when the device is removed.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
357 @param removeTarget Passed to the callback.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
358 @param removalRefcon Passed to the callback.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
359 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
360 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
361 IOReturn (*setRemovalCallback)(void * self,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
362 IOHIDCallbackFunction removalCallback,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
363 void * removalTarget,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
364 void * removalRefcon);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
365
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
366 /*! @function getElementValue
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
367 @abstract Obtains the most recent value of an element.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
368 @discussion This call is most useful for interrupt driven elements,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
369 such as input type elements. Since feature type element values
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
370 need to be polled from the device, it is recommended to use the
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
371 queryElementValue method to obtain the current value. The
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
372 timestamp field in the event details the last time the element
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
373 value was altered.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
374 @param elementCookie The element of interest.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
375 @param valueEvent The event that will be filled. If a long value is
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
376 present, it is up to the caller to deallocate it.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
377 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
378 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
379 IOReturn (*getElementValue)(void * self,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
380 IOHIDElementCookie elementCookie,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
381 IOHIDEventStruct * valueEvent);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
382
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
383 /*! @function setElementValue
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
384 @abstract Sets an element value on the device.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
385 @discussion This call is most useful for feature type elements. It is
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
386 recommended to use IOOutputTransaction for output type elements.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
387 @param elementCookie The element of interest.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
388 @param valueEvent The event that will be filled. If a long value is
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
389 present, it will be copied.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
390 @param timeoutMS UNSUPPORTED.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
391 @param callback UNSUPPORTED.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
392 @param callbackTarget UNSUPPORTED.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
393 @param callbackRefcon UNSUPPORTED.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
394 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
395 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
396 IOReturn (*setElementValue)(void * self,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
397 IOHIDElementCookie elementCookie,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
398 IOHIDEventStruct * valueEvent,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
399 UInt32 timeoutMS,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
400 IOHIDElementCallbackFunction callback,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
401 void * callbackTarget,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
402 void * callbackRefcon);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
403
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
404 /*! @function queryElementValue
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
405 @abstract Obtains the current value of an element.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
406 @discussion This call is most useful for feature type elements. This
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
407 method will poll the device for the current element value.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
408 @param elementCookie The element of interest.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
409 @param valueEvent The event that will be filled. If a long value is
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
410 present, it is up to the caller to deallocate it.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
411 @param timeoutMS UNSUPPORTED.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
412 @param callback UNSUPPORTED.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
413 @param callbackTarget UNSUPPORTED.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
414 @param callbackRefcon UNSUPPORTED.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
415 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
416 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
417 IOReturn (*queryElementValue)(void * self,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
418 IOHIDElementCookie elementCookie,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
419 IOHIDEventStruct * valueEvent,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
420 UInt32 timeoutMS,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
421 IOHIDElementCallbackFunction callback,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
422 void * callbackTarget,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
423 void * callbackRefcon);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
424
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
425 /*! @function startAllQueues
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
426 @abstract Starts data delivery on all queues for this device.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
427 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
428 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
429 IOReturn (*startAllQueues)(void * self);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
430
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
431 /*! @function stopAllQueues
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
432 @abstract Stops data delivery on all queues for this device.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
433 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
434 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
435 IOReturn (*stopAllQueues)(void * self);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
436
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
437 /*! @function allocQueue
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
438 @abstract Wrapper to return instances of the IOHIDQueueInterface.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
439 @result Returns the created IOHIDQueueInterface.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
440 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
441 IOHIDQueueInterface ** (*allocQueue) (void *self);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
442
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
443 /*! @function allocOutputTransaction
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
444 @abstract Wrapper to return instances of the IOHIDOutputTransactionInterface.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
445 @result Returns the created IOHIDOutputTransactionInterface.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
446 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
447 IOHIDOutputTransactionInterface ** (*allocOutputTransaction) (void *self);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
448
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
449 } IOHIDDeviceInterface;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
450
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
451 /*! @class IOHIDDeviceInterface121
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
452 @discussion CFPlugin object subclass which provides the primary interface to
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
453 HID devices. This class is a subclass of IOHIDDeviceInterface.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
454 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
455 typedef struct IOHIDDeviceInterface121
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
456 {
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
457
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
458 IUNKNOWN_C_GUTS;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
459 IOHIDDEVICEINTERFACE_FUNCS_100;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
460
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
461 /*! @function setReport
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
462 @abstract Sends a report to the device.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
463 @param reportType The report type.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
464 @param reportID The report id.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
465 @param reportBuffer Pointer to a preallocated buffer.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
466 @param reportBufferSize Size of the reportBuffer in bytes.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
467 @param timeoutMS
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
468 @param callback If null, this method will behave synchronously.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
469 @param callbackTarget The callback target passed to the callback.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
470 @param callbackRefcon The callback refcon passed to the callback.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
471 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
472 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
473 IOReturn (*setReport) (void * self,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
474 IOHIDReportType reportType,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
475 UInt32 reportID,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
476 void * reportBuffer,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
477 UInt32 reportBufferSize,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
478 UInt32 timeoutMS,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
479 IOHIDReportCallbackFunction callback,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
480 void * callbackTarget,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
481 void * callbackRefcon);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
482
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
483 /*! @function getReport
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
484 @abstract Obtains a report from the device.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
485 @param reportType The report type.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
486 @param reportID The report ID.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
487 @param reportBuffer Pointer to a preallocated buffer.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
488 @param reportBufferSize Size of the reportBuffer in bytes.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
489 When finished, will contain the actual size of the report.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
490 @param timeoutMS
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
491 @param callback If null, this method will behave synchronously.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
492 @param callbackTarget The callback target passed to the callback.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
493 @param callbackRefcon The callback refcon passed to the callback.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
494 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
495 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
496 IOReturn (*getReport) (void * self,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
497 IOHIDReportType reportType,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
498 UInt32 reportID,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
499 void * reportBuffer,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
500 UInt32 * reportBufferSize,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
501 UInt32 timeoutMS,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
502 IOHIDReportCallbackFunction callback,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
503 void * callbackTarget,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
504 void * callbackRefcon);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
505
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
506 }IOHIDDeviceInterface121;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
507
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
508 /*! @class IOHIDDeviceInterface122
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
509 @discussion CFPlugin object subclass which provides the primary interface to
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
510 HID devices. This class is a subclass of IOHIDDeviceInterface121.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
511 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
512 typedef struct IOHIDDeviceInterface122
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
513 {
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
514
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
515 IUNKNOWN_C_GUTS;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
516 IOHIDDEVICEINTERFACE_FUNCS_100;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
517 IOHIDDEVICEINTERFACE_FUNCS_121;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
518
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
519 /*! @function copyMatchingElements
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
520 @abstract Obtains specific elements defined by the device.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
521 @discussion Using keys defined in IOHIDKeys.h for elements, create a
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
522 matching dictonary containing items that you wish to search for.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
523 A null array indicates that no elements matching that criteria
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
524 were found. Each item in the array is a reference to the same
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
525 dictionary item that represents each element in the I/O Registry.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
526 It is up to the caller to release the returned array of elements.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
527 @param matchingDict Dictionary containg key/value pairs to match on. Pass
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
528 a null value to match on all elements.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
529 @param elements Pointer to a CFArrayRef that will be returned by this
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
530 method. It is up to the caller to release it when finished.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
531 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
532 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
533 IOReturn (*copyMatchingElements)(void * self,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
534 CFDictionaryRef matchingDict,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
535 CFArrayRef * elements);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
536
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
537 /*! @function setInterruptReportHandlerCallback
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
538 @abstract Sets the report handler callout to be called when the data
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
539 is received from the Interrupt-In pipe.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
540 @discussion In order for this to work correctly, you must call
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
541 createAsyncPort and createAsyncEventSource.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
542 @param reportBuffer Pointer to a preallocated buffer.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
543 @param reportBufferSize Size of the reportBuffer in bytes.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
544 @param callback If non-NULL, is a callback to be called when data
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
545 is received from the device.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
546 @param callbackTarget The callback target passed to the callback
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
547 @param callbackRefcon The callback refcon passed to the callback.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
548 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
549 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
550 IOReturn (*setInterruptReportHandlerCallback)(
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
551 void * self,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
552 void * reportBuffer,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
553 UInt32 reportBufferSize,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
554 IOHIDReportCallbackFunction callback,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
555 void * callbackTarget,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
556 void * callbackRefcon);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
557
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
558 }IOHIDDeviceInterface122;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
559
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
560 /*! @class IOHIDQueueInterface
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
561 @discussion CFPlugin object subclass which provides an interface for input
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
562 queues from HID devices. Created by an IOHIDDeviceInterface
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
563 object.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
564 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
565 typedef struct IOHIDQueueInterface
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
566 {
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
567
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
568 IUNKNOWN_C_GUTS;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
569
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
570 /*! @function createAsyncEventSource
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
571 @abstract Creates an async event source.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
572 @discussion This will be used with setEventCallout.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
573 @param source The newly created event source.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
574 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
575 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
576 IOReturn (*createAsyncEventSource)(void * self,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
577 CFRunLoopSourceRef * source);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
578
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
579 /*! @function getAsyncEventSource
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
580 @abstract Obtains the current event source.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
581 @result Returns a CFRunLoopSourceRef.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
582 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
583 CFRunLoopSourceRef (*getAsyncEventSource)(void * self);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
584
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
585 /*! @function createAsyncPort
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
586 @abstract Creates an async port.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
587 @discussion This will be used with createAsyncEventSource.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
588 @param port The newly created async port.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
589 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
590 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
591 IOReturn (*createAsyncPort)(void * self, mach_port_t * port);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
592
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
593 /*! @function getAsyncPort
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
594 @abstract Obtains the current async port.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
595 @result Returns a mach_port_t.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
596 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
597 mach_port_t (*getAsyncPort)(void * self);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
598
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
599 /*! @function create
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
600 @abstract Creates the current queue.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
601 @param flags
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
602 @param depth The maximum number of elements in the queue
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
603 before the oldest elements in the queue begin to be lost.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
604 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
605 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
606 IOReturn (*create)(void * self,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
607 UInt32 flags,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
608 UInt32 depth);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
609
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
610 /*! @function create
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
611 @abstract Disposes of the current queue.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
612 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
613 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
614 IOReturn (*dispose)(void * self);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
615
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
616 /*! @function addElement
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
617 @abstract Adds an element to the queue.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
618 @discussion If the element has already been added to queue,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
619 an error will be returned.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
620 @param elementCookie The element of interest.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
621 @param flags
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
622 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
623 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
624 IOReturn (*addElement)(void * self,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
625 IOHIDElementCookie elementCookie,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
626 UInt32 flags);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
627
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
628 /*! @function removeElement
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
629 @abstract Removes an element from the queue.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
630 @discussion If the element has not been added to queue,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
631 an error will be returned.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
632 @param elementCookie The element of interest.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
633 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
634 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
635 IOReturn (*removeElement)(void * self, IOHIDElementCookie elementCookie);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
636
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
637 /*! @function hasElement
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
638 @abstract Checks whether an element has been added to
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
639 the queue.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
640 @discussion Will return true if present, otherwise will return false.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
641 @param elementCookie The element of interest.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
642 @result Returns a Boolean value.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
643 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
644 Boolean (*hasElement)(void * self, IOHIDElementCookie elementCookie);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
645
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
646 /*! @function start
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
647 @abstract Starts event delivery to the queue.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
648 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
649 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
650 IOReturn (*start)(void * self);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
651
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
652 /*! @function stop
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
653 @abstract Stops event delivery to the queue.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
654 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
655 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
656 IOReturn (*stop)(void * self);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
657
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
658 /*! @function getNextEvent
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
659 @abstract Reads next event from the queue.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
660 @param event The event that will be filled. If a long value is
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
661 present, it is up to the caller to deallocate it.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
662 @param maxtime UNSUPPORTED. If non-zero, limits read events to
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
663 those that occured on or before maxTime.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
664 @param timoutMS UNSUPPORTED. The timeout in milliseconds, a zero
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
665 timeout will cause this call to be non-blocking (returning
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
666 queue empty) if there is a NULL callback, and blocking forever
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
667 until the queue is non-empty if there is a valid callback.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
668 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
669 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
670 IOReturn (*getNextEvent)(void * self,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
671 IOHIDEventStruct * event,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
672 AbsoluteTime maxTime,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
673 UInt32 timeoutMS);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
674
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
675 /*! @function setEventCallout
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
676 @abstract Sets the event callout to be called when the queue
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
677 transitions to non-empty.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
678 @discussion In order for this to work correctly, you must call
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
679 createAsyncPort and createAsyncEventSource.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
680 @param callback if non-NULL is a callback to be called when data
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
681 is inserted to the queue
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
682 @param callbackTarget The callback target passed to the callback
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
683 @param callbackRefcon The callback refcon passed to the callback.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
684 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
685 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
686 IOReturn (*setEventCallout)(void * self,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
687 IOHIDCallbackFunction callback,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
688 void * callbackTarget,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
689 void * callbackRefcon);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
690
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
691 /*! @function getEventCallout
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
692 @abstract Gets the event callout.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
693 @discussion This callback will be called the queue transitions
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
694 to non-empty.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
695 @param callback if non-NULL is a callback to be called when data
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
696 is inserted to the queue
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
697 @param callbackTarget The callback target passed to the callback
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
698 @param callbackRefcon The callback refcon passed to the callback
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
699 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
700 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
701 IOReturn (*getEventCallout)(void * self,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
702 IOHIDCallbackFunction * outCallback,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
703 void ** outCallbackTarget,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
704 void ** outCallbackRefcon);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
705 } IOHIDQueueInterface;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
706
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
707 /*! @class IOHIDOutputTransactionInterface
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
708 @discussion CFPlugin object subclass which privides interface for output
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
709 transactions to HID devices. Created by a IOHIDDeviceInterface
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
710 object. */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
711
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
712 typedef struct IOHIDOutputTransactionInterface
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
713 {
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
714 IUNKNOWN_C_GUTS;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
715
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
716 /*! @function createAsyncEventSource
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
717 @abstract Creates an async event source.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
718 @discussion This will be used with setEventCallout.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
719 @param source The newly created event source
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
720 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
721 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
722 IOReturn (*createAsyncEventSource)(void * self,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
723 CFRunLoopSourceRef * source);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
724
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
725 /*! @function getAsyncEventSource
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
726 @abstract Obtains the current event source.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
727 @result Returns a CFRunLoopSourceRef.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
728 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
729 CFRunLoopSourceRef (*getAsyncEventSource)(void * self);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
730
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
731 /*! @function createAsyncPort
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
732 @abstract Creates an async port.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
733 @discussion This will be used with createAsyncEventSource.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
734 @param port The newly created async port.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
735 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
736 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
737 IOReturn (*createAsyncPort)(void * self, mach_port_t * port);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
738
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
739 /*! @function getAsyncPort
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
740 @abstract Obtains the current async port.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
741 @result Returns a mach_port_t.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
742 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
743 mach_port_t (*getAsyncPort)(void * self);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
744
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
745 /*! @function create
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
746 @abstract Creates the current transaction.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
747 @discussion This method will free any memory that has been
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
748 allocated for this transaction.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
749 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
750 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
751 IOReturn (*create)(void * self);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
752
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
753 /*! @function dispose
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
754 @abstract Disposes of the current transaction.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
755 @discussion The transaction will have to be recreated, in order
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
756 to perform any operations on the transaction.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
757 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
758 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
759 IOReturn (*dispose)(void * self);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
760
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
761 /*! @function addElement
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
762 @abstract Adds an element to the transaction.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
763 @discussion If the element has already been added to transaction,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
764 an error will be returned.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
765 @param elementCookie The element of interest.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
766 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
767 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
768 IOReturn (*addElement) (void * self, IOHIDElementCookie elementCookie);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
769
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
770 /*! @function removeElement
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
771 @abstract Removes an element from the transaction.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
772 @discussion If the element has not been added to transaction,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
773 an error will be returned.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
774 @param elementCookie The element of interest.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
775 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
776 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
777 IOReturn (*removeElement) (void * self, IOHIDElementCookie elementCookie);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
778
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
779 /*! @function hasElement
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
780 @abstract Checks whether an element has been added to
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
781 the transaction.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
782 @discussion Will return true if present, otherwise will return false.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
783 @param elementCookie The element of interest.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
784 @result Returns a Boolean value.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
785 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
786 Boolean (*hasElement) (void * self, IOHIDElementCookie elementCookie);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
787
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
788 /*! @function setElementDefault
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
789 @abstract Sets the default value of an element in a
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
790 transaction.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
791 @discussion An error will be returned if the element has not been
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
792 added to the transaction.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
793 @param elementCookie The element of interest.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
794 @param valueEvent The event that will be filled. If a long value is
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
795 present, it will be copied.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
796 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
797 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
798 IOReturn (*setElementDefault)(void * self,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
799 IOHIDElementCookie elementCookie,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
800 IOHIDEventStruct * valueEvent);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
801
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
802 /*! @function getElementDefault
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
803 @abstract Obtains the default value of an element in a
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
804 transaction.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
805 @discussion An error will be returned if the element has not been
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
806 added to the transaction.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
807 @param elementCookie The element of interest.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
808 @param outValueEvent The event that will be filled. If a long value is
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
809 present, it is up to the caller to deallocate it.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
810 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
811 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
812 IOReturn (*getElementDefault)(void * self,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
813 IOHIDElementCookie elementCookie,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
814 IOHIDEventStruct * outValueEvent);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
815
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
816 /*! @function setElementValue
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
817 @abstract Sets the value of an element in a transaction.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
818 @discussion An error will be returned if the element has not been
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
819 added to the transaction.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
820 @param elementCookie The element of interest.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
821 @param valueEvent The event that will be filled. If a long value is
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
822 present, it will be copied.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
823 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
824 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
825 IOReturn (*setElementValue)(void * self,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
826 IOHIDElementCookie elementCookie,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
827 IOHIDEventStruct * valueEvent);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
828
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
829 /*! @function getElementValue
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
830 @abstract Obtains the value of an element in a transaction.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
831 @discussion An error will be returned if the element has not been
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
832 added to the transaction.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
833 @param elementCookie The element of interest.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
834 @param outValueEvent The event that will be filled. If a long value is
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
835 present, it is up to the caller to deallocate it.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
836 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
837 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
838 IOReturn (*getElementValue)(void * self,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
839 IOHIDElementCookie elementCookie,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
840 IOHIDEventStruct * outValueEvent);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
841
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
842 /*! @function commit
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
843 @abstract Commits the transaction.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
844 @discussion Transaction element values, if set, will be sent to the
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
845 device. Otherwise, the default element value will be used. If
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
846 neither are set, that element will be omitted from the commit.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
847 After a transaction is committed, transaction element values
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
848 will be cleared. Default values will be preserved.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
849 @param timeoutMS UNSUPPORTED
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
850 @param callback UNSUPPORTED
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
851 @param callbackTarget UNSUPPORTED
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
852 @param callbackRefcon UNSUPPORTED
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
853 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
854 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
855 IOReturn (*commit)(void * self,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
856 UInt32 timeoutMS,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
857 IOHIDCallbackFunction callback,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
858 void * callbackTarget,
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
859 void * callbackRefcon);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
860
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
861 /*! @function clear
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
862 @abstract Clears the transaction.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
863 @discussion Transaction element values will cleared. Default
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
864 values will be preserved.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
865 @result Returns an IOReturn code.
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
866 */
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
867 IOReturn (*clear)(void * self);
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
868 } IOHIDOutputTransactionInterface;
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
869
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
870 #endif
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
871
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
872 __END_DECLS
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
873
21942f552734 Fixed build issues on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
874 #endif /* !_IOKIT_HID_IOHIDLIB_H_ */