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

group("services") {
  testonly = true
  deps = [
    "//src/media/audio/audio",
    "//src/media/audio/audio_core",
  ]
}

group("virtual_audio_service_with_config") {
  testonly = true
  deps = [
    "//src/media/audio/virtual_audio_service",
    "//src/media/audio/virtual_audio_service:virtual_audio_config",
  ]
}

group("tools") {
  testonly = true
  deps = [
    ":virtual_audio_service_with_config",
    "//src/media/audio/tools/signal_generator",
    "//src/media/audio/tools/virtual_audio_util",
    "//src/media/audio/tools/vol",
    "//src/media/audio/tools/wav_recorder",
  ]
}

group("examples") {
  testonly = true
  deps = [
    "//src/media/audio/examples/effects",
    "//src/media/audio/examples/fx",
    "//src/media/audio/examples/simple_sine",
    "//src/media/audio/examples/sync_sine",
    "//src/media/audio/examples/tones",
  ]
}

group("config") {
  testonly = true
  deps = [ "//src/media/audio/config" ]
}

group("vim2_media_config") {
  testonly = true
  deps = [ "//src/media/audio/vim2_media_config" ]
}

group("virtual_audio_driver") {
  testonly = true
  public_deps = [ "//src/media/audio/drivers/virtual_audio" ]
}

# We use this instead of :config, because an external repro removes it from a list. Using :config
# instead would break that repo.
group("audio_config") {
  testonly = true
  deps = [ ":config" ]
}
