/* * Copyright (C) 2022 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.audio@7.1; import android.hardware.audio.common@7.0; import @7.0::AudioInOutFlag; import @7.0::IDevice; import @7.0::Result; import IStreamOut; interface IDevice extends @7.0::IDevice { /** * This method creates and opens the audio hardware output stream. * If the stream can not be opened with the proposed audio config, * HAL must provide suggested values for the audio config. * * Note: INVALID_ARGUMENTS is returned both in the case when the * HAL can not use the provided config and in the case when * the value of any argument is invalid. In the latter case the * HAL must provide a default initialized suggested config. * * @param ioHandle handle assigned by AudioFlinger. * @param device device type and (if needed) address. * @param config stream configuration. * @param flags additional flags. * @param sourceMetadata Description of the audio that will be played. May be used by implementations to configure hardware effects. * @return retval operation completion status. * @return outStream created output stream. * @return suggestedConfig in the case of rejection of the proposed config, * a config suggested by the HAL. */ openOutputStream_7_1( AudioIoHandle ioHandle, DeviceAddress device, AudioConfig config, vec flags, SourceMetadata sourceMetadata) generates ( Result retval, IStreamOut outStream, AudioConfig suggestedConfig); /** * Notifies the device module about the connection state of an input/output * device attached to it. The devicePort identifies the device and may also * provide extra information such as raw audio descriptors. * * @param devicePort audio device port. * @param connected whether the device is connected. * @return retval operation completion status. */ setConnectedState_7_1(AudioPort devicePort, bool connected) generates (Result retval); };