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

Commit c2366c35 authored by Ahmad Khalil's avatar Ahmad Khalil Committed by Android (Google) Code Review
Browse files

Merge "Fix PWLE v2 effect durations" into main

parents a145898a a750f1cc
Loading
Loading
Loading
Loading
+13 −5
Original line number Diff line number Diff line
@@ -131,9 +131,10 @@ HalResult<void> HalWrapper::performPwleEffect(const std::vector<PrimitivePwle>&,
    return HalResult<void>::unsupported();
}

HalResult<void> HalWrapper::composePwleV2(const CompositePwleV2&, const std::function<void()>&) {
HalResult<milliseconds> HalWrapper::composePwleV2(const CompositePwleV2&,
                                                  const std::function<void()>&) {
    ALOGV("Skipped composePwleV2 because it's not available in Vibrator HAL");
    return HalResult<void>::unsupported();
    return HalResult<milliseconds>::unsupported();
}

HalResult<Capabilities> HalWrapper::getCapabilities() {
@@ -359,11 +360,18 @@ HalResult<void> AidlHalWrapper::performPwleEffect(const std::vector<PrimitivePwl
    return HalResultFactory::fromStatus(getHal()->composePwle(primitives, cb));
}

HalResult<void> AidlHalWrapper::composePwleV2(const CompositePwleV2& composite,
                                              const std::function<void()>& completionCallback) {
HalResult<milliseconds> AidlHalWrapper::composePwleV2(
        const CompositePwleV2& composite, const std::function<void()>& completionCallback) {
    // This method should always support callbacks, so no need to double check.
    auto cb = ndk::SharedRefBase::make<HalCallbackWrapper>(completionCallback);
    return HalResultFactory::fromStatus(getHal()->composePwleV2(composite, cb));

    milliseconds totalDuration(0);
    for (const auto& primitive : composite.pwlePrimitives) {
        totalDuration += milliseconds(primitive.timeMillis);
    }

    return HalResultFactory::fromStatus<milliseconds>(getHal()->composePwleV2(composite, cb),
                                                      totalDuration);
}

HalResult<Capabilities> AidlHalWrapper::getCapabilitiesInternal() {
+5 −4
Original line number Diff line number Diff line
@@ -423,8 +423,8 @@ public:
    virtual HalResult<void> performPwleEffect(const std::vector<PrimitivePwle>& primitives,
                                              const std::function<void()>& completionCallback);

    virtual HalResult<void> composePwleV2(const CompositePwleV2& composite,
                                          const std::function<void()>& completionCallback);
    virtual HalResult<std::chrono::milliseconds> composePwleV2(
            const CompositePwleV2& composite, const std::function<void()>& completionCallback);

protected:
    // Shared pointer to allow CallbackScheduler to outlive this wrapper.
@@ -511,7 +511,8 @@ public:
            const std::vector<PrimitivePwle>& primitives,
            const std::function<void()>& completionCallback) override final;

    HalResult<void> composePwleV2(const CompositePwleV2& composite,
    HalResult<std::chrono::milliseconds> composePwleV2(
            const CompositePwleV2& composite,
            const std::function<void()>& completionCallback) override final;

protected:
+1 −0
Original line number Diff line number Diff line
@@ -787,5 +787,6 @@ TEST_F(VibratorHalWrapperAidlTest, TestComposePwleV2) {

    result = mWrapper->composePwleV2(composite, callback);
    ASSERT_TRUE(result.isOk());
    ASSERT_EQ(300ms, result.value());
    ASSERT_EQ(1, *callbackCounter.get());
}