/* * Copyright (c) 2023 Huawei Device Co., Ltd. * 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 ohos.hdi.distributed_audio.audio.v1_0; import ohos.hdi.distributed_audio.audio.v1_0.AudioTypes; import ohos.hdi.distributed_audio.audio.v1_0.IAudioCapture; import ohos.hdi.distributed_audio.audio.v1_0.IAudioRender; import ohos.hdi.distributed_audio.audio.v1_0.IAudioCallback; /** * @brief Provides audio adapter capabilities, including initializing ports, creating rendering and capturing tasks, * and obtaining the port capability set. * * @see IAudioRender * @see IAudioCapture * @since 4.1 * @version 1.0 */ interface IAudioAdapter { InitAllPorts(); CreateRender([in] struct AudioDeviceDescriptor desc, [in] struct AudioSampleAttributes attrs, [out] IAudioRender render, [out] unsigned int renderId); DestroyRender([in] unsigned int renderId); CreateCapture([in] struct AudioDeviceDescriptor desc, [in] struct AudioSampleAttributes attrs, [out] IAudioCapture capture, [out] unsigned int captureId); DestroyCapture([in] unsigned int captureId); GetPortCapability([in] struct AudioPort port, [out] struct AudioPortCapability capability); SetPassthroughMode([in] struct AudioPort port, [in] enum AudioPortPassthroughMode mode); GetPassthroughMode([in] struct AudioPort port, [out] enum AudioPortPassthroughMode mode); GetDeviceStatus([out] struct AudioDeviceStatus status); UpdateAudioRoute([in] struct AudioRoute route, [out] int routeHandle); ReleaseAudioRoute([in] int routeHandle); SetMicMute([in] boolean mute); GetMicMute([out] boolean mute); SetVoiceVolume([in] float volume); SetExtraParams([in] enum AudioExtParamKey key, [in] String condition, [in] String value); GetExtraParams([in] enum AudioExtParamKey key, [in] String condition, [out] String value); RegExtraParamObserver([in] IAudioCallback audioCallback, [in] byte cookie); }