diff options
| author | Claudio Takahasi <claudio.takahasi@openbossa.org> | 2008-06-30 14:05:38 +0000 | 
|---|---|---|
| committer | Claudio Takahasi <claudio.takahasi@openbossa.org> | 2008-06-30 14:05:38 +0000 | 
| commit | 3005856580174bb25cd0510115bed9499b1f1bdc (patch) | |
| tree | c9c407b129b8d9e5ca0163d9a509cce67ad1e296 /common/glib-helper.c | |
| parent | a22a088109b664efdee397affed55b039cb0999b (diff) | |
Accept friendly names for discover services
Diffstat (limited to 'common/glib-helper.c')
| -rw-r--r-- | common/glib-helper.c | 40 | 
1 files changed, 39 insertions, 1 deletions
| diff --git a/common/glib-helper.c b/common/glib-helper.c index 931b99a5..f0435aca 100644 --- a/common/glib-helper.c +++ b/common/glib-helper.c @@ -386,10 +386,42 @@ char *bt_uuid2string(uuid_t *uuid)  	return str;  } +static struct { +	const char	*name; +	uint16_t	class; +} bt_services[] = { +	{ "vcp",	VIDEO_CONF_SVCLASS_ID		}, +	{ "pbap",	PBAP_SVCLASS_ID			}, +	{ "sap",	SAP_SVCLASS_ID			}, +	{ "ftp",	OBEX_FILETRANS_SVCLASS_ID	}, +	{ "bpp",	BASIC_PRINTING_SVCLASS_ID	}, +	{ "bip",	IMAGING_SVCLASS_ID		}, +	{ "synch",	IRMC_SYNC_SVCLASS_ID		}, +	{ "dun",	DIALUP_NET_SVCLASS_ID		}, +	{ "opp",	OBEX_OBJPUSH_SVCLASS_ID		}, +	{ "fax",	FAX_SVCLASS_ID			}, +	{ "spp",	SERIAL_PORT_SVCLASS_ID		}, +	{ "hsp",	HEADSET_SVCLASS_ID		}, +	{ "hfp",	HANDSFREE_SVCLASS_ID		}, +	{ } +}; + +uint16_t bt_string2class(const char *pattern) +{ +	int i; + +	for (i = 0; bt_services[i].name; i++) { +		if (strcasecmp(bt_services[i].name, pattern) == 0) +			return bt_services[i].class; +	} + +	return 0; +} +  int bt_string2uuid(uuid_t *uuid, const char *string)  { -	uint16_t data1, data2, data3, data5;  	uint32_t data0, data4; +	uint16_t data1, data2, data3, data5;  	if (strlen(string) == 36 &&  			string[8] == '-' && @@ -417,6 +449,12 @@ int bt_string2uuid(uuid_t *uuid, const char *string)  		sdp_uuid128_create(uuid, val);  		return 0; +	} else { +		uint16_t class = bt_string2class(string); +		if (class) { +			sdp_uuid16_create(uuid, class); +			return 0; +		}  	}  	return -1; | 
