FP5: vibrator: Match stock behaviour
Change-Id: I05b15bba9aa67964abc3d72ec7c758fd5bb97d2f
diff --git a/vibrator/Vibrator.cpp b/vibrator/Vibrator.cpp
index 289fd7f..13f53a3 100644
--- a/vibrator/Vibrator.cpp
+++ b/vibrator/Vibrator.cpp
@@ -432,21 +432,54 @@
char value[32];
int ret;
- snprintf(file, sizeof(file), "%s/%s", LED_DEVICE, "state");
- ret = write_value(file, "1");
+ snprintf(file, sizeof(file), "%s/%s", LED_DEVICE, "activate_mode");
+ ret = write_value(file, "0");
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;
+ 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, "activate");
- ret = write_value(file, "1");
- 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);
+ ret = write_value(file, value);
+ if (ret < 0)
+ goto error;
+
+ snprintf(file, sizeof(file), "%s/%s", LED_DEVICE, "activate");
+ ret = write_value(file, "1");
+ if (ret < 0)
+ goto error;
+ }
return 0;
@@ -462,6 +495,17 @@
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;
}