Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0b5e124e authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Audio HAL: Add new HAL for sound dose" am: 4c4ebb32 am: 163b808c

parents f6d3ea6c 163b808c
Loading
Loading
Loading
Loading
+47 −0
Original line number Diff line number Diff line
@@ -168,6 +168,53 @@ cc_defaults {
    ],
}

// Used for the standalone sounddose HAL
aidl_interface {
    name: "android.hardware.audio.core.sounddose",
    defaults: [
        "android.hardware.audio_defaults",
    ],
    srcs: [
        "android/hardware/audio/core/ISoundDose.aidl",
    ],
    imports: [
        "android.media.audio.common.types-V2",
    ],
    backend: {
        // The C++ backend is disabled transitively due to use of FMQ by the core HAL.
        cpp: {
            enabled: false,
        },
        java: {
            sdk_version: "module_current",
        },
    },
    versions_with_info: [
        // IMPORTANT: Update latest_android_hardware_audio_core_sounddose every time you
        // add the latest frozen version to versions_with_info
    ],
}

// Note: This should always be one version ahead of the last frozen version
latest_android_hardware_audio_core_sounddose = "android.hardware.audio.core.sounddose-V1"

// Modules that depend on android.hardware.audio.core.sounddose directly can include
// the following cc_defaults to avoid explicitly managing dependency versions
// across many scattered files.
cc_defaults {
    name: "latest_android_hardware_audio_core_sounddose_ndk_shared",
    shared_libs: [
        latest_android_hardware_audio_core_sounddose + "-ndk",
    ],
}

cc_defaults {
    name: "latest_android_hardware_audio_core_sounddose_ndk_static",
    static_libs: [
        latest_android_hardware_audio_core_sounddose + "-ndk",
    ],
}

aidl_interface {
    name: "android.hardware.audio.effect",
    defaults: [
+52 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2022 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
///////////////////////////////////////////////////////////////////////////////
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
///////////////////////////////////////////////////////////////////////////////

// This file is a snapshot of an AIDL file. Do not edit it manually. There are
// two cases:
// 1). this is a frozen version file - do not edit this in any case.
// 2). this is a 'current' file. If you make a backwards compatible change to
//     the interface (from the latest frozen version), the build system will
//     prompt you to update this file with `m <name>-update-api`.
//
// You must not make a backward incompatible change to any AIDL file built
// with the aidl_interface module type with versions property set. The module
// type is used to build AIDL files in a way that they can be used across
// independently updatable components of the system. If a device is shipped
// with such a backward incompatible change, it has a high risk of breaking
// later when a module using the interface is updated, e.g., Mainline modules.

package android.hardware.audio.core;
@VintfStability
interface ISoundDose {
  void setOutputRs2(float rs2ValueDbA);
  float getOutputRs2();
  void registerSoundDoseCallback(in android.hardware.audio.core.ISoundDose.IHalSoundDoseCallback callback);
  const int DEFAULT_MAX_RS2 = 100;
  const int MIN_RS2 = 80;
  @VintfStability
  interface IHalSoundDoseCallback {
    oneway void onMomentaryExposureWarning(float currentDbA, in android.media.audio.common.AudioDevice audioDevice);
    oneway void onNewMelValues(in android.hardware.audio.core.ISoundDose.IHalSoundDoseCallback.MelRecord melRecord, in android.media.audio.common.AudioDevice audioDevice);
    @VintfStability
    parcelable MelRecord {
      float[] melValues;
      long timestamp;
    }
  }
}
+23 −0
Original line number Diff line number Diff line
@@ -29,6 +29,29 @@ cc_defaults {
    ],
}

cc_library {
    name: "libaudioservicesounddoseimpl",
    vendor: true,
    defaults: [
        "latest_android_media_audio_common_types_ndk_shared",
        "latest_android_hardware_audio_core_sounddose_ndk_shared",
        "latest_android_hardware_audio_sounddose_ndk_shared",
    ],
    export_include_dirs: ["include"],
    srcs: [
        "SoundDose.cpp",
    ],
    shared_libs: [
        "libbase",
        "libbinder_ndk",
        "libcutils",
        "libutils",
    ],
    visibility: [
        "//hardware/interfaces/audio/aidl/sounddose/default",
    ],
}

cc_library_static {
    name: "libaudioserviceexampleimpl",
    defaults: [
+70 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2022 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package {
    // See: http://go/android-license-faq
    // A large-scale-change added 'default_applicable_licenses' to import
    // all of the 'license_kinds' from "hardware_interfaces_license"
    // to get the below license kinds:
    //   SPDX-license-identifier-Apache-2.0
    default_applicable_licenses: ["hardware_interfaces_license"],
}

aidl_interface {
    name: "android.hardware.audio.sounddose",
    host_supported: true,
    vendor_available: true,
    stability: "vintf",
    srcs: [
        "android/hardware/audio/sounddose/ISoundDoseFactory.aidl",
    ],
    imports: [
        latest_android_hardware_audio_core_sounddose,
    ],
    backend: {
        // The C++ backend is disabled transitively due to use by core audio HAL.
        cpp: {
            enabled: false,
        },
        java: {
            sdk_version: "module_current",
        },
    },
    versions_with_info: [
        // IMPORTANT: Update latest_android_hardware_audio_sounddose every time you
        // add the latest frozen version to versions_with_info
    ],
}

// Note: This should always be one version ahead of the last frozen version
latest_android_hardware_audio_sounddose = "android.hardware.audio.sounddose-V1"

// Modules that depend on android.hardware.audio.sounddose directly can include
// the following cc_defaults to avoid explicitly managing dependency versions
// across many scattered files.
cc_defaults {
    name: "latest_android_hardware_audio_sounddose_ndk_shared",
    shared_libs: [
        latest_android_hardware_audio_sounddose + "-ndk",
    ],
}

cc_defaults {
    name: "latest_android_hardware_audio_sounddose_ndk_static",
    static_libs: [
        latest_android_hardware_audio_sounddose + "-ndk",
    ],
}
+51 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2022 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
///////////////////////////////////////////////////////////////////////////////
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
///////////////////////////////////////////////////////////////////////////////

// This file is a snapshot of an AIDL file. Do not edit it manually. There are
// two cases:
// 1). this is a frozen version file - do not edit this in any case.
// 2). this is a 'current' file. If you make a backwards compatible change to
//     the interface (from the latest frozen version), the build system will
//     prompt you to update this file with `m <name>-update-api`.
//
// You must not make a backward incompatible change to any AIDL file built
// with the aidl_interface module type with versions property set. The module
// type is used to build AIDL files in a way that they can be used across
// independently updatable components of the system. If a device is shipped
// with such a backward incompatible change, it has a high risk of breaking
// later when a module using the interface is updated, e.g., Mainline modules.

package android.hardware.audio.core;
@VintfStability
interface ISoundDose {
  void setOutputRs2(float rs2ValueDbA);
  float getOutputRs2();
  void registerSoundDoseCallback(in android.hardware.audio.core.ISoundDose.IHalSoundDoseCallback callback);
  const int DEFAULT_MAX_RS2 = 100;
  @VintfStability
  interface IHalSoundDoseCallback {
    oneway void onMomentaryExposureWarning(float currentDbA, in android.media.audio.common.AudioDevice audioDevice);
    oneway void onNewMelValues(in android.hardware.audio.core.ISoundDose.IHalSoundDoseCallback.MelRecord melRecord, in android.media.audio.common.AudioDevice audioDevice);
    @VintfStability
    parcelable MelRecord {
      float[] melValues;
      long timestamp;
    }
  }
}
Loading