public inbox for linux-bluetooth@vger.kernel.org
 help / color / mirror / Atom feed
* [Bluez-devel] [PATCH] Headset Audio Gateway profile
@ 2006-10-19  2:30 Denis KENZIOR
  0 siblings, 0 replies; only message in thread
From: Denis KENZIOR @ 2006-10-19  2:30 UTC (permalink / raw)
  To: bluez-devel

[-- Attachment #1: Type: text/plain, Size: 129 bytes --]

I noticed support for Handsfree AG profile in sdptool, but no Headset profile.  
This patch adds support for headset AG.

-Denis

[-- Attachment #2: headset.patch --]
[-- Type: text/x-diff, Size: 2861 bytes --]

*** /home/dkenzior/work/utils/tools/sdptool.c	2006-10-18 16:19:45.000000000 +1000
--- sdptool.c	2006-09-05 16:10:39.000000000 +1000
***************
*** 1590,1595 ****
--- 1587,1657 ----
  	return ret;
  }
  
+ static int add_headset_ag(sdp_session_t *session, svc_info_t *si)
+ {
+ 	sdp_list_t *svclass_id, *pfseq, *apseq, *root;
+ 	uuid_t root_uuid, svclass_uuid, ga_svclass_uuid, l2cap_uuid, rfcomm_uuid;
+ 	sdp_profile_desc_t profile;
+ 	sdp_list_t *aproto, *proto[2];
+ 	sdp_record_t record;
+ 	uint8_t u8 = si->channel ? si->channel : 10;
+ 	uint16_t u16 = 0x17;
+ 	sdp_data_t *channel, *features;
+ 	uint8_t netid = si->network ? si->network : 0x01; // ???? profile document
+ 	sdp_data_t *network = sdp_data_alloc(SDP_UINT8, &netid);
+ 	int ret = 0;
+ 
+ 	memset(&record, 0, sizeof(sdp_record_t));
+ 	record.handle = si->handle;
+ 
+ 	sdp_uuid16_create(&root_uuid, PUBLIC_BROWSE_GROUP);
+ 	root = sdp_list_append(0, &root_uuid);
+ 	sdp_set_browse_groups(&record, root);
+ 
+ 	sdp_uuid16_create(&svclass_uuid, HEADSET_AGW_SVCLASS_ID);
+ 	svclass_id = sdp_list_append(0, &svclass_uuid);
+ 	sdp_uuid16_create(&ga_svclass_uuid, GENERIC_AUDIO_SVCLASS_ID);
+ 	svclass_id = sdp_list_append(svclass_id, &ga_svclass_uuid);
+ 	sdp_set_service_classes(&record, svclass_id);
+ 
+ 	sdp_uuid16_create(&profile.uuid, HEADSET_PROFILE_ID);
+ 	profile.version = 0x0100;
+ 	pfseq = sdp_list_append(0, &profile);
+ 	sdp_set_profile_descs(&record, pfseq);
+ 
+ 	sdp_uuid16_create(&l2cap_uuid, L2CAP_UUID);
+ 	proto[0] = sdp_list_append(0, &l2cap_uuid);
+ 	apseq = sdp_list_append(0, proto[0]);
+ 
+ 	sdp_uuid16_create(&rfcomm_uuid, RFCOMM_UUID);
+ 	proto[1] = sdp_list_append(0, &rfcomm_uuid);
+ 	channel = sdp_data_alloc(SDP_UINT8, &u8);
+ 	proto[1] = sdp_list_append(proto[1], channel);
+ 	apseq = sdp_list_append(apseq, proto[1]);
+ 
+ 	aproto = sdp_list_append(0, apseq);
+ 	sdp_set_access_protos(&record, aproto);
+ 
+ 	sdp_set_info_attr(&record, "Voice Gateway", 0, 0);
+ 
+ 	if (sdp_record_register(session, &record, SDP_RECORD_PERSIST) < 0) {
+ 		printf("Service Record registration failed\n");
+ 		ret = -1;
+ 		goto end;
+ 	}
+ 
+ 	printf("Headset AG service registered\n");
+ 
+ end:
+ 	sdp_data_free(channel);
+ 	sdp_list_free(proto[0], 0);
+ 	sdp_list_free(proto[1], 0);
+ 	sdp_list_free(apseq, 0);
+ 	sdp_list_free(aproto, 0);
+ 
+ 	return ret;
+ }
+ 
  static int add_simaccess(sdp_session_t *session, svc_info_t *si)
  {
  	sdp_list_t *svclass_id, *pfseq, *apseq, *root;
***************
*** 3105,3110 ****
--- 3167,3173 ----
  	{ "PRINT",	DIRECT_PRINTING_SVCLASS_ID,	add_directprint	},
  
  	{ "HS",		HEADSET_SVCLASS_ID,		add_headset	},
+         { "HSAG", 	HEADSET_AGW_SVCLASS_ID,		add_headset_ag  },
  	{ "HF",		HANDSFREE_SVCLASS_ID,		add_handsfree	},
  	{ "HFAG",	HANDSFREE_AGW_SVCLASS_ID,	add_handsfree_ag},
  	{ "SAP",	SAP_SVCLASS_ID,			add_simaccess	},

[-- Attachment #3: Type: text/plain, Size: 373 bytes --]

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642

[-- Attachment #4: Type: text/plain, Size: 164 bytes --]

_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2006-10-19  2:30 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-10-19  2:30 [Bluez-devel] [PATCH] Headset Audio Gateway profile Denis KENZIOR

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox