CCID: Add support for PC-to-Reader XfrBlock message
[pub/USBasp.git] / Demos / Device / ClassDriver / VirtualSerialMouse / VirtualSerialMouse.c
index 73f9e38..0eeacdf 100644 (file)
@@ -1,13 +1,13 @@
 /*
              LUFA Library
 /*
              LUFA Library
-     Copyright (C) Dean Camera, 2013.
+     Copyright (C) Dean Camera, 2018.
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
-  Copyright 2013  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+  Copyright 2018  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 
   Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
 
   Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
@@ -44,7 +44,7 @@ USB_ClassInfo_CDC_Device_t VirtualSerial_CDC_Interface =
        {
                .Config =
                        {
        {
                .Config =
                        {
-                               .ControlInterfaceNumber         = 0,
+                               .ControlInterfaceNumber         = INTERFACE_ID_CDC_CCI,
                                .DataINEndpoint                 =
                                        {
                                                .Address                = CDC_TX_EPADDR,
                                .DataINEndpoint                 =
                                        {
                                                .Address                = CDC_TX_EPADDR,
@@ -77,7 +77,7 @@ USB_ClassInfo_HID_Device_t Mouse_HID_Interface =
        {
                .Config =
                        {
        {
                .Config =
                        {
-                               .InterfaceNumber                = 2,
+                               .InterfaceNumber                = INTERFACE_ID_Mouse,
                                .ReportINEndpoint               =
                                        {
                                                .Address                = MOUSE_EPADDR,
                                .ReportINEndpoint               =
                                        {
                                                .Address                = MOUSE_EPADDR,
@@ -265,3 +265,20 @@ void CALLBACK_HID_Device_ProcessHIDReport(USB_ClassInfo_HID_Device_t* const HIDI
        // Unused (but mandatory for the HID class driver) in this demo, since there are no Host->Device reports
 }
 
        // Unused (but mandatory for the HID class driver) in this demo, since there are no Host->Device reports
 }
 
+/** CDC class driver callback function the processing of changes to the virtual
+ *  control lines sent from the host..
+ *
+ *  \param[in] CDCInterfaceInfo  Pointer to the CDC class interface configuration structure being referenced
+ */
+void EVENT_CDC_Device_ControLineStateChanged(USB_ClassInfo_CDC_Device_t *const CDCInterfaceInfo)
+{
+       /* You can get changes to the virtual CDC lines in this callback; a common
+          use-case is to use the Data Terminal Ready (DTR) flag to enable and
+          disable CDC communications in your application when set to avoid the
+          application blocking while waiting for a host to become ready and read
+          in the pending data from the USB endpoints.
+       */
+       bool HostReady = (CDCInterfaceInfo->State.ControlLineStates.HostToDevice & CDC_CONTROL_LINE_OUT_DTR) != 0;
+
+       (void)HostReady;
+}