Fixed broken USE_RAM_DESCRIPTORS compile time option when the FIXED_NUM_CONFIGURATION...
[pub/USBasp.git] / Demos / Device / ClassDriver / VirtualSerialMassStorage / VirtualSerialMassStorage.c
index 6dc1ab6..6c3da29 100644 (file)
@@ -1,13 +1,13 @@
 /*
              LUFA Library
 /*
              LUFA Library
-     Copyright (C) Dean Camera, 2013.
+     Copyright (C) Dean Camera, 2015.
 
   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 2015  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
@@ -92,7 +92,7 @@ USB_ClassInfo_MS_Device_t Disk_MS_Interface =
        };
 
 /** Standard file stream for the CDC interface when set up, so that the virtual CDC COM port can be
        };
 
 /** Standard file stream for the CDC interface when set up, so that the virtual CDC COM port can be
- *  used like any regular character stream in the C APIs
+ *  used like any regular character stream in the C APIs.
  */
 static FILE USBSerialStream;
 
  */
 static FILE USBSerialStream;
 
@@ -224,6 +224,22 @@ void EVENT_USB_Device_ControlRequest(void)
        MS_Device_ProcessControlRequest(&Disk_MS_Interface);
 }
 
        MS_Device_ProcessControlRequest(&Disk_MS_Interface);
 }
 
+/** 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;
+}
+
 /** Mass Storage class driver callback function the reception of SCSI commands from the host, which must be processed.
  *
  *  \param[in] MSInterfaceInfo  Pointer to the Mass Storage class interface configuration structure being referenced
 /** Mass Storage class driver callback function the reception of SCSI commands from the host, which must be processed.
  *
  *  \param[in] MSInterfaceInfo  Pointer to the Mass Storage class interface configuration structure being referenced