From a57fdf7efd98842e17cc52476e2bbf06d6046273 Mon Sep 17 00:00:00 2001 From: Stefan Dorn Date: Sun, 12 Jun 2016 04:09:35 +0100 Subject: [PATCH] refactor --- src/main.c | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/src/main.c b/src/main.c index 33e1921..eb10475 100644 --- a/src/main.c +++ b/src/main.c @@ -25,10 +25,6 @@ typedef enum StickyState { } StickyState; // layer data -struct layer { - bool active; - StickyState sticky; -}; #include "./main.h" // ---------------------------------------------------------------------------- @@ -57,8 +53,9 @@ static bool main_arg_was_pressed; static bool main_arg_any_non_trans_key_pressed; static bool main_arg_trans_key_pressed; -static struct layer layers[KB_LAYERS]; -static uint8_t layers_top = 0; +static bool layers_active[KB_LAYERS]; +static StickyState layers_sticky[KB_LAYERS]; +static uint8_t layers_top = 0; // ---------------------------------------------------------------------------- @@ -86,10 +83,10 @@ int main(void) { void main_init_layers() { for (uint8_t layer=0; layer < KB_LAYERS; layer++) { - layers[layer].active = false; - layers[layer].sticky = eStickyNone; + layers_active[layer] = false; + layers_sticky[layer] = eStickyNone; } - layers[0].active = true; + layers_active[0] = true; } @@ -97,7 +94,7 @@ void main_init_layers() { uint8_t _highest_active_layer(uint8_t offset) { if (offset < layers_top) { for (uint8_t l = layers_top - offset; l > 0 && l < KB_LAYERS; l--) { - if (layers[l].active) { return l; } + if (layers_active[l]) { return l; } } } @@ -118,7 +115,7 @@ StickyState main_layers_top_sticky() { // return if layer is sticky StickyState main_layers_sticky(uint8_t layer) { if (layer < KB_LAYERS) { - return layers[layer].sticky; + return layers_sticky[layer]; } return eStickyNone; } @@ -127,8 +124,8 @@ StickyState main_layers_sticky(uint8_t layer) { void main_layers_enable(uint8_t layer, StickyState sticky) { if (layer >= KB_LAYERS) { return; } - layers[layer].active = true; - layers[layer].sticky = sticky; + layers_active[layer] = true; + layers_sticky[layer] = sticky; if (layer > layers_top) { layers_top = layer; @@ -140,8 +137,8 @@ void main_layers_disable(uint8_t layer) { // base layer stays always on if (layer >= KB_LAYERS || layer == 0) { return; } - layers[layer].active = false; - layers[layer].sticky = eStickyNone; + layers_active[layer] = false; + layers_sticky[layer] = eStickyNone; if (layer == layers_top) { layers_top = _highest_active_layer(1);