CParser Class Reference

class CParser : public CBase

HID parser CParser parses a HID report descriptor. It outputs a CReportRoot containing a tree of CCollection and CField objects representing the descriptor information. A HID device driver can then use this, in conjunction with TReportTranslator and CReportGenerator objects, to facilitate communication with a HID device.

The parsing process conforms to the HID class specification document: "USB Device Class Definition for Human Interface Devices (HID)", Firmware Specification, Version 1.11, USB Implementers' Forum, June 2001.

generichid.lib
Since
S60 v5.0

Inherits from

Public Member Functions
~CParser()
TInt FieldCount()
IMPORT_C CParser *NewL()
IMPORT_C CParser *NewLC()
IMPORT_C CReportRoot *ParseL(const TDesC8 &)
Private Member Functions
CParser()
TInt BitsToRepresentRange(TInt, TInt)
TBool CheckAllReportSizes()
TInt CheckDesignatorMinAndMaxErrors()
voidCheckFieldBitNeeded(CField::TType, TUint32)
TInt CheckForCollectionErrors(TUint32)
TInt CheckForFieldErrors(CField::TType, TUint32)
TInt CheckForMainErrors()
voidCheckLogicalMinAndMax(TUint32)
TInt CheckMandatoryFieldErrors(CField::TType, TUint32)
TInt CheckMandatoryFieldExistence(CField::TType, TUint32)
voidCheckParseErrors()
TInt CheckStringMinAndMaxErrors()
TInt CheckUsageMinAndMaxErrors()
voidClearLocalState()
CCollection *Collection()
voidConstructL()
TInt CreateCollectionL(TUint32)
TInt CreateFieldL(CField::TType, TUint32)
voidDumpStateTableL(CField *)
TInt GlobalItemL(const TItem &)
TInt HandleGlobalLogicalMaximum(const TItem &)
TInt HandleGlobalLogicalMinimum(const TItem &)
TInt HandleGlobalPhysicalMaximum(const TItem &)
TInt HandleGlobalPhysicalMinimum(const TItem &)
TInt HandleGlobalPop(const TItem &)
TInt HandleGlobalPushL(const TItem &)
TInt HandleGlobalReportCount(const TItem &)
TInt HandleGlobalReportId(const TItem &)
TInt HandleGlobalReportSize(const TItem &)
TInt HandleGlobalUnit(const TItem &)
TInt HandleGlobalUnitExponent(const TItem &)
TInt HandleGlobalUsagePage(const TItem &)
voidHandleItemL(TItem &)
TInt HandleLocalDelimiter(const TItem &)
TInt HandleLocalDesignatorIndex(const TItem &)
TInt HandleLocalDesignatorMaximum(const TItem &)
TInt HandleLocalDesignatorMinimum(const TItem &)
TInt HandleLocalStringIndex(const TItem &)
TInt HandleLocalStringMaximum(const TItem &)
TInt HandleLocalStringMinimum(const TItem &)
TInt HandleLocalUsageL(const TItem &)
TInt HandleLocalUsageMaximum(const TItem &)
TInt HandleLocalUsageMinimum(const TItem &)
TInt HandleMainCollectionL(const TItem &)
TInt HandleMainEndCollection(const TItem &)
TInt HandleMainFeatureL(const TItem &)
TInt HandleMainInputTagL(const TItem &)
TInt HandleMainOutputTagL(const TItem &)
TBool IsReservedUsagePage(TInt)
voidIssueWarning(TInt)
TInt LocalItemL(const TItem &)
TInt MainItemL(const TItem &)
TInt NumberOfLeadingZeros(TUint32)
voidPopCollection()
voidPushCollectionL(const CCollection *)
voidResetParserL()
Inherited Functions
CBase::CBase()
CBase::Delete(CBase *)
CBase::Extension_(TUint,TAny *&,TAny *)
CBase::operator new(TUint)
CBase::operator new(TUint,TAny *)
CBase::operator new(TUint,TLeave)
CBase::operator new(TUint,TLeave,TUint)
CBase::operator new(TUint,TUint)
CBase::~CBase()
Private Member Enumerations
enumTHidGlobalTags {
EGlobalUsagePage = 0x00, EGlobalLogicalMinimum = 0x01, EGlobalLogicalMaximum = 0x02, EGlobalPhysicalMinimum = 0x03, EGlobalPhysicalMaximum = 0x04, EGlobalUnitExponent = 0x05, EGlobalUnit = 0x06, EGlobalReportSize = 0x07, EGlobalReportId = 0x08, EGlobalReportCount = 0x09, EGlobalPush = 0x0a, EGlobalPop = 0x0b
}
enumTHidItem {
EUsagePage = 1<<0, ELogicalMin = 1<<1, ELogicalMax = 1<<2, EReportSize = 1<<3, EReportCount = 1<<4, EReportId = 1<<5, EUsageMin = 1<<6, EUsageMax = 1<<7, EPhysicalMin = 1<<8, EPhysicalMax = 1<<9, EUnit = 1<<10, EUnitExponent = 1<<11, EDesignatorIndex = 1<<12, EDesignatorMin = 1<<13, EDesignatorMax = 1<<14, EStringIndex = 1<<15, EStringMin = 1<<16, EStringMax = 1<<17, EInputReport = 1<<18, EOutputReport = 1<<19, EFeatureReport = 1<<20, EDelimiter = 1<<21, EUsageId = 1<<22
}
enumTHidLocalTags {
ELocalUsage = 0x00, ELocalUsageMinimum = 0x01, ELocalUsageMaximum = 0x02, ELocalDesignatorIndex = 0x03, ELocalDesignatorMinimum = 0x04, ELocalDesignatorMaximum = 0x05, ELocalStringIndex = 0x07, ELocalStringMinimum = 0x08, ELocalStringMaximum = 0x09, ELocalDelimiter = 0x0a
}
enumTHidMainTags { EMainInput = 0x08, EMainOutput = 0x09, EMainFeature = 0x0b, EMainCollection = 0x0a, EMainEndCollection = 0x0c }
Private Attributes
const TUint32KLocalItemMask
const TUint32KMandatoryItemMask
const TUint32KReportItemMask
const TUint32KUnusedLocalItemsMask
TInt iAliasCount
TInt iAliasCountMax
TInt iAliasCountMin
RPointerArray< CCollection >iCollectionStack
TInt iErrorCode
TInt iFieldCount
TParserGlobalState iGlobal
TUint32 iGlobalItemsDefined
RArray< TParserGlobalState >iGlobalStack
TInt iItemNumber
TUint32 iItemsDefined
CField *iLocal
TBool iLocalMultipleUse
CReportRoot *iReportRoot
TBool iWithinDelimiter

