Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 60fb66f5 authored by Andy Hung's avatar Andy Hung Committed by Automerger Merge Worker
Browse files

Merge "SpatializerHelper: Add properties for enable defaults" into udc-dev am: a845428a

parents fa96f871 a845428a
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -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();
+15 −3
Original line number Diff line number Diff line
@@ -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) {
@@ -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 = ",";
@@ -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;
        }

+3 −1
Original line number Diff line number Diff line
@@ -80,7 +80,9 @@ public class SpatializerHelperTest {
            asAdapter = mMockAudioSystem;
        }
        mSpatHelper = new SpatializerHelper(mMockAudioService, asAdapter,
                false /*headTrackingEnabledByDefault*/);
                true /*binauralEnabledDefault*/,
                true /*transauralEnabledDefault*/,
                false /*headTrackingEnabledDefault*/);

    }