mirror of
https://github.com/felis/USB_Host_Shield_2.0.git
synced 2024-03-22 11:31:26 +01:00
Added flag bRptProtoEnable to HIDBoot() constructor. The flag defaults to false in order to maintain current behavior (Boot Protocol). If flag is the to true, HIDBoot() will enable the Report Protocol. This modification is very useful for communication with HID devices with the full, richer, Report Protocol.
This commit is contained in:
parent
9eed52026b
commit
e9c28d762d
1 changed files with 6 additions and 4 deletions
10
hidboot.h
10
hidboot.h
|
@ -210,6 +210,7 @@ class HIDBoot : public USBHID //public USBDeviceConfig, public UsbConfigXtracter
|
||||||
uint32_t qNextPollTime; // next poll time
|
uint32_t qNextPollTime; // next poll time
|
||||||
bool bPollEnable; // poll enable flag
|
bool bPollEnable; // poll enable flag
|
||||||
uint8_t bInterval; // largest interval
|
uint8_t bInterval; // largest interval
|
||||||
|
bool bRptProtoEnable; // Report Protocol enable flag
|
||||||
|
|
||||||
void Initialize();
|
void Initialize();
|
||||||
|
|
||||||
|
@ -218,7 +219,7 @@ class HIDBoot : public USBHID //public USBDeviceConfig, public UsbConfigXtracter
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
HIDBoot(USB *p);
|
HIDBoot(USB *p, bool bRptProtoEnable=false);
|
||||||
|
|
||||||
virtual bool SetReportParser(uint8_t id, HIDReportParser *prs) {
|
virtual bool SetReportParser(uint8_t id, HIDReportParser *prs) {
|
||||||
pRptParser[id] = prs;
|
pRptParser[id] = prs;
|
||||||
|
@ -252,10 +253,11 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
template <const uint8_t BOOT_PROTOCOL>
|
template <const uint8_t BOOT_PROTOCOL>
|
||||||
HIDBoot<BOOT_PROTOCOL>::HIDBoot(USB *p) :
|
HIDBoot<BOOT_PROTOCOL>::HIDBoot(USB *p, bool bRptProtoEnable) :
|
||||||
USBHID(p),
|
USBHID(p),
|
||||||
qNextPollTime(0),
|
qNextPollTime(0),
|
||||||
bPollEnable(false) {
|
bPollEnable(false),
|
||||||
|
bRptProtoEnable(bRptProtoEnable) {
|
||||||
Initialize();
|
Initialize();
|
||||||
|
|
||||||
for(int i = 0; i < epMUL(BOOT_PROTOCOL); i++) {
|
for(int i = 0; i < epMUL(BOOT_PROTOCOL); i++) {
|
||||||
|
@ -456,7 +458,7 @@ uint8_t HIDBoot<BOOT_PROTOCOL>::Init(uint8_t parent, uint8_t port, bool lowspeed
|
||||||
// Yes, mouse wants SetProtocol and SetIdle too!
|
// Yes, mouse wants SetProtocol and SetIdle too!
|
||||||
for(uint8_t i = 0; i < epMUL(BOOT_PROTOCOL); i++) {
|
for(uint8_t i = 0; i < epMUL(BOOT_PROTOCOL); i++) {
|
||||||
USBTRACE2("\r\nInterface:", i);
|
USBTRACE2("\r\nInterface:", i);
|
||||||
rcode = SetProtocol(i, USB_HID_BOOT_PROTOCOL);
|
rcode = SetProtocol(i, bRptProtoEnable ? HID_RPT_PROTOCOL : HID_BOOT_PROTOCOL);
|
||||||
if(rcode) goto FailSetProtocol;
|
if(rcode) goto FailSetProtocol;
|
||||||
USBTRACE2("PROTOCOL SET HID_BOOT rcode:", rcode);
|
USBTRACE2("PROTOCOL SET HID_BOOT rcode:", rcode);
|
||||||
rcode = SetIdle(i, 0, 0);
|
rcode = SetIdle(i, 0, 0);
|
||||||
|
|
Loading…
Reference in a new issue