/// Generated by terra, DO NOT MODIFY BY HAND.

#ifndef FAKE_IMEDIAENGINE_INTERNAL_H_
#define FAKE_IMEDIAENGINE_INTERNAL_H_

#include "IAgoraMediaEngine.h"

namespace agora {
namespace media {
class FakeIMediaEngineInternal : public agora::media::IMediaEngine {
  virtual int registerAudioFrameObserver(
      agora::media::IAudioFrameObserver *observer) override {
    return 0;
  }

  virtual int registerVideoFrameObserver(
      agora::media::IVideoFrameObserver *observer) override {
    return 0;
  }

  virtual int registerVideoEncodedFrameObserver(
      agora::media::IVideoEncodedFrameObserver *observer) override {
    return 0;
  }

  virtual int pushAudioFrame(agora::media::MEDIA_SOURCE_TYPE type,
                             IAudioFrameObserver::AudioFrame *frame, bool wrap,
                             int sourceId) override {
    return 0;
  }

  virtual int
  pushCaptureAudioFrame(IAudioFrameObserver::AudioFrame *frame) override {
    return 0;
  }

  virtual int
  pushReverseAudioFrame(IAudioFrameObserver::AudioFrame *frame) override {
    return 0;
  }

  virtual int
  pushDirectAudioFrame(IAudioFrameObserver::AudioFrame *frame) override {
    return 0;
  }

  virtual int pullAudioFrame(IAudioFrameObserver::AudioFrame *frame) override {
    return 0;
  }

  virtual int
  setExternalVideoSource(bool enabled, bool useTexture,
                         agora::media::EXTERNAL_VIDEO_SOURCE_TYPE sourceType,
                         rtc::SenderOptions encodedVideoOption) override {
    return 0;
  }

  virtual int setExternalAudioSource(bool enabled, int sampleRate, int channels,
                                     int sourceNumber, bool localPlayback,
                                     bool publish) override {
    return 0;
  }

  virtual int setExternalAudioSink(bool enabled, int sampleRate,
                                   int channels) override {
    return 0;
  }

  virtual int enableCustomAudioLocalPlayback(int sourceId,
                                             bool enabled) override {
    return 0;
  }

  virtual int setDirectExternalAudioSource(bool enable,
                                           bool localPlayback) override {
    return 0;
  }

  virtual int pushVideoFrame(base::ExternalVideoFrame *frame,
                             unsigned int videoTrackId) override {
    return 0;
  }

  virtual int pushEncodedVideoImage(
      uint8_t const *imageBuffer, size_t length,
      agora::rtc::EncodedVideoFrameInfo const &videoEncodedFrameInfo,
      unsigned int videoTrackId) override {
    return 0;
  }

  virtual void release() override {}
};

} // namespace media
} // namespace agora

#endif // FAKE_IMEDIAENGINE_INTERNAL_H_
