237 lines
		
	
	
		
			8.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			237 lines
		
	
	
		
			8.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* Copyright 2021 Glorious, LLC <salman@pcgamingrace.com>
 | |
|  *
 | |
|  * 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 "ansi.h"
 | |
| 
 | |
| #ifdef RGB_MATRIX_ENABLE
 | |
| 
 | |
| const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = {
 | |
| /* Refer to IS31 manual for these locations
 | |
|  *   driver
 | |
|  *   |     R location
 | |
|  *   |     |          G location
 | |
|  *   |     |          |          B location
 | |
|  *   |     |          |          | */
 | |
|     {0, CS1_SW1,   CS2_SW1,   CS3_SW1  },  //  0  Esc
 | |
|     {0, CS4_SW2,   CS5_SW2,   CS6_SW2  },  //  1  1
 | |
|     {0, CS4_SW3,   CS5_SW3,   CS6_SW3  },  //  2  2
 | |
|     {0, CS4_SW4,   CS5_SW4,   CS6_SW4  },  //  3  3
 | |
|     {0, CS4_SW5,   CS5_SW5,   CS6_SW5  },  //  4  4
 | |
|     {0, CS4_SW6,   CS5_SW6,   CS6_SW6  },  //  5  5
 | |
|     {0, CS4_SW7,   CS5_SW7,   CS6_SW7  },  //  6  6
 | |
|     {0, CS4_SW8,   CS5_SW8,   CS6_SW8  },  //  7  7
 | |
|     {0, CS4_SW9,   CS5_SW9,   CS6_SW9  },  //  8  8
 | |
|     {0, CS4_SW10,  CS5_SW10,  CS6_SW10 },  //  9  9
 | |
|     {0, CS4_SW11,  CS5_SW11,  CS6_SW11 },  //  10 0
 | |
|     {0, CS4_SW12,  CS5_SW12,  CS6_SW12 },  //  11 -
 | |
|     {1, CS1_SW5,   CS2_SW5,   CS3_SW5  },  //  12 =
 | |
|     {1, CS1_SW7,   CS2_SW7,   CS3_SW7  },  //  13 Backspace
 | |
|     {1, CS4_SW4,   CS5_SW4,   CS6_SW4  },  //  14 Del
 | |
| 
 | |
|     {0, CS7_SW1,   CS8_SW1,   CS9_SW1  },  //  15 Tab
 | |
|     {0, CS7_SW2,   CS8_SW2,   CS9_SW2  },  //  16 Q
 | |
|     {0, CS7_SW3,   CS8_SW3,   CS9_SW3  },  //  17 W
 | |
|     {0, CS7_SW4,   CS8_SW4,   CS9_SW4  },  //  18 E
 | |
|     {0, CS7_SW5,   CS8_SW5,   CS9_SW5  },  //  19 R
 | |
|     {0, CS7_SW6,   CS8_SW6,   CS9_SW6  },  //  20 T
 | |
|     {0, CS7_SW7,   CS8_SW7,   CS9_SW7  },  //  21 Y
 | |
|     {0, CS7_SW8,   CS8_SW8,   CS9_SW8  },  //  22 U
 | |
|     {0, CS7_SW9,   CS8_SW9,   CS9_SW9  },  //  23 I
 | |
|     {0, CS7_SW10,  CS8_SW10,  CS9_SW10 },  //  24 O
 | |
|     {0, CS7_SW11,  CS8_SW11,  CS9_SW11 },  //  25 P
 | |
|     {0, CS7_SW12,  CS8_SW12,  CS9_SW12 },  //  26 [
 | |
|     {1, CS1_SW8,   CS2_SW8,   CS3_SW8  },  //  27 ]
 | |
|     {1, CS1_SW9,   CS2_SW9,   CS3_SW9  },  //  28 \|
 | |
|     {1, CS4_SW7,   CS5_SW7,   CS6_SW7  },  //  29 PgUp
 | |
| 
 | |
|     {0, CS10_SW1,  CS11_SW1,  CS12_SW1 },  //  30 Caps Lock
 | |
|     {0, CS10_SW2,  CS11_SW2,  CS12_SW2 },  //  31 A
 | |
|     {0, CS10_SW3,  CS11_SW3,  CS12_SW3 },  //  32 S
 | |
|     {0, CS10_SW4,  CS11_SW4,  CS12_SW4 },  //  33 D
 | |
|     {0, CS10_SW5,  CS11_SW5,  CS12_SW5 },  //  34 F
 | |
|     {0, CS10_SW6,  CS11_SW6,  CS12_SW6 },  //  35 G
 | |
|     {0, CS10_SW7,  CS11_SW7,  CS12_SW7 },  //  36 H
 | |
|     {0, CS10_SW8,  CS11_SW8,  CS12_SW8 },  //  37 J
 | |
|     {0, CS10_SW9,  CS11_SW9,  CS12_SW9 },  //  38 K
 | |
|     {0, CS10_SW10, CS11_SW10, CS12_SW10},  //  39 L
 | |
|     {0, CS10_SW11, CS11_SW11, CS12_SW11},  //  40 ;
 | |
|     {0, CS10_SW12, CS11_SW12, CS12_SW12},  //  41 '
 | |
|     {1, CS1_SW11,  CS2_SW11,  CS3_SW11 },  //  42 Enter
 | |
|     {1, CS4_SW5,   CS5_SW5,   CS6_SW5  },  //  43 PgDn
 | |
| 
 | |
|     {0, CS13_SW1,  CS14_SW1,  CS15_SW1 },  //  44 Shift_L
 | |
|     {0, CS13_SW3,  CS14_SW3,  CS15_SW3 },  //  45 Z
 | |
|     {0, CS13_SW4,  CS14_SW4,  CS15_SW4 },  //  46 X
 | |
|     {0, CS13_SW5,  CS14_SW5,  CS15_SW5 },  //  47 C
 | |
|     {0, CS13_SW6,  CS14_SW6,  CS15_SW6 },  //  48 V
 | |
|     {0, CS13_SW7,  CS14_SW7,  CS15_SW7 },  //  49 B
 | |
|     {0, CS13_SW8,  CS14_SW8,  CS15_SW8 },  //  50 N
 | |
|     {0, CS13_SW9,  CS14_SW9,  CS15_SW9 },  //  51 M
 | |
|     {0, CS13_SW10, CS14_SW10, CS15_SW10},  //  52 ,
 | |
|     {0, CS13_SW11, CS14_SW11, CS15_SW11},  //  53 .
 | |
|     {0, CS13_SW12, CS14_SW12, CS15_SW12},  //  54 /
 | |
|     {1, CS4_SW8,   CS5_SW8,   CS6_SW8  },  //  55 Shift_R
 | |
|     {1, CS4_SW9,   CS5_SW9,   CS6_SW9  },  //  56 Up
 | |
|     {1, CS4_SW6,   CS5_SW6,   CS6_SW6  },  //  57 END
 | |
| 
 | |
|     {0, CS16_SW1,  CS17_SW1,  CS18_SW1 },  //  58 Ctrl_L
 | |
|     {0, CS16_SW2,  CS17_SW2,  CS18_SW2 },  //  59 Win_L
 | |
|     {0, CS16_SW3,  CS17_SW3,  CS18_SW3 },  //  60 Alt_L
 | |
|     {0, CS16_SW6,  CS17_SW6,  CS18_SW6 },  //  61 Space
 | |
|     {0, CS16_SW9,  CS17_SW9,  CS18_SW9 },  //  62 Alt_R
 | |
|     {0, CS16_SW10, CS17_SW10, CS18_SW10},  //  63 FN
 | |
|     {1, CS4_SW10,  CS5_SW10,  CS6_SW10 },  //  64 Left
 | |
|     {1, CS4_SW11,  CS5_SW11,  CS6_SW11 },  //  65 Down
 | |
|     {1, CS4_SW12,  CS5_SW12,  CS6_SW12 },  //  66 Right
 | |
| 
 | |
|     {1, CS13_SW1,  CS14_SW1,  CS15_SW1 },  //  69 LED 1
 | |
|     {1, CS13_SW2,  CS14_SW2,  CS15_SW2 },  //  70 LED 2
 | |
|     {1, CS13_SW3,  CS14_SW3,  CS15_SW3 },  //  71 LED 3
 | |
|     {1, CS13_SW4,  CS14_SW4,  CS15_SW4 },  //  72 LED 4
 | |
|     {1, CS13_SW5,  CS14_SW5,  CS15_SW5 },  //  73 LED 5
 | |
|     {1, CS13_SW6,  CS14_SW6,  CS15_SW6 },  //  74 LED 6
 | |
|     {1, CS13_SW7,  CS14_SW7,  CS15_SW7 },  //  75 LED 7
 | |
|     {1, CS13_SW8,  CS14_SW8,  CS15_SW8 },  //  76 LED 8
 | |
|     {1, CS13_SW9,  CS14_SW9,  CS15_SW9 },  //  77 LED 9
 | |
|     {1, CS13_SW10, CS14_SW10, CS15_SW10},  //  78 LED 10
 | |
|     {1, CS16_SW1,  CS17_SW1,  CS18_SW1 },  //  79 LED 11
 | |
|     {1, CS16_SW2,  CS17_SW2,  CS18_SW2 },  //  80 LED 12
 | |
|     {1, CS16_SW3,  CS17_SW3,  CS18_SW3 },  //  81 LED 13
 | |
|     {1, CS16_SW4,  CS17_SW4,  CS18_SW4 },  //  82 LED 14
 | |
|     {1, CS16_SW5,  CS17_SW5,  CS18_SW5 },  //  83 LED 15
 | |
|     {1, CS16_SW6,  CS17_SW6,  CS18_SW6 },  //  84 LED 16
 | |
|     {1, CS16_SW7,  CS17_SW7,  CS18_SW7 },  //  85 LED 17
 | |
|     {1, CS16_SW8,  CS17_SW8,  CS18_SW8 },  //  86 LED 18
 | |
|     {1, CS16_SW9,  CS17_SW9,  CS18_SW9 },  //  87 LED 19
 | |
|     {1, CS16_SW10, CS17_SW10, CS18_SW10}   //  88 LED 20
 | |
| };
 | |
