qmk_firmware

QMK firmware for my keyboards (Corne, Sweep Ferris) and trackball (Ploopy Adept)
Log | Files | Refs | Submodules | LICENSE

ergodox_compat.h (3324B)


      1 // Copyright 2022 QMK
      2 // SPDX-License-Identifier: GPL-2.0-or-later
      3 
      4 #pragma once
      5 
      6 #include <stdint.h>
      7 #include "gpio.h"
      8 #include "wait.h"
      9 
     10 // All this for ergodox led compatibility...
     11 #ifdef CONVERT_TO_PROTON_C
     12 #    define ERGODOX_BOARD_LED_ON_STATE 1
     13 #else
     14 #    define ERGODOX_BOARD_LED_ON_STATE 0
     15 #endif
     16 #define LED_BRIGHTNESS_LO 15
     17 #define LED_BRIGHTNESS_HI 255
     18 static inline void ergodox_right_led_1_off(void) { gpio_set_pin_output(LED_NUM_LOCK_PIN); gpio_write_pin(LED_NUM_LOCK_PIN, 0); }
     19 static inline void ergodox_right_led_1_on(void) { gpio_set_pin_output(LED_NUM_LOCK_PIN); gpio_write_pin(LED_NUM_LOCK_PIN, 1); }
     20 static inline void ergodox_right_led_2_off(void) { gpio_set_pin_output(LED_CAPS_LOCK_PIN); gpio_write_pin(LED_CAPS_LOCK_PIN, 0); }
     21 static inline void ergodox_right_led_2_on(void) { gpio_set_pin_output(LED_CAPS_LOCK_PIN); gpio_write_pin(LED_CAPS_LOCK_PIN, 1); }
     22 static inline void ergodox_right_led_3_off(void) { gpio_set_pin_output(LED_SCROLL_LOCK_PIN); gpio_write_pin(LED_SCROLL_LOCK_PIN, 0); }
     23 static inline void ergodox_right_led_3_on(void) { gpio_set_pin_output(LED_SCROLL_LOCK_PIN); gpio_write_pin(LED_SCROLL_LOCK_PIN, 1); }
     24 static inline void ergodox_right_led_on(uint8_t l) {
     25     switch (l) {
     26          case 1:
     27              ergodox_right_led_1_on();
     28              break;
     29          case 2:
     30              ergodox_right_led_2_on();
     31              break;
     32          case 3:
     33              ergodox_right_led_3_on();
     34              break;
     35          default:
     36              break;
     37         }
     38 }
     39 static inline void ergodox_right_led_off(uint8_t l) {
     40     switch (l) {
     41          case 1:
     42              ergodox_right_led_1_off();
     43              break;
     44          case 2:
     45              ergodox_right_led_2_off();
     46              break;
     47          case 3:
     48              ergodox_right_led_3_off();
     49              break;
     50          default:
     51              break;
     52         }
     53 }
     54 static inline void ergodox_board_led_off(void) { gpio_set_pin_output(D5); gpio_write_pin(D5, !ERGODOX_BOARD_LED_ON_STATE); }
     55 static inline void ergodox_board_led_on(void) { gpio_set_pin_output(D5); gpio_write_pin(D5, ERGODOX_BOARD_LED_ON_STATE); }
     56 static inline void ergodox_led_all_on(void) {
     57     ergodox_right_led_1_on();
     58     ergodox_right_led_2_on();
     59     ergodox_right_led_3_on();
     60     ergodox_board_led_on();
     61 }
     62 static inline void ergodox_led_all_off(void) {
     63     ergodox_right_led_1_off();
     64     ergodox_right_led_2_off();
     65     ergodox_right_led_3_off();
     66     ergodox_board_led_off();
     67 }
     68 static inline void ergodox_right_led_1_set(uint8_t n)          {}
     69 static inline void ergodox_right_led_2_set(uint8_t n)          {}
     70 static inline void ergodox_right_led_3_set(uint8_t n)          {}
     71 static inline void ergodox_right_led_set(uint8_t l, uint8_t n) {}
     72 static inline void ergodox_led_all_set(uint8_t n)              {}
     73 static inline void ergodox_led_init(void) {}
     74 static inline void ergodox_blink_all_leds(void) {
     75     ergodox_led_all_off();
     76     ergodox_board_led_on();
     77     wait_ms(50);
     78     ergodox_right_led_1_on();
     79     wait_ms(50);
     80     ergodox_right_led_2_on();
     81     wait_ms(50);
     82     ergodox_right_led_3_on();
     83     wait_ms(50);
     84     ergodox_right_led_1_off();
     85     wait_ms(50);
     86     ergodox_right_led_2_off();
     87     wait_ms(50);
     88     ergodox_right_led_3_off();
     89     wait_ms(50);
     90     ergodox_board_led_off();
     91     //ergodox_led_all_on();
     92     //wait_ms(333);
     93     ergodox_led_all_off();
     94 }