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

Commit 577e477d authored by Andy Hung's avatar Andy Hung Committed by Android (Google) Code Review
Browse files

Merge "Audio Aidl: Update binder::Status return code handling"

parents 1500df4a 1131b6ef
Loading
Loading
Loading
Loading
+11 −9
Original line number Diff line number Diff line
@@ -15,10 +15,12 @@
 */

#include <binding/AAudioBinderAdapter.h>
#include <media/AidlConversionUtil.h>
#include <utility/AAudioUtilities.h>

namespace aaudio {

using android::aidl_utils::statusTFromBinderStatus;
using android::binder::Status;

AAudioBinderAdapter::AAudioBinderAdapter(IAAudioService* delegate)
@@ -36,7 +38,7 @@ aaudio_handle_t AAudioBinderAdapter::openStream(const AAudioStreamRequest& reque
                                          &params,
                                          &result);
    if (!status.isOk()) {
        result = AAudioConvert_androidToAAudioResult(status.transactionError());
        result = AAudioConvert_androidToAAudioResult(statusTFromBinderStatus(status));
    }
    config = params;
    return result;
@@ -46,7 +48,7 @@ aaudio_result_t AAudioBinderAdapter::closeStream(aaudio_handle_t streamHandle) {
    aaudio_result_t result;
    Status status = mDelegate->closeStream(streamHandle, &result);
    if (!status.isOk()) {
        result = AAudioConvert_androidToAAudioResult(status.transactionError());
        result = AAudioConvert_androidToAAudioResult(statusTFromBinderStatus(status));
    }
    return result;
}
@@ -59,7 +61,7 @@ aaudio_result_t AAudioBinderAdapter::getStreamDescription(aaudio_handle_t stream
                                                    &endpoint,
                                                    &result);
    if (!status.isOk()) {
        result = AAudioConvert_androidToAAudioResult(status.transactionError());
        result = AAudioConvert_androidToAAudioResult(statusTFromBinderStatus(status));
    }
    endpointOut = std::move(endpoint);
    return result;
@@ -69,7 +71,7 @@ aaudio_result_t AAudioBinderAdapter::startStream(aaudio_handle_t streamHandle) {
    aaudio_result_t result;
    Status status = mDelegate->startStream(streamHandle, &result);
    if (!status.isOk()) {
        result = AAudioConvert_androidToAAudioResult(status.transactionError());
        result = AAudioConvert_androidToAAudioResult(statusTFromBinderStatus(status));
    }
    return result;
}
@@ -78,7 +80,7 @@ aaudio_result_t AAudioBinderAdapter::pauseStream(aaudio_handle_t streamHandle) {
    aaudio_result_t result;
    Status status = mDelegate->pauseStream(streamHandle, &result);
    if (!status.isOk()) {
        result = AAudioConvert_androidToAAudioResult(status.transactionError());
        result = AAudioConvert_androidToAAudioResult(statusTFromBinderStatus(status));
    }
    return result;
}
@@ -87,7 +89,7 @@ aaudio_result_t AAudioBinderAdapter::stopStream(aaudio_handle_t streamHandle) {
    aaudio_result_t result;
    Status status = mDelegate->stopStream(streamHandle, &result);
    if (!status.isOk()) {
        result = AAudioConvert_androidToAAudioResult(status.transactionError());
        result = AAudioConvert_androidToAAudioResult(statusTFromBinderStatus(status));
    }
    return result;
}
@@ -96,7 +98,7 @@ aaudio_result_t AAudioBinderAdapter::flushStream(aaudio_handle_t streamHandle) {
    aaudio_result_t result;
    Status status = mDelegate->flushStream(streamHandle, &result);
    if (!status.isOk()) {
        result = AAudioConvert_androidToAAudioResult(status.transactionError());
        result = AAudioConvert_androidToAAudioResult(statusTFromBinderStatus(status));
    }
    return result;
}
@@ -107,7 +109,7 @@ aaudio_result_t AAudioBinderAdapter::registerAudioThread(aaudio_handle_t streamH
    aaudio_result_t result;
    Status status = mDelegate->registerAudioThread(streamHandle, clientThreadId, periodNanoseconds, &result);
    if (!status.isOk()) {
        result = AAudioConvert_androidToAAudioResult(status.transactionError());
        result = AAudioConvert_androidToAAudioResult(statusTFromBinderStatus(status));
    }
    return result;
}
@@ -117,7 +119,7 @@ aaudio_result_t AAudioBinderAdapter::unregisterAudioThread(aaudio_handle_t strea
    aaudio_result_t result;
    Status status = mDelegate->unregisterAudioThread(streamHandle, clientThreadId, &result);
    if (!status.isOk()) {
        result = AAudioConvert_androidToAAudioResult(status.transactionError());
        result = AAudioConvert_androidToAAudioResult(statusTFromBinderStatus(status));
    }
    return result;
}
+1 −1
Original line number Diff line number Diff line
@@ -558,7 +558,7 @@ binder::Status AudioStreamTrack::applyVolumeShaper(
        if (status < 0) { // a non-negative value is the volume shaper id.
            ALOGE("applyVolumeShaper() failed with status %d", status);
        }
        return binder::Status::fromStatusT(status);
        return aidl_utils::binderStatusFromStatusT(status);
    } else {
        ALOGD("applyVolumeShaper()"
                      " no AudioTrack for volume control from IPlayer");
+6 −6
Original line number Diff line number Diff line
@@ -30,7 +30,7 @@
#include <utils/Log.h>

namespace android {

using aidl_utils::statusTFromBinderStatus;
using binder::Status;

namespace {
@@ -262,7 +262,7 @@ status_t AudioEffect::setEnabled(bool enabled)
            bs = mIEffect->disable(&status);
        }
        if (!bs.isOk()) {
            status = bs.transactionError();
            status = statusTFromBinderStatus(bs);
        }
        if (status == NO_ERROR) {
            mEnabled = enabled;
@@ -303,7 +303,7 @@ status_t AudioEffect::command(uint32_t cmdCode,

    Status bs = mIEffect->command(cmdCode, data, *replySize, &response, &status);
    if (!bs.isOk()) {
        status = bs.transactionError();
        status = statusTFromBinderStatus(bs);
    }
    if (status == NO_ERROR) {
        memcpy(replyData, response.data(), response.size());
@@ -351,7 +351,7 @@ status_t AudioEffect::setParameter(effect_param_t *param)
                                  &response,
                                  &status);
    if (!bs.isOk()) {
        status = bs.transactionError();
        status = statusTFromBinderStatus(bs);
        return status;
    }
    assert(response.size() == sizeof(int));
@@ -410,7 +410,7 @@ status_t AudioEffect::setParameterCommit()
                                  &response,
                                  &status);
    if (!bs.isOk()) {
        status = bs.transactionError();
        status = statusTFromBinderStatus(bs);
    }
    return status;
}
@@ -441,7 +441,7 @@ status_t AudioEffect::getParameter(effect_param_t *param)

    Status bs = mIEffect->command(EFFECT_CMD_GET_PARAM, cmd, psize, &response, &status);
    if (!bs.isOk()) {
        status = bs.transactionError();
        status = statusTFromBinderStatus(bs);
        return status;
    }
    memcpy(param, response.data(), response.size());
+8 −6
Original line number Diff line number Diff line
@@ -47,6 +47,8 @@
#define WAIT_PERIOD_MS          10

namespace android {
using aidl_utils::statusTFromBinderStatus;

// ---------------------------------------------------------------------------

// static
@@ -450,7 +452,7 @@ status_t AudioRecord::start(AudioSystem::sync_event_t event, audio_session_t tri
    mActive = true;

    if (!(flags & CBLK_INVALID)) {
        status = mAudioRecord->start(event, triggerSession).transactionError();
        status = statusTFromBinderStatus(mAudioRecord->start(event, triggerSession));
        if (status == DEAD_OBJECT) {
            flags |= CBLK_INVALID;
        }
@@ -1439,8 +1441,8 @@ retry:
        if (mActive) {
            // callback thread or sync event hasn't changed
            // FIXME this fails if we have a new AudioFlinger instance
            result = mAudioRecord->start(
                AudioSystem::SYNC_EVENT_SAME, AUDIO_SESSION_NONE).transactionError();
            result = statusTFromBinderStatus(mAudioRecord->start(
                AudioSystem::SYNC_EVENT_SAME, AUDIO_SESSION_NONE));
        }
        mFramesReadServerOffset = mFramesRead; // server resets to zero so we need an offset.
    }
@@ -1531,7 +1533,7 @@ status_t AudioRecord::getActiveMicrophones(std::vector<media::MicrophoneInfo>* a
{
    AutoMutex lock(mLock);
    std::vector<media::MicrophoneInfoData> mics;
    status_t status = mAudioRecord->getActiveMicrophones(&mics).transactionError();
    status_t status = statusTFromBinderStatus(mAudioRecord->getActiveMicrophones(&mics));
    activeMicrophones->resize(mics.size());
    for (size_t i = 0; status == OK && i < mics.size(); ++i) {
        status = activeMicrophones->at(i).readFromParcelable(mics[i]);
@@ -1552,7 +1554,7 @@ status_t AudioRecord::setPreferredMicrophoneDirection(audio_microphone_direction
        // the internal AudioRecord hasn't be created yet, so just stash the attribute.
        return OK;
    } else {
        return mAudioRecord->setPreferredMicrophoneDirection(direction).transactionError();
        return statusTFromBinderStatus(mAudioRecord->setPreferredMicrophoneDirection(direction));
    }
}

@@ -1568,7 +1570,7 @@ status_t AudioRecord::setPreferredMicrophoneFieldDimension(float zoom) {
        // the internal AudioRecord hasn't be created yet, so just stash the attribute.
        return OK;
    } else {
        return mAudioRecord->setPreferredMicrophoneFieldDimension(zoom).transactionError();
        return statusTFromBinderStatus(mAudioRecord->setPreferredMicrophoneFieldDimension(zoom));
    }
}

+1 −1
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@

#define VALUE_OR_RETURN_BINDER_STATUS(x) \
    ({ auto _tmp = (x); \
       if (!_tmp.ok()) return Status::fromStatusT(_tmp.error()); \
       if (!_tmp.ok()) return aidl_utils::binderStatusFromStatusT(_tmp.error()); \
       std::move(_tmp.value()); })

// ----------------------------------------------------------------------------
Loading