qmk_firmware

QMK firmware for my keyboards (Corne, Sweep Ferris) and trackball (Ploopy Adept)
Log | Files | Refs | Submodules | LICENSE

rev_a.c (4690B)


      1 /*
      2 Copyright 2022 Stefan Sundin "4pplet" <4pplet@protonmail.com>
      3 
      4 This program is free software: you can redistribute it and/or modify
      5 it under the terms of the GNU General Public License as published by
      6 the Free Software Foundation, either version 2 of the License, or
      7 (at your option) any later version.
      8 
      9 This program is distributed in the hope that it will be useful,
     10 but WITHOUT ANY WARRANTY; without even the implied warranty of
     11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     12 GNU General Public License for more details.
     13 
     14 You should have received a copy of the GNU General Public License
     15 along with this program.  If not, see <http://www.gnu.org/licenses/>.
     16 */
     17 #include "quantum.h"
     18 
     19 #ifndef CAPS_LOCK_ENABLE
     20 #    define CAPS_LOCK_ENABLE true
     21 #endif
     22 
     23 #ifndef CAPS_LOCK_COLOR
     24 #    define CAPS_LOCK_COLOR RGB_RED
     25 #endif
     26 
     27 #ifndef CAPS_LED_GROUP
     28 // change what leds to target, for example LED_FLAG_KEYLIGHT for alpas or LED_FLAG_MODIFIER for modifiers
     29 #    define CAPS_LED_GROUP LED_FLAG_INDICATOR
     30 #endif
     31 
     32 #ifdef RGB_MATRIX_ENABLE
     33 const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
     34     {0, SW11_CS2, SW10_CS2, SW12_CS2},    // D402
     35     {0, SW11_CS3, SW10_CS3, SW12_CS3},    // D403
     36     {0, SW11_CS4, SW10_CS4, SW12_CS4},    // D404
     37     {0, SW11_CS5, SW10_CS5, SW12_CS5},    // D405
     38     {0, SW11_CS6, SW10_CS6, SW12_CS6},    // D406
     39     {0, SW11_CS7, SW10_CS7, SW12_CS7},    // D407
     40     {0, SW11_CS8, SW10_CS8, SW12_CS8},    // D408
     41     {0, SW11_CS9, SW10_CS9, SW12_CS9},    // D409
     42     {0, SW11_CS10, SW10_CS10, SW12_CS10}, // D410
     43     {0, SW11_CS11, SW10_CS11, SW12_CS11}, // D411
     44     {0, SW11_CS12, SW10_CS12, SW12_CS12}, // D412
     45     {0, SW11_CS13, SW10_CS13, SW12_CS13}, // D413
     46     {0, SW11_CS14, SW10_CS14, SW12_CS14}, // D414
     47     {0, SW11_CS15, SW10_CS15, SW12_CS15}, // D415
     48     {0, SW11_CS1, SW10_CS1, SW12_CS1},    // D401
     49     {0, SW8_CS4, SW7_CS4, SW9_CS4},       // D420
     50     {0, SW8_CS5, SW7_CS5, SW9_CS5},       // D421
     51     {0, SW8_CS6, SW7_CS6, SW9_CS6},       // D422
     52     {0, SW8_CS7, SW7_CS7, SW9_CS7},       // D423
     53     {0, SW8_CS8, SW7_CS8, SW9_CS8},       // D424
     54     {0, SW8_CS9, SW7_CS9, SW9_CS9},       // D425
     55     {0, SW8_CS10, SW7_CS10, SW9_CS10},    // D426
     56     {0, SW8_CS11, SW7_CS11, SW9_CS11},    // D427
     57     {0, SW8_CS12, SW7_CS12, SW9_CS12},    // D428
     58     {0, SW8_CS13, SW7_CS13, SW9_CS13},    // D429
     59     {0, SW8_CS14, SW7_CS14, SW9_CS14},    // D430
     60     {0, SW8_CS15, SW7_CS15, SW9_CS15},    // D431
     61     {0, SW11_CS16, SW10_CS16, SW12_CS16}, // D416
     62     {0, SW8_CS2, SW7_CS2, SW9_CS2},       // D418
     63     {0, SW8_CS3, SW7_CS3, SW9_CS3},       // D419
     64     {0, SW5_CS5, SW4_CS5, SW6_CS5},       // D437
     65     {0, SW5_CS6, SW4_CS6, SW6_CS6},       // D438
     66     {0, SW5_CS7, SW4_CS7, SW6_CS7},       // D439
     67     {0, SW5_CS8, SW4_CS8, SW6_CS8},       // D440
     68     {0, SW5_CS9, SW4_CS9, SW6_CS9},       // D441
     69     {0, SW5_CS10, SW4_CS10, SW6_CS10},    // D442
     70     {0, SW5_CS11, SW4_CS11, SW6_CS11},    // D443
     71     {0, SW5_CS12, SW4_CS12, SW6_CS12},    // D444
     72     {0, SW5_CS13, SW4_CS13, SW6_CS13},    // D445
     73     {0, SW5_CS14, SW4_CS14, SW6_CS14},    // D446
     74     {0, SW8_CS16, SW7_CS16, SW9_CS16},    // D432
     75     {0, SW8_CS1, SW7_CS1, SW9_CS1},       // D417
     76     {0, SW5_CS3, SW4_CS3, SW6_CS3},       // D435
     77     {0, SW5_CS4, SW4_CS4, SW6_CS4},       // D436
     78     {0, SW2_CS2, SW1_CS2, SW3_CS2},       // D450
     79     {0, SW2_CS3, SW1_CS3, SW3_CS3},       // D451
     80     {0, SW2_CS4, SW1_CS4, SW3_CS4},       // D452
     81     {0, SW2_CS6, SW1_CS6, SW3_CS6},       // D454
     82     {0, SW2_CS8, SW1_CS8, SW3_CS8},       // D456
     83     {0, SW2_CS9, SW1_CS9, SW3_CS9},       // D457
     84     {0, SW2_CS10, SW1_CS10, SW3_CS10},    // D458
     85     {0, SW2_CS12, SW1_CS12, SW3_CS12},    // D460
     86     {0, SW2_CS13, SW1_CS13, SW3_CS13},    // D461
     87     {0, SW5_CS15, SW4_CS15, SW6_CS15},    // D447
     88     {0, SW5_CS1, SW4_CS1, SW6_CS1},       // D433
     89     {0, SW5_CS2, SW4_CS2, SW6_CS2},       // D434
     90     {0, SW2_CS1, SW1_CS1, SW3_CS1},       // D449
     91     {0, SW2_CS7, SW1_CS7, SW3_CS7},       // D455
     92     {0, SW2_CS11, SW1_CS11, SW3_CS11},    // D459
     93     {0, SW2_CS14, SW1_CS14, SW3_CS14},    // D462
     94     {0, SW2_CS15, SW1_CS15, SW3_CS15},    // D463
     95     {0, SW2_CS16, SW1_CS16, SW3_CS16}     // D464
     96 };
     97 
     98 bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {
     99     if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) {
    100         return false;
    101     }
    102 
    103     if (host_keyboard_led_state().caps_lock && CAPS_LOCK_ENABLE) {
    104         for (uint8_t i = led_min; i <= led_max; i++) {
    105             if (g_led_config.flags[i] & CAPS_LED_GROUP) {
    106                 rgb_matrix_set_color(i, CAPS_LOCK_COLOR);
    107             }
    108         }
    109     }
    110 
    111     return true;
    112 }
    113 #endif