2
0

rev1.c 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. #include "crkbd.h"
  2. #ifdef AUDIO_ENABLE
  3. float tone_startup[][2] = SONG(STARTUP_SOUND);
  4. float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
  5. #endif
  6. #ifdef SSD1306OLED
  7. void led_set_kb(uint8_t usb_led) {
  8. // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
  9. //led_set_user(usb_led);
  10. }
  11. #endif
  12. #ifdef RGB_MATRIX_ENABLE
  13. // Logical Layout
  14. // Columns
  15. // Left
  16. // 0 1 2 3 4 5
  17. // ROWS
  18. // 25 24 19 18 11 10 0
  19. // 03 02 01
  20. // 26 23 20 17 12 09 1
  21. // 04 05 06
  22. // 27 22 21 16 13 08 2
  23. //
  24. // 15 14 07 3
  25. //
  26. // Right
  27. // 0 1 2 3 4 5
  28. // ROWS
  29. // 25 24 19 18 11 10 4
  30. // 03 02 01
  31. // 26 23 20 17 12 09 5
  32. // 04 05 06
  33. // 27 22 21 16 13 08 6
  34. //
  35. // 15 14 07 7
  36. //
  37. // Physical Layout
  38. // Columns
  39. // 0 1 2 3 4 5 6 7 8 9 10 11 12 13
  40. // ROWS
  41. // 25 24 19 18 11 10 10 11 18 19 24 25 0
  42. // 03 02 01 01 02 03
  43. // 26 23 20 17 12 09 09 12 17 20 23 26 1
  44. // 04 04
  45. // 27 22 21 16 13 08 08 13 16 21 22 27 2
  46. // 05 06 06 05
  47. // 15 14 07 07 14 15 3
  48. /* {row | col << 4} logical layout rows/cols
  49. * | {x=0..224, y=0..64} physical layout
  50. * | | | modifier
  51. * | | | */
  52. #define RGB_MATRIX_LEFT_LEDS \
  53. { { 0xFF }, { 85, 16 }, 2 }, /* 1 */ \
  54. { { 0xFF }, { 50, 13 }, 2 }, /* 2 */ \
  55. { { 0xFF }, { 16, 20 }, 2 }, /* 3 */ \
  56. { { 0xFF }, { 16, 38 }, 2 }, /* 4 */ \
  57. { { 0xFF }, { 50, 48 }, 2 }, /* 5 */ \
  58. { { 0xFF }, { 85, 52 }, 2 }, /* 6 */ \
  59. { { 3 | ( 5 << 4 ) }, { 95, 63 }, 1 }, /* 7 */ \
  60. { { 2 | ( 5 << 4 ) }, { 85, 39 }, 4 }, /* 8 */ \
  61. { { 1 | ( 5 << 4 ) }, { 85, 21 }, 4 }, /* 9 */ \
  62. { { 0 | ( 5 << 4 ) }, { 85, 4 }, 4 }, /* 10 */ \
  63. { { 0 | ( 4 << 4 ) }, { 68, 02 }, 4 }, /* 11 */ \
  64. { { 1 | ( 4 << 4 ) }, { 68, 19 }, 4 }, /* 12 */ \
  65. { { 2 | ( 4 << 4 ) }, { 68, 37 }, 4 }, /* 13 */ \
  66. { { 3 | ( 4 << 4 ) }, { 80, 58 }, 1 }, /* 14 */ \
  67. { { 3 | ( 3 << 4 ) }, { 60, 55 }, 1 }, /* 15 */ \
  68. { { 2 | ( 3 << 4 ) }, { 50, 35 }, 4 }, /* 16 */ \
  69. { { 1 | ( 3 << 4 ) }, { 50, 13 }, 4 }, /* 17 */ \
  70. { { 0 | ( 3 << 4 ) }, { 50, 0 }, 4 }, /* 18 */ \
  71. { { 0 | ( 2 << 4 ) }, { 33, 3 }, 4 }, /* 19 */ \
  72. { { 1 | ( 2 << 4 ) }, { 33, 20 }, 4 }, /* 20 */ \
  73. { { 2 | ( 2 << 4 ) }, { 33, 37 }, 4 }, /* 21 */ \
  74. { { 2 | ( 1 << 4 ) }, { 16, 42 }, 4 }, /* 22 */ \
  75. { { 1 | ( 1 << 4 ) }, { 16, 24 }, 4 }, /* 23 */ \
  76. { { 0 | ( 1 << 4 ) }, { 16, 7 }, 4 }, /* 24 */ \
  77. { { 0 | ( 0 << 4 ) }, { 0, 7 }, 1 }, /* 25 */ \
  78. { { 1 | ( 0 << 4 ) }, { 0, 24 }, 1 }, /* 26 */ \
  79. { { 2 | ( 0 << 4 ) }, { 0, 41 }, 1 }, /* 27 */
  80. #define RGB_MATRIX_RIGHT_LEDS \
  81. { { 0xFF }, { 139, 16 }, 2 }, /* 1 */ \
  82. { { 0xFF }, { 174, 13 }, 2 }, /* 2 */ \
  83. { { 0xFF }, { 208, 20 }, 2 }, /* 3 */ \
  84. { { 0xFF }, { 208, 38 }, 2 }, /* 4 */ \
  85. { { 0xFF }, { 174, 48 }, 2 }, /* 5 */ \
  86. { { 0xFF }, { 139, 52 }, 2 }, /* 6 */ \
  87. { { 7 | ( 5 << 4 ) }, { 129, 63 }, 1 }, /* 7 */ \
  88. { { 6 | ( 5 << 4 ) }, { 139, 39 }, 4 }, /* 8 */ \
  89. { { 5 | ( 5 << 4 ) }, { 139, 21 }, 4 }, /* 9 */ \
  90. { { 4 | ( 5 << 4 ) }, { 139, 4 }, 4 }, /* 10 */ \
  91. { { 4 | ( 4 << 4 ) }, { 156, 02 }, 4 }, /* 11 */ \
  92. { { 5 | ( 4 << 4 ) }, { 156, 19 }, 4 }, /* 12 */ \
  93. { { 6 | ( 4 << 4 ) }, { 156, 37 }, 4 }, /* 13 */ \
  94. { { 7 | ( 4 << 4 ) }, { 144, 58 }, 1 }, /* 14 */ \
  95. { { 7 | ( 3 << 4 ) }, { 164, 55 }, 1 }, /* 15 */ \
  96. { { 6 | ( 3 << 4 ) }, { 174, 35 }, 4 }, /* 16 */ \
  97. { { 5 | ( 3 << 4 ) }, { 174, 13 }, 4 }, /* 17 */ \
  98. { { 4 | ( 3 << 4 ) }, { 174, 0 }, 4 }, /* 18 */ \
  99. { { 4 | ( 2 << 4 ) }, { 191, 3 }, 4 }, /* 19 */ \
  100. { { 5 | ( 2 << 4 ) }, { 191, 20 }, 4 }, /* 20 */ \
  101. { { 6 | ( 2 << 4 ) }, { 191, 37 }, 4 }, /* 21 */ \
  102. { { 6 | ( 1 << 4 ) }, { 208, 42 }, 4 }, /* 22 */ \
  103. { { 5 | ( 1 << 4 ) }, { 208, 24 }, 4 }, /* 23 */ \
  104. { { 4 | ( 1 << 4 ) }, { 208, 7 }, 4 }, /* 24 */ \
  105. { { 4 | ( 0 << 4 ) }, { 224, 7 }, 1 }, /* 25 */ \
  106. { { 5 | ( 0 << 4 ) }, { 224, 24 }, 1 }, /* 26 */ \
  107. { { 6 | ( 0 << 4 ) }, { 224, 41 }, 1 }, /* 27 */
  108. #ifdef RGB_MATRIX_SPLIT_RIGHT
  109. rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = {
  110. RGB_MATRIX_RIGHT_LEDS
  111. RGB_MATRIX_LEFT_LEDS
  112. };
  113. #else
  114. rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = {
  115. RGB_MATRIX_LEFT_LEDS
  116. RGB_MATRIX_RIGHT_LEDS
  117. };
  118. #endif
  119. #endif
  120. void matrix_init_kb(void) {
  121. #ifdef AUDIO_ENABLE
  122. _delay_ms(20); // gets rid of tick
  123. PLAY_SONG(tone_startup);
  124. #endif
  125. matrix_init_user();
  126. };
  127. void shutdown_kb(void) {
  128. #ifdef AUDIO_ENABLE
  129. PLAY_SONG(tone_goodbye);
  130. _delay_ms(150);
  131. stop_all_notes();
  132. #endif
  133. }