/* * Copyright 2020 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.1; import @2.0::IBluetoothAudioProvider; import @2.0::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.0::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_1(IBluetoothAudioPort hostIf, AudioConfiguration audioConfig) generates (Status status, fmq_sync dataMQ); };