X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=zigbee-daemon%2Fzigbee-lib%2Fsrc%2Fdrivers%2Fzblib_driver_zcl_ias_zone.c;h=90f6cabbeba8e2e0491edbfdffef631c77551d8b;hb=ca664ac21cc85191b5d487d451f24c8e5a8b7375;hp=4ece566a1c3b31236254b88a7e82e667685860ea;hpb=16de8e58f80af7b2335260fec1fdd7a33e2d19b9;p=platform%2Fcore%2Fconnectivity%2Fzigbee-manager.git diff --git a/zigbee-daemon/zigbee-lib/src/drivers/zblib_driver_zcl_ias_zone.c b/zigbee-daemon/zigbee-lib/src/drivers/zblib_driver_zcl_ias_zone.c index 4ece566..90f6cab 100644 --- a/zigbee-daemon/zigbee-lib/src/drivers/zblib_driver_zcl_ias_zone.c +++ b/zigbee-daemon/zigbee-lib/src/drivers/zblib_driver_zcl_ias_zone.c @@ -18,20 +18,21 @@ #include #include +#include #include #include "zblib_driver_zcl_ias_zone.h" /**< Private data */ typedef struct { - ZblibDriverZcliasZoneOps_t *ops; /**< Operations */ -} ZblibDriverZcliasZonePrivData_t; + ZblibDriverZclIasZoneOps_t *ops; /**< Operations */ +} ZblibDriverZclIasZonePrivData_t; static gboolean __zblib_driver_zcl_ias_zone_dispatcher(ZigBeeDriver *driver, guint request_id) { ZigBeeService *service = NULL; - ZblibDriverZcliasZonePrivData_t *priv_data = NULL; - ZblibDriverZcliasZoneOps_t *ops = NULL; + ZblibDriverZclIasZonePrivData_t *priv_data = NULL; + ZblibDriverZclIasZoneOps_t *ops = NULL; guint request_type; guint ops_id; gboolean ret = FALSE; @@ -54,7 +55,7 @@ static gboolean __zblib_driver_zcl_ias_zone_dispatcher(ZigBeeDriver *driver, gui /* Fetch ops ID */ ops_id = zblib_request_get_ops_id(request_type); switch (ops_id) { - case ZBLIB_ZCLIAS_CONTROL_OPS_ENROLL_RESPONSE: { + case ZBLIB_ZCL_IAS_ZONE_OPS_ENROLL_RESPONSE: { zblib_check_null_ret_error("ops->enroll_response", ops->enroll_response, FALSE); @@ -73,7 +74,7 @@ static gboolean __zblib_driver_zcl_ias_zone_dispatcher(ZigBeeDriver *driver, gui static void __zblib_driver_zcl_ias_zone_free_hook(ZigBeeDriver *driver) { - ZblibDriverZcliasZonePrivData_t *priv_data = NULL; + ZblibDriverZclIasZonePrivData_t *priv_data = NULL; zblib_check_null_ret("driver", driver); @@ -87,24 +88,38 @@ static void __zblib_driver_zcl_ias_zone_free_hook(ZigBeeDriver *driver) ZigBeeDriver *zblib_driver_zcl_ias_zone_new(ZigBeePlugin *plugin, const gchar *driver_name, - ZblibDriverZcliasZoneOps_t *ops) + ZblibDriverZclIasZoneOps_t *ops) { ZigBeeDriver *driver = NULL; - ZblibDriverZcliasZonePrivData_t *priv_data = NULL; + ZigBeeService *service = NULL; + ZblibDriverZclIasZonePrivData_t *priv_data = NULL; gboolean ret; zblib_check_null_ret_error("plugin", plugin, NULL); /* Create new driver */ - driver = zblib_driver_new(plugin, driver_name, ZBLIB_DRIVER_TYPE_ZCLIAS_CONTROL); + driver = zblib_driver_new(plugin, driver_name, ZBLIB_DRIVER_TYPE_ZCL_IAS_ZONE); zblib_check_null_ret_error("driver", driver, NULL); /* Allocate memory for private data */ - priv_data = g_malloc0(sizeof(ZblibDriverZcliasZonePrivData_t)); + priv_data = g_malloc0(sizeof(ZblibDriverZclIasZonePrivData_t)); /* Update private data */ priv_data->ops = ops; + /* Link service to driver */ + service = zblib_plugin_ref_service(plugin); + if (NULL == service) { + Z_LOGE("zblib_plugin_ref_service failed!"); + + /* Free allocated resources */ + g_free(priv_data); + g_free(driver); + + return NULL; + } + zblib_driver_link_service(driver, service); + /* Link private data to driver */ ret = zblib_driver_link_object(driver, priv_data); if (FALSE == ret) {