From e89317968783addc9b32ed7c9af3b16ca82ecf9b Mon Sep 17 00:00:00 2001 From: Jakub Pawlowski Date: Tue, 21 Nov 2017 16:35:49 -0800 Subject: [PATCH] Hearing Aid BTIF interface This is first version of Hearing Aid interface. Test: compilation Bug: 69623109 Change-Id: I157dc8d1481c1f034c15aac7dd33a5103cf5ea14 --- include/hardware/bluetooth.h | 1 + include/hardware/bt_hearing_aid.h | 72 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 include/hardware/bt_hearing_aid.h diff --git a/include/hardware/bluetooth.h b/include/hardware/bluetooth.h index dd7b8e119..e48e560b9 100644 --- a/include/hardware/bluetooth.h +++ b/include/hardware/bluetooth.h @@ -48,6 +48,7 @@ #define BT_PROFILE_GATT_ID "gatt" #define BT_PROFILE_AV_RC_ID "avrcp" #define BT_PROFILE_AV_RC_CTRL_ID "avrcp_ctrl" +#define BT_PROFILE_HEARING_AID_ID "hearing_aid" /** Bluetooth test interface IDs */ #define BT_TEST_INTERFACE_MCAP_ID "mcap_test" diff --git a/include/hardware/bt_hearing_aid.h b/include/hardware/bt_hearing_aid.h new file mode 100644 index 000000000..3b53d3711 --- /dev/null +++ b/include/hardware/bt_hearing_aid.h @@ -0,0 +1,72 @@ +/* + * Copyright 2018 The Android Open Source Project + * + * 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. + */ + +#ifndef ANDROID_INCLUDE_BT_HEARING_AID_H +#define ANDROID_INCLUDE_BT_HEARING_AID_H + +#include + +namespace bluetooth { +namespace hearing_aid { + +enum class ConnectionState { + DISCONNECTED = 0, + CONNECTING, + CONNECTED, + DISCONNECTING +}; + +class HearingAidCallbacks { + public: + virtual ~HearingAidCallbacks() = default; + + /** Callback for profile connection state change */ + virtual void OnConnectionState(ConnectionState state, + const RawAddress& address) = 0; + + /** Callback for device being available. Is executed when devices are loaded + * from storage on stack bringup, and when new device is connected to profile. + * Main purpose of this callback is to keep its users informed of device + * capabilities and hiSyncId. + */ + virtual void OnDeviceAvailable(uint8_t capabilities, uint64_t hiSyncId, + const RawAddress& address) = 0; +}; + +class HearingAidInterface { + public: + virtual ~HearingAidInterface() = default; + + /** Register the Hearing Aid callbacks */ + virtual void Init(HearingAidCallbacks* callbacks) = 0; + + /** Connect to Hearing Aid */ + virtual void Connect(const RawAddress& address) = 0; + + /** Disconnect from Hearing Aid */ + virtual void Disconnect(const RawAddress& address) = 0; + + /** Set the volume */ + virtual void SetVolume(int8_t volume) = 0; + + /** Closes the interface. */ + virtual void Cleanup(void) = 0; +}; + +} // namespace hearing_aid +} // namespace bluetooth + +#endif /* ANDROID_INCLUDE_BT_HEARING_AID_H */ -- 2.11.0