aboutsummaryrefslogtreecommitdiff
path: root/converter/pc98_usb/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'converter/pc98_usb/keymap.c')
-rw-r--r--converter/pc98_usb/keymap.c32
1 files changed, 9 insertions, 23 deletions
diff --git a/converter/pc98_usb/keymap.c b/converter/pc98_usb/keymap.c
index 279b2b60c..3ab0a4dbe 100644
--- a/converter/pc98_usb/keymap.c
+++ b/converter/pc98_usb/keymap.c
@@ -21,7 +21,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
21#include "keycode.h" 21#include "keycode.h"
22#include "action.h" 22#include "action.h"
23#include "action_macro.h" 23#include "action_macro.h"
24#include "layer_switch.h"
25#include "util.h" 24#include "util.h"
26#include "keymap.h" 25#include "keymap.h"
27 26
@@ -165,10 +164,10 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
165 * Fn actions 164 * Fn actions
166 */ 165 */
167static const uint16_t PROGMEM fn_actions[] = { 166static const uint16_t PROGMEM fn_actions[] = {
168 ACTION_KEYMAP_TAP_TOGGLE(0), // FN0 167 ACTION_LAYER_TAP_TOGGLE(0), // FN0
169 ACTION_KEYMAP_TAP_KEY(1, KC_SLASH), // FN1 168 ACTION_LAYER_TAP_KEY(1, KC_SLASH), // FN1
170 ACTION_KEYMAP_TAP_KEY(2, KC_SCLN), // FN2 169 ACTION_LAYER_TAP_KEY(2, KC_SCLN), // FN2
171 ACTION_KEYMAP_MOMENTARY(2), // FN3 170 ACTION_LAYER_MOMENTARY(2), // FN3
172 ACTION_MACRO(LBRACKET), // FN4 171 ACTION_MACRO(LBRACKET), // FN4
173 ACTION_MACRO(RBRACKET), // FN5 172 ACTION_MACRO(RBRACKET), // FN5
174 ACTION_MACRO(DUMMY), // FN6 173 ACTION_MACRO(DUMMY), // FN6
@@ -183,29 +182,16 @@ static const uint16_t PROGMEM fn_actions[] = {
183 * No need to edit. 182 * No need to edit.
184 */ 183 */
185#define KEYMAPS_SIZE (sizeof(keymaps) / sizeof(keymaps[0])) 184#define KEYMAPS_SIZE (sizeof(keymaps) / sizeof(keymaps[0]))
186#define OVERLAYS_SIZE (sizeof(overlays) / sizeof(overlays[0]))
187#define FN_ACTIONS_SIZE (sizeof(fn_actions) / sizeof(fn_actions[0])) 185#define FN_ACTIONS_SIZE (sizeof(fn_actions) / sizeof(fn_actions[0]))
188 186
189/* translates key to keycode */ 187/* translates key to keycode */
190uint8_t keymap_key_to_keycode(uint8_t layer, key_t key) 188uint8_t keymap_key_to_keycode(uint8_t layer, key_t key)
191{ 189{
192 /* Overlay: 16-31(OVERLAY_BIT(0x10) | overlay_layer) */ 190 if (layer < KEYMAPS_SIZE) {
193 if (layer & OVERLAY_BIT) { 191 return pgm_read_byte(&keymaps[(layer)][(key.row)][(key.col)]);
194 layer &= OVERLAY_MASK; 192 } else {
195 if (layer < OVERLAYS_SIZE) { 193 // fall back to layer 0
196 return pgm_read_byte(&overlays[(layer)][(key.row)][(key.col)]); 194 return pgm_read_byte(&keymaps[0][(key.row)][(key.col)]);
197 } else {
198 return KC_TRANSPARENT;
199 }
200 }
201 /* Keymap: 0-15 */
202 else {
203 if (layer < KEYMAPS_SIZE) {
204 return pgm_read_byte(&keymaps[(layer)][(key.row)][(key.col)]);
205 } else {
206 // fall back to layer 0
207 return pgm_read_byte(&keymaps[0][(key.row)][(key.col)]);
208 }
209 } 195 }
210} 196}
211 197