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
This commit is contained in:
Jean-Michel Trivi
2022-03-16 18:39:47 -07:00
parent ec74b17af9
commit beac78f252

View File

@@ -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;