From beac78f2521c520e8fd555642effaee7e8a31d1e Mon Sep 17 00:00:00 2001 From: Jean-Michel Trivi Date: Wed, 16 Mar 2022 18:39:47 -0700 Subject: [PATCH] Spatializer: output listener fires upon registration Address API council feedback to have the output change listener report the current output upon registration. Bug: 203004903 Test: atest SpatializerTest Change-Id: I858a5efef91ad113d02af6734b7b625460f29634 --- media/java/android/media/Spatializer.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/media/java/android/media/Spatializer.java b/media/java/android/media/Spatializer.java index be0ef37345ed3..3376943cd5837 100644 --- a/media/java/android/media/Spatializer.java +++ b/media/java/android/media/Spatializer.java @@ -827,8 +827,12 @@ public class Spatializer { /** * @hide - * Returns the id of the output stream used for the spatializer effect playback + * Returns the id of the output stream used for the spatializer effect playback. + * This getter or associated listener {@link OnSpatializerOutputChangedListener} can be used for + * handling spatializer output-specific configurations (e.g. disabling speaker post-processing + * to avoid double-processing of the spatialized path). * @return id of the output stream, or 0 if no spatializer playback is active + * @see #setOnSpatializerOutputChangedListener(Executor, OnSpatializerOutputChangedListener) */ @SystemApi(client = SystemApi.Client.PRIVILEGED_APPS) @RequiresPermission(android.Manifest.permission.MODIFY_DEFAULT_AUDIO_EFFECTS) @@ -865,6 +869,8 @@ public class Spatializer { mOutputDispatcher = new SpatializerOutputDispatcherStub(); try { mAm.getService().registerSpatializerOutputCallback(mOutputDispatcher); + // immediately report the current output + mOutputDispatcher.dispatchSpatializerOutputChanged(getOutput()); } catch (RemoteException e) { mOutputListener = null; mOutputDispatcher = null;