// Copyright 2017 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_VIDEO_VIDEO_CAPTURE_SYSTEM_H_
#define MEDIA_CAPTURE_VIDEO_VIDEO_CAPTURE_SYSTEM_H_

#include "media/capture/video/video_capture_device_factory.h"
#include "media/capture/video/video_capture_device_info.h"

namespace media {

// GetDeviceInfosAsync() should be called at least once before calling
// CreateDevice(), because otherwise CreateDevice() will allways return nullptr.
class CAPTURE_EXPORT VideoCaptureSystem {
 public:
  using DeviceInfoCallback =
      base::OnceCallback<void(const std::vector<VideoCaptureDeviceInfo>&)>;

  virtual ~VideoCaptureSystem() {}

  // The passed-in |result_callback| must have ownership of the called
  // VideoCaptureSystem instance to guarantee that it stays alive during the
  // asynchronous operation. |result_callback| is invoked on the same thread
  // that calls GetDeviceInfosAsync()
  virtual void GetDeviceInfosAsync(DeviceInfoCallback result_callback) = 0;

  // Creates a VideoCaptureErrorOrDevice object. Contains an error code if
  // something goes wrong.
  virtual VideoCaptureErrorOrDevice CreateDevice(
      const std::string& device_id) = 0;

  virtual VideoCaptureDeviceFactory* GetFactory() = 0;
};

}  // namespace media

#endif  // MEDIA_CAPTURE_VIDEO_VIDEO_CAPTURE_SYSTEM_H_
