Newer AS7 integration binary, with ASF detection fixes and newer image assets.
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Host / CDCClassHost.h
index 1b421c5..2a81572 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
 /** \ingroup Group_USBClassCDC
  *  \defgroup Group_USBClassCDCHost CDC Class Host Mode Driver
  *
 /** \ingroup Group_USBClassCDC
  *  \defgroup Group_USBClassCDCHost CDC Class Host Mode Driver
  *
- *  \section Sec_Dependencies Module Source Dependencies
+ *  \section Sec_USBClassCDCHost_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
  *    - LUFA/Drivers/USB/Class/Host/CDCClassHost.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/Host/CDCClassHost.c <i>(Makefile source module name: LUFA_SRC_USBCLASS)</i>
  *
- *  \section Sec_ModDescription Module Description
+ *  \section Sec_USBClassCDCHost_ModDescription Module Description
  *  Host Mode USB Class driver framework interface, for the CDC USB Class driver.
  *
  *  @{
  *  Host Mode USB Class driver framework interface, for the CDC USB Class driver.
  *
  *  @{
                                                  const void* const Buffer,
                                                  const uint16_t Length) ATTR_NON_NULL_PTR_ARG(1);
 
                                                  const void* const Buffer,
                                                  const uint16_t Length) ATTR_NON_NULL_PTR_ARG(1);
 
+                       /** Sends a given data buffer from PROGMEM space to the attached USB device, if connected. If a device is not connected when the
+                        *  function is called, the string is discarded. Bytes will be queued for transmission to the host until either the pipe
+                        *  bank becomes full, or the \ref CDC_Host_Flush() function is called to flush the pending data to the device. This allows
+                        *  for multiple bytes to be packed into a single pipe packet, increasing data throughput.
+                        *
+                        *  \pre This function must only be called when the Host state machine is in the \ref HOST_STATE_Configured state or
+                        *       the call will fail.
+                        *
+                        *  \param[in,out] CDCInterfaceInfo  Pointer to a structure containing a CDC Class host configuration and state.
+                        *  \param[in]     Buffer            Pointer to a buffer containing the data to send to the device.
+                        *  \param[in]     Length            Length of the data to send to the host.
+                        *
+                        *  \return A value from the \ref Pipe_Stream_RW_ErrorCodes_t enum.
+                        */
+                       uint8_t CDC_Host_SendData_P(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo,
+                                                   const void* const Buffer,
+                                                   const uint16_t Length) ATTR_NON_NULL_PTR_ARG(1);
+
                        /** Sends a given null-terminated string to the attached USB device, if connected. If a device is not connected when the
                         *  function is called, the string is discarded. Bytes will be queued for transmission to the device until either the pipe
                         *  bank becomes full, or the \ref CDC_Host_Flush() function is called to flush the pending data to the device. This allows
                        /** Sends a given null-terminated string to the attached USB device, if connected. If a device is not connected when the
                         *  function is called, the string is discarded. Bytes will be queued for transmission to the device until either the pipe
                         *  bank becomes full, or the \ref CDC_Host_Flush() function is called to flush the pending data to the device. This allows
                        uint8_t CDC_Host_SendString(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo,
                                                    const char* const String) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2);
 
                        uint8_t CDC_Host_SendString(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo,
                                                    const char* const String) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2);
 
+                       /** Sends a given null terminated string from PROGMEM space to the attached USB device, if connected. If a device is not connected
+                        *  when the function is called, the string is discarded. Bytes will be queued for transmission to the device until either
+                        *  the pipe bank becomes full, or the \ref CDC_Host_Flush() function is called to flush the pending data to
+                        *  the device. This allows for multiple bytes to be packed into a single pipe packet, increasing data throughput.
+                        *
+                        *  \pre This function must only be called when the Host state machine is in the \ref HOST_STATE_Configured state or
+                        *       the call will fail.
+                        *
+                        *  \param[in,out] CDCInterfaceInfo  Pointer to a structure containing a CDC Class host configuration and state.
+                        *  \param[in]     String            Pointer to the null terminated string to send to the host.
+                        *
+                        *  \return A value from the \ref Pipe_Stream_RW_ErrorCodes_t enum.
+                        */
+                       uint8_t CDC_Host_SendString_P(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo,
+                                                     const char* const String) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2);
+
                        /** Sends a given byte to the attached USB device, if connected. If a device is not connected when the function is called, the
                         *  byte is discarded. Bytes will be queued for transmission to the device until either the pipe bank becomes full, or the
                         *  \ref CDC_Host_Flush() function is called to flush the pending data to the host. This allows for multiple bytes to be
                        /** Sends a given byte to the attached USB device, if connected. If a device is not connected when the function is called, the
                         *  byte is discarded. Bytes will be queued for transmission to the device until either the pipe bank becomes full, or the
                         *  \ref CDC_Host_Flush() function is called to flush the pending data to the host. This allows for multiple bytes to be
                         *  \param[in,out] Stream            Pointer to a FILE structure where the created stream should be placed.
                         */
                        void CDC_Host_CreateStream(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo,
                         *  \param[in,out] Stream            Pointer to a FILE structure where the created stream should be placed.
                         */
                        void CDC_Host_CreateStream(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo,
-                                                  FILE* const Stream) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(3);
+                                                  FILE* const Stream) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2);
 
                        /** Identical to \ref CDC_Host_CreateStream(), except that reads are blocking until the calling stream function terminates
                         *  the transfer. While blocking, the USB and CDC service tasks are called repeatedly to maintain USB communications.
 
                        /** Identical to \ref CDC_Host_CreateStream(), except that reads are blocking until the calling stream function terminates
                         *  the transfer. While blocking, the USB and CDC service tasks are called repeatedly to maintain USB communications.