From c7b72600a97fa30ff6213818462aa3ab09516be0 Mon Sep 17 00:00:00 2001 From: Robert Berry Date: Mon, 28 Jan 2019 15:36:17 -0800 Subject: Audio Policy: Allow to use DAP RENDER|LOOPBACK Test: adb shell audiorecorder --target /data/file.raw Bug: 111453086 Change-Id: I11698ece5164e10118967e84717bc3a6c17419cf Signed-off-by: Kevin Rocard Signed-off-by: Robert Berry --- media/java/android/media/audiopolicy/AudioMix.java | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/media/java/android/media/audiopolicy/AudioMix.java b/media/java/android/media/audiopolicy/AudioMix.java index 1c6210e0c060..761b62588e5a 100644 --- a/media/java/android/media/audiopolicy/AudioMix.java +++ b/media/java/android/media/audiopolicy/AudioMix.java @@ -353,11 +353,6 @@ public class AudioMix { // no route flags set, use default as described in Builder.setRouteFlags(int) mRouteFlags = ROUTE_FLAG_LOOP_BACK; } - // can't do loop back AND render at same time in this implementation - if (mRouteFlags == (ROUTE_FLAG_RENDER | ROUTE_FLAG_LOOP_BACK)) { - throw new IllegalArgumentException("Unsupported route behavior combination 0x" + - Integer.toHexString(mRouteFlags)); - } if (mFormat == null) { // FIXME Can we eliminate this? Will AudioMix work with an unspecified sample rate? int rate = AudioSystem.getPrimaryOutputSamplingRate(); @@ -377,11 +372,11 @@ public class AudioMix { throw new IllegalArgumentException("Unsupported device on non-playback mix"); } } else { - if ((mRouteFlags & ROUTE_FLAG_RENDER) == ROUTE_FLAG_RENDER) { + if ((mRouteFlags & ROUTE_FLAG_SUPPORTED) == ROUTE_FLAG_RENDER) { throw new IllegalArgumentException( "Can't have flag ROUTE_FLAG_RENDER without an audio device"); } - if ((mRouteFlags & ROUTE_FLAG_SUPPORTED) == ROUTE_FLAG_LOOP_BACK) { + if ((mRouteFlags & ROUTE_FLAG_LOOP_BACK) == ROUTE_FLAG_LOOP_BACK) { if (mRule.getTargetMixType() == MIX_TYPE_PLAYERS) { mDeviceSystemType = AudioSystem.DEVICE_OUT_REMOTE_SUBMIX; } else if (mRule.getTargetMixType() == MIX_TYPE_RECORDERS) { -- cgit v1.2.3-59-g8ed1b