diff --git a/converter/ibm4704_usb/matrix.c b/converter/ibm4704_usb/matrix.c index f25452d5..8b9b518d 100644 --- a/converter/ibm4704_usb/matrix.c +++ b/converter/ibm4704_usb/matrix.c @@ -29,7 +29,6 @@ along with this program. If not, see . static void matrix_make(uint8_t code); static void matrix_break(uint8_t code); -static void matrix_clear(void); /* @@ -155,8 +154,7 @@ static void matrix_break(uint8_t code) matrix[ROW(code)] &= ~(1<. static void matrix_make(uint8_t code); static void matrix_break(uint8_t code); -static void matrix_clear(void); -#ifdef MATRIX_HAS_GHOST -static bool matrix_has_ghost_in_row(uint8_t row); -#endif /* @@ -71,18 +67,6 @@ static uint8_t matrix[MATRIX_ROWS]; static bool is_modified = false; -inline -uint8_t matrix_rows(void) -{ - return MATRIX_ROWS; -} - -inline -uint8_t matrix_cols(void) -{ - return MATRIX_COLS; -} - void matrix_init(void) { debug_enable = true; @@ -398,23 +382,6 @@ uint8_t matrix_scan(void) return 1; } -bool matrix_is_modified(void) -{ - return is_modified; -} - -inline -bool matrix_has_ghost(void) -{ -#ifdef MATRIX_HAS_GHOST - for (uint8_t i = 0; i < MATRIX_ROWS; i++) { - if (matrix_has_ghost_in_row(i)) - return true; - } -#endif - return false; -} - inline bool matrix_is_on(uint8_t row, uint8_t col) { @@ -427,21 +394,6 @@ uint8_t matrix_get_row(uint8_t row) return matrix[row]; } -void matrix_print(void) -{ - print("\nr/c 01234567\n"); - for (uint8_t row = 0; row < matrix_rows(); row++) { - phex(row); print(": "); - pbin_reverse(matrix_get_row(row)); -#ifdef MATRIX_HAS_GHOST - if (matrix_has_ghost_in_row(row)) { - print(" . static void matrix_make(uint8_t code); static void matrix_break(uint8_t code); -static void matrix_clear(void); #ifdef MATRIX_HAS_GHOST static bool matrix_has_ghost_in_row(uint8_t row); #endif @@ -326,8 +325,7 @@ static void matrix_break(uint8_t code) } } -inline -static void matrix_clear(void) +void matrix_clear(void) { for (uint8_t i=0; i < MATRIX_ROWS; i++) matrix[i] = 0x00; } diff --git a/tmk_core/common.mk b/tmk_core/common.mk index d91e6d6d..69be0e13 100644 --- a/tmk_core/common.mk +++ b/tmk_core/common.mk @@ -1,6 +1,7 @@ COMMON_DIR = common SRC += $(COMMON_DIR)/host.c \ $(COMMON_DIR)/keyboard.c \ + $(COMMON_DIR)/matrix.c \ $(COMMON_DIR)/action.c \ $(COMMON_DIR)/action_tapping.c \ $(COMMON_DIR)/action_macro.c \ diff --git a/tmk_core/common/avr/suspend.c b/tmk_core/common/avr/suspend.c index b9b58c15..150588ce 100644 --- a/tmk_core/common/avr/suspend.c +++ b/tmk_core/common/avr/suspend.c @@ -105,8 +105,6 @@ void suspend_power_down(void) #endif } -__attribute__ ((weak)) void matrix_power_up(void) {} -__attribute__ ((weak)) void matrix_power_down(void) {} bool suspend_wakeup_condition(void) { matrix_power_up(); @@ -122,7 +120,7 @@ bool suspend_wakeup_condition(void) void suspend_wakeup_init(void) { // clear keyboard state - matrix_init(); + matrix_clear(); clear_keyboard(); #ifdef BACKLIGHT_ENABLE backlight_init(); diff --git a/tmk_core/common/keyboard.c b/tmk_core/common/keyboard.c index 707351bc..b0319369 100644 --- a/tmk_core/common/keyboard.c +++ b/tmk_core/common/keyboard.c @@ -63,7 +63,6 @@ static bool has_ghost_in_row(uint8_t row) #endif -__attribute__ ((weak)) void matrix_setup(void) {} void keyboard_setup(void) { matrix_setup(); diff --git a/tmk_core/common/matrix.c b/tmk_core/common/matrix.c new file mode 100644 index 00000000..9694bd1a --- /dev/null +++ b/tmk_core/common/matrix.c @@ -0,0 +1,97 @@ +/* +Copyright 2016 Jun Wako + +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 "print.h" +#include "matrix.h" + + +__attribute__ ((weak)) +uint8_t matrix_rows(void) +{ + return MATRIX_ROWS; +} + +__attribute__ ((weak)) +uint8_t matrix_cols(void) +{ + return MATRIX_COLS; +} + +__attribute__ ((weak)) +void matrix_clear(void) +{ + matrix_init(); +} + +__attribute__ ((weak)) +void matrix_setup(void) {} + +__attribute__ ((weak)) +bool matrix_is_on(uint8_t row, uint8_t col) +{ + return (matrix_get_row(row) & (1<