Fix up the incomplete Webserver project so that it integrates with the uIP stack...
[pub/USBasp.git] / Demos / Device / Incomplete / Sideshow / Descriptors.c
index 5691d45..f04b2f6 100644 (file)
@@ -1,21 +1,21 @@
 /*\r
              LUFA Library\r
-     Copyright (C) Dean Camera, 2009.\r
+     Copyright (C) Dean Camera, 2010.\r
               \r
   dean [at] fourwalledcubicle [dot] com\r
       www.fourwalledcubicle.com\r
 */\r
 \r
 /*\r
-  Copyright 2009  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
-\r
-  Permission to use, copy, modify, and distribute this software\r
-  and its documentation for any purpose and without fee is hereby\r
-  granted, provided that the above copyright notice appear in all\r
-  copies and that both that the copyright notice and this\r
-  permission notice and warranty disclaimer appear in supporting\r
-  documentation, and that the name of the author not be used in\r
-  advertising or publicity pertaining to distribution of the\r
+  Copyright 2010  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
+\r
+  Permission to use, copy, modify, distribute, and sell this \r
+  software and its documentation for any purpose is hereby granted\r
+  without fee, provided that the above copyright notice appear in \r
+  all copies and that both that the copyright notice and this\r
+  permission notice and warranty disclaimer appear in supporting \r
+  documentation, and that the name of the author not be used in \r
+  advertising or publicity pertaining to distribution of the \r
   software without specific, written prior permission.\r
 \r
   The author disclaim all warranties with regard to this\r
@@ -42,8 +42,8 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
        Endpoint0Size:          8,\r
                \r
        VendorID:               0x03EB,\r
-       ProductID:              0xDC03,\r
-       ReleaseNumber:          0x0000,\r
+       ProductID:              0x2040,\r
+       ReleaseNumber:          0x0001,\r
                \r
        ManufacturerStrIndex:   0x01,\r
        ProductStrIndex:        0x02,\r
@@ -154,7 +154,7 @@ USB_OSCompatibleIDDescriptor_t PROGMEM DevCompatIDs =
                                 SubCompatibleID: "UNIV1"}\r
 };\r
 \r
-uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
 {\r
        const uint8_t  DescriptorType   = (wValue >> 8);\r
        const uint8_t  DescriptorNumber = (wValue & 0xFF);\r
@@ -165,39 +165,37 @@ uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** c
        switch (DescriptorType)\r
        {\r
                case DTYPE_Device:\r
-                       Address = DESCRIPTOR_ADDRESS(DeviceDescriptor);\r
+                       Address = (void*)&DeviceDescriptor;\r
                        Size    = sizeof(USB_Descriptor_Device_t);\r
                        break;\r
                case DTYPE_Configuration:\r
-                       Address = DESCRIPTOR_ADDRESS(ConfigurationDescriptor);\r
+                       Address = (void*)&ConfigurationDescriptor;\r
                        Size    = sizeof(USB_Descriptor_Configuration_t);\r
                        break;\r
                case DTYPE_String:\r
                        switch (DescriptorNumber)\r
                        {\r
                                case 0x00:\r
-                                       Address = DESCRIPTOR_ADDRESS(LanguageString);\r
+                                       Address = (void*)&LanguageString;\r
                                        Size    = pgm_read_byte(&LanguageString.Header.Size);\r
                                        break;\r
                                case 0x01:\r
-                                       Address = DESCRIPTOR_ADDRESS(ManufacturerString);\r
+                                       Address = (void*)&ManufacturerString;\r
                                        Size    = pgm_read_byte(&ManufacturerString.Header.Size);\r
                                        break;\r
                                case 0x02:\r
-                                       Address = DESCRIPTOR_ADDRESS(ProductString);\r
+                                       Address = (void*)&ProductString;\r
                                        Size    = pgm_read_byte(&ProductString.Header.Size);\r
                                        break;\r
                                case 0x03:\r
-                                       Address = DESCRIPTOR_ADDRESS(SerialNumberString);\r
+                                       Address = (void*)&SerialNumberString;\r
                                        Size    = pgm_read_byte(&SerialNumberString.Header.Size);\r
                                        break;\r
                                case 0xEE:\r
-                                       /* Great, another Microsoft-proprietary extention. String address 0xEE is used\r
-                                          by Windows for "OS Descriptors", which in this case allows us to indicate that\r
-                                          our device is Sideshow compatible. Most people would be happy using the normal\r
-                                          0xFF 0x?? 0x?? Class/Subclass/Protocol values like the USBIF intended. */\r
-                                          \r
-                                       Address = DESCRIPTOR_ADDRESS(OSDescriptorString);\r
+                                       /* A Microsoft-proprietary extention. String address 0xEE is used by Windows for\r
+                                          "OS Descriptors", which in this case allows us to indicate that our device is\r
+                                          Sideshow compatible regardless of VID/PID values. */\r
+                                       Address = (void*)&OSDescriptorString;\r
                                        Size    = pgm_read_byte(&OSDescriptorString.Header.Size);\r
                                        break;\r
                        }\r
@@ -221,7 +219,7 @@ bool USB_GetOSFeatureDescriptor(const uint16_t wValue, const uint8_t wIndex,
                /* Only the Extended Device Compatibility descriptor is supported */\r
                if (wIndex == EXTENDED_COMPAT_ID_DESCRIPTOR)\r
                {\r
-                       Address = DESCRIPTOR_ADDRESS(DevCompatIDs);\r
+                       Address = (void*)&DevCompatIDs;\r
                        Size    = sizeof(USB_OSCompatibleIDDescriptor_t);\r
                }\r
        }\r