logo

qmk_firmware

custom branch of QMK firmware git clone https://anongit.hacktivis.me/git/qmk_firmware.git

jis_encoder.c (7266B)


  1. /* Copyright 2021 @ Keychron (https://www.keychron.com)
  2. *
  3. * This program is free software: you can redistribute it and/or modify
  4. * it under the terms of the GNU General Public License as published by
  5. * the Free Software Foundation, either version 2 of the License, or
  6. * (at your option) any later version.
  7. *
  8. * This program is distributed in the hope that it will be useful,
  9. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. * GNU General Public License for more details.
  12. *
  13. * You should have received a copy of the GNU General Public License
  14. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  15. */
  16. #include "quantum.h"
  17. #ifdef RGB_MATRIX_ENABLE
  18. const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
  19. /* Refer to SNLED27351 manual for these locations
  20. * driver
  21. * | R location
  22. * | | G location
  23. * | | | B location
  24. * | | | | */
  25. {0, CB9_CA1, CB7_CA1, CB8_CA1}, // ESC
  26. {0, CB9_CA2, CB7_CA2, CB8_CA2}, // F1
  27. {0, CB9_CA3, CB7_CA3, CB8_CA3}, // F2
  28. {0, CB9_CA4, CB7_CA4, CB8_CA4}, // F3
  29. {0, CB9_CA5, CB7_CA5, CB8_CA5}, // F4
  30. {0, CB9_CA6, CB7_CA6, CB8_CA6}, // F5
  31. {0, CB9_CA7, CB7_CA7, CB8_CA7}, // F6
  32. {0, CB9_CA8, CB7_CA8, CB8_CA8}, // F7
  33. {0, CB9_CA9, CB7_CA9, CB8_CA9}, // F8
  34. {0, CB9_CA10, CB7_CA10, CB8_CA10}, // F9
  35. {0, CB9_CA11, CB7_CA11, CB8_CA11}, // F10
  36. {0, CB9_CA12, CB7_CA12, CB8_CA12}, // F11
  37. {0, CB9_CA13, CB7_CA13, CB8_CA13}, // F12
  38. {0, CB9_CA14, CB7_CA14, CB8_CA14}, // Mute
  39. {0, CB9_CA15, CB7_CA15, CB8_CA15}, // Print
  40. {0, CB9_CA16, CB7_CA16, CB8_CA16}, // Cortana
  41. {1, CB9_CA15, CB7_CA15, CB8_CA15}, // Light
  42. {0, CB3_CA1, CB1_CA1, CB2_CA1}, // `~
  43. {0, CB3_CA2, CB1_CA2, CB2_CA2}, // 1!
  44. {0, CB3_CA3, CB1_CA3, CB2_CA3}, // 2@
  45. {0, CB3_CA4, CB1_CA4, CB2_CA4}, // 3#
  46. {0, CB3_CA5, CB1_CA5, CB2_CA5}, // 4$
  47. {0, CB3_CA6, CB1_CA6, CB2_CA6}, // 5%
  48. {0, CB3_CA7, CB1_CA7, CB2_CA7}, // 6^
  49. {0, CB3_CA8, CB1_CA8, CB2_CA8}, // 7&
  50. {0, CB3_CA9, CB1_CA9, CB2_CA9}, // 8*
  51. {0, CB3_CA10, CB1_CA10, CB2_CA10}, // 9()
  52. {0, CB3_CA11, CB1_CA11, CB2_CA11}, // 0)
  53. {0, CB3_CA12, CB1_CA12, CB2_CA12}, // -_
  54. {0, CB3_CA13, CB1_CA13, CB2_CA13}, // =+
  55. {0, CB3_CA14, CB1_CA14, CB2_CA14}, // |
  56. {1, CB6_CA6, CB4_CA6, CB5_CA6}, // Backspace
  57. {0, CB3_CA15, CB1_CA15, CB2_CA15}, // Ins
  58. {0, CB3_CA16, CB1_CA16, CB2_CA16}, // Home
  59. {1, CB9_CA16, CB7_CA16, CB8_CA16}, // Page Up
  60. {0, CB6_CA1, CB4_CA1, CB5_CA1}, // tab
  61. {0, CB6_CA2, CB4_CA2, CB5_CA2}, // Q
  62. {0, CB6_CA3, CB4_CA3, CB5_CA3}, // W
  63. {0, CB6_CA4, CB4_CA4, CB5_CA4}, // E
  64. {0, CB6_CA5, CB4_CA5, CB5_CA5}, // R
  65. {0, CB6_CA6, CB4_CA6, CB5_CA6}, // T
  66. {0, CB6_CA7, CB4_CA7, CB5_CA7}, // Y
  67. {0, CB6_CA8, CB4_CA8, CB5_CA8}, // U
  68. {0, CB6_CA9, CB4_CA9, CB5_CA9}, // I
  69. {0, CB6_CA10, CB4_CA10, CB5_CA10}, // O
  70. {0, CB6_CA11, CB4_CA11, CB5_CA11}, // P
  71. {0, CB6_CA12, CB4_CA12, CB5_CA12}, // [{
  72. {0, CB6_CA13, CB4_CA13, CB5_CA13}, // }}
  73. {0, CB6_CA15, CB4_CA15, CB5_CA15}, // Del
  74. {0, CB6_CA16, CB4_CA16, CB5_CA16}, // End
  75. {1, CB9_CA13, CB7_CA13, CB8_CA13}, // Page Down
  76. {1, CB9_CA1, CB7_CA1, CB8_CA1}, // Cpas
  77. {1, CB9_CA2, CB7_CA2, CB8_CA2}, // A
  78. {1, CB9_CA3, CB7_CA3, CB8_CA3}, // S
  79. {1, CB9_CA4, CB7_CA4, CB8_CA4}, // D
  80. {1, CB9_CA5, CB7_CA5, CB8_CA5}, // F
  81. {1, CB9_CA6, CB7_CA6, CB8_CA6}, // G
  82. {1, CB9_CA7, CB7_CA7, CB8_CA7}, // H
  83. {1, CB9_CA8, CB7_CA8, CB8_CA8}, // J
  84. {1, CB9_CA9, CB7_CA9, CB8_CA9}, // K
  85. {1, CB9_CA10, CB7_CA10, CB8_CA10}, // L
  86. {1, CB9_CA11, CB7_CA11, CB8_CA11}, // ;
  87. {1, CB9_CA12, CB7_CA12, CB8_CA12}, // :
  88. {1, CB9_CA14, CB7_CA14, CB8_CA14}, // #~
  89. {0, CB6_CA14, CB4_CA14, CB5_CA14}, // Enter
  90. {1, CB3_CA1, CB1_CA1, CB2_CA1}, // LShift
  91. {1, CB3_CA3, CB1_CA3, CB2_CA3}, // Z
  92. {1, CB3_CA4, CB1_CA4, CB2_CA4}, // X
  93. {1, CB3_CA5, CB1_CA5, CB2_CA5}, // C
  94. {1, CB3_CA6, CB1_CA6, CB2_CA6}, // V
  95. {1, CB3_CA7, CB1_CA7, CB2_CA7}, // B
  96. {1, CB3_CA8, CB1_CA8, CB2_CA8}, // N
  97. {1, CB3_CA9, CB1_CA9, CB2_CA9}, // M
  98. {1, CB3_CA10, CB1_CA10, CB2_CA10}, // ,<
  99. {1, CB3_CA11, CB1_CA11, CB2_CA11}, // .>
  100. {1, CB3_CA12, CB1_CA12, CB2_CA12}, // /?
  101. {1, CB3_CA13, CB1_CA13, CB2_CA13}, // |
  102. {1, CB3_CA14, CB1_CA14, CB2_CA14}, // RShift
  103. {1, CB3_CA16, CB1_CA16, CB2_CA16}, // Up
  104. {1, CB6_CA1, CB4_CA1, CB5_CA1}, // LCtrl
  105. {1, CB6_CA2, CB4_CA2, CB5_CA2}, // LWin
  106. {1, CB6_CA3, CB4_CA3, CB5_CA3}, // LAlt
  107. {1, CB6_CA4, CB4_CA4, CB5_CA4}, // NUm
  108. {1, CB6_CA7, CB4_CA7, CB5_CA7}, // Space
  109. {1, CB6_CA10, CB4_CA10, CB5_CA10}, // Jap
  110. {1, CB6_CA11, CB4_CA11, CB5_CA11}, // RAlt
  111. {1, CB6_CA12, CB4_CA12, CB5_CA12}, // RWin
  112. {1, CB6_CA13, CB4_CA13, CB5_CA13}, // Fn
  113. {1, CB6_CA14, CB4_CA14, CB5_CA14}, // RCtrl
  114. {1, CB6_CA15, CB4_CA15, CB5_CA15}, // Left
  115. {1, CB6_CA16, CB4_CA16, CB5_CA16}, // Down
  116. {1, CB3_CA15, CB1_CA15, CB2_CA15}, // Right
  117. };
  118. # define __ NO_LED
  119. led_config_t g_led_config = {
  120. {
  121. // Key Matrix to LED Index
  122. { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
  123. { 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33 },
  124. { 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 64, 48, 49 },
  125. { 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 50, 63, 16, 34 },
  126. { 65, __, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 91, 78 },
  127. { 79, 80, 81, 82, __, 31, 83, __, __, 84, 85, 86, 87, 88, 89, 90 },
  128. },
  129. {
  130. // LED Index to Physical Position
  131. {0,0}, {16,0}, {29,0}, {42,0}, {55,0}, {71,0}, {84,0}, {97,0}, {110,0}, {126,0}, {139,0}, {152,0}, {165,0}, {182,0}, {198,0}, {211,0}, {224,0},
  132. {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {169,15}, {182,15}, {198,15}, {211,15}, {224,15},
  133. {3,28}, {19,28}, {32,28}, {45,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {198,28}, {211,28}, {224,28},
  134. {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {166,40}, {183,36},
  135. {8,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {159,52}, {177,52}, {211,52},
  136. {2,64}, {16,64}, {31,64}, {45,64}, {81,64}, {119,64}, {135,64}, {151,64}, {166,64}, {180,64}, {198,64}, {211,64}, {224,64},
  137. },
  138. {
  139. // RGB LED Index to Flag
  140. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  141. 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
  142. 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
  143. 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
  144. 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
  145. 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1,
  146. }
  147. };
  148. #endif // RGB_MATRIX_ENABLE