# 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/unification/zx_library.gni")

zx_library("audio-utils") {
  sdk = "source"
  sdk_headers = [
    "audio-utils/audio-device-stream.h",
    "audio-utils/audio-input.h",
    "audio-utils/audio-output.h",
    "audio-utils/audio-stream.h",
  ]
  sources = [
    "audio-device-stream.cc",
    "audio-input.cc",
    "audio-output.cc",
  ]
  public_deps =
      [ "//sdk/fidl/fuchsia.hardware.audio:fuchsia.hardware.audio_llcpp" ]
  deps = [
    "$zx/system/ulib/audio-proto-utils",
    "//sdk/fidl/fuchsia.hardware.audio:fuchsia.hardware.audio_llcpp",
    "//sdk/lib/fdio",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/zx",
    "//zircon/system/ulib/affine",
    "//zircon/system/ulib/fzl",
  ]

  # TODO(fxbug.dev/58162): delete the below and fix compiler warnings
  configs += [ "//build/config:Wno-conversion" ]
}
