Inline USB management functions in the Class drivers which are standardized but curre...
authorDean Camera <dean@fourwalledcubicle.com>
Tue, 5 Jan 2010 04:50:18 +0000 (04:50 +0000)
committerDean Camera <dean@fourwalledcubicle.com>
Tue, 5 Jan 2010 04:50:18 +0000 (04:50 +0000)
20 files changed:
LUFA/Common/Common.h
LUFA/Drivers/USB/Class/Device/Audio.c
LUFA/Drivers/USB/Class/Device/Audio.h
LUFA/Drivers/USB/Class/Device/HID.h
LUFA/Drivers/USB/Class/Device/MIDI.c
LUFA/Drivers/USB/Class/Device/MIDI.h
LUFA/Drivers/USB/Class/Host/HID.c
LUFA/Drivers/USB/Class/Host/HID.h
LUFA/Drivers/USB/Class/Host/MIDI.c
LUFA/Drivers/USB/Class/Host/MIDI.h
LUFA/Drivers/USB/Class/Host/MassStorage.c
LUFA/Drivers/USB/Class/Host/MassStorage.h
LUFA/Drivers/USB/Class/Host/Printer.c
LUFA/Drivers/USB/Class/Host/Printer.h
LUFA/Drivers/USB/Class/Host/RNDIS.c
LUFA/Drivers/USB/Class/Host/RNDIS.h
LUFA/Drivers/USB/Class/Host/StillImage.c
LUFA/Drivers/USB/Class/Host/StillImage.h
LUFA/ManPages/ChangeLog.txt
LUFA/ManPages/LibraryResources.txt