| 
 | |
| #define __ NO_LED
 | |
| 
 | |
| led_config_t g_led_config = {{
 | |
|     { 44, 57, __, 64, __, 66, 58, 55},
 | |
|     { 16, 15, 31,  0, 45, 59, __,  1},
 | |
|     { 17, 30, 32, 60, 46, 14, 29,  2},
 | |
|     { 18, 61, 33, 63, 47, 56, 62,  3},
 | |
|     { 19, 20, 34, 35, 48, 49,  5,  4},
 | |
|     { 22, 21, 37, 36, 51, 50,  6,  7},
 | |
|     { 23, 27, 38, __, 52, 43, 12,  8},
 | |
|     { 24, 13, 39, 65, 53, __, 28,  9},
 | |
|     { 25, 26, 40, 41, 42, 54, 11, 10}
 | |
| }, {
 | |
|     {14,  0 }, //  0  Esc
 | |
|     {28,  0 }, //  1  1
 | |
|     {42,  0 }, //  2  2
 | |
|     {56,  0 }, //  3  3
 | |
|     {70,  0 }, //  4  4
 | |
|     {84,  0 }, //  5  5
 | |
|     {98,  0 }, //  6  6
 | |
|     {112, 0 }, //  7  7
 | |
|     {126, 0 }, //  8  8
 | |
|     {140, 0 }, //  9  9
 | |
|     {154, 0 }, //  10 0
 | |
|     {168, 0 }, //  11 -
 | |
|     {182, 0 }, //  12 =
 | |
|     {196, 0 }, //  13 Backspace
 | |
|     {210, 0 }, //  14 Del
 | |
| 
 | |
|     {14,  16}, //  15 Tab
 | |
|     {28,  16}, //  16 Q
 | |
|     {42,  16}, //  17 W
 | |
|     {56,  16}, //  18 E
 | |
|     {70,  16}, //  19 R
 | |
|     {84,  16}, //  20 T
 | |
|     {98,  16}, //  21 Y
 | |
|     {112, 16}, //  22 U
 | |
|     {126, 16}, //  23 I
 | |
|     {140, 16}, //  24 O
 | |
|     {154, 16}, //  25 P
 | |
|     {168, 16}, //  26 [
 | |
|     {182, 16}, //  27 ]
 | |
|     {196, 16}, //  28 \|
 | |
|     {210, 16}, //  29 PgUp
 | |
| 
 | |
|     {14,  32}, //  30 Caps Lock
 | |
|     {28,  32}, //  31 A
 | |
|     {42,  32}, //  32 S
 | |
|     {56,  32}, //  33 D
 | |
|     {70,  32}, //  34 F
 | |
|     {84,  32}, //  35 G
 | |
|     {98,  32}, //  36 H
 | |
|     {112, 32}, //  37 J
 | |
|     {126, 32}, //  38 K
 | |
|     {140, 32}, //  39 L
 | |
|     {154, 32}, //  40 ;
 | |
|     {168, 32}, //  41 '
 | |
|     {196, 32}, //  42 Enter
 | |
|     {210, 32}, //  43 PgDn
 | |
| 
 | |
|     {14,  48}, //  44 Shift_L
 | |
|     {42,  48}, //  45 Z
 | |
|     {56,  48}, //  46 X
 | |
|     {70,  48}, //  47 C
 | |
|     {84,  48}, //  48 V
 | |
|     {98,  48}, //  49 B
 | |
|     {112, 48}, //  50 N
 | |
|     {126, 48}, //  51 M
 | |
|     {140, 48}, //  52 ,
 | |
|     {154, 48}, //  53 .
 | |
|     {168, 48}, //  54 /
 | |
|     {182, 48}, //  55 Shift_R
 | |
|     {196, 48}, //  56 Up
 | |
|     {210, 48}, //  57 END
 | |
| 
 | |
|     {14,  64}, //  58 Ctrl_L
 | |
|     {28,  64}, //  59 Win_L
 | |
|     {42,  64}, //  60 Alt_L
 | |
|     {84,  64}, //  61 Space
 | |
|     {126, 64}, //  62 Alt_R
 | |
|     {140, 64}, //  63 FN
 | |
|     {182, 64}, //  64 Left
 | |
|     {196, 64}, //  65 Down
 | |
|     {210, 64}, //  66 Right
 | |
| 
 | |
|     {0,   0},  //  69 LED 1
 | |
|     {0,   7},  //  70 LED 2
 | |
|     {0,   14}, //  71 LED 3
 | |
|     {0,   21}, //  72 LED 4
 | |
|     {0,   28}, //  73 LED 5
 | |
|     {0,   35}, //  74 LED 6
 | |
|     {0,   42}, //  75 LED 7
 | |
|     {0,   49}, //  76 LED 8
 | |
|     {0,   56}, //  77 LED 9
 | |
|     {0,   64}, //  78 LED 10
 | |
|     {224, 0 }, //  79 LED 11
 | |
|     {224, 7 }, //  80 LED 12
 | |
|     {224, 14}, //  81 LED 13
 | |
|     {224, 21}, //  82 LED 14
 | |
|     {224, 28}, //  83 LED 15
 | |
|     {224, 35}, //  84 LED 16
 | |
|     {224, 42}, //  85 LED 17
 | |
|     {224, 49}, //  86 LED 18
 | |
|     {224, 56}, //  87 LED 19
 | |
|     {224, 64}, //  88 LED 20
 | |
| }, {
 | |
|     4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
 | |
|     4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
 | |
|     4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
 | |
|     4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
 | |
|     4, 4, 4, 4, 4, 4, 4, 4, 4,
 | |
|     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
 | |
|     2, 2, 2, 2, 2, 2, 2, 2, 2, 2
 | |
| } };
 | |
| #endif
 |