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

Commit c7d0feb6 authored by Oscar Azucena's avatar Oscar Azucena
Browse files

Add AIDL API feedback

The changes addressed:
- Add audio fade offender definition which corresponds to the fade
  offender timeout
- Use core audio zone id in car audio zone definition, this definition
  already matches the one defined on the audio manager side
- Add more documentation for volume group name usages. Given that
  previous versions of audio policy engine APIs did not support volume
  group name must be supported concurrenlty until volume group ID is
  fully supported by vendors.

Bug: 359686069
Test: atest com.android.car.audio
Flag: android.car.feature.audio_control_hal_configuration
Change-Id: I78b538a90ccf0ed74b2476175776d723fc7e8cf0
parent eceef35c
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -35,11 +35,10 @@ package android.hardware.automotive.audiocontrol;
@JavaDerive(equals=true, toString=true) @VintfStability
parcelable AudioZone {
  String name;
  int id;
  int id = android.media.audio.common.AudioHalProductStrategy.ZoneId.DEFAULT /* 0 */;
  int occupantZoneId = UNASSIGNED_OCCUPANT /* -1 */;
  android.hardware.automotive.audiocontrol.AudioZoneContext audioZoneContext;
  List<android.hardware.automotive.audiocontrol.AudioZoneConfig> audioZoneConfigs;
  List<android.media.audio.common.AudioPort> inputAudioDevices;
  const int PRIMARY_AUDIO_ZONE = 0;
  const int UNASSIGNED_OCCUPANT = (-1) /* -1 */;
}
+4 −0
Original line number Diff line number Diff line
@@ -73,6 +73,10 @@ parcelable AudioFadeConfiguration {

    /**
     * Fade in delayed duration for audio focus offender in milliseconds
     *
     * <p>Fade offender are defined as audio players that do not stop playback after audio focus
     * lost. This timeout serves to continue to fadeout the offender until audio is stopped or the
     * timeout expires.
     */
    long fadeInDelayedForOffendersMs = DEFAULT_DELAY_FADE_IN_OFFENDERS_MS;

+5 −6
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package android.hardware.automotive.audiocontrol;

import android.hardware.automotive.audiocontrol.AudioZoneConfig;
import android.hardware.automotive.audiocontrol.AudioZoneContext;
import android.media.audio.common.AudioHalProductStrategy;
import android.media.audio.common.AudioPort;

/**
@@ -26,11 +27,6 @@ import android.media.audio.common.AudioPort;
@JavaDerive(equals=true, toString=true)
@VintfStability
parcelable AudioZone {
    /**
     * Value indicating the primary audio zone
     */
    const int PRIMARY_AUDIO_ZONE = 0;

    /**
     * Value indicating the occupant zone is not assigned.
     */
@@ -47,8 +43,11 @@ parcelable AudioZone {
    /**
     * Audio zone id use to distiguish between the different audio zones for
     * volume management, fade, and min/max activation management.
     *
     * <p>Value must start at {@link AudioHalProductStrategy#ZoneId#DEFAULT} for the primary zone
     * and increase for each different zone. Zone id must also not repeat for different zones.
     */
    int id;
    int id = AudioHalProductStrategy.ZoneId.DEFAULT;

    /**
     * Occupant zone id that should be mapped to this audio zone.
+3 −2
Original line number Diff line number Diff line
@@ -33,8 +33,9 @@ parcelable VolumeGroupConfig {
    /**
     * Audio zone group name.
     *
     * <p>Must be non-empty if using configurable audio policy engine volume management, see
     * {@code AudioDeviceConfiguration#useCoreAudioVolume} for details.
     * <p>Must be non-empty if using configurable audio policy engine volume management,
     * {@see AudioDeviceConfiguration#useCoreAudioVolume} for details. For non-core volume group
     * management this can be left empty or use for debugging purposes.
     */
    String name;

+5 −3
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@ using aidl::android::media::audio::common::AudioDevice;
using aidl::android::media::audio::common::AudioDeviceAddress;
using aidl::android::media::audio::common::AudioDeviceDescription;
using aidl::android::media::audio::common::AudioDeviceType;
using aidl::android::media::audio::common::AudioHalProductStrategy;
using aidl::android::media::audio::common::AudioPort;
using aidl::android::media::audio::common::AudioPortDeviceExt;
using aidl::android::media::audio::common::AudioPortExt;
@@ -537,6 +538,7 @@ void parseInputDevices(const xsd::InputDevicesType* xsdInputDevices,

bool parseAudioZone(const xsd::ZoneType& zone, const ActivationMap& activations,
                    const FadeConfigurationMap& fadeConfigurations, api::AudioZone& audioZone) {
    static int kPrimaryZoneId = static_cast<int>(AudioHalProductStrategy::ZoneId::DEFAULT);
    if (zone.hasName()) {
        audioZone.name = zone.getName();
    }
@@ -558,7 +560,7 @@ bool parseAudioZone(const xsd::ZoneType& zone, const ActivationMap& activations,
    bool isPrimary = zone.hasIsPrimary() && zone.getIsPrimary();

    if (isPrimary) {
        audioZone.id = api::AudioZone::PRIMARY_AUDIO_ZONE;
        audioZone.id = kPrimaryZoneId;
    }

    // ID not required in XML for primary zone
@@ -569,10 +571,10 @@ bool parseAudioZone(const xsd::ZoneType& zone, const ActivationMap& activations,
        return false;
    }

    if (isPrimary && audioZone.id != api::AudioZone::PRIMARY_AUDIO_ZONE) {
    if (isPrimary && audioZone.id != kPrimaryZoneId) {
        LOG(ERROR) << __func__ << " Audio zone is primary but has zone id "
                   << std::to_string(audioZone.id) << " instead of primary zone id "
                   << std::to_string(api::AudioZone::PRIMARY_AUDIO_ZONE);
                   << std::to_string(kPrimaryZoneId);
        return false;
    }

Loading