index 2b57cda..2ddb58c 100644 (file)
                                {\r
                                        Temp = *Data;\r
                                        *Data = *(Data + Bytes - 1);\r
-                                       *(Data + Bytes) = Temp;\r
+                                       *(Data + Bytes - 1) = Temp;\r
 \r
                                        Data++;\r
                                        Bytes -= 2;\r
index 52d299f..89115f2 100644 (file)
@@ -84,11 +84,6 @@ bool Audio_Device_ConfigureEndpoints(USB_ClassInfo_Audio_Device_t* AudioInterfac
        return true;\r
 }\r
 \r
-void Audio_Device_USBTask(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo)\r
-{\r
-       (void)AudioInterfaceInfo;\r
-}\r
-\r
 bool Audio_Device_IsSampleReceived(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo)\r
 {\r
        if ((USB_DeviceState != DEVICE_STATE_Configured) || !(AudioInterfaceInfo->State.InterfaceEnabled))\r
index e516b71..c6b68b0 100644 (file)
                         *  \param[in,out] AudioInterfaceInfo  Pointer to a structure containing an Audio Class configuration and state\r
                         */\r
                        void Audio_Device_ProcessControlRequest(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);\r
-\r
-                       /** General management task for a given Audio class interface, required for the correct operation of the interface. This should\r
-                        *  be called frequently in the main program loop, before the master USB management task \ref USB_USBTask().\r
-                        *\r
-                        *  \param[in,out] AudioInterfaceInfo  Pointer to a structure containing an Audio Class configuration and state\r
-                        */\r
-                       void Audio_Device_USBTask(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);\r
                        \r
                        /** Determines if the given audio interface is ready for a sample to be read from it, and selects the streaming\r
                         *  OUT endpoint ready for reading.\r
                        bool Audio_Device_IsReadyForNextSample(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo);\r
 \r
                /* Inline Functions: */\r
+                       /** General management task for a given Audio class interface, required for the correct operation of the interface. This should\r
+                        *  be called frequently in the main program loop, before the master USB management task \ref USB_USBTask().\r
+                        *\r
+                        *  \param[in,out] AudioInterfaceInfo  Pointer to a structure containing an Audio Class configuration and state\r
+                        */\r
+                       static inline void Audio_Device_USBTask(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo);\r
+                       static inline void Audio_Device_USBTask(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo)\r
+                       {\r
+                               (void)AudioInterfaceInfo;\r
+                       }\r
+\r
                        /** Reads the next 8-bit audio sample from the current audio interface.\r
                         *\r
                         *  \note This should be preceded immediately by a call to the USB_Audio_IsSampleReceived() function to ensure that\r
index 14a5ff6..f62c08c 100644 (file)
                         */\r
                        void HID_Device_USBTask(USB_ClassInfo_HID_Device_t* HIDInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);\r
                        \r
-                       /** Indicates that a millisecond of idle time has elapsed on the given HID interface, and the interface's idle count should be\r
-                        *  decremented. This should be called once per millisecond so that hardware key-repeats function correctly. It is recommended\r
-                        *  that this be called by the \ref EVENT_USB_Device_StartOfFrame() event, once SOF events have been enabled via\r
-                        *  \ref USB_Device_EnableSOFEvents();.\r
-                        *\r
-                        *  \param[in,out] HIDInterfaceInfo  Pointer to a structure containing a HID Class configuration and state\r
-                        */\r
-                       static inline void HID_Device_MillisecondElapsed(USB_ClassInfo_HID_Device_t* HIDInterfaceInfo);\r
-                       static inline void HID_Device_MillisecondElapsed(USB_ClassInfo_HID_Device_t* HIDInterfaceInfo)\r
-                       {\r
-                               if (HIDInterfaceInfo->State.IdleMSRemaining)\r
-                                 HIDInterfaceInfo->State.IdleMSRemaining--;\r
-                       }\r
-                       \r
                        /** HID class driver callback for the user creation of a HID IN report. This callback may fire in response to either\r
                         *  HID class control requests from the host, or by the normal HID endpoint polling procedure. Inside this callback the\r
                         *  user is responsible for the creation of the next HID input report to be sent to the host.\r
                                                                  const void* ReportData, const uint16_t ReportSize) ATTR_NON_NULL_PTR_ARG(1)\r
                                                                  ATTR_NON_NULL_PTR_ARG(3);\r
 \r
+               /* Inline Functions: */\r
+                       /** Indicates that a millisecond of idle time has elapsed on the given HID interface, and the interface's idle count should be\r
+                        *  decremented. This should be called once per millisecond so that hardware key-repeats function correctly. It is recommended\r
+                        *  that this be called by the \ref EVENT_USB_Device_StartOfFrame() event, once SOF events have been enabled via\r
+                        *  \ref USB_Device_EnableSOFEvents();.\r
+                        *\r
+                        *  \param[in,out] HIDInterfaceInfo  Pointer to a structure containing a HID Class configuration and state\r
+                        */\r
+                       static inline void HID_Device_MillisecondElapsed(USB_ClassInfo_HID_Device_t* HIDInterfaceInfo);\r
+                       static inline void HID_Device_MillisecondElapsed(USB_ClassInfo_HID_Device_t* HIDInterfaceInfo)\r
+                       {\r
+                               if (HIDInterfaceInfo->State.IdleMSRemaining)\r
+                                 HIDInterfaceInfo->State.IdleMSRemaining--;\r
+                       }\r
+                       \r
        /* Disable C linkage for C++ Compilers: */\r
                #if defined(__cplusplus)\r
                        }\r
index a01d196..bc191d7 100644 (file)
@@ -65,11 +65,6 @@ bool MIDI_Device_ConfigureEndpoints(USB_ClassInfo_MIDI_Device_t* const MIDIInter
        return true;\r
 }\r
 \r
-void MIDI_Device_USBTask(USB_ClassInfo_MIDI_Device_t* const MIDIInterfaceInfo)\r
-{\r
-       (void)MIDIInterfaceInfo;\r
-}\r
-\r
 uint8_t MIDI_Device_SendEventPacket(USB_ClassInfo_MIDI_Device_t* const MIDIInterfaceInfo, MIDI_EventPacket_t* const Event)\r
 {\r
        if (USB_DeviceState != DEVICE_STATE_Configured)\r
index 3899f6e..fef7890 100644 (file)
                         */             \r
                        void MIDI_Device_ProcessControlRequest(USB_ClassInfo_MIDI_Device_t* const MIDIInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);\r
 \r
-                       /** General management task for a given MIDI class interface, required for the correct operation of the interface. This should\r
-                        *  be called frequently in the main program loop, before the master USB management task \ref USB_USBTask().\r
-                        *\r
-                        *  \param[in,out] MIDIInterfaceInfo  Pointer to a structure containing a MIDI Class configuration and state\r
-                        */\r
-                       void MIDI_Device_USBTask(USB_ClassInfo_MIDI_Device_t* const MIDIInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);\r
-\r
                        /** Sends a MIDI event packet to the host. If no host is connected, the event packet is discarded.\r
                         *\r
                         *  \note This function must only be called when the Device state machine is in the DEVICE_STATE_Configured state or\r
                        bool MIDI_Device_ReceiveEventPacket(USB_ClassInfo_MIDI_Device_t* const MIDIInterfaceInfo,\r
                                                            MIDI_EventPacket_t* const Event) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2);\r
 \r
+               /* Inline Functions: */\r
+                       /** General management task for a given MIDI class interface, required for the correct operation of the interface. This should\r
+                        *  be called frequently in the main program loop, before the master USB management task \ref USB_USBTask().\r
+                        *\r
+                        *  \param[in,out] MIDIInterfaceInfo  Pointer to a structure containing a MIDI Class configuration and state\r
+                        */\r
+                       static inline void MIDI_Device_USBTask(USB_ClassInfo_MIDI_Device_t* const MIDIInterfaceInfo);\r
+                       static inline void MIDI_Device_USBTask(USB_ClassInfo_MIDI_Device_t* const MIDIInterfaceInfo)\r
+                       {\r
+                               (void)MIDIInterfaceInfo;\r
+                       }               \r
+\r
        /* Disable C linkage for C++ Compilers: */\r
                #if defined(__cplusplus)\r
                        }\r
index e297ee5..3cd9394 100644 (file)
@@ -150,11 +150,6 @@ static uint8_t DComp_HID_Host_NextHIDInterfaceEndpoint(void* const CurrentDescri
        return DESCRIPTOR_SEARCH_NotFound;\r
 }\r
 \r
-void HID_Host_USBTask(USB_ClassInfo_HID_Host_t* const HIDInterfaceInfo)\r
-{\r
-       (void)HIDInterfaceInfo;\r
-}\r
-\r
 #if !defined(HID_HOST_BOOT_PROTOCOL_ONLY)\r
 uint8_t HID_Host_ReceiveReportByID(USB_ClassInfo_HID_Host_t* const HIDInterfaceInfo, const uint8_t ReportID, void* Buffer)\r
 {\r
index 72478c2..3aaf809 100644 (file)
                        };\r
        \r
                /* Function Prototypes: */\r
-                       /** General management task for a given Human Interface Class host class interface, required for the correct operation of\r
-                        *  the interface. This should be called frequently in the main program loop, before the master USB management task\r
-                        *  \ref USB_USBTask().\r
-                        *\r
-                        *  \param[in,out] HIDInterfaceInfo  Pointer to a structure containing a HID Class host configuration and state\r
-                        */\r
-                       void HID_Host_USBTask(USB_ClassInfo_HID_Host_t* const HIDInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);\r
-\r
                        /** Host interface configuration routine, to configure a given HID host interface instance using the Configuration\r
                         *  Descriptor read from an attached USB device. This function automatically updates the given HID Host instance's\r
                         *  state values and configures the pipes required to communicate with the interface if it is found within the\r
                        uint8_t HID_Host_SetReportProtocol(USB_ClassInfo_HID_Host_t* const HIDInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);\r
                        #endif\r
                        \r
+               /* Inline Functions: */\r
+                       /** General management task for a given Human Interface Class host class interface, required for the correct operation of\r
+                        *  the interface. This should be called frequently in the main program loop, before the master USB management task\r
+                        *  \ref USB_USBTask().\r
+                        *\r
+                        *  \param[in,out] HIDInterfaceInfo  Pointer to a structure containing a HID Class host configuration and state\r
+                        */\r
+                       static inline void HID_Host_USBTask(USB_ClassInfo_HID_Host_t* const HIDInterfaceInfo);\r
+                       static inline void HID_Host_USBTask(USB_ClassInfo_HID_Host_t* const HIDInterfaceInfo)\r
+                       {\r
+                               (void)HIDInterfaceInfo;\r
+                       }               \r
+\r
        /* Private Interface - For use in library only: */\r
        #if !defined(__DOXYGEN__)\r
                /* Macros: */\r
index 62f66c3..3cb0df6 100644 (file)
@@ -122,11 +122,6 @@ static uint8_t DComp_MIDI_Host_NextMIDIStreamingDataEndpoint(void* const Current
        return DESCRIPTOR_SEARCH_NotFound;\r
 }\r
 \r
-void MIDI_Host_USBTask(USB_ClassInfo_MIDI_Host_t* const MIDIInterfaceInfo)\r
-{\r
-       (void)MIDIInterfaceInfo;\r
-}\r
-\r
 uint8_t MIDI_Host_SendEventPacket(USB_ClassInfo_MIDI_Host_t* const MIDIInterfaceInfo, MIDI_EventPacket_t* const Event)\r
 {\r
        if ((USB_HostState != HOST_STATE_Configured) || !(MIDIInterfaceInfo->State.IsActive))\r
index 2a64dc0..b1971b1 100644 (file)
                        };\r
        \r
                /* Function Prototypes: */\r
-                       /** General management task for a given MIDI host class interface, required for the correct operation of the interface. This should\r
-                        *  be called frequently in the main program loop, before the master USB management task \ref USB_USBTask().\r
-                        *\r
-                        *  \param[in,out] MIDIInterfaceInfo  Pointer to a structure containing an MIDI Class host configuration and state\r
-                        */\r
-                       void MIDI_Host_USBTask(USB_ClassInfo_MIDI_Host_t* const MIDIInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);\r
-                       \r
                        /** Host interface configuration routine, to configure a given MIDI host interface instance using the Configuration\r
                         *  Descriptor read from an attached USB device. This function automatically updates the given MIDI Host instance's\r
                         *  state values and configures the pipes required to communicate with the interface if it is found within the device.\r
                         */\r
                        bool MIDI_Host_ReceiveEventPacket(USB_ClassInfo_MIDI_Host_t* const MIDIInterfaceInfo,\r
                                                          MIDI_EventPacket_t* const Event) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2);\r
