From 6037cede2ce66dd8ce4df82d6d9a347c1de3110a Mon Sep 17 00:00:00 2001 From: Luiz Ribeiro Date: Sun, 28 May 2017 12:40:03 -0400 Subject: rgblight support for ps2avrGB --- keyboards/ps2avrGB/ps2avrGB.c | 50 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) (limited to 'keyboards/ps2avrGB/ps2avrGB.c') diff --git a/keyboards/ps2avrGB/ps2avrGB.c b/keyboards/ps2avrGB/ps2avrGB.c index e69de29bb..89e437786 100644 --- a/keyboards/ps2avrGB/ps2avrGB.c +++ b/keyboards/ps2avrGB/ps2avrGB.c @@ -0,0 +1,50 @@ +/* +Copyright 2017 Luiz Ribeiro + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "ps2avrGB.h" +#include "rgblight.h" + +#include + +#include "action_layer.h" +#include "i2c.h" +#include "quantum.h" + +extern rgblight_config_t rgblight_config; + +void rgblight_set(void) { + uint8_t data[3 * RGBLED_NUM]; + for (uint8_t i = 0; i < RGBLED_NUM; i++) { + if (rgblight_config.enable) { + data[3 * i] = led[i].g; + data[3 * i + 1] = led[i].r; + data[3 * i + 2] = led[i].b; + } else { + data[3 * i] = 0; + data[3 * i + 1] = 0; + data[3 * i + 2] = 0; + } + } + + i2c_init(); + i2c_send(0xb0, data, 48); +} + +__attribute__ ((weak)) +void matrix_scan_user(void) { + rgblight_task(); +} -- cgit v1.2.3-24-g4f1b From 964d7060e1176d487a1f9dfe9bb76b491983748d Mon Sep 17 00:00:00 2001 From: Luiz Ribeiro Date: Sun, 28 May 2017 12:53:13 -0400 Subject: Simplified ps2avrGB rgblight_set logic a bit --- keyboards/ps2avrGB/ps2avrGB.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) (limited to 'keyboards/ps2avrGB/ps2avrGB.c') diff --git a/keyboards/ps2avrGB/ps2avrGB.c b/keyboards/ps2avrGB/ps2avrGB.c index 89e437786..7ff899854 100644 --- a/keyboards/ps2avrGB/ps2avrGB.c +++ b/keyboards/ps2avrGB/ps2avrGB.c @@ -27,21 +27,16 @@ along with this program. If not, see . extern rgblight_config_t rgblight_config; void rgblight_set(void) { - uint8_t data[3 * RGBLED_NUM]; - for (uint8_t i = 0; i < RGBLED_NUM; i++) { - if (rgblight_config.enable) { - data[3 * i] = led[i].g; - data[3 * i + 1] = led[i].r; - data[3 * i + 2] = led[i].b; - } else { - data[3 * i] = 0; - data[3 * i + 1] = 0; - data[3 * i + 2] = 0; + if (!rgblight_config.enable) { + for (uint8_t i = 0; i < RGBLED_NUM; i++) { + led[i].r = 0; + led[i].g = 0; + led[i].b = 0; } } i2c_init(); - i2c_send(0xb0, data, 48); + i2c_send(0xb0, (uint8_t*)led, 48); } __attribute__ ((weak)) -- cgit v1.2.3-24-g4f1b From 60153e7bbc51e62c329cd55ea026340940c88104 Mon Sep 17 00:00:00 2001 From: Luiz Ribeiro Date: Sun, 11 Jun 2017 12:28:04 -0400 Subject: Always send 3 * RGBLED_NUM bytes through I2C on ps2avrGB This wasn't going to work on boards with a different number of LEDs, since I was always sending 48 bytes. --- keyboards/ps2avrGB/ps2avrGB.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboards/ps2avrGB/ps2avrGB.c') diff --git a/keyboards/ps2avrGB/ps2avrGB.c b/keyboards/ps2avrGB/ps2avrGB.c index 7ff899854..701c5847f 100644 --- a/keyboards/ps2avrGB/ps2avrGB.c +++ b/keyboards/ps2avrGB/ps2avrGB.c @@ -36,7 +36,7 @@ void rgblight_set(void) { } i2c_init(); - i2c_send(0xb0, (uint8_t*)led, 48); + i2c_send(0xb0, (uint8_t*)led, 3 * RGBLED_NUM); } __attribute__ ((weak)) -- cgit v1.2.3-24-g4f1b