diff --git a/modules/vibrator/vibrator.c b/modules/vibrator/vibrator.c index c3c29519..92c46e24 100644 --- a/modules/vibrator/vibrator.c +++ b/modules/vibrator/vibrator.c @@ -32,16 +32,20 @@ static const char THE_DEVICE[] = "/sys/class/timed_output/vibrator/enable"; -static int vibra_exists() { +static bool device_exists(const char *file) { int fd; - fd = TEMP_FAILURE_RETRY(open(THE_DEVICE, O_RDWR)); + fd = TEMP_FAILURE_RETRY(open(file, O_RDWR)); if(fd < 0) { - return 0; + return false; } close(fd); - return 1; + return true; +} + +static bool vibra_exists() { + return device_exists(THE_DEVICE); } static int write_value(const char *file, const char *value) @@ -102,9 +106,13 @@ static int write_led_file(const char *file, const char *value) return write_value(file_str, value); } -static int vibra_led_exists() +static bool vibra_led_exists() { - return !write_led_file("trigger", "transient"); + int fd; + char file_str[50]; + + snprintf(file_str, sizeof(file_str), "%s/%s", LED_DEVICE, "activate"); + return device_exists(file_str); } static int vibra_led_on(vibrator_device_t* vibradev __unused, unsigned int timeout_ms)