Convert the LowLevel AndroidAccessory demo to use the new class driver constants to reduce code duplication.

Add missing Doxygen documentation.
pull/1469/head
Dean Camera 13 years ago
parent 8b5aa61601
commit 7f8dbb4908

@ -183,7 +183,7 @@ void EVENT_USB_Host_DeviceEnumerationComplete(void)
} }
/* Validate the returned protocol version */ /* Validate the returned protocol version */
if (AndroidProtocol != ANDROID_PROTOCOL_Accessory) if (AndroidProtocol != AOA_PROTOCOL_AccessoryV1)
{ {
puts_P(PSTR(ESC_FG_RED "Accessory Mode Not Supported.")); puts_P(PSTR(ESC_FG_RED "Accessory Mode Not Supported."));
@ -192,12 +192,12 @@ void EVENT_USB_Host_DeviceEnumerationComplete(void)
} }
/* Send the device strings and start the Android Accessory Mode */ /* Send the device strings and start the Android Accessory Mode */
Android_SendString(ANDROID_STRING_Manufacturer, "Dean Camera"); Android_SendString(AOA_STRING_Manufacturer, "Dean Camera");
Android_SendString(ANDROID_STRING_Model, "LUFA Android Demo"); Android_SendString(AOA_STRING_Model, "LUFA Android Demo");
Android_SendString(ANDROID_STRING_Description, "LUFA Android Demo"); Android_SendString(AOA_STRING_Description, "LUFA Android Demo");
Android_SendString(ANDROID_STRING_Version, "1.0"); Android_SendString(AOA_STRING_Version, "1.0");
Android_SendString(ANDROID_STRING_URI, "http://www.lufa-lib.org"); Android_SendString(AOA_STRING_URI, "http://www.lufa-lib.org");
Android_SendString(ANDROID_STRING_Serial, "0000000012345678"); Android_SendString(AOA_STRING_Serial, "0000000012345678");
Android_StartAccessoryMode(); Android_StartAccessoryMode();
return; return;

