summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jean-Michel Trivi <jmtrivi@google.com> 2022-05-16 22:09:19 +0000
committer Jean-Michel Trivi <jmtrivi@google.com> 2022-05-17 13:29:07 +0000
commit388680caf3df25cd3cc2644bc1eb8ed4631b98a8 (patch)
treec323291c41b095f097076ad9a64323fbdd6824f3
parentd0333d3682346f50fa0409ba35908e8c796e3d6b (diff)
SpatializerHelper: report head tracking disabled
"disconnect" head tracking APIs when headtracking is not supported so UI doesn't attempt to expose HT properties for audio devices. Bug: 226474336 Test: atest android.media.audio.cts.SpatializerTest Change-Id: Ie98da0fec60e9173fd984c3cf4b7ce1bae03f56a
-rw-r--r--services/core/java/com/android/server/audio/SpatializerHelper.java19
1 files changed, 19 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/audio/SpatializerHelper.java b/services/core/java/com/android/server/audio/SpatializerHelper.java
index 8b8577c8b339..c61bad41eb4a 100644
--- a/services/core/java/com/android/server/audio/SpatializerHelper.java
+++ b/services/core/java/com/android/server/audio/SpatializerHelper.java
@@ -243,6 +243,9 @@ public class SpatializerHelper {
}
mActualHeadTrackingMode =
headTrackingModeTypeToSpatializerInt(spat.getActualHeadTrackingMode());
+ } else {
+ mDesiredHeadTrackingModeWhenEnabled = Spatializer.HEAD_TRACKING_MODE_UNSUPPORTED;
+ mDesiredHeadTrackingMode = Spatializer.HEAD_TRACKING_MODE_UNSUPPORTED;
}
byte[] spatModes = spat.getSupportedModes();
@@ -1048,6 +1051,10 @@ public class SpatializerHelper {
}
synchronized void setHeadTrackerEnabled(boolean enabled, @NonNull AudioDeviceAttributes ada) {
+ if (!mIsHeadTrackingSupported) {
+ Log.v(TAG, "no headtracking support, ignoring setHeadTrackerEnabled to " + enabled
+ + " for " + ada);
+ }
final int deviceType = ada.getType();
final boolean wireless = isWireless(deviceType);
@@ -1075,6 +1082,10 @@ public class SpatializerHelper {
}
synchronized boolean hasHeadTracker(@NonNull AudioDeviceAttributes ada) {
+ if (!mIsHeadTrackingSupported) {
+ Log.v(TAG, "no headtracking support, hasHeadTracker always false for " + ada);
+ return false;
+ }
final int deviceType = ada.getType();
final boolean wireless = isWireless(deviceType);
@@ -1094,6 +1105,10 @@ public class SpatializerHelper {
* @return true if the head tracker is enabled, false otherwise or if device not found
*/
synchronized boolean setHasHeadTracker(@NonNull AudioDeviceAttributes ada) {
+ if (!mIsHeadTrackingSupported) {
+ Log.v(TAG, "no headtracking support, setHasHeadTracker always false for " + ada);
+ return false;
+ }
final int deviceType = ada.getType();
final boolean wireless = isWireless(deviceType);
@@ -1113,6 +1128,10 @@ public class SpatializerHelper {
}
synchronized boolean isHeadTrackerEnabled(@NonNull AudioDeviceAttributes ada) {
+ if (!mIsHeadTrackingSupported) {
+ Log.v(TAG, "no headtracking support, isHeadTrackerEnabled always false for " + ada);
+ return false;
+ }
final int deviceType = ada.getType();
final boolean wireless = isWireless(deviceType);