IOHIDKeys.h Reference

Declared in
IOHIDKeys.h

Overview

Included Headers

  • <sys/cdefs.h>

  • <IOKit/hidsystem/IOHIDParameter.h>

Data Types

See the Overview section above for header-level documentation.

IOHIDElementCookie

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

#ifdef __LP64__
typedef uint32_t IOHIDElementCookie;
#else
typedef void * IOHIDElementCookie;
#endif
Availability
  • Available in OS X v10.0 and later.
Declared In
IOHIDKeys.h

Constants

See the Overview section above for header-level documentation.

Miscellaneous Defines

   
#define kIOHIDTransportKey "Transport"
#define kIOHIDElementCookieKey "ElementCookie"
#define kIOHIDElementCookieMinKey "ElementCookieMin"
#define kIOHIDElementCalibrationDeadZoneMaxKey "CalibrationDeadZoneMax"
#define kIOHIDElementCalibrationDeadZoneMinKey "CalibrationDeadZoneMin"
#define kIOHIDElementCalibrationDeadZoneMaxKey "CalibrationDeadZoneMax"
#define kIOHIDElementCalibrationGranularityKey "CalibrationGranularity"
#define kIOHIDElementCalibrationMaxKey "CalibrationMax"
#define kIOHIDElementCalibrationMinKey "CalibrationMin"
#define kIOHIDElementCalibrationSaturationMaxKey "CalibrationSaturationMax"
#define kIOHIDElementCalibrationSaturationMinKey "CalibrationSaturationMin"
#define kIOHIDElementCookieKey "ElementCookie"
#define kIOHIDElementCookieMinKey "ElementCookieMin"
#define kIOHIDElementKey "Elements"
#define kIOHIDTransportKey "Transport"
Constants
HID Device Property Keys

Keys that represent properties of a paticular device.

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:

  • kIOHIDDeviceUsageKey

  • kIOHIDDeviceUsagePageKey

  • kIOHIDDeviceUsagePairsKey

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.

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.

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.

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

Available in OS X v10.5 and later.

Declared in IOHIDKeys.h.

kIOHIDElementCalibrationDeadZoneMinKey

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

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

Available in OS X v10.5 and later.

Declared in IOHIDKeys.h.

kIOHIDElementCalibrationDeadZoneMinKey

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

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

Available in OS X v10.5 and later.

Declared in IOHIDKeys.h.

kIOHIDElementCalibrationGranularityKey

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

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

Available in OS X v10.5 and later.

Declared in IOHIDKeys.h.

kIOHIDElementCalibrationMaxKey

The maximum bounds for a calibrated value.

Available in OS X v10.5 and later.

Declared in IOHIDKeys.h.

kIOHIDElementCalibrationMinKey

The minimum bounds for a calibrated value.

Available in OS X v10.5 and later.

Declared in IOHIDKeys.h.

kIOHIDElementCalibrationSaturationMaxKey

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

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

Available in OS X v10.5 and later.

Declared in IOHIDKeys.h.

kIOHIDElementCalibrationSaturationMinKey

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

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

Available in OS X v10.5 and later.

Declared in IOHIDKeys.h.

kIOHIDElementCookieKey

Keys that represent properties of a particular elements.

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

Available in OS X v10.0 and later.

Declared in IOHIDKeys.h.

kIOHIDElementCookieMinKey

Keys used for matching particular elements.

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

Available in OS X v10.5 and later.

Declared in IOHIDKeys.h.

kIOHIDElementKey

Keys that represents an element property.

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

Available in OS X v10.0 and later.

Declared in IOHIDKeys.h.

kIOHIDTransportKey

Keys that represent properties of a paticular device.

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:

  • kIOHIDDeviceUsageKey

  • kIOHIDDeviceUsagePageKey

  • kIOHIDDeviceUsagePairsKey

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.

Available in OS X v10.0 and later.

Declared in IOHIDKeys.h.

IOHIDElementCollectionType

Describes different types of HID collections.

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

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

Available in OS X v10.3 and later.

Declared in IOHIDKeys.h.

kIOHIDElementCollectionTypeApplication

Identifies item groups serving different purposes in a single device.

Available in OS X v10.3 and later.

Declared in IOHIDKeys.h.

kIOHIDElementCollectionTypeLogical

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

Available in OS X v10.3 and later.

Declared in IOHIDKeys.h.

kIOHIDElementCollectionTypeReport

Wraps all the fields in a report.

Available in OS X v10.3 and later.

Declared in IOHIDKeys.h.

kIOHIDElementCollectionTypeNamedArray

Contains an array of selector usages.

