@@ -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
139140HalResult<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
369377HalResult<Capabilities> AidlHalWrapper::getCapabilitiesInternal () {
0 commit comments