]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
Backlight status functions (#4259)
authorPhillip Tennen <phillip.ennen@gmail.com>
Wed, 14 Nov 2018 15:45:46 +0000 (16:45 +0100)
committerDrashna Jaelre <drashna@live.com>
Wed, 14 Nov 2018 15:45:46 +0000 (07:45 -0800)
* add functions to set specific backlight state

* add function to query backlight state

* update documentation with new backlight functions

* Update tmk_core/common/backlight.c

Co-Authored-By: codyd51 <phillip.ennen@gmail.com>
* Update tmk_core/common/backlight.h

Co-Authored-By: codyd51 <phillip.ennen@gmail.com>
* update docs for is_backlight_enabled() name change

docs/feature_backlight.md
tmk_core/common/backlight.c
tmk_core/common/backlight.h

index 7bb7e03a89eb222249b2e223a7c1f9706bbe39a7..f7a35406c7a0f2649655905f382eca72179f0613 100644 (file)
@@ -54,14 +54,17 @@ In this handler, the value of an incrementing counter is mapped onto a precomput
 
 ## Backlight Functions
 
-|Function  |Description                                               |
-|----------|----------------------------------------------------------|
-|`backlight_toggle()`   |Turn the backlight on or off                 |
-|`backlight_step()`     |Cycle through backlight levels               |
-|`backlight_increase()` |Increase the backlight level                 |
-|`backlight_decrease()` |Decrease the backlight level                 |
-|`backlight_level(x)`   |Sets the backlight level to specified level  |
-|`get_backlight_level()`|Return the current backlight level           |
+|Function  |Description                                                |
+|----------|-----------------------------------------------------------|
+|`backlight_toggle()`    |Turn the backlight on or off                 |
+|`backlight_enable()`    |Turn the backlight on                        |
+|`backlight_disable()`   |Turn the backlight off                       |
+|`backlight_step()`      |Cycle through backlight levels               |
+|`backlight_increase()`  |Increase the backlight level                 |
+|`backlight_decrease()`  |Decrease the backlight level                 |
+|`backlight_level(x)`    |Sets the backlight level to specified level  |
+|`get_backlight_level()` |Return the current backlight level           |
+|`is_backlight_enabled()`|Return whether the backlight is currently on |
 
 ### Backlight Breathing Functions
 
index 3e29aacc499c1d8b9c25f29dc60cac92a90d1d70..8ddacd98b699caf1032e43d041c60ef7698a732a 100644 (file)
@@ -76,12 +76,51 @@ void backlight_decrease(void)
  */
 void backlight_toggle(void)
 {
-    backlight_config.enable ^= 1;
-    if (backlight_config.raw == 1) // enabled but level = 0
-        backlight_config.level = 1;
-    eeconfig_update_backlight(backlight_config.raw);
-    dprintf("backlight toggle: %u\n", backlight_config.enable);
-    backlight_set(backlight_config.enable ? backlight_config.level : 0);
+       bool enabled = backlight_config.enable;
+       dprintf("backlight toggle: %u\n", enabled);
+       if (enabled) 
+               backlight_disable();
+       else
+               backlight_enable();
+}
+
+/** \brief Enable backlight
+ *
+ * FIXME: needs doc
+ */
+void backlight_enable(void)
+{
+       if (backlight_config.enable) return; // do nothing if backlight is already on
+
+       backlight_config.enable = true;
+       if (backlight_config.raw == 1) // enabled but level == 0
+               backlight_config.level = 1;
+       eeconfig_update_backlight(backlight_config.raw);
+       dprintf("backlight enable\n");
+       backlight_set(backlight_config.level);
+}
+
+/** /brief Disable backlight
+ *
+ * FIXME: needs doc
+ */
+void backlight_disable(void)
+{
+       if (!backlight_config.enable) return; // do nothing if backlight is already off
+
+       backlight_config.enable = false;
+       eeconfig_update_backlight(backlight_config.raw);
+       dprintf("backlight disable\n");
+       backlight_set(0);
+}
+
+/** /brief Get the backlight status
+ *
+ * FIXME: needs doc
+ */
+bool is_backlight_enabled(void)
+{
+       return backlight_config.enable;
 }
 
 /** \brief Backlight step through levels
index ef8ab9b2be92a2c8ab0ecc7960478a4e29e37d16..420c9d19edd8529ce402b6de08c1dcafc464ca48 100644 (file)
@@ -32,7 +32,11 @@ void backlight_init(void);
 void backlight_increase(void);
 void backlight_decrease(void);
 void backlight_toggle(void);
+void backlight_enable(void);
+void backlight_disable(void);
+bool is_backlight_enabled(void);
 void backlight_step(void);
 void backlight_set(uint8_t level);
 void backlight_level(uint8_t level);
 uint8_t get_backlight_level(void);
+