Constructor & Destructor Documentation

CParser()

CParser()[private]

~CParser()

~CParser()[virtual]

Member Functions Documentation

BitsToRepresentRange(TInt, TInt)

TInt BitsToRepresentRange(TIntaMin,
TIntaMax
)[private, static]

BitsToRepresentRange() returns the number of bits required to represent all values in a given range. It is used to check that the report field size is appropriate for the given logical minimum and maximum.

If the range is all positive then it is assumed that there is no sign bit, otherwise twos complement format is assumed, as per the HID class specification, v1.11, Section 6.2.2.7.

Since
S60 v5.0

Parameters

TInt aMinLogical minimum
TInt aMaxLogical maximum

CheckAllReportSizes()

TBool CheckAllReportSizes()const [private]

CheckAllReportSizes() checks if all report sizes are integral multiples of 8 bits.

Since
S60 v5.0

CheckDesignatorMinAndMaxErrors()

TInt CheckDesignatorMinAndMaxErrors()[private]

CheckDesignatorMinAndMaxErrors

Since
S60 v5.0

CheckFieldBitNeeded(CField::TType, TUint32)

voidCheckFieldBitNeeded(CField::TTypeaType,
TUint32aAttributes
)[private]

CheckMandatoryFieldError

Since
S60 v5.0

Parameters

CField::TType aTypea field type
TUint32 aAttributesattributes

CheckForCollectionErrors(TUint32)

TInt CheckForCollectionErrors(TUint32aType)[private]

CheckForCollectionErrors() validates the current collection object. It adds non-critical errors to the warnings list. It returns an error code if a critical error is encountered.

Since
S60 v5.0

Parameters

TUint32 aTypeThe type of the collection (one of the CCollection::TType values, or vendor defined).

CheckForFieldErrors(CField::TType, TUint32)

TInt CheckForFieldErrors(CField::TTypeaType,
TUint32aAttributes
)[private]

CheckForFieldErrors() validates the current global and local item state in preparation for creating a CField object. It adds non-critical errors to the warnings list. It returns an error code if a critical error is encountered.

Since
S60 v5.0

