/*
LUFA Library
Copyright (C) Dean Camera, 2010.
-
+
dean [at] fourwalledcubicle [dot] com
- www.fourwalledcubicle.com
+ www.lufa-lib.org
*/
/*
Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com)
- Permission to use, copy, modify, distribute, and sell this
+ Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
- without fee, provided that the above copyright notice appear in
+ without fee, provided that the above copyright notice appear in
all copies and that both that the copyright notice and this
- permission notice and warranty disclaimer appear in supporting
- documentation, and that the name of the author not be used in
- advertising or publicity pertaining to distribution of the
+ permission notice and warranty disclaimer appear in supporting
+ documentation, and that the name of the author not be used in
+ advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
The author disclaim all warranties with regard to this
/* Includes: */
#include <LUFA/Drivers/USB/USB.h>
-
+
#include "VirtualSerialHost.h"
-
- /* Macros: */
- /** Interface Class value for the CDC class. */
- #define CDC_CONTROL_CLASS 0x02
- /** Interface Class value for the CDC Communication Interface subclass. */
- #define CDC_CONTROL_SUBCLASS 0x02
+ /* Macros: */
+ /** Pipe number for the CDC data IN pipe. */
+ #define CDC_DATA_IN_PIPE 1
- /** Interface Class value for the CDC protocol. */
- #define CDC_CONTROL_PROTOCOL 0x01
-
- /** Interface Class value for the CDC data class. */
- #define CDC_DATA_CLASS 0x0A
+ /** Pipe number for the CDC data OUT pipe. */
+ #define CDC_DATA_OUT_PIPE 2
- /** Interface Class value for the CDC data subclass. */
- #define CDC_DATA_SUBCLASS 0x00
+ /** Pipe number for the CDC notification pipe. */
+ #define CDC_NOTIFICATION_PIPE 3
- /** Interface Class value for the CDC data protocol. */
- #define CDC_DATA_PROTOCOL 0x00
-
/* Enums: */
- /** Enum for the possible return codes of the ProcessConfigurationDescriptor() function. */
+ /** Enum for the possible return codes of the \ref ProcessConfigurationDescriptor() function. */
enum CDCHost_GetConfigDescriptorDataCodes_t
{
SuccessfulConfigRead = 0, /**< Configuration Descriptor was processed successfully */
ControlError = 1, /**< A control request to the device failed to complete successfully */
DescriptorTooLarge = 2, /**< The device's Configuration Descriptor is too large to process */
InvalidConfigDataReturned = 3, /**< The device returned an invalid Configuration Descriptor */
- NoCDCInterfaceFound = 4, /**< A compatible CDC interface was not found in the device's Configuration Descriptor */
- NoEndpointFound = 5, /**< Compatible CDC endpoints were not found in the device's CDC interface */
+ NoCompatibleInterfaceFound = 4, /**< A compatible interface with the required endpoints was not found */
};
/* Function Prototypes: */
- uint8_t ProcessConfigurationDescriptor(void);
-
+ uint8_t ProcessConfigurationDescriptor(void);
+
uint8_t DComp_NextCDCControlInterface(void* CurrentDescriptor);
uint8_t DComp_NextCDCDataInterface(void* CurrentDescriptor);
uint8_t DComp_NextCDCDataInterfaceEndpoint(void* CurrentDescriptor);
-
+
#endif
+