more volume support
- add master volume only case:
some H/W can have only single master volume.
In that case, all volume change will be sent to stream 0.
TODO: do better handling of master volule only case
- add no_auto_get in vns_policy.xml so that subscription does not
lead into auto get for some properties
bug: 28175862
Change-Id: I0aa7a8a54385704620c28aaa0f21898bdc1e8164
diff --git a/service/src/com/android/car/hal/AudioHalService.java b/service/src/com/android/car/hal/AudioHalService.java
index d60479d..8d650c9 100644
--- a/service/src/com/android/car/hal/AudioHalService.java
+++ b/service/src/com/android/car/hal/AudioHalService.java
@@ -435,6 +435,20 @@
return isPropertySupportedLocked(VehicleNetworkConsts.VEHICLE_PROPERTY_AUDIO_VOLUME_LIMIT);
}
+ public synchronized boolean isAudioVolumeMasterOnly() {
+ if (!isPropertySupportedLocked(VehicleNetworkConsts.VEHICLE_PROPERTY_AUDIO_VOLUME)) {
+ throw new IllegalStateException("VEHICLE_PROPERTY_AUDIO_VOLUME not supported");
+ }
+ VehiclePropConfig config = mProperties.get(
+ VehicleNetworkConsts.VEHICLE_PROPERTY_AUDIO_VOLUME);
+ if ((config.getConfigArray(1) &
+ VehicleAudioVolumeCapabilityFlag.VEHICLE_AUDIO_VOLUME_CAPABILITY_MASTER_VOLUME_ONLY)
+ != 0) {
+ return true;
+ }
+ return false;
+ }
+
/**
* Get the current audio focus state.
* @return 0: focusState, 1: streams, 2: externalFocus