diff options
author | Dean Camera <dean@fourwalledcubicle.com> | 2009-04-15 00:56:12 +0000 |
---|---|---|
committer | Dean Camera <dean@fourwalledcubicle.com> | 2009-04-15 00:56:12 +0000 |
commit | ef06bfd1c0ef5272c32808e23d0fd60d2d1bca9c (patch) | |
tree | 7de576e7adb5b006d6ba4ed0f2813a258dd693a4 /Demos | |
parent | ecaf872177e771b6b7e331b47a5b68832b5dd126 (diff) | |
download | lufa-ef06bfd1c0ef5272c32808e23d0fd60d2d1bca9c.tar.gz lufa-ef06bfd1c0ef5272c32808e23d0fd60d2d1bca9c.tar.bz2 lufa-ef06bfd1c0ef5272c32808e23d0fd60d2d1bca9c.zip |
Fixed minor issue with the RNDISEthernet demo DHCP protocol decoder routine using incorrectly named variables (thanks to Jonathan Oakley).
Fixed GenericHIDHost demo report write routine incorrect for control type requests (thanks to Andrei).
Diffstat (limited to 'Demos')
-rw-r--r-- | Demos/Device/RNDISEthernet/ProtocolDecoders.c | 2 | ||||
-rw-r--r-- | Demos/Host/GenericHIDHost/GenericHIDHost.c | 12 | ||||
-rw-r--r-- | Demos/Host/GenericHIDHost/GenericHIDHost.h | 6 |
3 files changed, 16 insertions, 4 deletions
diff --git a/Demos/Device/RNDISEthernet/ProtocolDecoders.c b/Demos/Device/RNDISEthernet/ProtocolDecoders.c index db5da3c81..add0333f2 100644 --- a/Demos/Device/RNDISEthernet/ProtocolDecoders.c +++ b/Demos/Device/RNDISEthernet/ProtocolDecoders.c @@ -273,7 +273,7 @@ void DecodeDHCPHeader(void* InDataStart) }
}
- DHCPOptionsINStart += ((DHCPOptionsINStart[0] == DHCP_OPTION_PAD) ? 1 : (DHCPOptionsINStart[1] + 2));
+ DHCPOptions += ((DHCPOptions[0] == DHCP_OPTION_PAD) ? 1 : (DHCPOptions[1] + 2));
}
#endif
diff --git a/Demos/Host/GenericHIDHost/GenericHIDHost.c b/Demos/Host/GenericHIDHost/GenericHIDHost.c index 4d2fefb38..716f1c333 100644 --- a/Demos/Host/GenericHIDHost/GenericHIDHost.c +++ b/Demos/Host/GenericHIDHost/GenericHIDHost.c @@ -219,9 +219,11 @@ void ReadNextReport(void) /** Writes a report to the attached device.
*
* \param ReportOUTData Buffer containing the report to send to the device
+ * \param ReportIndex Index of the report in the device (zero if the device does not use multiple reports)
+ * \param ReportType Type of report to send, either HID_REPORTTYPE_OUTPUT or HID_REPORTTYPE_FEATURE
* \param ReportLength Length of the report to send
*/
-void WriteNextReport(uint8_t* ReportOUTData, uint16_t ReportLength)
+void WriteNextReport(uint8_t* ReportOUTData, uint8_t ReportIndex, uint8_t ReportType, uint16_t ReportLength)
{
/* Select and unfreeze HID data OUT pipe */
Pipe_SelectPipe(HID_DATA_OUT_PIPE);
@@ -240,8 +242,12 @@ void WriteNextReport(uint8_t* ReportOUTData, uint16_t ReportLength) return;
}
+
+ /* If the report index is used, send it before the report data */
+ if (ReportIndex)
+ Pipe_Write_Byte(ReportIndex);
- /* Read in HID report data */
+ /* Write out HID report data */
Pipe_Write_Stream_LE(ReportOUTData, ReportLength);
/* Clear the OUT endpoint, send last data packet */
@@ -257,7 +263,7 @@ void WriteNextReport(uint8_t* ReportOUTData, uint16_t ReportLength) {
bmRequestType: (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE),
bRequest: REQ_SetReport,
- wValue: 0,
+ wValue: ((ReportType << 8) | ReportIndex),
wIndex: 0,
wLength: ReportLength,
};
diff --git a/Demos/Host/GenericHIDHost/GenericHIDHost.h b/Demos/Host/GenericHIDHost/GenericHIDHost.h index d0f3e7ae4..99b4599f1 100644 --- a/Demos/Host/GenericHIDHost/GenericHIDHost.h +++ b/Demos/Host/GenericHIDHost/GenericHIDHost.h @@ -64,6 +64,12 @@ /** HID Class specific request to send a HID report to the device. */
#define REQ_SetReport 0x09
+ /** HID Report type specifier, for output reports to a device */
+ #define HID_REPORTTYPE_OUTPUT 0x02
+
+ /** HID Report type specifier, for feature reports to a device */
+ #define HID_REPORTTYPE_FEATURE 0x03
+
/* Task Definitions: */
TASK(USB_HID_Host);
|