ADC Home > Reference Library > Reference > Darwin > Kernel Framework Reference

 


IOHIDKeys.h

Includes:
<sys/cdefs.h>
<IOKit/hidsystem/IOHIDParameter.h>

Overview



Typedefs


IOHIDElementCollectionType


Describes different types of HID collections.

See Also:

IOHIDElementCollectionType

typedef enum IOHIDElementCollectionType IOHIDElementCollectionType;  
Constants
kIOHIDElementCollectionTypePhysical

Used for a set of data items that represent data points collected at one geometric point.

kIOHIDElementCollectionTypeApplication

Identifies item groups serving different purposes in a single device.

kIOHIDElementCollectionTypeLogical

Used when a set of data items form a composite data structure.

kIOHIDElementCollectionTypeReport

Wraps all the fields in a report.

kIOHIDElementCollectionTypeNamedArray

Contains an array of selector usages.

kIOHIDElementCollectionTypeUsageSwitch

Modifies the meaning of the usage it contains.

kIOHIDElementCollectionTypeUsageModifier

Modifies the meaning of the usage attached to the encompassing collection.

Discussion

Collections identify a relationship between two or more elements.


IOHIDElementCookie


Abstract data type used as a unique identifier for an element.

#ifdef __LP64__ 
typedef uint32_t IOHIDElementCookie;  
#else 
typedef void * IOHIDElementCookie;  
#endif  


IOHIDElementType


Describes different types of HID elements.

See Also:

IOHIDElementType

typedef enum IOHIDElementType IOHIDElementType;  
Constants
kIOHIDElementTypeInput_Misc

Misc input data field or varying size.

kIOHIDElementTypeInput_Button

One bit input data field.

kIOHIDElementTypeInput_Axis

Input data field used to represent an axis.

kIOHIDElementTypeInput_ScanCodes

Input data field used to represent a scan code or usage selector.

kIOHIDElementTypeOutput

Used to represent an output data field in a report.

kIOHIDElementTypeFeature

Describes input and output elements not intended for consumption by the end user.

kIOHIDElementTypeCollection

Element used to identify a relationship between two or more elements.

Discussion

Used by the IOHIDFamily to identify the type of element processed. Represented by the key kIOHIDElementTypeKey in the dictionary describing the element.


IOHIDOptionsType


Options for opening a device via IOHIDLib.

See Also:

IOHIDOptionsType

typedef uint32_t IOHIDOptionsType;  
Constants
kIOHIDOptionsTypeNone

Default option.

kIOHIDOptionsTypeSeizeDevice

Used to open exclusive communication with the device. This will prevent the system and other clients from receiving events from the device.


IOHIDQueueOptionsType


Options for creating a queue via IOHIDLib.

See Also:

IOHIDQueueOptionsType

typedef uint32_t IOHIDQueueOptionsType;  
Constants
kIOHIDQueueOptionsTypeNone

Default option.

kIOHIDQueueOptionsTypeEnqueueAll

Force the IOHIDQueue to enqueue all events, relative or absolute, regardless of change.


IOHIDReportType


Describes different type of HID reports.

See Also:

IOHIDReportType

typedef enum IOHIDReportType IOHIDReportType;  
Constants
kIOHIDReportTypeInput

Input report.

kIOHIDReportTypeOutput

Output report.

kIOHIDReportTypeFeature

Feature report.

Discussion

Used by the IOHIDFamily to identify the type of report being processed.

Enumerations


IOHIDElementCollectionType


Describes different types of HID collections.

See Also:

IOHIDElementCollectionType

enum IOHIDElementCollectionType{ 
    kIOHIDElementCollectionTypePhysical = 0x00, 
    kIOHIDElementCollectionTypeApplication, 
    kIOHIDElementCollectionTypeLogical, 
    kIOHIDElementCollectionTypeReport, 
    kIOHIDElementCollectionTypeNamedArray, 
    kIOHIDElementCollectionTypeUsageSwitch, 
    kIOHIDElementCollectionTypeUsageModifier 
};  
Discussion

Collections identify a relationship between two or more elements.


IOHIDElementType


Describes different types of HID elements.

See Also:

IOHIDElementType

enum IOHIDElementType { 
    kIOHIDElementTypeInput_Misc = 1, 
    kIOHIDElementTypeInput_Button = 2, 
    kIOHIDElementTypeInput_Axis = 3, 
    kIOHIDElementTypeInput_ScanCodes = 4, 
    kIOHIDElementTypeOutput = 129, 
    kIOHIDElementTypeFeature = 257, 
    kIOHIDElementTypeCollection = 513 
};  
Discussion

Used by the IOHIDFamily to identify the type of element processed. Represented by the key kIOHIDElementTypeKey in the dictionary describing the element.


IOHIDOptionsType


Options for opening a device via IOHIDLib.

See Also:

IOHIDOptionsType

enum { 
    kIOHIDOptionsTypeNone = 0x00, 
    kIOHIDOptionsTypeSeizeDevice = 0x01 
};  


IOHIDQueueOptionsType


Options for creating a queue via IOHIDLib.

See Also:

IOHIDQueueOptionsType

enum { 
    kIOHIDQueueOptionsTypeNone = 0x00, 
    kIOHIDQueueOptionsTypeEnqueueAll = 0x01 
};  


IOHIDReportType


Describes different type of HID reports.

See Also:

IOHIDReportType