-                                                                                               \r
+\r
+               /* Inline Functions: */\r
+                       /** General management task for a given MIDI host class interface, required for the correct operation of the interface. This should\r
+                        *  be called frequently in the main program loop, before the master USB management task \ref USB_USBTask().\r
+                        *\r
+                        *  \param[in,out] MIDIInterfaceInfo  Pointer to a structure containing an MIDI Class host configuration and state\r
+                        */\r
+                       static inline void MIDI_Host_USBTask(USB_ClassInfo_MIDI_Host_t* const MIDIInterfaceInfo);\r
+                       static inline void MIDI_Host_USBTask(USB_ClassInfo_MIDI_Host_t* const MIDIInterfaceInfo)\r
+                       {\r
+                               (void)MIDIInterfaceInfo;\r
+                       }\r
+\r
        /* Private Interface - For use in library only: */\r
        #if !defined(__DOXYGEN__)\r
                /* Macros: */\r
index c3390a5..7a30263 100644 (file)
@@ -127,11 +127,6 @@ static uint8_t DComp_NextMSInterfaceEndpoint(void* const CurrentDescriptor)
        return DESCRIPTOR_SEARCH_NotFound;\r
 }\r
 \r
-void MS_Host_USBTask(USB_ClassInfo_MS_Host_t* const MSInterfaceInfo)\r
-{\r
-       (void)MSInterfaceInfo;\r
-}\r
-\r
 static uint8_t MS_Host_SendCommand(USB_ClassInfo_MS_Host_t* const MSInterfaceInfo, MS_CommandBlockWrapper_t* const SCSICommandBlock,\r
                                    void* BufferPtr)\r
 {\r
index 7c30409..6dda5c0 100644 (file)
                        };\r
        \r
                /* Function Prototypes: */\r
