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:
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user