Oops - fix include directory for case-sensitive filesystems.
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Host / StillImage.h
index 0493470..7b8e862 100644 (file)
@@ -9,13 +9,13 @@
 /*\r
   Copyright 2009  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
 \r
 /*\r
   Copyright 2009  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
 \r
-  Permission to use, copy, modify, and distribute this software\r
-  and its documentation for any purpose and without fee is hereby\r
-  granted, provided that the above copyright notice appear in all\r
-  copies and that both that the copyright notice and this\r
-  permission notice and warranty disclaimer appear in supporting\r
-  documentation, and that the name of the author not be used in\r
-  advertising or publicity pertaining to distribution of the\r
+  Permission to use, copy, modify, distribute, and sell this \r
+  software and its documentation for any purpose is hereby granted\r
+  without fee, provided that the above copyright notice appear in \r
+  all copies and that both that the copyright notice and this\r
+  permission notice and warranty disclaimer appear in supporting \r
+  documentation, and that the name of the author not be used in \r
+  advertising or publicity pertaining to distribution of the \r
   software without specific, written prior permission.\r
 \r
   The author disclaim all warranties with regard to this\r
   software without specific, written prior permission.\r
 \r
   The author disclaim all warranties with regard to this\r
@@ -77,7 +77,7 @@
                                struct\r
                                {\r
                                        bool IsActive; /**< Indicates if the current interface instance is connected to an attached device, valid\r
                                struct\r
                                {\r
                                        bool IsActive; /**< Indicates if the current interface instance is connected to an attached device, valid\r
-                                                       *   after \ref SI_Host_ConfigurePipes() is called and the Host state machine is in the\r
+                                                       *   after \ref SImage_Host_ConfigurePipes() is called and the Host state machine is in the\r
                                                        *   Configured state\r
                                                        */\r
 \r
                                                        *   Configured state\r
                                                        */\r
 \r
@@ -94,7 +94,7 @@
                        } USB_ClassInfo_SI_Host_t;\r
        \r
                /* Enums: */\r
                        } USB_ClassInfo_SI_Host_t;\r
        \r
                /* Enums: */\r
