# Copyright 2019 The Fuchsia 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("//build/cipd.gni")
import("//src/camera/drivers/controller/camera_controller_driver.gni")

group("luis") {
  public_deps = [ ":luis-camera-controller" ]
}

source_set("config") {
  sources = [
    "common_util.cc",
    "common_util.h",
    "isp_debug_config.cc",
    "isp_debug_config.h",
    "luis_product_config.cc",
    "luis_product_config.h",
  ]
  public_deps = [
    "//sdk/banjo/fuchsia.hardware.ge2d:fuchsia.hardware.ge2d_banjo_cpp",
    "//sdk/banjo/fuchsia.hardware.sysmem:fuchsia.hardware.sysmem_banjo_cpp",
    "//sdk/fidl/fuchsia.camera2",
    "//sdk/fidl/fuchsia.camera2.hal",
    "//src/camera/drivers/controller/configs",
    "//src/camera/lib/stream_utils:stream_configs",
    "//zircon/system/ulib/fidl-utils",
  ]
}

camera_controller_driver("luis-camera-controller") {
  deps = [ ":config" ]

  # The following config files are currently gated behind internal
  # access to the CIPD repository.
  # TODO(fxbug.dev/59319) Update GDC config files for luis
  if (internal_access) {
    gdc_config_files = [
      "config_001_2176x2720-to-640x512-RS-YUV420SemiPlanar.bin",
      "config_001_2240x1792-to-640x512-S-YUV420SemiPlanar.bin",
      "config_002_1152x1440-to-1440x1152-DKCR-YUV420SemiPlanar.bin",
      "config_002_2176x2720-to-2240x1792-DKCR-YUV420SemiPlanar.bin",
      "config_003_2176x2720-to-2240x1792-DKCR-YUV420SemiPlanar.bin",
      "config_1152x1440_to_1152x864_Crop_Rotate.bin",
      "config_1152x1440_to_512x384_Crop_Rotate.bin",
      "config_1152x1440_to_720x540_Crop_Rotate.bin",
    ]
    watermark_files = [
      "watermark-360p.rgba",
      "watermark-480p.rgba",
      "watermark-720p.rgba",
    ]
  }
}
