Much faster attribute range lookup - look through short list of attributes and compar...
[pub/USBasp.git] / Demos / Host / Incomplete / BluetoothHost / Lib / SDPServices.c
index 537c81f..2530231 100644 (file)
@@ -38,8 +38,8 @@ const struct
 \r
 const struct\r
 {\r
-       uint8_t     Header;\r
-       uint16_t    Size;\r
+       uint8_t    Header;\r
+       uint16_t   Size;\r
        ItemUUID_t UUIDList[];\r
 } PROGMEM SDP_Attribute_ServiceClassIDs =\r
        {\r
@@ -50,32 +50,32 @@ const struct
                                {.Header = (SDP_DATATYPE_UUID | SDP_DATASIZE_128Bit), .UUID = {BASE_80BIT_UUID, {0x00, 0x00, 0x00, 0x00, 0x10, 0x00}},}\r
                        }\r
        };\r
-\r
+       \r
 const struct\r
 {\r
        uint8_t     Header;\r
        uint8_t     Size;\r
-       Item16Bit_t VersionList[];\r
-} PROGMEM SDP_Attribute_Version =\r
+       Item16Bit_t OffsetList[];\r
+} PROGMEM SDP_Attribute_LangOffset =\r
        {\r
                .Header = (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit),\r
                .Size   = (sizeof(Item16Bit_t) * 1),\r
-               .VersionList =\r
+               .OffsetList =\r
                        {\r
                                {.Header = (SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_16Bit), .Value = SWAPENDIAN_16(0x0100)}\r
                        }\r
-       };\r
+       };      \r
 \r
 const struct\r
 {\r
        uint8_t     Header;\r
        uint8_t     Size;\r
-       Item16Bit_t OffsetList[];\r
-} PROGMEM SDP_Attribute_LangOffset =\r
+       Item16Bit_t VersionList[];\r
+} PROGMEM SDP_Attribute_Version =\r
        {\r
                .Header = (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit),\r
                .Size   = (sizeof(Item16Bit_t) * 1),\r
-               .OffsetList =\r
+               .VersionList =\r
                        {\r
                                {.Header = (SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_16Bit), .Value = SWAPENDIAN_16(0x0100)}\r
                        }\r
@@ -83,9 +83,9 @@ const struct
 \r
 const struct\r
 {\r
-       uint8_t     Header;\r
-       uint8_t     Size;\r
-       char        Text[];\r
+       uint8_t Header;\r
+       uint8_t Size;\r
+       char    Text[];\r
 } PROGMEM SDP_Attribute_ServiceName =\r
        {\r
                .Header = (SDP_DATATYPE_String | SDP_DATASIZE_Variable8Bit),\r
@@ -95,9 +95,9 @@ const struct
 \r
 const struct\r
 {\r
-       uint8_t     Header;\r
-       uint8_t     Size;\r
-       char        Text[];\r
+       uint8_t Header;\r
+       uint8_t Size;\r
+       char    Text[];\r
 } PROGMEM SDP_Attribute_ServiceDescription =\r
        {\r
                .Header = (SDP_DATATYPE_String | SDP_DATASIZE_Variable8Bit),\r
@@ -110,8 +110,8 @@ const ServiceAttributeTable_t SDP_Attribute_Table[] PROGMEM =
        {\r
                {.AttributeID = SDP_ATTRIBUTE_ID_SERVICERECORDHANDLE, .Data = &SDP_Attribute_ServiceHandle      },\r
                {.AttributeID = SDP_ATTRIBUTE_ID_SERVICECLASSIDS,     .Data = &SDP_Attribute_ServiceClassIDs    },\r
-               {.AttributeID = SDP_ATTRIBUTE_ID_VERSION,             .Data = &SDP_Attribute_Version            },\r
                {.AttributeID = SDP_ATTRIBUTE_ID_LANGIDOFFSET,        .Data = &SDP_Attribute_LangOffset         },\r
+               {.AttributeID = SDP_ATTRIBUTE_ID_VERSION,             .Data = &SDP_Attribute_Version            },\r
                {.AttributeID = SDP_ATTRIBUTE_ID_SERVICENAME,         .Data = &SDP_Attribute_ServiceName        },\r
                {.AttributeID = SDP_ATTRIBUTE_ID_SERVICEDESCRIPTION,  .Data = &SDP_Attribute_ServiceDescription },\r
 \r
@@ -126,8 +126,8 @@ const struct
 \r
 const struct\r
 {\r
-       uint8_t     Header;\r
-       uint16_t    Size;\r
+       uint8_t    Header;\r
+       uint16_t   Size;\r
        ItemUUID_t UUIDList[];\r
 } PROGMEM RFCOMM_Attribute_ServiceClassIDs =\r
        {\r
@@ -143,7 +143,22 @@ const struct
 {\r
        uint8_t     Header;\r
        uint8_t     Size;\r
-       char        Text[];\r
+       Item16Bit_t OffsetList[];\r
+} PROGMEM RFCOMM_Attribute_LangOffset =\r
+       {\r
+               .Header = (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit),\r
+               .Size   = (sizeof(Item16Bit_t) * 1),\r
+               .OffsetList =\r
+                       {\r
+                               {.Header = (SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_16Bit), .Value = SWAPENDIAN_16(0x0100)}\r
+                       }\r
+       };\r
+\r
+const struct\r
+{\r
+       uint8_t Header;\r
+       uint8_t Size;\r
+       char    Text[];\r
 } PROGMEM RFCOMM_Attribute_ServiceName =\r
        {\r
                .Header = (SDP_DATATYPE_String | SDP_DATASIZE_Variable8Bit),\r
@@ -153,9 +168,9 @@ const struct
 \r
 const struct\r
 {\r
-       uint8_t     Header;\r
-       uint8_t     Size;\r
-       char        Text[];\r
+       uint8_t Header;\r
+       uint8_t Size;\r
+       char    Text[];\r
 } PROGMEM RFCOMM_Attribute_ServiceDescription =\r
        {\r
                .Header = (SDP_DATATYPE_String | SDP_DATASIZE_Variable8Bit),\r
@@ -167,6 +182,7 @@ const ServiceAttributeTable_t RFCOMM_Attribute_Table[] PROGMEM =
        {\r
                {.AttributeID = SDP_ATTRIBUTE_ID_SERVICERECORDHANDLE, .Data = &RFCOMM_Attribute_ServiceHandle      },\r
                {.AttributeID = SDP_ATTRIBUTE_ID_SERVICECLASSIDS,     .Data = &RFCOMM_Attribute_ServiceClassIDs    },\r
+               {.AttributeID = SDP_ATTRIBUTE_ID_LANGIDOFFSET,        .Data = &RFCOMM_Attribute_LangOffset         },\r
                {.AttributeID = SDP_ATTRIBUTE_ID_SERVICENAME,         .Data = &RFCOMM_Attribute_ServiceName        },\r
                {.AttributeID = SDP_ATTRIBUTE_ID_SERVICEDESCRIPTION,  .Data = &RFCOMM_Attribute_ServiceDescription },\r
 \r