mirror of
https://github.com/Evolution-X-Devices/device_google_wahoo
synced 2026-02-01 07:50:47 +00:00
Merge "vibrator: Enforce API-Specific Effect Range" into qt-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
f42815ed26
@@ -176,15 +176,30 @@ static uint8_t convertEffectStrength(EffectStrength strength) {
|
||||
}
|
||||
|
||||
Return<void> Vibrator::perform(V1_0::Effect effect, EffectStrength strength, perform_cb _hidl_cb) {
|
||||
return performEffect(static_cast<Effect>(effect), strength, _hidl_cb);
|
||||
return performWrapper(effect, strength, _hidl_cb);
|
||||
}
|
||||
|
||||
Return<void> Vibrator::perform_1_1(V1_1::Effect_1_1 effect, EffectStrength strength,
|
||||
perform_cb _hidl_cb) {
|
||||
return performEffect(static_cast<Effect>(effect), strength, _hidl_cb);
|
||||
return performWrapper(effect, strength, _hidl_cb);
|
||||
}
|
||||
|
||||
Return<void> Vibrator::perform_1_2(Effect effect, EffectStrength strength, perform_cb _hidl_cb) {
|
||||
return performWrapper(effect, strength, _hidl_cb);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
Return<void> Vibrator::performWrapper(T effect, EffectStrength strength, perform_cb _hidl_cb) {
|
||||
auto validEffectRange = hidl_enum_range<T>();
|
||||
if (effect < *validEffectRange.begin() || effect > *std::prev(validEffectRange.end())) {
|
||||
_hidl_cb(Status::UNSUPPORTED_OPERATION, 0);
|
||||
return Void();
|
||||
}
|
||||
auto validStrengthRange = hidl_enum_range<EffectStrength>();
|
||||
if (strength < *validStrengthRange.begin() || strength > *std::prev(validStrengthRange.end())) {
|
||||
_hidl_cb(Status::UNSUPPORTED_OPERATION, 0);
|
||||
return Void();
|
||||
}
|
||||
return performEffect(static_cast<Effect>(effect), strength, _hidl_cb);
|
||||
}
|
||||
|
||||
|
||||
@@ -50,6 +50,8 @@ public:
|
||||
|
||||
private:
|
||||
Return<Status> on(uint32_t timeoutMs, bool forceOpenLoop, bool isWaveform);
|
||||
template <typename T>
|
||||
Return<void> performWrapper(T effect, EffectStrength strength, perform_cb _hidl_cb);
|
||||
Return<void> performEffect(Effect effect, EffectStrength strength, perform_cb _hidl_cb);
|
||||
std::ofstream mActivate;
|
||||
std::ofstream mDuration;
|
||||
|
||||
Reference in New Issue
Block a user