Switch over the BluetoothHost demo's Service Discovery code to pass around more gener...
[pub/lufa.git] / Demos / Host / Incomplete / BluetoothHost / Lib / ServiceDiscoveryProtocol.h
index d90652b..4535b35 100644 (file)
                #define SDP_DATATYPE_ELEMENT_ALTERNATIVE        (0x07 << 3)
                #define SDP_DATATYPE_URL                        (0x08 << 3)
                
+               #define UUID_SIZE_BYTES                         16
                #define BASE_96BIT_UUID                         0xFB, 0x34, 0x9B, 0x5F, 0x80, 0x00, 0x00, 0x80, 0x00, 0x10, 0x00, 0x00
                
                #define SERVICE_ATTRIBUTE_TEXT(name, string)    SERVICE_ATTRIBUTE_LEN8(name, SDP_DATATYPE_TEXT, sizeof(string), string)
                #define SERVICE_ATTRIBUTE_LEN8(name, type, size, ...)  const ServiceAttributeData8Bit_t  name PROGMEM = \
                                                                {.Header = (type | 5), .Size = size, .Data = __VA_ARGS__}
                #define SERVICE_ATTRIBUTE_LEN16(name, type, size, ...) const ServiceAttributeData16Bit_t name PROGMEM = \
-                                                               {.Header = (type | 5), .Size = size, .Data = __VA_ARGS__}
+                                                               {.Header = (type | 6), .Size = size, .Data = __VA_ARGS__}
                #define SERVICE_ATTRIBUTE_LEN32(name, type, size, ...) const ServiceAttributeData32Bit_t name PROGMEM = \
-                                                               {.Header = (type | 5), .Size = size, .Data = __VA_ARGS__}
-               #define SERVICE_ATTRIBUTE_TABLE_TERMINATOR      {.AttributeData = NULL}
+                                                               {.Header = (type | 7), .Size = size, .Data = __VA_ARGS__}
+               #define SERVICE_ATTRIBUTE_TABLE_TERMINATOR      {.Data = NULL}
 
        /* Type Defines: */
                typedef struct
@@ -90,7 +91,7 @@
                
                typedef struct
                {
-                       uint16_t    ID;
+                       uint16_t    AttributeID;
                        const void* Data;
                } ServiceAttributeTable_t;
 
                                return ParamValue;
                        }
 
-                       static uint8_t ServiceDiscovery_ProcessAttributes(uint8_t UUIDList[12][16], const uint8_t TotalUUIDs, 
+                       static uint8_t ServiceDiscovery_ProcessAttributes(uint8_t UUIDList[][UUID_SIZE_BYTES], const uint8_t TotalUUIDs, 
                                                                          uint8_t* ResponseBuffer, uint8_t MaxResponseSize,
                                                                          const void** CurrentParameter);
-                       static uint8_t ServiceDiscovery_GetAttribute(uint8_t UUIDList[12][16], const uint8_t TotalUUIDs,
+                       static uint8_t ServiceDiscovery_GetAttribute(uint8_t UUIDList[][UUID_SIZE_BYTES], const uint8_t TotalUUIDs,
                                                                     const uint32_t Attribute, uint8_t** DataBuffer, uint8_t BufferLen);
-                       static uint8_t ServiceDiscovery_GetUUIDList(uint8_t UUIDList[12][16], const void** CurrentParameter);
+                       static uint8_t ServiceDiscovery_GetUUIDList(uint8_t UUIDList[][UUID_SIZE_BYTES], const void** CurrentParameter);
                        static uint32_t ServiceDiscovery_GetDataElementSize(const void** AttributeHeader, uint8_t* ElementHeaderSize);
                #endif