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

Commit e83be8af authored by Steven Moreland's avatar Steven Moreland
Browse files

Remove usage of getStatus.

- remove from libaudiohal
- remove from services/radio
- remove from soundtrigger
- remove from omx

Bug: 31348667
Test: compiles
Change-Id: I75bb7b7388527dacfdc5bf128712cb8690bc286b
parent db057a5a
Loading
Loading
Loading
Loading
+2 −20
Original line number Diff line number Diff line
@@ -82,26 +82,8 @@ status_t ConversionHelperHidl::analyzeResult(const Result& result) {
    }
}

// static
void ConversionHelperHidl::crashIfHalIsDead(const Status& status) {
    LOG_ALWAYS_FATAL_IF(
            status.transactionError() == DEAD_OBJECT, "HAL server crashed, need to restart");
}

status_t ConversionHelperHidl::processReturn(const char* funcName, const Status& status) {
    const status_t st = status.transactionError();
    ALOGE_IF(st, "%s %p %s: %s (from rpc)", mClassName, this, funcName, strerror(-st));
    crashIfHalIsDead(status);
    return st;
}

status_t ConversionHelperHidl::processReturn(
        const char* funcName, const Status& status, hardware::audio::V2_0::Result retval) {
    const status_t st = status.isOk() ? analyzeResult(retval) : status.transactionError();
    ALOGE_IF(!status.isOk() && st, "%s %p %s: %s (from rpc)",
            mClassName, this, funcName, strerror(-st));
    crashIfHalIsDead(status);
    return st;
void ConversionHelperHidl::emitError(const char* funcName, const char* description) {
    ALOGE("%s %p %s: %s (from rpc)", mClassName, this, funcName, description);
}

}  // namespace android
+19 −13
Original line number Diff line number Diff line
@@ -30,9 +30,6 @@ using ::android::hardware::hidl_vec;
namespace android {

class ConversionHelperHidl {
  public:
    static void crashIfHalIsDead(const Status& status);

  protected:
    static status_t keysFromHal(const String8& keys, hidl_vec<hidl_string> *hidlKeys);
    static status_t parametersFromHal(const String8& kvPairs, hidl_vec<ParameterValue> *hidlParams);
@@ -40,18 +37,22 @@ class ConversionHelperHidl {

    ConversionHelperHidl(const char* className);

    status_t processReturn(const char* funcName, const Return<void>& ret) {
        return processReturn(funcName, ret.getStatus());
    }

    template<typename R, typename T>
    status_t processReturn(const char* funcName, const Return<R>& ret, T *retval) {
        if (ret.getStatus().isOk()) {
        if (ret.isOk()) {
            // This way it also works for enum class to unscoped enum conversion.
            *retval = static_cast<T>(static_cast<R>(ret));
            return OK;
        }
        return processReturn(funcName, ret.getStatus());
        return processReturn(funcName, ret);
    }

    template<typename T>
    status_t processReturn(const char* funcName, const Return<T>& ret) {
        if (!ret.isOk()) {
            emitError(funcName, ret.description().c_str());
        }
        return ret.isOk() ? OK : UNKNOWN_ERROR;
    }

    status_t processReturn(const char* funcName, const Return<hardware::audio::V2_0::Result>& ret) {
@@ -61,16 +62,21 @@ class ConversionHelperHidl {
    template<typename T>
    status_t processReturn(
            const char* funcName, const Return<T>& ret, hardware::audio::V2_0::Result retval) {
        return processReturn(funcName, ret.getStatus(), retval);
        const status_t st = ret.isOk() ? analyzeResult(retval) : UNKNOWN_ERROR;
        if (!ret.isOk()) {
            emitError(funcName, ret.description().c_str());
        } else if (st) {
            emitError(funcName, strerror(st));
        }
        return st;
    }

  private:
    const char* mClassName;

    static status_t analyzeResult(const hardware::audio::V2_0::Result& result);
    status_t processReturn(const char* funcName, const Status& status);
    status_t processReturn(
            const char* funcName, const Status& status, hardware::audio::V2_0::Result retval);

    void emitError(const char* funcName, const char* description);
};

}  // namespace android
+2 −3
Original line number Diff line number Diff line
@@ -78,13 +78,12 @@ status_t DevicesFactoryHalHidl::openDevice(const char *name, sp<DeviceHalInterfa
                    *device = new DeviceHalHidl(result);
                }
            });
    if (ret.getStatus().isOk()) {
    if (ret.isOk()) {
        if (retval == Result::OK) return OK;
        else if (retval == Result::INVALID_ARGUMENTS) return BAD_VALUE;
        else return NO_INIT;
    }
    ConversionHelperHidl::crashIfHalIsDead(ret.getStatus());
    return ret.getStatus().transactionError();
    return UNKNOWN_ERROR;
}

} // namespace android
+1 −2
Original line number Diff line number Diff line
@@ -103,8 +103,7 @@ status_t EffectHalHidl::getDescriptor(effect_descriptor_t *pDescriptor) {
                    effectDescriptorToHal(result, pDescriptor);
                }
            });
    ConversionHelperHidl::crashIfHalIsDead(ret.getStatus());
    return ret.getStatus().isOk() ? analyzeResult(retval) : ret.getStatus().transactionError();
    return ret.isOk() ? analyzeResult(retval) : UNKNOWN_ERROR;
}

} // namespace android
+8 −12
Original line number Diff line number Diff line
@@ -43,7 +43,7 @@ bool EffectsFactoryHalInterface::isNullUuid(const effect_uuid_t *pEffectUuid) {
    return EffectIsNullUuid(pEffectUuid);
}