-                       /** Enum for the possible error codes returned by the \ref SI_Host_ConfigurePipes() function. */\r
+                       /** Enum for the possible error codes returned by the \ref SImage_Host_ConfigurePipes() function. */\r
                        enum SIHost_EnumerationFailure_ErrorCodes_t\r
                        {\r
                                SI_ENUMERROR_NoError                    = 0, /**< Configuration Descriptor was processed successfully */\r
                        enum SIHost_EnumerationFailure_ErrorCodes_t\r
                        {\r
                                SI_ENUMERROR_NoError                    = 0, /**< Configuration Descriptor was processed successfully */\r
                         *\r
                         *  \param[in,out] SIInterfaceInfo  Pointer to a structure containing a Still Image Class host configuration and state\r
                         */\r
                         *\r
                         *  \param[in,out] SIInterfaceInfo  Pointer to a structure containing a Still Image Class host configuration and state\r
                         */\r
-                       void SI_Host_USBTask(USB_ClassInfo_SI_Host_t* const SIInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);\r
+                       void SImage_Host_USBTask(USB_ClassInfo_SI_Host_t* const SIInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);\r
 \r
 \r
                        /** Host interface configuration routine, to configure a given Still Image host interface instance using the\r
 \r
 \r
                        /** Host interface configuration routine, to configure a given Still Image host interface instance using the\r
                         *\r
                         *  \return A value from the \ref SIHost_EnumerationFailure_ErrorCodes_t enum\r
                         */\r
                         *\r
                         *  \return A value from the \ref SIHost_EnumerationFailure_ErrorCodes_t enum\r
                         */\r
-                       uint8_t SI_Host_ConfigurePipes(USB_ClassInfo_SI_Host_t* const SIInterfaceInfo, uint16_t ConfigDescriptorSize,\r
-                                           void* DeviceConfigDescriptor) ATTR_NON_NULL_PTR_ARG(1, 3);\r
+                       uint8_t SImage_Host_ConfigurePipes(USB_ClassInfo_SI_Host_t* const SIInterfaceInfo, uint16_t ConfigDescriptorSize,\r
+                                               void* DeviceConfigDescriptor) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(3);\r
 \r
                        /** Opens a new PIMA session with the attached device. This should be used before any session-orientated PIMA commands\r
                         *  are issued to the device. Only one session can be open at the one time.\r
 \r
                        /** Opens a new PIMA session with the attached device. This should be used before any session-orientated PIMA commands\r
                         *  are issued to the device. Only one session can be open at the one time.\r
                         */\r
                        uint8_t SImage_Host_CloseSession(USB_ClassInfo_SI_Host_t* const SIInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);\r
 \r
                         */\r
                        uint8_t SImage_Host_CloseSession(USB_ClassInfo_SI_Host_t* const SIInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);\r
 \r
-                       /** Sends a given PIMA command to the attached device, filling out the PIMA command header automatically as required.\r
+                       /** Sends a raw PIMA block header to the device, filling out the transaction ID automatically. This can be used to send\r
+                        *  arbitrary PIMA blocks to the device with or without parameters.\r
+                        *\r
+                        *  \param[in,out] SIInterfaceInfo  Pointer to a structure containing a Still Image Class host configuration and state\r
+                        *  \param[in] PIMAHeader  Pointer to a PIMA container structure that is to be sent\r
+                        *\r
+                        *  \return A value from the \ref Pipe_Stream_RW_ErrorCodes_t enum\r
+                        */\r
+                       uint8_t SImage_Host_SendBlockHeader(USB_ClassInfo_SI_Host_t* const SIInterfaceInfo, SI_PIMA_Container_t* const PIMAHeader);\r
+                       \r
+                       /** Receives a raw PIMA block header to the device. This can be used to receive arbitrary PIMA blocks from the device with\r
+                        *  or without parameters.\r
+                        *\r
+                        *  \param[in,out] SIInterfaceInfo  Pointer to a structure containing a Still Image Class host configuration and state\r
+                        *  \param[out] PIMAHeader  Pointer to a PIMA container structure where the received block is to be stored\r
+                        *\r
+                        *  \return A value from the \ref Pipe_Stream_RW_ErrorCodes_t enum\r
+                        */\r
+                       uint8_t SImage_Host_ReceiveBlockHeader(USB_ClassInfo_SI_Host_t* const SIInterfaceInfo, SI_PIMA_Container_t* const PIMAHeader);\r
+\r
+                       /** Sends a given PIMA command to the attached device, filling out the PIMA command header's Transaction ID automatically.\r
                         *                       \r
                         *  \param[in,out] SIInterfaceInfo  Pointer to a structure containing a Still Image Class host configuration and state\r
                         *  \param[in] Operation  PIMA operation code to issue to the device\r
                         *                       \r
                         *  \param[in,out] SIInterfaceInfo  Pointer to a structure containing a Still Image Class host configuration and state\r
                         *  \param[in] Operation  PIMA operation code to issue to the device\r
                         *          returned a logical command failure\r
                         */\r
                        uint8_t SImage_Host_ReceiveEventHeader(USB_ClassInfo_SI_Host_t* const SIInterfaceInfo,\r
                         *          returned a logical command failure\r
                         */\r
                        uint8_t SImage_Host_ReceiveEventHeader(USB_ClassInfo_SI_Host_t* const SIInterfaceInfo,\r
-                                                                  SI_PIMA_Container_t* const PIMAHeader) ATTR_NON_NULL_PTR_ARG(1, 2);\r
+                                                                  SI_PIMA_Container_t* const PIMAHeader) ATTR_NON_NULL_PTR_ARG(1)\r
+                                                              ATTR_NON_NULL_PTR_ARG(2);\r
                        \r
                        /** Sends arbitrary data to the attached device, for use in the data phase of PIMA commands which require data\r
                         *  transfer beyond the regular PIMA command block parameters.\r
                        \r
                        /** Sends arbitrary data to the attached device, for use in the data phase of PIMA commands which require data\r
                         *  transfer beyond the regular PIMA command block parameters.\r
                         *  \return A value from the \ref Pipe_Stream_RW_ErrorCodes_t enum\r
                         */\r
                        uint8_t SImage_Host_SendData(USB_ClassInfo_SI_Host_t* const SIInterfaceInfo, void* Buffer,\r
                         *  \return A value from the \ref Pipe_Stream_RW_ErrorCodes_t enum\r
                         */\r
                        uint8_t SImage_Host_SendData(USB_ClassInfo_SI_Host_t* const SIInterfaceInfo, void* Buffer,\r
-                                                    const uint16_t Bytes) ATTR_NON_NULL_PTR_ARG(12);\r
+                                                    const uint16_t Bytes) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2);\r
 \r
                        /** Receives arbitrary data from the attached device, for use in the data phase of PIMA commands which require data\r
                         *  transfer beyond the regular PIMA command block parameters.\r
 \r
                        /** Receives arbitrary data from the attached device, for use in the data phase of PIMA commands which require data\r
                         *  transfer beyond the regular PIMA command block parameters.\r
                         *  \return A value from the \ref Pipe_Stream_RW_ErrorCodes_t enum\r
                         */\r
                        uint8_t SImage_Host_ReadData(USB_ClassInfo_SI_Host_t* const SIInterfaceInfo, void* Buffer,\r
                         *  \return A value from the \ref Pipe_Stream_RW_ErrorCodes_t enum\r
                         */\r
                        uint8_t SImage_Host_ReadData(USB_ClassInfo_SI_Host_t* const SIInterfaceInfo, void* Buffer,\r
-                                                    const uint16_t Bytes) ATTR_NON_NULL_PTR_ARG(12);\r
+                                                    const uint16_t Bytes) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2);\r
                        \r
        /* Private Interface - For use in library only: */\r
        #if !defined(__DOXYGEN__)\r
                        \r
        /* Private Interface - For use in library only: */\r
        #if !defined(__DOXYGEN__)\r
                        #define SI_FOUND_DATAPIPE_IN           (1 << 1)\r
                        #define SI_FOUND_DATAPIPE_OUT          (1 << 2)\r
 \r
                        #define SI_FOUND_DATAPIPE_IN           (1 << 1)\r
                        #define SI_FOUND_DATAPIPE_OUT          (1 << 2)\r
 \r
