audio policy: fix selected device Id in getOutputForAttr

Restore passing of selected device ID to audio policy manager by
getOutputForAttr() and getInputForAttr() which was dropped by commit
0a4904a1.

Bug: 178950206
Test: atest android.media.cts.RoutingTest#test_mediaPlayer_incallMusicRoutingPermissions
Change-Id: Iebadec1674a838a276cd0c803a978af2c21fa64b
diff --git a/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp b/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp
index fed88a4..5bb03c8 100644
--- a/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp
+++ b/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp
@@ -280,6 +280,7 @@
                                             int32_t uidAidl,
                                             const media::AudioConfig& configAidl,
                                             int32_t flagsAidl,
+                                            int32_t selectedDeviceIdAidl,
                                             media::GetOutputForAttrResponse* _aidl_return)
 {
     audio_attributes_t attr = VALUE_OR_RETURN_BINDER_STATUS(
@@ -293,8 +294,10 @@
             aidl2legacy_AudioConfig_audio_config_t(configAidl));
     audio_output_flags_t flags = VALUE_OR_RETURN_BINDER_STATUS(
             aidl2legacy_int32_t_audio_output_flags_t_mask(flagsAidl));
+    audio_port_handle_t selectedDeviceId = VALUE_OR_RETURN_BINDER_STATUS(
+            aidl2legacy_int32_t_audio_port_handle_t(selectedDeviceIdAidl));
+
     audio_io_handle_t output;
-    audio_port_handle_t selectedDeviceId;
     audio_port_handle_t portId;
     std::vector<audio_io_handle_t> secondaryOutputs;
 
@@ -504,6 +507,7 @@
                                            const std::string& opPackageNameAidl,
                                            const media::AudioConfigBase& configAidl,
                                            int32_t flagsAidl,
+                                           int32_t selectedDeviceIdAidl,
                                            media::GetInputForAttrResponse* _aidl_return) {
     audio_attributes_t attr = VALUE_OR_RETURN_BINDER_STATUS(
             aidl2legacy_AudioAttributesInternal_audio_attributes_t(attrAidl));
@@ -521,7 +525,9 @@
             aidl2legacy_AudioConfigBase_audio_config_base_t(configAidl));
     audio_input_flags_t flags = VALUE_OR_RETURN_BINDER_STATUS(
             aidl2legacy_int32_t_audio_input_flags_t_mask(flagsAidl));
-    audio_port_handle_t selectedDeviceId;
+    audio_port_handle_t selectedDeviceId = VALUE_OR_RETURN_BINDER_STATUS(
+                aidl2legacy_int32_t_audio_port_handle_t(selectedDeviceIdAidl));
+
     audio_port_handle_t portId;
 
     if (mAudioPolicyManager == NULL) {
diff --git a/services/audiopolicy/service/AudioPolicyService.h b/services/audiopolicy/service/AudioPolicyService.h
index c22ed9b..72d8f28 100644
--- a/services/audiopolicy/service/AudioPolicyService.h
+++ b/services/audiopolicy/service/AudioPolicyService.h
@@ -81,7 +81,7 @@
     binder::Status getOutput(media::AudioStreamType stream, int32_t* _aidl_return) override;
     binder::Status getOutputForAttr(const media::AudioAttributesInternal& attr, int32_t session,
                                     int32_t pid, int32_t uid, const media::AudioConfig& config,
-                                    int32_t flags,
+                                    int32_t flags, int32_t selectedDeviceId,
                                     media::GetOutputForAttrResponse* _aidl_return) override;
     binder::Status startOutput(int32_t portId) override;
     binder::Status stopOutput(int32_t portId) override;
@@ -90,6 +90,7 @@
                                    int32_t riid, int32_t session, int32_t pid, int32_t uid,
                                    const std::string& opPackageName,
                                    const media::AudioConfigBase& config, int32_t flags,
+                                   int32_t selectedDeviceId,
                                    media::GetInputForAttrResponse* _aidl_return) override;
     binder::Status startInput(int32_t portId) override;
     binder::Status stopInput(int32_t portId) override;