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

module video_capture.mojom;

import "mojom/video_capture_types.mojom";
import "mojom/image_capture.mojom";
import "mojom/receiver.mojom";

// Represents access to a video capture device available on the machine.
// Note: Instead of offering an explicit Stop() method, the device
// is stopped automatically when the message pipe corresponding to either the
// Device or the given |receiver| is closed.
interface Device {
  Start(media.mojom.VideoCaptureParams requested_settings, Receiver receiver);
  OnReceiverReportingUtilization(int32 frame_feedback_id,
                                 double utilization);
  RequestRefreshFrame();
  MaybeSuspend();
  Resume();
  GetPhotoState()
      => (media.mojom.PhotoState? capabilities);
  SetPhotoOptions(media.mojom.PhotoSettings settings)
      => (bool success);
  TakePhoto()
      => (media.mojom.Blob? blob);
};
