#ifndef __HIDLib__
#define __HIDLib__
#include "HIDPriv.h"
#define kShouldClearMem true
struct HIDReportDescriptor
{
Byte * descriptor;
ByteCount descriptorLength;
UInt32 index;
SInt32 * collectionStack;
SInt32 collectionNesting;
HIDGlobalItems * globalsStack;
SInt32 globalsNesting;
HIDItem item;
SInt32 firstUsageItem;
SInt32 firstStringItem;
SInt32 firstDesigItem;
SInt32 parent;
SInt32 sibling;
HIDGlobalItems globals;
Boolean haveUsageMin;
Boolean haveUsageMax;
SInt32 rangeUsagePage;
SInt32 usageMinimum;
SInt32 usageMaximum;
Boolean haveStringMin;
Boolean haveStringMax;
SInt32 stringMinimum;
SInt32 stringMaximum;
Boolean haveDesigMin;
Boolean haveDesigMax;
SInt32 desigMinimum;
SInt32 desigMaximum;
};
typedef struct HIDReportDescriptor HIDReportDescriptor;
extern OSStatus
HIDCountDescriptorItems (HIDReportDescriptor * reportDescriptor,
HIDPreparsedDataPtr preparsedData);
extern OSStatus
HIDNextItem (HIDReportDescriptor * reportDescriptor);
extern OSStatus
HIDParseDescriptor (HIDReportDescriptor * reportDescriptor,
HIDPreparsedDataPtr preparsedData);
extern OSStatus
HIDProcessCollection (HIDReportDescriptor * reportDescriptor,
HIDPreparsedDataPtr preparsedData);
extern OSStatus
HIDProcessEndCollection (HIDReportDescriptor * reportDescriptor,
HIDPreparsedDataPtr preparsedData);
extern OSStatus
HIDProcessGlobalItem (HIDReportDescriptor * reportDescriptor,
HIDPreparsedDataPtr preparsedData);
extern OSStatus
HIDProcessLocalItem (HIDReportDescriptor * reportDescriptor,
HIDPreparsedDataPtr preparsedData);
extern OSStatus
HIDProcessMainItem (HIDReportDescriptor * reportDescriptor,
HIDPreparsedDataPtr preparsedData);
extern OSStatus
HIDProcessReportItem (HIDReportDescriptor * reportDescriptor,
HIDPreparsedDataPtr preparsedData);
#endif