Mark build test makefiles as being incompatible with parallel make builds, as they...
[pub/USBasp.git] / Demos / Host / LowLevel / MIDIHost / ConfigDescriptor.c
index 2d72480..70381ea 100644 (file)
@@ -1,13 +1,13 @@
 /*
              LUFA Library
 /*
              LUFA Library
-     Copyright (C) Dean Camera, 2010.
+     Copyright (C) Dean Camera, 2012.
 
   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 2012  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
@@ -98,19 +98,17 @@ uint8_t ProcessConfigurationDescriptor(void)
                USB_Descriptor_Endpoint_t* EndpointData = DESCRIPTOR_PCAST(CurrConfigLocation, USB_Descriptor_Endpoint_t);
 
                /* If the endpoint is a IN type endpoint */
                USB_Descriptor_Endpoint_t* EndpointData = DESCRIPTOR_PCAST(CurrConfigLocation, USB_Descriptor_Endpoint_t);
 
                /* If the endpoint is a IN type endpoint */
-               if (EndpointData->EndpointAddress & ENDPOINT_DESCRIPTOR_DIR_IN)
+               if ((EndpointData->EndpointAddress & ENDPOINT_DIR_MASK) == ENDPOINT_DIR_IN)
                  DataINEndpoint  = EndpointData;
                else
                  DataOUTEndpoint = EndpointData;
        }
 
        /* Configure the MIDI data IN pipe */
                  DataINEndpoint  = EndpointData;
                else
                  DataOUTEndpoint = EndpointData;
        }
 
        /* Configure the MIDI data IN pipe */
-       Pipe_ConfigurePipe(MIDI_DATA_IN_PIPE, EP_TYPE_BULK, PIPE_TOKEN_IN,
-                          DataINEndpoint->EndpointAddress, DataINEndpoint->EndpointSize, PIPE_BANK_SINGLE);
+       Pipe_ConfigurePipe(MIDI_DATA_IN_PIPE, EP_TYPE_BULK, DataINEndpoint->EndpointAddress, DataINEndpoint->EndpointSize, 1);
 
        /* Configure the MIDI data OUT pipe */
 
        /* Configure the MIDI data OUT pipe */
-       Pipe_ConfigurePipe(MIDI_DATA_OUT_PIPE, EP_TYPE_BULK, PIPE_TOKEN_OUT,
-                                          DataOUTEndpoint->EndpointAddress, DataOUTEndpoint->EndpointSize, PIPE_BANK_SINGLE);
+       Pipe_ConfigurePipe(MIDI_DATA_OUT_PIPE, EP_TYPE_BULK, DataOUTEndpoint->EndpointAddress, DataOUTEndpoint->EndpointSize, 1);
 
        /* Valid data found, return success */
        return SuccessfulConfigRead;
 
        /* Valid data found, return success */
        return SuccessfulConfigRead;
@@ -126,12 +124,16 @@ uint8_t ProcessConfigurationDescriptor(void)
  */
 uint8_t DComp_NextMIDIStreamingInterface(void* CurrentDescriptor)
 {
  */
 uint8_t DComp_NextMIDIStreamingInterface(void* CurrentDescriptor)
 {
-       if (DESCRIPTOR_TYPE(CurrentDescriptor) == DTYPE_Interface)
+       USB_Descriptor_Header_t* Header = DESCRIPTOR_PCAST(CurrentDescriptor, USB_Descriptor_Header_t);
+
+       if (Header->Type == DTYPE_Interface)
        {
        {
+               USB_Descriptor_Interface_t* Interface = DESCRIPTOR_PCAST(CurrentDescriptor, USB_Descriptor_Interface_t);
+
                /* Check the MIDI descriptor class, subclass and protocol, break out if correct data interface found */
                /* Check the MIDI descriptor class, subclass and protocol, break out if correct data interface found */
-               if ((DESCRIPTOR_CAST(CurrentDescriptor, USB_Descriptor_Interface_t).Class    == AUDIO_CSCP_AudioClass)            &&
-                   (DESCRIPTOR_CAST(CurrentDescriptor, USB_Descriptor_Interface_t).SubClass == AUDIO_CSCP_MIDIStreamingSubclass) &&
-                   (DESCRIPTOR_CAST(CurrentDescriptor, USB_Descriptor_Interface_t).Protocol == AUDIO_CSCP_StreamingProtocol))
+               if ((Interface->Class    == AUDIO_CSCP_AudioClass)            &&
+                   (Interface->SubClass == AUDIO_CSCP_MIDIStreamingSubclass) &&
+                   (Interface->Protocol == AUDIO_CSCP_StreamingProtocol))
                {
                        return DESCRIPTOR_SEARCH_Found;
                }
                {
                        return DESCRIPTOR_SEARCH_Found;
                }
@@ -151,16 +153,17 @@ uint8_t DComp_NextMIDIStreamingInterface(void* CurrentDescriptor)
  */
 uint8_t DComp_NextMIDIStreamingDataEndpoint(void* CurrentDescriptor)
 {
  */
 uint8_t DComp_NextMIDIStreamingDataEndpoint(void* CurrentDescriptor)
 {
-       if (DESCRIPTOR_TYPE(CurrentDescriptor) == DTYPE_Endpoint)
+       USB_Descriptor_Header_t* Header = DESCRIPTOR_PCAST(CurrentDescriptor, USB_Descriptor_Header_t);
+
+       if (Header->Type == DTYPE_Endpoint)
        {
        {
-               uint8_t EndpointType = (DESCRIPTOR_CAST(CurrentDescriptor,
-                                                       USB_Descriptor_Endpoint_t).Attributes & EP_TYPE_MASK);
+               USB_Descriptor_Endpoint_t* Endpoint = DESCRIPTOR_PCAST(CurrentDescriptor, USB_Descriptor_Endpoint_t);
 
                /* Check the endpoint type, break out if correct BULK type endpoint found */
 
                /* Check the endpoint type, break out if correct BULK type endpoint found */
-               if (EndpointType == EP_TYPE_BULK)
+               if ((Endpoint->Attributes & EP_TYPE_MASK) == EP_TYPE_BULK)
                  return DESCRIPTOR_SEARCH_Found;
        }
                  return DESCRIPTOR_SEARCH_Found;
        }
-       else if (DESCRIPTOR_TYPE(CurrentDescriptor) == DTYPE_Interface)
+       else if (Header->Type == DTYPE_Interface)
        {
                return DESCRIPTOR_SEARCH_Fail;
        }
        {
                return DESCRIPTOR_SEARCH_Fail;
        }