mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-01-27 14:23:34 +00:00
Merge "Add AIDL API feedback" into main
This commit is contained in:
committed by
Android (Google) Code Review
commit
12004be9a2
@@ -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 */;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -38,6 +38,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;
|
||||
@@ -476,7 +477,7 @@ const api::AudioZoneConfig kDriverZoneConfig = createAudioZoneConfig(
|
||||
{kBusMediaVolumeGroup, kBusNavVolumeGroup, kBusCallVolumeGroup, kBusSysVolumeGroup}, true);
|
||||
|
||||
const api::AudioZone kDriverZone =
|
||||
createAudioZone("driver zone", api::AudioZone::PRIMARY_AUDIO_ZONE,
|
||||
createAudioZone("driver zone", static_cast<int>(AudioHalProductStrategy::ZoneId::DEFAULT),
|
||||
kSimpleCarAudioConfigurationContext, {kDriverZoneConfig});
|
||||
|
||||
const api::AudioZoneFadeConfiguration kZoneAudioConfigFading = createAudioZoneFadeConfiguration(
|
||||
@@ -491,9 +492,9 @@ const api::VolumeGroupConfig kFrontVolumeGroup = createVolumeGroup(
|
||||
"oem_system_sound", "oem_notification"})});
|
||||
const api::AudioZoneConfig kFrontZoneConfig = createAudioZoneConfig(
|
||||
"front passenger config 0", kZoneAudioConfigFading, {kFrontVolumeGroup}, true);
|
||||
const api::AudioZone kFrontZone =
|
||||
createAudioZone("front passenger zone", api::AudioZone::PRIMARY_AUDIO_ZONE + 1,
|
||||
kSimpleCarAudioConfigurationContext, {kFrontZoneConfig});
|
||||
const api::AudioZone kFrontZone = createAudioZone(
|
||||
"front passenger zone", static_cast<int>(AudioHalProductStrategy::ZoneId::DEFAULT) + 1,
|
||||
kSimpleCarAudioConfigurationContext, {kFrontZoneConfig});
|
||||
|
||||
const AudioPort kBusRearDevice = createAudioPort("BUS_REAR", AudioDeviceType::OUT_BUS);
|
||||
const api::VolumeGroupConfig kRearVolumeGroup =
|
||||
@@ -503,9 +504,9 @@ const api::VolumeGroupConfig kRearVolumeGroup =
|
||||
"oem_system_sound", "oem_notification"})});
|
||||
const api::AudioZoneConfig kRearZoneConfig = createAudioZoneConfig(
|
||||
"rear seat config 0", kZoneAudioConfigFading, {kRearVolumeGroup}, true);
|
||||
const api::AudioZone kRearZone =
|
||||
createAudioZone("rear seat zone", api::AudioZone::PRIMARY_AUDIO_ZONE + 2,
|
||||
kSimpleCarAudioConfigurationContext, {kRearZoneConfig});
|
||||
const api::AudioZone kRearZone = createAudioZone(
|
||||
"rear seat zone", static_cast<int>(AudioHalProductStrategy::ZoneId::DEFAULT) + 2,
|
||||
kSimpleCarAudioConfigurationContext, {kRearZoneConfig});
|
||||
|
||||
std::vector<api::AudioZone> kMultiZones = {kDriverZone, kFrontZone, kRearZone};
|
||||
|
||||
@@ -624,7 +625,7 @@ TEST_F(SimpleCarAudioConfigurationTest, TestLoadSimpleConfiguration) {
|
||||
EXPECT_EQ(zones.size(), 1);
|
||||
|
||||
const auto& zone = zones.front();
|
||||
EXPECT_EQ(zone.id, api::AudioZone::PRIMARY_AUDIO_ZONE);
|
||||
EXPECT_EQ(zone.id, static_cast<int>(AudioHalProductStrategy::ZoneId::DEFAULT));
|
||||
EXPECT_EQ(zone.occupantZoneId, 0);
|
||||
EXPECT_EQ(zone.name, "primary zone");
|
||||
|
||||
@@ -685,7 +686,7 @@ TEST_F(TypeDeviceCarAudioConfigurationTest, TestLoadConfigurationWithDeviceType)
|
||||
EXPECT_EQ(zones.size(), 1);
|
||||
|
||||
const auto& zone = zones.front();
|
||||
EXPECT_EQ(zone.id, api::AudioZone::PRIMARY_AUDIO_ZONE);
|
||||
EXPECT_EQ(zone.id, static_cast<int>(AudioHalProductStrategy::ZoneId::DEFAULT));
|
||||
EXPECT_EQ(zone.occupantZoneId, 0);
|
||||
EXPECT_EQ(zone.name, "primary zone");
|
||||
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
#include <android/hardware/automotive/audiocontrol/BnModuleChangeCallback.h>
|
||||
#include <android/hardware/automotive/audiocontrol/IAudioControl.h>
|
||||
#include <android/log.h>
|
||||
#include <android/media/audio/common/AudioHalProductStrategy.h>
|
||||
#include <binder/IServiceManager.h>
|
||||
#include <binder/ProcessState.h>
|
||||
#include <include/AudioControlTestUtils.h>
|
||||
@@ -63,6 +64,8 @@ using android::hardware::automotive::audiocontrol::VolumeActivationConfiguration
|
||||
DEFAULT_MAX_ACTIVATION_VALUE;
|
||||
using android::hardware::automotive::audiocontrol::VolumeActivationConfigurationEntry::
|
||||
DEFAULT_MIN_ACTIVATION_VALUE;
|
||||
using android::media::audio::common::AudioHalProductStrategy;
|
||||
|
||||
using ::testing::AnyOf;
|
||||
using ::testing::Eq;
|
||||
|
||||
@@ -628,7 +631,7 @@ TEST_P(AudioControlWithAudioZoneInfo, AudioZonesRequirements) {
|
||||
std::set<android::String16> zoneNames;
|
||||
std::set<std::string> deviceAddresses;
|
||||
for (const auto& zone : audioZones) {
|
||||
if (zone.id == AudioZone::PRIMARY_AUDIO_ZONE) {
|
||||
if (zone.id == static_cast<int>(AudioHalProductStrategy::ZoneId::DEFAULT)) {
|
||||
EXPECT_FALSE(primaryZoneFound) << "There can only be one primary zone";
|
||||
primaryZoneFound = true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user