[Keyboard] Change Corne RGB Matrix split handling (#7117)
authorDrashna Jaelre <drashna@live.com>
Mon, 28 Oct 2019 23:29:00 +0000 (16:29 -0700)
committernoroadsleft <18669334+noroadsleft@users.noreply.github.com>
Mon, 28 Oct 2019 23:29:00 +0000 (16:29 -0700)
* [Keyboard] Change Corne RGB Matrix split handling

This uses the "is_master" detection to set the led matrix, rather than a define at compile time.

This means that the same hex can be used for both halves, not just one or the other.  The caveat is that this costs ~240 bytes to do.
However, I feel that this is a good trade-off, not just lazy.

* Update documentation for RGB Matrix on the Corne

keyboards/crkbd/readme.md
keyboards/crkbd/rev1/rev1.c

index 2f59954..5de3e3a 100644 (file)
@@ -81,13 +81,4 @@ And in your `config.h` file, add the following:
 #endif
 ```
 
-However, to properly handle the LED matrix, two LED maps had to be used. One for the left half, and one for the right half.  For the left, you don't need to do anything. That's the default setup.  But for the right side, you need to add `RGB_MATRIX_SPLIT_RIGHT=yes` needs to be added to the command.  
-
-First, compile and flash the left half.  Then when that's done, recompile with the setting above.  It should look something like: 
-
-```sh
-make crkbd:default RGB_MATRIX_SPLIT_RIGHT=yes
-```
-And then flash this new firmware image. 
-
 After this is done, you should be able to use the normal RGB keycodes, but you'll see the RGB Matrix effects in use, giving a much better experience. 
index 9568d80..b26292a 100644 (file)
@@ -1,6 +1,5 @@
 #include "crkbd.h"
 
-
 #ifdef RGB_MATRIX_ENABLE
 
   // Logical Layout
   //          05    06       06    05
   //           15 14 07     07 14 15              3
 
-
-#ifdef RGB_MATRIX_SPLIT_RIGHT
-led_config_t g_led_config = { {
-    {  51,  50,  45,  44,  37,  36 },
-    {  52,  49,  46,  43,  38,  35 },
-    {  53,  48,  47,  42,  39,  34 },
-    { NO_LED, NO_LED, NO_LED,  41,  40,  33 },
-    {  24,  23,  18,  17,  10,   9 },
-    {  25,  22,  19,  16,  11,   8 },
-    {  26,  21,  20,  15,  12,   7 },
-    { NO_LED, NO_LED, NO_LED,  14,  13,   6 }
-}, {
-    { 139,  16 }, { 174,  13 }, { 208,  20 }, { 208,  38 }, { 174,  48 }, { 139,  52 }, { 129,  63 },
-    { 139,  39 }, { 139,  21 }, { 139,   4 }, { 156,   2 }, { 156,  19 }, { 156,  37 }, { 144,  58 },
-    { 164,  55 }, { 174,  35 }, { 174,  13 }, { 174,   0 }, { 191,   3 }, { 191,  20 }, { 191,  37 },
-    { 208,  42 }, { 208,  24 }, { 208,   7 }, { 224,   7 }, { 224,  24 }, { 224,  41 }, {  85,  16 },
-    {  50,  13 }, {  16,  20 }, {  16,  38 }, {  50,  48 }, {  85,  52 }, {  95,  63 }, {  85,  39 },
-    {  85,  21 }, {  85,   4 }, {  68,   2 }, {  68,  19 }, {  68,  37 }, {  80,  58 }, {  60,  55 },
-    {  50,  35 }, {  50,  13 }, {  50,   0 }, {  33,   3 }, {  33,  20 }, {  33,  37 }, {  16,  42 },
-    {  16,  24 }, {  16,   7 }, {   0,   7 }, {   0,  24 }, {   0,  41 }
-}, {
-    2, 2, 2, 2, 2, 2, 1,
-    4, 4, 4, 4, 4, 4, 1,
-    1, 4, 4, 4, 4, 4, 4,
-    4, 4, 4, 1, 1, 1, 2,
-    2, 2, 2, 2, 2, 1, 4,
-    4, 4, 4, 4, 4, 1, 1,
-    4, 4, 4, 4, 4, 4, 4,
-    4, 4, 1, 1, 1
-} };
-#else
 led_config_t g_led_config = { {
     {  24,  23,  18,  17,  10,   9 },
     {  25,  22,  19,  16,  11,   8 },
@@ -99,4 +67,43 @@ led_config_t g_led_config = { {
     4, 4, 1, 1, 1
 } };
 #endif
+
+__attribute__((weak))
+void matrix_init_user(void) {}
+
+void matrix_init_kb(void) {
+
+#ifdef RGB_MATRIX_ENABLE
+    if (!isLeftHand) {
+        g_led_config = (led_config_t){ {
+            {  51,  50,  45,  44,  37,  36 },
+            {  52,  49,  46,  43,  38,  35 },
+            {  53,  48,  47,  42,  39,  34 },
+            { NO_LED, NO_LED, NO_LED,  41,  40,  33 },
+            {  24,  23,  18,  17,  10,   9 },
+            {  25,  22,  19,  16,  11,   8 },
+            {  26,  21,  20,  15,  12,   7 },
+            { NO_LED, NO_LED, NO_LED,  14,  13,   6 }
+        }, {
+            { 139,  16 }, { 174,  13 }, { 208,  20 }, { 208,  38 }, { 174,  48 }, { 139,  52 }, { 129,  63 },
+            { 139,  39 }, { 139,  21 }, { 139,   4 }, { 156,   2 }, { 156,  19 }, { 156,  37 }, { 144,  58 },
+            { 164,  55 }, { 174,  35 }, { 174,  13 }, { 174,   0 }, { 191,   3 }, { 191,  20 }, { 191,  37 },
+            { 208,  42 }, { 208,  24 }, { 208,   7 }, { 224,   7 }, { 224,  24 }, { 224,  41 }, {  85,  16 },
+            {  50,  13 }, {  16,  20 }, {  16,  38 }, {  50,  48 }, {  85,  52 }, {  95,  63 }, {  85,  39 },
+            {  85,  21 }, {  85,   4 }, {  68,   2 }, {  68,  19 }, {  68,  37 }, {  80,  58 }, {  60,  55 },
+            {  50,  35 }, {  50,  13 }, {  50,   0 }, {  33,   3 }, {  33,  20 }, {  33,  37 }, {  16,  42 },
+            {  16,  24 }, {  16,   7 }, {   0,   7 }, {   0,  24 }, {   0,  41 }
+        }, {
+            2, 2, 2, 2, 2, 2, 1,
+            4, 4, 4, 4, 4, 4, 1,
+            1, 4, 4, 4, 4, 4, 4,
+            4, 4, 4, 1, 1, 1, 2,
+            2, 2, 2, 2, 2, 1, 4,
+            4, 4, 4, 4, 4, 1, 1,
+            4, 4, 4, 4, 4, 4, 4,
+            4, 4, 1, 1, 1
+        } };
+    }
 #endif
+    matrix_init_user();
+}