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_RINGING = 1;
|
||||||
public static final int PHONE_STATE_INCALL = 2;
|
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_NONE = 0;
|
||||||
public static final int FORCE_SPEAKER = 1;
|
public static final int FORCE_SPEAKER = 1;
|
||||||
public static final int FORCE_HEADPHONES = 2;
|
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_NO_BT_A2DP = 10;
|
||||||
public static final int FORCE_SYSTEM_ENFORCED = 11;
|
public static final int FORCE_SYSTEM_ENFORCED = 11;
|
||||||
public static final int FORCE_HDMI_SYSTEM_AUDIO_ENFORCED = 12;
|
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;
|
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_COMMUNICATION = 0;
|
||||||
public static final int FOR_MEDIA = 1;
|
public static final int FOR_MEDIA = 1;
|
||||||
public static final int FOR_RECORD = 2;
|
public static final int FOR_RECORD = 2;
|
||||||
public static final int FOR_DOCK = 3;
|
public static final int FOR_DOCK = 3;
|
||||||
public static final int FOR_SYSTEM = 4;
|
public static final int FOR_SYSTEM = 4;
|
||||||
public static final int FOR_HDMI_SYSTEM_AUDIO = 5;
|
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
|
// usage for AudioRecord.startRecordingSync(), must match AudioSystem::sync_event_t
|
||||||
public static final int SYNC_EVENT_NONE = 0;
|
public static final int SYNC_EVENT_NONE = 0;
|
||||||
|
|||||||
@@ -849,6 +849,7 @@ public class AudioService extends IAudioService.Stub {
|
|||||||
AudioSystem.setForceUse(AudioSystem.FOR_DOCK,
|
AudioSystem.setForceUse(AudioSystem.FOR_DOCK,
|
||||||
mDockAudioMediaEnabled ?
|
mDockAudioMediaEnabled ?
|
||||||
AudioSystem.FORCE_ANALOG_DOCK : AudioSystem.FORCE_NONE);
|
AudioSystem.FORCE_ANALOG_DOCK : AudioSystem.FORCE_NONE);
|
||||||
|
readEncodedSurroundMode(mContentResolver);
|
||||||
}
|
}
|
||||||
if (mHdmiManager != null) {
|
if (mHdmiManager != null) {
|
||||||
synchronized (mHdmiManager) {
|
synchronized (mHdmiManager) {
|
||||||
@@ -1011,6 +1012,7 @@ public class AudioService extends IAudioService.Stub {
|
|||||||
0);
|
0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void updateMasterMono(ContentResolver cr)
|
private void updateMasterMono(ContentResolver cr)
|
||||||
{
|
{
|
||||||
final boolean masterMono = System.getIntForUser(
|
final boolean masterMono = System.getIntForUser(
|
||||||
@@ -1021,6 +1023,44 @@ public class AudioService extends IAudioService.Stub {
|
|||||||
AudioSystem.setMasterMono(masterMono);
|
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() {
|
private void readPersistedSettings() {
|
||||||
final ContentResolver cr = mContentResolver;
|
final ContentResolver cr = mContentResolver;
|
||||||
|
|
||||||
@@ -1062,6 +1102,7 @@ public class AudioService extends IAudioService.Stub {
|
|||||||
|
|
||||||
updateRingerModeAffectedStreams();
|
updateRingerModeAffectedStreams();
|
||||||
readDockAudioSettings(cr);
|
readDockAudioSettings(cr);
|
||||||
|
readEncodedSurroundMode(cr);
|
||||||
}
|
}
|
||||||
|
|
||||||
mMuteAffectedStreams = System.getIntForUser(cr,
|
mMuteAffectedStreams = System.getIntForUser(cr,
|
||||||
@@ -4628,6 +4669,7 @@ public class AudioService extends IAudioService.Stub {
|
|||||||
}
|
}
|
||||||
readDockAudioSettings(mContentResolver);
|
readDockAudioSettings(mContentResolver);
|
||||||
updateMasterMono(mContentResolver);
|
updateMasterMono(mContentResolver);
|
||||||
|
readEncodedSurroundMode(mContentResolver);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user