Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 83b5d499 authored by Eric Laurent's avatar Eric Laurent Committed by Android (Google) Code Review
Browse files

Merge "audio policy: fix selected device Id in getOutputForAttr" into sc-dev

parents c97b5ed7 f99edd33
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -980,12 +980,14 @@ status_t AudioSystem::getOutputForAttr(audio_attributes_t* attr,
            legacy2aidl_audio_config_t_AudioConfig(*config));
    int32_t flagsAidl = VALUE_OR_RETURN_STATUS(
            legacy2aidl_audio_output_flags_t_int32_t_mask(flags));
    int32_t selectedDeviceIdAidl = VALUE_OR_RETURN_STATUS(
            legacy2aidl_audio_port_handle_t_int32_t(*selectedDeviceId));

    media::GetOutputForAttrResponse responseAidl;

    RETURN_STATUS_IF_ERROR(statusTFromBinderStatus(
            aps->getOutputForAttr(attrAidl, sessionAidl, pidAidl, uidAidl, configAidl, flagsAidl,
                                  &responseAidl)));
                                  selectedDeviceIdAidl, &responseAidl)));

    *output = VALUE_OR_RETURN_STATUS(
            aidl2legacy_int32_t_audio_io_handle_t(responseAidl.output));
@@ -1077,12 +1079,15 @@ status_t AudioSystem::getInputForAttr(const audio_attributes_t* attr,
    media::AudioConfigBase configAidl = VALUE_OR_RETURN_STATUS(
            legacy2aidl_audio_config_base_t_AudioConfigBase(*config));
    int32_t flagsAidl = VALUE_OR_RETURN_STATUS(legacy2aidl_audio_input_flags_t_int32_t_mask(flags));
    int32_t selectedDeviceIdAidl = VALUE_OR_RETURN_STATUS(
            legacy2aidl_audio_port_handle_t_int32_t(*selectedDeviceId));

    media::GetInputForAttrResponse response;

    RETURN_STATUS_IF_ERROR(statusTFromBinderStatus(
            aps->getInputForAttr(attrAidl, inputAidl, riidAidl, sessionAidl, pidAidl, uidAidl,
                                 opPackageNameAidl, configAidl, flagsAidl, &response)));
                                 opPackageNameAidl, configAidl, flagsAidl, selectedDeviceIdAidl,
                                 &response)));

    *input = VALUE_OR_RETURN_STATUS(aidl2legacy_int32_t_audio_io_handle_t(response.input));
    *selectedDeviceId = VALUE_OR_RETURN_STATUS(
+5 −2
Original line number Diff line number Diff line
@@ -83,7 +83,8 @@ interface IAudioPolicyService {
                                              int /* pid_t */ pid,
                                              int /* uid_t */ uid,
                                              in AudioConfig config,
                                              int /* Bitmask, indexed by AudioOutputFlags */ flags);
                                              int /* Bitmask, indexed by AudioOutputFlags */ flags,
                                              int /* audio_port_handle_t */ selectedDeviceId);

    void startOutput(int /* audio_port_handle_t */ portId);

@@ -99,7 +100,9 @@ interface IAudioPolicyService {
                                            int /* uid_t */ uid,
                                            @utf8InCpp String opPackageName,
                                            in AudioConfigBase config,
                                            int /* Bitmask, indexed by AudioInputFlags */ flags);
                                            int /* Bitmask, indexed by AudioInputFlags */ flags,
                                            int /* audio_port_handle_t */ selectedDeviceId);


    void startInput(int /* audio_port_handle_t */ portId);

+8 −2
Original line number Diff line number Diff line
@@ -280,6 +280,7 @@ Status AudioPolicyService::getOutputForAttr(const media::AudioAttributesInternal
                                            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 @@ Status AudioPolicyService::getOutputForAttr(const media::AudioAttributesInternal
            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 @@ Status AudioPolicyService::getInputForAttr(const media::AudioAttributesInternal&
                                           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 @@ Status AudioPolicyService::getInputForAttr(const media::AudioAttributesInternal&
            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) {
+2 −1
Original line number Diff line number Diff line
@@ -81,7 +81,7 @@ public:
    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 @@ public:
                                   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;