Minor documentation enhancements.
[pub/USBasp.git] / Demos / Device / ClassDriver / Keyboard / Descriptors.c
index 20c33b3..3b2acdd 100644 (file)
@@ -7,8 +7,7 @@
 */
 
 /*
 */
 
 /*
-  Copyright 2010  Denver Gingerich (denver [at] ossguy [dot] com)
-      Based on code by Dean Camera (dean [at] fourwalledcubicle [dot] com)
+  Copyright 2010  Dean Camera (dean [at] fourwalledcubicle [dot] com)
          
   Permission to use, copy, modify, distribute, and sell this 
   software and its documentation for any purpose is hereby granted
          
   Permission to use, copy, modify, distribute, and sell this 
   software and its documentation for any purpose is hereby granted
@@ -98,7 +97,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
                
        .VendorID               = 0x03EB,
        .ProductID              = 0x2042,
                
        .VendorID               = 0x03EB,
        .ProductID              = 0x2042,
-       .ReleaseNumber          = 0x0000,
+       .ReleaseNumber          = VERSION_BCD(00.01),
                
        .ManufacturerStrIndex   = 0x01,
        .ProductStrIndex        = 0x02,
                
        .ManufacturerStrIndex   = 0x01,
        .ProductStrIndex        = 0x02,
@@ -140,19 +139,19 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
                                
                        .Class                  = 0x03,
                        .SubClass               = 0x01,
                                
                        .Class                  = 0x03,
                        .SubClass               = 0x01,
-                       .Protocol               = HID_BOOT_KEYBOARD_PROTOCOL,
+                       .Protocol               = HID_BOOTP_KeyboardBootProtocol,
                                
                        .InterfaceStrIndex      = NO_DESCRIPTOR
                },
 
        .HID_KeyboardHID = 
                {  
                                
                        .InterfaceStrIndex      = NO_DESCRIPTOR
                },
 
        .HID_KeyboardHID = 
                {  
-                       .Header                 = {.Size = sizeof(USB_HID_Descriptor_t), .Type = DTYPE_HID},
+                       .Header                 = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = HID_DTYPE_HID},
                        
                        .HIDSpec                = VERSION_BCD(01.11),
                        .CountryCode            = 0x00,
                        .TotalReportDescriptors = 1,
                        
                        .HIDSpec                = VERSION_BCD(01.11),
                        .CountryCode            = 0x00,
                        .TotalReportDescriptors = 1,
-                       .HIDReportType          = DTYPE_Report,
+                       .HIDReportType          = HID_DTYPE_Report,
                        .HIDReportLength        = sizeof(KeyboardReport)
                },
                
                        .HIDReportLength        = sizeof(KeyboardReport)
                },
                
@@ -184,9 +183,9 @@ USB_Descriptor_String_t PROGMEM LanguageString =
  */
 USB_Descriptor_String_t PROGMEM ManufacturerString =
 {
  */
 USB_Descriptor_String_t PROGMEM ManufacturerString =
 {
-       .Header                 = {.Size = USB_STRING_LEN(16), .Type = DTYPE_String},
+       .Header                 = {.Size = USB_STRING_LEN(11), .Type = DTYPE_String},
                
                
-       .UnicodeString          = L"Denver Gingerich"
+       .UnicodeString          = L"Dean Camera"
 };
 
 /** Product descriptor string. This is a Unicode string containing the product's details in human readable form,
 };
 
 /** Product descriptor string. This is a Unicode string containing the product's details in human readable form,
@@ -206,48 +205,50 @@ USB_Descriptor_String_t PROGMEM ProductString =
  *  is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the
  *  USB host.
  */
  *  is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the
  *  USB host.
  */
-uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)
+uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
+                                    const uint8_t wIndex,
+                                    const void** const DescriptorAddress)
 {
        const uint8_t  DescriptorType   = (wValue >> 8);
        const uint8_t  DescriptorNumber = (wValue & 0xFF);
 
 {
        const uint8_t  DescriptorType   = (wValue >> 8);
        const uint8_t  DescriptorNumber = (wValue & 0xFF);
 
-       void*    Address = NULL;
-       uint16_t Size    = NO_DESCRIPTOR;
+       const void* Address = NULL;
+       uint16_t    Size    = NO_DESCRIPTOR;
 
        switch (DescriptorType)
        {
                case DTYPE_Device: 
 
        switch (DescriptorType)
        {
                case DTYPE_Device: 
-                       Address = (void*)&DeviceDescriptor;
+                       Address = &DeviceDescriptor;
                        Size    = sizeof(USB_Descriptor_Device_t);
                        break;
                case DTYPE_Configuration: 
                        Size    = sizeof(USB_Descriptor_Device_t);
                        break;
                case DTYPE_Configuration: 
-                       Address = (void*)&ConfigurationDescriptor;
+                       Address = &ConfigurationDescriptor;
                        Size    = sizeof(USB_Descriptor_Configuration_t);
                        break;
                case DTYPE_String: 
                        switch (DescriptorNumber)
                        {
                                case 0x00: 
                        Size    = sizeof(USB_Descriptor_Configuration_t);
                        break;
                case DTYPE_String: 
                        switch (DescriptorNumber)
                        {
                                case 0x00: 
-                                       Address = (void*)&LanguageString;
+                                       Address = &LanguageString;
                                        Size    = pgm_read_byte(&LanguageString.Header.Size);
                                        break;
                                case 0x01: 
                                        Size    = pgm_read_byte(&LanguageString.Header.Size);
                                        break;
                                case 0x01: 
-                                       Address = (void*)&ManufacturerString;
+                                       Address = &ManufacturerString;
                                        Size    = pgm_read_byte(&ManufacturerString.Header.Size);
                                        break;
                                case 0x02: 
                                        Size    = pgm_read_byte(&ManufacturerString.Header.Size);
                                        break;
                                case 0x02: 
-                                       Address = (void*)&ProductString;
+                                       Address = &ProductString;
                                        Size    = pgm_read_byte(&ProductString.Header.Size);
                                        break;
                        }
                        
                        break;
                                        Size    = pgm_read_byte(&ProductString.Header.Size);
                                        break;
                        }
                        
                        break;
-               case DTYPE_HID: 
-                       Address = (void*)&ConfigurationDescriptor.HID_KeyboardHID;
-                       Size    = sizeof(USB_HID_Descriptor_t);
+               case HID_DTYPE_HID: 
+                       Address = &ConfigurationDescriptor.HID_KeyboardHID;
+                       Size    = sizeof(USB_HID_Descriptor_HID_t);
                        break;
                        break;
-               case DTYPE_Report: 
-                       Address = (void*)&KeyboardReport;
+               case HID_DTYPE_Report: 
+                       Address = &KeyboardReport;
                        Size    = sizeof(KeyboardReport);
                        break;
        }
                        Size    = sizeof(KeyboardReport);
                        break;
        }