Fix issue 2242614: Wired headset not recognized: bogus "state" in ACTION_HEADSET_PLUG broadcast.
Removed platform specific devices from the list of devices listed in AudioSystem.
diff --git a/libaudio-qsd8k/AudioHardware.cpp b/libaudio-qsd8k/AudioHardware.cpp
index e8b3792..e75ad40 100644
--- a/libaudio-qsd8k/AudioHardware.cpp
+++ b/libaudio-qsd8k/AudioHardware.cpp
@@ -1147,11 +1147,8 @@
}
}
- if (outputDevices & AudioSystem::DEVICE_OUT_TTY) {
- LOGI("Routing audio to TTY\n");
- sndDevice = SND_DEVICE_TTY_FULL;
- } else if (outputDevices &
- (AudioSystem::DEVICE_OUT_BLUETOOTH_SCO | AudioSystem::DEVICE_OUT_BLUETOOTH_SCO_HEADSET)) {
+ if (outputDevices &
+ (AudioSystem::DEVICE_OUT_BLUETOOTH_SCO | AudioSystem::DEVICE_OUT_BLUETOOTH_SCO_HEADSET)) {
LOGI("Routing audio to Bluetooth PCM\n");
sndDevice = SND_DEVICE_BT;
} else if (outputDevices & AudioSystem::DEVICE_OUT_BLUETOOTH_SCO_CARKIT) {
@@ -1161,17 +1158,6 @@
(outputDevices & AudioSystem::DEVICE_OUT_SPEAKER)) {
LOGI("Routing audio to Wired Headset and Speaker\n");
sndDevice = SND_DEVICE_HEADSET_AND_SPEAKER;
- } else if (outputDevices & AudioSystem::DEVICE_OUT_FM_SPEAKER) {
- LOGI("Routing audio to FM Speakerphone (%d,%x)\n", mMode, outputDevices);
- sndDevice = SND_DEVICE_FM_SPEAKER;
- } else if (outputDevices & AudioSystem::DEVICE_OUT_FM_HEADPHONE) {
- if (outputDevices & AudioSystem::DEVICE_OUT_SPEAKER) {
- LOGI("Routing audio to FM Headset and Speaker (%d,%x)\n", mMode, outputDevices);
- sndDevice = SND_DEVICE_HEADSET_AND_SPEAKER;
- } else {
- LOGI("Routing audio to FM Headset (%d,%x)\n", mMode, outputDevices);
- sndDevice = SND_DEVICE_FM_HEADSET;
- }
} else if (outputDevices & AudioSystem::DEVICE_OUT_WIRED_HEADPHONE) {
if (outputDevices & AudioSystem::DEVICE_OUT_SPEAKER) {
LOGI("Routing audio to No microphone Wired Headset and Speaker (%d,%x)\n", mMode, outputDevices);
diff --git a/libaudio-qsd8k/AudioPolicyManager.cpp b/libaudio-qsd8k/AudioPolicyManager.cpp
index 0eec415..4e4c4d4 100644
--- a/libaudio-qsd8k/AudioPolicyManager.cpp
+++ b/libaudio-qsd8k/AudioPolicyManager.cpp
@@ -214,33 +214,6 @@
mOutputs.valueFor(mHardwareOutput)->isUsedByStrategy(STRATEGY_DTMF)) {
newDevice = device;
}
- } else if (device == AudioSystem::DEVICE_OUT_TTY) {
- LOGV("setDeviceConnectionState() tty device");
- // if connecting a wired headset, we check the following by order of priority
- // to request a routing change if necessary:
- // 1: we are in call or the strategy phone is active on the hardware output:
- // use device for strategy phone
- if (getDeviceForStrategy(STRATEGY_PHONE) == device &&
- (mPhoneState == AudioSystem::MODE_IN_CALL ||
- mOutputs.valueFor(mHardwareOutput)->isUsedByStrategy(STRATEGY_PHONE))) {
- newDevice = device;
- }
- } else if (device == AudioSystem::DEVICE_OUT_FM_SPEAKER ||
- device == AudioSystem::DEVICE_OUT_FM_HEADPHONE) {
- LOGV("setDeviceConnectionState() no mic headphone device");
- // if connecting a wired headset, we check the following by order of priority
- // to request a routing change if necessary:
- // 1: the strategy sonification is active on the hardware output:
- // use device for strategy sonification
- // 2: the strategy media is active on the hardware output:
- // use device for strategy media
- if ((getDeviceForStrategy(STRATEGY_SONIFICATION) & device) &&
- mOutputs.valueFor(mHardwareOutput)->isUsedByStrategy(STRATEGY_SONIFICATION)){
- newDevice = getDeviceForStrategy(STRATEGY_SONIFICATION);
- } else if ((getDeviceForStrategy(STRATEGY_MEDIA) == device) &&
- mOutputs.valueFor(mHardwareOutput)->isUsedByStrategy(STRATEGY_MEDIA)){
- newDevice = device;
- }
}
// request routing change if necessary
@@ -390,23 +363,6 @@
mOutputs.valueFor(mHardwareOutput)->isUsedByStrategy(STRATEGY_DTMF)){
newDevice = getDeviceForStrategy(STRATEGY_DTMF);
}
- } else if (device == AudioSystem::DEVICE_OUT_TTY) {
- LOGV("setDeviceConnectionState() tty device");
- if (wasUsedforPhone &&
- (mPhoneState == AudioSystem::MODE_IN_CALL ||
- mOutputs.valueFor(mHardwareOutput)->isUsedByStrategy(STRATEGY_PHONE))) {
- newDevice = getDeviceForStrategy(STRATEGY_PHONE);
- }
- } else if (device == AudioSystem::DEVICE_OUT_FM_SPEAKER ||
- device == AudioSystem::DEVICE_OUT_FM_HEADPHONE) {
- LOGV("setDeviceConnectionState() no mic headphone device");
- if (wasUsedForSonification &&
- mOutputs.valueFor(mHardwareOutput)->isUsedByStrategy(STRATEGY_SONIFICATION)){
- newDevice = getDeviceForStrategy(STRATEGY_SONIFICATION);
- } else if (wasUsedForMedia &&
- mOutputs.valueFor(mHardwareOutput)->isUsedByStrategy(STRATEGY_MEDIA)){
- newDevice = getDeviceForStrategy(STRATEGY_MEDIA);
- }
}
}
// request routing change if necessary
@@ -1371,8 +1327,6 @@
// FALL THROUGH
default: // FORCE_NONE
- device = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_TTY;
- if (device) break;
device = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_WIRED_HEADPHONE;
if (device) break;
device = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_WIRED_HEADSET;
@@ -1388,8 +1342,6 @@
device = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_BLUETOOTH_SCO_CARKIT;
if (device) break;
}
- device = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_FM_SPEAKER;
- if (device) break;
device = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_SPEAKER;
if (device == 0) {
LOGE("getDeviceForStrategy() speaker device not found");
@@ -1422,19 +1374,13 @@
if (device2 == 0) {
device2 = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER;
if (device2 == 0) {
- device2 = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_FM_HEADPHONE;
+ device2 = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_WIRED_HEADPHONE;
if (device2 == 0) {
- device2 = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_FM_SPEAKER;
+ device2 = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_WIRED_HEADSET;
if (device2 == 0) {
- device2 = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_WIRED_HEADPHONE;
- if (device2 == 0) {
- device2 = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_WIRED_HEADSET;
- if (device2 == 0) {
- device = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_SPEAKER;
- if (device == 0) {
- LOGE("getDeviceForStrategy() speaker device not found");
- }
- }
+ device = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_SPEAKER;
+ if (device == 0) {
+ LOGE("getDeviceForStrategy() speaker device not found");
}
}
}
diff --git a/libaudio/AudioHardware.cpp b/libaudio/AudioHardware.cpp
index 310968c..ac56ec2 100644
--- a/libaudio/AudioHardware.cpp
+++ b/libaudio/AudioHardware.cpp
@@ -541,11 +541,8 @@
}
}
- if (outputDevices & AudioSystem::DEVICE_OUT_TTY) {
- LOGI("Routing audio to TTY\n");
- sndDevice = SND_DEVICE_TTY_FULL;
- } else if (outputDevices &
- (AudioSystem::DEVICE_OUT_BLUETOOTH_SCO | AudioSystem::DEVICE_OUT_BLUETOOTH_SCO_HEADSET)) {
+ if (outputDevices &
+ (AudioSystem::DEVICE_OUT_BLUETOOTH_SCO | AudioSystem::DEVICE_OUT_BLUETOOTH_SCO_HEADSET)) {
LOGI("Routing audio to Bluetooth PCM\n");
sndDevice = SND_DEVICE_BT;
} else if (outputDevices & AudioSystem::DEVICE_OUT_BLUETOOTH_SCO_CARKIT) {
@@ -556,19 +553,6 @@
LOGI("Routing audio to Wired Headset and Speaker\n");
sndDevice = SND_DEVICE_HEADSET_AND_SPEAKER;
audProcess = (ADRC_ENABLE | EQ_ENABLE | RX_IIR_ENABLE);
- } else if (outputDevices & AudioSystem::DEVICE_OUT_FM_SPEAKER) {
- LOGI("Routing audio to FM Speakerphone (%d,%x)\n", mMode, outputDevices);
- sndDevice = SND_DEVICE_FM_SPEAKER;
- audProcess = (ADRC_ENABLE | EQ_ENABLE | RX_IIR_DISABLE);
- } else if (outputDevices & AudioSystem::DEVICE_OUT_FM_HEADPHONE) {
- if (outputDevices & AudioSystem::DEVICE_OUT_SPEAKER) {
- LOGI("Routing audio to FM Headset and Speaker (%d,%x)\n", mMode, outputDevices);
- sndDevice = SND_DEVICE_HEADSET_AND_SPEAKER;
- audProcess = (ADRC_ENABLE | EQ_ENABLE | RX_IIR_ENABLE);
- } else {
- LOGI("Routing audio to FM Headset (%d,%x)\n", mMode, outputDevices);
- sndDevice = SND_DEVICE_FM_HEADSET;
- }
} else if (outputDevices & AudioSystem::DEVICE_OUT_WIRED_HEADPHONE) {
if (outputDevices & AudioSystem::DEVICE_OUT_SPEAKER) {
LOGI("Routing audio to No microphone Wired Headset and Speaker (%d,%x)\n", mMode, outputDevices);
diff --git a/libaudio/AudioPolicyManager.cpp b/libaudio/AudioPolicyManager.cpp
index fb4319e..cceb91e 100644
--- a/libaudio/AudioPolicyManager.cpp
+++ b/libaudio/AudioPolicyManager.cpp
@@ -214,35 +214,7 @@
mOutputs.valueFor(mHardwareOutput)->isUsedByStrategy(STRATEGY_DTMF)) {
newDevice = device;
}
- } else if (device == AudioSystem::DEVICE_OUT_TTY) {
- LOGV("setDeviceConnectionState() tty device");
- // if connecting a wired headset, we check the following by order of priority
- // to request a routing change if necessary:
- // 1: we are in call or the strategy phone is active on the hardware output:
- // use device for strategy phone
- if (getDeviceForStrategy(STRATEGY_PHONE) == device &&
- (mPhoneState == AudioSystem::MODE_IN_CALL ||
- mOutputs.valueFor(mHardwareOutput)->isUsedByStrategy(STRATEGY_PHONE))) {
- newDevice = device;
- }
- } else if (device == AudioSystem::DEVICE_OUT_FM_SPEAKER ||
- device == AudioSystem::DEVICE_OUT_FM_HEADPHONE) {
- LOGV("setDeviceConnectionState() no mic headphone device");
- // if connecting a wired headset, we check the following by order of priority
- // to request a routing change if necessary:
- // 1: the strategy sonification is active on the hardware output:
- // use device for strategy sonification
- // 2: the strategy media is active on the hardware output:
- // use device for strategy media
- if ((getDeviceForStrategy(STRATEGY_SONIFICATION) & device) &&
- mOutputs.valueFor(mHardwareOutput)->isUsedByStrategy(STRATEGY_SONIFICATION)){
- newDevice = getDeviceForStrategy(STRATEGY_SONIFICATION);
- } else if ((getDeviceForStrategy(STRATEGY_MEDIA) == device) &&
- mOutputs.valueFor(mHardwareOutput)->isUsedByStrategy(STRATEGY_MEDIA)){
- newDevice = device;
- }
}
-
// request routing change if necessary
setOutputDevice(mHardwareOutput, newDevice);
}
@@ -390,23 +362,6 @@
mOutputs.valueFor(mHardwareOutput)->isUsedByStrategy(STRATEGY_DTMF)){
newDevice = getDeviceForStrategy(STRATEGY_DTMF);
}
- } else if (device == AudioSystem::DEVICE_OUT_TTY) {
- LOGV("setDeviceConnectionState() tty device");
- if (wasUsedforPhone &&
- (mPhoneState == AudioSystem::MODE_IN_CALL ||
- mOutputs.valueFor(mHardwareOutput)->isUsedByStrategy(STRATEGY_PHONE))) {
- newDevice = getDeviceForStrategy(STRATEGY_PHONE);
- }
- } else if (device == AudioSystem::DEVICE_OUT_FM_SPEAKER ||
- device == AudioSystem::DEVICE_OUT_FM_HEADPHONE) {
- LOGV("setDeviceConnectionState() no mic headphone device");
- if (wasUsedForSonification &&
- mOutputs.valueFor(mHardwareOutput)->isUsedByStrategy(STRATEGY_SONIFICATION)){
- newDevice = getDeviceForStrategy(STRATEGY_SONIFICATION);
- } else if (wasUsedForMedia &&
- mOutputs.valueFor(mHardwareOutput)->isUsedByStrategy(STRATEGY_MEDIA)){
- newDevice = getDeviceForStrategy(STRATEGY_MEDIA);
- }
}
}
// request routing change if necessary
@@ -1345,8 +1300,6 @@
// FALL THROUGH
default: // FORCE_NONE
- device = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_TTY;
- if (device) break;
device = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_WIRED_HEADPHONE;
if (device) break;
device = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_WIRED_HEADSET;
@@ -1362,8 +1315,6 @@
device = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_BLUETOOTH_SCO_CARKIT;
if (device) break;
}
- device = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_FM_SPEAKER;
- if (device) break;
device = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_SPEAKER;
if (device == 0) {
LOGE("getDeviceForStrategy() speaker device not found");
@@ -1396,19 +1347,13 @@
if (device2 == 0) {
device2 = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER;
if (device2 == 0) {
- device2 = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_FM_HEADPHONE;
+ device2 = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_WIRED_HEADPHONE;
if (device2 == 0) {
- device2 = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_FM_SPEAKER;
+ device2 = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_WIRED_HEADSET;
if (device2 == 0) {
- device2 = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_WIRED_HEADPHONE;
- if (device2 == 0) {
- device2 = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_WIRED_HEADSET;
- if (device2 == 0) {
- device = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_SPEAKER;
- if (device == 0) {
- LOGE("getDeviceForStrategy() speaker device not found");
- }
- }
+ device = mAvailableOutputDevices & AudioSystem::DEVICE_OUT_SPEAKER;
+ if (device == 0) {
+ LOGE("getDeviceForStrategy() speaker device not found");
}
}
}