-                       /** General management task for a given Mass Storage host class interface, required for the correct operation of\r
-                        *  the interface. This should be called frequently in the main program loop, before the master USB management task\r
-                        *  \ref USB_USBTask().\r
-                        *\r
-                        *  \param[in,out] MSInterfaceInfo  Pointer to a structure containing an MS Class host configuration and state\r
-                        */\r
-                       void MS_Host_USBTask(USB_ClassInfo_MS_Host_t* const MSInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);\r
-                       \r
                        /** Host interface configuration routine, to configure a given Mass Storage host interface instance using the\r
                         *  Configuration Descriptor read from an attached USB device. This function automatically updates the given Mass\r
                         *  Storage Host instance's state values and configures the pipes required to communicate with the interface if it\r
                                                          const uint32_t BlockAddress, const uint8_t Blocks, const uint16_t BlockSize,\r
                                                          void* BlockBuffer) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(6);\r
 \r
+               /* Inline Functions: */\r
+                       /** General management task for a given Mass Storage host class interface, required for the correct operation of\r
+                        *  the interface. This should be called frequently in the main program loop, before the master USB management task\r
+                        *  \ref USB_USBTask().\r
+                        *\r
+                        *  \param[in,out] MSInterfaceInfo  Pointer to a structure containing an MS Class host configuration and state\r
+                        */\r
+                       static inline void MS_Host_USBTask(USB_ClassInfo_MS_Host_t* const MSInterfaceInfo);\r
+                       static inline void MS_Host_USBTask(USB_ClassInfo_MS_Host_t* const MSInterfaceInfo)\r
+                       {\r
+                               (void)MSInterfaceInfo;\r
+                       }\r
+\r
        /* Private Interface - For use in library only: */\r
        #if !defined(__DOXYGEN__)\r
                /* Macros: */\r
