summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/lib/bluetooth/hal-bt.c25
1 files changed, 16 insertions, 9 deletions
diff --git a/plugins/lib/bluetooth/hal-bt.c b/plugins/lib/bluetooth/hal-bt.c
index 1fb4180..a4791e1 100644
--- a/plugins/lib/bluetooth/hal-bt.c
+++ b/plugins/lib/bluetooth/hal-bt.c
@@ -38,12 +38,6 @@ CTLP_CAPI_REGISTER(HAL_BT_PLUGIN_NAME)
// Call at initialisation time
CTLP_ONLOAD(plugin, callbacks)
{
- AFB_ApiInfo(plugin->api, "%s Plugin Registering: uid='%s' 'info='%s'", HAL_BT_PLUGIN_NAME, plugin->uid, plugin->info);
-
- memset(&localHalBtPluginData, '\0', sizeof(localHalBtPluginData));
-
- localHalBtPluginData.currentHalApiHandle = plugin->api;
-
AFB_ApiNotice(plugin->api, "%s Plugin Registered correctly: uid='%s' 'info='%s'", HAL_BT_PLUGIN_NAME, plugin->uid, plugin->info);
return 0;
@@ -59,6 +53,8 @@ CTLP_INIT(plugin, callbacks)
CtlConfigT *ctrlConfig;
+ struct SpecificHalData *currentHalData;
+
json_object *actionsToAdd, *returnedJ, *halMixerJ, *halOrigCaptureJ, *halNewCaptureJ, *halOrigStreamJ, *halNewStreamJ, *btCaptureJ, *btCaptureParamsJ, *btStreamJ;
AFB_ApiInfo(plugin->api, "Plugin initialization of %s plugin", HAL_BT_PLUGIN_NAME);
@@ -73,13 +69,13 @@ CTLP_INIT(plugin, callbacks)
return -1;
}
- if(! (localHalBtPluginData.currentHalData = (struct SpecificHalData *) ctrlConfig->external)) {
+ if(! (currentHalData = (struct SpecificHalData *) ctrlConfig->external)) {
AFB_ApiError(plugin->api, "Can't get current hal controller data");
return -2;
}
- if((! localHalBtPluginData.currentHalData->ctlHalSpecificData) ||
- (! (halMixerJ = localHalBtPluginData.currentHalData->ctlHalSpecificData->halMixerJ))) {
+ if((! currentHalData->ctlHalSpecificData) ||
+ (! (halMixerJ = currentHalData->ctlHalSpecificData->halMixerJ))) {
AFB_ApiError(plugin->api, "Can't get current hal mixer json section");
return -3;
}
@@ -113,6 +109,17 @@ CTLP_INIT(plugin, callbacks)
"uid", "Bluetooth-Manager/device_updated",
"action", "plugin://hal-bt#events");
+ if(currentHalData->status != HAL_STATUS_AVAILABLE) {
+ AFB_ApiWarning(plugin->api, "Controller initialization of %s plugin cannot be done because hal is not ready to be used", HAL_BT_PLUGIN_NAME);
+ return 0;
+ }
+
+ memset(&localHalBtPluginData, '\0', sizeof(localHalBtPluginData));
+
+ localHalBtPluginData.currentHalApiHandle = plugin->api;
+
+ localHalBtPluginData.currentHalData = currentHalData;
+
idx = 0;
while(ctrlConfig->sections[idx].key && strcasecmp(ctrlConfig->sections[idx].key, "events"))
idx++;