5f0e90ece7
Add the ability to get a list of supported codecs and their capabilites through the HIDL interface. Bug: 111519504 Test: Compile Change-Id: I61dff240a98d59cb99b526d8988d0d0245140ee4
71 lines
2.8 KiB
Text
71 lines
2.8 KiB
Text
/*
|
|
* 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.
|
|
*/
|
|
|
|
package android.hardware.bluetooth.audio@2.0;
|
|
|
|
import IBluetoothAudioProvider;
|
|
|
|
/**
|
|
* 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 {
|
|
|
|
/**
|
|
* 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.
|
|
* A2DP_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(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(SessionType sessionType)
|
|
generates (vec<AudioCapabilities> audioCapabilities);
|
|
};
|