Parameters

CField::TType aType
TUint32 aAttributesThe attributes for the field (e.g. Data, Array, Absolute.)

CheckForMainErrors()

TInt CheckForMainErrors()[private]

CheckForMainErrors() performs error checking common to CheckForCollectionErrors() and CheckForFieldErrors(). It adds non-critical errors to the warnings list. It returns an error code if a critical error is encountered.

Since
S60 v5.0

CheckLogicalMinAndMax(TUint32)

voidCheckLogicalMinAndMax(TUint32aAttributes)[private]

CheckLogicalMinAndMax Check if logical minimum and maximum must match the number of usage values

Since
S60 v5.0

Parameters

TUint32 aAttributesattributes

CheckMandatoryFieldErrors(CField::TType, TUint32)

TInt CheckMandatoryFieldErrors(CField::TTypeaType,
TUint32aAttributes
)[private]

CheckMandatoryFieldError

Since
S60 v5.0

Parameters

CField::TType aTypea field type
TUint32 aAttributesattributes

CheckMandatoryFieldExistence(CField::TType, TUint32)

TInt CheckMandatoryFieldExistence(CField::TTypeaType,
TUint32aAttributes
)[private]

CheckMandatoryFieldError

Since
S60 v5.0

Parameters

CField::TType aTypea field type
TUint32 aAttributesattributes

CheckParseErrors()

voidCheckParseErrors()[private]

CheckParseErrors

Since
S60 v5.0

CheckStringMinAndMaxErrors()

TInt CheckStringMinAndMaxErrors()[private]

CheckStringMinAndMaxErrors

Since
S60 v5.0

CheckUsageMinAndMaxErrors()

TInt CheckUsageMinAndMaxErrors()[private]

CheckUsageMinAndMaxErrors

Since
S60 v5.0

ClearLocalState()

voidClearLocalState()[private]

ClearLocalState() clears the appropriate fields in the CField object that represents the current local item state.

Since
S60 v5.0

Collection()

CCollection *Collection()[private]

Used to access the current collection object, i.e. the object at the top of the collection stack (iCollectionStack).

Since
S60 v5.0

ConstructL()

voidConstructL()[private]

CreateCollectionL(TUint32)

TInt CreateCollectionL(TUint32aType)[private]

CreateCollectionL() is called to instantiate a new CCollection object when a "begin collection" item is encountered in the report descriptor.

Since
S60 v5.0

Parameters

TUint32 aTypeThe type of the collection. This can be one of the seven standard types defined in CCollection::TType, or a vendor defined value.

CreateFieldL(CField::TType, TUint32)

TInt CreateFieldL(CField::TTypeaType,
TUint32aAttributes
)[private]

CreateFieldL() is called to instantiate a new CField object when an input, output or feature item is encountered in the report descriptor.

The current local and global states extracted from the report descriptor are copied to the CField, which is placed into the current CCollection.

Since
S60 v5.0

Parameters

CField::TType aTypeThe type of field: input, output or feature
TUint32 aAttributesThe attributes for the field (e.g. Data, Array, Absolute.)

DumpStateTableL(CField *)

voidDumpStateTableL(CField *aField)const [private]

DumpStateTableL() copies the current local and global item state into a CField object.

Since
S60 v5.0

Parameters

CField * aFieldThe field object to receive the data

FieldCount()

TInt FieldCount()

Return field count

Since
S60 v5.0

GlobalItemL(const TItem &)

TInt GlobalItemL(const TItem &aItem)[private]

Handle a HID descriptor global item. Stores the data in the appropriate member of the current global state object, iGlobal.

Since
S60 v5.0

Parameters

const TItem & aItemThe current report descriptor tag and its associated data

HandleGlobalLogicalMaximum(const TItem &)

TInt HandleGlobalLogicalMaximum(const TItem &aItem)[private]

HandleGlobalLogicalMaximum

Since
S60 ?S60_version *** for example, S60 v3.0

Parameters

const TItem & aItema Hid field item

HandleGlobalLogicalMinimum(const TItem &)

TInt HandleGlobalLogicalMinimum(const TItem &aItem)[private]

HandleGlobalLogicalMinimum

Since
S60 v5.0

Parameters

const TItem & aItema Hid field item

HandleGlobalPhysicalMaximum(const TItem &)

TInt HandleGlobalPhysicalMaximum(const TItem &aItem)[private]

HandleGlobalPhysicalMinimum

