hal : Support for another instance of fm recording
-Added support for one more instance of fm recording
to play fm over a2dp.
Change-Id: I0c796c5acdc045327a8d43754e7530aab10097d9
diff --git a/policy_hal/AudioPolicyManager.cpp b/policy_hal/AudioPolicyManager.cpp
index 5992c87..0716656 100644
--- a/policy_hal/AudioPolicyManager.cpp
+++ b/policy_hal/AudioPolicyManager.cpp
@@ -29,7 +29,7 @@
// A device mask for all audio input devices that are considered "virtual" when evaluating
// active inputs in getActiveInput()
-#define APM_AUDIO_IN_DEVICE_VIRTUAL_ALL AUDIO_DEVICE_IN_REMOTE_SUBMIX
+#define APM_AUDIO_IN_DEVICE_VIRTUAL_ALL AUDIO_DEVICE_IN_REMOTE_SUBMIX | AUDIO_DEVICE_IN_FM_RX_A2DP
// A device mask for all audio output devices that are considered "remote" when evaluating
// active output devices in isStreamActiveRemotely()
#define APM_AUDIO_OUT_DEVICE_REMOTE_ALL AUDIO_DEVICE_OUT_REMOTE_SUBMIX
@@ -725,9 +725,11 @@
break;
#ifdef AUDIO_EXTN_FM_ENABLED
case AUDIO_SOURCE_FM_RX:
- case AUDIO_SOURCE_FM_RX_A2DP:
device = AUDIO_DEVICE_IN_FM_RX;
break;
+ case AUDIO_SOURCE_FM_RX_A2DP:
+ device = AUDIO_DEVICE_IN_FM_RX_A2DP;
+ break;
#endif
default:
ALOGW("getDeviceForInputSource() invalid input source %d", inputSource);
@@ -737,6 +739,16 @@
return device;
}
+bool AudioPolicyManager::isVirtualInputDevice(audio_devices_t device)
+{
+ if ((device & AUDIO_DEVICE_BIT_IN) != 0) {
+ device &= ~AUDIO_DEVICE_BIT_IN;
+ if ((popcount(device) == 1) && ((device & ~APM_AUDIO_IN_DEVICE_VIRTUAL_ALL) == 0))
+ return true;
+ }
+ return false;
+}
+
AudioPolicyManager::device_category AudioPolicyManager::getDeviceCategory(audio_devices_t device)
{
switch(getDeviceForVolume(device)) {