From a6ed493c70867d95e30f762ee2742c8e142bd30b Mon Sep 17 00:00:00 2001 From: Ivan Gromov <38141348+key10iq@users.noreply.github.com> Date: Sat, 29 Jun 2024 00:26:15 +0400 Subject: [PATCH 1/4] Update lisa.c --- keyboards/keyten/lisa/lisa.c | 82 +++++++++++++++++++++++++++++++++--- 1 file changed, 77 insertions(+), 5 deletions(-) diff --git a/keyboards/keyten/lisa/lisa.c b/keyboards/keyten/lisa/lisa.c index 2ecff3a642c7..149d5d3c8cc3 100644 --- a/keyboards/keyten/lisa/lisa.c +++ b/keyboards/keyten/lisa/lisa.c @@ -3,10 +3,82 @@ #include "quantum.h" -#define LED_INDICATOR_PIN B2 +#define LOWER_LED_PIN B11 +#define MIDDLE_LED_PIN B10 +#define UPPER_LED_PIN B2 -void matrix_init_kb(void) { - gpio_set_pin_output(LED_INDICATOR_PIN); - gpio_write_pin_high(LED_INDICATOR_PIN); - matrix_init_user(); +typedef union { + uint16_t raw; + struct { + uint16_t lower_led : 3; + uint16_t middle_led: 3; + uint16_t upper_led : 3; + }; +} layout_options_t; + +static layout_options_t layout_options; + +static layer_state_t current_layer_state = 0; + +void via_set_layout_options_kb(uint32_t value) { + layout_options.raw = value; + led_update_kb(host_keyboard_led_state()); +} + +enum led_mode_t { + LED_MODE_OFF, + LED_MODE_ON, + LED_MODE_CAPS_LOCK, + LED_MODE_NUM_LOCK, + LED_MODE_SCROLL_LOCK, + LED_MODE_LAYER_1, + LED_MODE_LAYER_2, + LED_MODE_LAYER_3, +}; + +void set_led_state(uint32_t pin, uint8_t mode, led_t led_state) { + switch (mode) { + case LED_MODE_OFF: + gpio_write_pin_low(pin); + break; + case LED_MODE_ON: + gpio_write_pin_high(pin); + break; + case LED_MODE_CAPS_LOCK: + gpio_write_pin(pin, led_state.caps_lock); + break; + case LED_MODE_NUM_LOCK: + gpio_write_pin(pin, led_state.num_lock); + break; + case LED_MODE_SCROLL_LOCK: + gpio_write_pin(pin, led_state.scroll_lock); + break; + case LED_MODE_LAYER_1: + gpio_write_pin(pin, (current_layer_state & (1 << 1)) != 0); + break; + case LED_MODE_LAYER_2: + gpio_write_pin(pin, (current_layer_state & (1 << 2)) != 0); + break; + case LED_MODE_LAYER_3: + gpio_write_pin(pin, (current_layer_state & (1 << 3)) != 0); + break; + default: + gpio_write_pin_low(pin); + break; + } +} + +void led_update_ports(led_t led_state) { + gpio_set_pin_output(LOWER_LED_PIN); + gpio_set_pin_output(MIDDLE_LED_PIN); + gpio_set_pin_output(UPPER_LED_PIN); + + set_led_state(LOWER_LED_PIN, layout_options.lower_led, led_state); + set_led_state(MIDDLE_LED_PIN, layout_options.middle_led, led_state); + set_led_state(UPPER_LED_PIN, layout_options.upper_led, led_state); +} + +layer_state_t layer_state_set_user(layer_state_t state) { + current_layer_state = state; + return current_layer_state; } From 6a3a1c9faa837e69ce7482885571512972d96fac Mon Sep 17 00:00:00 2001 From: Ivan Gromov <38141348+key10iq@users.noreply.github.com> Date: Sat, 29 Jun 2024 00:27:11 +0400 Subject: [PATCH 2/4] Create config.h --- keyboards/keyten/lisa/config.h | 1 + 1 file changed, 1 insertion(+) create mode 100644 keyboards/keyten/lisa/config.h diff --git a/keyboards/keyten/lisa/config.h b/keyboards/keyten/lisa/config.h new file mode 100644 index 000000000000..406288331b79 --- /dev/null +++ b/keyboards/keyten/lisa/config.h @@ -0,0 +1 @@ +#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 From 06e588f752d5ae72e7c0d98e50f6b6d32787d683 Mon Sep 17 00:00:00 2001 From: Ivan Gromov <38141348+key10iq@users.noreply.github.com> Date: Sat, 29 Jun 2024 00:29:48 +0400 Subject: [PATCH 3/4] Update keyboard.json --- keyboards/keyten/lisa/keyboard.json | 4 ---- 1 file changed, 4 deletions(-) diff --git a/keyboards/keyten/lisa/keyboard.json b/keyboards/keyten/lisa/keyboard.json index deac0f374080..c08bb4ba00ca 100644 --- a/keyboards/keyten/lisa/keyboard.json +++ b/keyboards/keyten/lisa/keyboard.json @@ -16,10 +16,6 @@ "cols": ["B7", "B6", "B5", "B4", "B3", "A15", "A3", "A4", "A5", "A6", "A7", "B0", "B1"], "rows": ["B13", "B15", "B14", "A8"] }, - "indicators": { - "caps_lock": "B10", - "num_lock": "B11" - } "processor": "STM32F072", "usb": { "vid": "0xEB69", From ea3081457b8d4a1303faacea674c56799bcd59d1 Mon Sep 17 00:00:00 2001 From: Ivan Gromov <38141348+key10iq@users.noreply.github.com> Date: Sat, 29 Jun 2024 01:11:10 +0400 Subject: [PATCH 4/4] Update config.h --- keyboards/keyten/lisa/config.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/keyboards/keyten/lisa/config.h b/keyboards/keyten/lisa/config.h index 406288331b79..fd4e4f59ffd6 100644 --- a/keyboards/keyten/lisa/config.h +++ b/keyboards/keyten/lisa/config.h @@ -1 +1,4 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + #define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2