fcc0732db4
Generalized Bluetooth Audio HAL interface. It is similar to the original android.hardware.bluetooth.a2dp@1.0 interface with the following modifications: * The session type can be one of the following: - A2DP Software Encoding Datapath - A2DP Hardware Encoding Datapath - Hearing Aid Software Encoding Datapath * For Hardware Offload Datapath (A2DP), the HAL interface is used only for the control path * For Software Encoding Datapath (A2DP or Hearing Aid), the HAL interface is used for both the control and data paths * Added Delay Report support: IBluetoothAudioHost.getPresentationPosition() that was missing in the original android.hardware.bluetooth.a2dp@1.0 HAL interface. * Removed "oneway" calls to avoid potential reordering of HAL calls: b/111244402 * Updated SBC-specific codec configuration * Added AAC-specific and LDAC-specific codec configuration * Reorganized the original CodecConfiguration into two sections: - PcmDataConfiguration: Audio PCM data configuration - EncodedDataConfiguration: Encoded audio data codec configuration. It is used only if the HAL is responsible for encoding the PCM audio data. * Added new HAL IBluetoothAudioProvidersFactory. It is used to open an audio provider for an audio session as specified by the session type and the codec configuration as negotiated with the remote device. Bug: 111519504 Test: manual Change-Id: I2ee4cf50b177baee077cf0b5143dbeadda57c8fb
46 lines
1.6 KiB
Text
46 lines
1.6 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().
|
|
*/
|
|
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);
|
|
};
|