diff options
author | tmk <nobody@nowhere> | 2013-02-16 04:20:01 +0900 |
---|---|---|
committer | tmk <nobody@nowhere> | 2013-02-16 04:20:01 +0900 |
commit | 998dc6c17e0b0cfe8377529a130d9c61590caf2a (patch) | |
tree | f0745fb55e970f057a862732739be4a665cdf910 /common/layer_switch.h | |
parent | f8d289e66965f99469292370c3b9200a03254f8e (diff) | |
parent | 06e4fc66edd15efa5afdcaed2102c7698b626484 (diff) |
Merge branch 'layer_switch'
Diffstat (limited to 'common/layer_switch.h')
-rw-r--r-- | common/layer_switch.h | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/common/layer_switch.h b/common/layer_switch.h new file mode 100644 index 0000000000..25c81a5dc2 --- /dev/null +++ b/common/layer_switch.h @@ -0,0 +1,59 @@ +/* +Copyright 2013 Jun Wako <wakojun@gmail.com> + +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 <http://www.gnu.org/licenses/>. +*/ +#ifndef LAYER_SWITCH_H +#define LAYER_SWITCH_H + +#include <stdint.h> +#include "keyboard.h" +#include "action.h" + + +/* base layer to fall back */ +extern uint8_t default_layer; + +/* layer status */ +extern uint16_t layer_switch_stat; + +/* return layer status */ +uint16_t layer_switch_get_stat(void); +/* return current active layer */ +uint8_t layer_switch_get_layer(void); + +/* switch off all layers */ +void layer_switch_clear(void); +/* set layer status */ +void layer_switch_set(uint16_t stat); +/* move to layer */ +void layer_switch_move(uint8_t layer); +/* switch on layer */ +void layer_switch_on(uint8_t layer); +/* switch off layer */ +void layer_switch_off(uint8_t layer); +/* switch state of layer */ +void layer_switch_invert(uint8_t layer); + +/* bitwise operation against layer status */ +void layer_switch_or(uint16_t stat); +void layer_switch_and(uint16_t stat); +void layer_switch_xor(uint16_t stat); + +void layer_switch_debug(void); + +/* return action depending on current layer status */ +action_t layer_switch_get_action(key_t key); + +#endif |