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-02-04 13:53:45 +00:00
// TODO: move to action.h?
2013-01-28 05:06:42 +00:00
/* layer used currently */
extern uint8_t current_layer ;
/* layer to return or start with */
extern uint8_t default_layer ;
2013-01-31 08:50:53 +00:00
2013-02-13 02:20:47 +00:00
/* translates key_t to keycode */
uint8_t keymap_key_to_keycode ( uint8_t layer , key_t key ) ;
/* translates keycode to action */
action_t keymap_keycode_to_action ( uint8_t keycode ) ;
/* translates Fn keycode to action */
action_t keymap_fn_to_action ( uint8_t keycode ) ;
2013-02-01 05:48:11 +00:00
/* action for key */
2013-02-13 02:20:47 +00:00
// TODO: should use struct key_t? move to action.h?
2013-01-31 08:50:53 +00:00
action_t keymap_get_action ( uint8_t layer , uint8_t row , uint8_t col ) ;
2013-02-01 05:48:11 +00:00
/* user defined special function */
2013-02-04 13:53:45 +00:00
void keymap_call_function ( keyrecord_t * record , uint8_t id , uint8_t opt ) ;
2013-02-01 05:48:11 +00:00
2013-01-31 08:50:53 +00:00
2013-02-13 02:20:47 +00:00
2013-01-31 08:50:53 +00:00
# ifndef NO_LEGACY_KEYMAP_SUPPORT
/* keycode of key */
2010-10-29 06:17:18 +00:00
uint8_t keymap_get_keycode ( uint8_t layer , uint8_t row , uint8_t col ) ;
2013-01-31 08:50:53 +00:00
2010-10-29 06:17:18 +00:00
/* layer to move during press Fn key */
2011-01-06 06:37:14 +00:00
uint8_t keymap_fn_layer ( uint8_t fn_bits ) ;
2013-01-31 08:50:53 +00:00
2010-10-29 06:17:18 +00:00
/* keycode to send when release Fn key without using */
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