Change over Joystick demo HID report descriptor to use USAGE_MINIMUM and USAGE_MAXIMU...
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Device / CDC.h
index 956ff28..62ee043 100644 (file)
@@ -1,13 +1,13 @@
 /*
              LUFA Library
 /*
              LUFA Library
-     Copyright (C) Dean Camera, 2010.
+     Copyright (C) Dean Camera, 2011.
 
   dean [at] fourwalledcubicle [dot] com
 
   dean [at] fourwalledcubicle [dot] com
-      www.fourwalledcubicle.com
+           www.lufa-lib.org
 */
 
 /*
 */
 
 /*
-  Copyright 2010  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+  Copyright 2011  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
@@ -33,8 +33,8 @@
  *
  *  Device mode driver for the library USB CDC Class driver.
  *
  *
  *  Device mode driver for the library USB CDC Class driver.
  *
- *  \note This file should not be included directly. It is automatically included as needed by the class driver
- *        dispatch header located in LUFA/Drivers/USB/Class/CDC.h.
+ *  \note This file should not be included directly. It is automatically included as needed by the USB module driver
+ *        dispatch header located in LUFA/Drivers/USB.h.
  */
 
 /** \ingroup Group_USBClassCDC
  */
 
 /** \ingroup Group_USBClassCDC
@@ -44,7 +44,7 @@
  *  The following files must be built with any user project that uses this module:
  *    - LUFA/Drivers/USB/Class/Device/CDC.c <i>(Makefile source module name: LUFA_SRC_USBCLASS)</i>
  *
  *  The following files must be built with any user project that uses this module:
  *    - LUFA/Drivers/USB/Class/Device/CDC.c <i>(Makefile source module name: LUFA_SRC_USBCLASS)</i>
  *
- *  \section Module Description
+ *  \section Sec_ModDescription Module Description
  *  Device Mode USB Class driver framework interface, for the CDC USB Class driver.
  *
  *  \note There are several major drawbacks to the CDC-ACM standard USB class, however
  *  Device Mode USB Class driver framework interface, for the CDC USB Class driver.
  *
  *  \note There are several major drawbacks to the CDC-ACM standard USB class, however
@@ -84,7 +84,7 @@
 
        /* Preprocessor Checks: */
                #if !defined(__INCLUDE_FROM_CDC_DRIVER)
 
        /* Preprocessor Checks: */
                #if !defined(__INCLUDE_FROM_CDC_DRIVER)
-                       #error Do not include this file directly. Include LUFA/Drivers/Class/CDC.h instead.
+                       #error Do not include this file directly. Include LUFA/Drivers/USB.h instead.
                #endif
 
        /* Public Interface - May be used in end-application: */
                #endif
 
        /* Public Interface - May be used in end-application: */
                                {
                                        struct
                                        {
                                {
                                        struct
                                        {
-                                               uint8_t HostToDevice; /**< Control line states from the host to device, as a set of CDC_CONTROL_LINE_OUT_*
+                                               uint8_t HostToDevice; /**< Control line states from the host to device, as a set of \c CDC_CONTROL_LINE_OUT_*
                                                                                           *   masks. This value is updated each time \ref CDC_Device_USBTask() is called.
                                                                                           */
                                                                                           *   masks. This value is updated each time \ref CDC_Device_USBTask() is called.
                                                                                           */
-                                               uint8_t DeviceToHost; /**< Control line states from the device to host, as a set of CDC_CONTROL_LINE_IN_*
+                                               uint8_t DeviceToHost; /**< Control line states from the device to host, as a set of \c CDC_CONTROL_LINE_IN_*
                                                                                           *   masks - to notify the host of changes to these values, call the
                                                                                           *   \ref CDC_Device_SendControlLineStateChange() function.
                                                                                           */
                                        } ControlLineStates; /**< Current states of the virtual serial port's control lines between the device and host. */
 
                                                                                           *   masks - to notify the host of changes to these values, call the
                                                                                           *   \ref CDC_Device_SendControlLineStateChange() function.
                                                                                           */
                                        } ControlLineStates; /**< Current states of the virtual serial port's control lines between the device and host. */
 
-                                       struct
-                                       {
-                                               uint32_t BaudRateBPS; /**< Baud rate of the virtual serial port, in bits per second. */
-                                               uint8_t  CharFormat; /**< Character format of the virtual serial port, a value from the
-                                                                                         *   \ref CDC_LineEncodingFormats_t enum.
-                                                                                         */
-                                               uint8_t  ParityType; /**< Parity setting of the virtual serial port, a value from the
-                                                                                         *   \ref CDC_LineEncodingParity_t enum.
-                                                                                         */
-                                               uint8_t  DataBits; /**< Bits of data per character of the virtual serial port. */
-                                       } LineEncoding; /** Line encoding used in the virtual serial port, for the device's information. This is generally
-                                                        *  only used if the virtual serial port data is to be reconstructed on a physical UART.
-                                                        */
+                                       CDC_LineEncoding_t LineEncoding; /** Line encoding used in the virtual serial port, for the device's information.
+                                                                         *  This is generally only used if the virtual serial port data is to be
+                                                                         *  reconstructed on a physical UART.
+                                                                         */
                                } State; /**< State data for the USB class interface within the device. All elements in this section
                                          *   are reset to their defaults when the interface is enumerated.
                                          */
                                } State; /**< State data for the USB class interface within the device. All elements in this section
                                          *   are reset to their defaults when the interface is enumerated.
                                          */
                         *
                         *  \param[in,out] CDCInterfaceInfo  Pointer to a structure containing a CDC Class configuration and state.
                         *
                         *
                         *  \param[in,out] CDCInterfaceInfo  Pointer to a structure containing a CDC Class configuration and state.
                         *
