diff options
| author | 2022-05-16 22:09:19 +0000 | |
|---|---|---|
| committer | 2022-05-17 13:29:07 +0000 | |
| commit | 388680caf3df25cd3cc2644bc1eb8ed4631b98a8 (patch) | |
| tree | c323291c41b095f097076ad9a64323fbdd6824f3 | |
| parent | d0333d3682346f50fa0409ba35908e8c796e3d6b (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.java | 19 | 
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);  |