enum IOHIDReportType{ 
    kIOHIDReportTypeInput = 0, 
    kIOHIDReportTypeOutput, 
    kIOHIDReportTypeFeature, 
    kIOHIDReportTypeCount 
};  
Discussion

Used by the IOHIDFamily to identify the type of report being processed.

#defines


HID Device Property Keys


Keys that represent properties of a paticular device.

See Also:

kIOHIDTransportKey

#define kIOHIDTransportKey "Transport" 
Discussion

Keys that represent properties of a paticular device. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.


HID Element Dictionary Keys


Keys that represent properties of a particular elements.

See Also:

kIOHIDElementCookieKey

#define kIOHIDElementCookieKey "ElementCookie" 
Discussion

These keys can also be added to a matching dictionary when searching for elements via copyMatchingElements.


HID Element Match Keys


Keys used for matching particular elements.

See Also:

kIOHIDElementCookieMinKey

#define kIOHIDElementCookieMinKey "ElementCookieMin" 
Discussion

These keys should only be used with a matching dictionary when searching for elements via copyMatchingElements.


kIOHIDElementCalibrationDeadZoneMaxKey


The maximum bounds near the midpoint of a logical value in which the value is ignored.

See Also:

kIOHIDElementCalibrationDeadZoneMinKey

#define kIOHIDElementCalibrationDeadZoneMaxKey "CalibrationDeadZoneMax" 
Discussion

The dead zone property is used to allow for slight differences in the idle value returned by an element.


kIOHIDElementCalibrationDeadZoneMinKey


The minimum bounds near the midpoint of a logical value in which the value is ignored.

#define kIOHIDElementCalibrationDeadZoneMinKey "CalibrationDeadZoneMin" 
Discussion

The dead zone property is used to allow for slight differences in the idle value returned by an element.


kIOHIDElementCalibrationDeadZoneMinKey


The maximum bounds near the midpoint of a logical value in which the value is ignored.

See Also:

kIOHIDElementCalibrationDeadZoneMaxKey

#define kIOHIDElementCalibrationDeadZoneMaxKey "CalibrationDeadZoneMax" 
Discussion

The dead zone property is used to allow for slight differences in the idle value returned by an element.


kIOHIDElementCalibrationGranularityKey


The scale or level of detail returned in a calibrated element value.

#define kIOHIDElementCalibrationGranularityKey "CalibrationGranularity" 
Discussion

Values are rounded off such that if granularity=0.1, values after calibration are 0, 0.1, 0.2, 0.3, etc.


kIOHIDElementCalibrationMaxKey


The maximum bounds for a calibrated value.

#define kIOHIDElementCalibrationMaxKey "CalibrationMax" 


kIOHIDElementCalibrationMinKey


The minimum bounds for a calibrated value.

#define kIOHIDElementCalibrationMinKey "CalibrationMin" 


kIOHIDElementCalibrationSaturationMaxKey


The maximum tolerance to be used when calibrating a logical element value.

#define kIOHIDElementCalibrationSaturationMaxKey "CalibrationSaturationMax" 
Discussion

The saturation property is used to allow for slight differences in the minimum and maximum value returned by an element.


kIOHIDElementCalibrationSaturationMinKey


The mininum tolerance to be used when calibrating a logical element value.

#define kIOHIDElementCalibrationSaturationMinKey "CalibrationSaturationMin" 
Discussion

The saturation property is used to allow for slight differences in the minimum and maximum value returned by an element.


kIOHIDElementCookieKey


Keys that represent properties of a particular elements.

See Also:

HID

#define kIOHIDElementCookieKey "ElementCookie" 
Discussion

These keys can also be added to a matching dictionary when searching for elements via copyMatchingElements.


kIOHIDElementCookieMinKey


Keys used for matching particular elements.

See Also:

HID

#define kIOHIDElementCookieMinKey "ElementCookieMin" 
Discussion

These keys should only be used with a matching dictionary when searching for elements via copyMatchingElements.


kIOHIDElementKey


Keys that represents an element property.

#define kIOHIDElementKey "Elements" 
Discussion

Property for a HID Device or element dictionary. Elements can be heirarchical, so they can contain other elements.


kIOHIDTransportKey


Keys that represent properties of a paticular device.

See Also:

HID

#define kIOHIDTransportKey "Transport" 
Discussion

Keys that represent properties of a paticular device. Can be added to your matching dictionary when refining searches for HID devices.

Please note:
kIOHIDPrimaryUsageKey and kIOHIDPrimaryUsagePageKey are no longer rich enough to describe a device's capabilities. Take, for example, a device that describes both a keyboard and a mouse in the same descriptor. The previous behavior was to only describe the keyboard behavior with the primary usage and usage page. Needless to say, this would sometimes cause a program interested in mice to skip this device when matching.
Thus we have added 3 additional keys:

kIOHIDDeviceUsagePairsKey is used to represent an array of dictionaries containing key/value pairs referenced by kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey. These usage pairs describe all application type collections (behaviors) defined by the device.

An application intersted in only matching on one criteria would only add the kIOHIDDeviceUsageKey and kIOHIDDeviceUsagePageKey keys to the matching dictionary. If it is interested in a device that has multiple behaviors, the application would instead add an array or dictionaries referenced by kIOHIDDeviceUsagePairsKey to his matching dictionary.


Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.

 

Last Updated: 2008-12-19