\r
 \r
 # LUFA library compile-time options\r
-LUFA_OPTS  = -D USB_HOST_ONLY\r
+LUFA_OPTS  = -D USB_HOST_ONLY -Wextra\r
 LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"\r
 LUFA_OPTS += -D USB_STREAM_TIMEOUT_MS=5000\r
 \r
 
 \r
 static int SerialStream_TxByte(char DataByte, FILE *Stream)\r
 {\r
+       (void)Stream;\r
+       \r
        Serial_TxByte(DataByte);\r
-\r
        return 0;\r
 }\r
 \r
 static int SerialStream_RxByte(FILE *Stream)\r
 {\r
+       (void)Stream;\r
+\r
        return Serial_RxByte();\r
 }\r
 
 \r
 void Audio_Device_USBTask(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo)\r
 {\r
-\r
+       (void)AudioInterfaceInfo;\r
 }\r
 \r
 bool Audio_Device_IsSampleReceived(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo)\r
 
                        static inline int8_t Audio_Device_ReadSample8(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo)\r
                        {\r
                                int8_t Sample;\r
+                               \r
+                               (void)AudioInterfaceInfo;\r
 \r
                                Sample = Endpoint_Read_Byte();\r
 \r
                        {\r
                                int16_t Sample;\r
 \r
+                               (void)AudioInterfaceInfo;\r
+\r
                                Sample = (int16_t)Endpoint_Read_Word_LE();\r
                                          \r
                                if (!(Endpoint_BytesInEndpoint()))\r
                        {\r
                                int32_t Sample;\r
 \r
+                               (void)AudioInterfaceInfo;\r
+\r
                                Sample = (((uint32_t)Endpoint_Read_Byte() << 16) | Endpoint_Read_Word_LE());\r
                                          \r
                                if (!(Endpoint_BytesInEndpoint()))\r
 
 \r
 void MIDI_Device_USBTask(USB_ClassInfo_MIDI_Device_t* const MIDIInterfaceInfo)\r
 {\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
 
                                           const uint32_t OId, void* const QueryData, const uint16_t QuerySize,\r
                                           void* ResponseData, uint16_t* const ResponseSize)\r
 {\r
+       (void)QueryData;\r
+       (void)QuerySize;\r
+\r
        switch (OId)\r
        {\r
                case OID_GEN_SUPPORTED_LIST:\r
        }\r
 }\r
 \r
-static bool RNDIS_Device_ProcessNDISSet(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo, const uint32_t OId, void* SetData,\r
-                                        const uint16_t SetSize)\r
+static bool RNDIS_Device_ProcessNDISSet(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo, const uint32_t OId,\r
+                                        void* SetData, const uint16_t SetSize)\r
 {\r
+       (void)SetSize;\r
+\r
        switch (OId)\r
        {\r
                case OID_GEN_CURRENT_PACKET_FILTER:\r
 
 \r
 void HID_Host_USBTask(USB_ClassInfo_HID_Host_t* const HIDInterfaceInfo)\r
 {\r
-\r
+       (void)HIDInterfaceInfo;\r
 }\r
 \r
 #if !defined(HID_HOST_BOOT_PROTOCOL_ONLY)\r
 
 \r
 void MIDI_Host_USBTask(USB_ClassInfo_MIDI_Host_t* const MIDIInterfaceInfo)\r
 {\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
        Pipe_SelectPipe(MIDIInterfaceInfo->Config.DataOUTPipeNumber);\r
 \r
-       if (Pipe_IsReadWriteAllowed());\r
+       if (Pipe_IsReadWriteAllowed())\r
        {\r
                uint8_t ErrorCode;\r
 \r
 
 \r
 void MS_Host_USBTask(USB_ClassInfo_MS_Host_t* const MSInterfaceInfo)\r
 {\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
 
 \r
 void PRNT_Host_USBTask(USB_ClassInfo_PRNT_Host_t* const PRNTInterfaceInfo)\r
 {\r
-       \r
+       (void)PRNTInterfaceInfo;\r
 }\r
 \r
 uint8_t PRNT_Host_SetBidirectionalMode(USB_ClassInfo_PRNT_Host_t* const PRNTInterfaceInfo)\r
 
 \r
 void RNDIS_Host_USBTask(USB_ClassInfo_RNDIS_Host_t* const RNDISInterfaceInfo)\r
 {\r
-\r
+       (void)RNDISInterfaceInfo;\r
 }\r
 \r
 static uint8_t RNDIS_SendEncapsulatedCommand(USB_ClassInfo_RNDIS_Host_t* const RNDISInterfaceInfo,\r
 
 \r
 void SImage_Host_USBTask(USB_ClassInfo_SI_Host_t* const SIInterfaceInfo)\r
 {\r
-\r
+       (void)SIInterfaceInfo;\r
 }\r
 \r
 static uint8_t SImage_Host_SendBlockHeader(USB_ClassInfo_SI_Host_t* const SIInterfaceInfo, SI_PIMA_Container_t* const PIMAHeader)\r
 
   *  - Fixed MassStorageHost Class driver demo not having USB_STREAM_TIMEOUT_MS compile time option set properly to prevent slow \r
   *    devices from timing out the data pipes\r
   *  - Fixed the definition of the Endpoint_BytesInEndpoint() macro for the U4 series AVR parts\r
+  *  - Fixed MIDI host Class driver MIDI_Host_SendEventPacket() routine not properly checking for Pipe ready before writing\r
+  *  - Fixed use of deprecated struct initializers, removed library unused parameter warnings when compiled with -Wextra enabled\r
   *\r
   *  \section Sec_ChangeLog091122 Version 091122\r
   *\r