2013-02-15 04:47:41 +00:00
/*
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/>.
*/
2013-04-02 08:44:24 +00:00
# ifndef ACTION_LAYER_H
# define ACTION_LAYER_H
2013-02-15 04:47:41 +00:00
# include <stdint.h>
2013-02-15 09:48:36 +00:00
# include "keyboard.h"
2013-02-15 04:47:41 +00:00
# include "action.h"
2013-02-20 02:16:13 +00:00
/*
* Default Layer
*/
2013-04-02 07:09:43 +00:00
extern uint32_t default_layer_state ;
void default_layer_debug ( void ) ;
2013-06-22 07:14:56 +00:00
void default_layer_set ( uint32_t state ) ;
2013-02-20 02:16:13 +00:00
2013-04-02 07:09:43 +00:00
# ifndef NO_ACTION_LAYER
/* bitwise operation */
void default_layer_or ( uint32_t state ) ;
void default_layer_and ( uint32_t state ) ;
void default_layer_xor ( uint32_t state ) ;
# else
# define default_layer_or(state)
# define default_layer_and(state)
# define default_layer_xor(state)
# endif
2013-02-20 02:16:13 +00:00
/*
* Keymap Layer
*/
2013-03-31 13:47:19 +00:00
# ifndef NO_ACTION_LAYER
2013-04-02 07:09:43 +00:00
extern uint32_t layer_state ;
void layer_debug ( void ) ;
void layer_clear ( void ) ;
void layer_move ( uint8_t layer ) ;
void layer_on ( uint8_t layer ) ;
void layer_off ( uint8_t layer ) ;
void layer_invert ( uint8_t layer ) ;
2013-02-20 02:16:13 +00:00
/* bitwise operation */
2013-04-02 07:09:43 +00:00
void layer_or ( uint32_t state ) ;
void layer_and ( uint32_t state ) ;
void layer_xor ( uint32_t state ) ;
2013-03-19 15:56:54 +00:00
# else
2013-04-02 07:09:43 +00:00
# define layer_state 0
# define layer_clear()
# define layer_move(layer)
# define layer_on(layer)
# define layer_off(layer)
# define layer_invert(layer)
# define layer_or(state)
# define layer_and(state)
# define layer_xor(state)
# define layer_debug()
2013-03-19 15:56:54 +00:00
# endif
2013-02-15 19:05:58 +00:00
/* return action depending on current layer status */
2013-02-15 09:48:36 +00:00
action_t layer_switch_get_action ( key_t key ) ;
2013-02-15 04:47:41 +00:00
# endif