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

am: 4e572d32f8

* commit '4e572d32f870cec54100ea47f4828bfe483bb50e':
  AudioService: add support for ENCODED_SURROUND_OUTPUT
This commit is contained in:
Phil Burk
2016-03-01 00:16:51 +00:00
committed by android-build-merger
2 changed files with 50 additions and 5 deletions

View File

@@ -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;

View File

@@ -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);
}
}
}
@@ -6315,4 +6357,4 @@ public class AudioService extends IAudioService.Stub {
if (DEBUG_VOL) Log.d(TAG, "Reloaded controller service: " + this);
}
}
}
}