index 6b59638..d1fb7c9 100644 (file)
@@ -122,11 +122,6 @@ static uint8_t DComp_NextPRNTInterfaceEndpoint(void* CurrentDescriptor)
        return DESCRIPTOR_SEARCH_NotFound;\r
 }\r
 \r
-void PRNT_Host_USBTask(USB_ClassInfo_PRNT_Host_t* const PRNTInterfaceInfo)\r
-{\r
-       (void)PRNTInterfaceInfo;\r
-}\r
-\r
 uint8_t PRNT_Host_SetBidirectionalMode(USB_ClassInfo_PRNT_Host_t* const PRNTInterfaceInfo)\r
 {\r
        if (PRNTInterfaceInfo->State.AlternateSetting)\r
index c424daf..06a1f84 100644 (file)
                        };\r
        \r
                /* Function Prototypes: */\r
-                       /** General management task for a given Printer host class interface, required for the correct operation of\r
-                        *  the interface. This should be called frequently in the main program loop, before the master USB management task\r
-                        *  \ref USB_USBTask().\r
-                        *\r
-                        *  \param[in,out] PRNTInterfaceInfo  Pointer to a structure containing a Printer Class host configuration and state\r
-                        */\r
-                       void PRNT_Host_USBTask(USB_ClassInfo_PRNT_Host_t* const PRNTInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);\r
-                       \r
-\r
                        /** Host interface configuration routine, to configure a given Printer host interface instance using the\r
                         *  Configuration Descriptor read from an attached USB device. This function automatically updates the given Printer\r
                         *  instance's state values and configures the pipes required to communicate with the interface if it is found within\r
                        uint8_t PRNT_Host_GetDeviceID(USB_ClassInfo_PRNT_Host_t* const PRNTInterfaceInfo, char* DeviceIDString,\r
                                                      uint16_t BufferSize) ATTR_NON_NULL_PTR_ARG(1);\r
 \r
+               /* Inline Functions: */\r
+                       /** General management task for a given Printer host class interface, required for the correct operation of\r
+                        *  the interface. This should be called frequently in the main program loop, before the master USB management task\r
+                        *  \ref USB_USBTask().\r
+                        *\r
+                        *  \param[in,out] PRNTInterfaceInfo  Pointer to a structure containing a Printer Class host configuration and state\r
+                        */\r
+                       static inline void PRNT_Host_USBTask(USB_ClassInfo_PRNT_Host_t* const PRNTInterfaceInfo);\r
+                       static inline void PRNT_Host_USBTask(USB_ClassInfo_PRNT_Host_t* const PRNTInterfaceInfo)\r
+                       {\r
+                               (void)PRNTInterfaceInfo;\r
+                       }\r
+\r
        /* Private Interface - For use in library only: */\r
        #if !defined(__DOXYGEN__)\r
                /* Macros: */\r
