]> git.donarmstrong.com Git - tmk_firmware.git/blobdiff - keyboard/lightsaber/backlight.c
New macro: ACTION_BACKLIGHT_LEVEL(level)
[tmk_firmware.git] / keyboard / lightsaber / backlight.c
index b28200807cd4ebeb9658b39234429916249b9f9f..59b8b4a633971d3e66d8531bff3f9c141ccf7266 100644 (file)
@@ -26,8 +26,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
  * Backside  PD6 (high)
  * TopRight  PD7 (low)
  * F-Row     PE6 (high)
- *
  */
+
 void backlight_set(uint8_t level)
 {
     // Set as output.
@@ -35,22 +35,52 @@ void backlight_set(uint8_t level)
     DDRD |= (1<<6) | (1<<7);
     DDRE |= (1<<6);
 
-    if(level & (1<<0))
+    if (level & BACKLIGHT_ALPHA)
     {
-        PORTB &= ~(1<<1);
-        PORTB &= ~(1<<2);
-        PORTB &= ~(1<<3);
-        PORTD &= ~(1<<6);
-        PORTD |= (1<<7);
-        PORTE &= ~(1<<6);
+        PORTB |= (1<<1);
     }
     else
     {
-        PORTB |= (1<<1);
+        PORTB &= ~(1<<1);
+    }
+    if (level & BACKLIGHT_NUMERIC)
+    {
         PORTB |= (1<<2);
+    }
+    else
+    {
+        PORTB &= ~(1<<2);
+    }
+    if (level & BACKLIGHT_MODNUM)
+    {
         PORTB |= (1<<3);
+    }
+    else
+    {
+        PORTB &= ~(1<<3);
+    }
+    if (level & BACKLIGHT_BACKSIDE)
+    {
         PORTD |= (1<<6);
+    }
+    else
+    {
+        PORTD &= ~(1<<6);
+    }
+    if (level & BACKLIGHT_TOPRIGHT)
+    {
         PORTD &= ~(1<<7);
+    }
+    else
+    {
+        PORTD |= (1<<7);
+    }
+    if (level & BACKLIGHT_FROW)
+    {
         PORTE |= (1<<6);
     }
+    else
+    {
+        PORTE &= ~(1<<6);
+    }
 }