1 2 /* 3 * Copyright (C) 2025 Huawei Device Co., Ltd. 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 #ifndef MOCK_AUDIO_RENDERER_H 17 #define MOCK_AUDIO_RENDERER_H 18 19 #include <cstring> 20 #include "gtest/gtest.h" 21 #include "gmock/gmock.h" 22 23 #include "audio_info.h" 24 #include "audio_renderer.h" 25 #include "audio_effect.h" 26 #include "audio_stream_info.h" 27 #include "audio_interrupt_info.h" 28 29 namespace OHOS { 30 namespace Media { 31 class MockAudioRenderer : public AudioStandard::AudioRenderer { 32 public: 33 MockAudioRenderer() = default; 34 virtual ~MockAudioRenderer() = default; 35 36 MOCK_METHOD(void, SetAudioPrivacyType, (AudioStandard::AudioPrivacyType), (override)); 37 MOCK_METHOD(AudioStandard::AudioPrivacyType, GetAudioPrivacyType, (), (override)); 38 MOCK_METHOD(int32_t, SetParams, (const AudioStandard::AudioRendererParams), (override)); 39 MOCK_METHOD(int32_t, SetRendererCallback, 40 (const std::shared_ptr<AudioStandard::AudioRendererCallback> &), (override)); 41 MOCK_METHOD(int32_t, GetParams, (AudioStandard::AudioRendererParams &), (const, override)); 42 MOCK_METHOD(int32_t, GetRendererInfo, (AudioStandard::AudioRendererInfo &), (const, override)); 43 MOCK_METHOD(int32_t, GetStreamInfo, (AudioStandard::AudioStreamInfo &), (const, override)); 44 MOCK_METHOD(bool, Start, (AudioStandard::StateChangeCmdType), (override)); 45 MOCK_METHOD(int32_t, Write, (uint8_t *, size_t), (override)); 46 MOCK_METHOD(int32_t, Write, (uint8_t *, size_t, uint8_t *, size_t), (override)); 47 MOCK_METHOD(AudioStandard::RendererState, GetStatus, (), (const, override)); 48 MOCK_METHOD(bool, GetAudioTime, 49 (AudioStandard::Timestamp &, AudioStandard::Timestamp::Timestampbase), (const, override)); 50 MOCK_METHOD(bool, GetAudioPosition, 51 (AudioStandard::Timestamp &, AudioStandard::Timestamp::Timestampbase), (override)); 52 MOCK_METHOD(int32_t, GetLatency, (uint64_t &), (const, override)); 53 MOCK_METHOD(bool, Drain, (), (const, override)); 54 MOCK_METHOD(bool, Flush, (), (const, override)); 55 MOCK_METHOD(bool, PauseTransitent, (AudioStandard::StateChangeCmdType), (override)); 56 MOCK_METHOD(bool, Pause, (AudioStandard::StateChangeCmdType), (override)); 57 MOCK_METHOD(bool, Stop, (), (override)); 58 MOCK_METHOD(bool, Release, (), (override)); 59 MOCK_METHOD(int32_t, GetBufferSize, (size_t &), (const, override)); 60 MOCK_METHOD(int32_t, GetAudioStreamId, (uint32_t &), (const, override)); 61 MOCK_METHOD(int32_t, GetFrameCount, (uint32_t &), (const, override)); 62 MOCK_METHOD(int32_t, SetAudioRendererDesc, (AudioStandard::AudioRendererDesc), (override)); 63 MOCK_METHOD(int32_t, SetStreamType, (AudioStandard::AudioStreamType), (override)); 64 MOCK_METHOD(int32_t, SetVolume, (float), (const, override)); 65 MOCK_METHOD(float, GetVolume, (), (const, override)); 66 MOCK_METHOD(int32_t, SetRenderRate, (AudioStandard::AudioRendererRate), (const, override)); 67 MOCK_METHOD(AudioStandard::AudioRendererRate, GetRenderRate, (), (const, override)); 68 MOCK_METHOD(int32_t, SetRendererSamplingRate, (uint32_t), (const, override)); 69 MOCK_METHOD(uint32_t, GetRendererSamplingRate, (), (const, override)); 70 MOCK_METHOD(int32_t, SetRendererPositionCallback, 71 (int64_t, const std::shared_ptr<AudioStandard::RendererPositionCallback> &), (override)); 72 MOCK_METHOD(void, UnsetRendererPositionCallback, (), (override)); 73 MOCK_METHOD(int32_t, SetRendererPeriodPositionCallback, 74 (int64_t, const std::shared_ptr<AudioStandard::RendererPeriodPositionCallback> &), (override)); 75 MOCK_METHOD(void, UnsetRendererPeriodPositionCallback, (), (override)); 76 MOCK_METHOD(int32_t, SetBufferDuration, (uint64_t), (const, override)); 77 MOCK_METHOD(int32_t, SetRenderMode, (AudioStandard::AudioRenderMode), (override)); 78 MOCK_METHOD(AudioStandard::AudioRenderMode, GetRenderMode, (), (const, override)); 79 MOCK_METHOD(int32_t, SetRendererWriteCallback, 80 (const std::shared_ptr<AudioStandard::AudioRendererWriteCallback> &), (override)); 81 MOCK_METHOD(int32_t, SetRendererFirstFrameWritingCallback, 82 (const std::shared_ptr<AudioStandard::AudioRendererFirstFrameWritingCallback> &), (override)); 83 MOCK_METHOD(int32_t, GetBufferDesc, (AudioStandard::BufferDesc &), (override)); 84 MOCK_METHOD(int32_t, Enqueue, (const AudioStandard::BufferDesc &), (override)); 85 MOCK_METHOD(int32_t, Clear, (), (const, override)); 86 MOCK_METHOD(int32_t, GetBufQueueState, (AudioStandard::BufferQueueState &), (const, override)); 87 MOCK_METHOD(void, SetInterruptMode, (AudioStandard::InterruptMode), (override)); 88 MOCK_METHOD(int32_t, SetParallelPlayFlag, (bool), (override)); 89 MOCK_METHOD(int32_t, SetLowPowerVolume, (float), (const, override)); 90 MOCK_METHOD(float, GetLowPowerVolume, (), (const, override)); 91 MOCK_METHOD(int32_t, SetOffloadAllowed, (bool), (override)); 92 MOCK_METHOD(int32_t, SetOffloadMode, (int32_t, bool), (const, override)); 93 MOCK_METHOD(int32_t, UnsetOffloadMode, (), (const, override)); 94 MOCK_METHOD(float, GetSingleStreamVolume, (), (const, override)); 95 MOCK_METHOD(float, GetMinStreamVolume, (), (const, override)); 96 MOCK_METHOD(float, GetMaxStreamVolume, (), (const, override)); 97 MOCK_METHOD(uint32_t, GetUnderflowCount, (), (const, override)); 98 MOCK_METHOD(int32_t, GetCurrentOutputDevices, (AudioStandard::AudioDeviceDescriptor &), (const, override)); 99 MOCK_METHOD(AudioStandard::AudioEffectMode, GetAudioEffectMode, (), (const, override)); 100 MOCK_METHOD(int64_t, GetFramesWritten, (), (const, override)); 101 MOCK_METHOD(int32_t, SetAudioEffectMode, (AudioStandard::AudioEffectMode), (const, override)); 102 MOCK_METHOD(void, SetAudioRendererErrorCallback, 103 (std::shared_ptr<AudioStandard::AudioRendererErrorCallback>), (override)); 104 MOCK_METHOD(int32_t, RegisterOutputDeviceChangeWithInfoCallback, 105 (const std::shared_ptr<AudioStandard::AudioRendererOutputDeviceChangeCallback> &), (override)); 106 MOCK_METHOD(int32_t, UnregisterOutputDeviceChangeWithInfoCallback, (), (override)); 107 MOCK_METHOD(int32_t, UnregisterOutputDeviceChangeWithInfoCallback, 108 (const std::shared_ptr<AudioStandard::AudioRendererOutputDeviceChangeCallback> &), (override)); 109 MOCK_METHOD(int32_t, RegisterAudioPolicyServerDiedCb, 110 (const int32_t, const std::shared_ptr<AudioStandard::AudioRendererPolicyServiceDiedCallback> &), (override)); 111 MOCK_METHOD(int32_t, UnregisterAudioPolicyServerDiedCb, (const int32_t), (override)); 112 MOCK_METHOD(int32_t, SetChannelBlendMode, (AudioStandard::ChannelBlendMode), (override)); 113 MOCK_METHOD(int32_t, SetVolumeWithRamp, (float, int32_t), (override)); 114 MOCK_METHOD(void, SetPreferredFrameSize, (int32_t), (override)); 115 MOCK_METHOD(int32_t, SetSpeed, (float), (override)); 116 MOCK_METHOD(float, GetSpeed, (), (override)); 117 MOCK_METHOD(bool, IsFastRenderer, (), (override)); 118 MOCK_METHOD(void, SetSilentModeAndMixWithOthers, (bool), (override)); 119 MOCK_METHOD(bool, GetSilentModeAndMixWithOthers, (), (override)); 120 MOCK_METHOD(void, EnableVoiceModemCommunicationStartStream, (bool), (override)); 121 MOCK_METHOD(bool, IsNoStreamRenderer, (), (const, override)); 122 MOCK_METHOD(int32_t, SetDefaultOutputDevice, (AudioStandard::DeviceType), (override)); 123 MOCK_METHOD(bool, Mute, (AudioStandard::StateChangeCmdType), (const, override)); 124 MOCK_METHOD(bool, Unmute, (AudioStandard::StateChangeCmdType), (const, override)); 125 MOCK_METHOD(int32_t, GetAudioTimestampInfo, 126 (AudioStandard::Timestamp &, AudioStandard::Timestamp::Timestampbase), (const, override)); 127 MOCK_METHOD(void, SetFastStatusChangeCallback, 128 (const std::shared_ptr<AudioStandard::AudioRendererFastStatusChangeCallback> &), (override)); 129 }; 130 } // namespace Media 131 } // namespace OHOS 132 #endif // MOCK_AUDIO_RENDERER_H 133