From 959ee55b615d76d1fe33d7bd39e7a1595f10bbcc Mon Sep 17 00:00:00 2001 From: Olivier Martin Date: Tue, 13 Feb 2024 21:58:13 +0100 Subject: [PATCH] gattlib: Change gattlib_register_(on_disconnect|notification|indication) --- common/gattlib_common.c | 18 +++++++++++++++--- gattlib-py/gattlib/__init__.py | 4 ++-- include/gattlib.h | 6 +++--- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/common/gattlib_common.c b/common/gattlib_common.c index 4e52586..321744a 100644 --- a/common/gattlib_common.c +++ b/common/gattlib_common.c @@ -8,19 +8,31 @@ #include "gattlib_internal.h" -void gattlib_register_notification(gatt_connection_t* connection, gattlib_event_handler_t notification_handler, void* user_data) { +int gattlib_register_notification(gatt_connection_t* connection, gattlib_event_handler_t notification_handler, void* user_data) { + if (connection == NULL) { + return GATTLIB_INVALID_PARAMETER; + } connection->notification.callback.notification_handler = notification_handler; connection->notification.user_data = user_data; + return GATTLIB_SUCCESS; } -void gattlib_register_indication(gatt_connection_t* connection, gattlib_event_handler_t indication_handler, void* user_data) { +int gattlib_register_indication(gatt_connection_t* connection, gattlib_event_handler_t indication_handler, void* user_data) { + if (connection == NULL) { + return GATTLIB_INVALID_PARAMETER; + } connection->indication.callback.notification_handler = indication_handler; connection->indication.user_data = user_data; + return GATTLIB_SUCCESS; } -void gattlib_register_on_disconnect(gatt_connection_t *connection, gattlib_disconnection_handler_t handler, void* user_data) { +int gattlib_register_on_disconnect(gatt_connection_t *connection, gattlib_disconnection_handler_t handler, void* user_data) { + if (connection == NULL) { + return GATTLIB_INVALID_PARAMETER; + } connection->on_disconnection.callback.disconnection_handler = handler; connection->on_disconnection.user_data = user_data; + return GATTLIB_SUCCESS; } void bt_uuid_to_uuid(bt_uuid_t* bt_uuid, uuid_t* uuid) { diff --git a/gattlib-py/gattlib/__init__.py b/gattlib-py/gattlib/__init__.py index 8adf2fb..6bdef74 100644 --- a/gattlib-py/gattlib/__init__.py +++ b/gattlib-py/gattlib/__init__.py @@ -159,11 +159,11 @@ gattlib_notification_start.argtypes = [c_void_p, POINTER(GattlibUuid)] gattlib_notification_stop = gattlib.gattlib_notification_stop gattlib_notification_stop.argtypes = [c_void_p, POINTER(GattlibUuid)] -# void gattlib_register_notification(gatt_connection_t* connection, gattlib_event_handler_t notification_handler, void* user_data); +# int gattlib_register_notification(gatt_connection_t* connection, gattlib_event_handler_t notification_handler, void* user_data); gattlib_register_notification = gattlib.gattlib_register_notification gattlib_register_notification.argtypes = [c_void_p, c_void_p, c_void_p] -# void gattlib_register_on_disconnect(gatt_connection_t *connection, PyObject *handler, PyObject *user_data) +# int gattlib_register_on_disconnect(gatt_connection_t *connection, PyObject *handler, PyObject *user_data) gattlib_register_on_disconnect = gattlib.gattlib_register_on_disconnect gattlib_register_on_disconnect.argtypes = [c_void_p, c_void_p, c_void_p] diff --git a/include/gattlib.h b/include/gattlib.h index 2ae2de5..4df3c3e 100644 --- a/include/gattlib.h +++ b/include/gattlib.h @@ -357,7 +357,7 @@ int gattlib_disconnect(gatt_connection_t* connection); * * @return GATTLIB_SUCCESS on success or GATTLIB_* error code */ -void gattlib_register_on_disconnect(gatt_connection_t *connection, gattlib_disconnection_handler_t handler, void* user_data); +int gattlib_register_on_disconnect(gatt_connection_t *connection, gattlib_disconnection_handler_t handler, void* user_data); /** * Structure to represent GATT Primary Service @@ -615,7 +615,7 @@ int gattlib_indication_stop(gatt_connection_t* connection, const uuid_t* uuid); * * @return GATTLIB_SUCCESS on success or GATTLIB_* error code */ -void gattlib_register_notification(gatt_connection_t* connection, gattlib_event_handler_t notification_handler, void* user_data); +int gattlib_register_notification(gatt_connection_t* connection, gattlib_event_handler_t notification_handler, void* user_data); /* * @brief Register a handle for the GATT indications @@ -626,7 +626,7 @@ void gattlib_register_notification(gatt_connection_t* connection, gattlib_event_ * * @return GATTLIB_SUCCESS on success or GATTLIB_* error code */ -void gattlib_register_indication(gatt_connection_t* connection, gattlib_event_handler_t indication_handler, void* user_data); +int gattlib_register_indication(gatt_connection_t* connection, gattlib_event_handler_t indication_handler, void* user_data); #if 0 // Disable until https://github.com/labapart/gattlib/issues/75 is resolved /**