diff options
241 files changed, 815 insertions, 1517 deletions
| diff --git a/builddefs/build_keyboard.mk b/builddefs/build_keyboard.mk index fe95dcaf15..65bc0451f7 100644 --- a/builddefs/build_keyboard.mk +++ b/builddefs/build_keyboard.mk @@ -428,7 +428,6 @@ include $(BUILDDEFS_PATH)/common_features.mk  include $(BUILDDEFS_PATH)/generic_features.mk  include $(TMK_PATH)/protocol.mk  include $(PLATFORM_PATH)/common.mk -include $(BUILDDEFS_PATH)/bootloader.mk  SRC += $(patsubst %.c,%.clib,$(LIB_SRC))  SRC += $(patsubst %.c,%.clib,$(QUANTUM_LIB_SRC)) @@ -443,6 +442,7 @@ ifneq ($(REQUIRE_PLATFORM_KEY),)      endif  endif +-include $(PLATFORM_PATH)/$(PLATFORM_KEY)/bootloader.mk  include $(PLATFORM_PATH)/$(PLATFORM_KEY)/platform.mk  -include $(PLATFORM_PATH)/$(PLATFORM_KEY)/flash.mk diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index a23b5e82b9..9fa9e18814 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -805,31 +805,25 @@ ifeq ($(strip $(PS2_MOUSE_ENABLE)), yes)      OPT_DEFS += -DMOUSE_ENABLE  endif -ifeq ($(strip $(PS2_USE_BUSYWAIT)), yes) -    PS2_ENABLE := yes -    SRC += ps2_busywait.c -    SRC += ps2_io.c -    OPT_DEFS += -DPS2_USE_BUSYWAIT -endif +VALID_PS2_DRIVER_TYPES := busywait interrupt usart vendor -ifeq ($(strip $(PS2_USE_INT)), yes) -    PS2_ENABLE := yes -    SRC += ps2_interrupt.c -    SRC += ps2_io.c -    OPT_DEFS += -DPS2_USE_INT -endif +PS2_DRIVER ?= busywait +ifeq ($(strip $(PS2_ENABLE)), yes) +    ifeq ($(filter $(PS2_DRIVER),$(VALID_PS2_DRIVER_TYPES)),) +        $(call CATASTROPHIC_ERROR,Invalid PS2_DRIVER,PS2_DRIVER="$(PS2_DRIVER)" is not a valid PS/2 driver) +    endif -ifeq ($(strip $(PS2_USE_USART)), yes) -    PS2_ENABLE := yes -    SRC += ps2_usart.c -    SRC += ps2_io.c -    OPT_DEFS += -DPS2_USE_USART -endif +    OPT_DEFS += -DPS2_DRIVER_$(strip $(shell echo $(PS2_DRIVER) | tr '[:lower:]' '[:upper:]')) -ifeq ($(strip $(PS2_ENABLE)), yes)      COMMON_VPATH += $(DRIVER_PATH)/ps2      COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/ps2      OPT_DEFS += -DPS2_ENABLE + +    ifneq ($(strip $(PS2_DRIVER)), vendor) +        SRC += ps2_io.c +    endif + +    SRC += ps2_$(strip $(PS2_DRIVER)).c  endif  JOYSTICK_ENABLE ?= no diff --git a/builddefs/show_options.mk b/builddefs/show_options.mk index 98537e6da2..8d992c080c 100644 --- a/builddefs/show_options.mk +++ b/builddefs/show_options.mk @@ -66,7 +66,9 @@ OTHER_OPTION_NAMES = \    KEYLOGGER_ENABLE \    LCD_BACKLIGHT_ENABLE \    MACROS_ENABLED \ +  PS2_ENABLE \    PS2_MOUSE_ENABLE \ +  PS2_DRIVER \    RAW_ENABLE \    SWAP_HANDS_ENABLE \    RING_BUFFERED_6KRO_REPORT_ENABLE \ diff --git a/data/mappings/info_config.json b/data/mappings/info_config.json index 582b5149ea..cc13a7cea4 100644 --- a/data/mappings/info_config.json +++ b/data/mappings/info_config.json @@ -40,7 +40,7 @@      "LED_COMPOSE_PIN": {"info_key": "indicators.compose"},      "LED_KANA_PIN": {"info_key": "indicators.kana"},      "LED_PIN_ON_STATE": {"info_key": "indicators.on_state", "value_type": "int"}, -    "MANUFACTURER": {"info_key": "manufacturer"}, +    "MANUFACTURER": {"info_key": "manufacturer", "value_type": "str"},      "MATRIX_HAS_GHOST": {"info_key": "matrix_pins.ghost", "value_type": "bool"},      "MATRIX_IO_DELAY": {"info_key": "matrix_pins.io_delay", "value_type": "int"},      "MOUSEKEY_DELAY": {"info_key": "mousekey.delay", "value_type": "int"}, @@ -52,6 +52,8 @@      "ONESHOT_TAP_TOGGLE": {"info_key": "oneshot.tap_toggle", "value_type": "int"},      "PERMISSIVE_HOLD": {"info_key": "tapping.permissive_hold", "value_type": "bool"},      "PERMISSIVE_HOLD_PER_KEY": {"info_key": "tapping.permissive_hold_per_key", "value_type": "bool"}, +    "PS2_CLOCK_PIN": {"info_key": "ps2.clock_pin"}, +    "PS2_DATA_PIN": {"info_key": "ps2.data_pin"},      "RETRO_TAPPING": {"info_key": "tapping.retro", "value_type": "bool"},      "RETRO_TAPPING_PER_KEY": {"info_key": "tapping.retro_per_key", "value_type": "bool"},      "RGB_DI_PIN": {"info_key": "rgblight.pin"}, @@ -78,7 +80,7 @@      "RGBLIGHT_SLEEP": {"info_key": "rgblight.sleep", "value_type": "bool"},      "RGBLIGHT_SPLIT": {"info_key": "rgblight.split", "value_type": "bool"},      "RGBW": {"info_key": "rgblight.rgbw", "value_type": "bool"}, -    "PRODUCT": {"info_key": "keyboard_name", "warn_duplicate": false}, +    "PRODUCT": {"info_key": "keyboard_name", "warn_duplicate": false, "value_type": "str"},      "PRODUCT_ID": {"info_key": "usb.pid", "value_type": "hex"},      "VENDOR_ID": {"info_key": "usb.vid", "value_type": "hex"},      "QMK_ESC_OUTPUT": {"info_key": "qmk_lufa_bootloader.esc_output"}, diff --git a/data/mappings/info_rules.json b/data/mappings/info_rules.json index 3f140277fe..eaeafeda79 100644 --- a/data/mappings/info_rules.json +++ b/data/mappings/info_rules.json @@ -12,7 +12,7 @@      # replace_with: use with a key marked deprecated or invalid to designate a replacement      "BOARD": {"info_key": "board"},      "BOOTLOADER": {"info_key": "bootloader", "warn_duplicate": false}, -    "BLUETOOTH": {"info_key": "bluetooth.driver"}, +    "BLUETOOTH_DRIVER": {"info_key": "bluetooth.driver"},      "CAPS_WORD_ENABLE": {"info_key": "caps_word.enabled", "value_type": "bool"},      "ENCODER_ENABLE": {"info_key": "encoder.enabled", "value_type": "bool"},      "FIRMWARE_FORMAT": {"info_key": "build.firmware_format"}, @@ -32,6 +32,9 @@      "WAIT_FOR_USB": {"info_key": "usb.wait_for", "value_type": "bool"},      "STENO_ENABLE": {"info_key": "stenography.enabled", "value_type": "bool"},      "STENO_PROTOCOL": {"info_key": "stenography.protocol"}, +    "PS2_ENABLE": {"info_key": "ps2.enabled", "value_type": "bool"}, +    "PS2_MOUSE_ENABLE": {"info_key": "ps2.mouse_enabled", "value_type": "bool"}, +    "PS2_DRIVER": {"info_key": "ps2.driver"},      # Items we want flagged in lint      "CTPC": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"}, diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 0308f45116..d0375fcdc4 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -75,8 +75,7 @@                  "driver": {                      "type": "string",                      "enum": ["BluefruitLE", "RN42"] -                }, -                "lto": {"type": "boolean"} +                }              }          },          "board": { @@ -89,7 +88,6 @@              "enum": [                  "atmel-dfu",                  "bootloadhid", -                "bootloadHID",                  "caterina",                  "custom",                  "gd32v-dfu", @@ -106,7 +104,6 @@                  "tinyuf2",                  "unknown",                  "usbasploader", -                "USBasp",                  "wb32-dfu"              ]          }, @@ -393,6 +390,20 @@                  }              }          }, +        "ps2": { +            "type": "object", +            "additionalProperties": false, +            "properties": { +                "enabled": {"type": "boolean"}, +                "mouse_enabled": {"type": "boolean"}, +                "clock_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}, +                "data_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}, +                "driver": { +                    "type": "string", +                    "enum": ["busywait", "interrupt", "usart", "vendor"] +                } +            } +        },          "split": {              "type": "object",              "additionalProperties": false, diff --git a/docs/config_options.md b/docs/config_options.md index 3e011a5cc9..05e27a835c 100644 --- a/docs/config_options.md +++ b/docs/config_options.md @@ -39,11 +39,11 @@ This is a C header file that is one of the first things included, and will persi    * defines your VID, and for most DIY projects, can be whatever you want  * `#define PRODUCT_ID 0x5678`    * defines your PID, and for most DIY projects, can be whatever you want -* `#define DEVICE_VER 0` +* `#define DEVICE_VER 0x0100`    * defines the device version (often used for revisions) -* `#define MANUFACTURER Me` +* `#define MANUFACTURER "Me"`    * generally who/whatever brand produced the board -* `#define PRODUCT Board` +* `#define PRODUCT "Board"`    * the name of the keyboard  * `#define MATRIX_ROWS 5`    * the number of rows in your keyboard's matrix diff --git a/docs/feature_combo.md b/docs/feature_combo.md index 42d965509b..bb0b5d7aa0 100644 --- a/docs/feature_combo.md +++ b/docs/feature_combo.md @@ -255,7 +255,7 @@ bool combo_should_trigger(uint16_t combo_index, combo_t *combo, uint16_t keycode  ```  ## Variable Length Combos -If you leave `COMBO_COUNT` undefined in `config.h`, it allows you to programmatically declare the size of the Combo data structure and avoid updating `COMBO_COUNT`. Instead a variable called `COMBO_LEN` has to be set. It can be set with something similar to the following in `keymap.c`: `uint16_t COMBO_LEN = sizeof(key_combos) / sizeof(key_combos[0]);` or by adding `COMBO_LENGTH` as the *last* entry in the combo enum and then `uint16_t COMBO_LEN = COMBO_LENGTH;` as such: +If you leave `COMBO_COUNT` undefined in `config.h`, it allows you to programmatically declare the size of the Combo data structure and avoid updating `COMBO_COUNT`. Instead a variable called `COMBO_LEN` has to be set. It can be set with something similar to the following in `keymap.c`: `uint16_t COMBO_LEN = ARRAY_SIZE(key_combos);` or by adding `COMBO_LENGTH` as the *last* entry in the combo enum and then `uint16_t COMBO_LEN = COMBO_LENGTH;` as such:  ```c  enum myCombos {      ..., diff --git a/docs/feature_encoders.md b/docs/feature_encoders.md index fdde03ac23..f93ab9fd2d 100644 --- a/docs/feature_encoders.md +++ b/docs/feature_encoders.md @@ -88,6 +88,14 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {  #endif  ``` +Using encoder mapping pumps events through the normal QMK keycode processing pipeline, resulting in a _keydown/keyup_ combination pushed through `process_record_xxxxx()`. To configure the amount of time between the encoder "keyup" and "keydown", you can add the following to your `config.h`: + +```c +#define ENCODER_MAP_KEY_DELAY 10 +``` + +?> By default, the encoder map delay matches the value of `TAP_CODE_DELAY`. +  ## Callbacks  When not using `ENCODER_MAP_ENABLE = yes`, the callback functions can be inserted into your `<keyboard>.c`: @@ -119,7 +127,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) {  }  ``` -!> If you return `true`, it will allow the keyboard level code to run as well. Returning `false` will override the keyboard level code, depending on how the keyboard function is set up.  +!> If you return `true`, it will allow the keyboard level code to run as well. Returning `false` will override the keyboard level code, depending on how the keyboard function is set up.  Layer conditions can also be used with the callback function like the following: @@ -172,7 +180,7 @@ The A an B lines of the encoders should be wired directly to the MCU, and the C/  Multiple encoders may share pins so long as each encoder has a distinct pair of pins when the following conditions are met:  - using detent encoders  - pads must be high at the detent stability point which is called 'default position' in QMK -- no more than two encoders sharing a pin can be turned at the same time  +- no more than two encoders sharing a pin can be turned at the same time  For example you can support two encoders using only 3 pins like this  ``` @@ -185,4 +193,4 @@ You could even support three encoders using only three pins (one per encoder) ho  #define ENCODERS_PAD_A { B1, B1, B2 }  #define ENCODERS_PAD_B { B2, B3, B3 }  ``` -Here rotating Encoder 0 `B1 B2` and Encoder 1 `B1 B3` could be interpreted as rotating Encoder 2 `B2 B3` or `B3 B2` depending on the timing. This may still be a useful configuration depending on your use case  +Here rotating Encoder 0 `B1 B2` and Encoder 1 `B1 B3` could be interpreted as rotating Encoder 2 `B2 B3` or `B3 B2` depending on the timing. This may still be a useful configuration depending on your use case diff --git a/docs/feature_pointing_device.md b/docs/feature_pointing_device.md index 999dd1272d..afc57ed493 100644 --- a/docs/feature_pointing_device.md +++ b/docs/feature_pointing_device.md @@ -487,3 +487,13 @@ report_mouse_t pointing_device_task_combined_user(report_mouse_t left_report, re      return pointing_device_combine_reports(left_report, right_report);  }  ``` + +# Troubleshooting + +If you are having issues with pointing device drivers debug messages can be enabled that will give you insights in the inner workings. To enable these add to your keyboards `config.h` file: + +```c +#define POINTING_DEVICE_DEBUG +``` +  +?> The messages will be printed out to the `CONSOLE` output. For additional information, refer to [Debugging/Troubleshooting QMK](faq_debug.md). diff --git a/docs/feature_ps2_mouse.md b/docs/feature_ps2_mouse.md index c980705ae7..e714d9b867 100644 --- a/docs/feature_ps2_mouse.md +++ b/docs/feature_ps2_mouse.md @@ -32,13 +32,14 @@ In rules.mk:  ```make  PS2_MOUSE_ENABLE = yes -PS2_USE_BUSYWAIT = yes +PS2_ENABLE = yes +PS2_DRIVER = busywait  ```  In your keyboard config.h:  ```c -#ifdef PS2_USE_BUSYWAIT +#ifdef PS2_DRIVER_BUSYWAIT  #   define PS2_CLOCK_PIN   D1  #   define PS2_DATA_PIN    D2  #endif @@ -52,13 +53,14 @@ In rules.mk:  ```make  PS2_MOUSE_ENABLE = yes -PS2_USE_INT = yes +PS2_ENABLE = yes +PS2_DRIVER = interrupt  ```  In your keyboard config.h:  ```c -#ifdef PS2_USE_INT +#ifdef PS2_DRIVER_INTERRUPT  #define PS2_CLOCK_PIN   D2  #define PS2_DATA_PIN    D5 @@ -84,7 +86,8 @@ In rules.mk:  ```  PS2_MOUSE_ENABLE = yes -PS2_USE_INT = yes +PS2_ENABLE = yes +PS2_DRIVER = interrupt  ```  In your keyboard config.h: @@ -108,13 +111,14 @@ In rules.mk:  ```make  PS2_MOUSE_ENABLE = yes -PS2_USE_USART = yes +PS2_ENABLE = yes +PS2_DRIVER = usart  ```  In your keyboard config.h:  ```c -#ifdef PS2_USE_USART +#ifdef PS2_DRIVER_USART  #define PS2_CLOCK_PIN   D5  #define PS2_DATA_PIN    D2 diff --git a/docs/feature_unicode.md b/docs/feature_unicode.md index 2389cb735c..94873d2827 100644 --- a/docs/feature_unicode.md +++ b/docs/feature_unicode.md @@ -206,6 +206,17 @@ The functions for starting and finishing Unicode input on your platform can be o  You can find the default implementations of these functions in [`process_unicode_common.c`](https://github.com/qmk/qmk_firmware/blob/master/quantum/process_keycode/process_unicode_common.c). +### Input Mode Callbacks + +There are callbacks functions available that are called whenever the unicode input mode changes. The new input mode is passed to the function. + +|Callback                                           |Description                                          | +|---------------------------------------------------|-----------------------------------------------------| +| `unicode_input_mode_set_kb(uint8_t input_mode)`   | Callback for unicode input mode set, for keyboard.  | +| `unicode_input_mode_set_user(uint8_t input_mode)` | Callback for unicode input mode set, for users.     | + +This feature can be used, for instance, to implement LED indicators for the current unicode input mode. +  ### Input Key Configuration  You can customize the keys used to trigger Unicode input for macOS, Linux and WinCompose by adding corresponding defines to your `config.h`. The default values match the platforms' default settings, so you shouldn't need to change this unless Unicode input isn't working, or you want to use a different key (e.g. in order to free up left or right Alt). diff --git a/docs/ja/feature_ps2_mouse.md b/docs/ja/feature_ps2_mouse.md index 569934c187..2798f61283 100644 --- a/docs/ja/feature_ps2_mouse.md +++ b/docs/ja/feature_ps2_mouse.md @@ -36,13 +36,14 @@ rules.mk で:  ```makefile  PS2_MOUSE_ENABLE = yes -PS2_USE_BUSYWAIT = yes +PS2_ENABLE = yes +PS2_DRIVER = busywait  ```  キーボードの config.h で:  ```c -#ifdef PS2_USE_BUSYWAIT +#ifdef PS2_DRIVER_BUSYWAIT  #   define PS2_CLOCK_PIN   D1  #   define PS2_DATA_PIN    D2  #endif @@ -56,13 +57,14 @@ rules.mk で:  ```makefile  PS2_MOUSE_ENABLE = yes -PS2_USE_INT = yes +PS2_ENABLE = yes +PS2_DRIVER = interrupt  ```  キーボードの config.h で:  ```c -#ifdef PS2_USE_INT +#ifdef PS2_DRIVER_INTERRUPT  #define PS2_CLOCK_PIN   D2  #define PS2_DATA_PIN    D5 @@ -88,14 +90,14 @@ rules.mk で:  ```makefile  PS2_MOUSE_ENABLE = yes -PS2_USE_USART = yes +PS2_ENABLE = yes +PS2_DRIVER = usart  ```  キーボードの config.h で:  ```c -#ifdef PS2_USE_USART -#ifdef PS2_USE_USART +#ifdef PS2_DRIVER_USART  #define PS2_CLOCK_PIN   D5  #define PS2_DATA_PIN    D2 diff --git a/drivers/haptic/solenoid.c b/drivers/haptic/solenoid.c index 637a77da3d..4e43903255 100644 --- a/drivers/haptic/solenoid.c +++ b/drivers/haptic/solenoid.c @@ -20,11 +20,12 @@  #include "haptic.h"  #include "gpio.h"  #include "usb_device_state.h" +#include "util.h"  #include <stdlib.h>  uint8_t      solenoid_dwell  = SOLENOID_DEFAULT_DWELL;  static pin_t solenoid_pads[] = SOLENOID_PINS; -#define NUMBER_OF_SOLENOIDS (sizeof(solenoid_pads) / sizeof(pin_t)) +#define NUMBER_OF_SOLENOIDS ARRAY_SIZE(solenoid_pads)  bool     solenoid_on[NUMBER_OF_SOLENOIDS]      = {false};  bool     solenoid_buzzing[NUMBER_OF_SOLENOIDS] = {false};  uint16_t solenoid_start[NUMBER_OF_SOLENOIDS]   = {0}; @@ -147,7 +148,7 @@ void solenoid_check(void) {  void solenoid_setup(void) {  #ifdef SOLENOID_PINS_ACTIVE_STATE      bool    state_temp[] = SOLENOID_PINS_ACTIVE_STATE; -    uint8_t bound_check  = (sizeof(state_temp) / sizeof(bool)); +    uint8_t bound_check  = ARRAY_SIZE(state_temp);  #endif      for (uint8_t i = 0; i < NUMBER_OF_SOLENOIDS; i++) { diff --git a/drivers/sensors/cirque_pinnacle.c b/drivers/sensors/cirque_pinnacle.c index 8bd4eb736e..4aed5fe67a 100644 --- a/drivers/sensors/cirque_pinnacle.c +++ b/drivers/sensors/cirque_pinnacle.c @@ -4,8 +4,6 @@  // refer to documentation: Gen2 and Gen3 (Pinnacle ASIC) at https://www.cirque.com/documentation  #include "cirque_pinnacle.h" -#include "print.h" -#include "debug.h"  #include "wait.h"  #include "timer.h" @@ -27,12 +25,6 @@ void cirque_pinnacle_enable_feed(bool feedEnable);  void RAP_ReadBytes(uint8_t address, uint8_t* data, uint8_t count);  void RAP_Write(uint8_t address, uint8_t data); -#ifdef CONSOLE_ENABLE -void print_byte(uint8_t byte) { -    xprintf("%c%c%c%c%c%c%c%c|", (byte & 0x80 ? '1' : '0'), (byte & 0x40 ? '1' : '0'), (byte & 0x20 ? '1' : '0'), (byte & 0x10 ? '1' : '0'), (byte & 0x08 ? '1' : '0'), (byte & 0x04 ? '1' : '0'), (byte & 0x02 ? '1' : '0'), (byte & 0x01 ? '1' : '0')); -} -#endif -  #if CIRQUE_PINNACLE_POSITION_MODE  /*  Logical Scaling Functions */  // Clips raw coordinates to "reachable" window of sensor diff --git a/drivers/sensors/cirque_pinnacle.h b/drivers/sensors/cirque_pinnacle.h index fa06e047f2..8717b32991 100644 --- a/drivers/sensors/cirque_pinnacle.h +++ b/drivers/sensors/cirque_pinnacle.h @@ -5,6 +5,7 @@  #include "cirque_pinnacle_regdefs.h"  #include <stdint.h>  #include <stdbool.h> +#include "pointing_device_internal.h"  #ifndef CIRQUE_PINNACLE_TIMEOUT  #    define CIRQUE_PINNACLE_TIMEOUT 20 // I2C timeout in milliseconds diff --git a/drivers/sensors/cirque_pinnacle_i2c.c b/drivers/sensors/cirque_pinnacle_i2c.c index b328dd9a7a..3c11e5f079 100644 --- a/drivers/sensors/cirque_pinnacle_i2c.c +++ b/drivers/sensors/cirque_pinnacle_i2c.c @@ -1,8 +1,6 @@  // Copyright (c) 2018 Cirque Corp. Restrictions apply. See: www.cirque.com/sw-license  #include "cirque_pinnacle.h"  #include "i2c_master.h" -#include "print.h" -#include "debug.h"  #include "stdio.h"  // Masks for Cirque Register Access Protocol (RAP) @@ -18,9 +16,7 @@ void RAP_ReadBytes(uint8_t address, uint8_t* data, uint8_t count) {      if (touchpad_init) {          i2c_writeReg(CIRQUE_PINNACLE_ADDR << 1, cmdByte, NULL, 0, CIRQUE_PINNACLE_TIMEOUT);          if (i2c_readReg(CIRQUE_PINNACLE_ADDR << 1, cmdByte, data, count, CIRQUE_PINNACLE_TIMEOUT) != I2C_STATUS_SUCCESS) { -#ifdef CONSOLE_ENABLE -            dprintf("error cirque_pinnacle i2c_readReg\n"); -#endif +            pd_dprintf("error cirque_pinnacle i2c_readReg\n");              touchpad_init = false;          }          i2c_stop(); @@ -33,9 +29,7 @@ void RAP_Write(uint8_t address, uint8_t data) {      if (touchpad_init) {          if (i2c_writeReg(CIRQUE_PINNACLE_ADDR << 1, cmdByte, &data, sizeof(data), CIRQUE_PINNACLE_TIMEOUT) != I2C_STATUS_SUCCESS) { -#ifdef CONSOLE_ENABLE -            dprintf("error cirque_pinnacle i2c_writeReg\n"); -#endif +            pd_dprintf("error cirque_pinnacle i2c_writeReg\n");              touchpad_init = false;          }          i2c_stop(); diff --git a/drivers/sensors/cirque_pinnacle_spi.c b/drivers/sensors/cirque_pinnacle_spi.c index bd980fc863..5cb39aebb0 100644 --- a/drivers/sensors/cirque_pinnacle_spi.c +++ b/drivers/sensors/cirque_pinnacle_spi.c @@ -1,8 +1,6 @@  // Copyright (c) 2018 Cirque Corp. Restrictions apply. See: www.cirque.com/sw-license  #include "cirque_pinnacle.h"  #include "spi_master.h" -#include "print.h" -#include "debug.h"  // Masks for Cirque Register Access Protocol (RAP)  #define WRITE_MASK 0x80 @@ -24,9 +22,7 @@ void RAP_ReadBytes(uint8_t address, uint8_t* data, uint8_t count) {                  data[i] = spi_write(FILLER_BYTE); // write filler, receive data on the third filler send              }          } else { -#ifdef CONSOLE_ENABLE -            dprintf("error cirque_pinnacle spi_start read\n"); -#endif +            pd_dprintf("error cirque_pinnacle spi_start read\n");              touchpad_init = false;          }          spi_stop(); @@ -42,9 +38,7 @@ void RAP_Write(uint8_t address, uint8_t data) {              spi_write(cmdByte);              spi_write(data);          } else { -#ifdef CONSOLE_ENABLE -            dprintf("error cirque_pinnacle spi_start write\n"); -#endif +            pd_dprintf("error cirque_pinnacle spi_start write\n");              touchpad_init = false;          }          spi_stop(); diff --git a/drivers/sensors/pimoroni_trackball.c b/drivers/sensors/pimoroni_trackball.c index 88a351316b..326e59744f 100644 --- a/drivers/sensors/pimoroni_trackball.c +++ b/drivers/sensors/pimoroni_trackball.c @@ -14,10 +14,10 @@   * You should have received a copy of the GNU General Public License   * along with this program.  If not, see <http://www.gnu.org/licenses/>.   */ + +#include "pointing_device_internal.h"  #include "pimoroni_trackball.h"  #include "i2c_master.h" -#include "print.h" -#include "debug.h"  #include "timer.h"  // clang-format off @@ -58,20 +58,17 @@ void pimoroni_trackball_set_rgbw(uint8_t r, uint8_t g, uint8_t b, uint8_t w) {      uint8_t                              data[4] = {r, g, b, w};      __attribute__((unused)) i2c_status_t status  = i2c_writeReg(PIMORONI_TRACKBALL_ADDRESS << 1, PIMORONI_TRACKBALL_REG_LED_RED, data, sizeof(data), PIMORONI_TRACKBALL_TIMEOUT); -#ifdef CONSOLE_ENABLE -    if (debug_mouse) dprintf("Trackball RGBW i2c_status_t: %d\n", status); -#endif +    pd_dprintf("Trackball RGBW i2c_status_t: %d\n", status);  }  i2c_status_t read_pimoroni_trackball(pimoroni_data_t* data) {      i2c_status_t status = i2c_readReg(PIMORONI_TRACKBALL_ADDRESS << 1, PIMORONI_TRACKBALL_REG_LEFT, (uint8_t*)data, sizeof(*data), PIMORONI_TRACKBALL_TIMEOUT); -#ifdef CONSOLE_ENABLE -    if (debug_mouse) { -        static uint16_t d_timer; -        if (timer_elapsed(d_timer) > PIMORONI_TRACKBALL_DEBUG_INTERVAL) { -            dprintf("Trackball READ i2c_status_t: %d L: %d R: %d Up: %d D: %d SW: %d\n", status, data->left, data->right, data->up, data->down, data->click); -            d_timer = timer_read(); -        } + +#ifdef POINTING_DEVICE_DEBUG +    static uint16_t d_timer; +    if (timer_elapsed(d_timer) > PIMORONI_TRACKBALL_DEBUG_INTERVAL) { +        pd_dprintf("Trackball READ i2c_status_t: %d L: %d R: %d Up: %d D: %d SW: %d\n", status, data->left, data->right, data->up, data->down, data->click); +        d_timer = timer_read();      }  #endif diff --git a/drivers/sensors/pmw33xx_common.c b/drivers/sensors/pmw33xx_common.c index 13164cb150..b8d4e532ca 100644 --- a/drivers/sensors/pmw33xx_common.c +++ b/drivers/sensors/pmw33xx_common.c @@ -7,9 +7,8 @@  // Copyright 2020 Ploopy Corporation  // SPDX-License-Identifier: GPL-2.0-or-later -#include "debug.h" +#include "pointing_device_internal.h"  #include "pmw33xx_common.h" -#include "print.h"  #include "string.h"  #include "wait.h"  #include "spi_master.h" @@ -18,10 +17,10 @@  extern const uint8_t pmw33xx_firmware_data[PMW33XX_FIRMWARE_LENGTH] PROGMEM;  extern const uint8_t pmw33xx_firmware_signature[3] PROGMEM; -static const pin_t cs_pins[]                                 = PMW33XX_CS_PINS; -static bool        in_burst[sizeof(cs_pins) / sizeof(pin_t)] = {0}; +static const pin_t cs_pins[]                     = PMW33XX_CS_PINS; +static bool        in_burst[ARRAY_SIZE(cs_pins)] = {0}; -const size_t pmw33xx_number_of_sensors = sizeof(cs_pins) / sizeof(pin_t); +const size_t pmw33xx_number_of_sensors = ARRAY_SIZE(cs_pins);  bool __attribute__((cold)) pmw33xx_upload_firmware(uint8_t sensor);  bool __attribute__((cold)) pmw33xx_check_signature(uint8_t sensor); @@ -154,7 +153,7 @@ bool pmw33xx_init(uint8_t sensor) {      pmw33xx_read(sensor, REG_Delta_Y_H);      if (!pmw33xx_upload_firmware(sensor)) { -        dprintf("PMW33XX (%d): firmware upload failed!\n", sensor); +        pd_dprintf("PMW33XX (%d): firmware upload failed!\n", sensor);          return false;      } @@ -170,7 +169,7 @@ bool pmw33xx_init(uint8_t sensor) {      pmw33xx_write(sensor, REG_Lift_Config, PMW33XX_LIFTOFF_DISTANCE);      if (!pmw33xx_check_signature(sensor)) { -        dprintf("PMW33XX (%d): firmware signature verification failed!\n", sensor); +        pd_dprintf("PMW33XX (%d): firmware signature verification failed!\n", sensor);          return false;      } @@ -185,7 +184,7 @@ pmw33xx_report_t pmw33xx_read_burst(uint8_t sensor) {      }      if (!in_burst[sensor]) { -        dprintf("PMW33XX (%d): burst\n", sensor); +        pd_dprintf("PMW33XX (%d): burst\n", sensor);          if (!pmw33xx_write(sensor, REG_Motion_Burst, 0x00)) {              return report;          } @@ -208,9 +207,7 @@ pmw33xx_report_t pmw33xx_read_burst(uint8_t sensor) {      spi_stop(); -    if (debug_config.mouse) { -        dprintf("PMW33XX (%d): motion: 0x%x dx: %i dy: %i\n", sensor, report.motion.w, report.delta_x, report.delta_y); -    } +    pd_dprintf("PMW33XX (%d): motion: 0x%x dx: %i dy: %i\n", sensor, report.motion.w, report.delta_x, report.delta_y);      report.delta_x *= -1;      report.delta_y *= -1; diff --git a/keyboards/25keys/zinc/keymaps/ginjake/keymap.c b/keyboards/25keys/zinc/keymaps/ginjake/keymap.c index 93dfc590e9..26190a2a91 100644 --- a/keyboards/25keys/zinc/keymaps/ginjake/keymap.c +++ b/keyboards/25keys/zinc/keymaps/ginjake/keymap.c @@ -333,7 +333,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {        aqours_num++;        aqours_next_color_timer_count = 0;        target_col = 0; -      if (aqours_num == sizeof(aqours_h) / sizeof(int)) { +      if (aqours_num == ARRAY_SIZE(aqours_h)) {          aqours_num = 0;        }      } diff --git a/keyboards/40percentclub/gherkin/keymaps/mjt/config.h b/keyboards/40percentclub/gherkin/keymaps/mjt/config.h index ce9d5ab2ae..5a295a06ca 100644 --- a/keyboards/40percentclub/gherkin/keymaps/mjt/config.h +++ b/keyboards/40percentclub/gherkin/keymaps/mjt/config.h @@ -1,5 +1,4 @@  #pragma once -/* USB Device descriptor parameter */  #undef MANUFACTURER -#define MANUFACTURER    Some Guy +#define MANUFACTURER    "Some Guy" diff --git a/keyboards/40percentclub/mf68/keymaps/68keys/config.h b/keyboards/40percentclub/mf68/keymaps/68keys/config.h index 651c17069d..66e7bbed99 100644 --- a/keyboards/40percentclub/mf68/keymaps/68keys/config.h +++ b/keyboards/40percentclub/mf68/keymaps/68keys/config.h @@ -9,5 +9,5 @@  #define VENDOR_ID 0xFEED  #define PRODUCT_ID 0x0A0C  #define DEVICE_VER 0x0068 -#define MANUFACTURER 68Keys.io -#define PRODUCT The 68Keys.io Keyboard +#define MANUFACTURER "68Keys.io" +#define PRODUCT "The 68Keys.io Keyboard" diff --git a/keyboards/40percentclub/mf68/keymaps/delivrance/config.h b/keyboards/40percentclub/mf68/keymaps/delivrance/config.h index 7ae8805765..50c64b4b51 100644 --- a/keyboards/40percentclub/mf68/keymaps/delivrance/config.h +++ b/keyboards/40percentclub/mf68/keymaps/delivrance/config.h @@ -21,10 +21,10 @@  #pragma once  #undef MANUFACTURER -#define MANUFACTURER Dan +#define MANUFACTURER "Dan"  #undef PRODUCT -#define PRODUCT Magicforce 68 QMK +#define PRODUCT "Magicforce 68 QMK"  #undef BACKLIGHT_LEVELS  #define BACKLIGHT_LEVELS 20 diff --git a/keyboards/acheron/shark/beta/keymaps/gondolindrim/keymap.c b/keyboards/acheron/shark/beta/keymaps/gondolindrim/keymap.c index cae98411d6..fd7f556b56 100755 --- a/keyboards/acheron/shark/beta/keymaps/gondolindrim/keymap.c +++ b/keyboards/acheron/shark/beta/keymaps/gondolindrim/keymap.c @@ -94,7 +94,7 @@ encoder_mode_t encoder_modes[] = {  	// Insert your custom encoder mode here  }; -#define NUM_ENCODER_MODES (sizeof(encoder_modes)/sizeof(encoder_modes[0])) +#define NUM_ENCODER_MODES ARRAY_SIZE(encoder_modes)  // This counter is used to track what encoder mode is being used at a certain time  int encoder_mode_count = 0; diff --git a/keyboards/adafruit/macropad/lib/ssd1306_sh1106.c b/keyboards/adafruit/macropad/lib/ssd1306_sh1106.c index dc1289fdb1..1b05809640 100644 --- a/keyboards/adafruit/macropad/lib/ssd1306_sh1106.c +++ b/keyboards/adafruit/macropad/lib/ssd1306_sh1106.c @@ -94,8 +94,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #define OLED_ALL_BLOCKS_MASK (((((OLED_BLOCK_TYPE)1 << (OLED_BLOCK_COUNT - 1)) - 1) << 1) | 1) -#define ARRAY_SIZE(arr) sizeof(arr)/sizeof(arr[0]) -  // spi defines  #define OLED_STATUS_SUCCESS SPI_STATUS_SUCCESS diff --git a/keyboards/adpenrose/shisaku/info.json b/keyboards/adpenrose/shisaku/info.json index 6f765ba648..a93898c33b 100644 --- a/keyboards/adpenrose/shisaku/info.json +++ b/keyboards/adpenrose/shisaku/info.json @@ -1,5 +1,6 @@  {      "keyboard_name": "shisaku", +    "manufacturer": "ADPenrose",      "url": "https://github.com/ADPenrose/shisaku_keeb",      "maintainer": "ADPenrose",      "usb": { diff --git a/keyboards/annepro2/annepro2_ble.c b/keyboards/annepro2/annepro2_ble.c index 0336d6a76c..c75de6720c 100644 --- a/keyboards/annepro2/annepro2_ble.c +++ b/keyboards/annepro2/annepro2_ble.c @@ -24,15 +24,14 @@  /* -------------------- Static Function Prototypes -------------------------- */  static uint8_t ap2_ble_leds(void);  static void    ap2_ble_mouse(report_mouse_t *report); -static void    ap2_ble_system(uint16_t data); -static void    ap2_ble_consumer(uint16_t data); +static void    ap2_ble_extra(uint8_t report_id, uint16_t data);  static void    ap2_ble_keyboard(report_keyboard_t *report);  static void ap2_ble_swtich_ble_driver(void);  /* -------------------- Static Local Variables ------------------------------ */  static host_driver_t ap2_ble_driver = { -    ap2_ble_leds, ap2_ble_keyboard, ap2_ble_mouse, ap2_ble_system, ap2_ble_consumer, +    ap2_ble_leds, ap2_ble_keyboard, ap2_ble_mouse, ap2_ble_extra  };  static uint8_t ble_mcu_wakeup[11] = {0x7b, 0x12, 0x53, 0x00, 0x03, 0x00, 0x01, 0x7d, 0x02, 0x01, 0x02}; @@ -131,8 +130,6 @@ static uint8_t ap2_ble_leds(void) {  static void ap2_ble_mouse(report_mouse_t *report) {} -static void ap2_ble_system(uint16_t data) {} -  static inline uint16_t CONSUMER2AP2(uint16_t usage) {      switch (usage) {          case AUDIO_VOL_DOWN: @@ -152,12 +149,14 @@ static inline uint16_t CONSUMER2AP2(uint16_t usage) {      }  } -static void ap2_ble_consumer(uint16_t data) { -    sdPut(&SD1, 0x0); -    sdWrite(&SD1, ble_mcu_send_consumer_report, sizeof(ble_mcu_send_consumer_report)); -    sdPut(&SD1, CONSUMER2AP2(data)); -    static const uint8_t dummy[3] = {0}; -    sdWrite(&SD1, dummy, sizeof(dummy)); +static void ap2_ble_extra(uint8_t report_id, uint16_t data) { +    if (report_id == REPORT_ID_CONSUMER) { +        sdPut(&SD1, 0x0); +        sdWrite(&SD1, ble_mcu_send_consumer_report, sizeof(ble_mcu_send_consumer_report)); +        sdPut(&SD1, CONSUMER2AP2(data)); +        static const uint8_t dummy[3] = {0}; +        sdWrite(&SD1, dummy, sizeof(dummy)); +    }  }  /*! diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/config.h b/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/config.h index 39204a3667..f3e8f83b2a 100644 --- a/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/config.h +++ b/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/config.h @@ -19,7 +19,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #pragma once  #undef PRODUCT -#define PRODUCT Charybdis Nano (Blackpill) +#define PRODUCT "Charybdis Nano (Blackpill)"  #undef MATRIX_ROW_PINS  #define MATRIX_ROW_PINS \ diff --git a/keyboards/bioi/ble.c b/keyboards/bioi/ble.c index d941f7c43d..b050b2f6cb 100644 --- a/keyboards/bioi/ble.c +++ b/keyboards/bioi/ble.c @@ -96,15 +96,14 @@ static void bluefruit_serial_send(uint8_t data)  static uint8_t keyboard_leds(void);  static void send_keyboard(report_keyboard_t *report);  static void send_mouse(report_mouse_t *report); -static void send_system(uint16_t data); -static void send_consumer(uint16_t data); +static void send_extra(uint8_t report_id, uint16_t data);  host_driver_t bluefruit_driver = {      keyboard_leds,      send_keyboard,      send_mouse, -    send_system, -    send_consumer}; +    send_extra +};  host_driver_t null_driver = {}; @@ -156,10 +155,6 @@ static void send_mouse(report_mouse_t *report)  #endif  } -static void send_system(uint16_t data) -{ -} -  /*  +-----------------+-------------------+-------+  | Consumer Key    | Bit Map           | Hex   | @@ -182,30 +177,32 @@ static void send_system(uint16_t data)  #define CONSUMER2BLUEFRUIT(usage) \      (usage == AUDIO_MUTE ? 0x00e2 : (usage == AUDIO_VOL_UP ? 0x00e9 : (usage == AUDIO_VOL_DOWN ? 0x00ea : (usage == TRANSPORT_NEXT_TRACK ? 0x00b5 : (usage == TRANSPORT_PREV_TRACK ? 0x00b6 : (usage == TRANSPORT_STOP ? 0x00b7 : (usage == TRANSPORT_STOP_EJECT ? 0x00b8 : (usage == TRANSPORT_PLAY_PAUSE ? 0x00b1 : (usage == AL_CC_CONFIG ? 0x0183 : (usage == AL_EMAIL ? 0x018c : (usage == AL_CALCULATOR ? 0x0192 : (usage == AL_LOCAL_BROWSER ? 0x0196 : (usage == AC_SEARCH ? 0x021f : (usage == AC_HOME ? 0x0223 : (usage == AC_BACK ? 0x0224 : (usage == AC_FORWARD ? 0x0225 : (usage == AC_STOP ? 0x0226 : (usage == AC_REFRESH ? 0x0227 : (usage == AC_BOOKMARKS ? 0x022a : 0))))))))))))))))))) -static void send_consumer(uint16_t data) +static void send_extra(uint8_t report_id, uint16_t data)  { -    static uint16_t last_data = 0; -    if (data == last_data) -        return; -    last_data = data; +    if (report_id == REPORT_ID_CONSUMER) { +        static uint16_t last_data = 0; +        if (data == last_data) +            return; +        last_data = data; -    uint16_t bitmap = CONSUMER2BLUEFRUIT(data); +        uint16_t bitmap = CONSUMER2BLUEFRUIT(data);  #ifdef BLUEFRUIT_TRACE_SERIAL -    dprintf("\nData: "); -    debug_hex16(data); -    dprintf("; bitmap: "); -    debug_hex16(bitmap); -    dprintf("\n"); -    bluefruit_trace_header(); +        dprintf("\nData: "); +        debug_hex16(data); +        dprintf("; bitmap: "); +        debug_hex16(bitmap); +        dprintf("\n"); +        bluefruit_trace_header();  #endif -    send_str(PSTR("AT+BLEHIDCONTROLKEY=0x")); -    send_bytes((bitmap >> 8) & 0xFF); -    send_bytes(bitmap & 0xFF); -    send_str(PSTR("\r\n")); +        send_str(PSTR("AT+BLEHIDCONTROLKEY=0x")); +        send_bytes((bitmap >> 8) & 0xFF); +        send_bytes(bitmap & 0xFF); +        send_str(PSTR("\r\n"));  #ifdef BLUEFRUIT_TRACE_SERIAL -    bluefruit_trace_footer(); +        bluefruit_trace_footer();  #endif +    }  }  void usart_init(void) diff --git a/keyboards/bpiphany/pegasushoof/keymaps/citadel/config.h b/keyboards/bpiphany/pegasushoof/keymaps/citadel/config.h index 122627e88f..9ff01f7e84 100644 --- a/keyboards/bpiphany/pegasushoof/keymaps/citadel/config.h +++ b/keyboards/bpiphany/pegasushoof/keymaps/citadel/config.h @@ -3,4 +3,4 @@  /* overridden settings: */  #undef PRODUCT -#define PRODUCT Pegasus Hoof Citadel +#define PRODUCT "Pegasus Hoof Citadel" diff --git a/keyboards/buzzard/rev1/config.h b/keyboards/buzzard/rev1/config.h index 66c1a9a42e..67555ba92c 100644 --- a/keyboards/buzzard/rev1/config.h +++ b/keyboards/buzzard/rev1/config.h @@ -35,7 +35,7 @@  #define SPLIT_OLED_ENABLE  #endif -#ifdef PS2_USE_INT +#ifdef PS2_DRIVER_INTERRUPT  #define PS2_CLOCK_PIN   E6  #define PS2_DATA_PIN    D7 diff --git a/keyboards/buzzard/rev1/rules.mk b/keyboards/buzzard/rev1/rules.mk index 9a479c64e6..13c63d5b17 100644 --- a/keyboards/buzzard/rev1/rules.mk +++ b/keyboards/buzzard/rev1/rules.mk @@ -1,3 +1,4 @@  OLED_DRIVER = SSD1306 -PS2_USE_INT = yes +PS2_ENABLE = yes +PS2_DRIVER = interrupt diff --git a/keyboards/clueboard/17/info.json b/keyboards/clueboard/17/info.json index 5ea4937e50..5d87806703 100644 --- a/keyboards/clueboard/17/info.json +++ b/keyboards/clueboard/17/info.json @@ -4,6 +4,7 @@    "maintainer": "skullydazed",    "diode_direction": "COL2ROW",    "processor": "atmega32u4", +  "bootloader": "atmel-dfu",    "features": {      "backlight": true,      "bootmagic": false, diff --git a/keyboards/clueboard/66/rev1/info.json b/keyboards/clueboard/66/rev1/info.json index bc3e1e23b6..76aa685768 100644 --- a/keyboards/clueboard/66/rev1/info.json +++ b/keyboards/clueboard/66/rev1/info.json @@ -3,6 +3,7 @@    "keyboard_name": "Clueboard 66%",    "maintainer": "skullydazed",    "processor": "atmega32u4", +  "bootloader": "atmel-dfu",    "debounce": 5,    "diode_direction": "COL2ROW",    "features": { diff --git a/keyboards/clueboard/66/rev2/info.json b/keyboards/clueboard/66/rev2/info.json index 0cfb690388..7ee7a88df0 100644 --- a/keyboards/clueboard/66/rev2/info.json +++ b/keyboards/clueboard/66/rev2/info.json @@ -3,6 +3,7 @@    "keyboard_name": "Clueboard 66%",    "maintainer": "skullydazed",    "processor": "atmega32u4", +  "bootloader": "atmel-dfu",    "debounce": 5,    "diode_direction": "COL2ROW",    "features": { diff --git a/keyboards/clueboard/66/rev3/info.json b/keyboards/clueboard/66/rev3/info.json index 208bc22dd1..0dc0097a52 100644 --- a/keyboards/clueboard/66/rev3/info.json +++ b/keyboards/clueboard/66/rev3/info.json @@ -3,6 +3,7 @@    "keyboard_name": "Clueboard 66% rev3",    "maintainer": "skullydazed",    "processor": "atmega32u4", +  "bootloader": "atmel-dfu",    "debounce": 5,    "diode_direction": "COL2ROW",    "features": { diff --git a/keyboards/clueboard/66_hotswap/prototype/info.json b/keyboards/clueboard/66_hotswap/prototype/info.json index 4940af8439..21db54513f 100644 --- a/keyboards/clueboard/66_hotswap/prototype/info.json +++ b/keyboards/clueboard/66_hotswap/prototype/info.json @@ -5,6 +5,7 @@    "debounce": 5,    "diode_direction": "COL2ROW",    "processor": "atmega32u4", +  "bootloader": "atmel-dfu",    "features": {      "audio": true,      "backlight": true, diff --git a/keyboards/clueboard/card/info.json b/keyboards/clueboard/card/info.json index aaeda61b94..739d253971 100644 --- a/keyboards/clueboard/card/info.json +++ b/keyboards/clueboard/card/info.json @@ -4,6 +4,7 @@    "maintainer": "skullydazed",    "debounce": 20,    "processor": "atmega32u4", +  "bootloader": "atmel-dfu",    "diode_direction": "ROW2COL",    "features": {      "audio": true, diff --git a/keyboards/converter/ibm_terminal/config.h b/keyboards/converter/ibm_terminal/config.h index 9e7d140809..9b44bfa3ea 100644 --- a/keyboards/converter/ibm_terminal/config.h +++ b/keyboards/converter/ibm_terminal/config.h @@ -36,7 +36,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  /*   * PS/2 USART configuration for ATMega32U4   */ -#ifdef PS2_USE_USART +#ifdef PS2_DRIVER_USART  /* XCK for clock line */  #define PS2_CLOCK_PIN   D5  #define PS2_DATA_PIN    D2 @@ -77,7 +77,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  /*   * PS/2 Interrupt configuration   */ -#ifdef PS2_USE_INT +#ifdef PS2_DRIVER_INTERRUPT  /* uses INT1 for clock line(ATMega32U4) */  #define PS2_CLOCK_PIN   D1  #define PS2_DATA_PIN    D0 @@ -99,7 +99,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  /*   * PS/2 Busywait configuration   */ -#ifdef PS2_USE_BUSYWAIT +#ifdef PS2_DRIVER_BUSYWAIT  #define PS2_CLOCK_PIN   D1  #define PS2_DATA_PIN    D0  #endif diff --git a/keyboards/converter/ibm_terminal/keymaps/default/rules.mk b/keyboards/converter/ibm_terminal/keymaps/default/rules.mk index e3cb087a76..10f43dc416 100644 --- a/keyboards/converter/ibm_terminal/keymaps/default/rules.mk +++ b/keyboards/converter/ibm_terminal/keymaps/default/rules.mk @@ -7,4 +7,5 @@ NKRO_ENABLE = yes  BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality  AUDIO_ENABLE = no           # Audio output  RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight. -PS2_USE_USART = yes +PS2_ENABLE = yes +PS2_DRIVER = usart diff --git a/keyboards/converter/ibm_terminal/keymaps/priyadi/rules.mk b/keyboards/converter/ibm_terminal/keymaps/priyadi/rules.mk index 8c5f3d7034..b18dc2d4d8 100644 --- a/keyboards/converter/ibm_terminal/keymaps/priyadi/rules.mk +++ b/keyboards/converter/ibm_terminal/keymaps/priyadi/rules.mk @@ -1,5 +1,5 @@  # 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  #  BOOTMAGIC_ENABLE = no       # Enable Bootmagic Lite @@ -14,8 +14,9 @@ AUDIO_ENABLE = no           # Audio output on port C6  UNICODE_ENABLE = no         # Unicode  UNICODEMAP_ENABLE = yes  BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight.  -PS2_USE_USART = yes +RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight. +PS2_ENABLE = yes +PS2_DRIVER = usart  # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE  SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend diff --git a/keyboards/converter/ibm_terminal/rules.mk b/keyboards/converter/ibm_terminal/rules.mk index 277e828269..6304e20fb4 100644 --- a/keyboards/converter/ibm_terminal/rules.mk +++ b/keyboards/converter/ibm_terminal/rules.mk @@ -16,7 +16,8 @@ NKRO_ENABLE = yes           # Enable N-Key Rollover  BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality  AUDIO_ENABLE = no           # Audio output  RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight. -PS2_USE_USART = yes +PS2_ENABLE = yes +PS2_DRIVER = usart  CUSTOM_MATRIX = yes  SRC = matrix.c led.c diff --git a/keyboards/crkbd/keymaps/gotham/oled.c b/keyboards/crkbd/keymaps/gotham/oled.c index c4ac5e736c..c285a37c5b 100644 --- a/keyboards/crkbd/keymaps/gotham/oled.c +++ b/keyboards/crkbd/keymaps/gotham/oled.c @@ -176,7 +176,7 @@ void add_keylog(uint16_t keycode) {      keylog_str[i] = keylog_str[i - 1];    } -  if (keycode < (sizeof(code_to_name) / sizeof(char))) { +  if (keycode < ARRAY_SIZE(code_to_name)) {      keylog_str[0] = pgm_read_byte(&code_to_name[keycode]);    }  } diff --git a/keyboards/crkbd/keymaps/julian_turner/config.h b/keyboards/crkbd/keymaps/julian_turner/config.h index cf3e80b23e..fbe5277c40 100644 --- a/keyboards/crkbd/keymaps/julian_turner/config.h +++ b/keyboards/crkbd/keymaps/julian_turner/config.h @@ -17,7 +17,7 @@  #pragma once  #undef MANUFACTURER -#define MANUFACTURER Trner +#define MANUFACTURER "Trner"  /* Select hand configuration */  #define MASTER_LEFT diff --git a/keyboards/crkbd/keymaps/kidbrazil/config.h b/keyboards/crkbd/keymaps/kidbrazil/config.h index 2801436709..fefb8eb0ee 100644 --- a/keyboards/crkbd/keymaps/kidbrazil/config.h +++ b/keyboards/crkbd/keymaps/kidbrazil/config.h @@ -34,7 +34,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #define TAPPING_FORCE_HOLD  #define TAPPING_TERM 150  #undef PRODUCT -#define PRODUCT         CRKBD Loose Transistor Ed. +#define PRODUCT         "CRKBD Loose Transistor Ed."  #ifdef RGBLIGHT_ENABLE      //#undef RGBLED_NUM diff --git a/keyboards/crkbd/keymaps/rpbaptist/config.h b/keyboards/crkbd/keymaps/rpbaptist/config.h index 994aef314e..fd53b57c68 100644 --- a/keyboards/crkbd/keymaps/rpbaptist/config.h +++ b/keyboards/crkbd/keymaps/rpbaptist/config.h @@ -131,7 +131,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #define NO_ACTION_ONESHOT  #undef PRODUCT -#define PRODUCT Corne Keyboard +#define PRODUCT "Corne Keyboard"  #define LCPC_KEYS KC_LCTL, KC_LSFT, KC_9  #define RCPC_KEYS KC_RCTL, KC_RSFT, KC_0 diff --git a/keyboards/crkbd/keymaps/thunderbird2086/oled.c b/keyboards/crkbd/keymaps/thunderbird2086/oled.c index bee9bc26de..108f3e0cdd 100644 --- a/keyboards/crkbd/keymaps/thunderbird2086/oled.c +++ b/keyboards/crkbd/keymaps/thunderbird2086/oled.c @@ -189,7 +189,7 @@ void add_keylog(uint16_t keycode) {          keylog_str[i] = keylog_str[i - 1];      } -    if (keycode < (sizeof(code_to_name) / sizeof(char))) { +    if (keycode < ARRAY_SIZE(code_to_name)) {          keylog_str[0] = pgm_read_byte(&code_to_name[keycode]);      }  } diff --git a/keyboards/dm9records/plaid/keymaps/brickbots/keymap.c b/keyboards/dm9records/plaid/keymaps/brickbots/keymap.c index 819b76e739..0442c930fe 100644 --- a/keyboards/dm9records/plaid/keymaps/brickbots/keymap.c +++ b/keyboards/dm9records/plaid/keymaps/brickbots/keymap.c @@ -242,7 +242,7 @@ layer_state_t layer_state_set_user(layer_state_t state) {  void led_keypress_update(uint8_t led, uint8_t led_mode, uint16_t keycode, keyrecord_t *record) {      switch (led_mode) {        case LEDMODE_MODS: -        for (int i=0;i<sizeof(modifiers) / sizeof(modifiers[0]);i++) { +        for (int i=0;i<ARRAY_SIZE(modifiers);i++) {            if(keycode==modifiers[i]) {              if (record->event.pressed) {                writePinHigh(led); diff --git a/keyboards/dm9records/plaid/keymaps/default/keymap.c b/keyboards/dm9records/plaid/keymaps/default/keymap.c index d96c250609..aa0bd8b093 100644 --- a/keyboards/dm9records/plaid/keymaps/default/keymap.c +++ b/keyboards/dm9records/plaid/keymaps/default/keymap.c @@ -245,7 +245,7 @@ layer_state_t layer_state_set_user(layer_state_t state) {  void led_keypress_update(uint8_t led, uint8_t led_mode, uint16_t keycode, keyrecord_t *record) {      switch (led_mode) {        case LEDMODE_MODS: -        for (int i=0;i<sizeof(modifiers) / sizeof(modifiers[0]);i++) { +        for (int i=0;i<ARRAY_SIZE(modifiers);i++) {            if(keycode==modifiers[i]) {              if (record->event.pressed) {                writePinHigh(led); diff --git a/keyboards/dm9records/plaid/keymaps/stephen-huan/keymap.c b/keyboards/dm9records/plaid/keymaps/stephen-huan/keymap.c index 354599f340..9a0e89bd89 100644 --- a/keyboards/dm9records/plaid/keymaps/stephen-huan/keymap.c +++ b/keyboards/dm9records/plaid/keymaps/stephen-huan/keymap.c @@ -184,7 +184,7 @@ layer_state_t layer_state_set_user(layer_state_t state) {  void led_keypress_update(uint8_t led, uint8_t led_mode, uint16_t keycode, keyrecord_t *record) {      switch (led_mode) {        case LEDMODE_MODS: -        for (int i=0;i<sizeof(modifiers) / sizeof(modifiers[0]);i++) { +        for (int i=0;i<ARRAY_SIZE(modifiers);i++) {            if(keycode==modifiers[i]) {              if (record->event.pressed) {                writePinHigh(led); diff --git a/keyboards/dmqdesign/spin/keymaps/spidey3_pad/keymap.c b/keyboards/dmqdesign/spin/keymaps/spidey3_pad/keymap.c index 8c9af7202b..77534b9a75 100644 --- a/keyboards/dmqdesign/spin/keymaps/spidey3_pad/keymap.c +++ b/keyboards/dmqdesign/spin/keymaps/spidey3_pad/keymap.c @@ -111,7 +111,7 @@ const rgblight_segment_t *const PROGMEM _rgb_layers[] = {  };  // clang-format off -const uint8_t PROGMEM _n_rgb_layers = sizeof(_rgb_layers) / sizeof(_rgb_layers[0]) - 1; +const uint8_t PROGMEM _n_rgb_layers = ARRAY_SIZE(_rgb_layers) - 1;  void clear_rgb_layers(void) {      dprint("clear_rgb_layers()\n"); diff --git a/keyboards/dz60/keymaps/LEdiodes/config.h b/keyboards/dz60/keymaps/LEdiodes/config.h index e5ead20c12..bb6c5c55e4 100644 --- a/keyboards/dz60/keymaps/LEdiodes/config.h +++ b/keyboards/dz60/keymaps/LEdiodes/config.h @@ -1,48 +1,5 @@ -#ifndef CONFIG_H -#define CONFIG_H - -#include "config.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID       0xFEED -#define PRODUCT_ID      0x2260 -#define DEVICE_VER      0x0001 -#define MANUFACTURER    KBDFans -#define PRODUCT         DZ60 - -/* key matrix size */ -#define MATRIX_ROWS 5 -#define MATRIX_COLS 15 - -/* key matrix pins */ -#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 } -#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B7, D4, B1, B0, B5, B4, D7, D6, B3, F4 } - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -/* number of backlight levels */ -#define BACKLIGHT_PIN B6 -#define BACKLIGHT_LEVELS 5 - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE - -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -#define RGB_DI_PIN E2 -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 16 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 +#pragma once  /* sets 'Auto Shift' timeouts */  #define AUTO_SHIFT_TIMEOUT 150  #define NO_AUTO_SHIFT_SPECIAL - -#endif diff --git a/keyboards/evolv/keymaps/gondolindrim/keymap.c b/keyboards/evolv/keymaps/gondolindrim/keymap.c index 3ab66bd056..bf0944fbd1 100755 --- a/keyboards/evolv/keymaps/gondolindrim/keymap.c +++ b/keyboards/evolv/keymaps/gondolindrim/keymap.c @@ -129,7 +129,7 @@ const encoder_mode_t encoder_modes[] = {  	// Insert your custom encoder mode here  }; -#define NUM_ENCODER_MODES (sizeof(encoder_modes)/sizeof(encoder_modes[0])) // DO NOT CHANGE THIS. NUM_ENCODER_MODES calculates how many modes there are. +#define NUM_ENCODER_MODES ARRAY_SIZE(encoder_modes) // DO NOT CHANGE THIS. NUM_ENCODER_MODES calculates how many modes there are.  // This counter is used to track what encoder mode is being used at a certain time  int encoder_mode_count = 0; diff --git a/keyboards/evyd13/gh80_3700/keymaps/ps2/config.h b/keyboards/evyd13/gh80_3700/keymaps/ps2/config.h index b77ac95d7d..5f6d855966 100644 --- a/keyboards/evyd13/gh80_3700/keymaps/ps2/config.h +++ b/keyboards/evyd13/gh80_3700/keymaps/ps2/config.h @@ -16,7 +16,7 @@  #pragma once -#ifdef PS2_USE_USART +#ifdef PS2_DRIVER_USART  #define PS2_CLOCK_PIN   D5  #define PS2_DATA_PIN    D2 @@ -51,7 +51,7 @@  #define PS2_USART_ERROR         (UCSR1A & ((1<<FE1) | (1<<DOR1) | (1<<UPE1)))  #define PS2_USART_RX_VECT       USART1_RX_vect  #define PS2_MOUSE_ENABLE_SCROLLING -#define PS2_MOUSE_INIT_DELAY 1000  +#define PS2_MOUSE_INIT_DELAY 1000  #define PS2_MOUSE_BTN_LEFT      0  #define PS2_MOUSE_BTN_RIGHT     1  #define PS2_MOUSE_BTN_MIDDLE    2 diff --git a/keyboards/evyd13/gh80_3700/keymaps/ps2/rules.mk b/keyboards/evyd13/gh80_3700/keymaps/ps2/rules.mk index c58a93b73a..3218145955 100644 --- a/keyboards/evyd13/gh80_3700/keymaps/ps2/rules.mk +++ b/keyboards/evyd13/gh80_3700/keymaps/ps2/rules.mk @@ -2,4 +2,5 @@  #   change yes to no to disable  #  PS2_MOUSE_ENABLE = yes -PS2_USE_USART = yes +PS2_ENABLE = yes +PS2_DRIVER = usart diff --git a/keyboards/gboards/butterstick/keymaps/default/keymap.c b/keyboards/gboards/butterstick/keymaps/default/keymap.c index 749e9ba071..d0c6af65df 100644 --- a/keyboards/gboards/butterstick/keymaps/default/keymap.c +++ b/keyboards/gboards/butterstick/keymaps/default/keymap.c @@ -180,4 +180,4 @@ uint32_t processQwerty(bool lookup) {  }  // Don't fuck with this, thanks. -size_t keymapsCount  = sizeof(keymaps)/sizeof(keymaps[0]); +size_t keymapsCount  = ARRAY_SIZE(keymaps); diff --git a/keyboards/gboards/butterstick/sten.c b/keyboards/gboards/butterstick/sten.c index 197abaf92f..8820127848 100644 --- a/keyboards/gboards/butterstick/sten.c +++ b/keyboards/gboards/butterstick/sten.c @@ -21,7 +21,7 @@ uint32_t tChord			= 0;		// Protects state of cChord  #ifndef STENOLAYERS  uint32_t stenoLayers[] = { PWR }; -size_t 	 stenoLayerCount = sizeof(stenoLayers)/sizeof(stenoLayers[0]); +size_t 	 stenoLayerCount = ARRAY_SIZE(stenoLayers);  #endif  // Mode state diff --git a/keyboards/gboards/engine/keymap_engine.h b/keyboards/gboards/engine/keymap_engine.h index c8a42a052b..599c1ca3e4 100644 --- a/keyboards/gboards/engine/keymap_engine.h +++ b/keyboards/gboards/engine/keymap_engine.h @@ -114,8 +114,8 @@ void testCollisions(void) {  #include "dicts.def"  // Get size data back into the engine -size_t funcsLen   = sizeof(funDict) / sizeof(funDict[0]); -size_t stringLen  = sizeof(strDict) / sizeof(strDict[0]); -size_t keyLen     = sizeof(keyDict) / sizeof(keyDict[0]); -size_t comboLen   = sizeof(cmbDict) / sizeof(cmbDict[0]); -size_t specialLen = sizeof(spcDict) / sizeof(spcDict[0]); +size_t funcsLen   = ARRAY_SIZE(funDict); +size_t stringLen  = ARRAY_SIZE(strDict); +size_t keyLen     = ARRAY_SIZE(keyDict); +size_t comboLen   = ARRAY_SIZE(cmbDict); +size_t specialLen = ARRAY_SIZE(spcDict); diff --git a/keyboards/gboards/g/keymap_engine.h b/keyboards/gboards/g/keymap_engine.h index 93a4423340..055b5941e4 100644 --- a/keyboards/gboards/g/keymap_engine.h +++ b/keyboards/gboards/g/keymap_engine.h @@ -115,8 +115,8 @@ void testCollisions(void) {  #include "dicts.def"  // Get size data back into the engine -size_t funcsLen   = sizeof(funDict) / sizeof(funDict[0]); -size_t stringLen  = sizeof(strDict) / sizeof(strDict[0]); -size_t keyLen     = sizeof(keyDict) / sizeof(keyDict[0]); -size_t comboLen   = sizeof(cmbDict) / sizeof(cmbDict[0]); -size_t specialLen = sizeof(spcDict) / sizeof(spcDict[0]); +size_t funcsLen   = ARRAY_SIZE(funDict); +size_t stringLen  = ARRAY_SIZE(strDict); +size_t keyLen     = ARRAY_SIZE(keyDict); +size_t comboLen   = ARRAY_SIZE(cmbDict); +size_t specialLen = ARRAY_SIZE(spcDict); diff --git a/keyboards/gboards/georgi/keymaps/colemak-dh/keymap.c b/keyboards/gboards/georgi/keymaps/colemak-dh/keymap.c index 29b35f6abd..af7edc2a9b 100644 --- a/keyboards/gboards/georgi/keymaps/colemak-dh/keymap.c +++ b/keyboards/gboards/georgi/keymaps/colemak-dh/keymap.c @@ -302,5 +302,5 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {  };  // Don't fuck with this, thanks. -size_t keymapsCount  = sizeof(keymaps)/sizeof(keymaps[0]); -size_t stenoLayerCount = sizeof(stenoLayers)/sizeof(stenoLayers[0]); +size_t keymapsCount  = ARRAY_SIZE(keymaps); +size_t stenoLayerCount = ARRAY_SIZE(stenoLayers); diff --git a/keyboards/gboards/georgi/keymaps/default-flipped/keymap.c b/keyboards/gboards/georgi/keymaps/default-flipped/keymap.c index 09243f2a24..a3324b11cd 100644 --- a/keyboards/gboards/georgi/keymaps/default-flipped/keymap.c +++ b/keyboards/gboards/georgi/keymaps/default-flipped/keymap.c @@ -234,4 +234,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {  };  // Don't fuck with this, thanks. -size_t keymapsCount  = sizeof(keymaps)/sizeof(keymaps[0]); +size_t keymapsCount  = ARRAY_SIZE(keymaps); diff --git a/keyboards/gboards/georgi/keymaps/default/keymap.c b/keyboards/gboards/georgi/keymaps/default/keymap.c index 93c551af27..78964dc840 100644 --- a/keyboards/gboards/georgi/keymaps/default/keymap.c +++ b/keyboards/gboards/georgi/keymaps/default/keymap.c @@ -244,4 +244,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {  };  // Don't fuck with this, thanks. -size_t keymapsCount  = sizeof(keymaps)/sizeof(keymaps[0]); +size_t keymapsCount  = ARRAY_SIZE(keymaps); diff --git a/keyboards/gboards/georgi/keymaps/minimal/keymap.c b/keyboards/gboards/georgi/keymaps/minimal/keymap.c index e9294c5cc8..c4e78033bd 100644 --- a/keyboards/gboards/georgi/keymaps/minimal/keymap.c +++ b/keyboards/gboards/georgi/keymaps/minimal/keymap.c @@ -219,4 +219,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {      )  };  // Don't fuck with this, thanks. -size_t keymapsCount  = sizeof(keymaps)/sizeof(keymaps[0]); +size_t keymapsCount  = ARRAY_SIZE(keymaps); diff --git a/keyboards/gboards/georgi/keymaps/norman/keymap.c b/keyboards/gboards/georgi/keymaps/norman/keymap.c index 4591aab22f..870e460e2c 100644 --- a/keyboards/gboards/georgi/keymaps/norman/keymap.c +++ b/keyboards/gboards/georgi/keymaps/norman/keymap.c @@ -263,4 +263,4 @@ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,       KC_PGDN, KC_LEFT, KC  			  KC_TRNS, KC_TRNS, KC_TRNS,	                        KC_TRNS, KC_TRNS, KC_TRNS)  };  // Don't fuck with this, thanks. -size_t keymapsCount  = sizeof(keymaps)/sizeof(keymaps[0]); +size_t keymapsCount  = ARRAY_SIZE(keymaps); diff --git a/keyboards/gboards/georgi/sten.c b/keyboards/gboards/georgi/sten.c index c7469b6394..bd96dee758 100644 --- a/keyboards/gboards/georgi/sten.c +++ b/keyboards/gboards/georgi/sten.c @@ -21,7 +21,7 @@ uint32_t tChord			= 0;		// Protects state of cChord  #ifndef STENOLAYERS  uint32_t stenoLayers[] = { PWR }; -size_t 	 stenoLayerCount = sizeof(stenoLayers)/sizeof(stenoLayers[0]); +size_t 	 stenoLayerCount = ARRAY_SIZE(stenoLayers);  #endif  // Mode state diff --git a/keyboards/gh60/satan/keymaps/admiralStrokers/config.h b/keyboards/gh60/satan/keymaps/admiralStrokers/config.h index 5bb9bd59a8..60c6ad4a12 100644 --- a/keyboards/gh60/satan/keymaps/admiralStrokers/config.h +++ b/keyboards/gh60/satan/keymaps/admiralStrokers/config.h @@ -1,87 +1,3 @@ -/* -Copyright 2012 Jun Wako <[email protected]> - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program.  If not, see <http://www.gnu.org/licenses/>. -*/ - -#ifndef CONFIG_H_ADMSTROK -#define CONFIG_H_ADMSTROK - -#include "config_common.h" -#include "../../config.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID       0xFEED -#define PRODUCT_ID      0x6060 -#define DEVICE_VER      0x0003 -#define MANUFACTURER    SATAN -#define PRODUCT         GH60 - -/* key matrix size */ -#define MATRIX_ROWS 5 -#define MATRIX_COLS 14 - -// ROWS: Top to bottom, COLS: Left to right - -#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 } -#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B7, D4, B1, B0, B5, B4, D7, D6, B3 } - -#define BACKLIGHT_PIN B6 - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -/* define if matrix has ghost */ -//#define MATRIX_HAS_GHOST - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -/* Backlight configuration */ -#define BACKLIGHT_LEVELS 4 - -/* Underlight configuration */ -#define RGB_DI_PIN E2 -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 8     // Number of LEDs -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 +#pragma once  #define DISABLE_SPACE_CADET_ROLLOVER - -/* - * Feature disable options - *  These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -#endif diff --git a/keyboards/gh60/satan/keymaps/ben_iso/config.h b/keyboards/gh60/satan/keymaps/ben_iso/config.h index e59015dcbd..34add12727 100644 --- a/keyboards/gh60/satan/keymaps/ben_iso/config.h +++ b/keyboards/gh60/satan/keymaps/ben_iso/config.h @@ -1,57 +1,8 @@ -/* -Copyright 2012 Jun Wako <[email protected]> - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program.  If not, see <http://www.gnu.org/licenses/>. -*/ - -#ifndef CONFIG_H_BEN -#define CONFIG_H_BEN - -#include "config_common.h" -#include "../../config.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID       0xFEED -#define PRODUCT_ID      0x6060 -#define DEVICE_VER      0x0003 -#define MANUFACTURER    SATAN -#define PRODUCT         GH60 +#pragma once  /*MOUSE CONFIG OPTIONS */ -  #define MOUSEKEY_INTERVAL       20  #define MOUSEKEY_DELAY          0  #define MOUSEKEY_TIME_TO_MAX    45  #define MOUSEKEY_MAX_SPEED      3  #define MOUSEKEY_WHEEL_DELAY 	0 - -/* - * Feature disable options - *  These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -#endif diff --git a/keyboards/gh60/satan/keymaps/fakb/config.h b/keyboards/gh60/satan/keymaps/fakb/config.h index 720b359c1e..f7314a8671 100644 --- a/keyboards/gh60/satan/keymaps/fakb/config.h +++ b/keyboards/gh60/satan/keymaps/fakb/config.h @@ -1,76 +1,9 @@ -#ifndef CONFIG_H -#define CONFIG_H +#pragma once -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID       0xFEED -#define PRODUCT_ID      0x6060 -#define DEVICE_VER      0x0003 -#define MANUFACTURER    SATAN -#define PRODUCT         GH60 - -/* key matrix size */ -#define MATRIX_ROWS 5 -#define MATRIX_COLS 14 - -// ROWS: Top to bottom, COLS: Left to right - -#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 } -#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B7, D4, B1, B0, B5, B4, D7, D6, B3 } - -#define BACKLIGHT_PIN B6 - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -/* define if matrix has ghost */ -//#define MATRIX_HAS_GHOST - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -//#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -//#define LOCKING_RESYNC_ENABLE - -/* Backlight configuration - */ +#undef BACKLIGHT_LEVELS  #define BACKLIGHT_LEVELS 8 -/* Underlight configuration - */ - -#define RGB_DI_PIN E2 -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 8     // Number of LEDs -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 - -/* - * Feature disable options - *  These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING  #define NO_ACTION_ONESHOT -#define NO_ACTION_MACRO -#define NO_ACTION_FUNCTION - -#endif - -#ifndef CONFIG_USER_H -#define CONFIG_USER_H  #define MOUSEKEY_DELAY             0  #define MOUSEKEY_INTERVAL          1 @@ -79,8 +12,5 @@  #define MOUSEKEY_WHEEL_MAX_SPEED   1  #define MOUSEKEY_WHEEL_TIME_TO_MAX 255 -// only change  #undef RGB_DI_PIN  #define RGB_DI_PIN B2 - -#endif diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/keymap.c index 09f8aa147a..3aa3fd828e 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/keymap.c @@ -107,16 +107,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {      // Capslock, Scroll lock and Numlock  indicator on Left side lights.      void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { -        loop_colorset(LED_REGION_A,      (sizeof(LED_REGION_A) / sizeof(LED_REGION_A[0])),           hsv_cl_blue); -        loop_colorset(LED_REGION_B,      (sizeof(LED_REGION_B) / sizeof(LED_REGION_B[0])),           hsv_cl_purple); -        loop_colorset(LED_REGION_L_SIDE, (sizeof(LED_REGION_L_SIDE) / sizeof(LED_REGION_L_SIDE[0])), hsv_cl_purple); -        loop_colorset(LED_REGION_R_SIDE, (sizeof(LED_REGION_R_SIDE) / sizeof(LED_REGION_R_SIDE[0])), hsv_cl_purple); +        loop_colorset(LED_REGION_A,      ARRAY_SIZE(LED_REGION_A), +                                 hsv_cl_blue); +        loop_colorset(LED_REGION_B,      ARRAY_SIZE(LED_REGION_B), +                                 hsv_cl_purple); +        loop_colorset(LED_REGION_L_SIDE, ARRAY_SIZE(LED_REGION_L_SIDE), +                      hsv_cl_purple); +        loop_colorset(LED_REGION_R_SIDE, ARRAY_SIZE(LED_REGION_R_SIDE), +                      hsv_cl_purple);          switch(get_highest_layer(layer_state)){  // special handling per layer              case 1:  //layer 1                  //rgb_matrix_set_color_all(RGB_AZURE); -                loop_colorset(LED_REGION_NUMPAD, (sizeof(LED_REGION_NUMPAD) / sizeof(LED_REGION_NUMPAD[0])), hsv_cl_numpad); -                loop_colorset(LED_REGION_OTHER,  (sizeof(LED_REGION_OTHER) / sizeof(LED_REGION_OTHER[0])),   hsv_cl_mods); +                loop_colorset(LED_REGION_NUMPAD, +                              ARRAY_SIZE(LED_REGION_NUMPAD), hsv_cl_numpad); +                loop_colorset(LED_REGION_OTHER,  ARRAY_SIZE(LED_REGION_OTHER), +                                 hsv_cl_mods);              break;              default: //layer 0                  // @@ -148,7 +154,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {              rgb_matrix_set_color(LED_L6,   bad_rgb.r, bad_rgb.g, bad_rgb.b);              rgb_matrix_set_color(LED_L7,   bad_rgb.r, bad_rgb.g, bad_rgb.b);              rgb_matrix_set_color(LED_L8,   bad_rgb.r, bad_rgb.g, bad_rgb.b); -            loop_colorset(LED_REGION_CAPS, (sizeof(LED_REGION_CAPS) / sizeof(LED_REGION_CAPS[0])), hsv_cl_bad); +            loop_colorset(LED_REGION_CAPS, ARRAY_SIZE(LED_REGION_CAPS), +                          hsv_cl_bad);          }      }  #endif diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/keymap.c index ab98693649..9b20399e00 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/keymap.c @@ -538,7 +538,7 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {          } else if (paddle_lives == 0) {              // Game over -            for (uint8_t i = 0; i < sizeof(LED_GAME_OVER) / sizeof(LED_GAME_OVER[0]); i++) { +            for (uint8_t i = 0; i < ARRAY_SIZE(LED_GAME_OVER); i++) {                  rgb_matrix_set_color(LED_GAME_OVER[i], RGB_RED);              } diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/paddlegame/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/paddlegame/keymap.c index e59db7b984..164ff67e22 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/paddlegame/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/paddlegame/keymap.c @@ -201,15 +201,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {  				else { ++rgb_value.r; }  			} -            for (uint8_t i=0; i<sizeof(LED_RGB)/sizeof(LED_RGB[0]); i++) { +            for (uint8_t i=0; i<ARRAY_SIZE(LED_RGB); i++) {                  rgb_matrix_set_color(LED_RGB[i], rgb_value.r, rgb_value.g, rgb_value.b);              } -            for (uint8_t i=0; i<sizeof(LED_WHITE)/sizeof(LED_WHITE[0]); i++) { +            for (uint8_t i=0; i<ARRAY_SIZE(LED_WHITE); i++) {                  rgb_matrix_set_color(LED_WHITE[i], RGB_WHITE);              } -            for (uint8_t i=0; i<sizeof(LED_GREEN)/sizeof(LED_GREEN[0]); i++) { +            for (uint8_t i=0; i<ARRAY_SIZE(LED_GREEN); i++) {                  rgb_matrix_set_color(LED_GREEN[i], RGB_GREEN);              } @@ -274,7 +274,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {  			} else if (paddle_lives == 0) {  				// Game over -				for (uint8_t i=0; i<sizeof(LED_GAME_OVER)/sizeof(LED_GAME_OVER[0]); i++) { +				for (uint8_t i=0; i<ARRAY_SIZE(LED_GAME_OVER); i++) {  					rgb_matrix_set_color(LED_GAME_OVER[i], RGB_RED);  				} @@ -439,12 +439,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {              rgb_matrix_set_color(LED_CAPS, RGB_WHITE);              if (caps_flash_on) { -				for (uint8_t i=0; i<sizeof(LED_SIDE_LEFT)/sizeof(LED_SIDE_LEFT[0]); i++) { +				for (uint8_t i=0; i<ARRAY_SIZE(LED_SIDE_LEFT); i++) {  					rgb_matrix_set_color(LED_SIDE_LEFT[i], RGB_RED);  					rgb_matrix_set_color(LED_SIDE_RIGHT[i], RGB_RED);  				}  			} else { -				for (uint8_t i=0; i<sizeof(LED_SIDE_LEFT)/sizeof(LED_SIDE_LEFT[0]); i++) { +				for (uint8_t i=0; i<ARRAY_SIZE(LED_SIDE_LEFT); i++) {  					rgb_matrix_set_color(LED_SIDE_LEFT[i], 0, 0, 0);  					rgb_matrix_set_color(LED_SIDE_RIGHT[i], 0, 0, 0);  				} diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/chofstede/keymap.c b/keyboards/gmmk/pro/rev1/iso/keymaps/chofstede/keymap.c index b28809fdf6..fd941883c5 100644 --- a/keyboards/gmmk/pro/rev1/iso/keymaps/chofstede/keymap.c +++ b/keyboards/gmmk/pro/rev1/iso/keymaps/chofstede/keymap.c @@ -84,7 +84,7 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {          }      HSV tempHSV = {.h = 0, .s = 255, .v = current_value};      RGB tempRGB = hsv_to_rgb(tempHSV); -    for (uint8_t i = 0; i < sizeof(left_side_leds) / sizeof(left_side_leds[0]); i++) { +    for (uint8_t i = 0; i < ARRAY_SIZE(left_side_leds); i++) {          rgb_matrix_set_color(left_side_leds[i], tempRGB.r, tempRGB.g, tempRGB.b);          rgb_matrix_set_color(right_side_leds[i], tempRGB.r, tempRGB.g, tempRGB.b);          } @@ -95,7 +95,7 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {         case 2:  //layer one           break;         case 1: -         for (uint8_t i = 0; i < sizeof(l2_functions) / sizeof(l2_functions[0]); i++) { +         for (uint8_t i = 0; i < ARRAY_SIZE(l2_functions); i++) {               RGB_MATRIX_INDICATOR_SET_COLOR(l2_functions[i], 255, 0, 0);           }           break; diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/keymap.c b/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/keymap.c index 30e8fc5f44..004a8c2014 100644 --- a/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/keymap.c +++ b/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/keymap.c @@ -551,7 +551,7 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {          } else if (paddle_lives == 0) {              // Game over -            for (uint8_t i = 0; i < sizeof(LED_GAME_OVER) / sizeof(LED_GAME_OVER[0]); i++) { +            for (uint8_t i = 0; i < ARRAY_SIZE(LED_GAME_OVER); i++) {                  rgb_matrix_set_color(LED_GAME_OVER[i], RGB_RED);              } diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/keymap_stuff.h b/keyboards/gopolar/gg86/keymaps/horrortroll/keymap_stuff.h index ad7a3238ce..e5f5c91151 100644 --- a/keyboards/gopolar/gg86/keymaps/horrortroll/keymap_stuff.h +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/keymap_stuff.h @@ -118,7 +118,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {      {{205, 250, 255}, {140, 215, 125}, false },      }; -    uint8_t gp_length = sizeof(gradient_presets)/sizeof(gradient_presets[0]); +    uint8_t gp_length = ARRAY_SIZE(gradient_presets);      switch (keycode) {          case G1_HUI: diff --git a/keyboards/gopolar/gg86/lib/wave.h b/keyboards/gopolar/gg86/lib/wave.h index 11a3198ab1..f4e5e5052c 100644 --- a/keyboards/gopolar/gg86/lib/wave.h +++ b/keyboards/gopolar/gg86/lib/wave.h @@ -69,7 +69,7 @@ void add_keylog(uint16_t keycode) {          keycode = 0;      } -    if (keycode < (sizeof(code_to_name) / sizeof(char))) { +    if (keycode < ARRAY_SIZE(code_to_name)) {          char log_char = pgm_read_byte(&code_to_name[keycode]);          for (uint8_t j = 0; j < OLED_FONT_WIDTH; j++) { diff --git a/keyboards/gray_studio/space65/keymaps/madhatter/config.h b/keyboards/gray_studio/space65/keymaps/madhatter/config.h index e297ebedc5..b591b6d76f 100644 --- a/keyboards/gray_studio/space65/keymaps/madhatter/config.h +++ b/keyboards/gray_studio/space65/keymaps/madhatter/config.h @@ -1,4 +1,4 @@  #pragma once  #undef PRODUCT -#define PRODUCT MadHatter\x27s Custom Spacc +#define PRODUCT "MadHatter's Custom Spacc" diff --git a/keyboards/handwired/108key_trackpoint/config.h b/keyboards/handwired/108key_trackpoint/config.h index 703cd93e64..fccdf6424c 100644 --- a/keyboards/handwired/108key_trackpoint/config.h +++ b/keyboards/handwired/108key_trackpoint/config.h @@ -5,7 +5,7 @@  #define MATRIX_ROWS 8  #define MATRIX_COLS 23 -#ifdef PS2_USE_USART +#ifdef PS2_DRIVER_USART  #define PS2_CLOCK_PIN   D5  #define PS2_DATA_PIN    D2 diff --git a/keyboards/handwired/108key_trackpoint/rules.mk b/keyboards/handwired/108key_trackpoint/rules.mk index ab84b088bc..24f1d9b652 100644 --- a/keyboards/handwired/108key_trackpoint/rules.mk +++ b/keyboards/handwired/108key_trackpoint/rules.mk @@ -17,4 +17,5 @@ BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality  RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow  AUDIO_ENABLE = no           # Audio output  PS2_MOUSE_ENABLE = yes -PS2_USE_USART = yes +PS2_ENABLE = yes +PS2_DRIVER = usart diff --git a/keyboards/handwired/3dortho14u/rev1/info.json b/keyboards/handwired/3dortho14u/rev1/info.json index bd9220281c..2c8e229c02 100644 --- a/keyboards/handwired/3dortho14u/rev1/info.json +++ b/keyboards/handwired/3dortho14u/rev1/info.json @@ -4,6 +4,7 @@      "url": "",      "maintainer": "xia0",      "processor": "atmega32u4", +    "bootloader": "atmel-dfu",      "debounce": 5,      "diode_direction": "COL2ROW",      "features": { diff --git a/keyboards/handwired/3dortho14u/rev2/info.json b/keyboards/handwired/3dortho14u/rev2/info.json index 7f241f35ff..28986f295e 100644 --- a/keyboards/handwired/3dortho14u/rev2/info.json +++ b/keyboards/handwired/3dortho14u/rev2/info.json @@ -4,6 +4,7 @@      "url": "",      "maintainer": "xia0",      "processor": "atmega32u4", +    "bootloader": "atmel-dfu",      "debounce": 5,      "diode_direction": "COL2ROW",      "features": { diff --git a/keyboards/handwired/arrow_pad/keymaps/pad_21/config.h b/keyboards/handwired/arrow_pad/keymaps/pad_21/config.h index 1f07965555..0bff14a28d 100644 --- a/keyboards/handwired/arrow_pad/keymaps/pad_21/config.h +++ b/keyboards/handwired/arrow_pad/keymaps/pad_21/config.h @@ -15,137 +15,25 @@ You should have received a copy of the GNU General Public License  along with this program.  If not, see <http://www.gnu.org/licenses/>.  */ -#ifndef CONFIG_H -#define CONFIG_H +#pragma once -#include "config_common.h" - -/* USB Device descriptor parameter */ +#undef VENDOR_ID +#undef PRODUCT_ID +#undef DEVICE_VER +#undef MANUFACTURER +#undef PRODUCT  #define VENDOR_ID       0xFEED  #define PRODUCT_ID      0x4097  #define DEVICE_VER      0x0001 -#define MANUFACTURER    Nobody -#define PRODUCT         Arrow Pad 21 +#define MANUFACTURER    "Nobody" +#define PRODUCT         "Arrow Pad 21" -/* key matrix size */ +#undef MATRIX_ROWS +#undef MATRIX_COLS  #define MATRIX_ROWS 2  #define MATRIX_COLS 11 -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - *                  ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * -*/ +#undef MATRIX_ROW_PINS +#undef MATRIX_COL_PINS  #define MATRIX_ROW_PINS { D3, D5 }  #define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, B6, B5, B4, D7, D4 } - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION ROW2COL - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 5 - -/* define if matrix has ghost (lacks anti-ghosting diodes) */ -//#define MATRIX_HAS_GHOST - -/* number of backlight levels */ -#define BACKLIGHT_LEVELS 3 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -//#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -//#define LOCKING_RESYNC_ENABLE - -/* - * Force NKRO - * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved - * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the - * makefile for this to work.) - * - * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) - * until the next keyboard reset. - * - * NKRO may prevent your keystrokes from being detected in the BIOS, but it is - * fully operational during normal computer usage. - * - * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) - * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by - * bootmagic, NKRO mode will always be enabled until it is toggled again during a - * power-up. - * - */ -#define FORCE_NKRO - -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS  true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS  true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1          H -//#define MAGIC_KEY_HELP2          SLASH -//#define MAGIC_KEY_DEBUG          D -//#define MAGIC_KEY_DEBUG_MATRIX   X -//#define MAGIC_KEY_DEBUG_KBD      K -//#define MAGIC_KEY_DEBUG_MOUSE    M -//#define MAGIC_KEY_VERSION        V -//#define MAGIC_KEY_STATUS         S -//#define MAGIC_KEY_CONSOLE        C -//#define MAGIC_KEY_LAYER0_ALT1    ESC -//#define MAGIC_KEY_LAYER0_ALT2    GRAVE -//#define MAGIC_KEY_LAYER0         0 -//#define MAGIC_KEY_LAYER1         1 -//#define MAGIC_KEY_LAYER2         2 -//#define MAGIC_KEY_LAYER3         3 -//#define MAGIC_KEY_LAYER4         4 -//#define MAGIC_KEY_LAYER5         5 -//#define MAGIC_KEY_LAYER6         6 -//#define MAGIC_KEY_LAYER7         7 -//#define MAGIC_KEY_LAYER8         8 -//#define MAGIC_KEY_LAYER9         9 -//#define MAGIC_KEY_BOOTLOADER     PAUSE -//#define MAGIC_KEY_LOCK           CAPS -//#define MAGIC_KEY_EEPROM         E -//#define MAGIC_KEY_NKRO           N -//#define MAGIC_KEY_SLEEP_LED      Z - -/* - * Feature disable options - *  These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -#endif diff --git a/keyboards/handwired/arrow_pad/keymaps/pad_21/rules.mk b/keyboards/handwired/arrow_pad/keymaps/pad_21/rules.mk index 6fae940a50..d3e5864916 100644 --- a/keyboards/handwired/arrow_pad/keymaps/pad_21/rules.mk +++ b/keyboards/handwired/arrow_pad/keymaps/pad_21/rules.mk @@ -10,5 +10,3 @@ AUDIO_ENABLE     = no  # Audio output on port C6  UNICODE_ENABLE   = no  # Unicode  BLUETOOTH_ENABLE = no  # Enable Bluetooth with the Adafruit EZ-Key HID  RGBLIGHT_ENABLE  = no  # Enable WS2812 RGB underlight.  - -CONFIG_H = keymaps/$(KEYMAP)/config.h
\ No newline at end of file diff --git a/keyboards/handwired/arrow_pad/keymaps/pad_24/config.h b/keyboards/handwired/arrow_pad/keymaps/pad_24/config.h index 4bc89f5ce7..3f9997b380 100644 --- a/keyboards/handwired/arrow_pad/keymaps/pad_24/config.h +++ b/keyboards/handwired/arrow_pad/keymaps/pad_24/config.h @@ -15,139 +15,15 @@ You should have received a copy of the GNU General Public License  along with this program.  If not, see <http://www.gnu.org/licenses/>.  */ -#ifndef CONFIG_H -#define CONFIG_H +#pragma once -#include "config_common.h" - -/* USB Device descriptor parameter */ +#undef VENDOR_ID +#undef PRODUCT_ID +#undef DEVICE_VER +#undef MANUFACTURER +#undef PRODUCT  #define VENDOR_ID       0xFEED  #define PRODUCT_ID      0x4096  #define DEVICE_VER      0x0001 -#define MANUFACTURER    Nobody -#define PRODUCT         Arrow Pad 24 - -/* key matrix size */ -#define MATRIX_ROWS 6 -#define MATRIX_COLS 4 - -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - *                  ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * -*/ -#define MATRIX_ROW_PINS { F0, F1, F4, F5, F6, F7 } -#define MATRIX_COL_PINS { B0, B1, B2, B3 } - -#define BACKLIGHT_PIN B7 - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION ROW2COL - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 5 - -/* define if matrix has ghost (lacks anti-ghosting diodes) */ -//#define MATRIX_HAS_GHOST - -/* number of backlight levels */ -#define BACKLIGHT_LEVELS 3 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -//#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -//#define LOCKING_RESYNC_ENABLE - -/* - * Force NKRO - * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved - * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the - * makefile for this to work.) - * - * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) - * until the next keyboard reset. - * - * NKRO may prevent your keystrokes from being detected in the BIOS, but it is - * fully operational during normal computer usage. - * - * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) - * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by - * bootmagic, NKRO mode will always be enabled until it is toggled again during a - * power-up. - * - */ -#define FORCE_NKRO - -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS  true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS  true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1          H -//#define MAGIC_KEY_HELP2          SLASH -//#define MAGIC_KEY_DEBUG          D -//#define MAGIC_KEY_DEBUG_MATRIX   X -//#define MAGIC_KEY_DEBUG_KBD      K -//#define MAGIC_KEY_DEBUG_MOUSE    M -//#define MAGIC_KEY_VERSION        V -//#define MAGIC_KEY_STATUS         S -//#define MAGIC_KEY_CONSOLE        C -//#define MAGIC_KEY_LAYER0_ALT1    ESC -//#define MAGIC_KEY_LAYER0_ALT2    GRAVE -//#define MAGIC_KEY_LAYER0         0 -//#define MAGIC_KEY_LAYER1         1 -//#define MAGIC_KEY_LAYER2         2 -//#define MAGIC_KEY_LAYER3         3 -//#define MAGIC_KEY_LAYER4         4 -//#define MAGIC_KEY_LAYER5         5 -//#define MAGIC_KEY_LAYER6         6 -//#define MAGIC_KEY_LAYER7         7 -//#define MAGIC_KEY_LAYER8         8 -//#define MAGIC_KEY_LAYER9         9 -//#define MAGIC_KEY_BOOTLOADER     PAUSE -//#define MAGIC_KEY_LOCK           CAPS -//#define MAGIC_KEY_EEPROM         E -//#define MAGIC_KEY_NKRO           N -//#define MAGIC_KEY_SLEEP_LED      Z - -/* - * Feature disable options - *  These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -#endif +#define MANUFACTURER    "Nobody" +#define PRODUCT         "Arrow Pad 24" diff --git a/keyboards/handwired/arrow_pad/keymaps/pad_24/rules.mk b/keyboards/handwired/arrow_pad/keymaps/pad_24/rules.mk index 1cf01b79e4..d7fdd82dfe 100644 --- a/keyboards/handwired/arrow_pad/keymaps/pad_24/rules.mk +++ b/keyboards/handwired/arrow_pad/keymaps/pad_24/rules.mk @@ -10,5 +10,3 @@ AUDIO_ENABLE     = no  # Audio output on port C6  UNICODE_ENABLE   = no  # Unicode  BLUETOOTH_ENABLE = no  # Enable Bluetooth with the Adafruit EZ-Key HID  RGBLIGHT_ENABLE  = no  # Enable WS2812 RGB underlight.  - -CONFIG_H = keymaps/$(KEYMAP)/config.h
\ No newline at end of file diff --git a/keyboards/handwired/dactyl_manuform/4x5_5/rules.mk b/keyboards/handwired/dactyl_manuform/4x5_5/rules.mk index fec29f5419..3da6aa269a 100644 --- a/keyboards/handwired/dactyl_manuform/4x5_5/rules.mk +++ b/keyboards/handwired/dactyl_manuform/4x5_5/rules.mk @@ -3,7 +3,7 @@  MCU = atmega32u4  # BOOTLOADER for Elite-C -# BOOTLOADER = atmel-dfu +BOOTLOADER = atmel-dfu  # BOOTLOADER for Pro Micro  # BOOTLOADER = caterina diff --git a/keyboards/handwired/dactyl_manuform/dmote/62key/info.json b/keyboards/handwired/dactyl_manuform/dmote/62key/info.json index 7860fe6c6a..7f15634131 100644 --- a/keyboards/handwired/dactyl_manuform/dmote/62key/info.json +++ b/keyboards/handwired/dactyl_manuform/dmote/62key/info.json @@ -3,6 +3,8 @@      "manufacturer": "tshort",      "url": "",      "maintainer": "veikman", +    "processor": "atmega32u4", +    "bootloader": "atmel-dfu",      "usb": {          "vid": "0x444D",          "pid": "0x3632", diff --git a/keyboards/handwired/hillside/46/info.json b/keyboards/handwired/hillside/46/info.json index 538da4e7c0..93e21aea82 100644 --- a/keyboards/handwired/hillside/46/info.json +++ b/keyboards/handwired/hillside/46/info.json @@ -8,6 +8,7 @@      "tags": ["split", "column stagger", "choc v1", "choc spaced" ],      "processor": "atmega32u4", +    "bootloader": "atmel-dfu",      "matrix_pins": {          "rows": ["C6", "D7", "E6", "B5"], diff --git a/keyboards/handwired/hillside/48/info.json b/keyboards/handwired/hillside/48/info.json index 2325c2d8d3..1b6d5a6828 100644 --- a/keyboards/handwired/hillside/48/info.json +++ b/keyboards/handwired/hillside/48/info.json @@ -8,6 +8,7 @@      "tags": ["split", "column stagger", "choc v1", "choc spaced" ],      "processor": "atmega32u4", +    "bootloader": "atmel-dfu",      "matrix_pins": {          "rows": ["D7", "E6", "B4", "B5"], diff --git a/keyboards/handwired/hillside/52/info.json b/keyboards/handwired/hillside/52/info.json index 407d76a548..9e6103dc53 100644 --- a/keyboards/handwired/hillside/52/info.json +++ b/keyboards/handwired/hillside/52/info.json @@ -8,6 +8,7 @@      "tags": ["split", "column stagger", "choc v1", "choc spaced" ],      "processor": "atmega32u4", +    "bootloader": "atmel-dfu",      "matrix_pins": {          "rows": ["C6", "D7", "E6", "B4", "B5"], diff --git a/keyboards/handwired/lagrange/keymaps/dpapavas/keymap.c b/keyboards/handwired/lagrange/keymaps/dpapavas/keymap.c index c2eb4406d1..bc5b025b48 100644 --- a/keyboards/handwired/lagrange/keymaps/dpapavas/keymap.c +++ b/keyboards/handwired/lagrange/keymaps/dpapavas/keymap.c @@ -191,8 +191,8 @@ void keyboard_post_init_user(void) {      const pin_t pins[] = {D0, D1, D2};      uint8_t i, j; -    for (i = 0 ; i < sizeof(pins) / sizeof(pins[0]) + 2 ; i += 1) { -        for (j = 0 ; j < sizeof(pins) / sizeof(pins[0]) ; j += 1) { +    for (i = 0 ; i < ARRAY_SIZE(pins) + 2 ; i += 1) { +        for (j = 0 ; j < ARRAY_SIZE(pins); j += 1) {              setPinOutput(pins[j]);              writePin(pins[j], (j == i || j == i - 1));          } diff --git a/keyboards/handwired/myskeeb/oled.c b/keyboards/handwired/myskeeb/oled.c index 081ca8395a..3f43590b8e 100644 --- a/keyboards/handwired/myskeeb/oled.c +++ b/keyboards/handwired/myskeeb/oled.c @@ -183,7 +183,7 @@ void add_keylog(uint16_t keycode) {          keylog_str[i] = keylog_str[i - 1];      } -    if (keycode < (sizeof(code_to_name) / sizeof(char))) { +    if (keycode < ARRAY_SIZE(code_to_name)) {          keylog_str[0] = pgm_read_byte(&code_to_name[keycode]);      }  } diff --git a/keyboards/handwired/nicekey/keymaps/default/keymap.c b/keyboards/handwired/nicekey/keymaps/default/keymap.c index d7539a5c17..a4391eaa30 100644 --- a/keyboards/handwired/nicekey/keymaps/default/keymap.c +++ b/keyboards/handwired/nicekey/keymaps/default/keymap.c @@ -116,7 +116,7 @@ PGM_P const sentences[] PROGMEM = {  bool process_record_user(uint16_t keycode, keyrecord_t *record) {      if (record->event.pressed) { -        int sentences_size = sizeof(sentences) / sizeof(sentences[0]); +        int sentences_size = ARRAY_SIZE(sentences);          int i = rand() % sentences_size;          switch (keycode) { diff --git a/keyboards/handwired/onekey/keymaps/chibios_waiting_test/keymap.c b/keyboards/handwired/onekey/keymaps/chibios_waiting_test/keymap.c index ecf67d3b3c..65983c8dd8 100644 --- a/keyboards/handwired/onekey/keymaps/chibios_waiting_test/keymap.c +++ b/keyboards/handwired/onekey/keymaps/chibios_waiting_test/keymap.c @@ -34,11 +34,11 @@ static const uint32_t waiting_values[] = {0, 1, 5, 10, 25, 50, 100, 150, 200, 50  void housekeeping_task_user(void) {      static uint32_t last_bench = 0;      if (timer_elapsed32(last_bench) > 500) { -        for (int i = 0; i < (sizeof(waiting_values) / sizeof(waiting_values[0])); i++) { +        for (int i = 0; i < ARRAY_SIZE(waiting_values); i++) {              wait_us_polling_with_strobe(waiting_values[i]);              wait_us(10);          } -        for (int i = 0; i < (sizeof(waiting_values) / sizeof(waiting_values[0])); i++) { +        for (int i = 0; i < ARRAY_SIZE(waiting_values); i++) {              wait_us_yield_with_strobe(waiting_values[i]);              wait_us(10);          } diff --git a/keyboards/handwired/promethium/config.h b/keyboards/handwired/promethium/config.h index a447a70abd..9ebcc0bf53 100644 --- a/keyboards/handwired/promethium/config.h +++ b/keyboards/handwired/promethium/config.h @@ -210,13 +210,13 @@ enum led_sequence {  #endif  /* PS/2 mouse */ -#ifdef PS2_USE_BUSYWAIT +#ifdef PS2_DRIVER_BUSYWAIT  #    define PS2_CLOCK_PIN  D3  #    define PS2_DATA_PIN   D2  #endif  /* PS/2 mouse interrupt version */ -#ifdef PS2_USE_INT +#ifdef PS2_DRIVER_INTERRUPT  /* uses INT1 for clock line(ATMega32U4) */  #    define PS2_CLOCK_PIN  D3  #    define PS2_DATA_PIN   D2 @@ -237,7 +237,7 @@ enum led_sequence {  #endif  /* PS/2 mouse USART version */ -#ifdef PS2_USE_USART +#ifdef PS2_DRIVER_USART  /* XCK for clock line and RXD for data line */  #define PS2_CLOCK_PIN   D5  #define PS2_DATA_PIN    D2 diff --git a/keyboards/handwired/promethium/keymaps/default/keymap.c b/keyboards/handwired/promethium/keymaps/default/keymap.c index 77f83361e6..fcfcf51f24 100644 --- a/keyboards/handwired/promethium/keymaps/default/keymap.c +++ b/keyboards/handwired/promethium/keymaps/default/keymap.c @@ -55,7 +55,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #endif  #include "outputselect.h"  #include "led.h" -#define COUNT(x) (sizeof (x) / sizeof (*(x))) +#define COUNT(x) ARRAY_SIZE((x))  #define KC_WWWB KC_WWW_BACK  #define KC_WWWF KC_WWW_FORWARD diff --git a/keyboards/handwired/promethium/keymaps/default/rules.mk b/keyboards/handwired/promethium/keymaps/default/rules.mk index 0183f5fa91..598ade50b8 100644 --- a/keyboards/handwired/promethium/keymaps/default/rules.mk +++ b/keyboards/handwired/promethium/keymaps/default/rules.mk @@ -9,4 +9,5 @@ AUDIO_ENABLE = no           # Audio output  UNICODEMAP_ENABLE = yes  RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight.  PS2_MOUSE_ENABLE = yes -PS2_USE_INT = yes +PS2_ENABLE = yes +PS2_DRIVER = interrupt diff --git a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c index 31ce811e53..4df95111a7 100644 --- a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c +++ b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c @@ -57,7 +57,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #include "outputselect.h"  #endif  #include "led.h" -#define COUNT(x) (sizeof (x) / sizeof (*(x))) +#define COUNT(x) ARRAY_SIZE((x))  #define KC_WWWB KC_WWW_BACK  #define KC_WWWF KC_WWW_FORWARD diff --git a/keyboards/handwired/promethium/keymaps/priyadi/rules.mk b/keyboards/handwired/promethium/keymaps/priyadi/rules.mk index 96db4fcbbc..9db01c0a68 100644 --- a/keyboards/handwired/promethium/keymaps/priyadi/rules.mk +++ b/keyboards/handwired/promethium/keymaps/priyadi/rules.mk @@ -17,7 +17,8 @@ UNICODE_ENABLE = no         # Unicode  UNICODEMAP_ENABLE = yes  RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight.  PS2_MOUSE_ENABLE = yes -PS2_USE_INT = yes +PS2_ENABLE = yes +PS2_DRIVER = interrupt  # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE  SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend diff --git a/keyboards/handwired/promethium/rules.mk b/keyboards/handwired/promethium/rules.mk index 383800ee01..3960980dff 100644 --- a/keyboards/handwired/promethium/rules.mk +++ b/keyboards/handwired/promethium/rules.mk @@ -20,7 +20,8 @@ BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality  AUDIO_ENABLE = no           # Audio output  RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight.  PS2_MOUSE_ENABLE = yes -PS2_USE_INT = yes +PS2_ENABLE = yes +PS2_DRIVER = interrupt  CUSTOM_MATRIX = yes  BLUETOOTH_ENABLE = yes  BLUETOOTH_DRIVER = BluefruitLE diff --git a/keyboards/handwired/pytest/basic/rules.mk b/keyboards/handwired/pytest/basic/rules.mk index 6b42774dbf..e69de29bb2 100644 --- a/keyboards/handwired/pytest/basic/rules.mk +++ b/keyboards/handwired/pytest/basic/rules.mk @@ -1 +0,0 @@ -MCU = atmega32u4 diff --git a/keyboards/handwired/pytest/has_community/rules.mk b/keyboards/handwired/pytest/has_community/rules.mk index 4161649cbc..051634b3a4 100644 --- a/keyboards/handwired/pytest/has_community/rules.mk +++ b/keyboards/handwired/pytest/has_community/rules.mk @@ -1,3 +1 @@ -MCU = atmega32u4 -  LAYOUTS = ortho_1x1 diff --git a/keyboards/handwired/pytest/has_template/rules.mk b/keyboards/handwired/pytest/has_template/rules.mk index 6b42774dbf..e69de29bb2 100644 --- a/keyboards/handwired/pytest/has_template/rules.mk +++ b/keyboards/handwired/pytest/has_template/rules.mk @@ -1 +0,0 @@ -MCU = atmega32u4 diff --git a/keyboards/handwired/pytest/info.json b/keyboards/handwired/pytest/info.json index 331472762c..2ba7d34d52 100644 --- a/keyboards/handwired/pytest/info.json +++ b/keyboards/handwired/pytest/info.json @@ -6,5 +6,7 @@          "vid": "0xFEED",          "pid": "0x6465",          "device_version": "0.0.1" -    } +    }, +    "processor": "atmega32u4", +    "bootloader": "atmel-dfu"  } diff --git a/keyboards/handwired/pytest/macro/rules.mk b/keyboards/handwired/pytest/macro/rules.mk index 6b42774dbf..e69de29bb2 100644 --- a/keyboards/handwired/pytest/macro/rules.mk +++ b/keyboards/handwired/pytest/macro/rules.mk @@ -1 +0,0 @@ -MCU = atmega32u4 diff --git a/keyboards/handwired/symmetric70_proto/matrix_debug/matrix.c b/keyboards/handwired/symmetric70_proto/matrix_debug/matrix.c index ba0018a70f..7e15761a98 100644 --- a/keyboards/handwired/symmetric70_proto/matrix_debug/matrix.c +++ b/keyboards/handwired/symmetric70_proto/matrix_debug/matrix.c @@ -159,7 +159,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row)          do {              MATRIX_DEBUG_DELAY_START();              is_pressed = false; -            for (uint8_t i = 0; i < sizeof(delay_ports) / sizeof(pin_t); i++) { +            for (uint8_t i = 0; i < ARRAY_SIZE(delay_ports); i++) {  #            ifdef MATRIX_IO_DELAY_MULSEL                  writePin(MATRIX_MUL_SELECT, delay_sel[i]);                  waitInputPinDelay(); diff --git a/keyboards/handwired/trackpoint/config.h b/keyboards/handwired/trackpoint/config.h index a4b468faef..ed6b4f2180 100644 --- a/keyboards/handwired/trackpoint/config.h +++ b/keyboards/handwired/trackpoint/config.h @@ -5,7 +5,7 @@  #define MATRIX_ROWS 1  #define MATRIX_COLS 3 -#ifdef PS2_USE_USART +#ifdef PS2_DRIVER_USART  #define PS2_CLOCK_PIN   D5  #define PS2_DATA_PIN    D2 diff --git a/keyboards/handwired/trackpoint/rules.mk b/keyboards/handwired/trackpoint/rules.mk index f471f00dfc..1a452149c9 100644 --- a/keyboards/handwired/trackpoint/rules.mk +++ b/keyboards/handwired/trackpoint/rules.mk @@ -17,4 +17,5 @@ BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality  AUDIO_ENABLE = no           # Audio output  PS2_MOUSE_ENABLE = yes -PS2_USE_USART = yes +PS2_ENABLE = yes +PS2_DRIVER = usart diff --git a/keyboards/handwired/wakizashi40/info.json b/keyboards/handwired/wakizashi40/info.json index b97d61171b..12a17643a8 100644 --- a/keyboards/handwired/wakizashi40/info.json +++ b/keyboards/handwired/wakizashi40/info.json @@ -4,6 +4,7 @@    "maintainer": "xia0",    "debounce": 5,    "processor": "atmega32u4", +  "bootloader": "atmel-dfu",    "diode_direction": "COL2ROW",    "features": {      "audio": false, diff --git a/keyboards/hhkb/ansi/keymaps/cinaeco/config.h b/keyboards/hhkb/ansi/keymaps/cinaeco/config.h index 1c714deca4..ed660722c2 100644 --- a/keyboards/hhkb/ansi/keymaps/cinaeco/config.h +++ b/keyboards/hhkb/ansi/keymaps/cinaeco/config.h @@ -1,18 +1,10 @@ -#ifndef CONFIG_CINAECO_H -#define CONFIG_CINAECO_H - -#include "../../config.h" +#pragma once  #undef MANUFACTURER  #undef PRODUCT -#define MANUFACTURER    QMK -#define PRODUCT         HHKB QMK cinaeco +#define MANUFACTURER    "QMK" +#define PRODUCT         "HHKB QMK cinaeco"  // Increase "Tap" detection window. Avoid missing 'q' or 'z' when typing slowly.  #undef TAPPING_TERM  #define TAPPING_TERM 230 - -// Uncomment to enable NKRO by default. May cause issues with KVM switches. -//#define FORCE_NKRO - -#endif diff --git a/keyboards/hhkb/ansi/keymaps/mjt/config.h b/keyboards/hhkb/ansi/keymaps/mjt/config.h index b98ec52311..41d1557c6f 100644 --- a/keyboards/hhkb/ansi/keymaps/mjt/config.h +++ b/keyboards/hhkb/ansi/keymaps/mjt/config.h @@ -1,71 +1,3 @@ -/* -Copyright 2012 Jun Wako <[email protected]> - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program.  If not, see <http://www.gnu.org/licenses/>. -*/ - -#ifndef CONFIG_H -#define CONFIG_H - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID       0xFEED -#define PRODUCT_ID      0xCAFE -#define DEVICE_VER      0x0104 -#define MANUFACTURER    q.m.k -#define PRODUCT         HHKB mod - -/* key matrix size */ -#ifdef HHKB_JP -#   define MATRIX_ROWS 16 -#else -#   define MATRIX_ROWS 8 -#endif -#define MATRIX_COLS 8 - -#define TAPPING_TERM    200 - -/* number of backlight levels */ -#define BACKLIGHT_LEVELS 3 +#pragma once  #define USB_MAX_POWER_CONSUMPTION 50 - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE    5 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -//#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -//#define LOCKING_RESYNC_ENABLE - -/* - * Feature disable options - *  These options are also useful to firmware size reduction. -*/ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -#endif diff --git a/keyboards/hhkb/ansi/keymaps/shela/config.h b/keyboards/hhkb/ansi/keymaps/shela/config.h index 25794900c3..db66659165 100644 --- a/keyboards/hhkb/ansi/keymaps/shela/config.h +++ b/keyboards/hhkb/ansi/keymaps/shela/config.h @@ -16,8 +16,6 @@  #pragma once -#include "../../config.h" -  /* USB Device descriptor parameter */  #undef VENDOR_ID  #define VENDOR_ID 0x0853 @@ -26,9 +24,9 @@  #undef DEVICE_VER  #define DEVICE_VER 0x0102  #undef MANUFACTURER -#define MANUFACTURER Topre Corporation +#define MANUFACTURER "Topre Corporation"  #undef PRODUCT -#define PRODUCT HHKB Professional +#define PRODUCT "HHKB Professional"  #undef TAPPING_TERM  #define TAPPING_TERM 210 diff --git a/keyboards/hhkb/rn42/rn42.c b/keyboards/hhkb/rn42/rn42.c index 06665425ce..b35b319352 100644 --- a/keyboards/hhkb/rn42/rn42.c +++ b/keyboards/hhkb/rn42/rn42.c @@ -12,15 +12,13 @@  static uint8_t keyboard_leds(void);  static void send_keyboard(report_keyboard_t *report);  static void send_mouse(report_mouse_t *report); -static void send_system(uint16_t data); -static void send_consumer(uint16_t data); +static void send_extra(uint8_t report_id, uint16_t data);  host_driver_t rn42_driver = {      keyboard_leds,      send_keyboard,      send_mouse, -    send_system, -    send_consumer +    send_extra  }; @@ -198,12 +196,6 @@ static void send_mouse(report_mouse_t *report)      serial_send(report->v);  } -static void send_system(uint16_t data) -{ -    // Table 5-6 of RN-BT-DATA-UB -    // 81,82,83 scan codes can be used? -} -  static uint16_t usage2bits(uint16_t usage)  { @@ -228,14 +220,17 @@ static uint16_t usage2bits(uint16_t usage)      return 0;  } -static void send_consumer(uint16_t data) + +static void send_extra(uint8_t report_id, uint16_t data)  { -    uint16_t bits = usage2bits(data); -    serial_send(0xFD);  // Raw report mode -    serial_send(3);     // length -    serial_send(3);     // descriptor type -    serial_send(bits&0xFF); -    serial_send((bits>>8)&0xFF); +    if (report_id == REPORT_ID_CONSUMER) { +        uint16_t bits = usage2bits(data); +        serial_send(0xFD);  // Raw report mode +        serial_send(3);     // length +        serial_send(3);     // descriptor type +        serial_send(bits&0xFF); +        serial_send((bits>>8)&0xFF); +    }  } @@ -243,19 +238,16 @@ static void send_consumer(uint16_t data)  static uint8_t config_keyboard_leds(void);  static void config_send_keyboard(report_keyboard_t *report);  static void config_send_mouse(report_mouse_t *report); -static void config_send_system(uint16_t data); -static void config_send_consumer(uint16_t data); +static void config_send_extra(uint8_t report_id, uint16_t data);  host_driver_t rn42_config_driver = {      config_keyboard_leds,      config_send_keyboard,      config_send_mouse, -    config_send_system, -    config_send_consumer +    config_send_extra  };  static uint8_t config_keyboard_leds(void) { return leds; }  static void config_send_keyboard(report_keyboard_t *report) {}  static void config_send_mouse(report_mouse_t *report) {} -static void config_send_system(uint16_t data) {} -static void config_send_consumer(uint16_t data) {} +static void config_send_extra(uint8_t report_id, uint16_t data) {} diff --git a/keyboards/horrortroll/handwired_k552/keymaps/default/keymap_stuff.h b/keyboards/horrortroll/handwired_k552/keymaps/default/keymap_stuff.h index a97b46e5e4..8c4f9d0d4b 100644 --- a/keyboards/horrortroll/handwired_k552/keymaps/default/keymap_stuff.h +++ b/keyboards/horrortroll/handwired_k552/keymaps/default/keymap_stuff.h @@ -110,7 +110,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {      {{205, 250, 255}, {140, 215, 125}, false },      }; -    uint8_t gp_length = sizeof(gradient_presets)/sizeof(gradient_presets[0]); +    uint8_t gp_length = ARRAY_SIZE(gradient_presets);      switch (keycode) {          case G1_HUI: diff --git a/keyboards/horrortroll/handwired_k552/keymaps/via/keymap_stuff.h b/keyboards/horrortroll/handwired_k552/keymaps/via/keymap_stuff.h index a97b46e5e4..8c4f9d0d4b 100644 --- a/keyboards/horrortroll/handwired_k552/keymaps/via/keymap_stuff.h +++ b/keyboards/horrortroll/handwired_k552/keymaps/via/keymap_stuff.h @@ -110,7 +110,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {      {{205, 250, 255}, {140, 215, 125}, false },      }; -    uint8_t gp_length = sizeof(gradient_presets)/sizeof(gradient_presets[0]); +    uint8_t gp_length = ARRAY_SIZE(gradient_presets);      switch (keycode) {          case G1_HUI: diff --git a/keyboards/horrortroll/handwired_k552/lib/wave.c b/keyboards/horrortroll/handwired_k552/lib/wave.c index 79b4e0ced7..700f73aee5 100644 --- a/keyboards/horrortroll/handwired_k552/lib/wave.c +++ b/keyboards/horrortroll/handwired_k552/lib/wave.c @@ -68,7 +68,7 @@ void add_keylog(uint16_t keycode) {          keycode = 0;      } -    if (keycode < (sizeof(code_to_name) / sizeof(char))) { +    if (keycode < ARRAY_SIZE(code_to_name)) {          char log_char = pgm_read_byte(&code_to_name[keycode]);          for (uint8_t j = 0; j < OLED_FONT_WIDTH; j++) { diff --git a/keyboards/kapcave/paladin64/config.h b/keyboards/kapcave/paladin64/config.h index 4ab6863c4f..7d913d8f15 100755 --- a/keyboards/kapcave/paladin64/config.h +++ b/keyboards/kapcave/paladin64/config.h @@ -26,7 +26,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #define BOOTMAGIC_LITE_COLUMN 6  /* Only required if you add in a trackpoint hardware to the pcb */ -#ifdef PS2_USE_USART +#ifdef PS2_DRIVER_USART  #define PS2_CLOCK_PIN   D5  #define PS2_DATA_PIN    D2 @@ -63,7 +63,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.      #define PS2_USART_RX_VECT       USART1_RX_vect  #endif -#ifdef PS2_USE_INT +#ifdef PS2_DRIVER_INTERRUPT  #define PS2_CLOCK_PIN   D2  #define PS2_DATA_PIN    D5 diff --git a/keyboards/karlb/kbic65/info.json b/keyboards/karlb/kbic65/info.json index d572a92fc2..2d9d7ab037 100644 --- a/keyboards/karlb/kbic65/info.json +++ b/keyboards/karlb/kbic65/info.json @@ -1,5 +1,6 @@  {      "keyboard_name": "KBIC65", +    "manufacturer": "b-karl",      "url": "https://karlb.eu/kbic65/",      "maintainer": "b-karl",      "diode_direction": "ROW2COL", diff --git a/keyboards/kbdfans/kbd67/hotswap/keymaps/madhatter/config.h b/keyboards/kbdfans/kbd67/hotswap/keymaps/madhatter/config.h index bf28016ea4..798dd7b297 100644 --- a/keyboards/kbdfans/kbd67/hotswap/keymaps/madhatter/config.h +++ b/keyboards/kbdfans/kbd67/hotswap/keymaps/madhatter/config.h @@ -17,4 +17,4 @@  #pragma once  #undef PRODUCT -#define PRODUCT MadHatter\x27s Hotswap Kbd67 rev1 +#define PRODUCT "MadHatter's Hotswap Kbd67 rev1" diff --git a/keyboards/kbdfans/kbd67/rev2/keymaps/droxx/config.h b/keyboards/kbdfans/kbd67/rev2/keymaps/droxx/config.h index 911051c31a..f6aa35176a 100644 --- a/keyboards/kbdfans/kbd67/rev2/keymaps/droxx/config.h +++ b/keyboards/kbdfans/kbd67/rev2/keymaps/droxx/config.h @@ -23,8 +23,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #undef PRODUCT  #define VENDOR_ID       0xAF88 -#define MANUFACTURER    Droxx-FurFuzz -#define PRODUCT         Carbon v2 4rk +#define MANUFACTURER    "Droxx-FurFuzz" +#define PRODUCT         "Carbon v2 4rk"  /* force N key rollover even on startup regardless of EEPROM setting */  #define FORCE_NKRO diff --git a/keyboards/kbdfans/kbd67/rev2/keymaps/tucznak/config.h b/keyboards/kbdfans/kbd67/rev2/keymaps/tucznak/config.h index e387c84b2f..234a44ae70 100644 --- a/keyboards/kbdfans/kbd67/rev2/keymaps/tucznak/config.h +++ b/keyboards/kbdfans/kbd67/rev2/keymaps/tucznak/config.h @@ -3,8 +3,8 @@  #undef MANUFACTURER  #undef PRODUCT -#define MANUFACTURER    Potato Inc. -#define PRODUCT         Qt3.14 +#define MANUFACTURER    "Potato Inc." +#define PRODUCT         "Qt3.14"  /* send tap key if no layer key was used even after tap delay */  #define TAPPING_TERM 50 diff --git a/keyboards/kbdfans/kbd75/keymaps/noroadsleft/config.h b/keyboards/kbdfans/kbd75/keymaps/noroadsleft/config.h index 73bb22aea4..0b28746081 100644 --- a/keyboards/kbdfans/kbd75/keymaps/noroadsleft/config.h +++ b/keyboards/kbdfans/kbd75/keymaps/noroadsleft/config.h @@ -16,11 +16,6 @@  #pragma once -#undef MANUFACTURER -#undef PRODUCT -#define MANUFACTURER    KBDfans -#define PRODUCT         KBD75 rev1 -  #define BACKLIGHT_BREATHING  #define ANSI_NUBS_ROW 4 diff --git a/keyboards/kbdfans/kbd75/keymaps/tucznak/config.h b/keyboards/kbdfans/kbd75/keymaps/tucznak/config.h index a5578b235f..dd05076444 100644 --- a/keyboards/kbdfans/kbd75/keymaps/tucznak/config.h +++ b/keyboards/kbdfans/kbd75/keymaps/tucznak/config.h @@ -3,8 +3,8 @@  #undef MANUFACTURER  #undef PRODUCT -#define MANUFACTURER    Potato Inc. -#define PRODUCT         Qt3.14 +#define MANUFACTURER    "Potato Inc." +#define PRODUCT         "Qt3.14"  /* send tap key if no layer key was used even after tap delay */  #define TAPPING_TERM 250 diff --git a/keyboards/kbdfans/niu_mini/keymaps/tucznak/config.h b/keyboards/kbdfans/niu_mini/keymaps/tucznak/config.h index 429955b3a0..cfcda1bf7d 100644 --- a/keyboards/kbdfans/niu_mini/keymaps/tucznak/config.h +++ b/keyboards/kbdfans/niu_mini/keymaps/tucznak/config.h @@ -3,8 +3,8 @@  #undef MANUFACTURER  #undef PRODUCT -#define MANUFACTURER    Potato Inc. -#define PRODUCT         Qt3.14 +#define MANUFACTURER    "Potato Inc." +#define PRODUCT         "Qt3.14"  /* turn off RGB when computer sleeps */  #ifdef RGB_DI_PIN diff --git a/keyboards/keebio/bamfk4/info.json b/keyboards/keebio/bamfk4/info.json index 1d04f4348b..0704d0e1d2 100644 --- a/keyboards/keebio/bamfk4/info.json +++ b/keyboards/keebio/bamfk4/info.json @@ -1,5 +1,6 @@  {      "keyboard_name": "BAMFK-4", +    "manufacturer": "Keebio",      "url": "https://keeb.io",      "maintainer": "nooges",      "usb": { diff --git a/keyboards/keebio/iris/keymaps/drashna/config.h b/keyboards/keebio/iris/keymaps/drashna/config.h index cf67aa6984..0569f30744 100644 --- a/keyboards/keebio/iris/keymaps/drashna/config.h +++ b/keyboards/keebio/iris/keymaps/drashna/config.h @@ -51,11 +51,11 @@  #undef PRODUCT  #if defined(KEYBOARD_keebio_iris_rev2) -#    define PRODUCT Drashna Hacked Iris Rev 2 +#    define PRODUCT "Drashna Hacked Iris Rev 2"  #elif defined(KEYBOARD_keebio_iris_rev3) -#    define PRODUCT Drashna Hacked Iris Rev 3 +#    define PRODUCT "Drashna Hacked Iris Rev 3"  #elif defined(KEYBOARD_keebio_iris_rev4) -#    define PRODUCT Drashna Hacked Iris Rev 4 +#    define PRODUCT "Drashna Hacked Iris Rev 4"  #endif  #define SHFT_LED1 6 diff --git a/keyboards/keebio/iris/keymaps/pvinis/config.h b/keyboards/keebio/iris/keymaps/pvinis/config.h index c2870eba0b..19925d3a91 100644 --- a/keyboards/keebio/iris/keymaps/pvinis/config.h +++ b/keyboards/keebio/iris/keymaps/pvinis/config.h @@ -2,7 +2,7 @@  #ifdef PRODUCT  #    undef PRODUCT -#    define PRODUCT Iris Keyboard - pvinis +#    define PRODUCT "Iris Keyboard - pvinis"  #endif  // Use I2C or Serial, not both. diff --git a/keyboards/keebio/iris/keymaps/xyverz/config.h b/keyboards/keebio/iris/keymaps/xyverz/config.h index d3fc22ca76..fab8591844 100644 --- a/keyboards/keebio/iris/keymaps/xyverz/config.h +++ b/keyboards/keebio/iris/keymaps/xyverz/config.h @@ -1,33 +1,13 @@ -/* -Copyright 2017 Danny Nguyen <[email protected]> - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program.  If not, see <http://www.gnu.org/licenses/>. -*/ - -#ifndef CONFIG_USER_H -#define CONFIG_USER_H - -#include "config_common.h" +#pragma once  #define USE_SERIAL  #define EE_HANDS  #undef PRODUCT -#define PRODUCT Iris Keyboard +#define PRODUCT "Iris Keyboard"  #undef MANUFACTURER -#define MANUFACTURER Ian Sterling +#define MANUFACTURER "Ian Sterling"  #undef RGBLED_NUM  #define RGBLIGHT_ANIMATIONS @@ -35,5 +15,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #define RGBLIGHT_HUE_STEP 8  #define RGBLIGHT_SAT_STEP 8  #define RGBLIGHT_VAL_STEP 8 - -#endif diff --git a/keyboards/keebio/viterbi/keymaps/drashna/config.h b/keyboards/keebio/viterbi/keymaps/drashna/config.h index 2decb3b3e9..cd640ec8d5 100644 --- a/keyboards/keebio/viterbi/keymaps/drashna/config.h +++ b/keyboards/keebio/viterbi/keymaps/drashna/config.h @@ -31,7 +31,7 @@  #endif  // RGBLIGHT_ENABLE  #undef PRODUCT -#define PRODUCT Drashnas Viterbi Macro Pad +#define PRODUCT "Drashnas Viterbi Macro Pad"  #ifdef AUDIO_ENABLE  #    define AUDIO_PIN C6 diff --git a/keyboards/kegen/gboy/info.json b/keyboards/kegen/gboy/info.json index 059dafd89b..ad274c1957 100644 --- a/keyboards/kegen/gboy/info.json +++ b/keyboards/kegen/gboy/info.json @@ -1,5 +1,6 @@  { -    "keyboard_name": "Kegen G-Boy",  +    "keyboard_name": "G-Boy",  +    "manufacturer": "Kegen",      "url": "",       "maintainer": "@mattchan",       "usb": { diff --git a/keyboards/keyhive/ut472/keymaps/tucznak/config.h b/keyboards/keyhive/ut472/keymaps/tucznak/config.h index b3d402337a..bc3587f542 100644 --- a/keyboards/keyhive/ut472/keymaps/tucznak/config.h +++ b/keyboards/keyhive/ut472/keymaps/tucznak/config.h @@ -3,8 +3,8 @@  #undef MANUFACTURER  #undef PRODUCT -#define MANUFACTURER    Potato Inc. -#define PRODUCT         Qt3.14 +#define MANUFACTURER    "Potato Inc." +#define PRODUCT         "Qt3.14"  /* turn off RGB when computer sleeps */  #ifdef RGBLIGHT_ENABLE diff --git a/keyboards/lfkeyboards/lfk65_hs/rules.mk b/keyboards/lfkeyboards/lfk65_hs/rules.mk index bfae80e0c7..618c502e06 100644 --- a/keyboards/lfkeyboards/lfk65_hs/rules.mk +++ b/keyboards/lfkeyboards/lfk65_hs/rules.mk @@ -1,8 +1,5 @@  MCU = atmega32u4 -OPT_DEFS += -DBOOTLOADER_SIZE=4096 -FLASH_SIZE_KB = 32 -BOOT_SECTION_SIZE_KB = 4 -BOOT_LOADER = BootloaderHID +BOOTLOADER = atmel-dfu  # Extra source files for IS3731 lighting  SRC = TWIlib.c issi.c lighting.c diff --git a/keyboards/lfkeyboards/lfkpad/keymaps/pascalpfeil/keymap.c b/keyboards/lfkeyboards/lfkpad/keymaps/pascalpfeil/keymap.c index 667e8859e2..38eb656892 100644 --- a/keyboards/lfkeyboards/lfkpad/keymaps/pascalpfeil/keymap.c +++ b/keyboards/lfkeyboards/lfkpad/keymaps/pascalpfeil/keymap.c @@ -58,7 +58,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {  };  const uint8_t number_leds[] = {8, 9, 10, 11, 12, 13, 15, 16, 17}; -const uint8_t number_leds_size = sizeof(number_leds) / sizeof(uint8_t); +const uint8_t number_leds_size = ARRAY_SIZE(number_leds);  bool led_update_user(led_t led_state) {      for (uint8_t i = 0; i < number_leds_size; i++) diff --git a/keyboards/massdrop/alt/config.h b/keyboards/massdrop/alt/config.h index 2a3b5b3311..364e8325b1 100644 --- a/keyboards/massdrop/alt/config.h +++ b/keyboards/massdrop/alt/config.h @@ -20,8 +20,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #include "config_common.h"  /* USB Device descriptor parameter */ -#define MANUFACTURER        "Massdrop Inc." -#define PRODUCT             "ALT Keyboard"  #define SERIAL_NUM          "Unavailable"  /* key matrix size */ diff --git a/keyboards/massdrop/alt/info.json b/keyboards/massdrop/alt/info.json index 909ca8904a..6e87648d95 100644 --- a/keyboards/massdrop/alt/info.json +++ b/keyboards/massdrop/alt/info.json @@ -1,5 +1,6 @@  { -    "keyboard_name": "ALT", +    "keyboard_name": "ALT Keyboard", +    "manufacturer": "Massdrop Inc.",      "url": "https://www.massdrop.com/buy/massdrop-alt-mechanical-keyboard",      "maintainer": "Massdrop",      "usb": { diff --git a/keyboards/massdrop/ctrl/config.h b/keyboards/massdrop/ctrl/config.h index 8b8625e700..77967e17d3 100644 --- a/keyboards/massdrop/ctrl/config.h +++ b/keyboards/massdrop/ctrl/config.h @@ -20,8 +20,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #include "config_common.h"  /* USB Device descriptor parameter */ -#define MANUFACTURER        "Massdrop Inc." -#define PRODUCT             "CTRL Keyboard"  #define SERIAL_NUM          "Unavailable"  /* key matrix size */ diff --git a/keyboards/massdrop/ctrl/info.json b/keyboards/massdrop/ctrl/info.json index 7d0810c630..34c60ca088 100644 --- a/keyboards/massdrop/ctrl/info.json +++ b/keyboards/massdrop/ctrl/info.json @@ -1,5 +1,6 @@  { -    "keyboard_name": "CTRL", +    "keyboard_name": "CTRL Keyboard", +    "manufacturer": "Massdrop Inc.",      "url": "https://www.massdrop.com/buy/massdrop-ctrl-mechanical-keyboard",      "maintainer": "Massdrop",      "usb": { diff --git a/keyboards/massdrop/ctrl/keymaps/responsive_pattern/keymap.c b/keyboards/massdrop/ctrl/keymaps/responsive_pattern/keymap.c index ddcf30b68d..eee2eaf628 100644 --- a/keyboards/massdrop/ctrl/keymaps/responsive_pattern/keymap.c +++ b/keyboards/massdrop/ctrl/keymaps/responsive_pattern/keymap.c @@ -129,8 +129,7 @@ static uint8_t COLOR_PATTERNS[][COLOR_PATTERN_RGB_COUNT][3] = {          { 66,  66,  66}, { 45,  45,  45}, { 23,  23,  23},      },  }; -static const uint8_t COLOR_PATTERNS_COUNT = ( -        sizeof(COLOR_PATTERNS) / sizeof(COLOR_PATTERNS[0])); +static const uint8_t COLOR_PATTERNS_COUNT = ARRAY_SIZE(COLOR_PATTERNS);  /**   * trimed down version of `ISSI3733_LED_MAP`: diff --git a/keyboards/mechwild/mercutio/keymaps/fearless_spiff/keymap.c b/keyboards/mechwild/mercutio/keymaps/fearless_spiff/keymap.c index 50b1b6471c..9dbd4d3f19 100644 --- a/keyboards/mechwild/mercutio/keymaps/fearless_spiff/keymap.c +++ b/keyboards/mechwild/mercutio/keymaps/fearless_spiff/keymap.c @@ -83,7 +83,7 @@ static const encoder_key PROGMEM encoder_keys[] = {      {"Play", "", "", KC_MEDIA_PLAY_PAUSE}  }; -#define NUMBER_OF_ENCODER_KEYS sizeof(encoder_keys)/sizeof(encoder_keys[0]) +#define NUMBER_OF_ENCODER_KEYS ARRAY_SIZE(encoder_keys)  static uint8_t selected_encoder_key_id = 0;  static encoder_key selected_encoder_key; diff --git a/keyboards/mechwild/mercutio/keymaps/fearless_spiff_en/keymap.c b/keyboards/mechwild/mercutio/keymaps/fearless_spiff_en/keymap.c index 267d3add14..9b28c68672 100644 --- a/keyboards/mechwild/mercutio/keymaps/fearless_spiff_en/keymap.c +++ b/keyboards/mechwild/mercutio/keymaps/fearless_spiff_en/keymap.c @@ -82,7 +82,7 @@ static const encoder_key PROGMEM encoder_keys[] = {      {"Play", "", "", KC_MEDIA_PLAY_PAUSE}  }; -#define NUMBER_OF_ENCODER_KEYS sizeof(encoder_keys)/sizeof(encoder_keys[0]) +#define NUMBER_OF_ENCODER_KEYS ARRAY_SIZE(encoder_keys)  static uint8_t selected_encoder_key_id = 0;  static encoder_key selected_encoder_key; diff --git a/keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c b/keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c index 5c22abee3f..a8f1d488d4 100755 --- a/keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c +++ b/keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c @@ -71,7 +71,7 @@ static const keycodedescType PROGMEM keyselection[] = {          {"FLASH",   QK_BOOT},   // firmware flash mode  }; -#define MAX_KEYSELECTION sizeof(keyselection)/sizeof(keyselection[0]) +#define MAX_KEYSELECTION ARRAY_SIZE(keyselection)  static uint8_t selectedkey_idx = 0;  static keycodedescType selectedkey_rec; diff --git a/keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c b/keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c index b0288c5d7a..58db97d093 100644 --- a/keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c +++ b/keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c @@ -178,7 +178,7 @@ static const keycodedescType PROGMEM keyselection[] = {          {"QK_BOOT",   QK_BOOT},   // firmware flash mode  }; -#define MAX_KEYSELECTION sizeof(keyselection)/sizeof(keyselection[0]) +#define MAX_KEYSELECTION ARRAY_SIZE(keyselection)  static uint8_t selectedkey_idx = 0;  static keycodedescType selectedkey_rec; diff --git a/keyboards/mechwild/puckbuddy/puckbuddy.c b/keyboards/mechwild/puckbuddy/puckbuddy.c index b82d06f565..495cb7e825 100644 --- a/keyboards/mechwild/puckbuddy/puckbuddy.c +++ b/keyboards/mechwild/puckbuddy/puckbuddy.c @@ -16,7 +16,7 @@  keyboard_config_t keyboard_config;  uint16_t          dpi_array[] = GLIDEPOINT_DPI_OPTIONS; -#define DPI_OPTION_SIZE (sizeof(dpi_array) / sizeof(uint16_t)) +#define DPI_OPTION_SIZE ARRAY_SIZE(dpi_array)  void board_init(void) {      // B9 is configured as I2C1_SDA in the board file; that function must be diff --git a/keyboards/mitosis/keymaps/datagrok/keymap.c b/keyboards/mitosis/keymaps/datagrok/keymap.c index 7c77eb882f..848af3de00 100644 --- a/keyboards/mitosis/keymaps/datagrok/keymap.c +++ b/keyboards/mitosis/keymaps/datagrok/keymap.c @@ -97,7 +97,7 @@ const bool defaultlayers[] = {    [_xN] = false,    [_xF] = false,  }; -const size_t defaultlayers_n = sizeof(defaultlayers) / sizeof(defaultlayers[0]); +const size_t defaultlayers_n = ARRAY_SIZE(defaultlayers);  // New keycode KC_LAYO rotates between available default layers (for e.g.,  // selecting a base layout). Shift+KC_LAYO makes the current one persistent. diff --git a/keyboards/moonlander/keymaps/jjerrell/config.h b/keyboards/moonlander/keymaps/jjerrell/config.h index 1fd17fbbe3..aa4bf3885e 100644 --- a/keyboards/moonlander/keymaps/jjerrell/config.h +++ b/keyboards/moonlander/keymaps/jjerrell/config.h @@ -22,6 +22,6 @@  #define ORYX_CONFIGURATOR  #undef PRODUCT -#define PRODUCT         Moonlander Mark I - Modified by <@jjerrell> +#define PRODUCT         "Moonlander Mark I - Modified by <@jjerrell>"  #define IGNORE_MOD_TAP_INTERRUPT diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap_stuff.h b/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap_stuff.h index c8b8015363..eea031698a 100644 --- a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap_stuff.h +++ b/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap_stuff.h @@ -116,7 +116,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {      {{205, 250, 255}, {140, 215, 125}, false },      }; -    uint8_t gp_length = sizeof(gradient_presets)/sizeof(gradient_presets[0]); +    uint8_t gp_length = ARRAY_SIZE(gradient_presets);      switch (keycode) {          case G1_HUI: diff --git a/keyboards/mxss/keymaps/default/keymap.c b/keyboards/mxss/keymaps/default/keymap.c index 519547f15a..3b7150f7fa 100644 --- a/keyboards/mxss/keymaps/default/keymap.c +++ b/keyboards/mxss/keymaps/default/keymap.c @@ -27,7 +27,7 @@ hs_set layer_colors[4] = {      [2] = {.hue = 36,    .sat = 255},  // Color for Layer 2      [3] = {.hue = 185,   .sat = 255},  // Color for Layer 3  }; -size_t lc_size = sizeof(layer_colors) / sizeof(uint16_t); +size_t lc_size = ARRAY_SIZE(layer_colors);  // Use NEW_SAFE_RANGE to define new custom keycodes in order to not overwrite the ones used for front LED control  enum custom_keycodes { diff --git a/keyboards/mxss/mxss_frontled.c b/keyboards/mxss/mxss_frontled.c index 8bb93d5fd8..2ab9a27bea 100644 --- a/keyboards/mxss/mxss_frontled.c +++ b/keyboards/mxss/mxss_frontled.c @@ -36,7 +36,7 @@ __attribute__ ((weak))  hs_set caps_color;  __attribute__ ((weak)) -size_t lc_size = sizeof(layer_colors) / sizeof(hs_set); +size_t lc_size = ARRAY_SIZE(layer_colors);  void fled_init(void) {      // This checks both an EEPROM reset (from bootmagic lite, keycodes) diff --git a/keyboards/mxss/templates/keymap.c b/keyboards/mxss/templates/keymap.c index a18cff77f0..48cab22852 100644 --- a/keyboards/mxss/templates/keymap.c +++ b/keyboards/mxss/templates/keymap.c @@ -27,7 +27,7 @@ hs_set layer_colors[4] = {      [2] = {.hue = 36,    .sat = 255},  // Color for Layer 2      [3] = {.hue = 185,   .sat = 255},  // Color for Layer 3  }; -size_t lc_size = sizeof(layer_colors) / sizeof(uint16_t); +size_t lc_size = ARRAY_SIZE(layer_colors);  // Use NEW_SAFE_RANGE to define new custom keycodes in order to not overwrite the ones used for front LED control  enum custom_keycodes { diff --git a/keyboards/nacly/splitreus62/keymaps/scheiklp/config.h b/keyboards/nacly/splitreus62/keymaps/scheiklp/config.h index 04af418d8f..da8287df64 100644 --- a/keyboards/nacly/splitreus62/keymaps/scheiklp/config.h +++ b/keyboards/nacly/splitreus62/keymaps/scheiklp/config.h @@ -18,37 +18,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID       0xBEEF -#define PRODUCT_ID      0xFED0 -#define DEVICE_VER      0x0001 -#define MANUFACTURER    NaCly -#define PRODUCT         Splitreus62 - -/* key matrix size */ -// Rows are doubled-up -#define MATRIX_ROWS 12 -#define MATRIX_COLS 6 - -// wiring of each half -#define MATRIX_ROW_PINS { D3, D2, D1, D4, C6, D7 } -#define MATRIX_COL_PINS { E6, B4, B5, B6, B2, B3 } - -#define DIODE_DIRECTION ROW2COL - -#define SPLIT_HAND_PIN F4 - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - -/* serial.c configuration for split keyboard */ -#define SOFT_SERIAL_PIN D0 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE -  #define AUTO_SHIFT_TIMEOUT 100  #define NO_AUTO_SHIFT_SPECIAL  #define NO_AUTO_SHIFT_NUMERIC diff --git a/keyboards/orthodox/keymaps/drashna/config.h b/keyboards/orthodox/keymaps/drashna/config.h index e3a89bce6a..caa69821a0 100644 --- a/keyboards/orthodox/keymaps/drashna/config.h +++ b/keyboards/orthodox/keymaps/drashna/config.h @@ -58,9 +58,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #undef PRODUCT  #ifdef KEYBOARD_orthodox_rev1 -#    define PRODUCT Drashna Hacked Orthodox Rev .1 +#    define PRODUCT "Drashna Hacked Orthodox Rev .1"  #elif KEYBOARD_orthodox_rev3 -#    define PRODUCT Drashna Hacked Orthodox Rev .3 +#    define PRODUCT "Drashna Hacked Orthodox Rev .3"  #endif  #define QMK_ESC_OUTPUT D7  // usually COL diff --git a/keyboards/pierce/keymaps/durken1/config.h b/keyboards/pierce/keymaps/durken1/config.h index bc0bb1c4b8..7c9970c5a9 100644 --- a/keyboards/pierce/keymaps/durken1/config.h +++ b/keyboards/pierce/keymaps/durken1/config.h @@ -31,7 +31,7 @@  #define COMBO_COUNT 3  #define COMBO_TERM 35 -#ifdef PS2_USE_USART +#ifdef PS2_DRIVER_USART  #define PS2_CLOCK_PIN   D5  #define PS2_DATA_PIN    D2 diff --git a/keyboards/pierce/post_rules.mk b/keyboards/pierce/post_rules.mk index e0360a3391..9cc6739d78 100644 --- a/keyboards/pierce/post_rules.mk +++ b/keyboards/pierce/post_rules.mk @@ -1,6 +1,7 @@  ifeq ($(strip $(TRACKPOINT)), yes)    PS2_MOUSE_ENABLE = yes -  PS2_USE_USART = yes +  PS2_ENABLE = yes +  PS2_DRIVER = usart    OPT_DEFS += -DUSART  endif diff --git a/keyboards/planck/keymaps/handwired_binaryplease/config.h b/keyboards/planck/keymaps/handwired_binaryplease/config.h index abf9f5771f..065bc2d688 100644 --- a/keyboards/planck/keymaps/handwired_binaryplease/config.h +++ b/keyboards/planck/keymaps/handwired_binaryplease/config.h @@ -1,9 +1,9 @@  #pragma once  #undef MANUFACTURER -#define MANUFACTURER binaryplease +#define MANUFACTURER "binaryplease"  #undef PRODUCT -#define PRODUCT      Teensy_Planck +#define PRODUCT      "Teensy_Planck"  #undef MATRIX_ROW_PINS  #define MATRIX_ROW_PINS { D3, D2, D1, D0 } diff --git a/keyboards/ploopyco/mouse/mouse.c b/keyboards/ploopyco/mouse/mouse.c index 19bc17738e..abcaa276d9 100644 --- a/keyboards/ploopyco/mouse/mouse.c +++ b/keyboards/ploopyco/mouse/mouse.c @@ -49,7 +49,7 @@  keyboard_config_t keyboard_config;  uint16_t          dpi_array[] = PLOOPY_DPI_OPTIONS; -#define DPI_OPTION_SIZE (sizeof(dpi_array) / sizeof(uint16_t)) +#define DPI_OPTION_SIZE ARRAY_SIZE(dpi_array)  // TODO: Implement libinput profiles  // https://wayland.freedesktop.org/libinput/doc/latest/pointer-acceleration.html @@ -202,7 +202,7 @@ void keyboard_pre_init_kb(void) {  #ifdef UNUSABLE_PINS      const pin_t unused_pins[] = UNUSABLE_PINS; -    for (uint8_t i = 0; i < (sizeof(unused_pins) / sizeof(pin_t)); i++) { +    for (uint8_t i = 0; i < ARRAY_SIZE(unused_pins); i++) {          setPinOutput(unused_pins[i]);          writePinLow(unused_pins[i]);      } diff --git a/keyboards/ploopyco/trackball/trackball.c b/keyboards/ploopyco/trackball/trackball.c index 786b40f9e8..c96bf15cba 100644 --- a/keyboards/ploopyco/trackball/trackball.c +++ b/keyboards/ploopyco/trackball/trackball.c @@ -49,7 +49,7 @@  keyboard_config_t keyboard_config;  uint16_t          dpi_array[] = PLOOPY_DPI_OPTIONS; -#define DPI_OPTION_SIZE (sizeof(dpi_array) / sizeof(uint16_t)) +#define DPI_OPTION_SIZE ARRAY_SIZE(dpi_array)  // TODO: Implement libinput profiles  // https://wayland.freedesktop.org/libinput/doc/latest/pointer-acceleration.html @@ -207,7 +207,7 @@ void keyboard_pre_init_kb(void) {  #ifdef UNUSABLE_PINS      const pin_t unused_pins[] = UNUSABLE_PINS; -    for (uint8_t i = 0; i < (sizeof(unused_pins) / sizeof(pin_t)); i++) { +    for (uint8_t i = 0; i < ARRAY_SIZE(unused_pins); i++) {          setPinOutput(unused_pins[i]);          writePinLow(unused_pins[i]);      } diff --git a/keyboards/ploopyco/trackball_mini/trackball_mini.c b/keyboards/ploopyco/trackball_mini/trackball_mini.c index df13912af4..dc3708fd51 100644 --- a/keyboards/ploopyco/trackball_mini/trackball_mini.c +++ b/keyboards/ploopyco/trackball_mini/trackball_mini.c @@ -57,7 +57,7 @@  keyboard_config_t keyboard_config;  uint16_t          dpi_array[] = PLOOPY_DPI_OPTIONS; -#define DPI_OPTION_SIZE (sizeof(dpi_array) / sizeof(uint16_t)) +#define DPI_OPTION_SIZE ARRAY_SIZE(dpi_array)  // TODO: Implement libinput profiles  // https://wayland.freedesktop.org/libinput/doc/latest/pointer-acceleration.html @@ -203,7 +203,7 @@ void keyboard_pre_init_kb(void) {  #ifdef UNUSABLE_PINS      const pin_t unused_pins[] = UNUSABLE_PINS; -    for (uint8_t i = 0; i < (sizeof(unused_pins) / sizeof(pin_t)); i++) { +    for (uint8_t i = 0; i < ARRAY_SIZE(unused_pins); i++) {          setPinOutput(unused_pins[i]);          writePinLow(unused_pins[i]);      } diff --git a/keyboards/ploopyco/trackball_nano/trackball_nano.c b/keyboards/ploopyco/trackball_nano/trackball_nano.c index eb1d8e10b0..366918e134 100644 --- a/keyboards/ploopyco/trackball_nano/trackball_nano.c +++ b/keyboards/ploopyco/trackball_nano/trackball_nano.c @@ -50,7 +50,7 @@  keyboard_config_t keyboard_config;  uint16_t          dpi_array[] = PLOOPY_DPI_OPTIONS; -#define DPI_OPTION_SIZE (sizeof(dpi_array) / sizeof(uint16_t)) +#define DPI_OPTION_SIZE ARRAY_SIZE(dpi_array)  void cycle_dpi(void) {    keyboard_config.dpi_config = (keyboard_config.dpi_config + 1) % DPI_OPTION_SIZE; @@ -89,7 +89,7 @@ void keyboard_pre_init_kb(void) {  #ifdef UNUSABLE_PINS      const pin_t unused_pins[] = UNUSABLE_PINS; -    for (uint8_t i = 0; i < (sizeof(unused_pins) / sizeof(pin_t)); i++) { +    for (uint8_t i = 0; i < ARRAY_SIZE(unused_pins); i++) {          setPinOutput(unused_pins[i]);          writePinLow(unused_pins[i]);      } diff --git a/keyboards/preonic/keymaps/kinesis/config.h b/keyboards/preonic/keymaps/kinesis/config.h index eabce5e790..2e8585d0eb 100644 --- a/keyboards/preonic/keymaps/kinesis/config.h +++ b/keyboards/preonic/keymaps/kinesis/config.h @@ -1,58 +1,4 @@ -/* -Copyright 2012 Jun Wako <[email protected]> - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program.  If not, see <http://www.gnu.org/licenses/>. -*/ - -#ifndef CONFIG_H -#define CONFIG_H - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID       0xFEED -#define PRODUCT_ID      0x6061 -#define DEVICE_VER      0x0001 -#define MANUFACTURER    Ortholinear Keyboards -#define PRODUCT         The Preonic Keyboard - -/* key matrix size */ -#define MATRIX_ROWS 5 -#define MATRIX_COLS 12 - -/* Planck PCB default pin-out */ -#define MATRIX_ROW_PINS { D2, D5, B5, B6, D3 } -#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } - -#define BACKLIGHT_PIN B7 - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -/* define if matrix has ghost */ -//#define MATRIX_HAS_GHOST - -/* number of backlight levels */ -#define BACKLIGHT_LEVELS 3 - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE +#pragma once  /* ws2812 RGB LED */  #define RGB_DI_PIN D1 @@ -61,25 +7,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #define RGBLIGHT_HUE_STEP 10  #define RGBLIGHT_SAT_STEP 17  #define RGBLIGHT_VAL_STEP 17 - -/* - * Feature disable options - *  These options are also useful to firmware size reduction. - */ - -#define TAPPING_TERM 200 - -/* disable debug print */ -// #define NO_DEBUG - -/* disable print */ -// #define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -#endif diff --git a/keyboards/preonic/keymaps/zach/config.h b/keyboards/preonic/keymaps/zach/config.h index 37e85bf512..f5e4d2c204 100644 --- a/keyboards/preonic/keymaps/zach/config.h +++ b/keyboards/preonic/keymaps/zach/config.h @@ -1,85 +1,7 @@ -/* -Copyright 2012 Jun Wako <[email protected]> - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program.  If not, see <http://www.gnu.org/licenses/>. -*/ - -#ifndef CONFIG_H -#define CONFIG_H - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID       0xFEED -#define PRODUCT_ID      0x6061 -#define DEVICE_VER      0x0001 -#define MANUFACTURER    Ortholinear Keyboards -#define PRODUCT         The Preonic Keyboard - -/* key matrix size */ -#define MATRIX_ROWS 5 -#define MATRIX_COLS 12 - -/* Planck PCB default pin-out */ -#define MATRIX_ROW_PINS { D2, D5, B5, B6, D3 } -#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } - -#define BACKLIGHT_PIN B7 - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -/* define if matrix has ghost */ -//#define MATRIX_HAS_GHOST +#pragma once  #define BACKLIGHT_BREATHING     // LED breathing -/* number of backlight levels */ +#undef BACKLIGHT_LEVELS  #define BACKLIGHT_LEVELS 5 -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -//#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -//#define LOCKING_RESYNC_ENABLE - -/* ws2812 RGB LED */ -//#define RGB_DI_PIN D1 - -//#define RGBLED_NUM 28     // Number of LEDs -//#define RGBLIGHT_HUE_STEP 10 -//#define RGBLIGHT_SAT_STEP 17 -//#define RGBLIGHT_VAL_STEP 17 - -/* - * Feature disable options - *  These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER  #define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -#define NO_ACTION_MACRO -#define NO_ACTION_FUNCTION -//#define DYNAMIC_MACRO_ENABLE    // Enable if you need to use the macro functionality -//#define SPACE_CADET             // Parenthesis on L/R shift - -#endif diff --git a/keyboards/primekb/prime_e/keymaps/madhatter/config.h b/keyboards/primekb/prime_e/keymaps/madhatter/config.h index 8075bb73d5..3ec816d7ee 100644 --- a/keyboards/primekb/prime_e/keymaps/madhatter/config.h +++ b/keyboards/primekb/prime_e/keymaps/madhatter/config.h @@ -3,4 +3,4 @@  #define TAPPING_TERM 150  #undef PRODUCT -#define PRODUCT MadHatter\x27s Custom Ilpse +#define PRODUCT "MadHatter's Custom Ilpse" diff --git a/keyboards/rgbkb/pan/pan.c b/keyboards/rgbkb/pan/pan.c index c367550e49..6a17456390 100644 --- a/keyboards/rgbkb/pan/pan.c +++ b/keyboards/rgbkb/pan/pan.c @@ -51,7 +51,7 @@ static inline void setled(int i, uint8_t r, uint8_t g, uint8_t b) {  }  static void setled_all(uint8_t r, uint8_t g, uint8_t b) { -    for (int i = 0; i < sizeof(rgb_matrix_ws2812_array) / sizeof(rgb_matrix_ws2812_array[0]); i++) { +    for (int i = 0; i < ARRAY_SIZE(rgb_matrix_ws2812_array); i++) {          setled(i, r, g, b);      }  } diff --git a/keyboards/rgbkb/sol/keymaps/default/keymap.c b/keyboards/rgbkb/sol/keymaps/default/keymap.c index 1ce18bc1ab..87241521ae 100644 --- a/keyboards/rgbkb/sol/keymaps/default/keymap.c +++ b/keyboards/rgbkb/sol/keymaps/default/keymap.c @@ -202,7 +202,7 @@ const rgb_matrix_f rgb_matrix_functions[6][2] = {  #ifdef ENCODER_ENABLE  static pin_t encoders_pad_a[] = ENCODERS_PAD_A; -#define NUMBER_OF_ENCODERS (sizeof(encoders_pad_a)/sizeof(pin_t)) +#define NUMBER_OF_ENCODERS ARRAY_SIZE(encoders_pad_a)  const uint16_t PROGMEM encoders[][NUMBER_OF_ENCODERS * 2][2]  = {      [_QWERTY] = ENCODER_LAYOUT( diff --git a/keyboards/rgbkb/sol/keymaps/xyverz/keymap.c b/keyboards/rgbkb/sol/keymaps/xyverz/keymap.c index cdd0c6620a..d042a4fe27 100644 --- a/keyboards/rgbkb/sol/keymaps/xyverz/keymap.c +++ b/keyboards/rgbkb/sol/keymaps/xyverz/keymap.c @@ -232,7 +232,7 @@ const rgb_matrix_f rgb_matrix_functions[6][2] = {  #ifdef ENCODER_ENABLE  static pin_t encoders_pad_a[] = ENCODERS_PAD_A; -#define NUMBER_OF_ENCODERS (sizeof(encoders_pad_a)/sizeof(pin_t)) +#define NUMBER_OF_ENCODERS ARRAY_SIZE(encoders_pad_a)  const uint16_t PROGMEM encoders[][NUMBER_OF_ENCODERS * 2][2]  = {      [_QWERTY] = ENCODER_LAYOUT( \ diff --git a/keyboards/rocketboard_16/keycode_lookup.c b/keyboards/rocketboard_16/keycode_lookup.c index 0e6e47ba0d..ab2e69b346 100644 --- a/keyboards/rocketboard_16/keycode_lookup.c +++ b/keyboards/rocketboard_16/keycode_lookup.c @@ -18,7 +18,7 @@  #include "print.h"  #include "via.h" -#define num_keycodes (sizeof(lookup_table)/sizeof(lookup_table[0])) +#define num_keycodes ARRAY_SIZE(lookup_table)  static char UNKNOWN_KEYCODE[] = "UNKNOWN";  int cmp(const void *v1, const void *v2) diff --git a/keyboards/sofle/keymaps/flare576/config.h b/keyboards/sofle/keymaps/flare576/config.h index c0f0a7d563..c89f38c127 100644 --- a/keyboards/sofle/keymaps/flare576/config.h +++ b/keyboards/sofle/keymaps/flare576/config.h @@ -37,4 +37,4 @@  #define TAPPING_TERM 200  #undef MANUFACTURER -#define MANUFACTURER Flare576 +#define MANUFACTURER "Flare576" diff --git a/keyboards/tanuki/keymaps/tucznak/config.h b/keyboards/tanuki/keymaps/tucznak/config.h index 4f2a778ff2..37d42c0814 100644 --- a/keyboards/tanuki/keymaps/tucznak/config.h +++ b/keyboards/tanuki/keymaps/tucznak/config.h @@ -3,23 +3,16 @@  #undef MANUFACTURER  #undef PRODUCT -#define MANUFACTURER    Potato Inc. -#define PRODUCT         Trash Panda +#define MANUFACTURER    "Potato Inc." +#define PRODUCT         "Trash Panda"  /* for bootloader */  #define QMK_ESC_OUTPUT B2  #define QMK_ESC_INPUT D0  #define QMK_LED B0 -/* turn off RGB when computer sleeps */ -#ifdef RGBLIGHT_ENABLE -#define RGBLIGHT_SLEEP -#endif -  /* send tap key if no layer key was used even after tap delay */ -#ifdef TAPPING_TERM  #undef TAPPING_TERM -#endif  #define TAPPING_TERM 250  #define RETRO_TAPPING  #define TAPPING_TOGGLE 2 diff --git a/keyboards/torn/bongocat.c b/keyboards/torn/bongocat.c index 21322c9536..9d6d9a85f5 100644 --- a/keyboards/torn/bongocat.c +++ b/keyboards/torn/bongocat.c @@ -18,8 +18,6 @@  #ifdef OLED_ENABLE -#define ARRAY_SIZE(array) (sizeof(array) / sizeof(array[0])) -  #define IDLE_SPEED 20 // idle below this wpm  #define TAP_SPEED 60 // tap above this wpm diff --git a/keyboards/tzarc/djinn/djinn_portscan_matrix.c b/keyboards/tzarc/djinn/djinn_portscan_matrix.c index f0ae9721f9..6fcfd48bba 100644 --- a/keyboards/tzarc/djinn/djinn_portscan_matrix.c +++ b/keyboards/tzarc/djinn/djinn_portscan_matrix.c @@ -92,11 +92,11 @@ bool matrix_scan_custom(matrix_row_t current_matrix[]) {  void matrix_wait_for_interrupt(void) {      // Set up row/col pins and attach callback -    for (int i = 0; i < sizeof(col_pins) / sizeof(pin_t); ++i) { +    for (int i = 0; i < ARRAY_SIZE(col_pins); ++i) {          setPinOutput(col_pins[i]);          writePinLow(col_pins[i]);      } -    for (int i = 0; i < sizeof(row_pins) / sizeof(pin_t); ++i) { +    for (int i = 0; i < ARRAY_SIZE(row_pins); ++i) {          setPinInputHigh(row_pins[i]);          palEnableLineEvent(row_pins[i], PAL_EVENT_MODE_BOTH_EDGES);      } @@ -105,12 +105,12 @@ void matrix_wait_for_interrupt(void) {      __WFI();      // Now that the interrupt has woken us up, reset all the row/col pins back to defaults -    for (int i = 0; i < sizeof(row_pins) / sizeof(pin_t); ++i) { +    for (int i = 0; i < ARRAY_SIZE(row_pins); ++i) {          palDisableLineEvent(row_pins[i]);          writePinHigh(row_pins[i]);          setPinInputHigh(row_pins[i]);      } -    for (int i = 0; i < sizeof(col_pins) / sizeof(pin_t); ++i) { +    for (int i = 0; i < ARRAY_SIZE(col_pins); ++i) {          writePinHigh(col_pins[i]);          setPinInputHigh(col_pins[i]);      } diff --git a/keyboards/wilba_tech/wt75_b/keymaps/madhatter/config.h b/keyboards/wilba_tech/wt75_b/keymaps/madhatter/config.h index afb1d86d6c..dc2a125b1e 100644 --- a/keyboards/wilba_tech/wt75_b/keymaps/madhatter/config.h +++ b/keyboards/wilba_tech/wt75_b/keymaps/madhatter/config.h @@ -1,4 +1,4 @@  #pragma once  #undef PRODUCT -#define PRODUCT MadHatter\x27s Custom Singa V3 +#define PRODUCT "MadHatter's Custom Singa V3" diff --git a/keyboards/xiudi/xd75/keymaps/mtdjr/config.h b/keyboards/xiudi/xd75/keymaps/mtdjr/config.h index 3c8b17df1f..f70569b024 100644 --- a/keyboards/xiudi/xd75/keymaps/mtdjr/config.h +++ b/keyboards/xiudi/xd75/keymaps/mtdjr/config.h @@ -18,5 +18,4 @@  // place overrides here  #undef MANUFACTURER -#define MANUFACTURER    mtdjr -#define PRODUCT         XD75 +#define MANUFACTURER    "mtdjr" diff --git a/keyboards/ymdk/melody96/keymaps/konstantin/keymap.c b/keyboards/ymdk/melody96/keymaps/konstantin/keymap.c index 1ee7ca1e77..cc6cbd90c2 100644 --- a/keyboards/ymdk/melody96/keymaps/konstantin/keymap.c +++ b/keyboards/ymdk/melody96/keymaps/konstantin/keymap.c @@ -2,7 +2,7 @@  #include "konstantin.h"  static const HSV *colors[] = { &godspeed_blue, &godspeed_yellow }; -static const size_t cnum = sizeof colors / sizeof *colors; +static const size_t cnum = ARRAY_SIZE(colors);  static size_t cidx = 0;  enum keycodes_keymap { diff --git a/keyboards/ymdk/ymd96/keymaps/AnthonyWharton/config.h b/keyboards/ymdk/ymd96/keymaps/AnthonyWharton/config.h index e730e99b27..27a2fcd6a7 100644 --- a/keyboards/ymdk/ymd96/keymaps/AnthonyWharton/config.h +++ b/keyboards/ymdk/ymd96/keymaps/AnthonyWharton/config.h @@ -19,36 +19,13 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #pragma once -#define VENDOR_ID       0x20A0 -#define PRODUCT_ID      0x422D -// Edit usbconfig.h to change these. -#define MANUFACTURER    ymdkey -#define PRODUCT         ymd96 - -/* Matrix Size */ -#define MATRIX_ROWS 8 -#define MATRIX_COLS 15 -#define DIODE_DIRECTION COL2ROW -  /* Required for MX Locks installed */  #define LOCKING_SUPPORT_ENABLE  #define LOCKING_RESYNC_ENABLE -#define PREVENT_STUCK_MODIFIERS -#define TAPPING_TOGGLE 3 -#define NO_UART 1 - +#undef BACKLIGHT_LEVELS  #define BACKLIGHT_LEVELS 12 -/* RGB Underglow  */ -// The RGB_DI_PING value seems to be shared between all PS2AVRGB boards. -// The same pin is used on the JJ40, at least. -#define RGBLED_NUM 18 -#define RGB_DI_PIN E2 // NOTE: for PS2AVRGB boards, underglow commands are send -                      //       via I2C to 0xB0 - -#define RGBLIGHT_ANIMATIONS -  #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1.0-2.7  #define RGBLIGHT_EFFECT_BREATHE_MAX 255     // 1-255  #define RGBLIGHT_EFFECT_SNAKE_LENGTH 7 diff --git a/layouts/community/ergodox/drashna/config.h b/layouts/community/ergodox/drashna/config.h index d669f27298..aa1d05779b 100644 --- a/layouts/community/ergodox/drashna/config.h +++ b/layouts/community/ergodox/drashna/config.h @@ -28,7 +28,7 @@  #endif  // RGBLIGHT_ENABLE  #undef PRODUCT -#define PRODUCT DrashnaDox - Hacked ErgoDox EZ Hybrid Monstrosity +#define PRODUCT "DrashnaDox - Hacked ErgoDox EZ Hybrid Monstrosity"  #undef DEBOUNCE  #define DEBOUNCE 20 diff --git a/layouts/community/ergodox/jjerrell/config.h b/layouts/community/ergodox/jjerrell/config.h index 8223108d15..6aeaef35ce 100644 --- a/layouts/community/ergodox/jjerrell/config.h +++ b/layouts/community/ergodox/jjerrell/config.h @@ -17,5 +17,5 @@  #ifdef KEYBOARD_ergodox_ez  #undef   PRODUCT -#define  PRODUCT  ErgoDox EZ - Modified by <@jjerrell> +#define  PRODUCT  "ErgoDox EZ - Modified by <@jjerrell>"  #endif diff --git a/layouts/community/ergodox/meagerfindings/config.h b/layouts/community/ergodox/meagerfindings/config.h index d69aaf79dd..28a92e2bf6 100644 --- a/layouts/community/ergodox/meagerfindings/config.h +++ b/layouts/community/ergodox/meagerfindings/config.h @@ -5,9 +5,9 @@  #undef DEVICE_VER  #define DEVICE_VER      0x0001  #undef MANUFACTURER -#define MANUFACTURER    meagerfindings +#define MANUFACTURER    "meagerfindings"  #undef PRODUCT -#define PRODUCT         ErgoDox +#define PRODUCT         "ErgoDox"  #define USB_MAX_POWER_CONSUMPTION 500 diff --git a/layouts/community/numpad_5x6/drashna/config.h b/layouts/community/numpad_5x6/drashna/config.h index aa0c201232..83e8766b27 100644 --- a/layouts/community/numpad_5x6/drashna/config.h +++ b/layouts/community/numpad_5x6/drashna/config.h @@ -32,5 +32,5 @@  #if defined(KEYBOARD_primekb_prime_m)  #    undef PRODUCT -#    define PRODUCT Drashna Hacked Prime_M Macro Pad +#    define PRODUCT "Drashna Hacked Prime_M Macro Pad"  #endif diff --git a/layouts/community/ortho_4x12/drashna/config.h b/layouts/community/ortho_4x12/drashna/config.h index d6197ece29..0b10a64eaa 100644 --- a/layouts/community/ortho_4x12/drashna/config.h +++ b/layouts/community/ortho_4x12/drashna/config.h @@ -70,11 +70,11 @@  #if defined(KEYBOARD_planck)  #    undef PRODUCT  #    if defined(KEYBOARD_planck_light) -#        define PRODUCT Drashna Hacked RGB Beacon(Planck Light) +#        define PRODUCT "Drashna Hacked RGB Beacon(Planck Light)"  #    elif defined(KEYBOARD_planck_rev6) -#        define PRODUCT Drashna Hacked Planck Rev6 +#        define PRODUCT "Drashna Hacked Planck Rev6"  #    elif defined(KEYBOARD_planck_ez) -#        define PRODUCT Drashna Hacked Planck EZ +#        define PRODUCT "Drashna Hacked Planck EZ"  #        define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 4095  #    endif  #endif diff --git a/layouts/community/ortho_4x12/jjerrell/config.h b/layouts/community/ortho_4x12/jjerrell/config.h index aee885b8d0..8d2080d868 100644 --- a/layouts/community/ortho_4x12/jjerrell/config.h +++ b/layouts/community/ortho_4x12/jjerrell/config.h @@ -32,7 +32,7 @@  #ifdef KEYBOARD_planck_ez_glow  #undef   PRODUCT -#define  PRODUCT  Planck EZ Glow - Modified by <@jjerrell> +#define  PRODUCT  "Planck EZ Glow - Modified by <@jjerrell>"  #endif  /* diff --git a/layouts/community/split_3x6_3/bbaserdem/config.h b/layouts/community/split_3x6_3/bbaserdem/config.h index adf707d1ba..1d269335fe 100644 --- a/layouts/community/split_3x6_3/bbaserdem/config.h +++ b/layouts/community/split_3x6_3/bbaserdem/config.h @@ -26,9 +26,9 @@      // Rebrand the PCB  #   undef PRODUCT -#   define PRODUCT Protorne Keyboard +#   define PRODUCT "Protorne Keyboard"  #   undef MANUFACTURER -#   define MANUFACTURER Waffles +#   define MANUFACTURER "Waffles"      // Remove OLED definitions?   #   undef USE_I2C diff --git a/layouts/community/split_3x6_3/drashna/config.h b/layouts/community/split_3x6_3/drashna/config.h index cfcb873a80..a84d6eef2e 100644 --- a/layouts/community/split_3x6_3/drashna/config.h +++ b/layouts/community/split_3x6_3/drashna/config.h @@ -87,9 +87,9 @@  #undef PRODUCT  #ifdef CONVERT_TO_PROTON_C -#    define PRODUCT Drashna Hacked ARM Corne Keyboard +#    define PRODUCT "Drashna Hacked ARM Corne Keyboard"  #else -#    define PRODUCT Drashna Hacked Corne Keyboard +#    define PRODUCT "Drashna Hacked Corne Keyboard"  #endif  #define TAPPING_TERM_PER_KEY diff --git a/lib/python/qmk/cli/generate/config_h.py b/lib/python/qmk/cli/generate/config_h.py index a26dcdf7d7..a2178bf1e9 100755 --- a/lib/python/qmk/cli/generate/config_h.py +++ b/lib/python/qmk/cli/generate/config_h.py @@ -117,9 +117,10 @@ def generate_config_items(kb_info_json, config_h_lines):                  config_h_lines.append(f'#   define {key} {value}')                  config_h_lines.append(f'#endif // {key}')          elif key_type == 'str': +            escaped_str = config_value.replace('\\', '\\\\').replace('"', '\\"')              config_h_lines.append('')              config_h_lines.append(f'#ifndef {config_key}') -            config_h_lines.append(f'#   define {config_key} "{config_value}"') +            config_h_lines.append(f'#   define {config_key} "{escaped_str}"')              config_h_lines.append(f'#endif // {config_key}')          elif key_type == 'bcd_version':              (major, minor, revision) = config_value.split('.') diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index c95b55916c..637a27b764 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -479,7 +479,7 @@ def _config_to_json(key_type, config_value):          return int(config_value)      elif key_type == 'str': -        return config_value.strip('"') +        return config_value.strip('"').replace('\\"', '"').replace('\\\\', '\\')      elif key_type == 'bcd_version':          major = int(config_value[2:4]) @@ -755,9 +755,6 @@ def arm_processor_rules(info_data, rules):      info_data['processor_type'] = 'arm'      info_data['protocol'] = 'ChibiOS' -    if 'bootloader' not in info_data: -        info_data['bootloader'] = 'unknown' -      if 'STM32' in info_data['processor']:          info_data['platform'] = 'STM32'      elif 'MCU_SERIES' in rules: @@ -775,9 +772,6 @@ def avr_processor_rules(info_data, rules):      info_data['platform'] = rules['ARCH'] if 'ARCH' in rules else 'unknown'      info_data['protocol'] = 'V-USB' if rules.get('MCU') in VUSB_PROCESSORS else 'LUFA' -    if 'bootloader' not in info_data: -        info_data['bootloader'] = 'atmel-dfu' -      # FIXME(fauxpark/anyone): Eventually we should detect the protocol by looking at PROTOCOL inherited from mcu_selection.mk:      # info_data['protocol'] = 'V-USB' if rules.get('PROTOCOL') == 'VUSB' else 'LUFA' diff --git a/lib/python/qmk/keymap.py b/lib/python/qmk/keymap.py index f317f4d11e..fc1421962f 100644 --- a/lib/python/qmk/keymap.py +++ b/lib/python/qmk/keymap.py @@ -412,7 +412,7 @@ def list_keymaps(keyboard, c=True, json=True, additional_files=None, fullpath=Fa      rules = rules_mk(keyboard)      names = set() -    if rules: +    if rules is not None:          keyboards_dir = Path('keyboards')          kb_path = keyboards_dir / keyboard diff --git a/lib/python/qmk/tests/test_cli_commands.py b/lib/python/qmk/tests/test_cli_commands.py index fde8b079a3..185abb5f21 100644 --- a/lib/python/qmk/tests/test_cli_commands.py +++ b/lib/python/qmk/tests/test_cli_commands.py @@ -265,8 +265,8 @@ def test_generate_config_h():      check_returncode(result)      assert '#   define DEVICE_VER 0x0001' in result.stdout      assert '#   define DIODE_DIRECTION COL2ROW' in result.stdout -    assert '#   define MANUFACTURER none' in result.stdout -    assert '#   define PRODUCT pytest' in result.stdout +    assert '#   define MANUFACTURER "none"' in result.stdout +    assert '#   define PRODUCT "pytest"' in result.stdout      assert '#   define PRODUCT_ID 0x6465' in result.stdout      assert '#   define VENDOR_ID 0xFEED' in result.stdout      assert '#   define MATRIX_COLS 1' in result.stdout diff --git a/lib/usbhost/USB_Host_Shield_2.0/SPP.cpp b/lib/usbhost/USB_Host_Shield_2.0/SPP.cpp index 0f4ee5e981..8169707661 100644 --- a/lib/usbhost/USB_Host_Shield_2.0/SPP.cpp +++ b/lib/usbhost/USB_Host_Shield_2.0/SPP.cpp @@ -757,7 +757,7 @@ size_t SPP::write(const uint8_t *data, size_t size) {  void SPP::write(const uint8_t *data, size_t size) {  #endif          for(uint8_t i = 0; i < size; i++) { -                if(sppIndex >= sizeof (sppOutputBuffer) / sizeof (sppOutputBuffer[0])) +                if(sppIndex >= ARRAY_SIZE(sppOutputBuffer))                          send(); // Send the current data in the buffer                  sppOutputBuffer[sppIndex++] = data[i]; // All the bytes are put into a buffer and then send using the send() function          } diff --git a/lib/usbhost/USB_Host_Shield_2.0/examples/Bluetooth/PS3Multi/PS3Multi.ino b/lib/usbhost/USB_Host_Shield_2.0/examples/Bluetooth/PS3Multi/PS3Multi.ino index 5ebfd7819c..11833334d0 100644 --- a/lib/usbhost/USB_Host_Shield_2.0/examples/Bluetooth/PS3Multi/PS3Multi.ino +++ b/lib/usbhost/USB_Host_Shield_2.0/examples/Bluetooth/PS3Multi/PS3Multi.ino @@ -19,7 +19,7 @@ USB Usb;  BTD Btd(&Usb); // You have to create the Bluetooth Dongle instance like so  PS3BT *PS3[2]; // We will use this pointer to store the two instance, you can easily make it larger if you like, but it will use a lot of RAM! -const uint8_t length = sizeof(PS3) / sizeof(PS3[0]); // Get the lenght of the array +const uint8_t length = ARRAY_SIZE(PS3); // Get the lenght of the array  bool printAngle[length];  bool oldControllerState[length]; diff --git a/lib/usbhost/USB_Host_Shield_2.0/examples/Bluetooth/WiiMulti/WiiMulti.ino b/lib/usbhost/USB_Host_Shield_2.0/examples/Bluetooth/WiiMulti/WiiMulti.ino index 07c6f13d2b..93cd084651 100644 --- a/lib/usbhost/USB_Host_Shield_2.0/examples/Bluetooth/WiiMulti/WiiMulti.ino +++ b/lib/usbhost/USB_Host_Shield_2.0/examples/Bluetooth/WiiMulti/WiiMulti.ino @@ -19,7 +19,7 @@ USB Usb;  BTD Btd(&Usb); // You have to create the Bluetooth Dongle instance like so  WII *Wii[2]; // We will use this pointer to store the two instance, you can easily make it larger if you like, but it will use a lot of RAM! -const uint8_t length = sizeof(Wii) / sizeof(Wii[0]); // Get the lenght of the array +const uint8_t length = ARRAY_SIZE(Wii); // Get the lenght of the array  bool printAngle[length];  bool oldControllerState[length]; diff --git a/lib/usbhost/USB_Host_Shield_2.0/examples/HID/le3dp/le3dp_rptparser.h b/lib/usbhost/USB_Host_Shield_2.0/examples/HID/le3dp/le3dp_rptparser.h index 2400364e65..05dab14afe 100644 --- a/lib/usbhost/USB_Host_Shield_2.0/examples/HID/le3dp/le3dp_rptparser.h +++ b/lib/usbhost/USB_Host_Shield_2.0/examples/HID/le3dp/le3dp_rptparser.h @@ -25,7 +25,7 @@ public:  	virtual void OnGamePadChanged(const GamePadEventData *evt);  }; -#define RPT_GAMEPAD_LEN	sizeof(GamePadEventData)/sizeof(uint8_t) +#define RPT_GAMEPAD_LEN	sizeof(GamePadEventData)  class JoystickReportParser : public HIDReportParser  { diff --git a/lib/usbhost/USB_Host_Shield_2.0/examples/HID/scale/scale_rptparser.h b/lib/usbhost/USB_Host_Shield_2.0/examples/HID/scale/scale_rptparser.h index 57fbb033bf..7af18b88f7 100644 --- a/lib/usbhost/USB_Host_Shield_2.0/examples/HID/scale/scale_rptparser.h +++ b/lib/usbhost/USB_Host_Shield_2.0/examples/HID/scale/scale_rptparser.h @@ -38,7 +38,7 @@ public:  	virtual void OnScaleChanged(const ScaleEventData *evt);  }; -#define RPT_SCALE_LEN	sizeof(ScaleEventData)/sizeof(uint8_t) +#define RPT_SCALE_LEN	sizeof(ScaleEventData)  class ScaleReportParser : public HIDReportParser  { diff --git a/platforms/arm_atsam/bootloader.mk b/platforms/arm_atsam/bootloader.mk new file mode 100644 index 0000000000..1ec42edeb6 --- /dev/null +++ b/platforms/arm_atsam/bootloader.mk @@ -0,0 +1,46 @@ +# Copyright 2017 Jack Humbert +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program.  If not, see <http://www.gnu.org/licenses/>. + +# If it's possible that multiple bootloaders can be used for one project, +# you can leave this unset, and the correct size will be selected +# automatically. +# +# Sets the bootloader defined in the keyboard's/keymap's rules.mk +# +# Current options for ARM (ATSAM): +#     md-boot      Atmel SAM-BA (only used by Drop boards) +# +# If you need to provide your own implementation, you can set inside `rules.mk` +# `BOOTLOADER = custom` -- you'll need to provide your own implementations. See +# the respective file under `platforms/<PLATFORM>/bootloaders/custom.c` to see +# which functions may be overridden. + +ifeq ($(strip $(BOOTLOADER)), custom) +    OPT_DEFS += -DBOOTLOADER_CUSTOM +    BOOTLOADER_TYPE = custom +endif + +ifeq ($(strip $(BOOTLOADER)), md-boot) +    OPT_DEFS += -DBOOTLOADER_MD_BOOT +    BOOTLOADER_TYPE = md_boot +endif + +ifeq ($(strip $(BOOTLOADER_TYPE)),) +    ifneq ($(strip $(BOOTLOADER)),) +        $(call CATASTROPHIC_ERROR,Invalid BOOTLOADER,Invalid bootloader specified. Please set an appropriate bootloader in your rules.mk or info.json.) +    else +        $(call CATASTROPHIC_ERROR,Invalid BOOTLOADER,No bootloader specified. Please set an appropriate bootloader in your rules.mk or info.json.) +    endif +endif diff --git a/builddefs/bootloader.mk b/platforms/avr/bootloader.mk index 9f55536423..63fe635d96 100644 --- a/builddefs/bootloader.mk +++ b/platforms/avr/bootloader.mk @@ -18,9 +18,8 @@  # automatically.  #  # Sets the bootloader defined in the keyboard's/keymap's rules.mk -# Current options:  # -# AVR: +# Current options for AVR:  #     halfkay      PJRC Teensy  #     caterina     Pro Micro (Sparkfun/generic)  #     atmel-dfu    Atmel factory DFU @@ -29,14 +28,6 @@  #     qmk-hid      QMK HID (LUFA + blinkenlight)  #     bootloadhid  HIDBootFlash compatible (ATmega32A)  #     usbasploader USBaspLoader (ATmega328P) -# ARM: -#     halfkay      PJRC Teensy -#     kiibohd      Input:Club Kiibohd bootloader (only used on their boards) -#     stm32duino   STM32Duino (STM32F103x8) -#     stm32-dfu    STM32 USB DFU in ROM -#     apm32-dfu    APM32 USB DFU in ROM -# RISC-V: -#     gd32v-dfu    GD32V USB DFU in ROM  #  # If you need to provide your own implementation, you can set inside `rules.mk`  # `BOOTLOADER = custom` -- you'll need to provide your own implementations. See @@ -50,6 +41,7 @@ ifeq ($(strip $(BOOTLOADER)), custom)      OPT_DEFS += -DBOOTLOADER_CUSTOM      BOOTLOADER_TYPE = custom  endif +  ifeq ($(strip $(BOOTLOADER)), atmel-dfu)      OPT_DEFS += -DBOOTLOADER_ATMEL_DFU      OPT_DEFS += -DBOOTLOADER_DFU @@ -105,10 +97,6 @@ ifeq ($(strip $(BOOTLOADER)), halfkay)      ifeq ($(strip $(MCU)), at90usb1286)          BOOTLOADER_SIZE = 1024      endif -    # Teensy LC, 3.0, 3.1/2, 3.5, 3.6 -    ifneq (,$(filter $(MCU_ORIG), MKL26Z64 MK20DX128 MK20DX256 MK64FX512 MK66FX1M0)) -        FIRMWARE_FORMAT = hex -    endif  endif  ifeq ($(strip $(BOOTLOADER)), caterina)      OPT_DEFS += -DBOOTLOADER_CATERINA @@ -116,13 +104,13 @@ ifeq ($(strip $(BOOTLOADER)), caterina)      BOOTLOADER_SIZE = 4096  endif -ifneq (,$(filter $(BOOTLOADER), bootloadhid bootloadHID)) +ifeq ($(strip $(BOOTLOADER)), bootloadhid)      OPT_DEFS += -DBOOTLOADER_BOOTLOADHID      BOOTLOADER_TYPE = bootloadhid      BOOTLOADER_SIZE = 4096  endif -ifneq (,$(filter $(BOOTLOADER), usbasploader USBasp)) +ifeq ($(strip $(BOOTLOADER)), usbasploader)      OPT_DEFS += -DBOOTLOADER_USBASP      BOOTLOADER_TYPE = usbasploader @@ -147,77 +135,10 @@ ifdef BOOTLOADER_SIZE      OPT_DEFS += -DBOOTLOADER_SIZE=$(strip $(BOOTLOADER_SIZE))  endif -ifeq ($(strip $(BOOTLOADER)), stm32-dfu) -    OPT_DEFS += -DBOOTLOADER_STM32_DFU -    BOOTLOADER_TYPE = stm32_dfu - -    # Options to pass to dfu-util when flashing -    DFU_ARGS ?= -d 0483:DF11 -a 0 -s 0x08000000:leave -    DFU_SUFFIX_ARGS ?= -v 0483 -p DF11 -endif -ifeq ($(strip $(BOOTLOADER)), apm32-dfu) -    OPT_DEFS += -DBOOTLOADER_APM32_DFU -    BOOTLOADER_TYPE = stm32_dfu - -    # Options to pass to dfu-util when flashing -    DFU_ARGS ?= -d 314B:0106 -a 0 -s 0x08000000:leave -    DFU_SUFFIX_ARGS ?= -v 314B -p 0106 -endif -ifeq ($(strip $(BOOTLOADER)), gd32v-dfu) -    OPT_DEFS += -DBOOTLOADER_GD32V_DFU -    BOOTLOADER_TYPE = gd32v_dfu - -    # Options to pass to dfu-util when flashing -    DFU_ARGS ?= -d 28E9:0189 -a 0 -s 0x08000000:leave -    DFU_SUFFIX_ARGS ?= -v 28E9 -p 0189 -endif -ifeq ($(strip $(BOOTLOADER)), kiibohd) -    OPT_DEFS += -DBOOTLOADER_KIIBOHD -    BOOTLOADER_TYPE = kiibohd - -    ifeq ($(strip $(MCU_ORIG)), MK20DX128) -        MCU_LDSCRIPT = MK20DX128BLDR4 -    endif -    ifeq ($(strip $(MCU_ORIG)), MK20DX256) -        MCU_LDSCRIPT = MK20DX256BLDR8 -    endif - -    # Options to pass to dfu-util when flashing -    DFU_ARGS = -d 1C11:B007 -    DFU_SUFFIX_ARGS = -v 1C11 -p B007 -endif -ifeq ($(strip $(BOOTLOADER)), stm32duino) -    OPT_DEFS += -DBOOTLOADER_STM32DUINO -    MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader -    BOARD = STM32_F103_STM32DUINO -    BOOTLOADER_TYPE = stm32duino - -    # Options to pass to dfu-util when flashing -    DFU_ARGS = -d 1EAF:0003 -a 2 -R -    DFU_SUFFIX_ARGS = -v 1EAF -p 0003 -endif -ifeq ($(strip $(BOOTLOADER)), tinyuf2) -    OPT_DEFS += -DBOOTLOADER_TINYUF2 -    BOOTLOADER_TYPE = tinyuf2 -    FIRMWARE_FORMAT = uf2 -endif -ifeq ($(strip $(BOOTLOADER)), rp2040) -    OPT_DEFS += -DBOOTLOADER_RP2040 -    BOOTLOADER_TYPE = rp2040 -endif -ifeq ($(strip $(BOOTLOADER)), halfkay) -    OPT_DEFS += -DBOOTLOADER_HALFKAY -    BOOTLOADER_TYPE = halfkay -endif -ifeq ($(strip $(BOOTLOADER)), md-boot) -    OPT_DEFS += -DBOOTLOADER_MD_BOOT -    BOOTLOADER_TYPE = md_boot -endif -ifeq ($(strip $(BOOTLOADER)), wb32-dfu) -    OPT_DEFS += -DBOOTLOADER_WB32_DFU -    BOOTLOADER_TYPE = wb32_dfu -endif -  ifeq ($(strip $(BOOTLOADER_TYPE)),) -    $(call CATASTROPHIC_ERROR,Invalid BOOTLOADER,No bootloader specified. Please set an appropriate 'BOOTLOADER' in your keyboard's 'rules.mk' file.) +    ifneq ($(strip $(BOOTLOADER)),) +        $(call CATASTROPHIC_ERROR,Invalid BOOTLOADER,Invalid bootloader specified. Please set an appropriate bootloader in your rules.mk or info.json.) +    else +        $(call CATASTROPHIC_ERROR,Invalid BOOTLOADER,No bootloader specified. Please set an appropriate bootloader in your rules.mk or info.json.) +    endif  endif diff --git a/platforms/avr/flash.mk b/platforms/avr/flash.mk index 6d50e72534..cd980b9733 100644 --- a/platforms/avr/flash.mk +++ b/platforms/avr/flash.mk @@ -177,9 +177,9 @@ else ifeq ($(strip $(BOOTLOADER)), halfkay)  	$(UNSYNC_OUTPUT_CMD) && $(call EXEC_TEENSY)  else ifeq (dfu,$(findstring dfu,$(BOOTLOADER)))  	$(UNSYNC_OUTPUT_CMD) && $(call EXEC_DFU) -else ifneq (,$(filter $(BOOTLOADER), usbasploader USBasp)) +else ifeq ($(strip $(BOOTLOADER)), usbasploader)  	$(UNSYNC_OUTPUT_CMD) && $(call EXEC_USBASP) -else ifneq (,$(filter $(BOOTLOADER), bootloadhid bootloadHID)) +else ifeq ($(strip $(BOOTLOADER)), bootloadhid)  	$(UNSYNC_OUTPUT_CMD) && $(call EXEC_BOOTLOADHID)  else ifeq ($(strip $(BOOTLOADER)), qmk-hid)  	$(UNSYNC_OUTPUT_CMD) && $(call EXEC_HID_LUFA) diff --git a/platforms/chibios/boards/GENERIC_WB32_F3G71XX/board/board.c b/platforms/chibios/boards/GENERIC_WB32_F3G71XX/board/board.c index e38a7e0054..f74c9e8be7 100644 --- a/platforms/chibios/boards/GENERIC_WB32_F3G71XX/board/board.c +++ b/platforms/chibios/boards/GENERIC_WB32_F3G71XX/board/board.c @@ -80,3 +80,7 @@ void __early_init(void) {  void boardInit(void) {  } + +void restart_usb_driver(USBDriver *usbp) { +  // Do nothing. Restarting the USB driver on these boards breaks it. +} diff --git a/platforms/chibios/boards/GENERIC_WB32_FQ95XX/board/board.c b/platforms/chibios/boards/GENERIC_WB32_FQ95XX/board/board.c index 22b4ff73b5..a99537fc27 100644 --- a/platforms/chibios/boards/GENERIC_WB32_FQ95XX/board/board.c +++ b/platforms/chibios/boards/GENERIC_WB32_FQ95XX/board/board.c @@ -80,3 +80,7 @@ void __early_init(void) {  void boardInit(void) {  } + +void restart_usb_driver(USBDriver *usbp) { +  // Do nothing. Restarting the USB driver on these boards breaks it. +} diff --git a/platforms/chibios/boards/GENERIC_WB32_FQ95XX/configs/config.h b/platforms/chibios/boards/GENERIC_WB32_FQ95XX/configs/config.h index e02e526113..d4c7e54642 100644 --- a/platforms/chibios/boards/GENERIC_WB32_FQ95XX/configs/config.h +++ b/platforms/chibios/boards/GENERIC_WB32_FQ95XX/configs/config.h @@ -18,3 +18,5 @@  #ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP  #    define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE  #endif + +#define USB_ENDPOINTS_ARE_REORDERABLE diff --git a/platforms/chibios/bootloader.mk b/platforms/chibios/bootloader.mk new file mode 100644 index 0000000000..0568d35321 --- /dev/null +++ b/platforms/chibios/bootloader.mk @@ -0,0 +1,122 @@ +# Copyright 2017 Jack Humbert +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program.  If not, see <http://www.gnu.org/licenses/>. + +# If it's possible that multiple bootloaders can be used for one project, +# you can leave this unset, and the correct size will be selected +# automatically. +# +# Sets the bootloader defined in the keyboard's/keymap's rules.mk +# +# Current options for ARM: +#     halfkay      PJRC Teensy +#     kiibohd      Input:Club Kiibohd bootloader (only used on their boards) +#     stm32duino   STM32Duino (STM32F103x8) +#     stm32-dfu    STM32 USB DFU in ROM +#     apm32-dfu    APM32 USB DFU in ROM +#     wb32-dfu     WB32 USB DFU in ROM +#     tinyuf2      TinyUF2 +#     rp2040       Raspberry Pi RP2040 +# Current options for RISC-V: +#     gd32v-dfu    GD32V USB DFU in ROM +# +# If you need to provide your own implementation, you can set inside `rules.mk` +# `BOOTLOADER = custom` -- you'll need to provide your own implementations. See +# the respective file under `platforms/<PLATFORM>/bootloaders/custom.c` to see +# which functions may be overridden. + +ifeq ($(strip $(BOOTLOADER)), custom) +    OPT_DEFS += -DBOOTLOADER_CUSTOM +    BOOTLOADER_TYPE = custom +endif + +ifeq ($(strip $(BOOTLOADER)), halfkay) +    OPT_DEFS += -DBOOTLOADER_HALFKAY +    BOOTLOADER_TYPE = halfkay + +    # Teensy LC, 3.0, 3.1/2, 3.5, 3.6 +    ifneq (,$(filter $(MCU_ORIG), MKL26Z64 MK20DX128 MK20DX256 MK64FX512 MK66FX1M0)) +        FIRMWARE_FORMAT = hex +    endif +endif +ifeq ($(strip $(BOOTLOADER)), stm32-dfu) +    OPT_DEFS += -DBOOTLOADER_STM32_DFU +    BOOTLOADER_TYPE = stm32_dfu + +    # Options to pass to dfu-util when flashing +    DFU_ARGS ?= -d 0483:DF11 -a 0 -s 0x08000000:leave +    DFU_SUFFIX_ARGS ?= -v 0483 -p DF11 +endif +ifeq ($(strip $(BOOTLOADER)), apm32-dfu) +    OPT_DEFS += -DBOOTLOADER_APM32_DFU +    BOOTLOADER_TYPE = stm32_dfu + +    # Options to pass to dfu-util when flashing +    DFU_ARGS ?= -d 314B:0106 -a 0 -s 0x08000000:leave +    DFU_SUFFIX_ARGS ?= -v 314B -p 0106 +endif +ifeq ($(strip $(BOOTLOADER)), gd32v-dfu) +    OPT_DEFS += -DBOOTLOADER_GD32V_DFU +    BOOTLOADER_TYPE = gd32v_dfu + +    # Options to pass to dfu-util when flashing +    DFU_ARGS ?= -d 28E9:0189 -a 0 -s 0x08000000:leave +    DFU_SUFFIX_ARGS ?= -v 28E9 -p 0189 +endif +ifeq ($(strip $(BOOTLOADER)), kiibohd) +    OPT_DEFS += -DBOOTLOADER_KIIBOHD +    BOOTLOADER_TYPE = kiibohd + +    ifeq ($(strip $(MCU_ORIG)), MK20DX128) +        MCU_LDSCRIPT = MK20DX128BLDR4 +    endif +    ifeq ($(strip $(MCU_ORIG)), MK20DX256) +        MCU_LDSCRIPT = MK20DX256BLDR8 +    endif + +    # Options to pass to dfu-util when flashing +    DFU_ARGS = -d 1C11:B007 +    DFU_SUFFIX_ARGS = -v 1C11 -p B007 +endif +ifeq ($(strip $(BOOTLOADER)), stm32duino) +    OPT_DEFS += -DBOOTLOADER_STM32DUINO +    MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader +    BOARD = STM32_F103_STM32DUINO +    BOOTLOADER_TYPE = stm32duino + +    # Options to pass to dfu-util when flashing +    DFU_ARGS = -d 1EAF:0003 -a 2 -R +    DFU_SUFFIX_ARGS = -v 1EAF -p 0003 +endif +ifeq ($(strip $(BOOTLOADER)), tinyuf2) +    OPT_DEFS += -DBOOTLOADER_TINYUF2 +    BOOTLOADER_TYPE = tinyuf2 +    FIRMWARE_FORMAT = uf2 +endif +ifeq ($(strip $(BOOTLOADER)), rp2040) +    OPT_DEFS += -DBOOTLOADER_RP2040 +    BOOTLOADER_TYPE = rp2040 +endif +ifeq ($(strip $(BOOTLOADER)), wb32-dfu) +    OPT_DEFS += -DBOOTLOADER_WB32_DFU +    BOOTLOADER_TYPE = wb32_dfu +endif + +ifeq ($(strip $(BOOTLOADER_TYPE)),) +    ifneq ($(strip $(BOOTLOADER)),) +        $(call CATASTROPHIC_ERROR,Invalid BOOTLOADER,Invalid bootloader specified. Please set an appropriate bootloader in your rules.mk or info.json.) +    else +        $(call CATASTROPHIC_ERROR,Invalid BOOTLOADER,No bootloader specified. Please set an appropriate bootloader in your rules.mk or info.json.) +    endif +endif diff --git a/platforms/chibios/drivers/ws2812_spi.c b/platforms/chibios/drivers/ws2812_spi.c index a73eb69720..390884a2a4 100644 --- a/platforms/chibios/drivers/ws2812_spi.c +++ b/platforms/chibios/drivers/ws2812_spi.c @@ -181,7 +181,7 @@ void ws2812_init(void) {      spiStart(&WS2812_SPI, &spicfg); /* Setup transfer parameters.       */      spiSelect(&WS2812_SPI);         /* Slave Select assertion.          */  #ifdef WS2812_SPI_USE_CIRCULAR_BUFFER -    spiStartSend(&WS2812_SPI, sizeof(txbuf) / sizeof(txbuf[0]), txbuf); +    spiStartSend(&WS2812_SPI, ARRAY_SIZE(txbuf), txbuf);  #endif  } @@ -200,9 +200,9 @@ void ws2812_setleds(LED_TYPE* ledarray, uint16_t leds) {      // Instead spiSend can be used to send synchronously (or the thread logic can be added back).  #ifndef WS2812_SPI_USE_CIRCULAR_BUFFER  #    ifdef WS2812_SPI_SYNC -    spiSend(&WS2812_SPI, sizeof(txbuf) / sizeof(txbuf[0]), txbuf); +    spiSend(&WS2812_SPI, ARRAY_SIZE(txbuf), txbuf);  #    else -    spiStartSend(&WS2812_SPI, sizeof(txbuf) / sizeof(txbuf[0]), txbuf); +    spiStartSend(&WS2812_SPI, ARRAY_SIZE(txbuf), txbuf);  #    endif  #endif  } diff --git a/quantum/backlight/backlight_driver_common.c b/quantum/backlight/backlight_driver_common.c index e4c2e90b5f..1eb8969084 100644 --- a/quantum/backlight/backlight_driver_common.c +++ b/quantum/backlight/backlight_driver_common.c @@ -9,7 +9,7 @@  #if defined(BACKLIGHT_PINS)  static const pin_t backlight_pins[] = BACKLIGHT_PINS;  #    ifndef BACKLIGHT_LED_COUNT -#        define BACKLIGHT_LED_COUNT (sizeof(backlight_pins) / sizeof(pin_t)) +#        define BACKLIGHT_LED_COUNT ARRAY_SIZE(backlight_pins)  #    endif  #    define FOR_EACH_LED(x)                                 \ diff --git a/quantum/backlight/backlight_software.c b/quantum/backlight/backlight_software.c index 3d412cab52..27ccbd2c9f 100644 --- a/quantum/backlight/backlight_software.c +++ b/quantum/backlight/backlight_software.c @@ -26,7 +26,7 @@ static const uint16_t backlight_duty_table[] = {      0b1110111011101110,      0b1111111111111111,  }; -#define backlight_duty_table_size (sizeof(backlight_duty_table) / sizeof(backlight_duty_table[0])) +#define backlight_duty_table_size ARRAY_SIZE(backlight_duty_table)  // clang-format on diff --git a/quantum/dip_switch.c b/quantum/dip_switch.c index eee29aaf91..e180cfccdf 100644 --- a/quantum/dip_switch.c +++ b/quantum/dip_switch.c @@ -33,7 +33,7 @@  #endif  #ifdef DIP_SWITCH_PINS -#    define NUMBER_OF_DIP_SWITCHES (sizeof(dip_switch_pad) / sizeof(pin_t)) +#    define NUMBER_OF_DIP_SWITCHES (ARRAY_SIZE(dip_switch_pad))  static pin_t dip_switch_pad[] = DIP_SWITCH_PINS;  #endif @@ -43,7 +43,7 @@ typedef struct matrix_index_t {      uint8_t col;  } matrix_index_t; -#    define NUMBER_OF_DIP_SWITCHES (sizeof(dip_switch_pad) / sizeof(matrix_index_t)) +#    define NUMBER_OF_DIP_SWITCHES (ARRAY_SIZE(dip_switch_pad))  static matrix_index_t dip_switch_pad[] = DIP_SWITCH_MATRIX_GRID;  extern bool           peek_matrix(uint8_t row_index, uint8_t col_index, bool read_raw);  static uint16_t       scan_count; diff --git a/quantum/encoder.c b/quantum/encoder.c index 5f8a7ce080..1393e34868 100644 --- a/quantum/encoder.c +++ b/quantum/encoder.c @@ -24,7 +24,8 @@  #include <string.h>  #ifndef ENCODER_MAP_KEY_DELAY -#    define ENCODER_MAP_KEY_DELAY 2 +#    include "action.h" +#    define ENCODER_MAP_KEY_DELAY TAP_CODE_DELAY  #endif  #if !defined(ENCODER_RESOLUTIONS) && !defined(ENCODER_RESOLUTION) @@ -143,9 +144,14 @@ void encoder_init(void) {  static void encoder_exec_mapping(uint8_t index, bool clockwise) {      // The delays below cater for Windows and its wonderful requirements.      action_exec(clockwise ? ENCODER_CW_EVENT(index, true) : ENCODER_CCW_EVENT(index, true)); +#    if ENCODER_MAP_KEY_DELAY > 0      wait_ms(ENCODER_MAP_KEY_DELAY); +#    endif // ENCODER_MAP_KEY_DELAY > 0 +      action_exec(clockwise ? ENCODER_CW_EVENT(index, false) : ENCODER_CCW_EVENT(index, false)); +#    if ENCODER_MAP_KEY_DELAY > 0      wait_ms(ENCODER_MAP_KEY_DELAY); +#    endif // ENCODER_MAP_KEY_DELAY > 0  }  #endif // ENCODER_MAP_ENABLE diff --git a/quantum/encoder.h b/quantum/encoder.h index 82f95b4931..4eb67fa25d 100644 --- a/quantum/encoder.h +++ b/quantum/encoder.h @@ -32,17 +32,17 @@ void encoder_state_raw(uint8_t* slave_state);  void encoder_update_raw(uint8_t* slave_state);  #    if defined(ENCODERS_PAD_A_RIGHT) -#        define NUM_ENCODERS_LEFT (sizeof(((pin_t[])ENCODERS_PAD_A)) / sizeof(pin_t)) -#        define NUM_ENCODERS_RIGHT (sizeof(((pin_t[])ENCODERS_PAD_A_RIGHT)) / sizeof(pin_t)) +#        define NUM_ENCODERS_LEFT ARRAY_SIZE(((pin_t[])ENCODERS_PAD_A)) +#        define NUM_ENCODERS_RIGHT ARRAY_SIZE(((pin_t[])ENCODERS_PAD_A_RIGHT))  #    else -#        define NUM_ENCODERS_LEFT (sizeof(((pin_t[])ENCODERS_PAD_A)) / sizeof(pin_t)) +#        define NUM_ENCODERS_LEFT ARRAY_SIZE(((pin_t[])ENCODERS_PAD_A))  #        define NUM_ENCODERS_RIGHT NUM_ENCODERS_LEFT  #    endif  #    define NUM_ENCODERS (NUM_ENCODERS_LEFT + NUM_ENCODERS_RIGHT)  #else // SPLIT_KEYBOARD -#    define NUM_ENCODERS (sizeof(((pin_t[])ENCODERS_PAD_A)) / sizeof(pin_t)) +#    define NUM_ENCODERS ARRAY_SIZE(((pin_t[])ENCODERS_PAD_A))  #    define NUM_ENCODERS_LEFT NUM_ENCODERS  #    define NUM_ENCODERS_RIGHT 0 diff --git a/quantum/pointing_device/pointing_device.c b/quantum/pointing_device/pointing_device.c index 505a7a6ffd..ae3f122e89 100644 --- a/quantum/pointing_device/pointing_device.c +++ b/quantum/pointing_device/pointing_device.c @@ -166,11 +166,9 @@ __attribute__((weak)) void pointing_device_send(void) {          host_mouse_send(&local_mouse_report);      }      // send it and 0 it out except for buttons, so those stay until they are explicity over-ridden using update_pointing_device -    local_mouse_report.x = 0; -    local_mouse_report.y = 0; -    local_mouse_report.v = 0; -    local_mouse_report.h = 0; - +    uint8_t buttons = local_mouse_report.buttons; +    memset(&local_mouse_report, 0, sizeof(local_mouse_report)); +    local_mouse_report.buttons = buttons;      memcpy(&old_report, &local_mouse_report, sizeof(local_mouse_report));  } diff --git a/quantum/pointing_device/pointing_device_drivers.c b/quantum/pointing_device/pointing_device_drivers.c index b96f8ff4b3..096ad5d028 100644 --- a/quantum/pointing_device/pointing_device_drivers.c +++ b/quantum/pointing_device/pointing_device_drivers.c @@ -17,6 +17,7 @@   */  #include "pointing_device.h" +#include "pointing_device_internal.h"  #include "debug.h"  #include "wait.h"  #include "timer.h" @@ -32,10 +33,7 @@ report_mouse_t adns5050_get_report(report_mouse_t mouse_report) {      report_adns5050_t data = adns5050_read_burst();      if (data.dx != 0 || data.dy != 0) { -#    ifdef CONSOLE_ENABLE -        if (debug_mouse) dprintf("Raw ] X: %d, Y: %d\n", data.dx, data.dy); -#    endif - +        pd_dprintf("Raw ] X: %d, Y: %d\n", data.dx, data.dy);          mouse_report.x = (mouse_xy_report_t)data.dx;          mouse_report.y = (mouse_xy_report_t)data.dy;      } @@ -76,9 +74,7 @@ const pointing_device_driver_t pointing_device_driver = {  report_mouse_t analog_joystick_get_report(report_mouse_t mouse_report) {      report_analog_joystick_t data = analog_joystick_read(); -#    ifdef CONSOLE_ENABLE -    if (debug_mouse) dprintf("Raw ] X: %d, Y: %d\n", data.x, data.y); -#    endif +    pd_dprintf("Raw ] X: %d, Y: %d\n", data.x, data.y);      mouse_report.x = data.x;      mouse_report.y = data.y; @@ -140,11 +136,9 @@ report_mouse_t cirque_pinnacle_get_report(report_mouse_t mouse_report) {          return mouse_report;      } -#        if CONSOLE_ENABLE -    if (debug_mouse && touchData.touchDown) { -        dprintf("cirque_pinnacle touchData x=%4d y=%4d z=%2d\n", touchData.xValue, touchData.yValue, touchData.zValue); +    if (touchData.touchDown) { +        pd_dprintf("cirque_pinnacle touchData x=%4d y=%4d z=%2d\n", touchData.xValue, touchData.yValue, touchData.zValue);      } -#        endif      // Scale coordinates to arbitrary X, Y resolution      cirque_pinnacle_scale_data(&touchData, cirque_pinnacle_get_scale(), cirque_pinnacle_get_scale()); @@ -227,9 +221,7 @@ const pointing_device_driver_t pointing_device_driver = {  report_mouse_t paw3204_get_report(report_mouse_t mouse_report) {      report_paw3204_t data = paw3204_read();      if (data.isMotion) { -#    ifdef CONSOLE_ENABLE -        dprintf("Raw ] X: %d, Y: %d\n", data.x, data.y); -#    endif +        pd_dprintf("Raw ] X: %d, Y: %d\n", data.x, data.y);          mouse_report.x = data.x;          mouse_report.y = data.y; @@ -329,7 +321,7 @@ report_mouse_t pmw33xx_get_report(report_mouse_t mouse_report) {      if (!in_motion) {          in_motion = true; -        dprintf("PWM3360 (0): starting motion\n"); +        pd_dprintf("PWM3360 (0): starting motion\n");      }      mouse_report.x = CONSTRAIN_HID_XY(report.delta_x); diff --git a/quantum/pointing_device_internal.h b/quantum/pointing_device_internal.h new file mode 100644 index 0000000000..ef649407ca --- /dev/null +++ b/quantum/pointing_device_internal.h @@ -0,0 +1,14 @@ +// Copyright 2022 Stefan Kerkmann +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#ifdef POINTING_DEVICE_DEBUG +#    include "debug.h" +#    include "print.h" +#    define pd_dprintf(...) dprintf(__VA_ARGS__) +#else +#    define pd_dprintf(...) \ +        do {                \ +        } while (0) +#endif diff --git a/quantum/process_keycode/process_leader.c b/quantum/process_keycode/process_leader.c index ae00b3227a..3593f75f0d 100644 --- a/quantum/process_keycode/process_leader.c +++ b/quantum/process_keycode/process_leader.c @@ -58,7 +58,7 @@ bool process_leader(uint16_t keycode, keyrecord_t *record) {                      keycode = keycode & 0xFF;                  }  #    endif // LEADER_KEY_STRICT_KEY_PROCESSING -                if (leader_sequence_size < (sizeof(leader_sequence) / sizeof(leader_sequence[0]))) { +                if (leader_sequence_size < ARRAY_SIZE(leader_sequence)) {                      leader_sequence[leader_sequence_size] = keycode;                      leader_sequence_size++;                  } else { diff --git a/quantum/process_keycode/process_unicode_common.c b/quantum/process_keycode/process_unicode_common.c index 8de31c055c..94809cf029 100644 --- a/quantum/process_keycode/process_unicode_common.c +++ b/quantum/process_keycode/process_unicode_common.c @@ -25,10 +25,24 @@ bool             unicode_saved_num_lock;  #if UNICODE_SELECTED_MODES != -1  static uint8_t selected[]     = {UNICODE_SELECTED_MODES}; -static int8_t  selected_count = sizeof selected / sizeof *selected; +static int8_t  selected_count = ARRAY_SIZE(selected);  static int8_t  selected_index;  #endif +/** \brief Uunicode input mode set at user level + * + * Run user code on unicode input mode change + */ +__attribute__((weak)) void unicode_input_mode_set_user(uint8_t input_mode) {} + +/** \brief unicode input mode set at keyboard level + * + *  Run keyboard code on unicode input mode change + */ +__attribute__((weak)) void unicode_input_mode_set_kb(uint8_t input_mode) { +    unicode_input_mode_set_user(input_mode); +} +  void unicode_input_mode_init(void) {      unicode_config.raw = eeprom_read_byte(EECONFIG_UNICODEMODE);  #if UNICODE_SELECTED_MODES != -1 @@ -50,6 +64,7 @@ void unicode_input_mode_init(void) {      unicode_config.input_mode = selected[selected_index = 0];  #    endif  #endif +    unicode_input_mode_set_kb(unicode_config.input_mode);      dprintf("Unicode input mode init to: %u\n", unicode_config.input_mode);  } @@ -60,6 +75,7 @@ uint8_t get_unicode_input_mode(void) {  void set_unicode_input_mode(uint8_t mode) {      unicode_config.input_mode = mode;      persist_unicode_input_mode(); +    unicode_input_mode_set_kb(mode);      dprintf("Unicode input mode set to: %u\n", unicode_config.input_mode);  } @@ -73,6 +89,7 @@ void cycle_unicode_input_mode(int8_t offset) {  #    if UNICODE_CYCLE_PERSIST      persist_unicode_input_mode();  #    endif +    unicode_input_mode_set_kb(unicode_config.input_mode);      dprintf("Unicode input mode cycle to: %u\n", unicode_config.input_mode);  #endif  } diff --git a/quantum/process_keycode/process_unicode_common.h b/quantum/process_keycode/process_unicode_common.h index 15e798dbb3..bdc7a1dedd 100644 --- a/quantum/process_keycode/process_unicode_common.h +++ b/quantum/process_keycode/process_unicode_common.h @@ -87,6 +87,9 @@ void unicode_input_start(void);  void unicode_input_finish(void);  void unicode_input_cancel(void); +void unicode_input_mode_set_user(uint8_t input_mode); +void unicode_input_mode_set_kb(uint8_t input_mode); +  void register_hex(uint16_t hex);  void register_hex32(uint32_t hex);  void register_unicode(uint32_t code_point); diff --git a/quantum/quantum.c b/quantum/quantum.c index 9a0016b150..acafd8025c 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -361,8 +361,10 @@ bool process_record_quantum(keyrecord_t *record) {  #endif                  return false;              case QK_CLEAR_EEPROM: +#ifdef NO_RESET                  eeconfig_init(); -#ifndef NO_RESET +#else +                eeconfig_disable();                  soft_reset_keyboard();  #endif                  return false; diff --git a/quantum/rgb_matrix/rgb_matrix_drivers.c b/quantum/rgb_matrix/rgb_matrix_drivers.c index 27fa7369bf..99151e5a92 100644 --- a/quantum/rgb_matrix/rgb_matrix_drivers.c +++ b/quantum/rgb_matrix/rgb_matrix_drivers.c @@ -369,7 +369,7 @@ static inline void setled(int i, uint8_t r, uint8_t g, uint8_t b) {  }  static void setled_all(uint8_t r, uint8_t g, uint8_t b) { -    for (int i = 0; i < sizeof(rgb_matrix_ws2812_array) / sizeof(rgb_matrix_ws2812_array[0]); i++) { +    for (int i = 0; i < ARRAY_SIZE(rgb_matrix_ws2812_array); i++) {          setled(i, r, g, b);      }  } diff --git a/quantum/secure.c b/quantum/secure.c index f07f6af2cb..f2a567f31d 100644 --- a/quantum/secure.c +++ b/quantum/secure.c @@ -3,6 +3,7 @@  #include "secure.h"  #include "timer.h" +#include "util.h"  #ifndef SECURE_UNLOCK_TIMEOUT  #    define SECURE_UNLOCK_TIMEOUT 5000 @@ -59,7 +60,7 @@ void secure_activity_event(void) {  void secure_keypress_event(uint8_t row, uint8_t col) {      static const uint8_t sequence[][2] = SECURE_UNLOCK_SEQUENCE; -    static const uint8_t sequence_len  = sizeof(sequence) / sizeof(sequence[0]); +    static const uint8_t sequence_len  = ARRAY_SIZE(sequence);      static uint8_t offset = 0;      if ((sequence[offset][0] == row) && (sequence[offset][1] == col)) { diff --git a/quantum/util.h b/quantum/util.h index ab96ce4bde..9c034cc404 100644 --- a/quantum/util.h +++ b/quantum/util.h @@ -1,26 +1,11 @@ -/* -Copyright 2011 Jun Wako <[email protected]> - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program.  If not, see <http://www.gnu.org/licenses/>. -*/ +// Copyright 2022 Stefan Kerkmann (KarlK90) +// Copyright 2011 Jun Wako <[email protected]> +// SPDX-License-Identifier: GPL-2.0-or-later +  #pragma once  #include "bitwise.h" -// convert to L string -#define LSTR(s) XLSTR(s) -#define XLSTR(s) L## #s  // convert to string  #define STR(s) XSTR(s)  #define XSTR(s) #s @@ -32,3 +17,32 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #if !defined(MAX)  #    define MAX(x, y) (((x) > (y)) ? (x) : (y))  #endif + +#if !defined(CEILING) +/** + * @brief Computes the rounded up result of a division of two integers at + * compile time. + */ +#    define CEILING(dividend, divisor) (((dividend) + (divisor)-1) / (divisor)) +#endif + +#if !defined(IS_ARRAY) +/** + * @brief Returns true if the value is an array, false if it's a pointer. + * + * This macro is ill-formed for scalars, which is OK for its intended use in + * ARRAY_SIZE. + */ +#    define IS_ARRAY(value) (!__builtin_types_compatible_p(typeof((value)), typeof(&(value)[0]))) +#endif + +#if !defined(ARRAY_SIZE) +/** + * @brief Computes the number of elements of the given array at compile time. + * + * This Macro can only be used for statically allocated arrays that have not + * been decayed into a pointer. This is detected at compile time, though the + * error message for scalar values is poor. + */ +#    define ARRAY_SIZE(array) (__builtin_choose_expr(IS_ARRAY((array)), sizeof((array)) / sizeof((array)[0]), (void)0)) +#endif @@ -1,3 +1,7 @@ +# THIS IS THE DEVELOP BRANCH + +Warning- This is the `develop` branch of QMK Firmware. You may encounter broken code here. Please see [Breaking Changes](https://docs.qmk.fm/#/breaking_changes) for more information. +  # Quantum Mechanical Keyboard Firmware  [](https://github.com/qmk/qmk_firmware/tags) diff --git a/tests/test_common/test_driver.cpp b/tests/test_common/test_driver.cpp index 86644ab6bd..7ecd4931ed 100644 --- a/tests/test_common/test_driver.cpp +++ b/tests/test_common/test_driver.cpp @@ -31,7 +31,7 @@ uint8_t hex_digit_to_keycode(uint8_t digit) {  }  } // namespace -TestDriver::TestDriver() : m_driver{&TestDriver::keyboard_leds, &TestDriver::send_keyboard, &TestDriver::send_mouse, &TestDriver::send_system, &TestDriver::send_consumer} { +TestDriver::TestDriver() : m_driver{&TestDriver::keyboard_leds, &TestDriver::send_keyboard, &TestDriver::send_mouse, &TestDriver::send_extra} {      host_set_driver(&m_driver);      m_this = this;  } @@ -53,12 +53,8 @@ void TestDriver::send_mouse(report_mouse_t* report) {      m_this->send_mouse_mock(*report);  } -void TestDriver::send_system(uint16_t data) { -    m_this->send_system_mock(data); -} - -void TestDriver::send_consumer(uint16_t data) { -    m_this->send_consumer(data); +void TestDriver::send_extra(uint8_t report_id, uint16_t data) { +    m_this->send_extra_mock(report_id, data);  }  namespace internal { diff --git a/tests/test_common/test_driver.hpp b/tests/test_common/test_driver.hpp index b58cfd1ebc..666bfb1fba 100644 --- a/tests/test_common/test_driver.hpp +++ b/tests/test_common/test_driver.hpp @@ -32,15 +32,13 @@ class TestDriver {      MOCK_METHOD1(send_keyboard_mock, void(report_keyboard_t&));      MOCK_METHOD1(send_mouse_mock, void(report_mouse_t&)); -    MOCK_METHOD1(send_system_mock, void(uint16_t)); -    MOCK_METHOD1(send_consumer_mock, void(uint16_t)); +    MOCK_METHOD2(send_extra_mock, void(uint8_t, uint16_t));     private:      static uint8_t     keyboard_leds(void);      static void        send_keyboard(report_keyboard_t* report);      static void        send_mouse(report_mouse_t* report); -    static void        send_system(uint16_t data); -    static void        send_consumer(uint16_t data); +    static void        send_extra(uint8_t report_id, uint16_t data);      host_driver_t      m_driver;      uint8_t            m_leds = 0;      static TestDriver* m_this; diff --git a/tmk_core/protocol/arm_atsam/main_arm_atsam.c b/tmk_core/protocol/arm_atsam/main_arm_atsam.c index 8ee9e042e7..0537e3937d 100644 --- a/tmk_core/protocol/arm_atsam/main_arm_atsam.c +++ b/tmk_core/protocol/arm_atsam/main_arm_atsam.c @@ -37,14 +37,13 @@ void    main_subtasks(void);  uint8_t keyboard_leds(void);  void    send_keyboard(report_keyboard_t *report);  void    send_mouse(report_mouse_t *report); -void    send_system(uint16_t data); -void    send_consumer(uint16_t data); +void    send_extra(uint8_t report_id, uint16_t data);  #ifdef DEFERRED_EXEC_ENABLE  void deferred_exec_task(void);  #endif // DEFERRED_EXEC_ENABLE -host_driver_t arm_atsam_driver = {keyboard_leds, send_keyboard, send_mouse, send_system, send_consumer}; +host_driver_t arm_atsam_driver = {keyboard_leds, send_keyboard, send_mouse, send_extra};  uint8_t led_states; @@ -114,8 +113,8 @@ void send_mouse(report_mouse_t *report) {  #endif // MOUSEKEY_ENABLE  } -#ifdef EXTRAKEY_ENABLE  void send_extra(uint8_t report_id, uint16_t data) { +#ifdef EXTRAKEY_ENABLE      uint32_t irqflags;      irqflags = __get_PRIMASK(); @@ -129,18 +128,6 @@ void send_extra(uint8_t report_id, uint16_t data) {      __DMB();      __set_PRIMASK(irqflags); -} -#endif // EXTRAKEY_ENABLE - -void send_system(uint16_t data) { -#ifdef EXTRAKEY_ENABLE -    send_extra(REPORT_ID_SYSTEM, data); -#endif // EXTRAKEY_ENABLE -} - -void send_consumer(uint16_t data) { -#ifdef EXTRAKEY_ENABLE -    send_extra(REPORT_ID_CONSUMER, data);  #endif // EXTRAKEY_ENABLE  } diff --git a/tmk_core/protocol/arm_atsam/md_rgb_matrix_programs.c b/tmk_core/protocol/arm_atsam/md_rgb_matrix_programs.c index 69b3ad574c..58fc4efd9c 100644 --- a/tmk_core/protocol/arm_atsam/md_rgb_matrix_programs.c +++ b/tmk_core/protocol/arm_atsam/md_rgb_matrix_programs.c @@ -95,7 +95,7 @@ led_setup_t leds_rainbow_s[] = {  void *led_setups[] = {leds_rainbow_s, leds_rainbow_ns, leds_teal_salmon, leds_yellow, leds_red, leds_green, leds_blue, leds_white, leds_white_with_red_stripe, leds_black_with_red_stripe, leds_off}; -const uint8_t led_setups_count = sizeof(led_setups) / sizeof(led_setups[0]); +const uint8_t led_setups_count = ARRAY_SIZE(led_setups);  #    endif // USE_MASSDROP_CONFIGURATOR  #endif     // RGB_MATRIX_ENABLE
\ No newline at end of file diff --git a/tmk_core/protocol/chibios/chibios.c b/tmk_core/protocol/chibios/chibios.c index c9a480c325..024160a925 100644 --- a/tmk_core/protocol/chibios/chibios.c +++ b/tmk_core/protocol/chibios/chibios.c @@ -58,13 +58,12 @@  uint8_t keyboard_leds(void);  void    send_keyboard(report_keyboard_t *report);  void    send_mouse(report_mouse_t *report); -void    send_system(uint16_t data); -void    send_consumer(uint16_t data); +void    send_extra(uint8_t report_id, uint16_t data);  void    send_programmable_button(uint32_t data);  void    send_digitizer(report_digitizer_t *report);  /* host struct */ -host_driver_t chibios_driver = {keyboard_leds, send_keyboard, send_mouse, send_system, send_consumer, send_programmable_button}; +host_driver_t chibios_driver = {keyboard_leds, send_keyboard, send_mouse, send_extra, send_programmable_button};  #ifdef VIRTSER_ENABLE  void virtser_task(void); diff --git a/tmk_core/protocol/chibios/usb_main.c b/tmk_core/protocol/chibios/usb_main.c index eb9ef82554..222a867e3c 100644 --- a/tmk_core/protocol/chibios/usb_main.c +++ b/tmk_core/protocol/chibios/usb_main.c @@ -946,8 +946,8 @@ void shared_in_cb(USBDriver *usbp, usbep_t ep) {   * ---------------------------------------------------------   */ +void send_extra(uint8_t report_id, uint16_t data) {  #ifdef EXTRAKEY_ENABLE -static void send_extra(uint8_t report_id, uint16_t data) {      osalSysLock();      if (usbGetDriverStateI(&USB_DRIVER) != USB_ACTIVE) {          osalSysUnlock(); @@ -970,18 +970,6 @@ static void send_extra(uint8_t report_id, uint16_t data) {      usbStartTransmitI(&USB_DRIVER, SHARED_IN_EPNUM, (uint8_t *)&report, sizeof(report_extra_t));      osalSysUnlock(); -} -#endif - -void send_system(uint16_t data) { -#ifdef EXTRAKEY_ENABLE -    send_extra(REPORT_ID_SYSTEM, data); -#endif -} - -void send_consumer(uint16_t data) { -#ifdef EXTRAKEY_ENABLE -    send_extra(REPORT_ID_CONSUMER, data);  #endif  } diff --git a/tmk_core/protocol/host.c b/tmk_core/protocol/host.c index 3d8604d541..2ebd176ea4 100644 --- a/tmk_core/protocol/host.c +++ b/tmk_core/protocol/host.c @@ -107,7 +107,7 @@ void host_system_send(uint16_t report) {      last_system_report = report;      if (!driver) return; -    (*driver->send_system)(report); +    (*driver->send_extra)(REPORT_ID_SYSTEM, report);  }  void host_consumer_send(uint16_t report) { @@ -115,7 +115,7 @@ void host_consumer_send(uint16_t report) {      last_consumer_report = report;      if (!driver) return; -    (*driver->send_consumer)(report); +    (*driver->send_extra)(REPORT_ID_CONSUMER, report);  }  void host_digitizer_send(digitizer_t *digitizer) { diff --git a/tmk_core/protocol/host_driver.h b/tmk_core/protocol/host_driver.h index affd0dcb34..680d9727d3 100644 --- a/tmk_core/protocol/host_driver.h +++ b/tmk_core/protocol/host_driver.h @@ -27,9 +27,8 @@ typedef struct {      uint8_t (*keyboard_leds)(void);      void (*send_keyboard)(report_keyboard_t *);      void (*send_mouse)(report_mouse_t *); -    void (*send_system)(uint16_t); -    void (*send_consumer)(uint16_t); +    void (*send_extra)(uint8_t, uint16_t);      void (*send_programmable_button)(uint32_t);  } host_driver_t; -void send_digitizer(report_digitizer_t *report);
\ No newline at end of file +void send_digitizer(report_digitizer_t *report); diff --git a/tmk_core/protocol/lufa/lufa.c b/tmk_core/protocol/lufa/lufa.c index b4b03357a3..03e19745f8 100644 --- a/tmk_core/protocol/lufa/lufa.c +++ b/tmk_core/protocol/lufa/lufa.c @@ -101,10 +101,9 @@ static report_keyboard_t keyboard_report_sent;  static uint8_t keyboard_leds(void);  static void    send_keyboard(report_keyboard_t *report);  static void    send_mouse(report_mouse_t *report); -static void    send_system(uint16_t data); -static void    send_consumer(uint16_t data); +static void    send_extra(uint8_t report_id, uint16_t data);  static void    send_programmable_button(uint32_t data); -host_driver_t  lufa_driver = {keyboard_leds, send_keyboard, send_mouse, send_system, send_consumer, send_programmable_button}; +host_driver_t  lufa_driver = {keyboard_leds, send_keyboard, send_mouse, send_extra, send_programmable_button};  #ifdef VIRTSER_ENABLE  // clang-format off @@ -746,32 +745,10 @@ static void send_report(void *report, size_t size) {   *   * FIXME: Needs doc   */ -#ifdef EXTRAKEY_ENABLE  static void send_extra(uint8_t report_id, uint16_t data) { -    static report_extra_t r; -    r = (report_extra_t){.report_id = report_id, .usage = data}; -    send_report(&r, sizeof(r)); -} -#endif - -/** \brief Send System - * - * FIXME: Needs doc - */ -static void send_system(uint16_t data) { -#ifdef EXTRAKEY_ENABLE -    send_extra(REPORT_ID_SYSTEM, data); -#endif -} - -/** \brief Send Consumer - * - * FIXME: Needs doc - */ -static void send_consumer(uint16_t data) {  #ifdef EXTRAKEY_ENABLE  #    ifdef BLUETOOTH_ENABLE -    if (where_to_send() == OUTPUT_BLUETOOTH) { +    if (report_id == REPORT_ID_CONSUMER && where_to_send() == OUTPUT_BLUETOOTH) {  #        ifdef BLUETOOTH_BLUEFRUIT_LE          bluefruit_le_send_consumer_key(data);  #        elif BLUETOOTH_RN42 @@ -781,7 +758,9 @@ static void send_consumer(uint16_t data) {      }  #    endif -    send_extra(REPORT_ID_CONSUMER, data); +    static report_extra_t r; +    r = (report_extra_t){.report_id = report_id, .usage = data}; +    send_report(&r, sizeof(r));  #endif  } diff --git a/tmk_core/protocol/usb_descriptor.c b/tmk_core/protocol/usb_descriptor.c index 52e3276d35..635e4c6cd7 100644 --- a/tmk_core/protocol/usb_descriptor.c +++ b/tmk_core/protocol/usb_descriptor.c @@ -1043,7 +1043,7 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = {   */  const USB_Descriptor_String_t PROGMEM LanguageString = {      .Header = { -        .Size                   = USB_STRING_LEN(1), +        .Size                   = 4,          .Type                   = DTYPE_String      },      .UnicodeString              = {LANGUAGE_ID_ENG} @@ -1051,24 +1051,24 @@ const USB_Descriptor_String_t PROGMEM LanguageString = {  const USB_Descriptor_String_t PROGMEM ManufacturerString = {      .Header = { -        .Size                   = USB_STRING_LEN(sizeof(STR(MANUFACTURER)) - 1), // Subtract 1 for null terminator +        .Size                   = sizeof(USBSTR(MANUFACTURER)),          .Type                   = DTYPE_String      }, -    .UnicodeString              = LSTR(MANUFACTURER) +    .UnicodeString              = USBSTR(MANUFACTURER)  };  const USB_Descriptor_String_t PROGMEM ProductString = {      .Header = { -        .Size                   = USB_STRING_LEN(sizeof(STR(PRODUCT)) - 1), // Subtract 1 for null terminator +        .Size                   = sizeof(USBSTR(PRODUCT)),          .Type                   = DTYPE_String      }, -    .UnicodeString              = LSTR(PRODUCT) +    .UnicodeString              = USBSTR(PRODUCT)  };  #if defined(SERIAL_NUMBER)  const USB_Descriptor_String_t PROGMEM SerialNumberString = {      .Header = { -        .Size                   = USB_STRING_LEN(sizeof(SERIAL_NUMBER) - 1), // Subtract 1 for null terminator +        .Size                   = sizeof(USBSTR(SERIAL_NUMBER)),          .Type                   = DTYPE_String      },      .UnicodeString              = USBSTR(SERIAL_NUMBER) diff --git a/tmk_core/protocol/vusb/vusb.c b/tmk_core/protocol/vusb/vusb.c index d07cc0d27e..013d637b6f 100644 --- a/tmk_core/protocol/vusb/vusb.c +++ b/tmk_core/protocol/vusb/vusb.c @@ -224,11 +224,10 @@ void console_task(void) {  static uint8_t keyboard_leds(void);  static void    send_keyboard(report_keyboard_t *report);  static void    send_mouse(report_mouse_t *report); -static void    send_system(uint16_t data); -static void    send_consumer(uint16_t data); +static void    send_extra(uint8_t report_id, uint16_t data);  static void    send_programmable_button(uint32_t data); -static host_driver_t driver = {keyboard_leds, send_keyboard, send_mouse, send_system, send_consumer, send_programmable_button}; +static host_driver_t driver = {keyboard_leds, send_keyboard, send_mouse, send_extra, send_programmable_button};  host_driver_t *vusb_driver(void) {      return &driver; @@ -269,8 +268,8 @@ static void send_mouse(report_mouse_t *report) {  #endif  } -#ifdef EXTRAKEY_ENABLE  static void send_extra(uint8_t report_id, uint16_t data) { +#ifdef EXTRAKEY_ENABLE      static uint8_t  last_id   = 0;      static uint16_t last_data = 0;      if ((report_id == last_id) && (data == last_data)) return; @@ -282,18 +281,6 @@ static void send_extra(uint8_t report_id, uint16_t data) {      if (usbInterruptIsReadyShared()) {          usbSetInterruptShared((void *)&report, sizeof(report_extra_t));      } -} -#endif - -static void send_system(uint16_t data) { -#ifdef EXTRAKEY_ENABLE -    send_extra(REPORT_ID_SYSTEM, data); -#endif -} - -static void send_consumer(uint16_t data) { -#ifdef EXTRAKEY_ENABLE -    send_extra(REPORT_ID_CONSUMER, data);  #endif  } @@ -672,7 +659,7 @@ const PROGMEM uchar console_hid_report[] = {  // clang-format off  const PROGMEM usbStringDescriptor_t usbStringDescriptorZero = {      .header = { -        .bLength         = USB_STRING_LEN(1), +        .bLength         = 4,          .bDescriptorType = USBDESCR_STRING      },      .bString             = {0x0409} // US English @@ -680,24 +667,24 @@ const PROGMEM usbStringDescriptor_t usbStringDescriptorZero = {  const PROGMEM usbStringDescriptor_t usbStringDescriptorManufacturer = {      .header = { -        .bLength         = USB_STRING_LEN(sizeof(STR(MANUFACTURER)) - 1), +        .bLength         = sizeof(USBSTR(MANUFACTURER)),          .bDescriptorType = USBDESCR_STRING      }, -    .bString             = LSTR(MANUFACTURER) +    .bString             = USBSTR(MANUFACTURER)  };  const PROGMEM usbStringDescriptor_t usbStringDescriptorProduct = {      .header = { -        .bLength         = USB_STRING_LEN(sizeof(STR(PRODUCT)) - 1), +        .bLength         = sizeof(USBSTR(PRODUCT)),          .bDescriptorType = USBDESCR_STRING      }, -    .bString             = LSTR(PRODUCT) +    .bString             = USBSTR(PRODUCT)  };  #if defined(SERIAL_NUMBER)  const PROGMEM usbStringDescriptor_t usbStringDescriptorSerial = {      .header = { -        .bLength         = USB_STRING_LEN(sizeof(SERIAL_NUMBER) - 1), +        .bLength         = sizeof(USBSTR(SERIAL_NUMBER)),          .bDescriptorType = USBDESCR_STRING      },      .bString             = USBSTR(SERIAL_NUMBER) diff --git a/tmk_core/protocol/vusb/vusb.h b/tmk_core/protocol/vusb/vusb.h index b1ecc98f37..c5cb27ded6 100644 --- a/tmk_core/protocol/vusb/vusb.h +++ b/tmk_core/protocol/vusb/vusb.h @@ -118,8 +118,6 @@ typedef struct usbConfigurationDescriptor {  #endif  } __attribute__((packed)) usbConfigurationDescriptor_t; -#define USB_STRING_LEN(s) (sizeof(usbDescriptorHeader_t) + ((s) << 1)) -  extern bool vusb_suspended;  host_driver_t *vusb_driver(void); diff --git a/users/brandonschlack/rgb_bs.c b/users/brandonschlack/rgb_bs.c index 1abf785b49..94842021cd 100644 --- a/users/brandonschlack/rgb_bs.c +++ b/users/brandonschlack/rgb_bs.c @@ -75,7 +75,7 @@ void rgb_theme_step_reverse(void) {  rgb_theme_color_t get_rgb_theme_color(uint8_t index) {      rgb_theme_t theme = get_rgb_theme(); -    size_t rgb_theme_color_max = sizeof theme.colors / sizeof *theme.colors; +    size_t rgb_theme_color_max = ARRAY_SIZE(theme.colors);      if (index == _ADJUST) {          return default_adjust; diff --git a/users/curry/oled.c b/users/curry/oled.c index 5a8f0de61d..89112af121 100644 --- a/users/curry/oled.c +++ b/users/curry/oled.c @@ -41,7 +41,7 @@ void add_keylog(uint16_t keycode) {          keylog_str[i] = keylog_str[i - 1];      } -    if (keycode < (sizeof(code_to_name) / sizeof(char))) { +    if (keycode < ARRAY_SIZE(code_to_name)) {          keylog_str[0] = pgm_read_byte(&code_to_name[keycode]);      } diff --git a/users/davidkristoffersen/util/functions.c b/users/davidkristoffersen/util/functions.c index 781d8f214d..3ab4ace2d6 100644 --- a/users/davidkristoffersen/util/functions.c +++ b/users/davidkristoffersen/util/functions.c @@ -33,14 +33,14 @@ code_set_t EN_SHIFT_CODES [] = {  const shift_code_t SHIFT_CODES [] = {  #ifdef LAYER_NO      {.lang = LAYER_NO, -     .size = ARR_LEN(NO_SHIFT_CODES), +     .size = ARRAY_SIZE(NO_SHIFT_CODES),       .codes = NO_SHIFT_CODES},  #endif      {.lang = LAYER_EN, -     .size = ARR_LEN(EN_SHIFT_CODES), +     .size = ARRAY_SIZE(EN_SHIFT_CODES),       .codes = EN_SHIFT_CODES},  }; -const int SHIFT_CODES_SIZE = ARR_LEN(SHIFT_CODES); +const int SHIFT_CODES_SIZE = ARRAY_SIZE(SHIFT_CODES);  #endif  #ifdef LAYER_NO @@ -72,7 +72,7 @@ const code_set_t EN2NO_CODES [] = {      {KC_DLR,  NO_DLR},      {KC_GRV,  NO_GRV}  }; -const int EN2NO_CODES_SIZE = ARR_LEN(EN2NO_CODES); +const int EN2NO_CODES_SIZE = ARRAY_SIZE(EN2NO_CODES);  #endif  // Check if layer is an active default layer diff --git a/users/davidkristoffersen/util/functions.h b/users/davidkristoffersen/util/functions.h index eee1dadc57..5fef010694 100644 --- a/users/davidkristoffersen/util/functions.h +++ b/users/davidkristoffersen/util/functions.h @@ -15,8 +15,6 @@  // Return false if test equal false  #define HANDLE_FALSE(bool) if (!bool) return false; -// Generic array lenght define -#define ARR_LEN(arr) (sizeof(arr) / sizeof(arr)[0])  // Printf-like functionality for send_string  #define SEND_VAR(str, ...) \      do { \ diff --git a/users/drashna/keyrecords/tap_dance.md b/users/drashna/keyrecords/tap_dance.md index 0bf67cbd5a..fef1435918 100644 --- a/users/drashna/keyrecords/tap_dance.md +++ b/users/drashna/keyrecords/tap_dance.md @@ -88,7 +88,7 @@ void diablo_tapdance_master(qk_tap_dance_state_t *state, void *user_data) {      diablo_timer[diablo_keys->index].keycode = diablo_keys->keycode;      // if the tapdance is hit more than the number of elemints in the array, reset -    if (state->count >= (sizeof(diablo_times) / sizeof(uint8_t) ) ) { +    if (state->count >= ARRAY_SIZE(diablo_times) ) {          diablo_timer[diablo_keys->index].key_interval = 0;          reset_tap_dance(state);      }  else { // else set the interval (tapdance count starts at 1, array starts at 0, so offset by one) diff --git a/users/drashna/keyrecords/tap_dances.c b/users/drashna/keyrecords/tap_dances.c index 6caf6b6b3e..7bdea3cae3 100644 --- a/users/drashna/keyrecords/tap_dances.c +++ b/users/drashna/keyrecords/tap_dances.c @@ -23,7 +23,7 @@ void diablo_tapdance_master(qk_tap_dance_state_t *state, void *user_data) {      diablo_timer[diablo_keys->index].keycode = diablo_keys->keycode;      // if the tapdance is hit more than the number of elemints in the array, reset -    if (state->count >= (sizeof(diablo_times) / sizeof(uint8_t))) { +    if (state->count >= ARRAY_SIZE(diablo_times)) {          diablo_timer[diablo_keys->index].key_interval = 0;          reset_tap_dance(state);      } else { // else set the interval (tapdance count starts at 1, array starts at 0, so offset by one) diff --git a/users/drashna/keyrecords/unicode.c b/users/drashna/keyrecords/unicode.c index b3fc71cb09..bfce38f555 100644 --- a/users/drashna/keyrecords/unicode.c +++ b/users/drashna/keyrecords/unicode.c @@ -43,7 +43,7 @@ typedef uint32_t (*translator_function_t)(bool is_shifted, uint32_t keycode);      static inline uint32_t translator_name(bool is_shifted, uint32_t keycode) { \          static const uint32_t translation[] = {__VA_ARGS__};                    \          uint32_t              ret           = keycode;                          \ -        if ((keycode - KC_A) < (sizeof(translation) / sizeof(uint32_t))) {      \ +        if ((keycode - KC_A) < ARRAY_SIZE(translation)) {      \              ret = translation[keycode - KC_A];                                  \          }                                                                       \          return ret;                                                             \ diff --git a/users/drashna/oled/oled_stuff.c b/users/drashna/oled/oled_stuff.c index e082f8ab3e..68801b80a4 100644 --- a/users/drashna/oled/oled_stuff.c +++ b/users/drashna/oled/oled_stuff.c @@ -87,7 +87,7 @@ void add_keylog(uint16_t keycode, keyrecord_t *record) {      memmove(keylog_str, keylog_str + 1, OLED_KEYLOGGER_LENGTH - 1); -    if (keycode < (sizeof(code_to_name) / sizeof(char))) { +    if (keycode < ARRAY_SIZE(code_to_name)) {          keylog_str[(OLED_KEYLOGGER_LENGTH - 1)] = pgm_read_byte(&code_to_name[keycode]);      } diff --git a/users/gourdo1/gourdo1.h b/users/gourdo1/gourdo1.h index ecf6eaf25d..a198fd0805 100644 --- a/users/gourdo1/gourdo1.h +++ b/users/gourdo1/gourdo1.h @@ -17,9 +17,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #pragma once -// DEFINE MACROS -#define ARRAYSIZE(arr) sizeof(arr) / sizeof(arr[0]) -  // LAYERS -- Note: to avoid compile problems, make sure total layers matches DYNAMIC_KEYMAP_LAYER_COUNT defined in config.h (where _COLEMAK layer is defined)  enum custom_user_layers {      _BASE, diff --git a/users/jonavin/jonavin.h b/users/jonavin/jonavin.h index ab2ce0dff2..c3e383bd3a 100644 --- a/users/jonavin/jonavin.h +++ b/users/jonavin/jonavin.h @@ -17,9 +17,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #pragma once -// DEFINE MACROS -#define ARRAYSIZE(arr)  sizeof(arr)/sizeof(arr[0]) -  // LAYERS  enum custom_user_layers { diff --git a/users/spidey3/config.h b/users/spidey3/config.h index 91bcf910ee..36d59b6a5d 100644 --- a/users/spidey3/config.h +++ b/users/spidey3/config.h @@ -42,7 +42,7 @@  #define SPI_DEBUG_SCAN_RATE  #undef MANUFACTURER -#define MANUFACTURER Window of Fire +#define MANUFACTURER "Window of Fire"  // Some keyboards enable BACKLIGHT_CAPS_LOCK without checking if backlight is enabled.  // Undef as appropriate to avoid compiler warnings in that case. diff --git a/users/spidey3/layer_rgb.c b/users/spidey3/layer_rgb.c index c867468194..bdf4584ef1 100644 --- a/users/spidey3/layer_rgb.c +++ b/users/spidey3/layer_rgb.c @@ -97,7 +97,7 @@ const rgblight_segment_t *const PROGMEM _rgb_layers[] = {  // clang-format on -const uint8_t PROGMEM _n_rgb_layers = sizeof(_rgb_layers) / sizeof(_rgb_layers[0]) - 1; +const uint8_t PROGMEM _n_rgb_layers = ARRAY_SIZE(_rgb_layers) - 1;  void clear_rgb_layers() {      for (uint8_t i = 0; i < _n_rgb_layers; i++) { @@ -112,8 +112,7 @@ void do_rgb_layers(layer_state_t state, uint8_t start, uint8_t end) {      }  } -void do_rgb_unicode(void) { -    uint8_t uc_mode = get_unicode_input_mode(); +void do_rgb_unicode(uint8_t uc_mode) {      for (uint8_t i = 0; i < UC__COUNT; i++) {          bool is_on = i == uc_mode;          rgblight_set_layer_state(UNICODE_OFFSET + i, is_on); @@ -123,7 +122,7 @@ void do_rgb_unicode(void) {  void do_rgb_all(void) {      do_rgb_layers(default_layer_state, LAYER_BASE_DEFAULT, LAYER_BASE_REGULAR);      do_rgb_layers(layer_state, LAYER_BASE_REGULAR, LAYER_BASE_END); -    do_rgb_unicode(); +    do_rgb_unicode(get_unicode_input_mode());      rgblight_set_layer_state(MISC_OFFSET + 0, spi_gflock);      rgblight_set_layer_state(MISC_OFFSET + 1, spi_replace_mode != SPI_NORMAL);  } @@ -148,7 +147,7 @@ extern rgblight_status_t rgblight_status;  #    define STARTUP_ANIMATION_CYCLE_STEP 2  #    define STARTUP_ANIMATION_RAMP_TO_STEPS 70  #    define STARTUP_ANIMATION_STEP_TIME 10 -#    define STARTUP_ANIMATION_INITIAL_DELAY 0  // milliseconds, must be < 255 * STEP_TIME +#    define STARTUP_ANIMATION_INITIAL_DELAY 0 // milliseconds, must be < 255 * STEP_TIME  // clang-format off  typedef enum { @@ -382,6 +381,13 @@ bool led_update_user_rgb(led_t led_state) {      return true;  } +#if defined(UNICODE_COMMON_ENABLE) +void unicode_input_mode_set_user_rgb(uint8_t input_mode) { +    rgb_layer_ack(ACK_MEH); +    do_rgb_unicode(input_mode); +} +#endif +  void rgb_layer_ack_yn(bool yn) { rgb_layer_ack(yn ? ACK_YES : ACK_NO); }  void rgb_layer_ack(layer_ack_t n) { @@ -458,7 +464,7 @@ void post_process_record_user_rgb(uint16_t keycode, keyrecord_t *record) {              break;          case RGB_TOG: -            // Hack - we only get called on the press for RGB_TOG,  +            // Hack - we only get called on the press for RGB_TOG,              // but the flag is only flipped on the release...              rgb_layer_ack_yn(!rgblight_config.enable);              break; @@ -476,20 +482,5 @@ void post_process_record_user_rgb(uint16_t keycode, keyrecord_t *record) {              rgb_layer_ack_yn(keymap_config.nkro);              break;  #endif - -#if defined(UNICODE_COMMON_ENABLE) -        case UC_M_MA: -        case UC_M_LN: -        case UC_M_WI: -        case UC_M_BS: -        case UC_M_WC: -        case UC_M_EM: - -        case UC_MOD: -        case UC_RMOD: -            rgb_layer_ack(ACK_MEH); -            do_rgb_unicode(); -            break; -#endif      }  } diff --git a/users/spidey3/spidey3.c b/users/spidey3/spidey3.c index 842bb465f7..d9b893814a 100644 --- a/users/spidey3/spidey3.c +++ b/users/spidey3/spidey3.c @@ -98,14 +98,14 @@ bool process_record_glyph_replacement(uint16_t keycode, keyrecord_t *record, uin                      clear_oneshot_mods();  #endif -                    bool caps = host_keyboard_led_state().caps_lock; +                    bool     caps = host_keyboard_led_state().caps_lock;                      uint32_t base = ((shifted == caps) ? baseAlphaLower : baseAlphaUpper);                      _register(base + (keycode - KC_A));                      set_mods(temp_mod);                  }                  return false;              case KC_0: -                if (shifted) {  // skip shifted numbers, so that we can still use symbols etc. +                if (shifted) { // skip shifted numbers, so that we can still use symbols etc.                      return true;                  }                  if (record->event.pressed) { @@ -113,7 +113,7 @@ bool process_record_glyph_replacement(uint16_t keycode, keyrecord_t *record, uin                  }                  return false;              case KC_1 ... KC_9: -                if (shifted) {  // skip shifted numbers, so that we can still use symbols etc. +                if (shifted) { // skip shifted numbers, so that we can still use symbols etc.                      return true;                  }                  if (record->event.pressed) { @@ -122,7 +122,7 @@ bool process_record_glyph_replacement(uint16_t keycode, keyrecord_t *record, uin                  return false;              case KC_SPACE:                  if (record->event.pressed) { -                    _register(spaceGlyph);  // em space +                    _register(spaceGlyph); // em space                  }                  return false;          } @@ -338,7 +338,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {                      set_mods(mods);                      return false;                  } -            } else {  // on release of KC_BSPC +            } else { // on release of KC_BSPC                  // In case KC_DEL is still being sent even after the release of KC_BSPC                  if (delkey_registered) {                      unregister_code(KC_DEL); @@ -387,3 +387,11 @@ bool led_update_user(led_t led_state) {      return true;  #endif  } + +#if defined(UNICODE_COMMON_ENABLE) +void unicode_input_mode_set_user(uint8_t input_mode) { +#    ifdef RGBLIGHT_ENABLE +    unicode_input_mode_set_user_rgb(input_mode); +#    endif +} +#endif diff --git a/users/spidey3/spidey3.h b/users/spidey3/spidey3.h index e91b299e55..7a9407969e 100644 --- a/users/spidey3/spidey3.h +++ b/users/spidey3/spidey3.h @@ -17,9 +17,9 @@ enum userspace_layers {  };  enum custom_keycodes { -    CH_CPNL = SAFE_RANGE,  // AL Control Panel -    CH_ASST,               // AL Context-aware Desktop Assistant -    CH_SUSP,               // Suspend +    CH_CPNL = SAFE_RANGE, // AL Control Panel +    CH_ASST,              // AL Context-aware Desktop Assistant +    CH_SUSP,              // Suspend      SPI_NORMAL,      SPI_WIDE, @@ -65,6 +65,11 @@ void          rgb_layer_ack(layer_ack_t n);  void          rgb_layer_ack_yn(bool yn);  void          clear_rgb_layers(void);  void          shutdown_user_rgb(void); + +#    if defined(UNICODE_COMMON_ENABLE) +void unicode_input_mode_set_user_rgb(uint8_t input_mode); +#    endif +  #endif  #ifdef UNICODEMAP_ENABLE diff --git a/users/uqs/uqs.c b/users/uqs/uqs.c index 72284143c6..7e2d09e0f6 100644 --- a/users/uqs/uqs.c +++ b/users/uqs/uqs.c @@ -78,9 +78,9 @@ const rgblight_segment_t* const PROGMEM my_rgb_layers[] = {      my_rgb_segments[L_MOUSE],  }; -_Static_assert(sizeof(my_rgb_layers) / sizeof(my_rgb_layers[0]) == -        sizeof(my_rgb_segments) / sizeof(my_rgb_segments[0]), -        "Number of rgb_segment definitions does not match up!"); +_Static_assert(ARRAY_SIZE(my_rgb_layers) == +	       ARRAY_SIZE(my_rgb_segments), +	       "Number of rgb_segment definitions does not match up!");  #endif  #ifdef COMBO_ENABLE @@ -125,7 +125,7 @@ const uint16_t PROGMEM my_combos[][4] = {      {KC_BTN1, KC_BTN2, KC_BTN3, COMBO_END},  }; -const uint16_t COMBO_LEN = sizeof(my_action_combos) / sizeof(my_action_combos[0]) + sizeof(my_combos) / sizeof(my_combos[0]); +const uint16_t COMBO_LEN = ARRAY_SIZE(my_action_combos) + ARRAY_SIZE(my_combos);  #define MY_ACTION_COMBO(ck) \      [ck] = { .keys = &(my_action_combos[ck][0]) } @@ -162,11 +162,11 @@ combo_t key_combos[] = {    MY_COMBO(14),  }; -_Static_assert(sizeof(key_combos) / sizeof(key_combos[0]) == -        (sizeof(my_action_combos) / sizeof(my_action_combos[0]) + sizeof(my_combos) / sizeof(my_combos[0])), -        "Number of combo definitions does not match up!"); +_Static_assert(ARRAY_SIZE(key_combos) == +	       (ARRAY_SIZE(my_action_combos) + ARRAY_SIZE(my_combos)), +	       "Number of combo definitions does not match up!");  #else -combo_t key_combos[sizeof(my_action_combos) / sizeof(my_action_combos[0]) + sizeof(my_combos) / sizeof(my_combos[0])]; +combo_t key_combos[ARRAY_SIZE(my_action_combos) + ARRAY_SIZE(my_combos)];  #endif  void process_combo_event(uint16_t combo_index, bool pressed) { @@ -235,10 +235,10 @@ void keyboard_post_init_user(void) {  #endif  #if defined(COMBO_ENABLE) && !defined(COMBO_STATICALLY)      uint8_t i = 0; -    for (; i < sizeof(my_action_combos) / sizeof(my_action_combos[0]); i++) { +    for (; i < ARRAY_SIZE(my_action_combos); i++) {          key_combos[i].keys = &(my_action_combos[i][0]);      } -    for (uint8_t j = 0; j < sizeof(my_combos) / sizeof(my_combos[0]); j++, i++) { +    for (uint8_t j = 0; j < ARRAY_SIZE(my_combos); j++, i++) {          key_combos[i].keycode = my_combos[j][0];          key_combos[i].keys = &(my_combos[j][1]);      } | 
