Add missing svn:eol-style properties to the new KeyboardMouseMultiReport demo.
[pub/USBasp.git] / Projects / MissileLauncher / MissileLauncher.c
index dcc6e73..b085ed5 100644 (file)
@@ -2,22 +2,22 @@
          USB Missile Launcher Demo
         Copyright (C) Dave Fletcher, 2010.
          fletch at fletchtronics dot net
-         
+
         Based on research by Scott Weston at
          http://code.google.com/p/pymissile
  */
 
 /*
-  Copyright 2010  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+  Copyright 2011  Dean Camera (dean [at] fourwalledcubicle [dot] com)
   Copyright 2010  Dave Fletcher (fletch [at] fletchtronics [dot] net)
 
-  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
@@ -42,7 +42,7 @@
  *  the application and is responsible for the initial application hardware configuration as well
  *  as the sending of commands to the attached launcher toy.
  */
+
 #include "MissileLauncher.h"
 
 /** Launcher first init command report data sequence */
@@ -103,7 +103,7 @@ int main(void)
        for (;;)
        {
                Read_Joystick_Status();
-       
+
                HID_Host_Task();
                USB_USBTask();
        }
@@ -151,7 +151,8 @@ void Read_Joystick_Status(void)
  *  \param[in] Report  Report data to send.
  *  \param[in] ReportSize  Report length in bytes.
  */
-void Send_Command_Report(uint8_t* const Report, const uint16_t ReportSize)
+void Send_Command_Report(uint8_t* const Report,
+                         const uint16_t ReportSize)
 {
        memcpy(CmdBuffer, Report, 8);
        WriteNextReport(CmdBuffer, ReportSize);
@@ -172,7 +173,7 @@ void Send_Command(uint8_t* const Command)
                Send_Command_Report(CMD_INITB, 8);
                Send_Command_Report(Command, LAUNCHER_CMD_BUFFER_SIZE);
        }
-       
+
        CmdState = Command;
 }
 
@@ -203,7 +204,7 @@ void EVENT_USB_Host_DeviceEnumerationComplete(void)
 /** Event handler for the USB_HostError event. This indicates that a hardware error occurred while in host mode. */
 void EVENT_USB_Host_HostError(const uint8_t ErrorCode)
 {
-       USB_ShutDown();
+       USB_Disable();
 
        LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
        for(;;);
@@ -212,7 +213,8 @@ void EVENT_USB_Host_HostError(const uint8_t ErrorCode)
 /** Event handler for the USB_DeviceEnumerationFailed event. This indicates that a problem occurred while
  *  enumerating an attached USB device.
  */
-void EVENT_USB_Host_DeviceEnumerationFailed(const uint8_t ErrorCode, const uint8_t SubErrorCode)
+void EVENT_USB_Host_DeviceEnumerationFailed(const uint8_t ErrorCode,
+                                            const uint8_t SubErrorCode)
 {
        LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
 }
@@ -229,13 +231,13 @@ void DiscardNextReport(void)
        {
                /* Refreeze HID data IN pipe */
                Pipe_Freeze();
-                       
+
                return;
        }
-               
+
        /* Clear the IN endpoint, ready for next data packet */
        Pipe_ClearIN();
-       
+
        /* Refreeze HID data IN pipe */
        Pipe_Freeze();
 }
@@ -245,11 +247,12 @@ void DiscardNextReport(void)
  *  \param[in] ReportOUTData  Buffer containing the report to send to the device
  *  \param[in] ReportLength  Length of the report to send
  */
-void WriteNextReport(uint8_t* const ReportOUTData, const uint16_t ReportLength)
+void WriteNextReport(uint8_t* const ReportOUTData,
+                     const uint16_t ReportLength)
 {
        /* Select and unfreeze HID data OUT pipe */
        Pipe_SelectPipe(HID_DATA_OUT_PIPE);
-       
+
        /* Not all HID devices have an OUT endpoint (some require OUT reports to be sent over the
         * control endpoint instead) - check to see if the OUT endpoint has been initialized */
        if (Pipe_IsConfigured())
@@ -261,13 +264,13 @@ void WriteNextReport(uint8_t* const ReportOUTData, const uint16_t ReportLength)
                {
                        /* Refreeze the data OUT pipe */
                        Pipe_Freeze();
-                       
+
                        return;
                }
-               
+
                /* Write out HID report data */
-               Pipe_Write_Stream_LE(ReportOUTData, ReportLength);                              
-                       
+               Pipe_Write_Stream_LE(ReportOUTData, ReportLength, NULL);
+
                /* Clear the OUT endpoint, send last data packet */
                Pipe_ClearOUT();
 
@@ -280,7 +283,7 @@ void WriteNextReport(uint8_t* const ReportOUTData, const uint16_t ReportLength)
                USB_ControlRequest = (USB_Request_Header_t)
                        {
                                .bmRequestType = (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE),
-                               .bRequest      = REQ_SetReport,
+                               .bRequest      = HID_REQ_SetReport,
                                .wValue        = 0x02,
                                .wIndex        = 0x01,
                                .wLength       = ReportLength,
@@ -321,12 +324,12 @@ void HID_Host_Task(void)
                        {
                                /* Indicate error status */
                                LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
-                               
+
                                /* Wait until USB device disconnected */
                                USB_HostState = HOST_STATE_WaitForDeviceRemoval;
                                break;
                        }
-                       
+
                        USB_HostState = HOST_STATE_Configured;
                        break;
                case HOST_STATE_Configured:
@@ -335,3 +338,4 @@ void HID_Host_Task(void)
                        break;
        }
 }
+