diff --git a/src/adapter.c b/src/adapter.c
index 58ebaf6..a91a302 100644
--- a/src/adapter.c
+++ b/src/adapter.c
return device;
}
-static uint8_t get_uuid_mask(uuid_t *uuid)
-{
- if (uuid->type != SDP_UUID16)
- return 0;
-
- switch (uuid->value.uuid16) {
- case DIALUP_NET_SVCLASS_ID:
- case CIP_SVCLASS_ID:
- return 0x42; /* Telephony & Networking */
- case IRMC_SYNC_SVCLASS_ID:
- case OBEX_OBJPUSH_SVCLASS_ID:
- case OBEX_FILETRANS_SVCLASS_ID:
- case IRMC_SYNC_CMD_SVCLASS_ID:
- case PBAP_PSE_SVCLASS_ID:
- return 0x10; /* Object Transfer */
- case HEADSET_SVCLASS_ID:
- case HANDSFREE_SVCLASS_ID:
- return 0x20; /* Audio */
- case CORDLESS_TELEPHONY_SVCLASS_ID:
- case INTERCOM_SVCLASS_ID:
- case FAX_SVCLASS_ID:
- case SAP_SVCLASS_ID:
- /*
- * Setting the telephony bit for the handsfree audio gateway
- * role is not required by the HFP specification, but the
- * Nokia 616 carkit is just plain broken! It will refuse
- * pairing without this bit set.
- */
- case HANDSFREE_AGW_SVCLASS_ID:
- return 0x40; /* Telephony */
- case AUDIO_SOURCE_SVCLASS_ID:
- case VIDEO_SOURCE_SVCLASS_ID:
- return 0x08; /* Capturing */
- case AUDIO_SINK_SVCLASS_ID:
- case VIDEO_SINK_SVCLASS_ID:
- return 0x04; /* Rendering */
- case PANU_SVCLASS_ID:
- case NAP_SVCLASS_ID:
- case GN_SVCLASS_ID:
- return 0x02; /* Networking */
- default:
- return 0;
- }
-}
-
-static int uuid_cmp(const void *a, const void *b)
-{
- const sdp_record_t *rec = a;
- const uuid_t *uuid = b;
-
- return sdp_uuid_cmp(&rec->svclass, uuid);
-}
-
-void adapter_service_insert(struct btd_adapter *adapter, void *r)
-{
- sdp_record_t *rec = r;
- sdp_list_t *browse_list = NULL;
- uuid_t browse_uuid;
- gboolean new_uuid;
-
- DBG("%s", adapter->path);
-
- /* skip record without a browse group */
- if (sdp_get_browse_groups(rec, &browse_list) < 0)
- return;
-
- sdp_uuid16_create(&browse_uuid, PUBLIC_BROWSE_GROUP);
-
- /* skip record without public browse group */
- if (!sdp_list_find(browse_list, &browse_uuid, sdp_uuid_cmp))
- goto done;
-
- if (sdp_list_find(adapter->services, &rec->svclass, uuid_cmp) == NULL)
- new_uuid = TRUE;
- else
- new_uuid = FALSE;
-
- adapter->services = sdp_list_insert_sorted(adapter->services, rec,
- record_sort);
-
- if (new_uuid) {
- uint8_t svc_hint = get_uuid_mask(&rec->svclass);
- mgmt_add_uuid(adapter->dev_id, &rec->svclass, svc_hint);
- }
-
- if (adapter->initialized)
- g_dbus_emit_property_changed(btd_get_dbus_connection(),
- adapter->path, ADAPTER_INTERFACE, "UUIDs");
-
-done:
- sdp_list_free(browse_list, free);
-}
-
static void remove_uuid_complete(uint8_t status, uint16_t length,
const void *param, void *user_data)
{
return -EIO;
}
+static uint8_t get_uuid_mask(uuid_t *uuid)
+{
+ if (uuid->type != SDP_UUID16)
+ return 0;
+
+ switch (uuid->value.uuid16) {
+ case DIALUP_NET_SVCLASS_ID:
+ case CIP_SVCLASS_ID:
+ return 0x42; /* Telephony & Networking */
+ case IRMC_SYNC_SVCLASS_ID:
+ case OBEX_OBJPUSH_SVCLASS_ID:
+ case OBEX_FILETRANS_SVCLASS_ID:
+ case IRMC_SYNC_CMD_SVCLASS_ID:
+ case PBAP_PSE_SVCLASS_ID:
+ return 0x10; /* Object Transfer */
+ case HEADSET_SVCLASS_ID:
+ case HANDSFREE_SVCLASS_ID:
+ return 0x20; /* Audio */
+ case CORDLESS_TELEPHONY_SVCLASS_ID:
+ case INTERCOM_SVCLASS_ID:
+ case FAX_SVCLASS_ID:
+ case SAP_SVCLASS_ID:
+ /*
+ * Setting the telephony bit for the handsfree audio gateway
+ * role is not required by the HFP specification, but the
+ * Nokia 616 carkit is just plain broken! It will refuse
+ * pairing without this bit set.
+ */
+ case HANDSFREE_AGW_SVCLASS_ID:
+ return 0x40; /* Telephony */
+ case AUDIO_SOURCE_SVCLASS_ID:
+ case VIDEO_SOURCE_SVCLASS_ID:
+ return 0x08; /* Capturing */
+ case AUDIO_SINK_SVCLASS_ID:
+ case VIDEO_SINK_SVCLASS_ID:
+ return 0x04; /* Rendering */
+ case PANU_SVCLASS_ID:
+ case NAP_SVCLASS_ID:
+ case GN_SVCLASS_ID:
+ return 0x02; /* Networking */
+ default:
+ return 0;
+ }
+}
+
+static int uuid_cmp(const void *a, const void *b)
+{
+ const sdp_record_t *rec = a;
+ const uuid_t *uuid = b;
+
+ return sdp_uuid_cmp(&rec->svclass, uuid);
+}
+
+void adapter_service_insert(struct btd_adapter *adapter, void *r)
+{
+ sdp_record_t *rec = r;
+ sdp_list_t *browse_list = NULL;
+ uuid_t browse_uuid;
+ gboolean new_uuid;
+
+ DBG("%s", adapter->path);
+
+ /* skip record without a browse group */
+ if (sdp_get_browse_groups(rec, &browse_list) < 0)
+ return;
+
+ sdp_uuid16_create(&browse_uuid, PUBLIC_BROWSE_GROUP);
+
+ /* skip record without public browse group */
+ if (!sdp_list_find(browse_list, &browse_uuid, sdp_uuid_cmp))
+ goto done;
+
+ if (sdp_list_find(adapter->services, &rec->svclass, uuid_cmp) == NULL)
+ new_uuid = TRUE;
+ else
+ new_uuid = FALSE;
+
+ adapter->services = sdp_list_insert_sorted(adapter->services, rec,
+ record_sort);
+
+ if (new_uuid) {
+ uint8_t svc_hint = get_uuid_mask(&rec->svclass);
+ mgmt_add_uuid(adapter->dev_id, &rec->svclass, svc_hint);
+ }
+
+ if (adapter->initialized)
+ g_dbus_emit_property_changed(btd_get_dbus_connection(),
+ adapter->path, ADAPTER_INTERFACE, "UUIDs");
+
+done:
+ sdp_list_free(browse_list, free);
+}
+
void adapter_service_remove(struct btd_adapter *adapter, void *r)
{
sdp_record_t *rec = r;