diff options
author | Thierry Bultel <thierry.bultel@iot.bzh> | 2018-12-05 14:05:10 +0100 |
---|---|---|
committer | Thierry Bultel <thierry.bultel@iot.bzh> | 2018-12-12 22:01:30 +0100 |
commit | b2588f97269799bdcbc6253286ffaa28d5d7aeff (patch) | |
tree | f81f6fe6523d9c389f1ef4e7bc44fb127a323a41 /plugins/lib/bluetooth/hal-bt-mixer-link.c | |
parent | 4b299e632148205bb27c9c4a4d6dd779d466ff37 (diff) |
Adds support for bluetooth audio through bluez-alsasandbox/tbultel/bluealsa
Implements a new bluealsa plugin to the HAL manager,
reacting to the changes of the available transports.
This plugin is linked with the new bluealsa.so shared
library.
New transports (SCO & A2DP) result in softmixer invocations
of the "attach" verb, that creates the new capture
(eg, A2DP capture from bluealsa ioplug PCM, SCO microphone
capture), playbacks (SCO playback to a softmixer zone,
and SCO output to bluealsa iogplug PCM).
When a transport disappears, the hal manager calls the
transaction deletion verb that will tell the softmixer
to remove the created streams and associated objects.
Signed-off-by: Thierry Bultel <thierry.bultel@iot.bzh>
Diffstat (limited to 'plugins/lib/bluetooth/hal-bt-mixer-link.c')
-rw-r--r-- | plugins/lib/bluetooth/hal-bt-mixer-link.c | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/plugins/lib/bluetooth/hal-bt-mixer-link.c b/plugins/lib/bluetooth/hal-bt-mixer-link.c deleted file mode 100644 index abbd1b7..0000000 --- a/plugins/lib/bluetooth/hal-bt-mixer-link.c +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (C) 2018 "IoT.bzh" - * Author Jonathan Aillet <jonathan.aillet@iot.bzh> - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#define _GNU_SOURCE - -#include <stdio.h> -#include <string.h> -#include <stdbool.h> - -#include <wrap-json.h> - -#include <ctl-config.h> - -#include "hal-bt-mixer-link.h" - -/******************************************************************************* - * HAL controllers handle mixer bt calls functions * - ******************************************************************************/ - -int HalBtMixerLinkSetBtStreamingSettings(AFB_ApiT apiHandle, char *mixerApiName, unsigned int btStreamStatus, char *hci, char *btAddress) -{ - char *returnedError = NULL; - - json_object *toSendJ, *returnedJ; - - if(! apiHandle || ! mixerApiName) - return -1; - - if(! btStreamStatus) { - AFB_ApiDebug(apiHandle, "Will try to disable bluetooth streamed device"); - toSendJ = NULL; - } - else if(btStreamStatus == 1 && hci && btAddress) { - AFB_ApiDebug(apiHandle, "Will try to change bluetooth streamed device to hci='%s' address='%s'", hci, btAddress); - wrap_json_pack(&toSendJ, "{s:s s:s s:s}", "interface", hci, "device", btAddress, "profile", "a2dp"); - } - else { - return -2; - } - - if(AFB_ServiceSync(apiHandle, mixerApiName, MIXER_SET_STREAMED_BT_DEVICE_VERB, toSendJ, &returnedJ)) { - AFB_ApiError(apiHandle, - "Error during call to verb %s of %s api", - MIXER_SET_STREAMED_BT_DEVICE_VERB, - mixerApiName); - return -3; - } - else if(! wrap_json_unpack(returnedJ, "{s:{s:s}}", "request", "info", &returnedError)) { - AFB_ApiError(apiHandle, - "Error '%s' happened during set bluetooth streaming settings during call to verb '%s' of api '%s'", - returnedError ? returnedError : "no_error_string", - MIXER_SET_STREAMED_BT_DEVICE_VERB, - mixerApiName); - json_object_put(returnedJ); - return -4; - } - - json_object_put(returnedJ); - - if(btStreamStatus) - AFB_ApiInfo(apiHandle, "Bluetooth streamed device changed to hci='%s' address='%s'", hci, btAddress); - else - AFB_ApiInfo(apiHandle, "Bluetooth streamed device disbaled"); - - return 0; -}
\ No newline at end of file |