rgb_matrix_kb.inc (4195B)
1 RGB_MATRIX_EFFECT(quick17_rgbm_effect) 2 3 #ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS 4 5 #include "quick17_prefs.h" 6 #include "quantum.h" 7 8 #define LED_LAYOUT(\ 9 L00, L01, L02, L03, L04, L05, \ 10 L10, L11, L12, L13, L14, L15, \ 11 L20, L21, L22, L23, L24, L25 \ 12 ) {\ 13 L10, L11, L20, L21, L22, L23,\ 14 L24, L25, L15, L14, L13, L12,\ 15 L00, L01, L02, L03, L04, L05\ 16 } 17 18 enum lighting_types { 19 BOUT, 20 _____, 21 INDC1, 22 INDC2, 23 INDC3, 24 INDC4, 25 INDC5, 26 JA_EN, 27 CAPSL, 28 NUM_L 29 }; 30 31 const uint8_t rgb_keymaps [][RGB_MATRIX_LED_COUNT] = { 32 [_CONTROL] = LED_LAYOUT( 33 _____, INDC2, INDC1, INDC2, INDC3, INDC4, 34 _____, INDC1, INDC1, INDC1, INDC3, INDC4, 35 _____, _____, _____, _____, INDC5, INDC5 36 ), 37 [_EDIT1] = LED_LAYOUT( 38 _____, _____, _____, _____, _____, INDC4, 39 _____, _____, _____, _____, _____, INDC1, 40 _____, _____, _____, _____, INDC5, INDC1 41 ), 42 [_EDIT2] = LED_LAYOUT( 43 _____, _____, _____, _____, _____, INDC4, 44 _____, _____, _____, _____, _____, INDC1, 45 _____, INDC5, INDC3, INDC5, INDC5, BOUT 46 ), 47 [_FN] = LED_LAYOUT( 48 _____, JA_EN, BOUT, INDC3, INDC4, INDC4, 49 CAPSL, NUM_L, BOUT, INDC3, INDC4, INDC4, 50 INDC2, INDC2, INDC1, INDC1, INDC5, INDC4 51 ) 52 }; 53 54 static void led_color_set(uint8_t index, uint8_t color_patterns) { 55 hsv_t hsv = rgb_matrix_config.hsv; // 'quantum/color.h' 56 rgb_t rgb_white = hsv_to_rgb(_HSV( 0, 0, hsv.v)); // HSV_WHITE 57 rgb_t rgb_indc1 = hsv_to_rgb(_HSV(128, 255, hsv.v)); // HSV_TEAL 58 rgb_t rgb_indc2 = hsv_to_rgb(_HSV(191, 255, hsv.v)); // HSV_PURPLE 59 rgb_t rgb_indc3 = hsv_to_rgb(_HSV( 64, 255, hsv.v)); // HSV_CHARTREUSE 60 rgb_t rgb_indc4 = hsv_to_rgb(_HSV(106, 255, hsv.v)); // HSV_SPRINGGREEN 61 rgb_t rgb_indc5 = hsv_to_rgb(_HSV(234, 128, hsv.v)); // HSV_PINK 62 rgb_t rgb_indc6 = hsv_to_rgb(_HSV(213, 255, hsv.v)); // HSV_MAGENTA 63 rgb_t rgb_indc_ja = hsv_to_rgb(_HSV( 0, 255, hsv.v)); // HSV_RED 64 rgb_t rgb_indc_en = hsv_to_rgb(_HSV( 85, 255, hsv.v)); // HSV_GREEN 65 rgb_t rgb_indc_win = hsv_to_rgb(_HSV(170, 255, hsv.v)); // HSV_BLUE 66 switch(color_patterns){ 67 case BOUT: rgb_matrix_set_color(index, RGB_BLACK); break; 68 case _____: rgb_matrix_set_color(index, _RGB(rgb_white)); break; 69 case INDC1: rgb_matrix_set_color(index, _RGB(rgb_indc1)); break; 70 case INDC2: rgb_matrix_set_color(index, _RGB(rgb_indc2)); break; 71 case INDC3: rgb_matrix_set_color(index, _RGB(rgb_indc3)); break; 72 case INDC4: rgb_matrix_set_color(index, _RGB(rgb_indc4)); break; 73 case INDC5: rgb_matrix_set_color(index, _RGB(rgb_indc5)); break; 74 case JA_EN: 75 if (keymap_config.swap_lctl_lgui == false) { 76 rgb_matrix_set_color(index, _RGB(rgb_indc_win)); 77 } else { 78 if (input_mode()){ 79 rgb_matrix_set_color(index, _RGB(rgb_indc_ja)); 80 } else { 81 rgb_matrix_set_color(index, _RGB(rgb_indc_en)); 82 } 83 } 84 break; 85 case CAPSL: 86 if (host_keyboard_led_state().caps_lock) { 87 rgb_matrix_set_color(index, _RGB(rgb_indc6)); 88 } else { 89 rgb_matrix_set_color(index, _RGB(rgb_white)); 90 } 91 break; 92 case NUM_L: 93 if (host_keyboard_led_state().num_lock) { 94 rgb_matrix_set_color(index, _RGB(rgb_indc6)); 95 } else { 96 rgb_matrix_set_color(index, _RGB(rgb_white)); 97 } 98 break; 99 } 100 } 101 102 static bool quick17_rgbm_effect (effect_params_t* params) { 103 RGB_MATRIX_USE_LIMITS(led_min, led_max); 104 for (uint8_t i = led_min; i < led_max; i++) { 105 if (IS_LAYER_ON(_EDIT2)){ 106 led_color_set(i, rgb_keymaps[_EDIT2][i]); 107 } else if (IS_LAYER_ON(_EDIT1)){ 108 led_color_set(i, rgb_keymaps[_EDIT1][i]); 109 } else if (IS_LAYER_ON(_FN)){ 110 led_color_set(i, rgb_keymaps[_FN][i]); 111 } else { // IS_LAYER_ON(_CONTROL) 112 led_color_set(i, rgb_keymaps[_CONTROL][i]); 113 } 114 } 115 return rgb_matrix_check_finished_leds(led_max); 116 } 117 118 #endif