Fixed incorrect buffer size check in the USBtoSerial project (thanks to Yuri A Nikifo...
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Host / MIDI.c
index 2b19bcc..9f7bbd4 100644 (file)
@@ -29,7 +29,8 @@
 */
 
 #define  __INCLUDE_FROM_USB_DRIVER
-#include "../../HighLevel/USBMode.h"
+#include "../../Core/USBMode.h"
+
 #if defined(USB_CAN_BE_HOST)
 
 #define  __INCLUDE_FROM_MIDI_DRIVER
@@ -71,7 +72,7 @@ uint8_t MIDI_Host_ConfigurePipes(USB_ClassInfo_MIDI_Host_t* const MIDIInterfaceI
 
                USB_Descriptor_Endpoint_t* EndpointData = DESCRIPTOR_PCAST(ConfigDescriptorData, USB_Descriptor_Endpoint_t);
 
-               if (EndpointData->EndpointAddress & ENDPOINT_DESCRIPTOR_DIR_IN)
+               if ((EndpointData->EndpointAddress & ENDPOINT_DIR_MASK) == ENDPOINT_DIR_IN)
                  DataINEndpoint  = EndpointData;
                else
                  DataOUTEndpoint = EndpointData;
@@ -87,7 +88,7 @@ uint8_t MIDI_Host_ConfigurePipes(USB_ClassInfo_MIDI_Host_t* const MIDIInterfaceI
 
                if (PipeNum == MIDIInterfaceInfo->Config.DataINPipeNumber)
                {
-                       Size            = DataINEndpoint->EndpointSize;
+                       Size            = le16_to_cpu(DataINEndpoint->EndpointSize);
                        EndpointAddress = DataINEndpoint->EndpointAddress;
                        Token           = PIPE_TOKEN_IN;
                        Type            = EP_TYPE_BULK;
@@ -97,7 +98,7 @@ uint8_t MIDI_Host_ConfigurePipes(USB_ClassInfo_MIDI_Host_t* const MIDIInterfaceI
                }
                else if (PipeNum == MIDIInterfaceInfo->Config.DataOUTPipeNumber)
                {
-                       Size            = DataOUTEndpoint->EndpointSize;
+                       Size            = le16_to_cpu(DataOUTEndpoint->EndpointSize);
                        EndpointAddress = DataOUTEndpoint->EndpointAddress;
                        Token           = PIPE_TOKEN_OUT;
                        Type            = EP_TYPE_BULK;