Merge branch 'f/size-reduction'

Fixes #8.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
pull/389/head
Gergely Nagy 8 years ago
commit 31ab612d90

@ -26,9 +26,9 @@ namespace KaleidoscopePlugins {
uint32_t OneShot::startTime = 0; uint32_t OneShot::startTime = 0;
uint16_t OneShot::timeOut = 2500; uint16_t OneShot::timeOut = 2500;
uint16_t OneShot::holdTimeOut = 250; uint16_t OneShot::holdTimeOut = 250;
uint32_t OneShot::State = 0; OneShot::state_t OneShot::State;
uint32_t OneShot::stickyState = 0; OneShot::state_t OneShot::stickyState;
uint32_t OneShot::pressedState = 0; OneShot::state_t OneShot::pressedState;
uint32_t OneShot::leftMask; uint32_t OneShot::leftMask;
uint32_t OneShot::rightMask; uint32_t OneShot::rightMask;
Key OneShot::prevKey; Key OneShot::prevKey;
@ -41,17 +41,17 @@ namespace KaleidoscopePlugins {
#define isModifier(key) (key.raw >= Key_LCtrl.raw && key.raw <= Key_RGUI.raw) #define isModifier(key) (key.raw >= Key_LCtrl.raw && key.raw <= Key_RGUI.raw)
#define isLayerKey(key) (key.flags == (KEY_FLAGS | SYNTHETIC | SWITCH_TO_KEYMAP) && key.keyCode >= MOMENTARY_OFFSET && key.keyCode <= MOMENTARY_OFFSET + 23) #define isLayerKey(key) (key.flags == (KEY_FLAGS | SYNTHETIC | SWITCH_TO_KEYMAP) && key.keyCode >= MOMENTARY_OFFSET && key.keyCode <= MOMENTARY_OFFSET + 23)
#define isOneShot(idx) (bitRead (State, (idx))) #define isOneShot(idx) (bitRead (State.all, (idx)))
#define setOneShot(idx) (bitWrite (State, idx, 1)) #define setOneShot(idx) (bitWrite (State.all, idx, 1))
#define clearOneShot(idx) (bitWrite (State, idx, 0)) #define clearOneShot(idx) (bitWrite (State.all, idx, 0))
#define isSticky(idx) (bitRead (stickyState, idx)) #define isSticky(idx) (bitRead (stickyState.all, idx))
#define setSticky(idx) (bitWrite (stickyState, idx, 1)) #define setSticky(idx) (bitWrite (stickyState.all, idx, 1))
#define clearSticky(idx) bitWrite (stickyState, idx, 0) #define clearSticky(idx) bitWrite (stickyState.all, idx, 0)
#define setPressed(idx) bitWrite(pressedState, idx, 1) #define setPressed(idx) bitWrite(pressedState.all, idx, 1)
#define clearPressed(idx) bitWrite(pressedState, idx, 0) #define clearPressed(idx) bitWrite(pressedState.all, idx, 0)
#define isPressed(idx) bitRead (pressedState, idx) #define isPressed(idx) bitRead (pressedState.all, idx)
#define isSameAsPrevious(key) (key.raw == prevKey.raw) #define isSameAsPrevious(key) (key.raw == prevKey.raw)
#define saveAsPrevious(key) prevKey.raw = key.raw #define saveAsPrevious(key) prevKey.raw = key.raw
@ -128,7 +128,7 @@ namespace KaleidoscopePlugins {
if (keyState & INJECTED) if (keyState & INJECTED)
return mappedKey; return mappedKey;
if (!State) { if (!State.all) {
if (!isOS (mappedKey)) { if (!isOS (mappedKey)) {
if (isMasked (row, col)) { if (isMasked (row, col)) {
if (key_toggled_off (keyState)) if (key_toggled_off (keyState))
@ -207,7 +207,7 @@ namespace KaleidoscopePlugins {
void void
OneShot::loopHook (bool postClear) { OneShot::loopHook (bool postClear) {
if (!State) if (!State.all)
return; return;
if (postClear) { if (postClear) {
@ -252,7 +252,7 @@ namespace KaleidoscopePlugins {
bool bool
OneShot::isActive (void) { OneShot::isActive (void) {
return (State && !hasTimedOut ()); return (State.all && !hasTimedOut ());
} }
bool bool

@ -42,10 +42,17 @@ namespace KaleidoscopePlugins {
void inject (Key key, uint8_t keyState); void inject (Key key, uint8_t keyState);
private: private:
typedef union {
struct {
uint8_t mods;
uint8_t layers;
};
uint16_t all;
} state_t;
static uint32_t startTime; static uint32_t startTime;
static uint32_t State; static state_t State;
static uint32_t stickyState; static state_t stickyState;
static uint32_t pressedState; static state_t pressedState;
static uint32_t leftMask; static uint32_t leftMask;
static uint32_t rightMask; static uint32_t rightMask;
static Key prevKey; static Key prevKey;

Loading…
Cancel
Save