mirror of
https://github.com/Keychron/qmk_firmware.git
synced 2024-11-25 18:06:34 +06:00
79 lines
1.7 KiB
C
79 lines
1.7 KiB
C
// Copyright 2022 Joshua Diamond josh@windowoffire.com (@spidey3)
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
#pragma once
|
|
|
|
#include QMK_KEYBOARD_H
|
|
|
|
#ifdef UNICODEMAP_ENABLE
|
|
# include "unicode.h"
|
|
#endif
|
|
|
|
enum userspace_layers {
|
|
_BASE = 0,
|
|
_NUMPAD,
|
|
_FN,
|
|
_GLYPH,
|
|
};
|
|
|
|
enum custom_keycodes {
|
|
CH_CPNL = SAFE_RANGE, // AL Control Panel
|
|
CH_ASST, // AL Context-aware Desktop Assistant
|
|
CH_SUSP, // Suspend
|
|
|
|
SPI_NORMAL,
|
|
SPI_WIDE,
|
|
SPI_SCRIPT,
|
|
SPI_BLOCKS,
|
|
SPI_CIRCLE,
|
|
SPI_SQUARE,
|
|
SPI_PARENS,
|
|
SPI_FRAKTR,
|
|
SPI_BOLD,
|
|
SPI_MATH,
|
|
SPI_GFLOCK,
|
|
SPI_KP_00,
|
|
SPI_GLO,
|
|
};
|
|
|
|
#ifdef RGBLIGHT_ENABLE
|
|
|
|
enum layer_base {
|
|
LAYER_BASE_DEFAULT = _BASE,
|
|
LAYER_BASE_REGULAR = _NUMPAD,
|
|
LAYER_BASE_END = _FN + 1,
|
|
};
|
|
|
|
typedef enum layer_ack {
|
|
ACK_NO = 0,
|
|
ACK_YES,
|
|
ACK_MEH,
|
|
ACK_HUH,
|
|
} layer_ack_t;
|
|
|
|
# define RGB_LAYER_ACK_DURATION 500
|
|
|
|
void matrix_init_user_rgb(void);
|
|
void matrix_scan_user_rgb(void);
|
|
void keyboard_post_init_user_rgb(void);
|
|
bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record);
|
|
void post_process_record_user_rgb(uint16_t keycode, keyrecord_t *record);
|
|
layer_state_t layer_state_set_user_rgb(layer_state_t state);
|
|
layer_state_t default_layer_state_set_user_rgb(layer_state_t state);
|
|
bool led_update_user_rgb(led_t led_state);
|
|
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);
|
|
#endif
|
|
|
|
#ifdef UNICODEMAP_ENABLE
|
|
void eeconfig_init_user_unicode(void);
|
|
#endif
|
|
|
|
#ifdef SPI_DEBUG_SCAN_RATE
|
|
# ifndef SPI_SCAN_RATE_INTERVAL
|
|
# define SPI_SCAN_RATE_INTERVAL 10
|
|
# endif
|
|
#endif
|