-                       #define COMMAND_DATA_TIMEOUT_MS        5000\r
+                       #define COMMAND_DATA_TIMEOUT_MS        10000\r
                \r
                /* Function Prototypes: */\r
                        #if defined(INCLUDE_FROM_SI_CLASS_HOST_C)\r
                                static uint8_t DComp_SI_Host_NextSIInterface(void* const CurrentDescriptor) ATTR_NON_NULL_PTR_ARG(1);\r
                                static uint8_t DComp_SI_Host_NextSIInterfaceEndpoint(void* const CurrentDescriptor) ATTR_NON_NULL_PTR_ARG(1);\r
                \r
                /* Function Prototypes: */\r
                        #if defined(INCLUDE_FROM_SI_CLASS_HOST_C)\r
                                static uint8_t DComp_SI_Host_NextSIInterface(void* const CurrentDescriptor) ATTR_NON_NULL_PTR_ARG(1);\r
                                static uint8_t DComp_SI_Host_NextSIInterfaceEndpoint(void* const CurrentDescriptor) ATTR_NON_NULL_PTR_ARG(1);\r
-\r
-                               static uint8_t SImage_Host_SendBlockHeader(USB_ClassInfo_SI_Host_t* const SIInterfaceInfo,\r
-                                                                          SI_PIMA_Container_t* const PIMAHeader);\r
-                               static uint8_t SImage_Host_ReceiveBlockHeader(USB_ClassInfo_SI_Host_t* const SIInterfaceInfo,\r
-                                                                             SI_PIMA_Container_t* const PIMAHeader);\r
                        #endif\r
        #endif\r
        \r
                        #endif\r
        #endif\r
        \r