2013-08-05 07:22:08 +00:00
/*
Copyright 2012 , 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/>.
*/
# include <stdint.h>
# include <stdbool.h>
# include <avr/pgmspace.h>
# include "keycode.h"
# include "action.h"
# include "action_macro.h"
# include "report.h"
# include "host.h"
# include "print.h"
# include "debug.h"
# include "keymap.h"
static const uint8_t PROGMEM keymaps [ ] [ MATRIX_ROWS ] [ MATRIX_COLS ] = {
{ { KC_A } } ,
} ;
/*
* Fn action definition
*/
static const uint16_t PROGMEM fn_actions [ ] = {
} ;
# define KEYMAPS_SIZE (sizeof(keymaps) / sizeof(keymaps[0]))
# define FN_ACTIONS_SIZE (sizeof(fn_actions) / sizeof(fn_actions[0]))
/* translates key to keycode */
2014-11-24 06:14:52 +00:00
uint8_t keymap_key_to_keycode ( uint8_t layer , keypos_t key )
2013-08-05 07:22:08 +00:00
{
if ( layer < KEYMAPS_SIZE ) {
return pgm_read_byte ( & keymaps [ ( layer ) ] [ ( key . row ) ] [ ( key . col ) ] ) ;
} else {
// fall back to layer 0
return pgm_read_byte ( & keymaps [ 0 ] [ ( key . row ) ] [ ( key . col ) ] ) ;
}
}
/* translates Fn keycode to action */
action_t keymap_fn_to_action ( uint8_t keycode )
{
action_t action ;
if ( FN_INDEX ( keycode ) < FN_ACTIONS_SIZE ) {
action . code = pgm_read_word ( & fn_actions [ FN_INDEX ( keycode ) ] ) ;
} else {
action . code = ACTION_NO ;
}
return action ;
}