diff options
author | Dean Camera <dean@fourwalledcubicle.com> | 2009-07-31 03:35:24 +0000 |
---|---|---|
committer | Dean Camera <dean@fourwalledcubicle.com> | 2009-07-31 03:35:24 +0000 |
commit | ac593611c9ec2fc7f097b488c316ce69ac88f3ae (patch) | |
tree | aa255c63ec2b2fc84345c489c1f1201cf0fd6152 /Demos/Device | |
parent | eb410869474e14ec5762a96b930bc200409b6915 (diff) | |
download | lufa-ac593611c9ec2fc7f097b488c316ce69ac88f3ae.tar.gz lufa-ac593611c9ec2fc7f097b488c316ce69ac88f3ae.tar.bz2 lufa-ac593611c9ec2fc7f097b488c316ce69ac88f3ae.zip |
Fixed the ClassDriver GenericHID demo so that it echoes back reports as indicated in the demo overview.
Diffstat (limited to 'Demos/Device')
-rw-r--r-- | Demos/Device/ClassDriver/GenericHID/GenericHID.c | 19 | ||||
-rw-r--r-- | Demos/Device/ClassDriver/GenericHID/GenericHID.txt | 4 | ||||
-rw-r--r-- | Demos/Device/LowLevel/GenericHID/GenericHID.txt | 4 |
3 files changed, 20 insertions, 7 deletions
diff --git a/Demos/Device/ClassDriver/GenericHID/GenericHID.c b/Demos/Device/ClassDriver/GenericHID/GenericHID.c index 9db30cebf..323d69336 100644 --- a/Demos/Device/ClassDriver/GenericHID/GenericHID.c +++ b/Demos/Device/ClassDriver/GenericHID/GenericHID.c @@ -39,6 +39,14 @@ /** Buffer to hold the previously generated HID report, for comparison purposes inside the HID class driver. */
uint8_t PrevHIDReportBuffer[GENERIC_REPORT_SIZE];
+/** Structure to contain reports from the host, so that they can be echoed back upon request */
+struct
+{
+ uint8_t ReportID;
+ uint16_t ReportSize;
+ uint8_t ReportData[GENERIC_REPORT_SIZE];
+} HIDReportEcho;
+
/** LUFA HID Class driver interface configuration and state information. This structure is
* passed to all HID Class driver functions, so that multiple instances of the same class
* within a device can be differentiated from one another.
@@ -139,9 +147,12 @@ ISR(TIMER0_COMPA_vect, ISR_BLOCK) bool CALLBACK_HID_Device_CreateHIDReport(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo, uint8_t* const ReportID,
void* ReportData, uint16_t* ReportSize)
{
- // Create generic HID report here
+ if (HIDReportEcho.ReportID)
+ *ReportID = HIDReportEcho.ReportID;
+
+ memcpy(ReportData, HIDReportEcho.ReportData, HIDReportEcho.ReportSize);
- *ReportSize = 0;
+ *ReportSize = HIDReportEcho.ReportSize;
return true;
}
@@ -155,5 +166,7 @@ bool CALLBACK_HID_Device_CreateHIDReport(USB_ClassInfo_HID_Device_t* const HIDIn void CALLBACK_HID_Device_ProcessHIDReport(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo, const uint8_t ReportID,
const void* ReportData, const uint16_t ReportSize)
{
- // Process received generic HID report here
+ HIDReportEcho.ReportID = ReportID;
+ HIDReportEcho.ReportSize = ReportSize;
+ memcpy(HIDReportEcho.ReportData, ReportData, ReportSize);
}
diff --git a/Demos/Device/ClassDriver/GenericHID/GenericHID.txt b/Demos/Device/ClassDriver/GenericHID/GenericHID.txt index fc5c136a2..226b007cf 100644 --- a/Demos/Device/ClassDriver/GenericHID/GenericHID.txt +++ b/Demos/Device/ClassDriver/GenericHID/GenericHID.txt @@ -51,8 +51,8 @@ *
* Generic HID device demonstration application. This gives a simple reference application
* for implementing a generic HID device, using the basic USB HID drivers in all modern
- * OSes (i.e. no special drivers required). It accepts and sends up to 255 byte reports to
- * and from a USB Host, and by default transmits the last sent report back to the host.
+ * OSes (i.e. no special drivers required). By default it accepts and sends up to 8 byte reports
+ * to and from a USB Host, and transmits the last sent report back to the host.
*
* On start-up the system will automatically enumerate and function as a vendor HID device.
* When controlled by a custom HID class application, reports can be sent and received by
diff --git a/Demos/Device/LowLevel/GenericHID/GenericHID.txt b/Demos/Device/LowLevel/GenericHID/GenericHID.txt index fc5c136a2..226b007cf 100644 --- a/Demos/Device/LowLevel/GenericHID/GenericHID.txt +++ b/Demos/Device/LowLevel/GenericHID/GenericHID.txt @@ -51,8 +51,8 @@ *
* Generic HID device demonstration application. This gives a simple reference application
* for implementing a generic HID device, using the basic USB HID drivers in all modern
- * OSes (i.e. no special drivers required). It accepts and sends up to 255 byte reports to
- * and from a USB Host, and by default transmits the last sent report back to the host.
+ * OSes (i.e. no special drivers required). By default it accepts and sends up to 8 byte reports
+ * to and from a USB Host, and transmits the last sent report back to the host.
*
* On start-up the system will automatically enumerate and function as a vendor HID device.
* When controlled by a custom HID class application, reports can be sent and received by
|