From 82c7e0365702e343d6dad0baa23bdff59be27b0c Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Tue, 9 May 2017 12:47:40 +0300 Subject: [PATCH] shared/gatt-db: Add gatt_db_insert_descriptor This introduces gatt_db_insert_descriptor which is similar to gatt_db_service_insert_descriptor but doesn't require the caller to know the service where the attribute should be inserted. --- src/shared/gatt-db.c | 20 ++++++++++++++++++++ src/shared/gatt-db.h | 9 +++++++++ 2 files changed, 29 insertions(+) diff --git a/src/shared/gatt-db.c b/src/shared/gatt-db.c index 39892eea1..dc7201443 100644 --- a/src/shared/gatt-db.c +++ b/src/shared/gatt-db.c @@ -823,6 +823,26 @@ service_insert_descriptor(struct gatt_db_service *service, return service->attributes[i]; } +struct gatt_db_attribute * +gatt_db_insert_descriptor(struct gatt_db *db, + uint16_t handle, + const bt_uuid_t *uuid, + uint32_t permissions, + gatt_db_read_t read_func, + gatt_db_write_t write_func, + void *user_data) +{ + struct gatt_db_attribute *attrib; + + attrib = gatt_db_get_service(db, handle); + if (!attrib) + return NULL; + + return service_insert_descriptor(attrib->service, handle, uuid, + permissions, read_func, write_func, + user_data); +} + struct gatt_db_attribute * gatt_db_service_insert_descriptor(struct gatt_db_attribute *attrib, uint16_t handle, diff --git a/src/shared/gatt-db.h b/src/shared/gatt-db.h index 6c1ce7a00..f4ec51cff 100644 --- a/src/shared/gatt-db.h +++ b/src/shared/gatt-db.h @@ -87,6 +87,15 @@ gatt_db_insert_characteristic(struct gatt_db *db, gatt_db_write_t write_func, void *user_data); +struct gatt_db_attribute * +gatt_db_insert_descriptor(struct gatt_db *db, + uint16_t handle, + const bt_uuid_t *uuid, + uint32_t permissions, + gatt_db_read_t read_func, + gatt_db_write_t write_func, + void *user_data); + struct gatt_db_attribute * gatt_db_service_add_descriptor(struct gatt_db_attribute *attrib, const bt_uuid_t *uuid, -- 2.47.3