Loading services/core/java/com/android/server/audio/AudioService.java +7 −2 Original line number Diff line number Diff line Loading @@ -1046,9 +1046,14 @@ public class AudioService extends IAudioService.Stub mSfxHelper = new SoundEffectsHelper(mContext, playerBase -> ignorePlayerLogs(playerBase)); final boolean headTrackingDefault = mContext.getResources().getBoolean( final boolean binauralEnabledDefault = SystemProperties.getBoolean( "ro.audio.spatializer_binaural_enabled_default", true); final boolean transauralEnabledDefault = SystemProperties.getBoolean( "ro.audio.spatializer_transaural_enabled_default", true); final boolean headTrackingEnabledDefault = mContext.getResources().getBoolean( com.android.internal.R.bool.config_spatial_audio_head_tracking_enabled_default); mSpatializerHelper = new SpatializerHelper(this, mAudioSystem, headTrackingDefault); mSpatializerHelper = new SpatializerHelper(this, mAudioSystem, binauralEnabledDefault, transauralEnabledDefault, headTrackingEnabledDefault); mVibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE); mHasVibrator = mVibrator == null ? false : mVibrator.hasVibrator(); Loading services/core/java/com/android/server/audio/SpatializerHelper.java +15 −3 Original line number Diff line number Diff line Loading @@ -172,13 +172,17 @@ public class SpatializerHelper { // initialization @SuppressWarnings("StaticAssignmentInConstructor") SpatializerHelper(@NonNull AudioService mother, @NonNull AudioSystemAdapter asa, boolean headTrackingEnabledByDefault) { boolean binauralEnabledDefault, boolean transauralEnabledDefault, boolean headTrackingEnabledDefault) { mAudioService = mother; mASA = asa; // "StaticAssignmentInConstructor" warning is suppressed as the SpatializerHelper being // constructed here is the factory for SADeviceState, thus SADeviceState and its // private static field sHeadTrackingEnabledDefault should never be accessed directly. SADeviceState.sHeadTrackingEnabledDefault = headTrackingEnabledByDefault; SADeviceState.sBinauralEnabledDefault = binauralEnabledDefault; SADeviceState.sTransauralEnabledDefault = transauralEnabledDefault; SADeviceState.sHeadTrackingEnabledDefault = headTrackingEnabledDefault; } synchronized void init(boolean effectExpected, @Nullable String settings) { Loading Loading @@ -1547,10 +1551,12 @@ public class SpatializerHelper { } /*package*/ static final class SADeviceState { private static boolean sBinauralEnabledDefault = true; private static boolean sTransauralEnabledDefault = true; private static boolean sHeadTrackingEnabledDefault = false; final @AudioDeviceInfo.AudioDeviceType int mDeviceType; final @NonNull String mDeviceAddress; boolean mEnabled = true; // by default, SA is enabled on any device boolean mEnabled; boolean mHasHeadTracker = false; boolean mHeadTrackerEnabled; static final String SETTING_FIELD_SEPARATOR = ","; Loading @@ -1566,6 +1572,12 @@ public class SpatializerHelper { SADeviceState(@AudioDeviceInfo.AudioDeviceType int deviceType, @Nullable String address) { mDeviceType = deviceType; mDeviceAddress = isWireless(deviceType) ? Objects.requireNonNull(address) : ""; final int spatMode = SPAT_MODE_FOR_DEVICE_TYPE.get(deviceType, Integer.MIN_VALUE); mEnabled = spatMode == SpatializationMode.SPATIALIZER_BINAURAL ? sBinauralEnabledDefault : spatMode == SpatializationMode.SPATIALIZER_TRANSAURAL ? sTransauralEnabledDefault : false; mHeadTrackerEnabled = sHeadTrackingEnabledDefault; } Loading services/tests/servicestests/src/com/android/server/audio/SpatializerHelperTest.java +3 −1 Original line number Diff line number Diff line Loading @@ -80,7 +80,9 @@ public class SpatializerHelperTest { asAdapter = mMockAudioSystem; } mSpatHelper = new SpatializerHelper(mMockAudioService, asAdapter, false /*headTrackingEnabledByDefault*/); true /*binauralEnabledDefault*/, true /*transauralEnabledDefault*/, false /*headTrackingEnabledDefault*/); } Loading Loading
services/core/java/com/android/server/audio/AudioService.java +7 −2 Original line number Diff line number Diff line Loading @@ -1046,9 +1046,14 @@ public class AudioService extends IAudioService.Stub mSfxHelper = new SoundEffectsHelper(mContext, playerBase -> ignorePlayerLogs(playerBase)); final boolean headTrackingDefault = mContext.getResources().getBoolean( final boolean binauralEnabledDefault = SystemProperties.getBoolean( "ro.audio.spatializer_binaural_enabled_default", true); final boolean transauralEnabledDefault = SystemProperties.getBoolean( "ro.audio.spatializer_transaural_enabled_default", true); final boolean headTrackingEnabledDefault = mContext.getResources().getBoolean( com.android.internal.R.bool.config_spatial_audio_head_tracking_enabled_default); mSpatializerHelper = new SpatializerHelper(this, mAudioSystem, headTrackingDefault); mSpatializerHelper = new SpatializerHelper(this, mAudioSystem, binauralEnabledDefault, transauralEnabledDefault, headTrackingEnabledDefault); mVibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE); mHasVibrator = mVibrator == null ? false : mVibrator.hasVibrator(); Loading
services/core/java/com/android/server/audio/SpatializerHelper.java +15 −3 Original line number Diff line number Diff line Loading @@ -172,13 +172,17 @@ public class SpatializerHelper { // initialization @SuppressWarnings("StaticAssignmentInConstructor") SpatializerHelper(@NonNull AudioService mother, @NonNull AudioSystemAdapter asa, boolean headTrackingEnabledByDefault) { boolean binauralEnabledDefault, boolean transauralEnabledDefault, boolean headTrackingEnabledDefault) { mAudioService = mother; mASA = asa; // "StaticAssignmentInConstructor" warning is suppressed as the SpatializerHelper being // constructed here is the factory for SADeviceState, thus SADeviceState and its // private static field sHeadTrackingEnabledDefault should never be accessed directly. SADeviceState.sHeadTrackingEnabledDefault = headTrackingEnabledByDefault; SADeviceState.sBinauralEnabledDefault = binauralEnabledDefault; SADeviceState.sTransauralEnabledDefault = transauralEnabledDefault; SADeviceState.sHeadTrackingEnabledDefault = headTrackingEnabledDefault; } synchronized void init(boolean effectExpected, @Nullable String settings) { Loading Loading @@ -1547,10 +1551,12 @@ public class SpatializerHelper { } /*package*/ static final class SADeviceState { private static boolean sBinauralEnabledDefault = true; private static boolean sTransauralEnabledDefault = true; private static boolean sHeadTrackingEnabledDefault = false; final @AudioDeviceInfo.AudioDeviceType int mDeviceType; final @NonNull String mDeviceAddress; boolean mEnabled = true; // by default, SA is enabled on any device boolean mEnabled; boolean mHasHeadTracker = false; boolean mHeadTrackerEnabled; static final String SETTING_FIELD_SEPARATOR = ","; Loading @@ -1566,6 +1572,12 @@ public class SpatializerHelper { SADeviceState(@AudioDeviceInfo.AudioDeviceType int deviceType, @Nullable String address) { mDeviceType = deviceType; mDeviceAddress = isWireless(deviceType) ? Objects.requireNonNull(address) : ""; final int spatMode = SPAT_MODE_FOR_DEVICE_TYPE.get(deviceType, Integer.MIN_VALUE); mEnabled = spatMode == SpatializationMode.SPATIALIZER_BINAURAL ? sBinauralEnabledDefault : spatMode == SpatializationMode.SPATIALIZER_TRANSAURAL ? sTransauralEnabledDefault : false; mHeadTrackerEnabled = sHeadTrackingEnabledDefault; } Loading
services/tests/servicestests/src/com/android/server/audio/SpatializerHelperTest.java +3 −1 Original line number Diff line number Diff line Loading @@ -80,7 +80,9 @@ public class SpatializerHelperTest { asAdapter = mMockAudioSystem; } mSpatHelper = new SpatializerHelper(mMockAudioService, asAdapter, false /*headTrackingEnabledByDefault*/); true /*binauralEnabledDefault*/, true /*transauralEnabledDefault*/, false /*headTrackingEnabledDefault*/); } Loading