// 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/video_frame_handler.mojom";

// Represents access to a video capture device available on the machine. The
// device is stopped automatically when the message pipe corresponding to either
// the Device or the given |handler| is closed. Note that as a response to
// stopping the device, the service may still need to send out events such as
// VideoFrameHandler.OnBufferRetired() to |handler|. The service will send a
// final event VideoFrameHandler.OnStopped() to indicate that stopping has
// completed and no further events are going to be sent to |handler|.
interface Device {
  Start(media.mojom.VideoCaptureParams requested_settings,
        VideoFrameHandler handler);
  MaybeSuspend();
  Resume();
  GetPhotoState()
      => (media.mojom.PhotoState? capabilities);
  SetPhotoOptions(media.mojom.PhotoSettings settings)
      => (bool success);
  TakePhoto()
      => (media.mojom.Blob? blob);
};
