summaryrefslogtreecommitdiff
path: root/keyboards/duck/orion/v3/v3.c
diff options
context:
space:
mode:
authorMechMerlin <30334081+mechmerlin@users.noreply.github.com>2019-12-29 11:16:24 -0800
committerDrashna Jaelre <drashna@live.com>2019-12-29 11:16:24 -0800
commit64263bbb0255df756dc30467ee6643054d325597 (patch)
tree21da8898b5451ecf2d0d0281d423da0f7347ef64 /keyboards/duck/orion/v3/v3.c
parent8af1501328711ba806785861b183786cb5cbb80a (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.c58
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) {