/* * 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. */ /** * @addtogroup HdiAudio * * @brief Provides unified APIs for audio services to access audio drivers. * * An audio service can obtain an audio driver object or agent and then call APIs provided by this object or agent to * access different types of audio devices based on the audio IDs, thereby obtaining audio information, * subscribing to or unsubscribing from audio data, enabling or disabling an audio, * setting the audio data reporting mode, and setting audio options such as the accuracy and measurement range. * * @since 4.1 * @version 2.0 */ package ohos.hdi.audio.v2_0; import ohos.hdi.audio.v2_0.AudioTypes; /** * @brief Called when an event defined in {@link AudioCallbackType} occurs. * * @param AudioCallbackType Indicates the occurred event that triggers this callback. * @param reserved Indicates the pointer to a reserved field. * @param cookie Indicates the pointer to the cookie for data transmission. * @return Returns 0 if the callback is successfully executed; returns a negative value otherwise. * @see RegCallback */ [callback] interface IAudioCallback { /** * @brief Called when an event defined in {@link AudioCallbackType} occurs. * * @param AudioCallbackType Indicates the occurred event that triggers this callback. * @param reserved Indicates the pointer to a reserved field. * @param cookie Indicates the pointer to the cookie for data transmission. * @return Returns 0 if the callback is successfully executed; returns a negative value otherwise. * @see RegCallback */ RenderCallback([in] enum AudioCallbackType type, [out] byte reserved, [out] byte cookie); /** * @brief Register audio extra param callback that will be invoked during audio param event. * * @param key Indicates param change event. * @param condition Indicates the param condition. * @param value Indicates the param value. * @param reserved Indicates reserved param. * @param cookie Indicates the pointer to the callback parameters; * @return Returns 0 if the operation is successful; returns a negative value otherwise. */ ParamCallback([in] enum AudioExtParamKey key, [in] String condition, [in] String value, [out] byte reserved, [in] byte cookie); }