Update Android Accessory Class driver to be compatible with protocol version 2 devices.
authorDean Camera <dean@fourwalledcubicle.com>
Fri, 10 May 2013 19:45:37 +0000 (21:45 +0200)
committerDean Camera <dean@fourwalledcubicle.com>
Fri, 10 May 2013 19:45:37 +0000 (21:45 +0200)
LUFA/DoxygenPages/ChangeLog.txt
LUFA/Drivers/USB/Class/Common/AndroidAccessoryClassCommon.h
LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.c

index dd9a4ea..c4b9af9 100644 (file)
@@ -8,16 +8,18 @@
   *
   *  \section Sec_ChangeLogXXXXXX Version XXXXXX
   *  <b>New:</b>
-  *  - Library Applications:
-  *   - Added new Printer class bootloader
-  *   - Added new Mass Storage class bootloader
+  *  - Core:
   *   - Added additional MIDI command definitions to the MIDI class driver (thanks to Daniel Dreibrodt)
   *   - Added new CONCAT() and CONCAT_EXPANDED() convenience macros
   *   - Added new Printer Device Class driver
+  *  - Library Applications:
+  *   - Added new Printer class bootloader
+  *   - Added new Mass Storage class bootloader
   *
   *  <b>Changed:</b>
   *  - Core:
   *   - Updated the BUILD build system module to produce binary BIN files in addition to Intel HEX files
+  *   - Updated the Android Accessory Class to accept version 2 protocol devices (with version 1 functionality)
   *
   *  <b>Fixed:</b>
   *  - Core:
index bf3c077..feb8e4b 100644 (file)
                        AOA_STRING_Version              = 3, /**< Index of the Version Number property string. */
                        AOA_STRING_URI                  = 4, /**< Index of the URI Information property string. */
                        AOA_STRING_Serial               = 5, /**< Index of the Serial Number property string. */
-                       
+
                        #if !defined(__DOXYGEN__)
                        AOA_STRING_TOTAL_STRINGS
                        #endif
                };
-               
+
                /** Enum for the possible Android Open Accessory protocol versions. */
                enum AOA_Protocols_t
                {
                        AOA_PROTOCOL_AccessoryV1        = 0x0001, /**< Android Open Accessory version 1. */
+                       AOA_PROTOCOL_AccessoryV2        = 0x0002, /**< Android Open Accessory version 2. */
                };
 
        /* Disable C linkage for C++ Compilers: */
index 1ae6fae..1871df1 100644 (file)
@@ -167,7 +167,7 @@ uint8_t AOA_Host_StartAccessoryMode(USB_ClassInfo_AOA_Host_t* const AOAInterface
        if ((ErrorCode = AOA_Host_GetAccessoryProtocol(&AccessoryProtocol)) != HOST_WAITERROR_Successful)
          return ErrorCode;
 
-       if (AccessoryProtocol != CPU_TO_LE16(AOA_PROTOCOL_AccessoryV1))
+       if ((AccessoryProtocol != CPU_TO_LE16(AOA_PROTOCOL_AccessoryV1)) && (AccessoryProtocol != CPU_TO_LE16(AOA_PROTOCOL_AccessoryV2)))
          return AOA_ERROR_LOGICAL_CMD_FAILED;
 
        for (uint8_t PropertyIndex = 0; PropertyIndex < AOA_STRING_TOTAL_STRINGS; PropertyIndex++)