diff options
| author | 2022-07-21 17:00:21 +0000 | |
|---|---|---|
| committer | 2022-07-21 17:00:21 +0000 | |
| commit | a22527d9fad16cbd96c0cef3d4f601d0c7d03790 (patch) | |
| tree | dc40a599aef0536016bd8d43c5bbb5ca8df3dd15 | |
| parent | cdae841b0751d6518968ead30e5866cc73fbc49a (diff) | |
| parent | 8e10acae37e28b6088f6d7509f93d4dd5181875c (diff) | |
Merge "Spatializer: Fix lost settings after reboot" into tm-qpr-dev
| -rw-r--r-- | services/core/java/com/android/server/audio/AudioService.java | 5 | ||||
| -rw-r--r-- | services/core/java/com/android/server/audio/SpatializerHelper.java | 13 |
2 files changed, 11 insertions, 7 deletions
diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java index 90a47a400130..3a869f859e52 100644 --- a/services/core/java/com/android/server/audio/AudioService.java +++ b/services/core/java/com/android/server/audio/AudioService.java @@ -9181,11 +9181,8 @@ public class AudioService extends IAudioService.Stub Settings.Secure.SPATIAL_AUDIO_ENABLED, UserHandle.USER_CURRENT); if (settings == null) { Log.e(TAG, "error reading spatial audio device settings"); - } else { - Log.v(TAG, "restoring spatial audio device settings: " + settings); - mSpatializerHelper.setSADeviceSettings(settings); } - mSpatializerHelper.init(/*effectExpected*/ mHasSpatializerEffect); + mSpatializerHelper.init(/*effectExpected*/ mHasSpatializerEffect, settings); mSpatializerHelper.setFeatureEnabled(mHasSpatializerEffect); } diff --git a/services/core/java/com/android/server/audio/SpatializerHelper.java b/services/core/java/com/android/server/audio/SpatializerHelper.java index dd44af1b68ee..cd5960ffbf32 100644 --- a/services/core/java/com/android/server/audio/SpatializerHelper.java +++ b/services/core/java/com/android/server/audio/SpatializerHelper.java @@ -175,7 +175,7 @@ public class SpatializerHelper { mASA = asa; } - synchronized void init(boolean effectExpected) { + synchronized void init(boolean effectExpected, @Nullable String settings) { loglogi("init effectExpected=" + effectExpected); if (!effectExpected) { loglogi("init(): setting state to STATE_NOT_SUPPORTED due to effect not expected"); @@ -278,6 +278,13 @@ public class SpatializerHelper { mSACapableDeviceTypes.add(SPAT_MODE_FOR_DEVICE_TYPE.keyAt(i)); } } + + // When initialized from AudioService, the settings string will be non-null. + // Saved settings need to be applied after spatialization support is initialized above. + if (settings != null) { + setSADeviceSettings(settings); + } + // for both transaural / binaural, we are not forcing enablement as the init() method // could have been called another time after boot in case of audioserver restart addCompatibleAudioDevice( @@ -316,7 +323,7 @@ public class SpatializerHelper { mState = STATE_UNINITIALIZED; mSpatLevel = Spatializer.SPATIALIZER_IMMERSIVE_LEVEL_NONE; mActualHeadTrackingMode = Spatializer.HEAD_TRACKING_MODE_UNSUPPORTED; - init(true); + init(true, null /* settings */); setSpatializerEnabledInt(featureEnabled); } @@ -731,7 +738,7 @@ public class SpatializerHelper { return; } if (mState == STATE_UNINITIALIZED) { - init(true); + init(true, null /* settings */); } setSpatializerEnabledInt(true); } else { |