aboutsummaryrefslogtreecommitdiffstats
path: root/Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.c
diff options
context:
space:
mode:
Diffstat (limited to 'Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.c')
-rw-r--r--Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.c28
1 files changed, 26 insertions, 2 deletions
diff --git a/Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.c b/Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.c
index e48653897..746a00725 100644
--- a/Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.c
+++ b/Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2014.
+ Copyright (C) Dean Camera, 2015.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2014 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
@@ -216,3 +216,27 @@ void EVENT_USB_Device_ControlRequest(void)
CDC_Device_ProcessControlRequest(&VirtualSerial2_CDC_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;
+
+ if (CDCInterfaceInfo == &VirtualSerial1_CDC_Interface)
+ {
+ // CDC interface 1's host is ready to send/receive data
+ }
+ else
+ {
+ // CDC interface 2's host is ready to send/receive data
+ }
+}