index 1116178..46aeb98 100644 (file)
@@ -205,11 +205,6 @@ static uint8_t DComp_RNDIS_Host_NextRNDISInterfaceEndpoint(void* const CurrentDe
        return DESCRIPTOR_SEARCH_NotFound;\r
 }\r
 \r
-void RNDIS_Host_USBTask(USB_ClassInfo_RNDIS_Host_t* const RNDISInterfaceInfo)\r
-{\r
-       (void)RNDISInterfaceInfo;\r
-}\r
-\r
 static uint8_t RNDIS_SendEncapsulatedCommand(USB_ClassInfo_RNDIS_Host_t* const RNDISInterfaceInfo,\r
                                              void* Buffer, uint16_t Length)\r
 {\r
index fad27b9..fc9b4b3 100644 (file)
                        #define RNDIS_COMMAND_FAILED                  0xC0      \r
 \r
                /* Function Prototypes: */\r
-                       /** General management task for a given RNDIS host class interface, required for the correct operation of the interface. This should\r
-                        *  be called frequently in the main program loop, before the master USB management task \ref USB_USBTask().\r
-                        *\r
-                        *  \param[in,out] RNDISInterfaceInfo  Pointer to a structure containing an RNDIS Class host configuration and state\r
-                        */\r
-                       void RNDIS_Host_USBTask(USB_ClassInfo_RNDIS_Host_t* const RNDISInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);\r
-                       \r
                        /** Host interface configuration routine, to configure a given RNDIS host interface instance using the Configuration\r
                         *  Descriptor read from an attached USB device. This function automatically updates the given RNDIS Host instance's\r
                         *  state values and configures the pipes required to communicate with the interface if it is found within the device.\r
                        uint8_t RNDIS_Host_SendPacket(USB_ClassInfo_RNDIS_Host_t* const RNDISInterfaceInfo, void* Buffer, uint16_t PacketLength)\r
                                                      ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2);\r
 \r
+               /* Inline Functions: */\r
+                       /** General management task for a given RNDIS host class interface, required for the correct operation of the interface. This should\r
+                        *  be called frequently in the main program loop, before the master USB management task \ref USB_USBTask().\r
+                        *\r
+                        *  \param[in,out] RNDISInterfaceInfo  Pointer to a structure containing an RNDIS Class host configuration and state\r
+                        */\r
+                       static inline void RNDIS_Host_USBTask(USB_ClassInfo_RNDIS_Host_t* const RNDISInterfaceInfo);\r
+                       static inline void RNDIS_Host_USBTask(USB_ClassInfo_RNDIS_Host_t* const RNDISInterfaceInfo)\r
+                       {\r
+                               (void)RNDISInterfaceInfo;\r
+                       }\r
+\r
        /* Private Interface - For use in library only: */\r
        #if !defined(__DOXYGEN__)\r
                /* Macros: */\r
index 24b76b9..2f5adda 100644 (file)
@@ -142,11 +142,6 @@ uint8_t DComp_SI_Host_NextSIInterfaceEndpoint(void* const CurrentDescriptor)
        return DESCRIPTOR_SEARCH_NotFound;\r
 }\r
 \r
