diff options
author | tmk <nobody@nowhere> | 2013-02-20 11:16:13 +0900 |
---|---|---|
committer | tmk <nobody@nowhere> | 2013-02-20 11:48:15 +0900 |
commit | e0f960a576e090808e5cc25c5368441c11f36ea6 (patch) | |
tree | afe64cce00a34b99aeb9b6b989ab08e803b3d4b2 /common/layer_switch.h | |
parent | abf0b04d14629de35968ee07e3bb587eebccf68b (diff) |
Add overlay framework
Diffstat (limited to 'common/layer_switch.h')
-rw-r--r-- | common/layer_switch.h | 71 |
1 files changed, 46 insertions, 25 deletions
diff --git a/common/layer_switch.h b/common/layer_switch.h index 25c81a5dc2..a566ab12b7 100644 --- a/common/layer_switch.h +++ b/common/layer_switch.h @@ -22,36 +22,57 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #include "action.h" +/* overlays are asigned at layer 16-31 */ +#define OVERLAY_BIT 0x10 +#define OVERLAY_MASK 0x0F + + +/* + * Default Layer + */ /* base layer to fall back */ extern uint8_t default_layer; +void default_layer_set(uint8_t layer); + + +/* + * Keymap Layer + */ +extern uint16_t keymap_stat; +/* return current active layer */ +uint8_t keymap_get_layer(void); +void keymap_clear(void); +void keymap_set(uint16_t stat); +void keymap_move(uint8_t layer); +void keymap_on(uint8_t layer); +void keymap_off(uint8_t layer); +void keymap_invert(uint8_t layer); +/* bitwise operation */ +void keymap_or(uint16_t stat); +void keymap_and(uint16_t stat); +void keymap_xor(uint16_t stat); +void keymap_debug(void); -/* layer status */ -extern uint16_t layer_switch_stat; -/* return layer status */ -uint16_t layer_switch_get_stat(void); +/* + * Overlay Layer + */ +extern uint16_t overlay_stat; /* 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); +uint8_t overlay_get_layer(void); +void overlay_clear(void); +void overlay_set(uint16_t stat); +void overlay_move(uint8_t layer); +void overlay_on(uint8_t layer); +void overlay_off(uint8_t layer); +void overlay_invert(uint8_t layer); +/* bitwise operation */ +void overlay_or(uint16_t stat); +void overlay_and(uint16_t stat); +void overlay_xor(uint16_t stat); +void overlay_debug(void); + + /* return action depending on current layer status */ action_t layer_switch_get_action(key_t key); |