Reopen output when routing changed for preferred mixer.

When output stream is open with preferred mixer attributes, it should
apply to the targeted device. In that case, when the routed device is
changed, close the output with preferred mixer attributes and reopen
with default configuration.

Bug: 239435816
Test: set preferred mixer attr, connect and disconnect BT while playing
      over USB device.
Test: atest audiopolicy_tests
Change-Id: I982c47d9786ae56314f7c8ba8c1361cd2c2e9f42
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.h b/services/audiopolicy/managerdefault/AudioPolicyManager.h
index 034093c..1ada3cc 100644
--- a/services/audiopolicy/managerdefault/AudioPolicyManager.h
+++ b/services/audiopolicy/managerdefault/AudioPolicyManager.h
@@ -1305,10 +1305,14 @@
 
         sp<PreferredMixerAttributesInfo> getPreferredMixerAttributesInfo(
                 audio_port_handle_t devicePortId, product_strategy_t strategy);
-        status_t reopenOutput(sp<SwAudioOutputDescriptor> outputDesc,
-                              const audio_config_t *config,
-                              audio_output_flags_t flags,
-                              const char* caller);
+        sp<SwAudioOutputDescriptor> reopenOutput(
+                sp<SwAudioOutputDescriptor> outputDesc,
+                const audio_config_t *config,
+                audio_output_flags_t flags,
+                const char* caller);
+
+        void reopenOutputsWithDevices(
+                const std::map<audio_io_handle_t, DeviceVector>& outputsToReopen);
 };
 
 };