-void SImage_Host_USBTask(USB_ClassInfo_SI_Host_t* const SIInterfaceInfo)\r
-{\r
-       (void)SIInterfaceInfo;\r
-}\r
-\r
 uint8_t SImage_Host_SendBlockHeader(USB_ClassInfo_SI_Host_t* const SIInterfaceInfo, SI_PIMA_Container_t* const PIMAHeader)\r
 {\r
        uint8_t ErrorCode;\r
index 9b65596..b6a2475 100644 (file)
                        };\r
 \r
                /* Function Prototypes: */\r
-                       /** General management task for a given Still Image host class interface, required for the correct operation of the\r
-                        *  interface. This should be called frequently in the main program loop, before the master USB management task\r
-                        *  \ref USB_USBTask().\r
-                        *\r
-                        *  \param[in,out] SIInterfaceInfo  Pointer to a structure containing a Still Image Class host configuration and state\r
-                        */\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
                         *  Configuration Descriptor read from an attached USB device. This function automatically updates the given Still\r
                         *  Image Host instance's state values and configures the pipes required to communicate with the interface if it is\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(1) ATTR_NON_NULL_PTR_ARG(2);\r
-                       \r
+               \r
+               /* Inline Functions: */\r
+                       /** General management task for a given Still Image host class interface, required for the correct operation of the\r
+                        *  interface. This should be called frequently in the main program loop, before the master USB management task\r
+                        *  \ref USB_USBTask().\r
+                        *\r
+                        *  \param[in,out] SIInterfaceInfo  Pointer to a structure containing a Still Image Class host configuration and state\r
+                        */\r
+                       static inline void SImage_Host_USBTask(USB_ClassInfo_SI_Host_t* const SIInterfaceInfo);\r
+                       static inline void SImage_Host_USBTask(USB_ClassInfo_SI_Host_t* const SIInterfaceInfo)\r
+                       {\r
+                               (void)SIInterfaceInfo;\r
+                       }               \r
+\r
        /* Private Interface - For use in library only: */\r
        #if !defined(__DOXYGEN__)\r
                /* Macros: */\r
index 03c19b4..7d75907 100644 (file)
@@ -22,6 +22,7 @@
   *    reset\r
   *  - Changed over the MassStorageKeyboard Class driver device demo to use Start of Frame events rather than a timer to keep track\r
   *    of elapsed milliseconds\r
+  *  - Inlined currently unused (but standardized) maintenance functions in the Device and Host Class drivers to save space\r
   *\r
   *  <b>Fixed:</b>\r
   *  - Fixed AVRISP project not able to enter programming mode when ISP protocol is used\r
index 7ba267f..6bc06ab 100644 (file)
@@ -10,7 +10,7 @@
  *  Project Homepage: http://www.fourwalledcubicle.com/LUFA.php \n\r
  *  Development Blog: http://www.fourwalledcubicle.com/blog \n\r
  *  Discussion Group: http://groups.google.com/group/myusb-support-list \n\r
- *  SVN Access, Bug Reports and Feature Requests: http://code.google.com/p/lufa-lib/ \n\r
+ *  Official Releases, SVN Access, Issue Tracker: http://code.google.com/p/lufa-lib/ \n\r
  *  Git Access: http://github.com/abcminiuser/lufa-lib\r
  *  Commit RSS: http://github.com/feeds/abcminiuser/commits/lufa-lib/master\r
  *  Author's Website: http://www.fourwalledcubicle.com \n\r