Move SDP service tables out into a new set of files, to make the SDP service code...
[pub/lufa.git] / Demos / Host / Incomplete / BluetoothHost / Lib / ServiceDiscoveryProtocol.c
index ba66707..2b61cb4 100644 (file)
 #define  INCLUDE_FROM_SERVICEDISCOVERYPROTOCOL_C
 #include "ServiceDiscoveryProtocol.h"
 
-const struct
-{
-       uint8_t  Header;
-       uint32_t Data;
-} PROGMEM SDP_Attribute_ServiceHandle = {(SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_32Bit), SWAPENDIAN_32(0x00010000)};
-
-const struct
-{
-       uint8_t     Header;
-       uint16_t    Size;
-       ClassUUID_t UUIDList[];
-} PROGMEM SDP_Attribute_ServiceClassIDs =
-       {
-               .Header = (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable16Bit),
-               .Size   = SWAPENDIAN_16(sizeof(ClassUUID_t) * 1),
-               .UUIDList =
-                       {
-                               {.Header = (SDP_DATATYPE_UUID | SDP_DATASIZE_128Bit), .UUID = {BASE_96BIT_UUID, 0x00, 0x10, 0x00, 0x00}}
-                       }
-       };
-
-const struct
-{
-       uint8_t     Header;
-       uint8_t     Size;
-       Item16Bit_t VersionList[];
-} PROGMEM SDP_Attribute_Version =
-       {
-               .Header = (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit),
-               .Size   = (sizeof(Item16Bit_t) * 1),
-               .VersionList =
-                       {
-                               {.Header = (SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_16Bit), .Value = SWAPENDIAN_16(0x0100)}
-                       }
-       };
-
-const struct
-{
-       uint8_t     Header;
-       uint8_t     Size;
-       Item16Bit_t OffsetList[];
-} PROGMEM SDP_Attribute_LangOffset =
-       {
-               .Header = (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit),
-               .Size   = (sizeof(Item16Bit_t) * 1),
-               .OffsetList =
-                       {
-                               {.Header = (SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_16Bit), .Value = SWAPENDIAN_16(0x0100)}
-                       }
-       };
-
-const struct
-{
-       uint8_t     Header;
-       uint8_t     Size;
-       char        Text[];
-} PROGMEM SDP_Attribute_ServiceName =
-       {
-               .Header = (SDP_DATATYPE_String | SDP_DATASIZE_Variable8Bit),
-               .Size   = sizeof("SDP") - 1,
-               .Text   = "SDP",
-       };
-
-const struct
-{
-       uint8_t     Header;
-       uint8_t     Size;
-       char        Text[];
-} PROGMEM SDP_Attribute_ServiceDescription =
-       {
-               .Header = (SDP_DATATYPE_String | SDP_DATASIZE_Variable8Bit),
-               .Size   = sizeof("Service Discovery Protocol Server") - 1,
-               .Text   = "Service Discovery Protocol Server",
-       };
-
-/** Service Discovery Protocol attribute table, listing all supported attributes of the service. */
-const ServiceAttributeTable_t SDP_Attribute_Table[] PROGMEM =
-       {
-               {.AttributeID = SDP_ATTRIBUTE_ID_SERVICERECORDHANDLE, .Data = &SDP_Attribute_ServiceHandle      },
-               {.AttributeID = SDP_ATTRIBUTE_ID_SERVICECLASSIDS,     .Data = &SDP_Attribute_ServiceClassIDs    },
-               {.AttributeID = SDP_ATTRIBUTE_ID_VERSION,             .Data = &SDP_Attribute_Version            },
-               {.AttributeID = SDP_ATTRIBUTE_ID_LANGIDOFFSET,        .Data = &SDP_Attribute_LangOffset         },
-               {.AttributeID = SDP_ATTRIBUTE_ID_SERVICENAME,         .Data = &SDP_Attribute_ServiceName        },
-               {.AttributeID = SDP_ATTRIBUTE_ID_SERVICEDESCRIPTION,  .Data = &SDP_Attribute_ServiceDescription },
-
-               SERVICE_ATTRIBUTE_TABLE_TERMINATOR
-       };
-
-const struct
-{
-       uint8_t  Header;
-       uint32_t Data;
-} PROGMEM RFCOMM_Attribute_ServiceHandle = {(SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_32Bit), SWAPENDIAN_32(0x00010001)};
-
-const struct
-{
-       uint8_t     Header;
-       uint16_t    Size;
-       ClassUUID_t UUIDList[];
-} PROGMEM RFCOMM_Attribute_ServiceClassIDs =
-       {
-               .Header = (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable16Bit),
-               .Size   = SWAPENDIAN_16(sizeof(ClassUUID_t) * 1),
-               .UUIDList =
-                       {
-                               {.Header = (SDP_DATATYPE_UUID | SDP_DATASIZE_128Bit), .UUID = {BASE_96BIT_UUID, 0x01, 0x11, 0x00, 0x00}}
-                       }
-       };
-
-const struct
-{
-       uint8_t     Header;
-       uint8_t     Size;
-       char        Text[];
-} PROGMEM RFCOMM_Attribute_ServiceName =
-       {
-               .Header = (SDP_DATATYPE_String | SDP_DATASIZE_Variable8Bit),
-               .Size   = sizeof("Serial Port") - 1,
-               .Text   = "Serial Port",
-       };
-
-const struct
-{
-       uint8_t     Header;
-       uint8_t     Size;
-       char        Text[];
-} PROGMEM RFCOMM_Attribute_ServiceDescription =
-       {
-               .Header = (SDP_DATATYPE_String | SDP_DATASIZE_Variable8Bit),
-               .Size   = sizeof("Wireless Serial Port Service") - 1,
-               .Text   = "Wireless Serial Port Service",
-       };
-
-const ServiceAttributeTable_t RFCOMM_Attribute_Table[] PROGMEM =
-       {
-               {.AttributeID = SDP_ATTRIBUTE_ID_SERVICERECORDHANDLE, .Data = &RFCOMM_Attribute_ServiceHandle      },
-               {.AttributeID = SDP_ATTRIBUTE_ID_SERVICECLASSIDS,     .Data = &RFCOMM_Attribute_ServiceClassIDs    },
-               {.AttributeID = SDP_ATTRIBUTE_ID_SERVICENAME,         .Data = &RFCOMM_Attribute_ServiceName        },
-               {.AttributeID = SDP_ATTRIBUTE_ID_SERVICEDESCRIPTION,  .Data = &RFCOMM_Attribute_ServiceDescription },
+/** Base UUID value common to all standardized Bluetooth services */
+const uint8_t BaseUUID[] PROGMEM = {BASE_96BIT_UUID, 0x00, 0x00, 0x00, 0x00};
 
-               SERVICE_ATTRIBUTE_TABLE_TERMINATOR
-       };
-       
 /** Master service table, listing all supported services (and their attribute tables) of the device, including
  *  each service's UUID.
  */
@@ -189,9 +49,6 @@ const ServiceTable_t SDP_Services_Table[] PROGMEM =
                },
        };
 
-/** Base UUID value common to all standardized Bluetooth services */
-const uint8_t BaseUUID[] PROGMEM = {BASE_96BIT_UUID, 0x00, 0x00, 0x00, 0x00};
-
 
 /** Main Service Discovery Protocol packet processing routine. This function processes incomming SDP packets from
  *  a connected Bluetooth device, and sends back appropriate responses to allow other devices to determine the