blob: 714d738af405e8dde21a9e6a4e85fe943df496ff [file] [log] [blame]
Grzegorz Kolodziejczykb5f2d232019-10-24 12:31:20 +02001/*
2 * Copyright 2020 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#pragma once
18
19#include <android/hardware/bluetooth/audio/2.1/IBluetoothAudioProvidersFactory.h>
20
21#include "A2dpOffloadAudioProvider.h"
22#include "A2dpSoftwareAudioProvider.h"
23#include "BluetoothAudioProvider.h"
24#include "HearingAidAudioProvider.h"
25#include "LeAudioAudioProvider.h"
Jakub Pawlowskic8861ec2021-06-02 12:50:41 +020026#include "LeAudioOffloadAudioProvider.h"
Grzegorz Kolodziejczykb5f2d232019-10-24 12:31:20 +020027
28namespace android {
29namespace hardware {
30namespace bluetooth {
31namespace audio {
32namespace V2_1 {
33namespace implementation {
34
35class BluetoothAudioProvidersFactory : public IBluetoothAudioProvidersFactory {
36 public:
37 BluetoothAudioProvidersFactory() {}
38
39 Return<void> openProvider(const V2_0::SessionType sessionType,
40 openProvider_cb _hidl_cb) override;
41
42 Return<void> getProviderCapabilities(
43 const V2_0::SessionType sessionType,
44 getProviderCapabilities_cb _hidl_cb) override;
45
46 Return<void> openProvider_2_1(const SessionType sessionType,
47 openProvider_2_1_cb _hidl_cb) override;
48
49 Return<void> getProviderCapabilities_2_1(
50 const SessionType sessionType,
51 getProviderCapabilities_2_1_cb _hidl_cb) override;
52
53 private:
54 static A2dpSoftwareAudioProvider a2dp_software_provider_instance_;
55 static A2dpOffloadAudioProvider a2dp_offload_provider_instance_;
56 static HearingAidAudioProvider hearing_aid_provider_instance_;
57 static LeAudioOutputAudioProvider leaudio_output_provider_instance_;
58 static LeAudioInputAudioProvider leaudio_input_provider_instance_;
Grzegorz Kolodziejczykb5f2d232019-10-24 12:31:20 +020059};
60
61extern "C" IBluetoothAudioProvidersFactory*
62HIDL_FETCH_IBluetoothAudioProvidersFactory(const char* name);
63
64} // namespace implementation
65} // namespace V2_1
66} // namespace audio
67} // namespace bluetooth
68} // namespace hardware
69} // namespace android