diff options
author | MechMerlin <30334081+mechmerlin@users.noreply.github.com> | 2019-12-29 11:16:24 -0800 |
---|---|---|
committer | Drashna Jaelre <drashna@live.com> | 2019-12-29 11:16:24 -0800 |
commit | 64263bbb0255df756dc30467ee6643054d325597 (patch) | |
tree | 21da8898b5451ecf2d0d0281d423da0f7347ef64 /keyboards/duck/orion/v3/v3.c | |
parent | 8af1501328711ba806785861b183786cb5cbb80a (diff) |
[Keyboard] Orion Locking Indicator LED Support (#7683)
* add indicator lighting support thanks to Keebology tracing
* set the correct number of underglow LEDs
* add comments and skeletal structure for layer indicator LEDs
* add backlight areas pins
* update readme
* we can't turn leds on based on zones, so we use multiple backlight pin support instead to turn them ALL on and control them.
* add comments to backlight setting
* make a more useful default keymap that can also be used for testing
* add duck orion to list
* add indicator led support
* update readme
* Update keyboards/duck/orion/v3/matrix.c
Co-Authored-By: Drashna Jaelre <drashna@live.com>
* Update keyboards/duck/orion/v3/matrix.c
Co-Authored-By: Drashna Jaelre <drashna@live.com>
* Update keyboards/duck/orion/v3/matrix.c
Co-Authored-By: Drashna Jaelre <drashna@live.com>
* Update keyboards/duck/orion/v3/matrix.c
Co-Authored-By: Drashna Jaelre <drashna@live.com>
* Update keyboards/duck/orion/v3/matrix.c
Co-Authored-By: Drashna Jaelre <drashna@live.com>
* Update keyboards/duck/orion/v3/matrix.c
Co-Authored-By: Drashna Jaelre <drashna@live.com>
* add the appropriate header files
* fix indent so Drashna will not die
* Update keyboards/duck/orion/v3/v3.c
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/duck/orion/v3/keymaps/default/keymap.c
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Update keyboards/duck/orion/v3/keymaps/default/keymap.c
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Update keyboards/duck/orion/v3/readme.md
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Update keyboards/duck/orion/v3/readme.md
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Update keyboards/duck/orion/v3/readme.md
Co-Authored-By: fauxpark <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: fauxpark <fauxpark@gmail.com>
Diffstat (limited to 'keyboards/duck/orion/v3/v3.c')
-rw-r--r-- | keyboards/duck/orion/v3/v3.c | 58 |
1 files changed, 18 insertions, 40 deletions
diff --git a/keyboards/duck/orion/v3/v3.c b/keyboards/duck/orion/v3/v3.c index 95da4b45b6..ca5c512cee 100644 --- a/keyboards/duck/orion/v3/v3.c +++ b/keyboards/duck/orion/v3/v3.c @@ -16,48 +16,26 @@ #include "v3.h" #include "indicator_leds.h" -enum BACKLIGHT_AREAS { - BACKLIGHT_ALPHAS = 0b00000010, - BACKLIGHT_MODNUM = 0b00001000 -}; +// Alphas PB1 +// Navigation Cluster: PB2 +// Number Row, Mods: PB3 +// Function Row: PE6 -void backlight_set(uint8_t level) { - switch(level) { - case 0: - PORTB |= BACKLIGHT_ALPHAS; - PORTB |= BACKLIGHT_MODNUM; - break; - case 1: - PORTB &= ~BACKLIGHT_ALPHAS; - PORTB |= BACKLIGHT_MODNUM; - break; - case 2: - PORTB |= BACKLIGHT_ALPHAS; - PORTB &= ~BACKLIGHT_MODNUM; - break; - case 3: - PORTB &= ~BACKLIGHT_ALPHAS; - PORTB &= ~BACKLIGHT_MODNUM; - break; - } -} - -// Port from backlight_update_state -void led_set_kb(uint8_t usb_led) { - bool status[8] = { - IS_HOST_LED_ON(USB_LED_SCROLL_LOCK), /* LED 3 */ - IS_HOST_LED_ON(USB_LED_CAPS_LOCK), /* LED 2 */ - IS_HOST_LED_ON(USB_LED_NUM_LOCK), /* LED 1 */ - - layer_state & (1<<2), /* LED 6 */ - layer_state & (1<<1), /* LED 5 */ - layer_state & (1<<0) ? 0: 1, /* LED 4 */ - - layer_state & (1<<5), /* LED 8 */ - layer_state & (1<<4) /* LED 7 */ - }; +// Other than using RGB or LED matrix, QMK cannot turn on specific zones +// of backlight LEDs. Unfortunately, Duck PCBs do not follow this design +// and instead use multiple pins connected to each of these zones. QMK is +// only able to control them ALL with the current default mechanisms. - indicator_leds_set(status); +// Locking indicator LEDs +// The Duck Orion V3 has 3 locking indicator LEDs and are located to the right +// of the Escape key. +bool led_update_kb(led_t led_state) { + if(led_update_user(led_state)) { + writePin(B0, !led_state.caps_lock); + writePin(B4, !led_state.num_lock); + writePin(D7, !led_state.scroll_lock); + } + return true; } bool process_record_kb(uint16_t keycode, keyrecord_t *record) { |