qmk

Unnamed repository; edit this file 'description' to name the repository.
git clone git://git.z3bra.org/qmk.git
Log | Files | Refs | Submodules | LICENSE

ares.c (2633B)


      1 /*
      2 Copyright 2017 Luiz Ribeiro <luizribeiro@gmail.com>
      3 
      4 This program is free software: you can redistribute it and/or modify
      5 it under the terms of the GNU General Public License as published by
      6 the Free Software Foundation, either version 2 of the License, or
      7 (at your option) any later version.
      8 
      9 This program is distributed in the hope that it will be useful,
     10 but WITHOUT ANY WARRANTY; without even the implied warranty of
     11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     12 GNU General Public License for more details.
     13 
     14 You should have received a copy of the GNU General Public License
     15 along with this program.  If not, see <http://www.gnu.org/licenses/>.
     16 */
     17 
     18 #include "ares.h"
     19 
     20 #ifdef RGBLIGHT_ENABLE
     21 
     22 #include <string.h>
     23 #include "i2c_master.h"
     24 #include "rgblight.h"
     25 
     26 extern rgblight_config_t rgblight_config;
     27 
     28 void matrix_init_kb(void) {
     29   i2c_init();
     30   // call user level keymaps, if any
     31   matrix_init_user();
     32 }
     33 
     34 // custom RGB driver
     35 void rgblight_set(void) {
     36   if (!rgblight_config.enable) {
     37     memset(led, 0, 3 * RGBLED_NUM);
     38   }
     39 
     40   i2c_transmit(0xb0, (uint8_t*)led, 3 * RGBLED_NUM, 100);
     41 }
     42 
     43 bool rgb_init = false;
     44 
     45 void matrix_scan_kb(void) {
     46   // if LEDs were previously on before poweroff, turn them back on
     47   if (rgb_init == false && rgblight_config.enable) {
     48     i2c_transmit(0xb0, (uint8_t*)led, 3 * RGBLED_NUM, 100);
     49     rgb_init = true;
     50   }
     51 
     52   rgblight_task();
     53   matrix_scan_user();
     54 }
     55 
     56 #endif
     57 
     58 #ifdef BACKLIGHT_ENABLE
     59 void backlight_init_ports(void) {
     60     setPinOutput(D0);
     61     setPinOutput(D1);
     62     setPinOutput(D4);
     63     setPinOutput(D6);
     64 }
     65 
     66 void backlight_set(uint8_t level) {
     67 	if (level == 0) {
     68 		// Turn out the lights
     69 		writePinLow(D0);
     70 		writePinLow(D1);
     71 		writePinLow(D4);
     72 		writePinLow(D6);
     73 	} else {
     74 		// Turn on the lights
     75 		writePinHigh(D0);
     76 		writePinHigh(D1);
     77 		writePinHigh(D4);
     78 		writePinHigh(D6);
     79 	}
     80 }
     81 #endif
     82 
     83 // Optional override functions below.
     84 // You can leave any or all of these undefined.
     85 // These are only required if you want to perform custom actions.
     86 
     87 /*
     88 void matrix_init_kb(void) {
     89   // put your keyboard start-up code here
     90   // runs once when the firmware starts up
     91   matrix_init_user();
     92 }
     93 void matrix_scan_kb(void) {
     94   // put your looping keyboard code here
     95   // runs every cycle (a lot)
     96   matrix_scan_user();
     97 }
     98 bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
     99   // put your per-action keyboard code here
    100   // runs for every action, just before processing by the firmware
    101   return process_record_user(keycode, record);
    102 }
    103 void led_set_kb(uint8_t usb_led) {
    104   // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
    105   led_set_user(usb_led);
    106 }
    107 */