summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Kondik <steve@cyngn.com>2016-04-15 22:34:48 -0700
committerSteve Kondik <steve@cyngn.com>2016-04-15 22:39:00 -0700
commit58f99de136d4f9e67f71a52dff49427653e63aaa (patch)
tree29e1c7db0362ee860fddcfc3801258dfd56e06a6
parentad3dc3a1d00df809bfac4b288cd676cfb5b1724b (diff)
downloadandroid_packages_apps_AudioFX-58f99de136d4f9e67f71a52dff49427653e63aaa.tar.gz
android_packages_apps_AudioFX-58f99de136d4f9e67f71a52dff49427653e63aaa.tar.bz2
android_packages_apps_AudioFX-58f99de136d4f9e67f71a52dff49427653e63aaa.zip
audiofx: Don't auto-attach if a recording is active
* Some apps use loopback over the headphone path to perform various functions and tests. Disable auto-attach if this is detected since we don't want to interfere with it. Change-Id: I5143fb5b10abc5840331b3393cd12d78c6c43091
-rw-r--r--src/com/cyngn/audiofx/service/SessionManager.java7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/com/cyngn/audiofx/service/SessionManager.java b/src/com/cyngn/audiofx/service/SessionManager.java
index 188932b..ac1e0b8 100644
--- a/src/com/cyngn/audiofx/service/SessionManager.java
+++ b/src/com/cyngn/audiofx/service/SessionManager.java
@@ -122,6 +122,13 @@ class SessionManager extends AudioOutputChangeListener implements AudioSystem.Ef
|| (flags & AudioFxService.AUDIO_OUTPUT_FLAG_DEEP_BUFFER) > 0;
final boolean stereo = channelMask < 0 || channelMask > 1;
+ // Never auto-attach is someone is recording! We don't want to interfere with any sort of
+ // loopback mechanisms.
+ final boolean recording = AudioSystem.isSourceActive(0) || AudioSystem.isSourceActive(6);
+ if (recording) {
+ Log.w(TAG, "Recording in progress, not performing auto-attach!");
+ return;
+ }
if (music && offloaded && stereo && !mHandler.hasMessages(MSG_ADD_SESSION, sessionId)) {
if (DEBUG) Log.i(TAG, String.format("New audio session: %d [flags=%d channelMask=%d uid=%d]",
sessionId, flags, channelMask, uid));