Move RNDISConstants.h into the RNDIS class driver common definition header.
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Device / MIDI.c
index fcf670a..2e17575 100644 (file)
@@ -1,21 +1,21 @@
 /*
              LUFA Library
      Copyright (C) Dean Camera, 2010.
-              
+
   dean [at] fourwalledcubicle [dot] com
-      www.fourwalledcubicle.com
+           www.lufa-lib.org
 */
 
 /*
   Copyright 2010  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 
-  Permission to use, copy, modify, distribute, and sell this 
+  Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
-  without fee, provided that the above copyright notice appear in 
+  without fee, provided that the above copyright notice appear in
   all copies and that both that the copyright notice and this
-  permission notice and warranty disclaimer appear in supporting 
-  documentation, and that the name of the author not be used in 
-  advertising or publicity pertaining to distribution of the 
+  permission notice and warranty disclaimer appear in supporting
+  documentation, and that the name of the author not be used in
+  advertising or publicity pertaining to distribution of the
   software without specific, written prior permission.
 
   The author disclaim all warranties with regard to this
@@ -33,6 +33,7 @@
 #if defined(USB_CAN_BE_DEVICE)
 
 #define  __INCLUDE_FROM_MIDI_DRIVER
+#define  __INCLUDE_FROM_MIDI_DEVICE_C
 #include "MIDI.h"
 
 bool MIDI_Device_ConfigureEndpoints(USB_ClassInfo_MIDI_Device_t* const MIDIInterfaceInfo)
@@ -64,23 +65,33 @@ bool MIDI_Device_ConfigureEndpoints(USB_ClassInfo_MIDI_Device_t* const MIDIInter
                {
                        continue;
                }
-               
+
                if (!(Endpoint_ConfigureEndpoint(EndpointNum, Type, Direction, Size,
                                                                                 DoubleBanked ? ENDPOINT_BANK_DOUBLE : ENDPOINT_BANK_SINGLE)))
                {
                        return false;
                }
        }
-       
+
        return true;
 }
 
+void MIDI_Device_USBTask(USB_ClassInfo_MIDI_Device_t* const MIDIInterfaceInfo)
+{
+       if (USB_DeviceState != DEVICE_STATE_Configured)
+         return;
+
+       #if !defined(NO_CLASS_DRIVER_AUTOFLUSH)
+       MIDI_Device_Flush(MIDIInterfaceInfo);
+       #endif
+}
+
 uint8_t MIDI_Device_SendEventPacket(USB_ClassInfo_MIDI_Device_t* const MIDIInterfaceInfo,
                                     const MIDI_EventPacket_t* const Event)
 {
        if (USB_DeviceState != DEVICE_STATE_Configured)
          return ENDPOINT_RWSTREAM_DeviceDisconnected;
-       
+
        Endpoint_SelectEndpoint(MIDIInterfaceInfo->Config.DataINEndpointNumber);
 
        if (Endpoint_IsReadWriteAllowed())
@@ -93,7 +104,7 @@ uint8_t MIDI_Device_SendEventPacket(USB_ClassInfo_MIDI_Device_t* const MIDIInter
                if (!(Endpoint_IsReadWriteAllowed()))
                  Endpoint_ClearIN();
        }
-       
+
        return ENDPOINT_RWSTREAM_NoError;
 }
 
@@ -101,7 +112,7 @@ uint8_t MIDI_Device_Flush(USB_ClassInfo_MIDI_Device_t* const MIDIInterfaceInfo)
 {
        if (USB_DeviceState != DEVICE_STATE_Configured)
          return ENDPOINT_RWSTREAM_DeviceDisconnected;
-       
+
        uint8_t ErrorCode;
 
        Endpoint_SelectEndpoint(MIDIInterfaceInfo->Config.DataINEndpointNumber);
@@ -122,18 +133,19 @@ bool MIDI_Device_ReceiveEventPacket(USB_ClassInfo_MIDI_Device_t* const MIDIInter
 {
        if (USB_DeviceState != DEVICE_STATE_Configured)
          return false;
-       
+
        Endpoint_SelectEndpoint(MIDIInterfaceInfo->Config.DataOUTEndpointNumber);
 
        if (!(Endpoint_IsReadWriteAllowed()))
          return false;
 
        Endpoint_Read_Stream_LE(Event, sizeof(MIDI_EventPacket_t), NO_STREAM_CALLBACK);
-       
+
        if (!(Endpoint_IsReadWriteAllowed()))
          Endpoint_ClearOUT();
-       
+
        return true;
 }
 
 #endif
+