Since
S60 v5.0

Parameters

const TItem & aItema Hid field item

HandleGlobalPhysicalMinimum(const TItem &)

TInt HandleGlobalPhysicalMinimum(const TItem &aItem)[private]

HandleGlobalPhysicalMinimum

Since
S60 v5.0

Parameters

const TItem & aItema Hid field item

HandleGlobalPop(const TItem &)

TInt HandleGlobalPop(const TItem &aItem)[private]

HandleGlobalPop

Since
S60 v5.0

Parameters

const TItem & aItema Hid field item

HandleGlobalPushL(const TItem &)

TInt HandleGlobalPushL(const TItem &aItem)[private]

HandleGlobalPush

Since
S60 v5.0

Parameters

const TItem & aItema Hid field item

HandleGlobalReportCount(const TItem &)

TInt HandleGlobalReportCount(const TItem &aItem)[private]

HandleGlobalReportSize

Since
S60 v5.0

Parameters

const TItem & aItema Hid field item

HandleGlobalReportId(const TItem &)

TInt HandleGlobalReportId(const TItem &aItem)[private]

HandleGlobalReportId

Since
S60 v5.0

Parameters

const TItem & aItema Hid field item

HandleGlobalReportSize(const TItem &)

TInt HandleGlobalReportSize(const TItem &aItem)[private]

HandleGlobalReportSize

Since
S60 v5.0

Parameters

const TItem & aItema Hid field item

HandleGlobalUnit(const TItem &)

TInt HandleGlobalUnit(const TItem &aItem)[private]

HandleGlobalUnit

Since
S60 v5.0

Parameters

const TItem & aItema Hid field item

HandleGlobalUnitExponent(const TItem &)

TInt HandleGlobalUnitExponent(const TItem &aItem)[private]

HandleGlobalUnitExponent

Since
S60 v5.0

Parameters

const TItem & aItema Hid field item

HandleGlobalUsagePage(const TItem &)

TInt HandleGlobalUsagePage(const TItem &aItem)[private]

HandleGlobalUsagePage

Since
S60 v5.0

Parameters

const TItem & aItema Hid field item

HandleItemL(TItem &)

voidHandleItemL(TItem &aItem)[private]

HandleItem

Since
S60 v5.0

Parameters

TItem & aItem

HandleLocalDelimiter(const TItem &)

TInt HandleLocalDelimiter(const TItem &aItem)[private]

HandleLocalDelimiter

Since
S60 v5.0

Parameters

const TItem & aItema Hid field item

HandleLocalDesignatorIndex(const TItem &)

TInt HandleLocalDesignatorIndex(const TItem &aItem)[private]

HandleLocalDesignatorIndex

Since
S60 v5.0

Parameters

const TItem & aItema Hid field item

HandleLocalDesignatorMaximum(const TItem &)

TInt HandleLocalDesignatorMaximum(const TItem &aItem)[private]

HandleLocalDesignatorMaximum

Since
S60 v5.0

Parameters

const TItem & aItema Hid field item

HandleLocalDesignatorMinimum(const TItem &)

TInt HandleLocalDesignatorMinimum(const TItem &aItem)[private]

HandleLocalDesignatorMinimum

Since
S60 v5.0

Parameters

const TItem & aItema Hid field item

HandleLocalStringIndex(const TItem &)

TInt HandleLocalStringIndex(const TItem &aItem)[private]

HandleLocalStringIndex

Since
S60 v5.0

Parameters

const TItem & aItema Hid field item

HandleLocalStringMaximum(const TItem &)

TInt HandleLocalStringMaximum(const TItem &aItem)[private]

HandleLocalStringMaximum

Since
S60 v5.0

Parameters

const TItem & aItema Hid field item

HandleLocalStringMinimum(const TItem &)

TInt HandleLocalStringMinimum(const TItem &aItem)[private]

HandleLocalStringMinimum

Since
S60 v5.0

Parameters

const TItem & aItema Hid field item

HandleLocalUsageL(const TItem &)

TInt HandleLocalUsageL(const TItem &aItem)[private]

HandleLocalUsage

Since
S60 v5.0

Parameters

const TItem & aItema Hid field item

HandleLocalUsageMaximum(const TItem &)

TInt HandleLocalUsageMaximum(const TItem &aItem)[private]

HandleLocalUsageMinimum

Since
S60 v5.0

Parameters

const TItem & aItema Hid field item

HandleLocalUsageMinimum(const TItem &)

