mirror of
https://github.com/qmk/qmk_firmware.git
synced 2026-10-01 14:29:08 +02:00
Merge remote-tracking branch 'origin/develop' into xap
This commit is contained in:
@@ -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) \
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
+4
-4
@@ -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
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -25,7 +25,7 @@ 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
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -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)) {
|
||||
|
||||
+32
-15
@@ -1,19 +1,7 @@
|
||||
/*
|
||||
Copyright 2011 Jun Wako <wakojun@gmail.com>
|
||||
// Copyright 2022 Stefan Kerkmann (KarlK90)
|
||||
// Copyright 2011 Jun Wako <wakojun@gmail.com>
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
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/>.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "bitwise.h"
|
||||
@@ -29,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
|
||||
|
||||
Reference in New Issue
Block a user