diff --git a/KeyboardConfig.cpp b/KeyboardConfig.cpp index 0eae54cb..69650b6a 100644 --- a/KeyboardConfig.cpp +++ b/KeyboardConfig.cpp @@ -3,15 +3,11 @@ #include "KeyboardConfig.h" -const byte LEFT_SX1509_ADDRESS = 0x70; // SX1509 I2C address (10) -const byte RIGHT_SX1509_ADDRESS = 0x71; // SX1509 I2C address (11) -sx1509Class leftsx1509(LEFT_SX1509_ADDRESS); -sx1509Class rightsx1509(RIGHT_SX1509_ADDRESS); +sx1509Class KeyboardHardware_::leftsx1509(LEFT_SX1509_ADDRESS); +sx1509Class KeyboardHardware_::rightsx1509(RIGHT_SX1509_ADDRESS); -static int right_initted = 0; -static int left_initted = 0; -WS2812 LED(LED_COUNT); +WS2812 KeyboardHardware_::LED(LED_COUNT); KeyboardHardware_::KeyboardHardware_(void) { diff --git a/KeyboardConfig.h b/KeyboardConfig.h index 40e9aeb7..44738382 100644 --- a/KeyboardConfig.h +++ b/KeyboardConfig.h @@ -6,6 +6,10 @@ #define USE_HSV_CURVE 1 +// SX1509 I2C address (10) +#define LEFT_SX1509_ADDRESS 0x70 +// SX1509 I2C address (11) +#define RIGHT_SX1509_ADDRESS 0x71 #define RIGHT_COLS 8 #define RIGHT_ROWS 4 @@ -29,28 +33,33 @@ static uint8_t right_rowpins[]= {8,9,10,11}; class KeyboardHardware_ { -public: + public: KeyboardHardware_(void); -void led_sync(void); -void led_set_crgb_at(byte row, byte col, cRGB color); -void led_set_crgb_at(uint8_t i, cRGB crgb); -cRGB get_key_color(byte row, byte col); - - -void scan_row(byte row); -void finish_scanning_row(byte row); -void scan_right_col(byte row, byte col, uint8_t *state); -void scan_left_col(byte row, byte col, uint8_t *state); -void pins_setup(); -boolean right_hand_connected(void); -void leds_setup(); - - -private: - -void make_input(sx1509Class sx1509, uint8_t pin) ; -void make_output(sx1509Class sx1509, uint8_t pin) ; -int setup_sx1509 (sx1509Class sx1509, uint8_t colpins[], uint8_t rowpins[]); + void led_sync(void); + void led_set_crgb_at(byte row, byte col, cRGB color); + void led_set_crgb_at(uint8_t i, cRGB crgb); + cRGB get_key_color(byte row, byte col); + + + void scan_row(byte row); + void finish_scanning_row(byte row); + void scan_right_col(byte row, byte col, uint8_t *state); + void scan_left_col(byte row, byte col, uint8_t *state); + void pins_setup(); + boolean right_hand_connected(void); + void leds_setup(); + + + private: + static sx1509Class leftsx1509; + static sx1509Class rightsx1509; + static WS2812 LED; + int right_initted = 0; + int left_initted = 0; + + void make_input(sx1509Class sx1509, uint8_t pin) ; + void make_output(sx1509Class sx1509, uint8_t pin) ; + int setup_sx1509 (sx1509Class sx1509, uint8_t colpins[], uint8_t rowpins[]); };