~ruther/qmk_firmware

02ab7b1888e6572178543ca0b944e4fa14cdf974 — Drashna Jaelre 4 years ago 1e54796
[Core] Fix "6kro enable" and clarify naming (#14563)

* Fix USB_6KRO_ENABLE compilation errors

* Add info to docs

* Rename define to be more accurate

* Remove unused rule

* Refixe docs
M docs/config_options.md => docs/config_options.md +2 -0
@@ 418,6 418,8 @@ Use these to enable or disable building certain features. The more you have enab
  * Key combo feature
* `NKRO_ENABLE`
  * USB N-Key Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
* `RING_BUFFERED_6KRO_REPORT_ENABLE`
  * USB 6-Key Rollover - Instead of stopping any new input once 6 keys are pressed, the oldest key is released and the new key is pressed. 
* `AUDIO_ENABLE`
  * Enable the audio subsystem.
* `KEY_OVERRIDE_ENABLE`

M keyboards/hotdox/rules.mk => keyboards/hotdox/rules.mk +0 -1
@@ 16,7 16,6 @@ CONSOLE_ENABLE          = yes # Console for debug
COMMAND_ENABLE          = no  # Commands for debug and configuration
SLEEP_LED_ENABLE        = no  # Breathing sleep LED during USB suspend
NKRO_ENABLE             = yes # USB Nkey Rollover - not yet supported in LUFA
USB_6KRO_ENABLE         = no  # USB 6key Rollover
BACKLIGHT_ENABLE        = yes # Enable keyboard backlight functionality
SWAP_HANDS_ENABLE       = no  # Disable Onehand
RGBLIGHT_ENABLE         = no

M keyboards/ktec/ergodone/rules.mk => keyboards/ktec/ergodone/rules.mk +0 -1
@@ 16,7 16,6 @@ CONSOLE_ENABLE          = no  # Console for debug
COMMAND_ENABLE          = no  # Commands for debug and configuration
SLEEP_LED_ENABLE        = no  # Breathing sleep LED during USB suspend
NKRO_ENABLE             = yes # USB Nkey Rollover - not yet supported in LUFA
USB_6KRO_ENABLE         = no  # USB 6key Rollover
BACKLIGHT_ENABLE        = no  # Enable keyboard backlight functionality
SWAP_HANDS_ENABLE       = no  # Disable Onehand
RGBLIGHT_ENABLE         = no

M keyboards/planck/keymaps/not-quite-neo/rules.mk => keyboards/planck/keymaps/not-quite-neo/rules.mk +1 -3
@@ 12,7 12,6 @@ EXTRAKEY_ENABLE     = yes    # Audio control and System control(+450)
CONSOLE_ENABLE      = no    # Console for debug(+400)
COMMAND_ENABLE      = no    # Commands for debug and configuration
NKRO_ENABLE         = yes   # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
USB_6KRO_ENABLE     = no    # 6key Rollover
BACKLIGHT_ENABLE    = no    # Enable keyboard backlight functionality
MIDI_ENABLE         = no    # MIDI controls
AUDIO_ENABLE        = no    # Audio output on port C6


@@ 20,7 19,6 @@ AUDIO_ENABLE        = no    # Audio output on port C6
UNICODE_ENABLE      = no    # Unicode (can't be used with unicodemap)
UNICODEMAP_ENABLE   = no   # Enable extended unicode
BLUETOOTH_ENABLE    = no    # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE     = no    # Enable WS2812 RGB underlight. 
RGBLIGHT_ENABLE     = no    # Enable WS2812 RGB underlight.
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE    = no    # Breathing sleep LED during USB suspend


M keyboards/planck/keymaps/zach/rules.mk => keyboards/planck/keymaps/zach/rules.mk +2 -4
@@ 2,7 2,7 @@
# Max .hex size is about 28636 bytes

# Build Options
#   change to "no" to disable the options, or define them in the Makefile in 
#   change to "no" to disable the options, or define them in the Makefile in
#   the appropriate keymap folder that will get included automatically
#
TAP_DANCE_ENABLE    = yes   # Enable TapDance functionality


@@ 12,7 12,6 @@ EXTRAKEY_ENABLE     = no    # Audio control and System control(+450)
CONSOLE_ENABLE      = no    # Console for debug(+400)
COMMAND_ENABLE      = no    # Commands for debug and configuration
NKRO_ENABLE         = yes   # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
USB_6KRO_ENABLE     = no    # 6key Rollover
BACKLIGHT_ENABLE    = no    # Enable keyboard backlight functionality
MIDI_ENABLE         = no    # MIDI controls
AUDIO_ENABLE        = no    # Audio output on port C6


@@ 20,7 19,6 @@ AUDIO_ENABLE        = no    # Audio output on port C6
UNICODE_ENABLE      = no    # Unicode (can't be used with unicodemap)
UNICODEMAP_ENABLE   = yes   # Enable extended unicode
BLUETOOTH_ENABLE    = no    # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE     = no    # Enable WS2812 RGB underlight. 
RGBLIGHT_ENABLE     = no    # Enable WS2812 RGB underlight.
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE    = no    # Breathing sleep LED during USB suspend


M keyboards/preonic/keymaps/zach/rules.mk => keyboards/preonic/keymaps/zach/rules.mk +2 -4
@@ 2,7 2,7 @@
# Max .hex size is about 28636 bytes

# Build Options
#   change to "no" to disable the options, or define them in the Makefile in 
#   change to "no" to disable the options, or define them in the Makefile in
#   the appropriate keymap folder that will get included automatically
#
TAP_DANCE_ENABLE    = yes   # Enable TapDance functionality


@@ 12,7 12,6 @@ EXTRAKEY_ENABLE     = no    # Audio control and System control(+450)
CONSOLE_ENABLE      = no    # Console for debug(+400)
COMMAND_ENABLE      = no    # Commands for debug and configuration
NKRO_ENABLE         = yes   # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
USB_6KRO_ENABLE     = no    # 6key Rollover
BACKLIGHT_ENABLE    = yes   # Enable keyboard backlight functionality
MIDI_ENABLE         = no    # MIDI controls
AUDIO_ENABLE        = yes   # Audio output on port C6


@@ 20,7 19,6 @@ AUDIO_ENABLE        = yes   # Audio output on port C6
UNICODE_ENABLE      = no    # Unicode
UNICODEMAP_ENABLE   = yes   # Enable extended unicode
BLUETOOTH_ENABLE    = no    # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE     = no    # Enable WS2812 RGB underlight. 
RGBLIGHT_ENABLE     = no    # Enable WS2812 RGB underlight.
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE    = no    # Breathing sleep LED during USB suspend


M quantum/action_util.c => quantum/action_util.c +0 -10
@@ 32,16 32,6 @@ static uint8_t weak_override_mods = 0;
static uint8_t suppressed_mods    = 0;
#endif

#ifdef USB_6KRO_ENABLE
#    define RO_ADD(a, b) ((a + b) % KEYBOARD_REPORT_KEYS)
#    define RO_SUB(a, b) ((a - b + KEYBOARD_REPORT_KEYS) % KEYBOARD_REPORT_KEYS)
#    define RO_INC(a) RO_ADD(a, 1)
#    define RO_DEC(a) RO_SUB(a, 1)
static int8_t cb_head  = 0;
static int8_t cb_tail  = 0;
static int8_t cb_count = 0;
#endif

// TODO: pointer variable is not needed
// report_keyboard_t keyboard_report = {};
report_keyboard_t *keyboard_report = &(report_keyboard_t){};

M show_options.mk => show_options.mk +1 -1
@@ 72,7 72,7 @@ OTHER_OPTION_NAMES = \
  PS2_MOUSE_ENABLE \
  RAW_ENABLE \
  SWAP_HANDS_ENABLE \
  USB_6KRO_ENABLE \
  RING_BUFFERED_6KRO_REPORT_ENABLE \
  WATCHDOG_ENABLE \
  XT_ENABLE \
  ERGOINU \

M tests/test_common/keyboard_report_util.cpp => tests/test_common/keyboard_report_util.cpp +1 -1
@@ 24,7 24,7 @@ std::vector<uint8_t> get_keys(const report_keyboard_t& report) {
    std::vector<uint8_t> result;
#if defined(NKRO_ENABLE)
#    error NKRO support not implemented yet
#elif defined(USB_6KRO_ENABLE)
#elif defined(RING_BUFFERED_6KRO_REPORT_ENABLE)
#    error 6KRO support not implemented yet
#else
    for (size_t i = 0; i < KEYBOARD_REPORT_KEYS; i++) {

M tmk_core/common.mk => tmk_core/common.mk +2 -2
@@ 63,8 63,8 @@ ifeq ($(strip $(NKRO_ENABLE)), yes)
    endif
endif

ifeq ($(strip $(USB_6KRO_ENABLE)), yes)
    TMK_COMMON_DEFS += -DUSB_6KRO_ENABLE
ifeq ($(strip $(RING_BUFFERED_6KRO_REPORT_ENABLE)), yes)
    TMK_COMMON_DEFS += -DRING_BUFFERED_6KRO_REPORT_ENABLE
endif

ifeq ($(strip $(SLEEP_LED_ENABLE)), yes)

M tmk_core/common/report.c => tmk_core/common/report.c +13 -3
@@ 21,6 21,16 @@
#include "util.h"
#include <string.h>

#ifdef RING_BUFFERED_6KRO_REPORT_ENABLE
#    define RO_ADD(a, b) ((a + b) % KEYBOARD_REPORT_KEYS)
#    define RO_SUB(a, b) ((a - b + KEYBOARD_REPORT_KEYS) % KEYBOARD_REPORT_KEYS)
#    define RO_INC(a)    RO_ADD(a, 1)
#    define RO_DEC(a)    RO_SUB(a, 1)
static int8_t cb_head  = 0;
static int8_t cb_tail  = 0;
static int8_t cb_count = 0;
#endif

/** \brief has_anykey
 *
 * FIXME: Needs doc


@@ 54,7 64,7 @@ uint8_t get_first_key(report_keyboard_t* keyboard_report) {
        return i << 3 | biton(keyboard_report->nkro.bits[i]);
    }
#endif
#ifdef USB_6KRO_ENABLE
#ifdef RING_BUFFERED_6KRO_REPORT_ENABLE
    uint8_t i = cb_head;
    do {
        if (keyboard_report->keys[i] != 0) {


@@ 99,7 109,7 @@ bool is_key_pressed(report_keyboard_t* keyboard_report, uint8_t key) {
 * FIXME: Needs doc
 */
void add_key_byte(report_keyboard_t* keyboard_report, uint8_t code) {
#ifdef USB_6KRO_ENABLE
#ifdef RING_BUFFERED_6KRO_REPORT_ENABLE
    int8_t i     = cb_head;
    int8_t empty = -1;
    if (cb_count) {


@@ 166,7 176,7 @@ void add_key_byte(report_keyboard_t* keyboard_report, uint8_t code) {
 * FIXME: Needs doc
 */
void del_key_byte(report_keyboard_t* keyboard_report, uint8_t code) {
#ifdef USB_6KRO_ENABLE
#ifdef RING_BUFFERED_6KRO_REPORT_ENABLE
    uint8_t i = cb_head;
    if (cb_count) {
        do {