]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
Tmo50 indicators (#5044)
authorEmīls Delle <emiilsdelle@gmail.com>
Mon, 4 Feb 2019 22:12:23 +0000 (00:12 +0200)
committerMechMerlin <30334081+mechmerlin@users.noreply.github.com>
Mon, 4 Feb 2019 22:12:23 +0000 (14:12 -0800)
* Create ISO HHKB keymapping for GH60

* Add media controls to Fn layer

* Use M(x) instead of F(x), add Copyright text

* Add README for additional information about TMO50 features/quirks

* Add indicator LED code

* Move indicator code to tmo50.c

keyboards/tmo50/keymaps/default/keymap.c
keyboards/tmo50/tmo50.c

index 419893f1a684d26c68258285c8706f7382c8f473..7b8b644cc6ec7f3f121c413369e652dd40c3490a 100644 (file)
@@ -48,4 +48,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
                KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
   ),
 };
-
index a42ab4720af224bfebb588ae6386f10c2cf06e07..4f6288133da3007d47646875bf458e5a7e26e821 100644 (file)
@@ -19,6 +19,15 @@ void matrix_init_kb(void) {
        // put your keyboard start-up code here
        // runs once when the firmware starts up
 
+  DDRB |= (1 << PB0); //init B0
+  PORTB &= ~(1 << PB0); //turn on B0
+  DDRB |= (1 << PB1);
+  PORTB |= (1<<PB1); //turn off B1
+  DDRB |= (1 << PB2);
+  PORTB |= (1<<PB2);
+  DDRB |= (1 << PB3);
+  PORTB |= (1<<PB3);
+
        matrix_init_user();
 }
 
@@ -41,3 +50,35 @@ void led_set_kb(uint8_t usb_led) {
 
        led_set_user(usb_led);
 }
+
+uint32_t layer_state_set_user(uint32_t state)
+{
+  // if on layer 0, turn on B0 LED, otherwise off.
+    if (biton32(state) == 0) {
+        PORTB &= ~(1<<PB0);
+    } else {
+        PORTB |= (1<<PB0);
+    }
+
+  // if on layer 1, turn on B1 LED, otherwise off.
+    if (biton32(state) == 1) {
+        PORTB &= ~(1<<PB1);
+    } else {
+        PORTB |= (1<<PB1);
+    }
+  // if on layer 2, turn on B2 LED, otherwise off.
+    if (biton32(state) == 2) {
+        PORTB &= ~(1<<PB2);
+    } else {
+        PORTB |= (1<<PB2);
+    }
+
+  // if on layer 3, turn on B3 LED, otherwise off.
+    if (biton32(state) == 3) {
+        PORTB &= ~(1<<PB3);
+    } else {
+        PORTB |= (1<<PB3);
+    }
+
+    return state;
+}