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

Commit 4e572d32 authored by Phil Burk's avatar Phil Burk Committed by Android (Google) Code Review
Browse files

Merge "AudioService: add support for ENCODED_SURROUND_OUTPUT" into nyc-dev

parents 8cac67b6 ac0f704b
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -638,7 +638,7 @@ public class AudioSystem
    public static final int PHONE_STATE_RINGING = 1;
    public static final int PHONE_STATE_INCALL = 2;

    // device categories config for setForceUse, must match AudioSystem::forced_config
    // device categories config for setForceUse, must match audio_policy_forced_cfg_t
    public static final int FORCE_NONE = 0;
    public static final int FORCE_SPEAKER = 1;
    public static final int FORCE_HEADPHONES = 2;
@@ -652,17 +652,20 @@ public class AudioSystem
    public static final int FORCE_NO_BT_A2DP = 10;
    public static final int FORCE_SYSTEM_ENFORCED = 11;
    public static final int FORCE_HDMI_SYSTEM_AUDIO_ENFORCED = 12;
    private static final int NUM_FORCE_CONFIG = 13;
    public static final int FORCE_ENCODED_SURROUND_NEVER = 13;
    public static final int FORCE_ENCODED_SURROUND_ALWAYS = 14;
    public static final int NUM_FORCE_CONFIG = 15;
    public static final int FORCE_DEFAULT = FORCE_NONE;

    // usage for setForceUse, must match AudioSystem::force_use
    // usage for setForceUse, must match audio_policy_force_use_t
    public static final int FOR_COMMUNICATION = 0;
    public static final int FOR_MEDIA = 1;
    public static final int FOR_RECORD = 2;
    public static final int FOR_DOCK = 3;
    public static final int FOR_SYSTEM = 4;
    public static final int FOR_HDMI_SYSTEM_AUDIO = 5;
    private static final int NUM_FORCE_USE = 6;
    public static final int FOR_ENCODED_SURROUND = 6;
    private static final int NUM_FORCE_USE = 7;

    // usage for AudioRecord.startRecordingSync(), must match AudioSystem::sync_event_t
    public static final int SYNC_EVENT_NONE = 0;
+43 −1
Original line number Diff line number Diff line
@@ -849,6 +849,7 @@ public class AudioService extends IAudioService.Stub {
            AudioSystem.setForceUse(AudioSystem.FOR_DOCK,
                    mDockAudioMediaEnabled ?
                            AudioSystem.FORCE_ANALOG_DOCK : AudioSystem.FORCE_NONE);
            readEncodedSurroundMode(mContentResolver);
        }
        if (mHdmiManager != null) {
            synchronized (mHdmiManager) {
@@ -1011,6 +1012,7 @@ public class AudioService extends IAudioService.Stub {
                0);
    }


    private void updateMasterMono(ContentResolver cr)
    {
        final boolean masterMono = System.getIntForUser(
@@ -1021,6 +1023,44 @@ public class AudioService extends IAudioService.Stub {
        AudioSystem.setMasterMono(masterMono);
    }

    private void readEncodedSurroundMode(ContentResolver cr)
    {
        int encodedSurroundMode = Settings.Global.getInt(
                cr, Settings.Global.ENCODED_SURROUND_OUTPUT,
                Settings.Global.ENCODED_SURROUND_OUTPUT_AUTO);
        sendEncodedSurroundMode(encodedSurroundMode);
    }

    private void sendEncodedSurroundMode(int encodedSurroundMode)
    {
        // initialize to guaranteed bad value
        int forceSetting = AudioSystem.NUM_FORCE_CONFIG;
        switch (encodedSurroundMode) {
            case Settings.Global.ENCODED_SURROUND_OUTPUT_AUTO:
                forceSetting = AudioSystem.FORCE_NONE;
                break;
            case Settings.Global.ENCODED_SURROUND_OUTPUT_NEVER:
                forceSetting = AudioSystem.FORCE_ENCODED_SURROUND_NEVER;
                break;
            case Settings.Global.ENCODED_SURROUND_OUTPUT_ALWAYS:
                forceSetting = AudioSystem.FORCE_ENCODED_SURROUND_ALWAYS;
                break;
            default:
                Log.e(TAG, "updateSurroundSoundSettings: illegal value "
                        + encodedSurroundMode);
                break;
        }
        if (forceSetting != AudioSystem.NUM_FORCE_CONFIG) {
            sendMsg(mAudioHandler,
                    MSG_SET_FORCE_USE,
                    SENDMSG_QUEUE,
                    AudioSystem.FOR_ENCODED_SURROUND,
                    forceSetting,
                    null,
                    0);
        }
    }

    private void readPersistedSettings() {
        final ContentResolver cr = mContentResolver;

@@ -1062,6 +1102,7 @@ public class AudioService extends IAudioService.Stub {

            updateRingerModeAffectedStreams();
            readDockAudioSettings(cr);
            readEncodedSurroundMode(cr);
        }

        mMuteAffectedStreams = System.getIntForUser(cr,
@@ -4628,6 +4669,7 @@ public class AudioService extends IAudioService.Stub {
                }
                readDockAudioSettings(mContentResolver);
                updateMasterMono(mContentResolver);
                readEncodedSurroundMode(mContentResolver);
            }
        }
    }