X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/b9b03aadb219d06fbad9d110e508db93e45461af..2a0c28e6e47c8a173f32fc99cd8666a2633c5c12:/Demos/Device/ClassDriver/DualCDC/DualCDC.c?ds=inline diff --git a/Demos/Device/ClassDriver/DualCDC/DualCDC.c b/Demos/Device/ClassDriver/DualCDC/DualCDC.c index 216902c67..adc17aed3 100644 --- a/Demos/Device/ClassDriver/DualCDC/DualCDC.c +++ b/Demos/Device/ClassDriver/DualCDC/DualCDC.c @@ -41,18 +41,26 @@ * within a device can be differentiated from one another. This is for the first CDC interface, * which sends strings to the host for each joystick movement. */ -USB_ClassInfo_CDC_t VirtualSerial1_CDC_Interface = +USB_ClassInfo_CDC_Device_t VirtualSerial1_CDC_Interface = { - .ControlInterfaceNumber = 0, + .Config = + { + .ControlInterfaceNumber = 0, - .DataINEndpointNumber = CDC1_TX_EPNUM, - .DataINEndpointSize = CDC_TXRX_EPSIZE, + .DataINEndpointNumber = CDC1_TX_EPNUM, + .DataINEndpointSize = CDC_TXRX_EPSIZE, - .DataOUTEndpointNumber = CDC1_RX_EPNUM, - .DataOUTEndpointSize = CDC_TXRX_EPSIZE, + .DataOUTEndpointNumber = CDC1_RX_EPNUM, + .DataOUTEndpointSize = CDC_TXRX_EPSIZE, - .NotificationEndpointNumber = CDC1_NOTIFICATION_EPNUM, - .NotificationEndpointSize = CDC_NOTIFICATION_EPSIZE, + .NotificationEndpointNumber = CDC1_NOTIFICATION_EPNUM, + .NotificationEndpointSize = CDC_NOTIFICATION_EPSIZE, + }, + + .State = + { + // Leave all state values to their defaults + } }; /** LUFA CDC Class driver interface configuration and state information. This structure is @@ -60,18 +68,26 @@ USB_ClassInfo_CDC_t VirtualSerial1_CDC_Interface = * within a device can be differentiated from one another. This is for the second CDC interface, * which echos back all received data from the host. */ -USB_ClassInfo_CDC_t VirtualSerial2_CDC_Interface = +USB_ClassInfo_CDC_Device_t VirtualSerial2_CDC_Interface = { - .ControlInterfaceNumber = 2, - - .DataINEndpointNumber = CDC2_TX_EPNUM, - .DataINEndpointSize = CDC_TXRX_EPSIZE, - - .DataOUTEndpointNumber = CDC2_RX_EPNUM, - .DataOUTEndpointSize = CDC_TXRX_EPSIZE, - - .NotificationEndpointNumber = CDC2_NOTIFICATION_EPNUM, - .NotificationEndpointSize = CDC_NOTIFICATION_EPSIZE, + .Config = + { + .ControlInterfaceNumber = 2, + + .DataINEndpointNumber = CDC2_TX_EPNUM, + .DataINEndpointSize = CDC_TXRX_EPSIZE, + + .DataOUTEndpointNumber = CDC2_RX_EPNUM, + .DataOUTEndpointSize = CDC_TXRX_EPSIZE, + + .NotificationEndpointNumber = CDC2_NOTIFICATION_EPNUM, + .NotificationEndpointSize = CDC_NOTIFICATION_EPSIZE, + }, + + .State = + { + // Leave all state values to their defaults + } }; /** Main program entry point. This routine contains the overall program flow, including initial @@ -88,17 +104,17 @@ int main(void) CheckJoystickMovement(); /* Discard all received data on the first CDC interface */ - uint16_t BytesToDiscard = USB_CDC_BytesReceived(&VirtualSerial1_CDC_Interface); + uint16_t BytesToDiscard = CDC_Device_BytesReceived(&VirtualSerial1_CDC_Interface); while (BytesToDiscard--) - USB_CDC_ReceiveByte(&VirtualSerial1_CDC_Interface); + CDC_Device_ReceiveByte(&VirtualSerial1_CDC_Interface); /* Echo all received data on the second CDC interface */ - uint16_t BytesToEcho = USB_CDC_BytesReceived(&VirtualSerial2_CDC_Interface); + uint16_t BytesToEcho = CDC_Device_BytesReceived(&VirtualSerial2_CDC_Interface); while (BytesToEcho--) - USB_CDC_SendByte(&VirtualSerial2_CDC_Interface, USB_CDC_ReceiveByte(&VirtualSerial2_CDC_Interface)); + CDC_Device_SendByte(&VirtualSerial2_CDC_Interface, CDC_Device_ReceiveByte(&VirtualSerial2_CDC_Interface)); - USB_CDC_USBTask(&VirtualSerial1_CDC_Interface); - USB_CDC_USBTask(&VirtualSerial2_CDC_Interface); + CDC_Device_USBTask(&VirtualSerial1_CDC_Interface); + CDC_Device_USBTask(&VirtualSerial2_CDC_Interface); USB_USBTask(); } } @@ -128,7 +144,7 @@ void CheckJoystickMovement(void) char* ReportString = NULL; static bool ActionSent = false; - char* JoystickStrings[] = + char* const JoystickStrings[] = { "Joystick Up\r\n", "Joystick Down\r\n", @@ -154,7 +170,7 @@ void CheckJoystickMovement(void) { ActionSent = true; - USB_CDC_SendString(&VirtualSerial1_CDC_Interface, ReportString, strlen(ReportString)); + CDC_Device_SendString(&VirtualSerial1_CDC_Interface, ReportString, strlen(ReportString)); } } @@ -175,16 +191,16 @@ void EVENT_USB_ConfigurationChanged(void) { LEDs_SetAllLEDs(LEDMASK_USB_READY); - if (!(USB_CDC_ConfigureEndpoints(&VirtualSerial1_CDC_Interface))) + if (!(CDC_Device_ConfigureEndpoints(&VirtualSerial1_CDC_Interface))) LEDs_SetAllLEDs(LEDMASK_USB_ERROR); - if (!(USB_CDC_ConfigureEndpoints(&VirtualSerial2_CDC_Interface))) + if (!(CDC_Device_ConfigureEndpoints(&VirtualSerial2_CDC_Interface))) LEDs_SetAllLEDs(LEDMASK_USB_ERROR); } /** Event handler for the library USB Unhandled Control Packet event. */ void EVENT_USB_UnhandledControlPacket(void) { - USB_CDC_ProcessControlPacket(&VirtualSerial1_CDC_Interface); - USB_CDC_ProcessControlPacket(&VirtualSerial2_CDC_Interface); + CDC_Device_ProcessControlPacket(&VirtualSerial1_CDC_Interface); + CDC_Device_ProcessControlPacket(&VirtualSerial2_CDC_Interface); }