-                        *  \return Boolean true if the endpoints were successfully configured, false otherwise.
+                        *  \return Boolean \c true if the endpoints were successfully configured, \c false otherwise.
                         */
                        bool CDC_Device_ConfigureEndpoints(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);
 
                        /** Processes incoming control requests from the host, that are directed to the given CDC class interface. This should be
                         */
                        bool CDC_Device_ConfigureEndpoints(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);
 
                        /** Processes incoming control requests from the host, that are directed to the given CDC class interface. This should be
-                        *  linked to the library \ref EVENT_USB_Device_UnhandledControlRequest() event.
+                        *  linked to the library \ref EVENT_USB_Device_ControlRequest() event.
                         *
                         *  \param[in,out] CDCInterfaceInfo  Pointer to a structure containing a CDC Class configuration and state.
                         */
                         *
                         *  \param[in,out] CDCInterfaceInfo  Pointer to a structure containing a CDC Class configuration and state.
                         */
                         *  \pre This function must only be called when the Device state machine is in the \ref DEVICE_STATE_Configured state or
                         *       the call will fail.
                         *
                         *  \pre This function must only be called when the Device state machine is in the \ref DEVICE_STATE_Configured state or
                         *       the call will fail.
                         *
-                        *  \param[in,out]   CDCInterfaceInfo  Pointer to a structure containing a CDC Class configuration and state.
-                        *  \param[in]       Data              Pointer to the string to send to the host.
-                        *  \param[in]       Length            Size in bytes of the string to send to the host.
+                        *  \param[in,out] CDCInterfaceInfo  Pointer to a structure containing a CDC Class configuration and state.
+                        *  \param[in]     Data              Pointer to the string to send to the host.
+                        *  \param[in]     Length            Size in bytes of the string to send to the host.
                         *
                         *  \return A value from the \ref Endpoint_Stream_RW_ErrorCodes_t enum.
                         */
                         *
                         *  \return A value from the \ref Endpoint_Stream_RW_ErrorCodes_t enum.
                         */
        /* Private Interface - For use in library only: */
        #if !defined(__DOXYGEN__)
                /* Function Prototypes: */
        /* Private Interface - For use in library only: */
        #if !defined(__DOXYGEN__)
                /* Function Prototypes: */
-                       #if defined(__INCLUDE_FROM_CDC_CLASS_DEVICE_C)
+                       #if defined(__INCLUDE_FROM_CDC_DEVICE_C)
                                static int CDC_Device_putchar(char c,
                                                              FILE* Stream) ATTR_NON_NULL_PTR_ARG(2);
                                static int CDC_Device_getchar(FILE* Stream) ATTR_NON_NULL_PTR_ARG(1);
                                static int CDC_Device_getchar_Blocking(FILE* Stream) ATTR_NON_NULL_PTR_ARG(1);
 
                                static int CDC_Device_putchar(char c,
                                                              FILE* Stream) ATTR_NON_NULL_PTR_ARG(2);
                                static int CDC_Device_getchar(FILE* Stream) ATTR_NON_NULL_PTR_ARG(1);
                                static int CDC_Device_getchar_Blocking(FILE* Stream) ATTR_NON_NULL_PTR_ARG(1);
 
-                               void CDC_Device_Event_Stub(void);
+                               void CDC_Device_Event_Stub(void) ATTR_CONST;
                                void EVENT_CDC_Device_LineEncodingChanged(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
                                                                          ATTR_WEAK ATTR_NON_NULL_PTR_ARG(1) ATTR_ALIAS(CDC_Device_Event_Stub);
                                void EVENT_CDC_Device_ControLineStateChanged(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
                                void EVENT_CDC_Device_LineEncodingChanged(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
                                                                          ATTR_WEAK ATTR_NON_NULL_PTR_ARG(1) ATTR_ALIAS(CDC_Device_Event_Stub);
                                void EVENT_CDC_Device_ControLineStateChanged(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)