aboutsummaryrefslogtreecommitdiff
path: root/src/flashlight.c
diff options
context:
space:
mode:
authorMuhammad <muhammad23012009@hotmail.com>2023-05-12 17:49:30 +0500
committerMuhammad <muhammad23012009@hotmail.com>2023-06-05 23:01:18 +0500
commitdd3dccb5b3ece993ea648f76ff0cc9aa08527061 (patch)
tree1af9ef4b73a3657774bc161a05a5d3bb1a11ca4a /src/flashlight.c
parent08039f0bfcd35efca2a075bbf49fe3e45d89d5bf (diff)
downloadayatana-indicator-power-dd3dccb5b3ece993ea648f76ff0cc9aa08527061.tar.gz
ayatana-indicator-power-dd3dccb5b3ece993ea648f76ff0cc9aa08527061.tar.bz2
ayatana-indicator-power-dd3dccb5b3ece993ea648f76ff0cc9aa08527061.zip
src: add support for getting flashlight paths through deviceinfo
Signed-off-by: Muhammad <muhammad23012009@hotmail.com>
Diffstat (limited to 'src/flashlight.c')
-rw-r--r--src/flashlight.c48
1 files changed, 35 insertions, 13 deletions
diff --git a/src/flashlight.c b/src/flashlight.c
index 0a68af2..88e93fd 100644
--- a/src/flashlight.c
+++ b/src/flashlight.c
@@ -31,6 +31,11 @@
#define SIMPLE_ENABLE "1"
#define SIMPLE_DISABLE "0"
+#ifdef ENABLE_LIBDEVICEINFO
+extern char* flashlight_path();
+extern char* flashlight_switch_path();
+#endif
+
const size_t qcom_sysfs_size = 7;
const char* const qcom_sysfs[] = {"/sys/class/leds/torch-light/brightness",
"/sys/class/leds/led:flash_torch/brightness",
@@ -56,24 +61,41 @@ gboolean activated = 0;
int
set_sysfs_path()
{
- for (size_t i = 0; i < qcom_sysfs_size; i++) {
- if (access(qcom_sysfs[i], F_OK ) != -1){
- flash_sysfs_path = (char*)qcom_sysfs[i];
- torch_type = QCOM;
- /* Qualcomm torch; determine switch file (if one is needed) */
- for (size_t i = 0; i < qcom_switch_size; i++) {
- if (access(qcom_switch[i], F_OK ) != -1)
- qcom_switch_path = (char*)qcom_switch[i];
+# ifdef ENABLE_LIBDEVICEINFO
+ if (strcmp(flashlight_path(), "")) {
+ if (access(flashlight_path(), F_OK) != -1) {
+ flash_sysfs_path = flashlight_path();
+ if (strcmp(flashlight_switch_path(), "")) {
+ if (access(flashlight_switch_path(), F_OK) != -1) {
+ qcom_switch_path = flashlight_switch_path();
+ torch_type = QCOM;
+ }
}
return 1;
}
- }
- for (size_t i = 0; i < simple_sysfs_size; i++) {
- if (access(simple_sysfs[i], F_OK ) != -1){
- flash_sysfs_path = (char*)simple_sysfs[i];
- return 1;
+ } else {
+# endif
+ for (size_t i = 0; i < qcom_sysfs_size; i++) {
+ if (access(qcom_sysfs[i], F_OK ) != -1){
+ flash_sysfs_path = (char*)qcom_sysfs[i];
+ torch_type = QCOM;
+ /* Qualcomm torch; determine switch file (if one is needed) */
+ for (size_t i = 0; i < qcom_switch_size; i++) {
+ if (access(qcom_switch[i], F_OK ) != -1)
+ qcom_switch_path = (char*)qcom_switch[i];
+ }
+ return 1;
+ }
+ }
+ for (size_t i = 0; i < simple_sysfs_size; i++) {
+ if (access(simple_sysfs[i], F_OK ) != -1){
+ flash_sysfs_path = (char*)simple_sysfs[i];
+ return 1;
+ }
}
+# ifdef ENABLE_LIBDEVICEINFO
}
+# endif
return 0;
}