Merge "audio service: simplify becoming noisy intent logic" into oc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
910311b356
@@ -5189,7 +5189,9 @@ public class AudioService extends IAudioService.Stub
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Devices which removal triggers intent ACTION_AUDIO_BECOMING_NOISY. The intent is only
|
// Devices which removal triggers intent ACTION_AUDIO_BECOMING_NOISY. The intent is only
|
||||||
// sent if none of these devices is connected.
|
// sent if:
|
||||||
|
// - none of these devices are connected anymore after one is disconnected AND
|
||||||
|
// - the device being disconnected is actually used for music.
|
||||||
// Access synchronized on mConnectedDevices
|
// Access synchronized on mConnectedDevices
|
||||||
int mBecomingNoisyIntentDevices =
|
int mBecomingNoisyIntentDevices =
|
||||||
AudioSystem.DEVICE_OUT_WIRED_HEADSET | AudioSystem.DEVICE_OUT_WIRED_HEADPHONE |
|
AudioSystem.DEVICE_OUT_WIRED_HEADSET | AudioSystem.DEVICE_OUT_WIRED_HEADPHONE |
|
||||||
@@ -5210,7 +5212,8 @@ public class AudioService extends IAudioService.Stub
|
|||||||
devices |= dev;
|
devices |= dev;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (devices == device) {
|
int musicDevice = getDeviceForStream(AudioSystem.STREAM_MUSIC);
|
||||||
|
if ((device == musicDevice) && (device == devices)) {
|
||||||
sendMsg(mAudioHandler,
|
sendMsg(mAudioHandler,
|
||||||
MSG_BROADCAST_AUDIO_BECOMING_NOISY,
|
MSG_BROADCAST_AUDIO_BECOMING_NOISY,
|
||||||
SENDMSG_REPLACE,
|
SENDMSG_REPLACE,
|
||||||
@@ -5829,25 +5832,9 @@ public class AudioService extends IAudioService.Stub
|
|||||||
|
|
||||||
// Must be called synchronized on mConnectedDevices
|
// Must be called synchronized on mConnectedDevices
|
||||||
private void setForceUseInt_SyncDevices(int usage, int config) {
|
private void setForceUseInt_SyncDevices(int usage, int config) {
|
||||||
switch (usage) {
|
if (usage == AudioSystem.FOR_MEDIA) {
|
||||||
case AudioSystem.FOR_MEDIA:
|
|
||||||
if (config == AudioSystem.FORCE_NO_BT_A2DP) {
|
|
||||||
mBecomingNoisyIntentDevices &= ~AudioSystem.DEVICE_OUT_ALL_A2DP;
|
|
||||||
} else { // config == AudioSystem.FORCE_NONE
|
|
||||||
mBecomingNoisyIntentDevices |= AudioSystem.DEVICE_OUT_ALL_A2DP;
|
|
||||||
}
|
|
||||||
sendMsg(mAudioHandler, MSG_REPORT_NEW_ROUTES,
|
sendMsg(mAudioHandler, MSG_REPORT_NEW_ROUTES,
|
||||||
SENDMSG_NOOP, 0, 0, null, 0);
|
SENDMSG_NOOP, 0, 0, null, 0);
|
||||||
break;
|
|
||||||
case AudioSystem.FOR_DOCK:
|
|
||||||
if (config == AudioSystem.FORCE_ANALOG_DOCK) {
|
|
||||||
mBecomingNoisyIntentDevices |= AudioSystem.DEVICE_OUT_ANLG_DOCK_HEADSET;
|
|
||||||
} else { // config == AudioSystem.FORCE_NONE
|
|
||||||
mBecomingNoisyIntentDevices &= ~AudioSystem.DEVICE_OUT_ANLG_DOCK_HEADSET;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
// usage doesn't affect the broadcast of ACTION_AUDIO_BECOMING_NOISY
|
|
||||||
}
|
}
|
||||||
AudioSystem.setForceUse(usage, config);
|
AudioSystem.setForceUse(usage, config);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user