# Copyright 2018 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/fidl/fidl.gni")

fidl("fuchsia.media") {
  # TODO(fxbug.dev/35879): Remove lint exclusions by fixing known FIDL lint violations in this target
  excluded_checks = [
    "event-names-must-start-with-on",
    "invalid-case-for-constant",
    "string-bounds-not-specified",
    "vector-bounds-not-specified",
  ]

  sdk_category = "partner"

  sources = [
    "activity_reporter.fidl",
    "audio.fidl",
    "audio_capturer.fidl",
    "audio_consumer.fidl",
    "audio_core.fidl",
    "audio_device_enumerator.fidl",
    "audio_renderer.fidl",
    "metadata.fidl",
    "overview.fidl",
    "profile_provider.fidl",
    "stream.fidl",
    "stream_common.fidl",
    "stream_processor.fidl",
    "stream_type.fidl",
    "timeline_function.fidl",
    "usage_reporter.fidl",
  ]

  public_deps = [
    "//sdk/fidl/fuchsia.hardware.audio",
    "//sdk/fidl/fuchsia.images",
    "//sdk/fidl/fuchsia.media.audio",
    "//sdk/fidl/fuchsia.sysmem",
    "//zircon/vdso/zx",
  ]
}
