// media/capture/mojom/image_capture.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_CAPTURE_MOJOM_IMAGE_CAPTURE_MOJOM_BLINK_TEST_UTILS_H_
#define MEDIA_CAPTURE_MOJOM_IMAGE_CAPTURE_MOJOM_BLINK_TEST_UTILS_H_

#include "media/capture/mojom/image_capture.mojom-blink.h"


namespace media::mojom::blink {


class  ImageCaptureInterceptorForTesting : public ImageCapture {
  virtual ImageCapture* GetForwardingInterface() = 0;
  void GetPhotoState(const ::blink::String& source_id, GetPhotoStateCallback callback) override;
  void SetPhotoOptions(const ::blink::String& source_id, PhotoSettingsPtr settings, SetPhotoOptionsCallback callback) override;
  void TakePhoto(const ::blink::String& source_id, TakePhotoCallback callback) override;
};
class  ImageCaptureAsyncWaiter {
 public:
  explicit ImageCaptureAsyncWaiter(ImageCapture* proxy);

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

  ~ImageCaptureAsyncWaiter();
  void GetPhotoState(
      const ::blink::String& source_id, PhotoStatePtr* out_state);
  PhotoStatePtr GetPhotoState(const ::blink::String& source_id);
  void SetPhotoOptions(
      const ::blink::String& source_id, PhotoSettingsPtr settings, bool* out_success);
  bool SetPhotoOptions(const ::blink::String& source_id, PhotoSettingsPtr settings);
  void TakePhoto(
      const ::blink::String& source_id, BlobPtr* out_blob);
  BlobPtr TakePhoto(const ::blink::String& source_id);

 private:
  ImageCapture* const proxy_;
};




}  // media::mojom::blink

#endif  // MEDIA_CAPTURE_MOJOM_IMAGE_CAPTURE_MOJOM_BLINK_TEST_UTILS_H_