# 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.

import("//mojo/public/tools/bindings/mojom.gni")

mojom("mojom") {
  sources = [
    "device.mojom",
    "device_factory.mojom",
    "device_factory_provider.mojom",
    "devices_changed_observer.mojom",
    "producer.mojom",
    "receiver.mojom",
    "scoped_access_permission.mojom",
    "testing_controls.mojom",
    "video_source.mojom",
    "video_source_provider.mojom",
    "virtual_device.mojom",
  ]

  deps = [
    "//media/capture/mojom:image_capture",
    "//media/capture/mojom:video_capture",
    "//media/mojo/interfaces",
    "//ui/gfx/geometry/mojo",
  ]

  if (is_chromeos) {
    deps += [ "//components/chromeos_camera/common" ]
  }
}

mojom("constants") {
  sources = [
    "constants.mojom",
  ]
}
