From 87abac457f4e2037c2cd6e4f30384e2ab4fa662b Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Mon, 8 May 2017 20:18:25 +0300 Subject: [PATCH] shared/gatt-db: Add gatt_db_insert_characteristic This introduces gatt_db_insert_characteristic which is similar to gatt_db_service_insert_charactersitic but doesn't require the caller to know the service where the attribute should be inserted. --- src/shared/gatt-db.c | 22 ++++++++++++++++++++++ src/shared/gatt-db.h | 10 ++++++++++ 2 files changed, 32 insertions(+) diff --git a/src/shared/gatt-db.c b/src/shared/gatt-db.c index 376e70502..39892eea1 100644 --- a/src/shared/gatt-db.c +++ b/src/shared/gatt-db.c @@ -732,6 +732,28 @@ service_insert_characteristic(struct gatt_db_service *service, return service->attributes[i]; } +struct gatt_db_attribute * +gatt_db_insert_characteristic(struct gatt_db *db, + uint16_t handle, + const bt_uuid_t *uuid, + uint32_t permissions, + uint8_t properties, + 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_characteristic(attrib->service, handle, uuid, + permissions, properties, + read_func, write_func, + user_data); +} + struct gatt_db_attribute * gatt_db_service_insert_characteristic(struct gatt_db_attribute *attrib, uint16_t handle, diff --git a/src/shared/gatt-db.h b/src/shared/gatt-db.h index fa7897b23..6c1ce7a00 100644 --- a/src/shared/gatt-db.h +++ b/src/shared/gatt-db.h @@ -77,6 +77,16 @@ gatt_db_service_insert_characteristic(struct gatt_db_attribute *attrib, gatt_db_write_t write_func, void *user_data); +struct gatt_db_attribute * +gatt_db_insert_characteristic(struct gatt_db *db, + uint16_t handle, + const bt_uuid_t *uuid, + uint32_t permissions, + uint8_t properties, + 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