From 5712e04ec24b8300fc8222aa98c0002df060a9dc Mon Sep 17 00:00:00 2001 From: codetector Date: Sun, 5 Jul 2020 20:24:02 -0400 Subject: [PATCH] keyboard/annepro2: typo fix --- keyboards/annepro2/annepro2.c | 40 +++++++++++++++++++++ keyboards/annepro2/annepro2.h | 7 ++++ keyboards/annepro2/c15/rules.mk | 1 + keyboards/annepro2/c18/rules.mk | 1 + keyboards/annepro2/keymaps/default/keymap.c | 24 +++++++++++-- keyboards/annepro2/qmk_ap2_led.h | 6 ++++ 6 files changed, 77 insertions(+), 2 deletions(-) create mode 100644 keyboards/annepro2/qmk_ap2_led.h diff --git a/keyboards/annepro2/annepro2.c b/keyboards/annepro2/annepro2.c index a128140de9e..836dc31f09a 100644 --- a/keyboards/annepro2/annepro2.c +++ b/keyboards/annepro2/annepro2.c @@ -1,6 +1,7 @@ #include "ch.h" #include "hal.h" #include "annepro2.h" +#include "qmk_ap2_led.h" /** * @brief Driver default configuration. @@ -13,6 +14,14 @@ static uint8_t ledMcuWakeup[11] = { 0x7b, 0x10, 0x43, 0x10, 0x03, 0, 0, 0x7d, 0x02, 0x01, 0x02 }; +uint16_t annepro2LedMatrix[MATRIX_ROWS * MATRIX_COLS] = { + 0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0, +}; + void OVERRIDE matrix_init_kb(void) { // Start uart sdStart(&SD0, &ledUartConfig); @@ -21,6 +30,37 @@ void OVERRIDE matrix_init_kb(void) { matrix_init_user(); } +void annepro2LedDisable(void) +{ + sdPut(&SD0, CMD_LED_OFF); +} + +void annepro2LedEnable(void) +{ + sdPut(&SD0, CMD_LED_ON); +} + +void annepro2LedUpdate(uint8_t row, uint8_t col) +{ + sdPut(&SD0, CMD_LED_SET); + sdPut(&SD0, row); + sdPut(&SD0, col); + sdWrite(&SD0, (uint8_t *)&annepro2LedMatrix[row * MATRIX_COLS + col], sizeof(uint16_t)); +} + +void annepro2LedUpdateRow(uint8_t row) +{ + sdPut(&SD0, CMD_LED_SET_ROW); + sdPut(&SD0, row); + sdWrite(&SD0, (uint8_t *)&annepro2LedMatrix[row * MATRIX_COLS], sizeof(uint16_t) * MATRIX_COLS); +} + +bool OVERRIDE led_update_kb(led_t status) { + annepro2LedMatrix[2 * MATRIX_COLS] = status.caps_lock ? 0x4FF : 0; + annepro2LedUpdate(2, 0); + return led_update_user(status); +} + bool OVERRIDE process_record_kb(uint16_t keycode, keyrecord_t *record) { return process_record_user(keycode, record); } diff --git a/keyboards/annepro2/annepro2.h b/keyboards/annepro2/annepro2.h index f8acc896b42..b7dbe3c5a79 100644 --- a/keyboards/annepro2/annepro2.h +++ b/keyboards/annepro2/annepro2.h @@ -20,3 +20,10 @@ #include "quantum.h" #define OVERRIDE __attribute__ ((noinline)) + +extern uint16_t annepro2LedMatrix[MATRIX_ROWS * MATRIX_COLS]; + +void annepro2LedDisable(void); +void annepro2LedEnable(void); +void annepro2LedUpdate(uint8_t row, uint8_t col); +void annepro2LedUpdateRow(uint8_t row); diff --git a/keyboards/annepro2/c15/rules.mk b/keyboards/annepro2/c15/rules.mk index d37b0437e1e..c358b7e5033 100644 --- a/keyboards/annepro2/c15/rules.mk +++ b/keyboards/annepro2/c15/rules.mk @@ -35,3 +35,4 @@ COMMAND_ENABLE = yes RAW_ENABLE = yes MIDI_ENABLE = no VIRTSER_ENABLE = no +COMBO_ENABLE = no diff --git a/keyboards/annepro2/c18/rules.mk b/keyboards/annepro2/c18/rules.mk index 963f115e27e..18df7993ff3 100644 --- a/keyboards/annepro2/c18/rules.mk +++ b/keyboards/annepro2/c18/rules.mk @@ -35,3 +35,4 @@ COMMAND_ENABLE = yes RAW_ENABLE = yes MIDI_ENABLE = no VIRTSER_ENABLE = no +COMBO_ENABLE = yes diff --git a/keyboards/annepro2/keymaps/default/keymap.c b/keyboards/annepro2/keymaps/default/keymap.c index 9c8661e1aac..7dbdfaf623e 100644 --- a/keyboards/annepro2/keymaps/default/keymap.c +++ b/keyboards/annepro2/keymaps/default/keymap.c @@ -7,6 +7,11 @@ enum anne_pro_layers { _FN_LAYER, }; +enum custom_keys { + KC_AP_LED_ON = SAFE_RANGE, + KC_AP_LED_OFF, +}; + const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BASE_LAYER] = KEYMAP( /* Base */ KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, @@ -24,8 +29,8 @@ const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_FN_LAYER] = KEYMAP( /* Base */ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS, - KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_PGUP, KC_PGDN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_AP_LED_ON, + KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_PGUP, KC_PGDN, KC_AP_LED_OFF, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INSERT, KC_DELETE, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), @@ -45,6 +50,21 @@ layer_state_t layer_state_set_user(layer_state_t layer) { return layer; } +/*! + * @returns false processing for this keycode has been completed. + */ bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_AP_LED_OFF: + if (record->event.pressed) + annepro2LedDisable(); + return false; + case KC_AP_LED_ON: + if (record->event.pressed) + annepro2LedEnable(); + return false; + default: + break; + } return true; } diff --git a/keyboards/annepro2/qmk_ap2_led.h b/keyboards/annepro2/qmk_ap2_led.h new file mode 100644 index 00000000000..681855b8399 --- /dev/null +++ b/keyboards/annepro2/qmk_ap2_led.h @@ -0,0 +1,6 @@ +#pragma once + +#define CMD_LED_ON 0x1 +#define CMD_LED_OFF 0x2 +#define CMD_LED_SET 0x3 +#define CMD_LED_SET_ROW 0x4