diff options
-rw-r--r-- | bluetooth/audio/2.2/Android.bp | 33 | ||||
-rw-r--r-- | bluetooth/audio/2.2/IBluetoothAudioPort.hal | 30 | ||||
-rw-r--r-- | bluetooth/audio/2.2/IBluetoothAudioProvider.hal | 80 | ||||
-rw-r--r-- | bluetooth/audio/2.2/IBluetoothAudioProvidersFactory.hal | 73 | ||||
-rw-r--r-- | bluetooth/audio/2.2/types.hal | 127 | ||||
-rw-r--r-- | compatibility_matrices/compatibility_matrix.current.xml | 2 |
6 files changed, 1 insertions, 344 deletions
diff --git a/bluetooth/audio/2.2/Android.bp b/bluetooth/audio/2.2/Android.bp deleted file mode 100644 index d66e84e420..0000000000 --- a/bluetooth/audio/2.2/Android.bp +++ /dev/null @@ -1,33 +0,0 @@ -// This file is autogenerated by hidl-gen -Landroidbp. - -package { - // See: http://go/android-license-faq - // A large-scale-change added 'default_applicable_licenses' to import - // all of the 'license_kinds' from "hardware_interfaces_license" - // to get the below license kinds: - // SPDX-license-identifier-Apache-2.0 - default_applicable_licenses: ["hardware_interfaces_license"], -} - -hidl_interface { - name: "android.hardware.bluetooth.audio@2.2", - root: "android.hardware", - srcs: [ - "types.hal", - "IBluetoothAudioPort.hal", - "IBluetoothAudioProvider.hal", - "IBluetoothAudioProvidersFactory.hal", - ], - interfaces: [ - "android.hardware.audio.common@5.0", - "android.hardware.bluetooth.audio@2.0", - "android.hardware.bluetooth.audio@2.1", - "android.hidl.base@1.0", - "android.hidl.safe_union@1.0", - ], - apex_available: [ - "//apex_available:platform", - "com.android.bluetooth", - ], - gen_java: false, -} diff --git a/bluetooth/audio/2.2/IBluetoothAudioPort.hal b/bluetooth/audio/2.2/IBluetoothAudioPort.hal deleted file mode 100644 index 344899c036..0000000000 --- a/bluetooth/audio/2.2/IBluetoothAudioPort.hal +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright 2021 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. - */ - -package android.hardware.bluetooth.audio@2.2; - -import @2.0::IBluetoothAudioPort; -import android.hardware.audio.common@5.0::SinkMetadata; - -interface IBluetoothAudioPort extends @2.0::IBluetoothAudioPort { - /** - * Called when the metadata of the stream's sink has been changed. - * - * @param sinkMetadata Description of the audio that is recorded by the - * clients. - */ - updateSinkMetadata(SinkMetadata sinkMetadata); -}; diff --git a/bluetooth/audio/2.2/IBluetoothAudioProvider.hal b/bluetooth/audio/2.2/IBluetoothAudioProvider.hal deleted file mode 100644 index 7c91805619..0000000000 --- a/bluetooth/audio/2.2/IBluetoothAudioProvider.hal +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright 2021 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. - */ - -package android.hardware.bluetooth.audio@2.2; - -import @2.1::IBluetoothAudioProvider; -import @2.2::IBluetoothAudioPort; -import @2.0::Status; - -/** - * HAL interface from the Bluetooth stack to the Audio HAL - * - * The Bluetooth stack calls methods in this interface to start and end audio - * sessions and sends callback events to the Audio HAL. - * - * Note: For HIDL APIs with a "generates" statement, the callback parameter used - * for return value must be invoked synchronously before the API call returns. - */ -interface IBluetoothAudioProvider extends @2.1::IBluetoothAudioProvider { - - /** - * This method indicates that the Bluetooth stack is ready to stream audio. - * It registers an instance of IBluetoothAudioPort with and provides the - * current negotiated codec to the Audio HAL. After this method is called, - * the Audio HAL can invoke IBluetoothAudioPort.startStream(). - * - * Note: endSession() must be called to unregister this IBluetoothAudioPort - * - * @param hostIf An instance of IBluetoothAudioPort for stream control - * @param audioConfig The audio configuration negotiated with the remote - * device. The PCM parameters are set if software based encoding, - * otherwise the correct codec configuration is used for hardware - * encoding. - * - * @return status One of the following - * SUCCESS if this IBluetoothAudioPort was successfully registered with - * the Audio HAL - * UNSUPPORTED_CODEC_CONFIGURATION if the Audio HAL cannot register this - * IBluetoothAudioPort with the given codec configuration - * FAILURE if the Audio HAL cannot register this IBluetoothAudioPort for - * any other reason - * @return dataMQ The fast message queue for audio data from/to this - * provider. Audio data will be in PCM format as specified by the - * audioConfig.pcmConfig parameter. Invalid if streaming is offloaded - * from/to hardware or on failure. - */ - startSession_2_2(IBluetoothAudioPort hostIf, AudioConfiguration audioConfig) - generates (Status status, fmq_sync<uint8_t> dataMQ); - - /** - * Called when the audio configuration of the stream has been changed. - * - * @param audioConfig The audio configuration negotiated with the remote - * device. The PCM parameters are set if software based encoding, - * otherwise the correct codec configuration is used for hardware - * encoding. - */ - updateAudioConfiguration(AudioConfiguration audioConfig); - - /** - * Called when the supported latency mode is updated. - * - * @param allowed If the peripheral devices can't keep up with low latency - * mode, the API will be called with supported is false. - */ - setLowLatencyModeAllowed(bool allowed); -}; diff --git a/bluetooth/audio/2.2/IBluetoothAudioProvidersFactory.hal b/bluetooth/audio/2.2/IBluetoothAudioProvidersFactory.hal deleted file mode 100644 index ae9c598dc2..0000000000 --- a/bluetooth/audio/2.2/IBluetoothAudioProvidersFactory.hal +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright 2021 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. - */ - -package android.hardware.bluetooth.audio@2.2; - -import IBluetoothAudioProvider; -import @2.1::IBluetoothAudioProvidersFactory; -import @2.0::Status; -import @2.1::SessionType; - -/** - * This factory allows a HAL implementation to be split into multiple - * independent providers. - * - * When the Bluetooth stack is ready to create an audio session, it must first - * obtain the IBluetoothAudioProvider for that session type by calling - * openProvider(). - * - * Note: For HIDL APIs with a "generates" statement, the callback parameter used - * for return value must be invoked synchronously before the API call returns. - */ -interface IBluetoothAudioProvidersFactory extends @2.1::IBluetoothAudioProvidersFactory { - /** - * Opens an audio provider for a session type. To close the provider, it is - * necessary to release references to the returned provider object. - * - * @param sessionType The session type (e.g. - * LE_AUDIO_SOFTWARE_ENCODING_DATAPATH). - * - * @return status One of the following - * SUCCESS if the Audio HAL successfully opens the provider with the - * given session type - * FAILURE if the Audio HAL cannot open the provider - * @return provider The provider of the specified session type - */ - openProvider_2_2(SessionType sessionType) - generates (Status status, IBluetoothAudioProvider provider); - - /** - * Gets a list of audio capabilities for a session type. - * - * For software encoding, the PCM capabilities are returned. - * For hardware encoding, the supported codecs and their capabilities are - * returned. - * - * @param sessionType The session type (e.g. - * A2DP_SOFTWARE_ENCODING_DATAPATH). - * @return audioCapabilities A list containing all the capabilities - * supported by the sesson type. The capabilities is a list of - * available options when configuring the codec for the session. - * For software encoding it is the PCM data rate. - * For hardware encoding it is the list of supported codecs and their - * capabilities. - * If a provider isn't supported, an empty list should be returned. - * Note: Only one entry should exist per codec when using hardware - * encoding. - */ - getProviderCapabilities_2_2(SessionType sessionType) - generates (vec<AudioCapabilities> audioCapabilities); -}; diff --git a/bluetooth/audio/2.2/types.hal b/bluetooth/audio/2.2/types.hal deleted file mode 100644 index 67558995f9..0000000000 --- a/bluetooth/audio/2.2/types.hal +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Copyright 2021 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. - */ - -package android.hardware.bluetooth.audio@2.2; - -import @2.1::Lc3Parameters; -import @2.1::PcmParameters; -import @2.0::CodecConfiguration; -import @2.0::CodecCapabilities; -import @2.1::CodecType; - -enum LeAudioMode : uint8_t { - UNKNOWN = 0x00, - UNICAST = 0x01, - BROADCAST = 0x02, -}; - -enum AudioLocation : uint8_t { - UNKNOWN = 0, - FRONT_LEFT = 1, - FRONT_RIGHT = 2, -}; - -struct UnicastStreamMap { - /* The connection handle used for a unicast or a broadcast group. */ - uint16_t streamHandle; - /* Audio channel allocation is a bit field, each enabled bit means that given audio direction, - * i.e. "left", or "right" is used. Ordering of audio channels comes from the least significant - * bit to the most significant bit. */ - uint32_t audioChannelAllocation; -}; - -struct BroadcastStreamMap { - /* The connection handle used for a unicast or a broadcast group. */ - uint16_t streamHandle; - /* Audio channel allocation is a bit field, each enabled bit means that given audio direction, - * i.e. "left", or "right" is used. Ordering of audio channels comes from the least significant - * bit to the most significant bit. */ - uint32_t audioChannelAllocation; - Lc3Parameters lc3Config; -}; - -struct UnicastConfig { - vec<UnicastStreamMap> streamMap; - uint32_t peerDelay; - Lc3Parameters lc3Config; -}; - -struct BroadcastConfig { - vec<BroadcastStreamMap> streamMap; -}; - -struct LeAudioConfiguration { - /* The mode of the LE audio */ - LeAudioMode mode; - safe_union CodecConfig { - UnicastConfig unicastConfig; - BroadcastConfig broadcastConfig; - } config; -}; - -/** Used to configure either a Hardware or Software Encoding session based on session type */ -safe_union AudioConfiguration { - PcmParameters pcmConfig; - CodecConfiguration codecConfig; - LeAudioConfiguration leAudioConfig; -}; - -/** Used to specify the capabilities of the different session types */ -safe_union AudioCapabilities { - PcmParameters pcmCapabilities; - CodecCapabilities codecCapabilities; - LeAudioCodecCapabilitiesSetting leAudioCapabilities; -}; - -/** - * Used to specify the le audio capabilities for unicast and broadcast hardware offload. - */ -struct LeAudioCodecCapabilitiesSetting{ - UnicastCapability unicastEncodeCapability; - UnicastCapability unicastDecodeCapability; - BroadcastCapability broadcastCapability; -}; - -/** - * Used to specify the le audio unicast codec capabilities for hardware offload. - */ -struct UnicastCapability { - CodecType codecType; - AudioLocation supportedChannel; - - // The number of connected device - uint8_t deviceCount; - - // Supported channel count for each device - uint8_t channelCountPerDevice; - - // Should use safe union when there is more than one codec - Lc3Parameters capabilities; -}; - -/** - * Used to specify the le audio broadcast codec capabilities for hardware offload. - */ -struct BroadcastCapability { - CodecType codecType; - AudioLocation supportedChannel; - - // Supported channel count for each stream - uint8_t channelCountPerStream; - - // Should use safe union when there is more than one codec - vec<Lc3Parameters> capabilities; -}; diff --git a/compatibility_matrices/compatibility_matrix.current.xml b/compatibility_matrices/compatibility_matrix.current.xml index 18ff1fb1dc..6171620520 100644 --- a/compatibility_matrices/compatibility_matrix.current.xml +++ b/compatibility_matrices/compatibility_matrix.current.xml @@ -142,7 +142,7 @@ </hal> <hal format="hidl" optional="true"> <name>android.hardware.bluetooth.audio</name> - <version>2.0-2</version> + <version>2.0-1</version> <interface> <name>IBluetoothAudioProvidersFactory</name> <instance>default</instance> |