forked from mfulz_github/qmk_firmware
		
	Clean up the Service tables, add incomplete ProtocolDescriptorList attribute to the SDP service.
This commit is contained in:
		
							parent
							
								
									32ab52a298
								
							
						
					
					
						commit
						b98158bd50
					
				| @ -34,7 +34,11 @@ const struct | ||||
| { | ||||
| 	uint8_t  Header; | ||||
| 	uint32_t Data; | ||||
| } PROGMEM SDP_Attribute_ServiceHandle = {(SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_32Bit), SWAPENDIAN_32(0x00010000)}; | ||||
| } PROGMEM SDP_Attribute_ServiceHandle = | ||||
| 	{ | ||||
| 		(SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_32Bit), | ||||
| 		SWAPENDIAN_32(0x00010000), | ||||
| 	}; | ||||
| 
 | ||||
| const struct | ||||
| { | ||||
| @ -43,11 +47,28 @@ const struct | ||||
| 	ItemUUID_t UUIDList[]; | ||||
| } PROGMEM SDP_Attribute_ServiceClassIDs = | ||||
| 	{ | ||||
| 		.Header = (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable16Bit), | ||||
| 		.Size   = SWAPENDIAN_16(sizeof(ItemUUID_t) * 1), | ||||
| 		.UUIDList = | ||||
| 		(SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable16Bit), | ||||
| 		SWAPENDIAN_16(sizeof(ItemUUID_t) * 1), | ||||
| 		{ | ||||
| 				{.Header = (SDP_DATATYPE_UUID | SDP_DATASIZE_128Bit), .UUID = {BASE_80BIT_UUID, {0x00, 0x00, 0x00, 0x00, 0x10, 0x00}},} | ||||
| 			{(SDP_DATATYPE_UUID | SDP_DATASIZE_128Bit), {BASE_80BIT_UUID, {0x00, 0x00, 0x00, 0x00, 0x10, 0x00}}} | ||||
| 		} | ||||
| 	}; | ||||
| 
 | ||||
| const struct | ||||
| { | ||||
| 	uint8_t        Header; | ||||
| 	uint16_t       Size; | ||||
| 	ItemProtocol_t ProtocolList[]; | ||||
| } PROGMEM SDP_Attribute_ProtocolDescriptor = | ||||
| 	{ | ||||
| 		(SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable16Bit), | ||||
| 		SWAPENDIAN_16(sizeof(ItemProtocol_t) * 1), | ||||
| 		{ | ||||
| 			{ | ||||
| 				(SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit), | ||||
| 				sizeof(UUID_t), | ||||
| 				{(SDP_DATATYPE_UUID | SDP_DATASIZE_128Bit), {BASE_80BIT_UUID, {0x00, 0x00, 0x00, 0x00, 0x01, 0x00}}}, | ||||
| 			} | ||||
| 		} | ||||
| 	}; | ||||
| 
 | ||||
| @ -58,11 +79,10 @@ const struct | ||||
| 	Item16Bit_t VersionList[]; | ||||
| } PROGMEM SDP_Attribute_Version = | ||||
| 	{ | ||||
| 		.Header = (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit), | ||||
| 		.Size   = (sizeof(Item16Bit_t) * 1), | ||||
| 		.VersionList = | ||||
| 		(SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit), | ||||
| 		(sizeof(Item16Bit_t) * 1), | ||||
| 		{ | ||||
| 				{.Header = (SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_16Bit), .Value = SWAPENDIAN_16(0x0100)} | ||||
| 			{(SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_16Bit), SWAPENDIAN_16(0x0100)} | ||||
| 		} | ||||
| 	}; | ||||
| 
 | ||||
| @ -73,9 +93,9 @@ const struct | ||||
| 	char    Text[]; | ||||
| } PROGMEM SDP_Attribute_ServiceName = | ||||
| 	{ | ||||
| 		.Header = (SDP_DATATYPE_String | SDP_DATASIZE_Variable8Bit), | ||||
| 		.Size   = sizeof("SDP") - 1, | ||||
| 		.Text   = "SDP", | ||||
| 		(SDP_DATATYPE_String | SDP_DATASIZE_Variable8Bit), | ||||
| 		(sizeof("SDP") - 1), | ||||
| 		"SDP", | ||||
| 	}; | ||||
| 
 | ||||
