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

Commit b428b009 authored by Mikhail Naganov's avatar Mikhail Naganov Committed by Android (Google) Code Review
Browse files

Merge "Fix AudioSystem::getAudioPort implementation" into tm-dev

parents e5a7ab53 17031564
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -1497,13 +1497,12 @@ status_t AudioSystem::getAudioPort(struct audio_port_v7* port) {
    if (port == nullptr) {
        return BAD_VALUE;
    }

    const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service();
    if (aps == 0) return PERMISSION_DENIED;

    media::AudioPort portAidl = VALUE_OR_RETURN_STATUS(legacy2aidl_audio_port_v7_AudioPort(*port));
    media::AudioPort portAidl;
    RETURN_STATUS_IF_ERROR(
            statusTFromBinderStatus(aps->getAudioPort(portAidl, &portAidl)));
            statusTFromBinderStatus(aps->getAudioPort(port->id, &portAidl)));
    *port = VALUE_OR_RETURN_STATUS(aidl2legacy_AudioPort_audio_port_v7(portAidl));
    return OK;
}
+2 −2
Original line number Diff line number Diff line
@@ -216,8 +216,8 @@ interface IAudioPolicyService {
                       inout Int count,
                       out AudioPort[] ports);

    /** Get attributes for a given audio port. */
    AudioPort getAudioPort(in AudioPort port);
    /** Get attributes for the audio port with the given id (AudioPort.hal.id field). */
    AudioPort getAudioPort(int /* audio_port_handle_t */ portId);

    /**
     * Create an audio patch between several source and sink ports.
+2 −1
Original line number Diff line number Diff line
@@ -374,7 +374,8 @@ public:
                                   struct audio_port_v7 *ports,
                                   unsigned int *generation);

    /* Get attributes for a given audio port */
    /* Get attributes for a given audio port. On input, the port
     * only needs the 'id' field to be filled in. */
    static status_t getAudioPort(struct audio_port_v7 *port);

    /* Create an audio patch between several source and sink ports */
+2 −5
Original line number Diff line number Diff line
@@ -1567,12 +1567,9 @@ Status AudioPolicyService::listAudioPorts(media::AudioPortRole roleAidl,
    return Status::ok();
}

Status AudioPolicyService::getAudioPort(const media::AudioPort& portAidl,
Status AudioPolicyService::getAudioPort(int portId,
                                        media::AudioPort* _aidl_return) {
    audio_port_v7 port = VALUE_OR_RETURN_BINDER_STATUS(
            aidl2legacy_AudioPort_audio_port_v7(portAidl));
    RETURN_IF_BINDER_ERROR(binderStatusFromStatusT(AudioValidator::validateAudioPort(port)));

    audio_port_v7 port{ .id = portId };
    Mutex::Autolock _l(mLock);
    if (mAudioPolicyManager == NULL) {
        return binderStatusFromStatusT(NO_INIT);
+1 −1
Original line number Diff line number Diff line
@@ -176,7 +176,7 @@ public:
    binder::Status listAudioPorts(media::AudioPortRole role, media::AudioPortType type,
                                  Int* count, std::vector<media::AudioPort>* ports,
                                  int32_t* _aidl_return) override;
    binder::Status getAudioPort(const media::AudioPort& port,
    binder::Status getAudioPort(int portId,
                                media::AudioPort* _aidl_return) override;
    binder::Status createAudioPatch(const media::AudioPatch& patch, int32_t handle,
                                    int32_t* _aidl_return) override;