Available in OS X v10.3 and later.

Declared in IOHIDKeys.h.

kIOHIDElementCollectionTypeUsageSwitch

Modifies the meaning of the usage it contains.

Available in OS X v10.3 and later.

Declared in IOHIDKeys.h.

kIOHIDElementCollectionTypeUsageModifier

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

Available in OS X v10.3 and later.

Declared in IOHIDKeys.h.

Discussion

Collections identify a relationship between two or more elements.

IOHIDElementType

Describes different types of HID elements.

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

Misc input data field or varying size.

Available in OS X v10.0 and later.

Declared in IOHIDKeys.h.

kIOHIDElementTypeInput_Button

One bit input data field.

Available in OS X v10.0 and later.

Declared in IOHIDKeys.h.

kIOHIDElementTypeInput_Axis

Input data field used to represent an axis.

Available in OS X v10.0 and later.

Declared in IOHIDKeys.h.

kIOHIDElementTypeInput_ScanCodes

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

Available in OS X v10.0 and later.

Declared in IOHIDKeys.h.

kIOHIDElementTypeOutput

Used to represent an output data field in a report.

Available in OS X v10.0 and later.

Declared in IOHIDKeys.h.

kIOHIDElementTypeFeature

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

Available in OS X v10.0 and later.

Declared in IOHIDKeys.h.

kIOHIDElementTypeCollection

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

Available in OS X v10.0 and later.

Declared in IOHIDKeys.h.

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.

enum {
   kIOHIDOptionsTypeNone = 0x00,
   kIOHIDOptionsTypeSeizeDevice = 0x01
};
   
typedef uint32_t IOHIDOptionsType;
Constants
kIOHIDOptionsTypeNone

Default option.

Available in OS X v10.3 and later.

Declared in IOHIDKeys.h.

kIOHIDOptionsTypeSeizeDevice

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

Available in OS X v10.3 and later.

Declared in IOHIDKeys.h.

IOHIDQueueOptionsType

Options for creating a queue via IOHIDLib.

enum {
   kIOHIDQueueOptionsTypeNone = 0x00,
   kIOHIDQueueOptionsTypeEnqueueAll = 0x01
};
   
typedef uint32_t IOHIDQueueOptionsType;
Constants
kIOHIDQueueOptionsTypeNone

Default option.

Available in OS X v10.5 and later.

Declared in IOHIDKeys.h.

kIOHIDQueueOptionsTypeEnqueueAll

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

Available in OS X v10.5 and later.

Declared in IOHIDKeys.h.

IOHIDReportType

Describes different type of HID reports.

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

Input report.

Available in OS X v10.0 and later.

Declared in IOHIDKeys.h.

kIOHIDReportTypeOutput

Output report.

Available in OS X v10.0 and later.

Declared in IOHIDKeys.h.

kIOHIDReportTypeFeature

Feature report.

Available in OS X v10.0 and later.

Declared in IOHIDKeys.h.

Discussion

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

IOHIDStandardType

Type to define what industrial standard the device is referencing.

enum {
   kIOHIDStandardTypeANSI = 0,
   kIOHIDStandardTypeISO = 1,
   kIOHIDStandardTypeJIS = 2
};
   
typedef uint32_t IOHIDStandardType;
Constants
kIOHIDStandardTypeANSI

ANSI.

Available in OS X v10.7 and later.

Declared in IOHIDKeys.h.

kIOHIDStandardTypeISO

ISO.

Available in OS X v10.7 and later.

Declared in IOHIDKeys.h.

kIOHIDStandardTypeJIS

JIS.

Available in OS X v10.7 and later.

Declared in IOHIDKeys.h.

IOHIDValueOptions

Describes options for gathering element values.

enum {
   kIOHIDValueOptionsFlagRelativeSimple = (
   1<<0)
};
   
typedef uint32_t IOHIDValueOptions;
Constants
kIOHIDValueOptionsFlagSimpleRelative

Compares against previous value

IOHIDValueScaleType

Describes different types of scaling that can be performed on element values.

enum {
   kIOHIDValueScaleTypeCalibrated,
   kIOHIDValueScaleTypePhysical
};
   
typedef uint32_t IOHIDValueScaleType;
Constants
kIOHIDValueScaleTypeCalibrated

Type for value that is scaled with respect to the calibration properties.

Available in OS X v10.5 and later.

Declared in IOHIDKeys.h.

kIOHIDValueScaleTypePhysical

Type for value that is scaled with respect to the physical min and physical max of the element.

Available in OS X v10.5 and later.

Declared in IOHIDKeys.h.