TInt HandleLocalUsageMinimum(const TItem &aItem)[private]

HandleLocalUsageMinimum

Since
S60 v5.0

Parameters

const TItem & aItema Hid field item

HandleMainCollectionL(const TItem &)

TInt HandleMainCollectionL(const TItem &aItem)[private]

HandleMainCollection

Since
S60 v5.0

Parameters

const TItem & aItema Hid field item

HandleMainEndCollection(const TItem &)

TInt HandleMainEndCollection(const TItem &aItem)[private]

MainEndCollection

Since
S60 v5.0

Parameters

const TItem & aItema Hid field item

HandleMainFeatureL(const TItem &)

TInt HandleMainFeatureL(const TItem &aItem)[private]

HandleMainFeature

Since
S60 v5.0

Parameters

const TItem & aItema Hid field item

HandleMainInputTagL(const TItem &)

TInt HandleMainInputTagL(const TItem &aItem)[private]

HandleMainInputTagL

Since
S60 v5.0

Parameters

const TItem & aItema Hid field item

HandleMainOutputTagL(const TItem &)

TInt HandleMainOutputTagL(const TItem &aItem)[private]

HandleMainOutputTag

Since
S60 v5.0

Parameters

const TItem & aItema Hid field item

IsReservedUsagePage(TInt)

TBool IsReservedUsagePage(TIntaUsagePage)[private, static]

IsReservedUsagePage() checks if the given HID usage page is listed as reserved according to the HID clas specification, v1.11.

Since
S60 v5.0

Parameters

TInt aUsagePageThe usage page to check.

IssueWarning(TInt)

voidIssueWarning(TIntaHidWarningCode)[private]

IssueWarning() adds a TParserWarning to the warning list.

Since
S60 v5.0

Parameters

TInt aHidWarningCodeThe error or warning code, which should be in the standard HID format.

LocalItemL(const TItem &)

TInt LocalItemL(const TItem &aItem)[private]

Handle a HID descriptor local item. Stores the data in the appropriate member of the local state object, *iLocal.

Since
S60 v5.0

Parameters

const TItem & aItemThe current report descriptor tag and its associated data

MainItemL(const TItem &)

TInt MainItemL(const TItem &aItem)[private]

Handle a HID descriptor main item. This includes the creation of new field objects in the current collection and management of the global item state stack.

Since
S60 v5.0

Parameters

const TItem & aItemThe current report descriptor tag and its associated data

NewL()

IMPORT_C CParser *NewL()[static]

NewLC()

IMPORT_C CParser *NewLC()[static]

NumberOfLeadingZeros(TUint32)

TInt NumberOfLeadingZeros(TUint32aValue)[private, static]

NumberOfLeadingZeros() is used by BitsToRepresentRange(). It returns the number of leading zeros in the binary representation of a number, effectively performing a log_2 operation.

Since
S60 v5.0

Parameters

TUint32 aValueUnsigned 32-bit value

ParseL(const TDesC8 &)

IMPORT_C CReportRoot *ParseL(const TDesC8 &aRawData)

ParseL() parses a string of bytes representing a HID report descriptor. It returns a tree of collection and field objects (a CReportRoot). Ownership of the CReportRoot is transferred to the caller.

Warning messages produced during the parse process are added to a list which the driver can retrieve using the Warnings() function. Note that the list will be overwritten by the next ParseL() operation.

Errors and warnings are represented using the format described in "HID Parser Error Codes", Revision 1.2, USB Implementers' Forum, February 2000.

Since
S60 v5.0

Parameters

const TDesC8 & aRawDataThe report descriptor data to be processed

PopCollection()

voidPopCollection()[private]

Pushes a pointer to the current collection object on to the collection stack.

Note that the collection stack is used to create the tree of collections. It should not be confused with the global state stack, iGlobalStack.

Since
S60 v5.0

PushCollectionL(const CCollection *)

voidPushCollectionL(const CCollection *aCollection)[private]

Pushes a pointer to the current collection object on to the collection stack.

Note that the collection stack is used to create the tree of collections. It should not be confused with the global state stack, iGlobalStack.

Since
S60 v5.0

Parameters

const CCollection * aCollectionThe collection to be pushed onto the stack

ResetParserL()

voidResetParserL()[private]

ResetParser

Since
S60 v5.0

Member Enumerations Documentation

Enum THidGlobalTags

HID global tags

Enumerators

