# Copyright 2016 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/package.gni")

action_foreach("generate_schemas") {
  visibility = [ ":*" ]
  script = "//garnet/bin/media/audio_core/schema/make_schema_header.py"
  outputs = [
    "$target_gen_dir/schema/{{source_name_part}}.inl",
  ]
  args = [
    "{{source}}",
    rebase_path("$target_gen_dir") + "/schema/{{source_name_part}}.inl",
  ]

  sources = [
    "schema/audio_device_settings_schema.jsx",
  ]
}

executable("audio_core") {
  sources = [
    "audio_capturer_impl.cc",
    "audio_capturer_impl.h",
    "audio_core_impl.cc",
    "audio_core_impl.h",
    "audio_device.cc",
    "audio_device.h",
    "audio_device_manager.cc",
    "audio_device_manager.h",
    "audio_device_settings.cc",
    "audio_device_settings.h",
    "audio_driver.cc",
    "audio_driver.h",
    "audio_input.cc",
    "audio_input.h",
    "audio_link.cc",
    "audio_link.h",
    "audio_link_packet_source.cc",
    "audio_link_packet_source.h",
    "audio_link_ring_buffer_source.cc",
    "audio_link_ring_buffer_source.h",
    "audio_object.cc",
    "audio_object.h",
    "audio_output.cc",
    "audio_output.h",
    "audio_packet_ref.cc",
    "audio_packet_ref.h",
    "audio_plug_detector.cc",
    "audio_plug_detector.h",
    "audio_renderer_format_info.cc",
    "audio_renderer_format_info.h",
    "audio_renderer_impl.cc",
    "audio_renderer_impl.h",
    "driver_output.cc",
    "driver_output.h",
    "driver_ring_buffer.cc",
    "driver_ring_buffer.h",
    "driver_utils.cc",
    "driver_utils.h",
    "fwd_decls.h",
    "main.cc",
    "pending_flush_token.cc",
    "pending_flush_token.h",
    "standard_output_base.cc",
    "standard_output_base.h",
    "throttle_output.cc",
    "throttle_output.h",
    "utils.cc",
    "utils.h",
  ]

  deps = [
    ":generate_schemas",
    "//garnet/bin/media/audio_core/mixer:audio_mixer_lib",
    "//garnet/bin/media/util",
    "//garnet/lib/media/wav_writer",
    "//garnet/public/fidl/fuchsia.media",
    "//garnet/public/lib/component/cpp",
    "//garnet/public/lib/fsl",
    "//garnet/public/lib/fxl",
    "//garnet/public/lib/media/audio",
    "//garnet/public/lib/media/timeline:no_converters",
    "//third_party/rapidjson",
    "//zircon/public/lib/async-loop-cpp",
    "//zircon/public/lib/audio-proto-utils",
    "//zircon/public/lib/dispatcher-pool",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/fzl",
    "//zircon/public/lib/zx",
  ]

  public_deps = [
    "//zircon/public/lib/fit",
  ]
}
