aboutsummaryrefslogtreecommitdiff
path: root/quantum/split_common/split_util.c
diff options
context:
space:
mode:
Diffstat (limited to 'quantum/split_common/split_util.c')
-rw-r--r--quantum/split_common/split_util.c53
1 files changed, 31 insertions, 22 deletions
diff --git a/quantum/split_common/split_util.c b/quantum/split_common/split_util.c
index 340a63137..13b09d5b8 100644
--- a/quantum/split_common/split_util.c
+++ b/quantum/split_common/split_util.c
@@ -101,35 +101,44 @@ void keyboard_slave_loop(void) {
101 #endif 101 #endif
102 102
103 while (1) { 103 while (1) {
104 matrix_slave_scan(); 104 // Matrix Slave Scan
105 105 matrix_slave_scan();
106 // read backlight info 106
107 // Read Backlight Info
107 #ifdef BACKLIGHT_ENABLE 108 #ifdef BACKLIGHT_ENABLE
108 if (BACKLIT_DIRTY) { 109 if (BACKLIT_DIRTY) {
109 backlight_set(i2c_slave_buffer[I2C_BACKLIT_START]); 110 #ifdef USE_I2C
111 backlight_set(i2c_slave_buffer[I2C_BACKLIT_START]);
112 #else // USE_SERIAL
113 backlight_set(serial_master_buffer[SERIAL_BACKLIT_START]);
114 #endif
110 BACKLIT_DIRTY = false; 115 BACKLIT_DIRTY = false;
111 } 116 }
112 #endif 117 #endif
118 // Read RGB Info
113 #ifdef RGBLIGHT_ENABLE 119 #ifdef RGBLIGHT_ENABLE
114 if (RGB_DIRTY) { 120 #ifdef USE_I2C
115 cli(); 121 if (RGB_DIRTY) {
116 uint32_t dword; 122 // Disable interupts (RGB data is big)
117 123 cli();
118 /*dword = i2c_slave_buffer[I2C_RGB_START + 3]; 124 // Create new DWORD for RGB data
119 dword = (dword << 8) + i2c_slave_buffer[I2C_RGB_START + 2]; 125 uint32_t dword;
120 dword = (dword << 8) + i2c_slave_buffer[I2C_RGB_START + 1]; 126
121 dword = (dword << 8) + i2c_slave_buffer[I2C_RGB_START];*/ 127 // Fill the new DWORD with the data that was sent over
122 128 uint8_t *dword_dat = (uint8_t *)(&dword);
123 129 for (int i = 0; i < 4; i++) {
124 uint8_t *dword_dat = (uint8_t *)(&dword); 130 dword_dat[i] = i2c_slave_buffer[I2C_RGB_START+i];
125 for (int i = 0; i < 4; i++) { 131 }
126 dword_dat[i] = i2c_slave_buffer[I2C_RGB_START+i]; 132
133 // Update the RGB now with the new data and set RGB_DIRTY to false
134 rgblight_update_dword(dword);
135 RGB_DIRTY = false;
136 // Re-enable interupts now that RGB is set
137 sei();
127 } 138 }
128 139 #else // USE_SERIAL
129 rgblight_update_dword(dword); 140 // Add serial implementation for RGB here
130 RGB_DIRTY = false; 141 #endif
131 sei();
132 }
133 #endif 142 #endif
134 } 143 }
135} 144}