/* * 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; /** * @brief Provides capabilities for audio capturing, including controlling the capturing, setting audio attributes, * scenes, and volume, and capturing audio frames. * @since 4.1 * @version 1.0 */ interface IAudioCapture { CaptureFrame([out] byte[] frame, [out] unsigned long replyBytes); GetCapturePosition([out] unsigned long frames, [out] struct AudioTimeStamp time); CheckSceneCapability([in] struct AudioSceneDescriptor scene, [out] boolean supported); SelectScene([in] struct AudioSceneDescriptor scene); SetMute([in] boolean mute); GetMute([out] boolean mute); SetVolume([in] float volume); GetVolume([out] float volume); GetGainThreshold([out] float min, [out] float max); GetGain([out] float gain); SetGain([in] float gain); GetFrameSize([out] unsigned long size); GetFrameCount([out] unsigned long count); SetSampleAttributes([in] struct AudioSampleAttributes attrs); GetSampleAttributes([out] struct AudioSampleAttributes attrs); GetCurrentChannelId([out] unsigned int channelId); SetExtraParams([in] String keyValueList); GetExtraParams([out] String keyValueList); ReqMmapBuffer([in] int reqSize, [out] struct AudioMmapBufferDescriptor desc); GetMmapPosition([out] unsigned long frames, [out] struct AudioTimeStamp time); AddAudioEffect([in] unsigned long effectid); RemoveAudioEffect([in] unsigned long effectid); GetFrameBufferSize([out] unsigned long bufferSize); Start(); Stop(); Pause(); Resume(); Flush(); TurnStandbyMode(); AudioDevDump([in] int range, [in] int fd); IsSupportsPauseAndResume([out] boolean supportPause, [out] boolean supportResume); }