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