\r
#include "GenericHIDHost.h"\r
\r
-/* Project Tags, for reading out using the ButtLoad project */\r
-BUTTLOADTAG(ProjName, "LUFA GenHid Host App");\r
-BUTTLOADTAG(BuildTime, __TIME__);\r
-BUTTLOADTAG(BuildDate, __DATE__);\r
-BUTTLOADTAG(LUFAVersion, "LUFA V" LUFA_VERSION_STRING);\r
-\r
/* Scheduler Task List */\r
TASK_LIST\r
{\r
- { Task: USB_USBTask , TaskStatus: TASK_STOP },\r
- { Task: USB_HID_Host , TaskStatus: TASK_STOP },\r
+ { .Task = USB_USBTask , .TaskStatus = TASK_STOP },\r
+ { .Task = USB_HID_Host , .TaskStatus = TASK_STOP },\r
};\r
\r
\r
Pipe_SelectPipe(HID_DATA_IN_PIPE);\r
Pipe_Unfreeze();\r
\r
- /* Ensure pipe contains data and is ready to be read before continuing */\r
- if (!(Pipe_ReadWriteAllowed()))\r
+ /* Check to see if a packet has been received */\r
+ if (!(Pipe_IsINReceived()))\r
{\r
#if !defined(INTERRUPT_DATA_PIPE)\r
/* Refreeze HID data IN pipe */\r
Pipe_Freeze();\r
#endif\r
- \r
+ \r
return;\r
}\r
\r
- uint8_t ReportINData[Pipe_BytesInPipe()];\r
+ /* Ensure pipe contains data before trying to read from it */\r
+ if (Pipe_IsReadWriteAllowed())\r
+ {\r
+ uint8_t ReportINData[Pipe_BytesInPipe()];\r
\r
- /* Read in HID report data */\r
- Pipe_Read_Stream_LE(&ReportINData, sizeof(ReportINData)); \r
+ /* Read in HID report data */\r
+ Pipe_Read_Stream_LE(&ReportINData, sizeof(ReportINData));\r
+ \r
+ /* Print report data through the serial port */\r
+ for (uint16_t CurrByte = 0; CurrByte < sizeof(ReportINData); CurrByte++)\r
+ printf_P(PSTR("0x%02X "), ReportINData[CurrByte]);\r
+ \r
+ puts_P(PSTR("\r\n"));\r
+ }\r
\r
/* Clear the IN endpoint, ready for next data packet */\r
- Pipe_ClearCurrentBank();\r
- \r
- /* Print report data through the serial port */\r
- for (uint16_t CurrByte = 0; CurrByte < sizeof(ReportINData); CurrByte++)\r
- printf_P(PSTR("0x%02X "), ReportINData[CurrByte]);\r
- \r
- puts_P(PSTR("\r\n"));\r
+ Pipe_ClearIN();\r
\r
#if !defined(INTERRUPT_DATA_PIPE)\r
/* Refreeze HID data IN pipe */\r
Pipe_Unfreeze();\r
\r
/* Ensure pipe is ready to be written to before continuing */\r
- if (!(Pipe_ReadWriteAllowed()))\r
+ if (!(Pipe_IsOUTReady()))\r
{\r
/* Refreeze the data OUT pipe */\r
Pipe_Freeze();\r
Pipe_Write_Stream_LE(ReportOUTData, ReportLength); \r
\r
/* Clear the OUT endpoint, send last data packet */\r
- Pipe_ClearCurrentBank();\r
+ Pipe_ClearOUT();\r
\r
/* Refreeze the data OUT pipe */\r
Pipe_Freeze();\r
else\r
{\r
/* Class specific request to send a HID report to the device */\r
- USB_HostRequest = (USB_Host_Request_Header_t)\r
+ USB_ControlRequest = (USB_Request_Header_t)\r
{\r
- bmRequestType: (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE),\r
- bRequest: REQ_SetReport,\r
- wValue: ((ReportType << 8) | ReportIndex),\r
- wIndex: 0,\r
- wLength: ReportLength,\r
+ .bmRequestType = (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE),\r
+ .bRequest = REQ_SetReport,\r
+ .wValue = ((ReportType << 8) | ReportIndex),\r
+ .wIndex = 0,\r
+ .wLength = ReportLength,\r
};\r
\r
/* Select the control pipe for the request transfer */\r
{\r
case HOST_STATE_Addressed:\r
/* Standard request to set the device configuration to configuration 1 */\r
- USB_HostRequest = (USB_Host_Request_Header_t)\r
+ USB_ControlRequest = (USB_Request_Header_t)\r
{\r
- bmRequestType: (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_DEVICE),\r
- bRequest: REQ_SetConfiguration,\r
- wValue: 1,\r
- wIndex: 0,\r
- wLength: 0,\r
+ .bmRequestType = (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_DEVICE),\r
+ .bRequest = REQ_SetConfiguration,\r
+ .wValue = 1,\r
+ .wIndex = 0,\r
+ .wLength = 0,\r
};\r
\r
/* Select the control pipe for the request transfer */\r