# Copyright (c) 2018 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS.  All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.

import("../../webrtc.gni")

rtc_library("audio_frame_api") {
  visibility = [ "*" ]
  sources = [
    "audio_frame.cc",
    "audio_frame.h",
    "channel_layout.cc",
    "channel_layout.h",
  ]

  deps = [
    "..:rtp_packet_info",
    "../../rtc_base:checks",
    "../../rtc_base:rtc_base_approved",
  ]
}

rtc_source_set("audio_mixer_api") {
  visibility = [ "*" ]
  sources = [ "audio_mixer.h" ]

  deps = [
    ":audio_frame_api",
    "../../rtc_base:rtc_base_approved",
  ]
}

rtc_library("aec3_config") {
  visibility = [ "*" ]
  sources = [
    "echo_canceller3_config.cc",
    "echo_canceller3_config.h",
  ]
  deps = [
    "../../rtc_base:checks",
    "../../rtc_base:rtc_base_approved",
    "../../rtc_base:safe_minmax",
    "../../rtc_base/system:rtc_export",
  ]
}

rtc_library("aec3_config_json") {
  visibility = [ "*" ]
  allow_poison = [ "rtc_json" ]
  sources = [
    "echo_canceller3_config_json.cc",
    "echo_canceller3_config_json.h",
  ]
  deps = [
    ":aec3_config",
    "../../rtc_base:checks",
    "../../rtc_base:rtc_base_approved",
    "../../rtc_base:rtc_json",
    "../../rtc_base/system:rtc_export",
  ]
  absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
}

rtc_library("aec3_factory") {
  visibility = [ "*" ]
  configs += [ "../../modules/audio_processing:apm_debug_dump" ]
  sources = [
    "echo_canceller3_factory.cc",
    "echo_canceller3_factory.h",
  ]

  deps = [
    ":aec3_config",
    ":echo_control",
    "../../modules/audio_processing/aec3",
    "../../rtc_base:rtc_base_approved",
    "../../rtc_base/system:rtc_export",
  ]
}

rtc_source_set("echo_control") {
  visibility = [ "*" ]
  sources = [ "echo_control.h" ]
  deps = [ "../../rtc_base:checks" ]
}

rtc_source_set("echo_detector_creator") {
  visibility = [ "*" ]
  sources = [
    "echo_detector_creator.cc",
    "echo_detector_creator.h",
  ]
  deps = [
    "../../api:scoped_refptr",
    "../../modules/audio_processing:api",
    "../../modules/audio_processing:audio_processing",
    "../../rtc_base:refcount",
  ]
}