// media/mojo/mojom/audio_logging.mojom-blink-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_AUDIO_LOGGING_MOJOM_BLINK_TEST_UTILS_H_
#define MEDIA_MOJO_MOJOM_AUDIO_LOGGING_MOJOM_BLINK_TEST_UTILS_H_

#include "media/mojo/mojom/audio_logging.mojom-blink.h"
#include "third_party/blink/public/platform/web_common.h"


namespace media::mojom::blink {


class BLINK_PLATFORM_EXPORT AudioLogInterceptorForTesting : public AudioLog {
  virtual AudioLog* GetForwardingInterface() = 0;
  void OnCreated(const ::media::AudioParameters& params, const ::blink::String& device_id) override;
  void OnStarted() override;
  void OnStopped() override;
  void OnClosed() override;
  void OnError() override;
  void OnSetVolume(double volume) override;
  void OnProcessingStateChanged(const ::blink::String& message) override;
  void OnLogMessage(const ::blink::String& message) override;
};
class BLINK_PLATFORM_EXPORT AudioLogAsyncWaiter {
 public:
  explicit AudioLogAsyncWaiter(AudioLog* proxy);

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

  ~AudioLogAsyncWaiter();

 private:
  AudioLog* const proxy_;
};


class BLINK_PLATFORM_EXPORT AudioLogFactoryInterceptorForTesting : public AudioLogFactory {
  virtual AudioLogFactory* GetForwardingInterface() = 0;
  void CreateAudioLog(AudioLogComponent component, int32_t component_id, ::mojo::PendingReceiver<AudioLog> audio_log_receiver) override;
};
class BLINK_PLATFORM_EXPORT AudioLogFactoryAsyncWaiter {
 public:
  explicit AudioLogFactoryAsyncWaiter(AudioLogFactory* proxy);

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

  ~AudioLogFactoryAsyncWaiter();

 private:
  AudioLogFactory* const proxy_;
};




}  // media::mojom::blink

#endif  // MEDIA_MOJO_MOJOM_AUDIO_LOGGING_MOJOM_BLINK_TEST_UTILS_H_