FM: Disable HW loopback, if already enabled
- Disable HW loopback, if already enabled
Change-Id: I2350328b896d911debb138015c97208e1284750a
diff --git a/fmapp2/src/com/caf/fmradio/FMRadioService.java b/fmapp2/src/com/caf/fmradio/FMRadioService.java
index 977ad3f..944a78c 100644
--- a/fmapp2/src/com/caf/fmradio/FMRadioService.java
+++ b/fmapp2/src/com/caf/fmradio/FMRadioService.java
@@ -524,6 +524,15 @@
Log.d(LOGTAG, "configureFMDeviceLoopback enable:" + enable +
" DeviceLoopbackActive:" + mIsFMDeviceLoopbackActive);
if (enable && mIsFMDeviceLoopbackActive == false) {
+ status = AudioSystem.getDeviceConnectionState(AudioSystem.DEVICE_OUT_FM,"");
+ Log.d(LOGTAG," FM hardwareLoopback Status = " + status);
+ if( status == AudioSystem.DEVICE_STATE_AVAILABLE) {
+ // This case usually happens, when FM is force killed through settings app
+ // and we don't get chance to disable Hardware LoopBack.
+ Log.d(LOGTAG," FM HardwareLoopBack Active, disable it first");
+ status = AudioSystem.setDeviceConnectionState(AudioSystem.DEVICE_OUT_FM,
+ AudioSystem.DEVICE_STATE_UNAVAILABLE, "", "");
+ }
status = AudioSystem.setDeviceConnectionState(AudioSystem.DEVICE_OUT_FM,
AudioSystem.DEVICE_STATE_AVAILABLE, "", "");
if (status != AudioSystem.SUCCESS) {