| const struct | ||||
| @ -85,9 +105,9 @@ const struct | ||||
| 	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", | ||||
| 		(SDP_DATATYPE_String | SDP_DATASIZE_Variable8Bit), | ||||
| 		(sizeof("Service Discovery Protocol Server") - 1), | ||||
| 		"Service Discovery Protocol Server", | ||||
| 	}; | ||||
| 
 | ||||
| /** Service Discovery Protocol attribute table, listing all supported attributes of the service. */ | ||||
| @ -95,6 +115,7 @@ 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_PROTOCOLDESCRIPTORLIST, .Data = &SDP_Attribute_ProtocolDescriptor },
 | ||||
| 		{.AttributeID = SDP_ATTRIBUTE_ID_VERSION,                .Data = &SDP_Attribute_Version            }, | ||||
| 		{.AttributeID = SDP_ATTRIBUTE_ID_SERVICENAME,            .Data = &SDP_Attribute_ServiceName        }, | ||||
| 		{.AttributeID = SDP_ATTRIBUTE_ID_SERVICEDESCRIPTION,     .Data = &SDP_Attribute_ServiceDescription }, | ||||
| @ -106,7 +127,11 @@ const struct | ||||
| { | ||||
| 	uint8_t  Header; | ||||
| 	uint32_t Data; | ||||
| } PROGMEM RFCOMM_Attribute_ServiceHandle = {(SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_32Bit), SWAPENDIAN_32(0x00010001)}; | ||||
| } PROGMEM RFCOMM_Attribute_ServiceHandle = | ||||
| 	{ | ||||
| 		(SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_32Bit), | ||||
| 		SWAPENDIAN_32(0x00010001), | ||||
| 	}; | ||||
| 
 | ||||
| const struct | ||||
| { | ||||
| @ -115,11 +140,10 @@ const struct | ||||
| 	ItemUUID_t UUIDList[]; | ||||
| } PROGMEM RFCOMM_Attribute_ServiceClassIDs = | ||||
| 	{ | ||||
| 		.Header = (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable16Bit), | ||||
| 		.Size   = SWAPENDIAN_16(sizeof(ItemUUID_t) * 1), | ||||
| 		.UUIDList = | ||||
| 		(SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable16Bit), | ||||
| 		SWAPENDIAN_16(sizeof(ItemUUID_t) * 1), | ||||
| 		{ | ||||
| 				{.Header = (SDP_DATATYPE_UUID | SDP_DATASIZE_128Bit), .UUID = {BASE_80BIT_UUID, {0x00, 0x00, 0x00, 0x00, 0x11, 0x01}},} | ||||
| 			{(SDP_DATATYPE_UUID | SDP_DATASIZE_128Bit), {BASE_80BIT_UUID, {0x00, 0x00, 0x00, 0x00, 0x11, 0x01}}} | ||||
| 		} | ||||
| 	}; | ||||
| 
 | ||||
| @ -130,11 +154,10 @@ const struct | ||||
| 	Item16Bit_t OffsetList[]; | ||||
| } PROGMEM RFCOMM_Attribute_LangOffset = | ||||
| 	{ | ||||
| 		.Header = (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit), | ||||
| 		.Size   = (sizeof(Item16Bit_t) * 1), | ||||
| 		.OffsetList = | ||||
| 		(SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit), | ||||
| 		(sizeof(Item16Bit_t) * 1), | ||||
| 		{ | ||||
| 				{.Header = (SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_16Bit), .Value = SWAPENDIAN_16(0x0100)} | ||||
| 			{(SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_16Bit), SWAPENDIAN_16(0x0100)} | ||||
| 		} | ||||
| 	}; | ||||
| 
 | ||||
