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
 |