~ruther/qmk_firmware

ef8878fba5d3786e3f9c66436da63a560cd36ac9 — MechMerlin 5 years ago f673c96
Hineybush h87a lock indicators (#8237)

* move lighting code from VIA into the keyboard's .c file so that every keymap can access it

* after some serious conversations with default and wkl, they agreed to let me modify their keymaps. They weren't too happy
M keyboards/hineybush/h87a/h87a.c => keyboards/hineybush/h87a/h87a.c +10 -1
@@ 18,7 18,8 @@
void matrix_init_kb(void) {
	// put your keyboard start-up code here
	// runs once when the firmware starts up

   	setPinOutput(D5);
    setPinOutput(E6);
	matrix_init_user();
}



@@ 42,6 43,14 @@ void led_set_kb(uint8_t usb_led) {
	led_set_user(usb_led);
}

bool led_update_kb(led_t led_state) {
    if(led_update_user(led_state)) {
        writePin(D5, !led_state.caps_lock);
        writePin(E6, !led_state.scroll_lock);
    }
    return true;
}

void eeconfig_init_kb(void) {  // EEPROM is getting reset!
  rgblight_enable(); // Enable RGB by default
  rgblight_sethsv(0, 255, 128);  // Set default HSV - red hue, full saturation, medium brightness

M keyboards/hineybush/h87a/keymaps/default/keymap.c => keyboards/hineybush/h87a/keymaps/default/keymap.c +0 -21
@@ 46,24 46,3 @@ void matrix_scan_user(void) {
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  return true;
}

void led_init_ports(void) {
  DDRD |= (1<<5); // OUT
  DDRE |= (1<<6); // OUT
}

void led_set_user(uint8_t usb_led) {

  if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
    DDRD |= (1 << 5); PORTD &= ~(1 << 5);
  } else {
    DDRD &= ~(1 << 5); PORTD &= ~(1 << 5);
  }

  if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
    DDRE |= (1 << 6); PORTE &= ~(1 << 6);
  } else {
    DDRE &= ~(1 << 6); PORTE &= ~(1 << 6);
  }

}

M keyboards/hineybush/h87a/keymaps/via/keymap.c => keyboards/hineybush/h87a/keymaps/via/keymap.c +0 -11
@@ 50,14 50,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, KC_TRNS, KC_TRNS, KC_TRNS),

};

void led_init_ports(void) {
    setPinOutput(D5);
    setPinOutput(E6);
}

bool led_update_user(led_t led_state) {
    writePin(D5, !led_state.caps_lock);
    writePin(E6, !led_state.scroll_lock);
    return true;
}

M keyboards/hineybush/h87a/keymaps/wkl/keymap.c => keyboards/hineybush/h87a/keymaps/wkl/keymap.c +0 -23
@@ 46,26 46,3 @@ void matrix_scan_user(void) {
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  return true;
}

void led_init_ports(void) {
  setPinOutput(D5);
  setPinOutput(E6);
}

void led_set_user(uint8_t usb_led) {

  if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) {
    setPinOutput(D5);
    writePinLow(D5);
  } else {
    setPinInput(D5);
  }

  if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) {
    setPinOutput(E6);
    writePinLow(E6);
  } else {
    setPinInput(E6);
  }

}