2011-07-20 15:32:52 +00:00
/*
Copyright 2011 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/>.
*/
2011-02-21 06:43:17 +00:00
# ifndef KEYMAP_H
# define KEYMAP_H
2010-10-23 16:17:26 +00:00
# include <stdint.h>
# include <stdbool.h>
2012-12-15 17:32:07 +00:00
# include "action.h"
2010-10-23 16:17:26 +00:00
2013-01-28 05:06:42 +00:00
2013-04-07 06:36:50 +00:00
# ifdef BOOTMAGIC_ENABLE
/* NOTE: Not portable. Bit field order depends on implementation */
typedef union {
uint8_t raw ;
struct {
bool swap_control_capslock : 1 ;
bool capslock_to_control : 1 ;
bool swap_lalt_lgui : 1 ;
bool swap_ralt_rgui : 1 ;
bool no_gui : 1 ;
bool swap_grave_esc : 1 ;
bool swap_backslash_backspace : 1 ;
bool reserved : 1 ;
} ;
} keymap_config_t ;
keymap_config_t keymap_config ;
# endif
2013-03-11 05:39:06 +00:00
/* translates key to keycode */
2013-02-13 02:20:47 +00:00
uint8_t keymap_key_to_keycode ( uint8_t layer , key_t key ) ;
2013-03-11 05:39:06 +00:00
2013-02-13 02:20:47 +00:00
/* translates Fn keycode to action */
action_t keymap_fn_to_action ( uint8_t keycode ) ;
2013-03-11 05:39:06 +00:00
# ifdef USE_LEGACY_KEYMAP
2013-02-20 02:16:13 +00:00
/*
2013-03-11 05:39:06 +00:00
* Legacy keymap
* Consider using new keymap API above instead .
2013-02-20 02:16:13 +00:00
*/
2013-01-31 08:50:53 +00:00
/* keycode of key */
2013-03-11 05:39:06 +00:00
__attribute__ ( ( deprecated ) )
2010-10-29 06:17:18 +00:00
uint8_t keymap_get_keycode ( uint8_t layer , uint8_t row , uint8_t col ) ;
2013-03-11 05:39:06 +00:00
2010-10-29 06:17:18 +00:00
/* layer to move during press Fn key */
2013-03-11 05:39:06 +00:00
__attribute__ ( ( deprecated ) )
2011-01-06 06:37:14 +00:00
uint8_t keymap_fn_layer ( uint8_t fn_bits ) ;
2013-03-11 05:39:06 +00:00
2010-10-29 06:17:18 +00:00
/* keycode to send when release Fn key without using */
2013-03-11 05:39:06 +00:00
__attribute__ ( ( deprecated ) )
2010-10-29 06:17:18 +00:00
uint8_t keymap_fn_keycode ( uint8_t fn_bits ) ;
2013-01-31 08:50:53 +00:00
# endif
2012-12-15 17:32:07 +00:00
2010-10-23 16:17:26 +00:00
# endif