X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=zigbee-daemon%2Fzigbee-lib%2Fsrc%2Fzblib_plugin.c;h=539e9df64f7ac1cc999b0749c881ad3053a7bed3;hb=bda426ee9e3507f01d4d1657885d537f456d8267;hp=f2136dd6d7f3d7e2c742ac23f83757d717332f98;hpb=38f7f415a5657e1a2f9ed835835cf68b367b8227;p=platform%2Fcore%2Fconnectivity%2Fzigbee-manager.git diff --git a/zigbee-daemon/zigbee-lib/src/zblib_plugin.c b/zigbee-daemon/zigbee-lib/src/zblib_plugin.c index f2136dd..539e9df 100644 --- a/zigbee-daemon/zigbee-lib/src/zblib_plugin.c +++ b/zigbee-daemon/zigbee-lib/src/zblib_plugin.c @@ -56,7 +56,7 @@ ZigBeePlugin *zblib_plugin_new(ZigBeeService *service, void zblib_plugin_free(ZigBeePlugin *plugin) { - if (plugin == NULL) { + if (NULL == plugin) { Z_LOGE("ZigBee vendor plug-in is NULL"); return; } @@ -69,7 +69,7 @@ void zblib_plugin_free(ZigBeePlugin *plugin) for (list = plugin->driver_list; list; list = list->next) { driver = list->data; - if (!driver) + if (NULL == driver) continue; zblib_driver_free(driver); @@ -97,7 +97,7 @@ void zblib_plugin_free(ZigBeePlugin *plugin) const struct zblib_plugin_descriptor *zblib_plugin_get_descriptor(ZigBeePlugin *plugin) { - if (plugin == NULL) { + if (NULL == plugin) { Z_LOGE("ZigBee vendor plug-in is NULL"); return NULL; } @@ -107,10 +107,38 @@ const struct zblib_plugin_descriptor *zblib_plugin_get_descriptor(ZigBeePlugin * char *zblib_plugin_get_plugin_name(ZigBeePlugin *plugin) { - if (plugin == NULL) { + if (NULL == plugin) { Z_LOGE("ZigBee vendor plug-in is NULL"); return NULL; } return g_strdup(plugin->plugin_name); } + +ZigBeeDriver *zblib_plugin_ref_driver(ZigBeePlugin *plugin, ZblibDriverType_e driver_type) +{ + ZigBeeDriver *driver = NULL; + ZblibDriverType_e _driver_type; + GSList *list = NULL; + + if (NULL == plugin) { + Z_LOGE("ZigBee vendor plug-in is NULL"); + return NULL; + } + + list = plugin->driver_list; + while (list) { + /* Fetch driver type of driver */ + _driver_type = zblib_driver_ref_driver_type((ZigBeeDriver *)(list->data)); + if (_driver_type == driver_type) { + /* Driver found */ + driver = (ZigBeeDriver *)(list->data); + break; + } + + /* Move to next driver */ + list = g_slist_next(list); + } + + return driver; +}