diff options
| -rw-r--r-- | hcid/dbus-common.c | 32 | ||||
| -rw-r--r-- | hcid/dbus-common.h | 3 | ||||
| -rw-r--r-- | hcid/dbus-service.c | 29 | 
3 files changed, 35 insertions, 29 deletions
| diff --git a/hcid/dbus-common.c b/hcid/dbus-common.c index 2c84a5b2..3e059158 100644 --- a/hcid/dbus-common.c +++ b/hcid/dbus-common.c @@ -70,6 +70,38 @@ static sdp_session_t *sess = NULL;  static int experimental = 0; +void append_dict_entry(DBusMessageIter *dict, const char *key, +							int type, void *val) +{ +	DBusMessageIter entry; +	DBusMessageIter value; +	char *sig; + +	dbus_message_iter_open_container(dict, DBUS_TYPE_DICT_ENTRY, NULL, &entry); + +	dbus_message_iter_append_basic(&entry, DBUS_TYPE_STRING, &key); + +	switch (type) { +	case DBUS_TYPE_STRING: +		sig = DBUS_TYPE_STRING_AS_STRING; +		break; +	case DBUS_TYPE_UINT32: +		sig = DBUS_TYPE_UINT32_AS_STRING; +		break; +	default: +		sig = DBUS_TYPE_VARIANT_AS_STRING; +		break; +	} + +	dbus_message_iter_open_container(&entry, DBUS_TYPE_VARIANT, sig, &value); + +	dbus_message_iter_append_basic(&value, type, &val); + +	dbus_message_iter_close_container(&entry, &value); + +	dbus_message_iter_close_container(dict, &entry); +} +  service_handler_func_t find_service_handler(struct service_data *handlers, DBusMessage *msg)  {  	struct service_data *current; diff --git a/hcid/dbus-common.h b/hcid/dbus-common.h index 4039a9cc..498f7eb4 100644 --- a/hcid/dbus-common.h +++ b/hcid/dbus-common.h @@ -36,6 +36,9 @@ typedef DBusHandlerResult (*service_handler_func_t) (DBusConnection *conn,  							DBusMessage *msg,  							void *user_data); +void append_dict_entry(DBusMessageIter *dict, const char *key, +							int type, void *val); +  struct service_data {  	const char		*name;  	service_handler_func_t	handler_func; diff --git a/hcid/dbus-service.c b/hcid/dbus-service.c index f32dfcec..fc1592c1 100644 --- a/hcid/dbus-service.c +++ b/hcid/dbus-service.c @@ -101,35 +101,6 @@ static void service_exit(const char *name, struct service *service)  	service->bus_name = NULL;  } -static void append_dict_entry(DBusMessageIter *dict, const char *key, -							int type, void *val) -{ -	DBusMessageIter entry; -	DBusMessageIter value; -	char *sig; - -	dbus_message_iter_open_container(dict, DBUS_TYPE_DICT_ENTRY, NULL, &entry); - -	dbus_message_iter_append_basic(&entry, DBUS_TYPE_STRING, &key); - -	switch (type) { -	case DBUS_TYPE_STRING: -		sig = DBUS_TYPE_STRING_AS_STRING; -		break; -	default: -		sig = DBUS_TYPE_VARIANT_AS_STRING; -		break; -	} - -	dbus_message_iter_open_container(&entry, DBUS_TYPE_VARIANT, sig, &value); - -	dbus_message_iter_append_basic(&value, type, &val); - -	dbus_message_iter_close_container(&entry, &value); - -	dbus_message_iter_close_container(dict, &entry); -} -  static DBusHandlerResult get_info(DBusConnection *conn,  					DBusMessage *msg, void *data)  { | 
