Userspace and keymap update for user bbaserdem. (#14484)
This commit is contained in:
		
							parent
							
								
									f439fe6055
								
							
						
					
					
						commit
						fd44341cbf
					
				
					 74 changed files with 4723 additions and 1300 deletions
				
			
		
							
								
								
									
										116
									
								
								users/bbaserdem/bb-underglow.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										116
									
								
								users/bbaserdem/bb-underglow.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,116 @@
 | 
			
		|||
/* Copyright 2021 Batuhan Başerdem
 | 
			
		||||
 * <baserdem.batuhan@gmail.com> @bbaserdem
 | 
			
		||||
 *
 | 
			
		||||
 * 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/>.
 | 
			
		||||
 */
 | 
			
		||||
#include "bb-underglow.h"
 | 
			
		||||
 | 
			
		||||
/* UNDERGLOW IMPLEMENTATION
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
// Define the layer switching code
 | 
			
		||||
 | 
			
		||||
// An empty layer on the base
 | 
			
		||||
const rgblight_segment_t PROGMEM bb_base_layer[] = RGBLIGHT_LAYER_SEGMENTS(
 | 
			
		||||
    {0, 0, HSV_WHITE}
 | 
			
		||||
);
 | 
			
		||||
// Gaming layer is turquoise
 | 
			
		||||
const rgblight_segment_t PROGMEM bb_game_layer[] = RGBLIGHT_LAYER_SEGMENTS(
 | 
			
		||||
    {RGBLIGHT_LEFT_BEG, RGBLIGHT_LEFT_NUM, HSV_PURPLE}
 | 
			
		||||
);
 | 
			
		||||
// Character overlay is chartereuse
 | 
			
		||||
const rgblight_segment_t PROGMEM bb_char_layer[] = RGBLIGHT_LAYER_SEGMENTS(
 | 
			
		||||
    {0, RGBLED_NUM, HSV_GOLD}
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
// Right-hand layers
 | 
			
		||||
 | 
			
		||||
// Media layer is orange
 | 
			
		||||
const rgblight_segment_t PROGMEM bb_medi_layer[] = RGBLIGHT_LAYER_SEGMENTS(
 | 
			
		||||
    {RGBLIGHT_RIGHT_BEG, RGBLIGHT_RIGHT_NUM, HSV_MAGENTA}
 | 
			
		||||
);
 | 
			
		||||
// Navigation layer is green
 | 
			
		||||
const rgblight_segment_t PROGMEM bb_navi_layer[] = RGBLIGHT_LAYER_SEGMENTS(
 | 
			
		||||
    {RGBLIGHT_RIGHT_BEG, RGBLIGHT_RIGHT_NUM, HSV_GREEN}
 | 
			
		||||
);
 | 
			
		||||
// Symbol layer is purple
 | 
			
		||||
const rgblight_segment_t PROGMEM bb_symb_layer[] = RGBLIGHT_LAYER_SEGMENTS(
 | 
			
		||||
    {RGBLIGHT_RIGHT_BEG, RGBLIGHT_RIGHT_NUM, HSV_YELLOW}
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
// Left-hand layers
 | 
			
		||||
 | 
			
		||||
// Number layer is blue
 | 
			
		||||
const rgblight_segment_t PROGMEM bb_numb_layer[] = RGBLIGHT_LAYER_SEGMENTS(
 | 
			
		||||
    {RGBLIGHT_LEFT_BEG, RGBLIGHT_LEFT_NUM, HSV_BLUE}
 | 
			
		||||
);
 | 
			
		||||
// Function layer is red
 | 
			
		||||
const rgblight_segment_t PROGMEM bb_func_layer[] = RGBLIGHT_LAYER_SEGMENTS(
 | 
			
		||||
    {RGBLIGHT_LEFT_BEG, RGBLIGHT_LEFT_NUM, HSV_RED}
 | 
			
		||||
);
 | 
			
		||||
// Pointer layer is yellow
 | 
			
		||||
const rgblight_segment_t PROGMEM bb_mous_layer[] = RGBLIGHT_LAYER_SEGMENTS(
 | 
			
		||||
    {RGBLIGHT_LEFT_BEG, RGBLIGHT_LEFT_NUM, HSV_SPRINGGREEN}
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
// Music playback layer is magenta
 | 
			
		||||
const rgblight_segment_t PROGMEM bb_musi_layer[] = RGBLIGHT_LAYER_SEGMENTS(
 | 
			
		||||
    {0, RGBLED_NUM, HSV_ORANGE}
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
const rgblight_segment_t* const PROGMEM bb_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
 | 
			
		||||
    bb_base_layer,
 | 
			
		||||
    bb_char_layer,
 | 
			
		||||
    bb_game_layer,
 | 
			
		||||
    bb_medi_layer,
 | 
			
		||||
    bb_navi_layer,
 | 
			
		||||
    bb_symb_layer,
 | 
			
		||||
    bb_numb_layer,
 | 
			
		||||
    bb_func_layer,
 | 
			
		||||
    bb_mous_layer,
 | 
			
		||||
    bb_musi_layer
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
// Enable the LED switching layers
 | 
			
		||||
void keyboard_post_init_underglow(void) {
 | 
			
		||||
    rgblight_layers = bb_rgb_layers;
 | 
			
		||||
    // Default rgb mode is rainbow swirl; set this
 | 
			
		||||
    rgblight_sethsv_noeeprom(100, 255, 255);
 | 
			
		||||
    rgblight_mode_noeeprom(RGBLIGHT_MODE_RAINBOW_SWIRL + 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Set RGBLIGHT state depending on layer
 | 
			
		||||
layer_state_t layer_state_set_underglow(layer_state_t state) {
 | 
			
		||||
    // Activate layers if on that region
 | 
			
		||||
    rgblight_set_layer_state(_BASE, layer_state_cmp(state, _BASE));
 | 
			
		||||
    rgblight_set_layer_state(_GAME, layer_state_cmp(state, _GAME));
 | 
			
		||||
    rgblight_set_layer_state(_CHAR, layer_state_cmp(state, _CHAR));
 | 
			
		||||
    rgblight_set_layer_state(_MEDI, layer_state_cmp(state, _MEDI));
 | 
			
		||||
    rgblight_set_layer_state(_NAVI, layer_state_cmp(state, _NAVI));
 | 
			
		||||
    rgblight_set_layer_state(_SYMB, layer_state_cmp(state, _SYMB));
 | 
			
		||||
    rgblight_set_layer_state(_NUMB, layer_state_cmp(state, _NUMB));
 | 
			
		||||
    rgblight_set_layer_state(_FUNC, layer_state_cmp(state, _FUNC));
 | 
			
		||||
    rgblight_set_layer_state(_MOUS, layer_state_cmp(state, _MOUS));
 | 
			
		||||
    rgblight_set_layer_state(_MUSI, layer_state_cmp(state, _MUSI));
 | 
			
		||||
    // Return so other stuff can be done
 | 
			
		||||
    return state;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Hook into shutdown code
 | 
			
		||||
void shutdown_underglow(void) {
 | 
			
		||||
    // Make the LED's red on shutdown
 | 
			
		||||
    rgblight_enable_noeeprom();
 | 
			
		||||
    rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
 | 
			
		||||
    rgblight_sethsv(HSV_WHITE);
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue