Add PSM value to the RFCOMM service so that the host knows what PSM to use on channel...
[pub/USBasp.git] / Demos / Host / Incomplete / BluetoothHost / Lib / SDPServices.c
index d812252..cf32673 100644 (file)
@@ -43,57 +43,57 @@ const struct
 const struct\r
 {\r
        uint8_t    Header;\r
-       uint16_t   Size;\r
+       uint8_t    Size;\r
        ItemUUID_t UUIDList[];\r
 } PROGMEM SerialPort_Attribute_ServiceClassIDs =\r
        {\r
-               (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable16Bit),\r
-               SWAPENDIAN_16(sizeof(ItemUUID_t) * 1),\r
+               (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit),\r
+               (sizeof(ItemUUID_t) * 1),\r
                {\r
-                       {(SDP_DATATYPE_UUID | SDP_DATASIZE_128Bit), SP_CLASS_UUID}\r
-               }\r
+                       {(SDP_DATATYPE_UUID | SDP_DATASIZE_128Bit), SP_CLASS_UUID},\r
+               },\r
        };\r
 \r
 const struct\r
 {\r
-       uint8_t  Header;\r
-       uint16_t Size;\r
+       uint8_t Header;\r
+       uint8_t Size;\r
 \r
-       ItemProtocol_t ProtocolList[];\r
+       ItemProtocol_t    L2CAP;\r
+       ItemProtocolPSM_t RFCOMM;\r
 } PROGMEM SerialPort_Attribute_ProtocolDescriptor =\r
        {\r
-               (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable16Bit),\r
-               SWAPENDIAN_16(sizeof(ItemProtocol_t) * 2),\r
+               (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit),\r
+               (sizeof(ItemProtocol_t) + sizeof(ItemProtocolPSM_t)),\r
                {\r
+                       (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit),\r
+                       sizeof(ItemUUID_t),\r
                        {\r
-                               (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit),\r
-                               sizeof(ItemUUID_t),\r
-                               {\r
-                                       {(SDP_DATATYPE_UUID | SDP_DATASIZE_128Bit), L2CAP_UUID},\r
-                               }\r
+                               {(SDP_DATATYPE_UUID | SDP_DATASIZE_128Bit), L2CAP_UUID},\r
                        },\r
+               },\r
+               {\r
+                       (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit),\r
+                       (sizeof(ItemUUID_t) + sizeof(Item16Bit_t)),\r
                        {\r
-                               (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit),\r
-                               sizeof(ItemUUID_t),\r
-                               {\r
-                                       {(SDP_DATATYPE_UUID | SDP_DATASIZE_128Bit), RFCOMM_UUID},\r
-                               }\r
+                               {(SDP_DATATYPE_UUID | SDP_DATASIZE_128Bit), RFCOMM_UUID},\r
+                               {(SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_16Bit), SWAPENDIAN_16(CHANNEL_PSM_RFCOMM)},\r
                        },\r
-               }\r
+               },\r
        };\r
 \r
 const struct\r
 {\r
        uint8_t    Header;\r
-       uint16_t   Size;\r
+       uint8_t    Size;\r
        ItemUUID_t UUIDList[];\r
 } PROGMEM SerialPort_Attribute_BrowseGroupList =\r
        {\r
-               (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable16Bit),\r
-               SWAPENDIAN_16(sizeof(ItemUUID_t) * 1),\r
+               (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit),\r
+               (sizeof(ItemUUID_t) * 1),\r
                {\r
-                       {(SDP_DATATYPE_UUID | SDP_DATASIZE_128Bit), PUBLICBROWSEGROUP_CLASS_UUID}\r
-               }\r
+                       {(SDP_DATATYPE_UUID | SDP_DATASIZE_128Bit), PUBLICBROWSEGROUP_CLASS_UUID},\r
+               },\r
        };\r
        \r
 const struct\r
@@ -103,16 +103,15 @@ const struct
        ItemLangEncoding_t LanguageEncodings[];\r
 } PROGMEM SerialPort_Attribute_LanguageBaseIDOffset =\r
        {\r
-               .Header = (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit),\r
-               .Size   = (sizeof(ItemLangEncoding_t) * 1),\r
-               .LanguageEncodings =\r
+               (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit),\r
+               (sizeof(ItemLangEncoding_t) * 1),\r
+               {\r
                        {\r
-                               {\r
-                                       {(SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_16Bit), SWAPENDIAN_16(0x454E)},\r
-                                       {(SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_16Bit), SWAPENDIAN_16(0x006A)},\r
-                                       {(SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_16Bit), SWAPENDIAN_16(0x0100)},\r
-                               }\r
-                       }\r
+                               {(SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_16Bit), SWAPENDIAN_16(0x454E)},\r
+                               {(SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_16Bit), SWAPENDIAN_16(0x006A)},\r
+                               {(SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_16Bit), SWAPENDIAN_16(0x0100)},\r
+                       },\r
+               },\r
        };\r
        \r
 const struct\r