// *** THIS PACKAGE HAS SPECIAL LICENSING CONDITIONS.  PLEASE
//     CONSULT THE OWNERS AND opensource-licensing@google.com BEFORE
//     DEPENDING ON IT IN YOUR PROJECT. ***
package {
    default_applicable_licenses: ["frameworks_av_license"],
}

// Added automatically by a large-scale-change that took the approach of
// 'apply every license found to every target'. While this makes sure we respect
// every license restriction, it may not be entirely correct.
//
// e.g. GPL in an MIT project might only apply to the contrib/ directory.
//
// Please consider splitting the single license below into multiple licenses,
// taking care not to lose any license_kind information, and overriding the
// default license using the 'licenses: [...]' property on targets as needed.
//
// For unused files, consider creating a 'fileGroup' with "//visibility:private"
// to attach the license to, and including a comment whether the files may be
// used in the current project.
// See: http://go/android-license-faq
license {
    name: "frameworks_av_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-Apache-2.0",
        "SPDX-license-identifier-BSD",
        "SPDX-license-identifier-MIT",
        "SPDX-license-identifier-Unicode-DFS",
        "legacy_by_exception_only", // by exception only
    ],
    license_text: [
        "NOTICE",
    ],
}

aidl_interface_defaults {
    name: "audio-aidl-defaults",
    unstable: true,
    host_supported: true,
    backend: {
        cpp: {
            enabled: true,
        },
        java: {
            enabled: true,
        },
        rust: {
            enabled: true,
        },
    },

}

aidl_interface {
    name: "av-types-aidl",
    unstable: true,
    host_supported: true,
    vendor_available: true,
    double_loadable: true,
    local_include_dir: "aidl",
    srcs: [
        "aidl/android/media/AppVolumeData.aidl",
        "aidl/android/media/InterpolatorConfig.aidl",
        "aidl/android/media/InterpolatorType.aidl",
        "aidl/android/media/MicrophoneInfoFw.aidl",
        "aidl/android/media/VolumeShaperConfiguration.aidl",
        "aidl/android/media/VolumeShaperConfigurationOptionFlag.aidl",
        "aidl/android/media/VolumeShaperConfigurationType.aidl",
        "aidl/android/media/VolumeShaperOperation.aidl",
        "aidl/android/media/VolumeShaperOperationFlag.aidl",
        "aidl/android/media/VolumeShaperState.aidl",
    ],
    defaults: [
        "latest_android_media_audio_common_types_import_interface",
    ],
    backend: {
        cpp: {
            min_sdk_version: "29",
            apex_available: [
                "//apex_available:platform",
                "com.android.btservices",
                "com.android.media",
                "com.android.media.swcodec",
            ],
        },
        java: {
            sdk_version: "module_current",
        },
    },
}

aidl_interface {
    name: "audio-permission-aidl",
    // TODO remove
    vendor_available: true,
    double_loadable: true,
    defaults: ["audio-aidl-defaults"],
    local_include_dir: "aidl",
    srcs: [
        "aidl/com/android/media/permission/*",
    ],
}

cc_library_headers {
    name: "av-headers",
    export_include_dirs: ["include"],
    static_libs: [
        "av-types-aidl-cpp",
    ],
    export_static_lib_headers: [
        "av-types-aidl-cpp",
    ],
    header_libs: [
        "libaudio_aidl_conversion_common_util_cpp",
    ],
    export_header_lib_headers: [
        "libaudio_aidl_conversion_common_util_cpp",
    ],
    host_supported: true,
    vendor_available: true,
    double_loadable: true,
    min_sdk_version: "29",
    apex_available: [
        "//apex_available:platform",
        "com.android.btservices",
        "com.android.media",
        "com.android.media.swcodec",
    ],
    target: {
        darwin: {
            enabled: false,
        },
    },
}

aidl_interface {
    name: "av-audio-types-aidl",
    unstable: true,
    host_supported: true,
    vendor_available: true,
    double_loadable: true,
    local_include_dir: "aidl",
    srcs: [
        "aidl/android/media/audio/IHalAdapterVendorExtension.aidl",
    ],
    defaults: [
        "latest_android_hardware_audio_core_import_interface",
    ],
    backend: {
        // The C++ backend is disabled transitively due to use of FMQ by the audio core HAL.
        cpp: {
            enabled: false,
        },
        java: {
            sdk_version: "module_current",
        },
    },
}