@ -123,9 +123,9 @@ uint8_t DCOMP_NextAndroidAccessoryInterface(void* const CurrentDescriptor)
{ {
USB_Descriptor_Interface_t* Interface = DESCRIPTOR_PCAST(CurrentDescriptor, USB_Descriptor_Interface_t); USB_Descriptor_Interface_t* Interface = DESCRIPTOR_PCAST(CurrentDescriptor, USB_Descriptor_Interface_t);
if ((Interface->Class == ANDROID_INTERFACE_CLASS) && if ((Interface->Class == AOA_CSCP_AOADataClass) &&
(Interface->SubClass == ANDROID_INTERFACE_SUBCLASS) && (Interface->SubClass == AOA_CSCP_AOADataSubclass) &&
(Interface->Protocol == ANDROID_INTERFACE_PROTOCOL)) (Interface->Protocol == AOA_CSCP_AOADataProtocol))
{ {
return DESCRIPTOR_SEARCH_Found; return DESCRIPTOR_SEARCH_Found;
} }

@ -43,10 +43,6 @@
#define ANDROID_DATA_IN_PIPE 1 #define ANDROID_DATA_IN_PIPE 1
#define ANDROID_DATA_OUT_PIPE 2 #define ANDROID_DATA_OUT_PIPE 2
#define ANDROID_INTERFACE_CLASS 0xFF
#define ANDROID_INTERFACE_SUBCLASS 0xFF
#define ANDROID_INTERFACE_PROTOCOL 0x00
/* Enums: */ /* Enums: */
/** Enum for the possible return codes of the \ref ProcessConfigurationDescriptor() function. */ /** Enum for the possible return codes of the \ref ProcessConfigurationDescriptor() function. */
enum AndroidHost_GetConfigDescriptorDataCodes_t enum AndroidHost_GetConfigDescriptorDataCodes_t

@ -41,11 +41,6 @@
#include "AndroidAccessoryHost.h" #include "AndroidAccessoryHost.h"
/* Macros: */
#define ANDROID_VENDOR_ID 0x18D1
#define ANDROID_ACCESSORY_PRODUCT_ID 0x2D00
#define ANDROID_ACCESSORY_ADB_PRODUCT_ID 0x2D01
/* Enums: */ /* Enums: */
/** Enum for the possible return codes of the \ref ProcessDeviceDescriptor() function. */ /** Enum for the possible return codes of the \ref ProcessDeviceDescriptor() function. */
enum AndroidHost_GetDeviceDescriptorDataCodes_t enum AndroidHost_GetDeviceDescriptorDataCodes_t

@ -41,7 +41,7 @@ uint8_t Android_GetAccessoryProtocol(uint16_t* const Protocol)
USB_ControlRequest = (USB_Request_Header_t) USB_ControlRequest = (USB_Request_Header_t)
{ {
.bmRequestType = (REQDIR_DEVICETOHOST | REQTYPE_VENDOR | REQREC_DEVICE), .bmRequestType = (REQDIR_DEVICETOHOST | REQTYPE_VENDOR | REQREC_DEVICE),
.bRequest = ANDROID_Req_GetAccessoryProtocol, .bRequest = AOA_REQ_GetAccessoryProtocol,
.wValue = 0, .wValue = 0,
.wIndex = 0, .wIndex = 0,
.wLength = sizeof(uint16_t), .wLength = sizeof(uint16_t),
@ -57,7 +57,7 @@ uint8_t Android_SendString(const uint8_t StringIndex,
USB_ControlRequest = (USB_Request_Header_t) USB_ControlRequest = (USB_Request_Header_t)
{ {
.bmRequestType = (REQDIR_HOSTTODEVICE | REQTYPE_VENDOR | REQREC_DEVICE), .bmRequestType = (REQDIR_HOSTTODEVICE | REQTYPE_VENDOR | REQREC_DEVICE),
.bRequest = ANDROID_Req_SendString, .bRequest = AOA_REQ_SendString,
.wValue = 0, .wValue = 0,
.wIndex = StringIndex, .wIndex = StringIndex,
.wLength = (strlen(String) + 1), .wLength = (strlen(String) + 1),
@ -72,7 +72,7 @@ uint8_t Android_StartAccessoryMode(void)
USB_ControlRequest = (USB_Request_Header_t) USB_ControlRequest = (USB_Request_Header_t)
{ {
.bmRequestType = (REQDIR_HOSTTODEVICE | REQTYPE_VENDOR | REQREC_DEVICE), .bmRequestType = (REQDIR_HOSTTODEVICE | REQTYPE_VENDOR | REQREC_DEVICE),
.bRequest = ANDROID_Req_StartAccessoryMode, .bRequest = AOA_REQ_StartAccessoryMode,
.wValue = 0, .wValue = 0,
.wIndex = 0, .wIndex = 0,
.wLength = 0, .wLength = 0,

@ -42,29 +42,6 @@
#include <LUFA/Drivers/USB/USB.h> #include <LUFA/Drivers/USB/USB.h>
/* Enums: */
enum Android_Requests_t
{
ANDROID_Req_GetAccessoryProtocol = 51,
ANDROID_Req_SendString = 52,
ANDROID_Req_StartAccessoryMode = 53,
};
enum Android_Strings_t
{
ANDROID_STRING_Manufacturer = 0,
ANDROID_STRING_Model = 1,
ANDROID_STRING_Description = 2,
ANDROID_STRING_Version = 3,
ANDROID_STRING_URI = 4,
ANDROID_STRING_Serial = 5,
};
enum Android_Protocols_t
{
ANDROID_PROTOCOL_Accessory = 0x0001,
};
/* Function Prototypes: */ /* Function Prototypes: */
uint8_t Android_GetAccessoryProtocol(uint16_t* const Protocol); uint8_t Android_GetAccessoryProtocol(uint16_t* const Protocol);
uint8_t Android_SendString(const uint8_t StringIndex, uint8_t Android_SendString(const uint8_t StringIndex,

@ -64,8 +64,13 @@
#endif #endif
/* Macros: */ /* Macros: */
/** Vendor ID value in a Device Descriptor to indicate an Android device. */
#define ANDROID_VENDOR_ID 0x18D1 #define ANDROID_VENDOR_ID 0x18D1
/** Product ID value in a Device Descriptor to indicate an Android device in Open Accessory mode. */
#define ANDROID_ACCESSORY_PRODUCT_ID 0x2D00 #define ANDROID_ACCESSORY_PRODUCT_ID 0x2D00
/** Product ID value in a Device Descriptor to indicate an Android device in Open Accessory and Android Debug mode. */
#define ANDROID_ACCESSORY_ADB_PRODUCT_ID 0x2D01 #define ANDROID_ACCESSORY_ADB_PRODUCT_ID 0x2D01
/* Enums: */ /* Enums: */
@ -111,7 +116,7 @@
/** Enum for the possible Android Open Accessory protocol versions. */ /** Enum for the possible Android Open Accessory protocol versions. */
enum AOA_Protocols_t enum AOA_Protocols_t
{ {
AOA_PROTOCOL_Accessory = 0x0001, /**< Android Open Accessory version 1. */ AOA_PROTOCOL_AccessoryV1 = 0x0001, /**< Android Open Accessory version 1. */
}; };
/* Disable C linkage for C++ Compilers: */ /* Disable C linkage for C++ Compilers: */

@ -194,7 +194,7 @@ uint8_t AOA_Host_StartAccessoryMode(USB_ClassInfo_AOA_Host_t* const AOAInterface
if ((ErrorCode = AOA_Host_GetAccessoryProtocol(&AccessoryProtocol)) != HOST_WAITERROR_Successful) if ((ErrorCode = AOA_Host_GetAccessoryProtocol(&AccessoryProtocol)) != HOST_WAITERROR_Successful)
return ErrorCode; return ErrorCode;
if (AccessoryProtocol != CPU_TO_LE16(AOA_PROTOCOL_Accessory)) if (AccessoryProtocol != CPU_TO_LE16(AOA_PROTOCOL_AccessoryV1))
return AOA_ERROR_LOGICAL_CMD_FAILED; return AOA_ERROR_LOGICAL_CMD_FAILED;
for (uint8_t PropertyIndex = 0; PropertyIndex < AOA_STRING_TOTAL_STRINGS; PropertyIndex++) for (uint8_t PropertyIndex = 0; PropertyIndex < AOA_STRING_TOTAL_STRINGS; PropertyIndex++)

@ -87,7 +87,7 @@
* *
* <table> * <table>
* <tr> * <tr>
* <th width="100px">USB Class</th> * <th width="200px">USB Class</th>
* <th width="90px">Device Mode</th> * <th width="90px">Device Mode</th>
* <th width="90px">Host Mode</th> * <th width="90px">Host Mode</th>
* </tr> * </tr>

Loading…
Cancel
Save