23#include "pedigree/kernel/compiler.h"
24#include "pedigree/kernel/processor/types.h"
25#include "pedigree/kernel/utilities/Vector.h"
26#include "pedigree/kernel/utilities/new"
28#include "modules/drivers/common/hid/HidUtils.h"
36 void parseDescriptor(uint8_t* pDescriptor,
size_t nDescriptorLength);
42 void feedInput(uint8_t* pBuffer, uint8_t* pOldBuffer,
size_t nBufferSize);
46 enum ItemType { MainItem = 0, GlobalItem = 1, LocalItem = 2 };
55 EndCollectionItem = 0xc,
67 ReportCountItem = 0x9,
78 enum InputItemFlags { InputConstant = 1, InputVariable = 2, InputRelative = 4 };
102 void resetLocalValues();
105 uint16_t getUsageByIndex(uint16_t nUsageIndex);
115 void feedInput(uint8_t* pBuffer, uint8_t* pOldBuffer,
size_t nBufferSize,
size_t& nBitOffset,
119 enum { Constant, Absolute, Relative, Array } type;
129 enum ChildType { CollectionChild, InputBlockChild };
131 inline Child(
Collection* pC) : type(CollectionChild), pCollection(pC) {}
132 inline Child(
InputBlock* pIB) : type(InputBlockChild), pInputBlock(pIB) {}
143 void feedInput(uint8_t* pBuffer, uint8_t* pOldBuffer,
size_t nBufferSize,
size_t& nBitOffset,
148 HidDeviceType guessInputDevice();
162 size_t m_ReportBits[256];
163 uint8_t* m_OldReports[256];
InputItemFlags
Input item flags.
ItemType
The HID item types.
ItemTag
The HID item tags.
Collection * m_pRootCollection
The root collection, under which everything is.
A vector / dynamic array.
Structure representing a Collection whitin a report.
LocalState state
The local state of the collection.
Collection * pParent
Our parent.
Vector< Child * > childs
All the childs in this collection.
Structure holding various global and local values for a Main item.