diff options
author | Steve Kondik <steve@cyngn.com> | 2016-04-15 22:34:48 -0700 |
---|---|---|
committer | Steve Kondik <steve@cyngn.com> | 2016-04-15 22:39:00 -0700 |
commit | 58f99de136d4f9e67f71a52dff49427653e63aaa (patch) | |
tree | 29e1c7db0362ee860fddcfc3801258dfd56e06a6 | |
parent | ad3dc3a1d00df809bfac4b288cd676cfb5b1724b (diff) | |
download | android_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.java | 7 |
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)); |