| @ -145,9 +168,9 @@ const struct | ||||
| 	char    Text[]; | ||||
| } PROGMEM RFCOMM_Attribute_ServiceName = | ||||
| 	{ | ||||
| 		.Header = (SDP_DATATYPE_String | SDP_DATASIZE_Variable8Bit), | ||||
| 		.Size   = sizeof("Serial Port") - 1, | ||||
| 		.Text   = "Serial Port", | ||||
| 		(SDP_DATATYPE_String | SDP_DATASIZE_Variable8Bit), | ||||
| 		sizeof("Serial Port") - 1, | ||||
| 		"Serial Port", | ||||
| 	}; | ||||
| 
 | ||||
| const struct | ||||
| @ -157,9 +180,9 @@ const struct | ||||
| 	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", | ||||
| 		(SDP_DATATYPE_String | SDP_DATASIZE_Variable8Bit), | ||||
| 		sizeof("Wireless Serial Port Service") - 1, | ||||
| 		"Wireless Serial Port Service", | ||||
| 	}; | ||||
| 
 | ||||
| const ServiceAttributeTable_t RFCOMM_Attribute_Table[] PROGMEM = | ||||
|  | ||||
| @ -48,6 +48,7 @@ | ||||
| 		 | ||||
| 		#define SDP_ATTRIBUTE_ID_SERVICERECORDHANDLE    0x0000 | ||||
| 		#define SDP_ATTRIBUTE_ID_SERVICECLASSIDS        0x0001 | ||||
| 		#define SDP_ATTRIBUTE_ID_PROTOCOLDESCRIPTORLIST 0x0004 | ||||
| 		#define SDP_ATTRIBUTE_ID_VERSION                0x0200 | ||||
| 		#define SDP_ATTRIBUTE_ID_SERVICENAME            0x0100 | ||||
| 		#define SDP_ATTRIBUTE_ID_SERVICEDESCRIPTION     0x0101 | ||||
| @ -87,13 +88,6 @@ | ||||
| 			const void* AttributeTable; /**< Pointer to the UUID's attribute table, located in PROGMEM memory space */ | ||||
| 		} ServiceTable_t; | ||||
| 
 | ||||
| 		/** Structure for a list of Data Elements containing UUIDs, for service attributes requiring UUID lists. */ | ||||
| 		typedef struct | ||||
| 		{ | ||||
| 			uint8_t Header; /**< Data Element header, should be (SDP_DATATYPE_UUID | SDP_DATASIZE_128Bit) */ | ||||
| 			UUID_t  UUID; /**< UUID to store in the list Data Element */ | ||||
| 		} ItemUUID_t; | ||||
| 
 | ||||
| 		/** Structure for a list of Data Elements containing 8-bit integers, for service attributes requiring such lists. */ | ||||
| 		typedef struct | ||||
| 		{ | ||||
| @ -115,6 +109,24 @@ | ||||
| 			uint32_t Value; /**< Value to store in the list Data Element */ | ||||
| 		} Item32Bit_t; | ||||
| 
 | ||||
| 		/** Structure for a list of Data Elements containing UUIDs, for service attributes requiring UUID lists. */ | ||||
| 		typedef struct | ||||
| 		{ | ||||
| 			uint8_t Header; /**< Data Element header, should be (SDP_DATATYPE_UUID | SDP_DATASIZE_128Bit) */ | ||||
| 			UUID_t  UUID; /**< UUID to store in the list Data Element */ | ||||
| 		} ItemUUID_t; | ||||
| 		 | ||||
| 		/** Structure for a list of Data Elements Sequences containing UUID Data Elements, for service attributes requiring
 | ||||
| 		 *  protocol lists. | ||||
| 		 */ | ||||
| 		typedef struct | ||||
| 		{ | ||||
| 			uint8_t     Header; /**< Data Element header, should be (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit) */ | ||||
| 			uint8_t     Size; /**< Size of the inner Data Element sequence */ | ||||
| 			 | ||||
| 			ItemUUID_t  UUID; /**< UUID to store in the protocol list Data Element sequence */ | ||||
| 		} ItemProtocol_t; | ||||
| 		 | ||||
| 	/* External Variables: */ | ||||
| 		extern const ServiceAttributeTable_t SDP_Attribute_Table[]; | ||||
| 		extern const ServiceAttributeTable_t RFCOMM_Attribute_Table[]; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Dean Camera
						Dean Camera