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

Commit d1be2d36 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge changes Ib5745709,I64685e6e

* changes:
  vibrator: example: Fix New Test Failures
  vibrator: example: Fix out-of-scope memory access.
parents 8cafc5dc 79755bc5
Loading
Loading
Loading
Loading
+20 −8
Original line number Diff line number Diff line
@@ -100,14 +100,22 @@ Return<Status> Vibrator::setExternalControl(bool enabled) {
Return<void> Vibrator::perform_1_3(Effect effect, EffectStrength strength, perform_cb _hidl_cb) {
    uint8_t amplitude;
    uint32_t ms;
    Status status;
    Status status = Status::OK;

    ALOGI("Perform: Effect %s\n", effectToName(effect));
    ALOGI("Perform: Effect %s\n", effectToName(effect).c_str());

    amplitude = strengthToAmplitude(strength);
    amplitude = strengthToAmplitude(strength, &status);
    if (status != Status::OK) {
        _hidl_cb(status, 0);
        return Void();
    }
    setAmplitude(amplitude);

    ms = effectToMs(effect);
    ms = effectToMs(effect, &status);
    if (status != Status::OK) {
        _hidl_cb(status, 0);
        return Void();
    }
    status = activate(ms);

    _hidl_cb(status, ms);
@@ -178,11 +186,11 @@ void Vibrator::timerCallback(union sigval sigval) {
    static_cast<Vibrator*>(sigval.sival_ptr)->timeout();
}

const char* Vibrator::effectToName(Effect effect) {
    return toString(effect).c_str();
const std::string Vibrator::effectToName(Effect effect) {
    return toString(effect);
}

uint32_t Vibrator::effectToMs(Effect effect) {
uint32_t Vibrator::effectToMs(Effect effect, Status* status) {
    switch (effect) {
        case Effect::CLICK:
            return 10;
@@ -228,9 +236,11 @@ uint32_t Vibrator::effectToMs(Effect effect) {
        case Effect::RINGTONE_15:
            return 30000;
    }
    *status = Status::UNSUPPORTED_OPERATION;
    return 0;
}

uint8_t Vibrator::strengthToAmplitude(EffectStrength strength) {
uint8_t Vibrator::strengthToAmplitude(EffectStrength strength, Status* status) {
    switch (strength) {
        case EffectStrength::LIGHT:
            return 128;
@@ -239,6 +249,8 @@ uint8_t Vibrator::strengthToAmplitude(EffectStrength strength) {
        case EffectStrength::STRONG:
            return 255;
    }
    *status = Status::UNSUPPORTED_OPERATION;
    return 0;
}

}  // namespace implementation
+3 −3
Original line number Diff line number Diff line
@@ -59,9 +59,9 @@ class Vibrator : public IVibrator {
    void timeout();

    static void timerCallback(union sigval sigval);
    static const char* effectToName(Effect effect);
    static uint32_t effectToMs(Effect effect);
    static uint8_t strengthToAmplitude(EffectStrength strength);
    static const std::string effectToName(Effect effect);
    static uint32_t effectToMs(Effect effect, Status* status);
    static uint8_t strengthToAmplitude(EffectStrength strength, Status* status);

  private:
    bool mEnabled{false};