Skip to content

Commit c2366c3

Browse files
Ahmad KhalilAndroid (Google) Code Review
authored andcommitted
Merge "Fix PWLE v2 effect durations" into main
2 parents a145898 + a750f1c commit c2366c3

3 files changed

Lines changed: 19 additions & 9 deletions

File tree

services/vibratorservice/VibratorHalWrapper.cpp

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -131,9 +131,10 @@ HalResult<void> HalWrapper::performPwleEffect(const std::vector<PrimitivePwle>&,
131131
return HalResult<void>::unsupported();
132132
}
133133

134-
HalResult<void> HalWrapper::composePwleV2(const CompositePwleV2&, const std::function<void()>&) {
134+
HalResult<milliseconds> HalWrapper::composePwleV2(const CompositePwleV2&,
135+
const std::function<void()>&) {
135136
ALOGV("Skipped composePwleV2 because it's not available in Vibrator HAL");
136-
return HalResult<void>::unsupported();
137+
return HalResult<milliseconds>::unsupported();
137138
}
138139

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

362-
HalResult<void> AidlHalWrapper::composePwleV2(const CompositePwleV2& composite,
363-
const std::function<void()>& completionCallback) {
363+
HalResult<milliseconds> AidlHalWrapper::composePwleV2(
364+
const CompositePwleV2& composite, const std::function<void()>& completionCallback) {
364365
// This method should always support callbacks, so no need to double check.
365366
auto cb = ndk::SharedRefBase::make<HalCallbackWrapper>(completionCallback);
366-
return HalResultFactory::fromStatus(getHal()->composePwleV2(composite, cb));
367+
368+
milliseconds totalDuration(0);
369+
for (const auto& primitive : composite.pwlePrimitives) {
370+
totalDuration += milliseconds(primitive.timeMillis);
371+
}
372+
373+
return HalResultFactory::fromStatus<milliseconds>(getHal()->composePwleV2(composite, cb),
374+
totalDuration);
367375
}
368376

369377
HalResult<Capabilities> AidlHalWrapper::getCapabilitiesInternal() {

services/vibratorservice/include/vibratorservice/VibratorHalWrapper.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -423,8 +423,8 @@ class HalWrapper {
423423
virtual HalResult<void> performPwleEffect(const std::vector<PrimitivePwle>& primitives,
424424
const std::function<void()>& completionCallback);
425425

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

429429
protected:
430430
// Shared pointer to allow CallbackScheduler to outlive this wrapper.
@@ -511,8 +511,9 @@ class AidlHalWrapper : public HalWrapper {
511511
const std::vector<PrimitivePwle>& primitives,
512512
const std::function<void()>& completionCallback) override final;
513513

514-
HalResult<void> composePwleV2(const CompositePwleV2& composite,
515-
const std::function<void()>& completionCallback) override final;
514+
HalResult<std::chrono::milliseconds> composePwleV2(
515+
const CompositePwleV2& composite,
516+
const std::function<void()>& completionCallback) override final;
516517

517518
protected:
518519
HalResult<Capabilities> getCapabilitiesInternal() override final;

services/vibratorservice/test/VibratorHalWrapperAidlTest.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -787,5 +787,6 @@ TEST_F(VibratorHalWrapperAidlTest, TestComposePwleV2) {
787787

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

0 commit comments

Comments
 (0)