• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2025 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 
16 #ifndef SHARED_AUDIO_RENDERER_WRAPPER_H
17 #define SHARED_AUDIO_RENDERER_WRAPPER_H
18 
19 #include "audio_renderer.h"
20 #include "audio_errors.h"
21 #include "audio_renderer_log.h"
22 
23 namespace OHOS {
24 namespace AudioStandard {
25 class SharedAudioRendererWrapper : public AudioRenderer {
26 public:
SetAudioPrivacyType(AudioPrivacyType privacyType)27     void SetAudioPrivacyType(AudioPrivacyType privacyType) override
28     {
29         sharedAudioRenderer_->SetAudioPrivacyType(privacyType);
30     }
31 
GetAudioPrivacyType()32     AudioPrivacyType GetAudioPrivacyType() override
33     {
34         return sharedAudioRenderer_->GetAudioPrivacyType();
35     }
36 
SetParams(const AudioRendererParams params)37     int32_t SetParams(const AudioRendererParams params) override
38     {
39         return sharedAudioRenderer_->SetParams(params);
40     }
41 
SetRendererCallback(const std::shared_ptr<AudioRendererCallback> & callback)42     int32_t SetRendererCallback(const std::shared_ptr<AudioRendererCallback> &callback) override
43     {
44         return sharedAudioRenderer_->SetRendererCallback(callback);
45     }
46 
GetParams(AudioRendererParams & params)47     int32_t GetParams(AudioRendererParams &params) const override
48     {
49         return sharedAudioRenderer_->GetParams(params);
50     }
51 
GetRendererInfo(AudioRendererInfo & rendererInfo)52     int32_t GetRendererInfo(AudioRendererInfo &rendererInfo) const override
53     {
54         return sharedAudioRenderer_->GetRendererInfo(rendererInfo);
55     }
56 
GetStreamInfo(AudioStreamInfo & streamInfo)57     int32_t GetStreamInfo(AudioStreamInfo &streamInfo) const override
58     {
59         return sharedAudioRenderer_->GetStreamInfo(streamInfo);
60     }
61 
62     bool Start(StateChangeCmdType cmdType = CMD_FROM_CLIENT) override
63     {
64         return sharedAudioRenderer_->Start(cmdType);
65     }
66 
Write(uint8_t * buffer,size_t bufferSize)67     int32_t Write(uint8_t *buffer, size_t bufferSize) override
68     {
69         return sharedAudioRenderer_->Write(buffer, bufferSize);
70     }
71 
Write(uint8_t * pcmBuffer,size_t pcmBufferSize,uint8_t * metaBuffer,size_t metaBufferSize)72     int32_t Write(uint8_t *pcmBuffer, size_t pcmBufferSize, uint8_t *metaBuffer, size_t metaBufferSize) override
73     {
74         return sharedAudioRenderer_->Write(pcmBuffer, pcmBufferSize, metaBuffer, metaBufferSize);
75     }
76 
GetStatus()77     RendererState GetStatus() const override
78     {
79         return sharedAudioRenderer_->GetStatus();
80     }
81 
GetAudioTime(Timestamp & timestamp,Timestamp::Timestampbase base)82     bool GetAudioTime(Timestamp &timestamp, Timestamp::Timestampbase base) const override
83     {
84         return sharedAudioRenderer_->GetAudioTime(timestamp, base);
85     }
86 
GetAudioPosition(Timestamp & timestamp,Timestamp::Timestampbase base)87     bool GetAudioPosition(Timestamp &timestamp, Timestamp::Timestampbase base) override
88     {
89         return sharedAudioRenderer_->GetAudioPosition(timestamp, base);
90     }
91 
GetLatency(uint64_t & latency)92     int32_t GetLatency(uint64_t &latency) const override
93     {
94         return sharedAudioRenderer_->GetLatency(latency);
95     }
96 
Drain()97     bool Drain() const override
98     {
99         return sharedAudioRenderer_->Drain();
100     }
101 
Flush()102     bool Flush() const override
103     {
104         return sharedAudioRenderer_->Flush();
105     }
106 
107     bool PauseTransitent(StateChangeCmdType cmdType = CMD_FROM_CLIENT) override
108     {
109         return sharedAudioRenderer_->PauseTransitent(cmdType);
110     }
111 
112     bool Pause(StateChangeCmdType cmdType = CMD_FROM_CLIENT) override
113     {
114         return sharedAudioRenderer_->Pause(cmdType);
115     }
116 
Stop()117     bool Stop() override
118     {
119         return sharedAudioRenderer_->Stop();
120     }
121 
Release()122     bool Release() override
123     {
124         return sharedAudioRenderer_->Release();
125     }
126 
GetBufferSize(size_t & bufferSize)127     int32_t GetBufferSize(size_t &bufferSize) const override
128     {
129         return sharedAudioRenderer_->GetBufferSize(bufferSize);
130     }
131 
GetAudioStreamId(uint32_t & sessionID)132     int32_t GetAudioStreamId(uint32_t &sessionID) const override
133     {
134         return sharedAudioRenderer_->GetAudioStreamId(sessionID);
135     }
136 
GetFrameCount(uint32_t & frameCount)137     int32_t GetFrameCount(uint32_t &frameCount) const override
138     {
139         return sharedAudioRenderer_->GetFrameCount(frameCount);
140     }
141 
SetAudioRendererDesc(AudioRendererDesc audioRendererDesc)142     int32_t SetAudioRendererDesc(AudioRendererDesc audioRendererDesc) override
143     {
144         return sharedAudioRenderer_->SetAudioRendererDesc(audioRendererDesc);
145     }
146 
SetStreamType(AudioStreamType audioStreamType)147     int32_t SetStreamType(AudioStreamType audioStreamType) override
148     {
149         return sharedAudioRenderer_->SetStreamType(audioStreamType);
150     }
151 
SetVolume(float volume)152     int32_t SetVolume(float volume) const override
153     {
154         return sharedAudioRenderer_->SetVolume(volume);
155     }
156 
GetVolume()157     float GetVolume() const override
158     {
159         return sharedAudioRenderer_->GetVolume();
160     }
161 
SetLoudnessGain(float loudnessGain)162     int32_t SetLoudnessGain(float loudnessGain) const override
163     {
164         return sharedAudioRenderer_->SetLoudnessGain(loudnessGain);
165     }
166 
GetLoudnessGain()167     float GetLoudnessGain() const override
168     {
169         return sharedAudioRenderer_->GetLoudnessGain();
170     }
171 
SetRenderRate(AudioRendererRate renderRate)172     int32_t SetRenderRate(AudioRendererRate renderRate) const override
173     {
174         return sharedAudioRenderer_->SetRenderRate(renderRate);
175     }
176 
GetRenderRate()177     AudioRendererRate GetRenderRate() const override
178     {
179         return sharedAudioRenderer_->GetRenderRate();
180     }
181 
SetRendererSamplingRate(uint32_t sampleRate)182     int32_t SetRendererSamplingRate(uint32_t sampleRate) const override
183     {
184         return sharedAudioRenderer_->SetRendererSamplingRate(sampleRate);
185     }
186 
GetRendererSamplingRate()187     uint32_t GetRendererSamplingRate() const override
188     {
189         return sharedAudioRenderer_->GetRendererSamplingRate();
190     }
191 
SetRendererPositionCallback(int64_t markPosition,const std::shared_ptr<RendererPositionCallback> & callback)192     int32_t SetRendererPositionCallback(int64_t markPosition,
193         const std::shared_ptr<RendererPositionCallback> &callback) override
194     {
195         return sharedAudioRenderer_->SetRendererPositionCallback(markPosition, callback);
196     }
197 
UnsetRendererPositionCallback()198     void UnsetRendererPositionCallback() override
199     {
200         sharedAudioRenderer_->UnsetRendererPositionCallback();
201     }
202 
SetRendererPeriodPositionCallback(int64_t frameNumber,const std::shared_ptr<RendererPeriodPositionCallback> & callback)203     int32_t SetRendererPeriodPositionCallback(int64_t frameNumber,
204         const std::shared_ptr<RendererPeriodPositionCallback> &callback) override
205     {
206         return sharedAudioRenderer_->SetRendererPeriodPositionCallback(frameNumber, callback);
207     }
208 
UnsetRendererPeriodPositionCallback()209     void UnsetRendererPeriodPositionCallback() override
210     {
211         sharedAudioRenderer_->UnsetRendererPeriodPositionCallback();
212     }
213 
SetFastStatusChangeCallback(const std::shared_ptr<AudioRendererFastStatusChangeCallback> & callback)214     void SetFastStatusChangeCallback(
215         const std::shared_ptr<AudioRendererFastStatusChangeCallback> &callback) override
216     {
217         return;
218     }
219 
SetBufferDuration(uint64_t bufferDuration)220     int32_t SetBufferDuration(uint64_t bufferDuration) const override
221     {
222         return sharedAudioRenderer_->SetBufferDuration(bufferDuration);
223     }
224 
SetRenderMode(AudioRenderMode renderMode)225     int32_t SetRenderMode(AudioRenderMode renderMode) override
226     {
227         return sharedAudioRenderer_->SetRenderMode(renderMode);
228     }
229 
GetRenderMode()230     AudioRenderMode GetRenderMode() const override
231     {
232         return sharedAudioRenderer_->GetRenderMode();
233     }
234 
SetRendererWriteCallback(const std::shared_ptr<AudioRendererWriteCallback> & callback)235     int32_t SetRendererWriteCallback(const std::shared_ptr<AudioRendererWriteCallback> &callback) override
236     {
237         return sharedAudioRenderer_->SetRendererWriteCallback(callback);
238     }
239 
SetRendererFirstFrameWritingCallback(const std::shared_ptr<AudioRendererFirstFrameWritingCallback> & callback)240     int32_t SetRendererFirstFrameWritingCallback(
241         const std::shared_ptr<AudioRendererFirstFrameWritingCallback> &callback) override
242     {
243         return sharedAudioRenderer_->SetRendererFirstFrameWritingCallback(callback);
244     }
245 
GetBufferDesc(BufferDesc & bufDesc)246     int32_t GetBufferDesc(BufferDesc &bufDesc) override
247     {
248         return sharedAudioRenderer_->GetBufferDesc(bufDesc);
249     }
250 
Enqueue(const BufferDesc & bufDesc)251     int32_t Enqueue(const BufferDesc &bufDesc) override
252     {
253         return sharedAudioRenderer_->Enqueue(bufDesc);
254     }
255 
Clear()256     int32_t Clear() const override
257     {
258         return sharedAudioRenderer_->Clear();
259     }
260 
GetBufQueueState(BufferQueueState & bufState)261     int32_t GetBufQueueState(BufferQueueState &bufState) const override
262     {
263         return sharedAudioRenderer_->GetBufQueueState(bufState);
264     }
265 
SetInterruptMode(InterruptMode mode)266     void SetInterruptMode(InterruptMode mode) override
267     {
268         sharedAudioRenderer_->SetInterruptMode(mode);
269     }
270 
SetParallelPlayFlag(bool parallelPlayFlag)271     int32_t SetParallelPlayFlag(bool parallelPlayFlag) override
272     {
273         return sharedAudioRenderer_->SetParallelPlayFlag(parallelPlayFlag);
274     }
275 
SetLowPowerVolume(float volume)276     int32_t SetLowPowerVolume(float volume) const override
277     {
278         return sharedAudioRenderer_->SetLowPowerVolume(volume);
279     }
280 
GetLowPowerVolume()281     float GetLowPowerVolume() const override
282     {
283         return sharedAudioRenderer_->GetLowPowerVolume();
284     }
285 
286     // in plan:need remove
SetOffloadAllowed(bool isAllowed)287     int32_t SetOffloadAllowed(bool isAllowed) override
288     {
289         return sharedAudioRenderer_->SetOffloadAllowed(isAllowed);
290     }
291 
SetOffloadMode(int32_t state,bool isAppBack)292     int32_t SetOffloadMode(int32_t state, bool isAppBack) const override
293     {
294         return sharedAudioRenderer_->SetOffloadMode(state, isAppBack);
295     }
296 
UnsetOffloadMode()297     int32_t UnsetOffloadMode() const override
298     {
299         return sharedAudioRenderer_->UnsetOffloadMode();
300     }
301 
GetSingleStreamVolume()302     float GetSingleStreamVolume() const override
303     {
304         return sharedAudioRenderer_->GetSingleStreamVolume();
305     }
306 
GetMinStreamVolume()307     float GetMinStreamVolume() const override
308     {
309         return sharedAudioRenderer_->GetMinStreamVolume();
310     }
311 
GetMaxStreamVolume()312     float GetMaxStreamVolume() const override
313     {
314         return sharedAudioRenderer_->GetMaxStreamVolume();
315     }
316 
GetUnderflowCount()317     uint32_t GetUnderflowCount() const override
318     {
319         return sharedAudioRenderer_->GetUnderflowCount();
320     }
321 
GetCurrentOutputDevices(AudioDeviceDescriptor & deviceInfo)322     int32_t GetCurrentOutputDevices(AudioDeviceDescriptor &deviceInfo) const override
323     {
324         return sharedAudioRenderer_->GetCurrentOutputDevices(deviceInfo);
325     }
326 
GetAudioEffectMode()327     AudioEffectMode GetAudioEffectMode() const override
328     {
329         return sharedAudioRenderer_->GetAudioEffectMode();
330     }
331 
GetFramesWritten()332     int64_t GetFramesWritten() const override
333     {
334         return sharedAudioRenderer_->GetFramesWritten();
335     }
336 
SetAudioEffectMode(AudioEffectMode effectMode)337     int32_t SetAudioEffectMode(AudioEffectMode effectMode) const override
338     {
339         return sharedAudioRenderer_->SetAudioEffectMode(effectMode);
340     }
341 
SetAudioRendererErrorCallback(std::shared_ptr<AudioRendererErrorCallback> errorCallback)342     void SetAudioRendererErrorCallback(std::shared_ptr<AudioRendererErrorCallback> errorCallback) override
343     {
344         sharedAudioRenderer_->SetAudioRendererErrorCallback(errorCallback);
345     }
346 
RegisterOutputDeviceChangeWithInfoCallback(const std::shared_ptr<AudioRendererOutputDeviceChangeCallback> & callback)347     int32_t RegisterOutputDeviceChangeWithInfoCallback(
348         const std::shared_ptr<AudioRendererOutputDeviceChangeCallback> &callback) override
349     {
350         return sharedAudioRenderer_->RegisterOutputDeviceChangeWithInfoCallback(callback);
351     }
352 
UnregisterOutputDeviceChangeWithInfoCallback()353     int32_t UnregisterOutputDeviceChangeWithInfoCallback() override
354     {
355         return sharedAudioRenderer_->UnregisterOutputDeviceChangeWithInfoCallback();
356     }
357 
UnregisterOutputDeviceChangeWithInfoCallback(const std::shared_ptr<AudioRendererOutputDeviceChangeCallback> & callback)358     int32_t UnregisterOutputDeviceChangeWithInfoCallback(
359         const std::shared_ptr<AudioRendererOutputDeviceChangeCallback> &callback) override
360     {
361         return sharedAudioRenderer_->UnregisterOutputDeviceChangeWithInfoCallback(callback);
362     }
363 
RegisterAudioPolicyServerDiedCb(const int32_t clientPid,const std::shared_ptr<AudioRendererPolicyServiceDiedCallback> & callback)364     int32_t RegisterAudioPolicyServerDiedCb(const int32_t clientPid,
365         const std::shared_ptr<AudioRendererPolicyServiceDiedCallback> &callback) override
366     {
367         return sharedAudioRenderer_->RegisterAudioPolicyServerDiedCb(clientPid, callback);
368     }
369 
UnregisterAudioPolicyServerDiedCb(const int32_t clientPid)370     int32_t UnregisterAudioPolicyServerDiedCb(const int32_t clientPid) override
371     {
372         return sharedAudioRenderer_->UnregisterAudioPolicyServerDiedCb(clientPid);
373     }
374 
SetChannelBlendMode(ChannelBlendMode blendMode)375     int32_t SetChannelBlendMode(ChannelBlendMode blendMode) override
376     {
377         return sharedAudioRenderer_->SetChannelBlendMode(blendMode);
378     }
379 
SetVolumeWithRamp(float volume,int32_t duration)380     int32_t SetVolumeWithRamp(float volume, int32_t duration) override
381     {
382         return sharedAudioRenderer_->SetVolumeWithRamp(volume, duration);
383     }
384 
SetPreferredFrameSize(int32_t frameSize)385     void SetPreferredFrameSize(int32_t frameSize) override
386     {
387         sharedAudioRenderer_->SetPreferredFrameSize(frameSize);
388     }
389 
SetSpeed(float speed)390     int32_t SetSpeed(float speed) override
391     {
392         return sharedAudioRenderer_->SetSpeed(speed);
393     }
394 
GetSpeed()395     float GetSpeed() override
396     {
397         return sharedAudioRenderer_->GetSpeed();
398     }
399 
IsOffloadEnable()400     bool IsOffloadEnable() override
401     {
402         return sharedAudioRenderer_->IsOffloadEnable();
403     }
404 
IsFastRenderer()405     bool IsFastRenderer() override
406     {
407         return sharedAudioRenderer_->IsFastRenderer();
408     }
409 
SetSilentModeAndMixWithOthers(bool on)410     void SetSilentModeAndMixWithOthers(bool on) override
411     {
412         sharedAudioRenderer_->SetSilentModeAndMixWithOthers(on);
413     }
414 
GetSilentModeAndMixWithOthers()415     bool GetSilentModeAndMixWithOthers() override
416     {
417         return sharedAudioRenderer_->GetSilentModeAndMixWithOthers();
418     }
419 
EnableVoiceModemCommunicationStartStream(bool enable)420     void EnableVoiceModemCommunicationStartStream(bool enable) override
421     {
422         sharedAudioRenderer_->EnableVoiceModemCommunicationStartStream(enable);
423     }
424 
IsNoStreamRenderer()425     bool IsNoStreamRenderer() const override
426     {
427         return sharedAudioRenderer_->IsNoStreamRenderer();
428     }
429 
SetDefaultOutputDevice(DeviceType deviceType)430     int32_t SetDefaultOutputDevice(DeviceType deviceType) override
431     {
432         return sharedAudioRenderer_->SetDefaultOutputDevice(deviceType);
433     }
434 
GetFastStatus()435     FastStatus GetFastStatus() override
436     {
437         return FASTSTATUS_NORMAL;
438     }
439 
440     bool Mute(StateChangeCmdType cmdType = CMD_FROM_CLIENT) const override
441     {
442         return sharedAudioRenderer_->Mute(cmdType);
443     }
444 
445     bool Unmute(StateChangeCmdType cmdType = CMD_FROM_CLIENT) const override
446     {
447         return sharedAudioRenderer_->Unmute(cmdType);
448     }
449 
GetAudioTimestampInfo(Timestamp & timestamp,Timestamp::Timestampbase base)450     int32_t GetAudioTimestampInfo(Timestamp &timestamp, Timestamp::Timestampbase base) const override
451     {
452         return sharedAudioRenderer_->GetAudioTimestampInfo(timestamp, base);
453     }
454 
SetSourceDuration(int64_t duration)455     void SetSourceDuration(int64_t duration) override
456     {
457         return sharedAudioRenderer_->SetSourceDuration(duration);
458     }
459 
StartDataCallback()460     int32_t StartDataCallback() override
461     {
462         return sharedAudioRenderer_->StartDataCallback();
463     }
464 
SetAudioHapticsSyncId(int32_t audioHapticsSyncId)465     void SetAudioHapticsSyncId(int32_t audioHapticsSyncId) override
466     {
467         sharedAudioRenderer_->SetAudioHapticsSyncId(audioHapticsSyncId);
468     }
469 
ResetFirstFrameState()470     void ResetFirstFrameState() override
471     {
472         sharedAudioRenderer_->ResetFirstFrameState();
473     }
474 
StopDataCallback()475     int32_t StopDataCallback() override
476     {
477         return sharedAudioRenderer_->StopDataCallback();
478     }
479 
SetInterruptEventCallbackType(InterruptEventCallbackType callbackType)480     void SetInterruptEventCallbackType(InterruptEventCallbackType callbackType) override
481     {
482         return sharedAudioRenderer_->SetInterruptEventCallbackType(callbackType);
483     }
484 
SharedAudioRendererWrapper(std::shared_ptr<AudioRenderer> renderer)485     explicit SharedAudioRendererWrapper(std::shared_ptr<AudioRenderer> renderer) : sharedAudioRenderer_(renderer)
486     {
487     }
488 
489     ~SharedAudioRendererWrapper() override = default;
490 
491     SharedAudioRendererWrapper(const SharedAudioRendererWrapper &) = delete;
492     SharedAudioRendererWrapper &operator=(const SharedAudioRendererWrapper &) = delete;
493     SharedAudioRendererWrapper(SharedAudioRendererWrapper &&) = delete;
494     SharedAudioRendererWrapper &operator=(SharedAudioRendererWrapper &&) = delete;
495 private:
496     std::shared_ptr<AudioRenderer> sharedAudioRenderer_ = nullptr;
497 };
498 }  // namespace AudioStandard
499 }  // namespace OHOS
500 #endif // SHARED_AUDIO_RENDERER_WRAPPER_H