1/* 2 * Copyright (c) 2023 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16package ohos.hdi.distributed_audio.audio.v1_0; 17 18import ohos.hdi.distributed_audio.audio.v1_0.AudioTypes; 19import ohos.hdi.distributed_audio.audio.v1_0.IAudioCapture; 20import ohos.hdi.distributed_audio.audio.v1_0.IAudioRender; 21import ohos.hdi.distributed_audio.audio.v1_0.IAudioCallback; 22 23/** 24 * @brief Provides audio adapter capabilities, including initializing ports, creating rendering and capturing tasks, 25 * and obtaining the port capability set. 26 * 27 * @see IAudioRender 28 * @see IAudioCapture 29 * @since 4.1 30 * @version 1.0 31 */ 32interface IAudioAdapter { 33 InitAllPorts(); 34 CreateRender([in] struct AudioDeviceDescriptor desc, [in] struct AudioSampleAttributes attrs, 35 [out] IAudioRender render, [out] unsigned int renderId); 36 DestroyRender([in] unsigned int renderId); 37 CreateCapture([in] struct AudioDeviceDescriptor desc, [in] struct AudioSampleAttributes attrs, 38 [out] IAudioCapture capture, [out] unsigned int captureId); 39 DestroyCapture([in] unsigned int captureId); 40 GetPortCapability([in] struct AudioPort port, [out] struct AudioPortCapability capability); 41 SetPassthroughMode([in] struct AudioPort port, [in] enum AudioPortPassthroughMode mode); 42 GetPassthroughMode([in] struct AudioPort port, [out] enum AudioPortPassthroughMode mode); 43 GetDeviceStatus([out] struct AudioDeviceStatus status); 44 UpdateAudioRoute([in] struct AudioRoute route, [out] int routeHandle); 45 ReleaseAudioRoute([in] int routeHandle); 46 SetMicMute([in] boolean mute); 47 GetMicMute([out] boolean mute); 48 SetVoiceVolume([in] float volume); 49 SetExtraParams([in] enum AudioExtParamKey key, [in] String condition, [in] String value); 50 GetExtraParams([in] enum AudioExtParamKey key, [in] String condition, [out] String value); 51 RegExtraParamObserver([in] IAudioCallback audioCallback, [in] byte cookie); 52}