Update UC3 platform driver support to use the bitmasks defined in the header files...
[pub/USBasp.git] / Demos / Device / Incomplete / Sideshow / Sideshow.c
index 644e957..09076e1 100644 (file)
@@ -1,21 +1,21 @@
 /*
              LUFA Library
-     Copyright (C) Dean Camera, 2010.
-              
+     Copyright (C) Dean Camera, 2011.
+
   dean [at] fourwalledcubicle [dot] com
-      www.fourwalledcubicle.com
+           www.lufa-lib.org
 */
 
 /*
-  Copyright 2010  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+  Copyright 2011  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
        externally connected interactive display. Upon enumeration, this will
        appear as a new SideShow device which can have gadgets loaded onto
        it.
-       
+
        Note that while the incoming content is buffered in packet struct
        form, the data is not actually displayed. It is left to the user to
        write sufficient code to read out the packed data for display to a
        screen.
-       
+
        Installed gadgets can be accessed through the InstalledApplications
        array, with entries that have their InUse flag set being active. As
        only the active content is displayed on the device due to memory
@@ -59,7 +59,7 @@ int main(void)
 
        LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
        sei();
-       
+
        for (;;)
        {
                SideShow_Task();
@@ -76,11 +76,14 @@ void SetupHardware(void)
 
        /* Disable clock division */
        clock_prescale_set(clock_div_1);
-       
+
        /* Hardware Initialization */
        LEDs_Init();
        USB_Init();
-       SerialStream_Init(9600, false);
+       Serial_Init(9600, false);
+
+       /* Create a stdio stream for the serial port for stdin and stdout */
+       Serial_CreateStream(NULL);
 }
 
 void EVENT_USB_Device_Connect(void)
@@ -107,22 +110,23 @@ void EVENT_USB_Device_ConfigurationChanged(void)
        LEDs_SetAllLEDs(ConfigSuccess ? LEDMASK_USB_READY : LEDMASK_USB_ERROR);
 }
 
-void EVENT_USB_Device_UnhandledControlRequest(void)
+void EVENT_USB_Device_ControlRequest(void)
 {
        switch (USB_ControlRequest.bRequest)
        {
                case REQ_GetOSFeatureDescriptor:
                        if (USB_ControlRequest.bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_VENDOR | REQREC_DEVICE))
                        {
-                               void*    DescriptorPointer;
-                               uint16_t DescriptorSize = USB_GetOSFeatureDescriptor(USB_ControlRequest.wValue, USB_ControlRequest.wIndex,
-                                                                                    &DescriptorPointer);
+                               const void* DescriptorPointer;
+                               uint16_t    DescriptorSize = USB_GetOSFeatureDescriptor(USB_ControlRequest.wValue,
+                                                                                       USB_ControlRequest.wIndex,
+                                                                                       &DescriptorPointer);
 
                                if (DescriptorSize == NO_DESCRIPTOR)
                                  return;
-                               
+
                                Endpoint_ClearSETUP();
-                               
+
                                Endpoint_Write_Control_PStream_LE(DescriptorPointer, DescriptorSize);
                                Endpoint_ClearOUT();
                        }
@@ -130,7 +134,7 @@ void EVENT_USB_Device_UnhandledControlRequest(void)
                        break;
        }
 }
-       
+
 void SideShow_Task(void)
 {
        /* Device must be connected and configured for the task to run */
@@ -139,7 +143,7 @@ void SideShow_Task(void)
 
        /* Select the SideShow data out endpoint */
        Endpoint_SelectEndpoint(SIDESHOW_OUT_EPNUM);
-       
+
        /* Check to see if a new SideShow message has been received */
        if (Endpoint_IsReadWriteAllowed())
        {
@@ -147,3 +151,4 @@ void SideShow_Task(void)
                Sideshow_ProcessCommandPacket();
        }
 }
+