| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- /* Copyright 2019 @ninjonas
- *
- * 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 <http://www.gnu.org/licenses/>.
- */
- #include "ninjonas.h"
- layer_state_t layer_state_set_user (layer_state_t state) {
- return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
- }
- // BEGIN: SSD1306OLED
- // SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h
- #if defined(KEYBOARD_lily58_rev1) & defined(PROTOCOL_LUFA)
- extern uint8_t is_master;
- void matrix_init_user(void) {
- //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
- iota_gfx_init(!has_usb()); // turns on the display
- }
- // When add source files to SRC in rules.mk, you can use functions.
- const char *read_layer_state(void);
- const char *read_logo(void);
- //void set_keylog(uint16_t keycode, keyrecord_t *record); // Moved to process_records.h
- const char *read_keylog(void);
- const char *read_keylogs(void);
- void matrix_scan_user(void) {
- iota_gfx_task();
- }
- void matrix_render_user(struct CharacterMatrix *matrix) {
- if (is_master) {
- // If you want to change the display of OLED, you need to change here
- matrix_write_ln(matrix, read_layer_state());
- matrix_write_ln(matrix, read_keylog());
- matrix_write_ln(matrix, read_keylogs());
- } else {
- matrix_write(matrix, read_logo());
- }
- }
- void matrix_update(struct CharacterMatrix *dest, const struct CharacterMatrix *source) {
- if (memcmp(dest->display, source->display, sizeof(dest->display))) {
- memcpy(dest->display, source->display, sizeof(dest->display));
- dest->dirty = true;
- }
- }
- void iota_gfx_task_user(void) {
- struct CharacterMatrix matrix;
- matrix_clear(&matrix);
- matrix_render_user(&matrix);
- matrix_update(&display, &matrix);
- }
- #endif
- // END: SSD1306OLED
|