Merge pull request #10 from keyboardio/f/masking/size-reduction

Optimize the masking code for size
pull/365/head
Jesse Vincent 7 years ago committed by GitHub
commit 62ce98ebfe

@ -5,8 +5,8 @@
KeyboardioScanner Model01::leftHand(0); KeyboardioScanner Model01::leftHand(0);
KeyboardioScanner Model01::rightHand(3); KeyboardioScanner Model01::rightHand(3);
bool Model01::isLEDChanged = true; bool Model01::isLEDChanged = true;
uint32_t Model01::leftHandMask; keydata_t Model01::leftHandMask;
uint32_t Model01::rightHandMask; keydata_t Model01::rightHandMask;
static constexpr uint8_t key_led_map[4][16] = { static constexpr uint8_t key_led_map[4][16] = {
{3, 4, 11, 12, 19, 20, 26, 27, 36, 37, 43, 44, 51, 52, 59, 60}, {3, 4, 11, 12, 19, 20, 26, 27, 36, 37, 43, 44, 51, 52, 59, 60},
@ -209,9 +209,9 @@ void Model01::maskKey(byte row, byte col) {
return; return;
if (col >= 8) { if (col >= 8) {
rightHandMask |= SCANBIT(row, col - 8); rightHandMask.rows[row] |= 1 << (7 - (col - 8));
} else { } else {
leftHandMask |= SCANBIT(row, col); leftHandMask.rows[row] |= 1 << (7 - col);
} }
} }
@ -220,9 +220,9 @@ void Model01::unMaskKey(byte row, byte col) {
return; return;
if (col >= 8) { if (col >= 8) {
rightHandMask &= ~(SCANBIT(row, col - 8)); rightHandMask.rows[row] &= ~(1 << (7 - (col - 8)));
} else { } else {
leftHandMask &= ~(SCANBIT(row, col)); leftHandMask.rows[row] &= ~(1 << (7 - col));
} }
} }
@ -231,15 +231,15 @@ bool Model01::isKeyMasked(byte row, byte col) {
return false; return false;
if (col >= 8) { if (col >= 8) {
return rightHandMask & SCANBIT(row, col - 8); return rightHandMask.rows[row] & (1 << (7 - (col - 8)));
} else { } else {
return leftHandMask & SCANBIT(row, col); return leftHandMask.rows[row] & (1 << (7 - col));
} }
} }
void Model01::maskHeldKeys(void) { void Model01::maskHeldKeys(void) {
rightHandMask = rightHandState.all; memcpy(leftHandMask.rows, leftHandState.rows, sizeof(leftHandMask));
leftHandMask = leftHandState.all; memcpy(rightHandMask.rows, rightHandState.rows, sizeof(rightHandMask));
} }
HARDWARE_IMPLEMENTATION KeyboardHardware; HARDWARE_IMPLEMENTATION KeyboardHardware;

@ -54,8 +54,8 @@ class Model01 {
static KeyboardioScanner leftHand; static KeyboardioScanner leftHand;
static KeyboardioScanner rightHand; static KeyboardioScanner rightHand;
static uint32_t leftHandMask; static keydata_t leftHandMask;
static uint32_t rightHandMask; static keydata_t rightHandMask;
}; };
#define SCANBIT(row,col) ((uint32_t)1 << ((row) * 8 + (7 - (col)))) #define SCANBIT(row,col) ((uint32_t)1 << ((row) * 8 + (7 - (col))))

Loading…
Cancel
Save