// media/mojo/mojom/media_metrics_provider.mojom-test-utils.h is auto generated by mojom_bindings_generator.py, do not edit

// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef MEDIA_MOJO_MOJOM_MEDIA_METRICS_PROVIDER_MOJOM_TEST_UTILS_H_
#define MEDIA_MOJO_MOJOM_MEDIA_METRICS_PROVIDER_MOJOM_TEST_UTILS_H_

#include "media/mojo/mojom/media_metrics_provider.mojom.h"


namespace media::mojom {


class  MediaMetricsProviderInterceptorForTesting : public MediaMetricsProvider {
  virtual MediaMetricsProvider* GetForwardingInterface() = 0;
  void Initialize(bool is_mse, MediaURLScheme url_scheme, ::media::mojom::MediaStreamType stream_type) override;
  void OnStarted(const ::media::PipelineStatus& status) override;
  void OnError(const ::media::PipelineStatus& status) override;
  void OnFallback(const ::media::PipelineStatus& status) override;
  void SetHasPlayed() override;
  void SetHaveEnough() override;
  void SetIsEME() override;
  void SetTimeToMetadata(::base::TimeDelta elapsed) override;
  void SetTimeToFirstFrame(::base::TimeDelta elapsed) override;
  void SetTimeToPlayReady(::base::TimeDelta elapsed) override;
  void SetVisibilityRatioAtPlaybackStart(double ratio) override;
  void SetRendererType(::media::RendererType renderer_type) override;
  void SetDemuxerType(::media::DemuxerType demuxer_type) override;
  void SetKeySystem(const std::string& key_system) override;
  void SetHasWaitingForKey() override;
  void SetIsHardwareSecure() override;
  void SetHasTrackChange() override;
  void SetContainerName(::media::container_names::MediaContainerName container_name) override;
  void AcquireWatchTimeRecorder(::media::mojom::PlaybackPropertiesPtr properties, ::mojo::PendingReceiver<::media::mojom::WatchTimeRecorder> recorder) override;
  void AcquireVideoDecodeStatsRecorder(::mojo::PendingReceiver<::media::mojom::VideoDecodeStatsRecorder> recorder) override;
  void AcquirePlaybackEventsRecorder(::mojo::PendingReceiver<::media::mojom::PlaybackEventsRecorder> receiver) override;
  void SetHasAudio(::media::AudioCodec codec) override;
  void SetHasVideo(::media::VideoCodec codec) override;
  void SetVideoPipelineInfo(const ::media::VideoPipelineInfo& info) override;
  void SetAudioPipelineInfo(const ::media::AudioPipelineInfo& info) override;
};
class  MediaMetricsProviderAsyncWaiter {
 public:
  explicit MediaMetricsProviderAsyncWaiter(MediaMetricsProvider* proxy);

  MediaMetricsProviderAsyncWaiter(const MediaMetricsProviderAsyncWaiter&) = delete;
  MediaMetricsProviderAsyncWaiter& operator=(const MediaMetricsProviderAsyncWaiter&) = delete;

  ~MediaMetricsProviderAsyncWaiter();

 private:
  MediaMetricsProvider* const proxy_;
};




}  // media::mojom

#endif  // MEDIA_MOJO_MOJOM_MEDIA_METRICS_PROVIDER_MOJOM_TEST_UTILS_H_