diff options
Diffstat (limited to 'src/flashlight.c')
-rw-r--r-- | src/flashlight.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/flashlight.c b/src/flashlight.c index 3c5e8b1..63553e5 100644 --- a/src/flashlight.c +++ b/src/flashlight.c @@ -31,6 +31,7 @@ const size_t qcom_sysfs_size = 2; const char* const qcom_sysfs[] = {"/sys/class/leds/torch-light/brightness", "/sys/class/leds/led:flash_torch/brightness"}; char* flash_sysfs_path = NULL; +gboolean activated = 0; int set_sysfs_path() @@ -44,29 +45,34 @@ set_sysfs_path() return 0; } +gboolean +flashlight_activated() +{ + return activated; +} + void toggle_flashlight_action(GAction *action, GVariant *parameter G_GNUC_UNUSED, gpointer data G_GNUC_UNUSED) { GVariant *state; - gboolean b; FILE* fd; if (!set_sysfs_path()) return; state = g_action_get_state(action); - b = g_variant_get_boolean(state); + activated = g_variant_get_boolean(state); g_variant_unref(state); fd = fopen(flash_sysfs_path, "w"); if (fd != NULL){ - if (b) + if (activated) fprintf(fd, QCOM_DISABLE); else fprintf(fd, QCOM_ENABLE); fclose(fd); - g_action_change_state(action, g_variant_new_boolean(!b)); + g_action_change_state(action, g_variant_new_boolean(!activated)); } } |