EffectsFactoryHalHidl::EffectsFactoryHalHidl() {
EffectsFactoryHalHidl::EffectsFactoryHalHidl() : ConversionHelperHidl("EffectsFactory"){
    mEffectsFactory = IEffectsFactory::getService("audio_effects_factory");
}

@@ -60,12 +60,11 @@ status_t EffectsFactoryHalHidl::queryAllDescriptors() {
                    mLastDescriptors = result;
                }
            });
    if (ret.getStatus().isOk()) {
    if (ret.isOk()) {
        return retval == Result::OK ? OK : NO_INIT;
    }
    mLastDescriptors.resize(0);
    ConversionHelperHidl::crashIfHalIsDead(ret.getStatus());
    return ret.getStatus().transactionError();
    return processReturn(__FUNCTION__, ret);
}

status_t EffectsFactoryHalHidl::queryNumberEffects(uint32_t *pNumEffects) {
@@ -104,13 +103,12 @@ status_t EffectsFactoryHalHidl::getDescriptor(
                    EffectHalHidl::effectDescriptorToHal(result, pDescriptor);
                }
            });
    if (ret.getStatus().isOk()) {
    if (ret.isOk()) {
        if (retval == Result::OK) return OK;
        else if (retval == Result::INVALID_ARGUMENTS) return NAME_NOT_FOUND;
        else return NO_INIT;
    }
    ConversionHelperHidl::crashIfHalIsDead(ret.getStatus());
    return ret.getStatus().transactionError();
    return processReturn(__FUNCTION__, ret);
}

status_t EffectsFactoryHalHidl::createEffect(
@@ -128,13 +126,12 @@ status_t EffectsFactoryHalHidl::createEffect(
                    *effect = new EffectHalHidl(result, effectId);
                }
            });
    if (ret.getStatus().isOk()) {
    if (ret.isOk()) {
        if (retval == Result::OK) return OK;
        else if (retval == Result::INVALID_ARGUMENTS) return NAME_NOT_FOUND;
        else return NO_INIT;
    }
    ConversionHelperHidl::crashIfHalIsDead(ret.getStatus());
    return ret.getStatus().transactionError();
    return processReturn(__FUNCTION__, ret);
}

status_t EffectsFactoryHalHidl::dumpEffects(int fd) {
@@ -143,8 +140,7 @@ status_t EffectsFactoryHalHidl::dumpEffects(int fd) {
    hidlHandle->data[0] = fd;
    Return<void> ret = mEffectsFactory->debugDump(hidlHandle);
    native_handle_delete(hidlHandle);
    ConversionHelperHidl::crashIfHalIsDead(ret.getStatus());
    return ret.getStatus().transactionError();
    return processReturn(__FUNCTION__, ret);
}

} // namespace android
Loading