summaryrefslogtreecommitdiffstats
path: root/plugins/lib/bluetooth/hal-bt.c
diff options
context:
space:
mode:
authorMatt Ranostay <matt.ranostay@konsulko.com>2018-12-03 02:43:10 -0800
committerMatt Ranostay <matt.ranostay@konsulko.com>2018-12-09 10:48:20 -0800
commite815fdaec657810c9ee8f33dc943dd5e9b7dab5f (patch)
treee00e4da903b627ea658bf87e6f26193e2d02ba84 /plugins/lib/bluetooth/hal-bt.c
parent453aabcfd2a3683eabf378dc3e8d2509badd1aa9 (diff)
plugins: hal-bt: update to new bluetooth binding API
Switch to using media events to detect audio sink transport states for connected devices. Bug-AGL: SPEC-1986 Change-Id: I834d5387ccd76d5ec0946f56536840736a7d96e0 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
Diffstat (limited to 'plugins/lib/bluetooth/hal-bt.c')
-rw-r--r--plugins/lib/bluetooth/hal-bt.c44
1 files changed, 17 insertions, 27 deletions
diff --git a/plugins/lib/bluetooth/hal-bt.c b/plugins/lib/bluetooth/hal-bt.c
index a4791e1..1a53c0d 100644
--- a/plugins/lib/bluetooth/hal-bt.c
+++ b/plugins/lib/bluetooth/hal-bt.c
@@ -49,7 +49,8 @@ CTLP_INIT(plugin, callbacks)
unsigned int idx;
- char *btStreamZone, *returnedInfo;
+ char *btStreamZone;
+ struct json_object *returnedState;
CtlConfigT *ctrlConfig;
@@ -80,19 +81,18 @@ CTLP_INIT(plugin, callbacks)
return -3;
}
- if(AFB_ServiceSync(plugin->api, BT_MANAGER_API, BT_MANAGER_GET_POWER_INFO, NULL, &returnedJ)) {
- if((! wrap_json_unpack(returnedJ, "{s:{s:s}}", "request", "info", &returnedInfo)) &&
- (! strncmp(returnedInfo, "Unable to get power status", strlen(returnedInfo)))) {
+ if(AFB_ServiceSync(plugin->api, BT_MANAGER_API, BT_MANAGER_GET_ADAPTER_INFO, NULL, &returnedJ)) {
+ if(wrap_json_unpack(returnedJ, "{s:{s:b}}", "response", "powered", &returnedState)) {
AFB_ApiWarning(plugin->api,
- "No bluetooth receiver detected when calling verb '%s' of '%s' api, bluetooth is disable because not reachable",
- BT_MANAGER_GET_POWER_INFO,
+ "No bluetooth receiver detected when calling verb '%s' of '%s' api, bluetooth is disabled because not reachable",
+ BT_MANAGER_GET_ADAPTER_INFO,
BT_MANAGER_API);
return 0;
}
else {
AFB_ApiError(plugin->api,
"Error during call to verb '%s' of '%s' api (%s)",
- BT_MANAGER_GET_POWER_INFO,
+ BT_MANAGER_GET_ADAPTER_INFO,
BT_MANAGER_API,
json_object_get_string(returnedJ));
return -4;
@@ -106,7 +106,7 @@ CTLP_INIT(plugin, callbacks)
}
wrap_json_pack(&actionsToAdd, "{s:s s:s}",
- "uid", "Bluetooth-Manager/device_updated",
+ "uid", "Bluetooth-Manager/media",
"action", "plugin://hal-bt#events");
if(currentHalData->status != HAL_STATUS_AVAILABLE) {
@@ -298,7 +298,7 @@ CTLP_CAPI(init, source, argsJ, queryJ)
return -6;
}
- else if(! wrap_json_unpack(returnedJ, "{s:{s:s}}", "request", "info", &returnedInfo)) {
+ else if(wrap_json_unpack(returnedJ, "{s:{s:s}}", "request", "info", &returnedInfo)) {
AFB_ApiError(source->api,
"Couldn't subscribe to event '%s' during call to verb '%s' of api '%s' (error '%s')",
BT_MANAGER_DEVICE_UPDATE_EVENT,
@@ -311,24 +311,14 @@ CTLP_CAPI(init, source, argsJ, queryJ)
json_object_put(returnedJ);
if(AFB_ServiceSync(source->api, BT_MANAGER_API, BT_MANAGER_GET_DEVICES_VERB, NULL, &returnedJ)) {
- if((! wrap_json_unpack(returnedJ, "{s:{s:s}}", "request", "info", &returnedInfo)) &&
- (! strncmp(returnedInfo, "No find devices", strlen(returnedInfo)))) {
- AFB_ApiInfo(source->api,
- "No bluetooth devices returned by call to verb '%s' of '%s' api",
- BT_MANAGER_GET_DEVICES_VERB,
- BT_MANAGER_API);
- }
- else {
- AFB_ApiError(source->api,
- "Error during call to verb '%s' of '%s' api (%s)",
- BT_MANAGER_GET_DEVICES_VERB,
- BT_MANAGER_API,
- json_object_get_string(returnedJ));
-
+ AFB_ApiError(source->api,
+ "Error during call to verb '%s' of '%s' api (%s)",
+ BT_MANAGER_GET_DEVICES_VERB,
+ BT_MANAGER_API,
+ json_object_get_string(returnedJ));
return -7;
- }
}
- else if(wrap_json_unpack(returnedJ, "{s:{s:o}}", "response", "list", &returnedBtList)) {
+ else if(wrap_json_unpack(returnedJ, "{s:{s:o}}", "response", "devices", &returnedBtList)) {
AFB_ApiError(source->api,
"Couldn't get bluetooth device list during call to verb '%s' of api '%s'",
BT_MANAGER_GET_DEVICES_VERB,
@@ -375,7 +365,7 @@ CTLP_CAPI(events, source, argsJ, queryJ)
return 0;
}
- if(HalBtDataHandleReceivedSingleBtDeviceData(&localHalBtPluginData, queryJ)) {
+ if(HalBtDataHandleReceivedMediaBtDeviceData(&localHalBtPluginData, queryJ)) {
AFB_ApiError(source->api, "Error while decoding bluetooth event received json (%s)", json_object_get_string(queryJ));
return -1;
}
@@ -403,4 +393,4 @@ CTLP_CAPI(events, source, argsJ, queryJ)
}
return 0;
-} \ No newline at end of file
+}