EGlobalUsagePage = 0x00
EGlobalLogicalMinimum = 0x01
EGlobalLogicalMaximum = 0x02
EGlobalPhysicalMinimum = 0x03
EGlobalPhysicalMaximum = 0x04
EGlobalUnitExponent = 0x05
EGlobalUnit = 0x06
EGlobalReportSize = 0x07
EGlobalReportId = 0x08
EGlobalReportCount = 0x09
EGlobalPush = 0x0a
EGlobalPop = 0x0b

Enum THidItem

THidItem defineds a set of flags used for keeping track of which items have been encountered in the report descriptor for the current report field. The flags are used with the iItemsDefined and iGlobalItemsDefined data members.

Enumerators

EUsagePage = 1<<0
ELogicalMin = 1<<1
ELogicalMax = 1<<2
EReportSize = 1<<3
EReportCount = 1<<4
EReportId = 1<<5
EUsageMin = 1<<6
EUsageMax = 1<<7
EPhysicalMin = 1<<8
EPhysicalMax = 1<<9
EUnit = 1<<10
EUnitExponent = 1<<11
EDesignatorIndex = 1<<12
EDesignatorMin = 1<<13
EDesignatorMax = 1<<14
EStringIndex = 1<<15
EStringMin = 1<<16
EStringMax = 1<<17
EInputReport = 1<<18
EOutputReport = 1<<19
EFeatureReport = 1<<20
EDelimiter = 1<<21
EUsageId = 1<<22

Enum THidLocalTags

HID local tags

Enumerators

ELocalUsage = 0x00
ELocalUsageMinimum = 0x01
ELocalUsageMaximum = 0x02
ELocalDesignatorIndex = 0x03
ELocalDesignatorMinimum = 0x04
ELocalDesignatorMaximum = 0x05
ELocalStringIndex = 0x07
ELocalStringMinimum = 0x08
ELocalStringMaximum = 0x09
ELocalDelimiter = 0x0a

Enum THidMainTags

HID main tags

Enumerators

EMainInput = 0x08
EMainOutput = 0x09
EMainFeature = 0x0b
EMainCollection = 0x0a
EMainEndCollection = 0x0c

Member Data Documentation

const TUint32 KLocalItemMask

const TUint32KLocalItemMask[private, static]

A bitmask containing the THidItem flags which represent local (as opposed to main or global) items.

const TUint32 KMandatoryItemMask

const TUint32KMandatoryItemMask[private, static]

A bitmask containing the THidItem flags which represent mandatory items.

const TUint32 KReportItemMask

const TUint32KReportItemMask[private, static]

A bitmask containing the THidItem flags which represent report items.

const TUint32 KUnusedLocalItemsMask

const TUint32KUnusedLocalItemsMask[private, static]

A bitmask containing the THidItem flags which represent local unused items.

TInt iAliasCount

TInt iAliasCount[private]

Count of alternate USAGE declarations so far

TInt iAliasCountMax

TInt iAliasCountMax[private]

Count of alternate USAGE_MAX declarations

TInt iAliasCountMin

TInt iAliasCountMin[private]

Count of alternate USAGE_MIN declarations

RPointerArray< CCollection > iCollectionStack

RPointerArray< CCollection >iCollectionStack[private]

Stack used to create the collection tree

TInt iErrorCode

TInt iErrorCode[private]

Record of any critical error encountered

TInt iFieldCount

TInt iFieldCount[private]

Field count

TParserGlobalState iGlobal

TParserGlobalState iGlobal[private]

Current global state

TUint32 iGlobalItemsDefined

TUint32 iGlobalItemsDefined[private]

Global items seen since the last main tag

RArray< TParserGlobalState > iGlobalStack

RArray< TParserGlobalState >iGlobalStack[private]

Global state stack, to allow HID descriptor PUSH and POP commands

TInt iItemNumber

TInt iItemNumber[private]

Number of the item we're currently processing

TUint32 iItemsDefined

TUint32 iItemsDefined[private]

All items forming the current item state

CField * iLocal

CField *iLocal[private]

The local state, cleared after each "Main" item Own.

TBool iLocalMultipleUse

TBool iLocalMultipleUse[private]

ETrue if a redundant local item is seen

CReportRoot * iReportRoot

CReportRoot *iReportRoot[private]

The root node of the collection tree Own.

TBool iWithinDelimiter

TBool iWithinDelimiter[private]

ETrue if currently within a delimiter pair