From 5ca1d7bf8f1aa774c076b614fa692c2026d7e854 Mon Sep 17 00:00:00 2001
From: Dean Camera <dean@fourwalledcubicle.com>
Date: Thu, 30 Jul 2009 07:45:36 +0000
Subject: [PATCH] Fix redefinition warning when USB_DEVICE_ONLY is set on an
 AVR which does not support USB host mode.

---
 Demos/Device/ClassDriver/MIDI/MIDI.c | 1 +
 LUFA/Drivers/USB/Class/Common/MIDI.h | 2 +-
 LUFA/Drivers/USB/HighLevel/USBMode.h | 4 +++-
 3 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/Demos/Device/ClassDriver/MIDI/MIDI.c b/Demos/Device/ClassDriver/MIDI/MIDI.c
index 243ae9ec8..fcb86d661 100644
--- a/Demos/Device/ClassDriver/MIDI/MIDI.c
+++ b/Demos/Device/ClassDriver/MIDI/MIDI.c
@@ -67,6 +67,7 @@ int main(void)
 	{
 		CheckJoystickMovement();
 		
+		/* Must acknowedge MIDI packets from the host even though they aren't used, or the host locks up */
 		MIDI_EventPacket_t DummyMIDIEvent;
 		MIDI_Device_ReceiveEventPacket(&Keyboard_MIDI_Interface, &DummyMIDIEvent);
 	
diff --git a/LUFA/Drivers/USB/Class/Common/MIDI.h b/LUFA/Drivers/USB/Class/Common/MIDI.h
index 7dfb0e780..a52b037dc 100644
--- a/LUFA/Drivers/USB/Class/Common/MIDI.h
+++ b/LUFA/Drivers/USB/Class/Common/MIDI.h
@@ -137,7 +137,7 @@
 		/** Type define for a USB MIDI event packet, used to encapsulate sent and received MIDI messages from a USB MIDI interface. */
 		typedef struct
 		{
-			unsigned char Command     : 4; /**< MIDI command being sent or received in the event packet */
+			unsigned char Command     : 4; /**< Upper nibble of the MIDI command being sent or received in the event packet */
 			unsigned char CableNumber : 4; /**< Virtual cable number of the event being sent or received in the given MIDI interface */
 			
 			uint8_t Data1; /**< First byte of data in the MIDI event */
diff --git a/LUFA/Drivers/USB/HighLevel/USBMode.h b/LUFA/Drivers/USB/HighLevel/USBMode.h
index 18a2666c6..ba221c520 100644
--- a/LUFA/Drivers/USB/HighLevel/USBMode.h
+++ b/LUFA/Drivers/USB/HighLevel/USBMode.h
@@ -50,7 +50,9 @@
 					#error USB_HOST_ONLY is not available for the currently selected USB AVR model.
 				#endif
 				
-				#define USB_DEVICE_ONLY
+				#if !defined(USB_DEVICE_ONLY)
+					#define USB_DEVICE_ONLY
+				#endif
 			#endif
 
 			#if (!defined(USB_DEVICE_ONLY) && !defined(USB_HOST_ONLY))
-- 
GitLab