summary refs log tree commit diff
path: root/quantum
diff options
context:
space:
mode:
authorQMK Bot <hello@qmk.fm>2020-12-06 06:16:19 +0000
committerQMK Bot <hello@qmk.fm>2020-12-06 06:16:19 +0000
commite199fb619081dddaf76f203b77660f9ba41a30bd (patch)
tree0c439b9a336e9215c5e9580098a1820747bfc49a /quantum
parent5cfbfc2c52aabd02733c14ba66c0c77f55506049 (diff)
parentc59f87a5d73a2d8a2085663ae329c4d7c75c83e3 (diff)
Merge remote-tracking branch 'origin/master' into develop
Diffstat (limited to 'quantum')
-rw-r--r--quantum/color.h20
1 files changed, 19 insertions, 1 deletions
diff --git a/quantum/color.h b/quantum/color.h
index 5c5a0f0ebd..f0ee782757 100644
--- a/quantum/color.h
+++ b/quantum/color.h
@@ -36,20 +36,38 @@
 #    define LED_TYPE RGB
 #endif
 
-// WS2812 specific layout
+#define WS2812_BYTE_ORDER_RGB 0
+#define WS2812_BYTE_ORDER_GRB 1
+
+#ifndef WS2812_BYTE_ORDER
+#    define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_GRB
+#endif
+
 typedef struct PACKED {
+#if (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_GRB)
     uint8_t g;
     uint8_t r;
     uint8_t b;
+#elif (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_RGB)
+    uint8_t r;
+    uint8_t g;
+    uint8_t b;
+#endif
 } cRGB;
 
 typedef cRGB RGB;
 
 // WS2812 specific layout
 typedef struct PACKED {
+#if (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_GRB)
     uint8_t g;
     uint8_t r;
     uint8_t b;
+#elif (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_RGB)
+    uint8_t r;
+    uint8_t g;
+    uint8_t b;
+#endif
     uint8_t w;
 } cRGBW;