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

Unverified Commit aab24715 authored by Rohit Sekhar's avatar Rohit Sekhar Committed by Michael Bestas
Browse files

FP5: vibrator: Match stock behaviour

Change-Id: I05b15bba9aa67964abc3d72ec7c758fd5bb97d2f
parent eca6ed5c
Loading
Loading
Loading
Loading
+55 −11
Original line number Diff line number Diff line
@@ -432,10 +432,42 @@ int LedVibratorDevice::on(int32_t timeoutMs) {
    char value[32];
    int ret;

    snprintf(file, sizeof(file), "%s/%s", LED_DEVICE, "state");
    snprintf(file, sizeof(file), "%s/%s", LED_DEVICE, "activate_mode");
    ret = write_value(file, "0");
    if (ret < 0)
       goto error;

    if (timeoutMs <= 50) {
        snprintf(file, sizeof(file), "%s/%s", LED_DEVICE, "seq");
        ret = write_value(file, "0x00 0x00");
        if (ret < 0)
            goto error;

        snprintf(file, sizeof(file), "%s/%s", LED_DEVICE, "seq");
        ret = write_value(file, "0x00 0x01");
        if (ret < 0)
            goto error;

        snprintf(file, sizeof(file), "%s/%s", LED_DEVICE, "loop");
        ret = write_value(file, "0x00 0x00");
        if (ret < 0)
            goto error;

        snprintf(file, sizeof(file), "%s/%s", LED_DEVICE, "duration");
        snprintf(value, sizeof(value), "%u\n", timeoutMs);
        ret = write_value(file, value);
        if (ret < 0)
            goto error;

        snprintf(file, sizeof(file), "%s/%s", LED_DEVICE, "brightness");
        ret = write_value(file, "1");
        if (ret < 0)
            goto error;
    } else {
        snprintf(file, sizeof(file), "%s/%s", LED_DEVICE, "index");
        ret = write_value(file, "4");
        if (ret < 0)
            goto error;

        snprintf(file, sizeof(file), "%s/%s", LED_DEVICE, "duration");
        snprintf(value, sizeof(value), "%u\n", timeoutMs);
@@ -447,6 +479,7 @@ int LedVibratorDevice::on(int32_t timeoutMs) {
        ret = write_value(file, "1");
        if (ret < 0)
            goto error;
    }

    return 0;

@@ -462,6 +495,17 @@ int LedVibratorDevice::off()

    snprintf(file, sizeof(file), "%s/%s", LED_DEVICE, "activate");
    ret = write_value(file, "0");
    if (ret < 0)
        return ret;

    snprintf(file, sizeof(file), "%s/%s", LED_DEVICE, "brightness");
    ret = write_value(file, "0");
    if (ret < 0)
        return ret;

    snprintf(file, sizeof(file), "%s/%s", LED_DEVICE, "index");
    ret = write_value(file, "1");

    return ret;
}