From 428114fac25dedadfff9fceaf98f3ecd196a469d Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sat, 22 Oct 2022 18:03:33 +0100 Subject: Remove broken userspace and keymaps (#18806) --- users/bbaserdem/.gitignore | 2 - users/bbaserdem/bb-audio.c | 82 --- users/bbaserdem/bb-audio.h | 28 -- users/bbaserdem/bb-backlight.c | 30 -- users/bbaserdem/bb-backlight.h | 23 - users/bbaserdem/bb-encoder.c | 514 ------------------- users/bbaserdem/bb-encoder.h | 29 -- users/bbaserdem/bb-macro.c | 156 ------ users/bbaserdem/bb-macro.h | 113 ----- users/bbaserdem/bb-oled-extra.c | 796 ------------------------------ users/bbaserdem/bb-oled-extra.h | 25 - users/bbaserdem/bb-oled.c | 216 -------- users/bbaserdem/bb-oled.h | 32 -- users/bbaserdem/bb-rgb.c | 123 ----- users/bbaserdem/bb-rgb.h | 28 -- users/bbaserdem/bb-underglow.c | 116 ----- users/bbaserdem/bb-underglow.h | 28 -- users/bbaserdem/bbaserdem.c | 376 -------------- users/bbaserdem/bbaserdem.h | 573 --------------------- users/bbaserdem/config.h | 134 ----- users/bbaserdem/keymap-bitmaps/.gitignore | 4 - users/bbaserdem/keymap-bitmaps/cropBmp | 38 -- users/bbaserdem/readme.md | 131 ----- users/bbaserdem/rules.mk | 87 ---- 24 files changed, 3684 deletions(-) delete mode 100644 users/bbaserdem/.gitignore delete mode 100644 users/bbaserdem/bb-audio.c delete mode 100644 users/bbaserdem/bb-audio.h delete mode 100644 users/bbaserdem/bb-backlight.c delete mode 100644 users/bbaserdem/bb-backlight.h delete mode 100644 users/bbaserdem/bb-encoder.c delete mode 100644 users/bbaserdem/bb-encoder.h delete mode 100644 users/bbaserdem/bb-macro.c delete mode 100644 users/bbaserdem/bb-macro.h delete mode 100644 users/bbaserdem/bb-oled-extra.c delete mode 100644 users/bbaserdem/bb-oled-extra.h delete mode 100644 users/bbaserdem/bb-oled.c delete mode 100644 users/bbaserdem/bb-oled.h delete mode 100644 users/bbaserdem/bb-rgb.c delete mode 100644 users/bbaserdem/bb-rgb.h delete mode 100644 users/bbaserdem/bb-underglow.c delete mode 100644 users/bbaserdem/bb-underglow.h delete mode 100644 users/bbaserdem/bbaserdem.c delete mode 100644 users/bbaserdem/bbaserdem.h delete mode 100644 users/bbaserdem/config.h delete mode 100644 users/bbaserdem/keymap-bitmaps/.gitignore delete mode 100755 users/bbaserdem/keymap-bitmaps/cropBmp delete mode 100644 users/bbaserdem/readme.md delete mode 100644 users/bbaserdem/rules.mk (limited to 'users') diff --git a/users/bbaserdem/.gitignore b/users/bbaserdem/.gitignore deleted file mode 100644 index 57bd0e43b4..0000000000 --- a/users/bbaserdem/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/secrets.h -/secrets.c diff --git a/users/bbaserdem/bb-audio.c b/users/bbaserdem/bb-audio.c deleted file mode 100644 index eef0cdf2f6..0000000000 --- a/users/bbaserdem/bb-audio.c +++ /dev/null @@ -1,82 +0,0 @@ -/* Copyright 2021 Batuhan Başerdem - * @bbaserdem - * - * 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 . - */ - - -#include "bb-audio.h" -/* AUDIO - * This contains some audio related stuff. - * There is no need to wrap this up with preprocessor commands; - * This is only called if audio is enabled - */ - -float tone_game_intro[][2] = GAME_ON_SONG; -float tone_game_outro[][2] = GAME_OFF_SONG; - -// Audio playing when layer changes -layer_state_t layer_state_set_audio(layer_state_t state) { - // Get this layer - static bool prev_game = false; - - // If entering the game layer; play the intro sound - if (layer_state_cmp(state, _GAME) && (!prev_game)) { - stop_all_notes(); - PLAY_SONG(tone_game_intro); - prev_game = true; - } - // If exiting the game layer; play the outro sound - if ((!layer_state_cmp(state, _GAME)) && prev_game) { - stop_all_notes(); - PLAY_SONG(tone_game_outro); - prev_game = false; - } - return state; -} - -// Audio layer switch; add the music layer on top of this -bool process_record_audio(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case MU_TOG: - if (!record->event.pressed) { - // On release, exit music mode if enabled - if (layer_state_is(_MUSI)) { - layer_off(_MUSI); - // If not enabled; turn off all layers and load music layer - } else { - layer_clear(); - layer_on(_MUSI); - } - } - return true; - break; - case MU_ON: - if (!record->event.pressed) { - // On release, enter music mode - layer_clear(); - layer_on(_MUSI); - } - return true; - break; - case MU_OFF: - if (!record->event.pressed) { - // On release, exit music mode - layer_off(_MUSI); - } - return true; - break; - } - return true; -} diff --git a/users/bbaserdem/bb-audio.h b/users/bbaserdem/bb-audio.h deleted file mode 100644 index 351061ab9a..0000000000 --- a/users/bbaserdem/bb-audio.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright 2021 Batuhan Başerdem - * @bbaserdem - * - * 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 . - */ -#pragma once -#include "bbaserdem.h" - -/* AUDIO - * Some functions to hook to some modes - */ - -// Hook to layer change effects -layer_state_t layer_state_set_audio(layer_state_t state); - -// Hook to audio keycodes -bool process_record_audio(uint16_t keycode, keyrecord_t *record); diff --git a/users/bbaserdem/bb-backlight.c b/users/bbaserdem/bb-backlight.c deleted file mode 100644 index 5eca1f2c11..0000000000 --- a/users/bbaserdem/bb-backlight.c +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright 2021 Batuhan Başerdem - * @bbaserdem - * - * 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 . - */ - -#include "bb-backlight.h" -/* Replaced functions with noeeprom varieties; I don't need retention across - * booting. - */ - -// Backlight LEDs -void keyboard_post_init_backlight(void) { - backlight_enable(); - backlight_level(2); -# ifdef BACKLIGHT_BREATHING - breathing_enable(); -# endif // BACKLIGHT_BREATHING -} diff --git a/users/bbaserdem/bb-backlight.h b/users/bbaserdem/bb-backlight.h deleted file mode 100644 index 3af3137d9a..0000000000 --- a/users/bbaserdem/bb-backlight.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright 2021 Batuhan Başerdem - * @bbaserdem - * - * 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 . - */ -#pragma once -#include "bbaserdem.h" - -/* Hooks for backlight definitions - */ - -void keyboard_post_init_backlight(void); diff --git a/users/bbaserdem/bb-encoder.c b/users/bbaserdem/bb-encoder.c deleted file mode 100644 index eea9751051..0000000000 --- a/users/bbaserdem/bb-encoder.c +++ /dev/null @@ -1,514 +0,0 @@ -/* Copyright 2021 Batuhan Başerdem - * @bbaserdem - * - * 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 . - */ -#include "bb-encoder.h" - -// Need this to call velocikey activation -#ifdef VELOCIKEY_ENABLE -# include "velocikey.h" -#endif // VELOCIKEY_ENABLE -// Need memcpy and memcmp from string.h along with transfer stuff -#ifdef OLED_ENABLE -# include -#endif // OLED_ENABLE - -/* ROTARY ENCODER - * This contains my general rotary encoder code - * Encoders each have a list of different modes they can be in. - * Each mode also have an on click action as well. - * Modes can be cycled using either shift-click or ctrl-click - * Modes can be reset using OS click - * Some modes are only accessible through some keymap layers - */ - -// Default state for the encoders -void reset_encoder_state(void) { - userspace_config.e0base = 0; - userspace_config.e0point = 0; - userspace_config.e0rgb = 0; - userspace_config.e1base = 1; - userspace_config.e1point = 1; - userspace_config.e1rgb = 1; -} - -// Encoder scroll functionality -bool encoder_update_user(uint8_t index, bool clockwise) { - uint8_t this_number; - // Differentiate layer roles - switch (get_highest_layer(layer_state)) { -# ifdef RGB_MATRIX_ENABLE - case _MEDI: - // Get correct index - if (index == 0) { - this_number = userspace_config.e0rgb; - } else if (index == 1) { - this_number = userspace_config.e1rgb; - } else { - this_number = 128; - } - switch(this_number) { - case 0: // Effect the RGB mode - if (clockwise) { - rgb_matrix_step_noeeprom(); - } else { - rgb_matrix_step_reverse_noeeprom(); - } - break; - case 1: // Effect the RGB hue - if (clockwise) { - rgb_matrix_increase_hue_noeeprom(); - } else { - rgb_matrix_decrease_hue_noeeprom(); - } - break; - case 2: // Effect the RGB saturation - if (clockwise) { - rgb_matrix_increase_sat_noeeprom(); - } else { - rgb_matrix_decrease_sat_noeeprom(); - } - break; - case 3: // Effect the RGB brightness - if (clockwise) { - rgb_matrix_increase_val_noeeprom(); - } else { - rgb_matrix_decrease_val_noeeprom(); - } - break; - case 4: // Effect the RGB effect speed - if (clockwise) { - rgb_matrix_increase_speed_noeeprom(); - } else { - rgb_matrix_decrease_speed_noeeprom(); - } - break; - } - break; -# endif // RGB_MATRIX_ENABLE -# ifdef MOUSEKEY_ENABLE - case _MOUS: - // Get correct index - if (index == 0) { - this_number = userspace_config.e0point; - } else if (index == 1) { - this_number = userspace_config.e1point; - } else { - this_number = 128; - } - switch(this_number) { - case 0: // Move mouse on horizontal axis - if (clockwise) { - tap_code(KC_MS_R); - } else { - tap_code(KC_MS_L); - } - break; - case 1: // Move mouse on vertical axis - if (clockwise) { - tap_code(KC_MS_D); - } else { - tap_code(KC_MS_U); - } - break; - case 2: // Move mouse wheel on vertical axis - if (clockwise) { - tap_code(KC_WH_D); - } else { - tap_code(KC_WH_U); - } - break; - case 3: // Move mouse on horizontal axis - if (clockwise) { - tap_code(KC_WH_R); - } else { - tap_code(KC_WH_L); - } - break; - } - break; -# endif // MOUSEKEY_ENABLE - default: - // Get correct index - if (index == 0) { - this_number = userspace_config.e0base; - } else if (index == 1) { - this_number = userspace_config.e1base; - } else { - this_number = 128; - } - switch(this_number) { - case 0: // Volume - if (clockwise) { - tap_code16(KC_VOLU); - } else { - tap_code16(KC_VOLD); - } - break; - case 1: // Song change - if (clockwise) { - tap_code16(KC_MNXT); - } else { - tap_code16(KC_MPRV); - } - break; - case 2: // Move to audio sink - if (clockwise) { - tap_code16(KC_F13); - } else { - tap_code16(S(KC_F13)); - } - break; - case 3: // Volume of source - if (clockwise) { - tap_code16(S(KC_VOLU)); - } else { - tap_code16(C(KC_VOLD)); - } - break; - case 4: // Move to audio source - if (clockwise) { - tap_code16(C(KC_F13)); - } else { - tap_code16(C(S(KC_F13))); - } - break; - case 5: // Left-right - if (clockwise) { - tap_code16(KC_RGHT); - } else { - tap_code16(KC_LEFT); - } - break; - case 6: // Up-down - if (clockwise) { - tap_code16(KC_DOWN); - } else { - tap_code16(KC_UP); - } - break; - case 7: // Page Up-down - if (clockwise) { - tap_code16(KC_PGDN); - } else { - tap_code16(KC_PGUP); - } - break; - case 8: // Delete - if (clockwise) { - tap_code16(KC_DEL); - } else { - tap_code16(KC_BSPC); - } - break; - } - break; - } - return false; -} - -void encoder_click_action(uint8_t index) { - uint8_t this_number; - // Differentiate layer roles - switch (get_highest_layer(layer_state)) { -# ifdef RGB_MATRIX_ENABLE - case _MEDI: - // Get correct index - if (index == 0) { - this_number = userspace_config.e0rgb; - } else if (index == 1) { - this_number = userspace_config.e1rgb; - } else { - this_number = 128; - } - switch(this_number) { - case 0: // Return to no animation - rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR); - break; - case 1: - case 2: - case 3: // Toggle - rgb_matrix_increase_val_noeeprom(); - break; - case 4: // Toggle velocikey -# ifdef VELOCIKEY_ENABLE - velocikey_toggle(); -# endif // VELOCIKEY_ENABLE - break; - } - break; -# endif // RGB_MATRIX_ENABLE -# ifdef MOUSEKEY_ENABLE - case _MOUS: - // Get correct index - if (index == 0) { - this_number = userspace_config.e0point; - } else if (index == 1) { - this_number = userspace_config.e1point; - } else { - this_number = 128; - } - switch(this_number) { - case 0: // Left click - tap_code16(KC_BTN1); - break; - case 1: // Right click - tap_code16(KC_BTN2); - break; - case 2: - case 3: // Middle click - tap_code16(KC_BTN2); - break; - } - break; -# endif // MOUSEKEY_ENABLE - default: - // Get correct index - if (index == 0) { - this_number = userspace_config.e0base; - } else if (index == 1) { - this_number = userspace_config.e1base; - } else { - this_number = 128; - } - switch(this_number) { - case 0: // Toggle mute - case 2: - tap_code16(KC_MUTE); - break; - case 1: // Pause - tap_code16(KC_MPLY); - break; - case 3: // Mute source - case 4: - tap_code16(A(KC_MUTE)); - break; - case 5: // Insert - tap_code16(KC_INS); - break; - case 6: // Capslock - tap_code16(KC_CAPS); - break; - case 7: // Redo - tap_code16(BB_REDO); - break; - case 8: // Undo - tap_code16(BB_UNDO); - break; - } - break; - } -} - -bool process_record_encoder(uint16_t keycode, keyrecord_t *record) { - // Check if and which encoder - int encoder_index = -1; - - // Get the pressed encoder - switch (keycode) { - case BB_ENC0: - encoder_index = 0; - break; - case BB_ENC1: - encoder_index = 1; - break; - } - - // Activate encoder function of button - if ((encoder_index >= 0) & (!record->event.pressed)) { - // If shifted, move mode one point forward - if (get_mods() & MOD_MASK_SHIFT) { - switch (get_highest_layer(layer_state)) { -# ifdef RGB_MATRIX_ENABLE - case _MEDI: - if (encoder_index == 0) { - userspace_config.e0rgb = (userspace_config.e0rgb + 1) % 5; - } else { - userspace_config.e1rgb = (userspace_config.e1rgb + 1) % 5; - } - break; -# endif // RGB_MATRIX_ENABLE -# ifdef MOUSEKEY_ENABLE - case _MOUS: - if (encoder_index == 0) { - userspace_config.e0point = (userspace_config.e0point + 1) % 4; - } else { - userspace_config.e1point = (userspace_config.e1point + 1) % 4; - } - break; -# endif // MOUSEKEY_ENABLE - default: - if (encoder_index == 0) { - userspace_config.e0base = (userspace_config.e0base + 1) % 9; - } else { - userspace_config.e1base = (userspace_config.e1base + 1) % 9; - } - break; - } - // If ctrl is active, move mode one point backwards - } else if (get_mods() & MOD_MASK_CTRL) { - switch (get_highest_layer(layer_state)) { -# ifdef RGB_MATRIX_ENABLE - case _MEDI: - if (encoder_index == 0) { - userspace_config.e0rgb = (userspace_config.e0rgb + 5 - 1) % 5; - } else { - userspace_config.e1rgb = (userspace_config.e1rgb + 5 - 1) % 5; - } - break; -# endif // RGB_MATRIX_ENABLE -# ifdef MOUSEKEY_ENABLE - case _MOUS: - if (encoder_index == 0) { - userspace_config.e0point = (userspace_config.e0point + 4 - 1) % 4; - } else { - userspace_config.e1point = (userspace_config.e1point + 4 - 1) % 4; - } - break; -# endif // MOUSEKEY_ENABLE - default: - if (encoder_index == 0) { - userspace_config.e0base = (userspace_config.e0base + 9 - 1) % 9; - } else { - userspace_config.e1base = (userspace_config.e1base + 9 - 1) % 9; - } - break; - } - // If meta is active, reset the encoder states - } else if (get_mods() & MOD_MASK_GUI) { - reset_encoder_state(); - eeconfig_update_user(userspace_config.raw); - // If nothing else; just perform the click action - } else { - encoder_click_action(encoder_index); - } - } - return true; -} - -// For printing status to OLED -#ifdef OLED_ENABLE -void encoder_state_string(uint8_t index, uint8_t layer, char* buffer) { - uint8_t this_number; - // Get the layer straight from the main function - switch (layer) { - // If RGB control mode is enabled -# ifdef RGB_MATRIX_ENABLE - case _MEDI: - // Get correct index - if (index == 0) { - this_number = userspace_config.e0rgb; - } else if (index == 1) { - this_number = userspace_config.e1rgb; - } else { - this_number = 128; - } - switch (this_number) { - case 0: - strcpy(buffer, "ani mode"); - break; - case 1: - strcpy(buffer, "hue "); - break; - case 2: - strcpy(buffer, "saturat."); - break; - case 3: - strcpy(buffer, "bright. "); - break; - case 4: - strcpy(buffer, "ani. spd"); - break; - default: - strcpy(buffer, " -N/A- "); - break; - } - break; -# endif // RGB_MATRIX_ENABLE - // If pointer control is enabled -# ifdef MOUSEKEY_ENABLE - case _MOUS: - // Get correct index - if (index == 0) { - this_number = userspace_config.e0point; - } else if (index == 1) { - this_number = userspace_config.e1point; - } else { - this_number = 128; - } - switch (this_number) { - case 0: - strcpy(buffer, "Lateral "); - break; - case 1: - strcpy(buffer, "Vertical"); - break; - case 2: - strcpy(buffer, "Scr. Ver"); - break; - case 3: - strcpy(buffer, "Scr. Lat"); - break; - default: - strcpy(buffer, " -N/A- "); - break; - } - break; -# endif // MOUSEKEY_ENABLE - default: - // Get correct index - if (index == 0) { - this_number = userspace_config.e0base; - } else if (index == 1) { - this_number = userspace_config.e1base; - } else { - this_number = 128; - } - switch (this_number) { - case 0: - strcpy(buffer, "Volume "); - break; - case 1: - strcpy(buffer, "Song "); - break; - case 2: - strcpy(buffer, "Sink "); - break; - case 3: - strcpy(buffer, "Src. Vol"); - break; - case 4: - strcpy(buffer, "Source "); - break; - case 5: - strcpy(buffer, "Arrow LR"); - break; - case 6: - strcpy(buffer, "Arrow UD"); - break; - case 7: - strcpy(buffer, "Page U/D"); - break; - case 8: - strcpy(buffer, "Erase "); - break; - default: - strcpy(buffer, " -N/A- "); - break; - } - break; - } -} -#endif // OLED_ENABLE diff --git a/users/bbaserdem/bb-encoder.h b/users/bbaserdem/bb-encoder.h deleted file mode 100644 index dce08cd3d5..0000000000 --- a/users/bbaserdem/bb-encoder.h +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright 2021 Batuhan Başerdem - * @bbaserdem - * - * 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 . - */ -#pragma once -#include "bbaserdem.h" - -// Hook to encoder stuff -bool encoder_update_user(uint8_t index, bool clockwise); -// Complicated code for what the encoder keys do when pressed -bool process_record_encoder(uint16_t keycode, keyrecord_t *record); -// Clear the encoder settings -void reset_encoder_state(void); -// This is so that encoder state is synched between two halves -void housekeeping_task_encoder(void); -// This is purely for oled; should it want to use it -void encoder_state_string(uint8_t index, uint8_t layer, char* buffer); diff --git a/users/bbaserdem/bb-macro.c b/users/bbaserdem/bb-macro.c deleted file mode 100644 index 6a722e6db1..0000000000 --- a/users/bbaserdem/bb-macro.c +++ /dev/null @@ -1,156 +0,0 @@ -/* Copyright 2021 Batuhan Başerdem - * @bbaserdem - * - * 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 . - */ -#include "bb-macro.h" - -/* MACRO Definitions - * This file has my macros/unicodes - * Hooks for other functionality to inject itself into the process_record - */ - -// Tap dance definitons -#ifdef AUDIO_ENABLE -#ifdef TAP_DANCE_ENABLE -qk_tap_dance_action_t tap_dance_actions[] = { - // Music playback speed modulator - [TD_AUDIO_TEMPO] = ACTION_TAP_DANCE_DOUBLE(MU_SLOW, MU_FAST), -}; -#endif // AUDIO_ENABLE -#endif // TAP_DANCE_ENABLE - -// Unicode definitions; for single character keys -// We mask their definitions if unicode is not enabled -#ifdef UNICODEMAP_ENABLE -const uint32_t PROGMEM unicode_map[] = { - [UPC_A_CIRC] = 0x00C2, [LOW_A_CIRC] = 0x00E2, // Â â - [UPC_C_CEDI] = 0x00C7, [LOW_C_CEDI] = 0x00E7, // Ç ç - [UPC_G_BREV] = 0x011E, [LOW_G_BREV] = 0x001F, // Ğ ğ - [UPC_I_CIRC] = 0x00CE, [LOW_I_CIRC] = 0x00EE, // Î î - [UPC_I_DOTL] = 0x0049, [LOW_I_DOTL] = 0x0131, // I ı - [UPC_I_DOTT] = 0x0130, [LOW_I_DOTT] = 0x0069, // İ i - [UPC_O_DIAE] = 0x00D6, [LOW_O_DIAE] = 0x00F6, // Ö ö - [UPC_S_CEDI] = 0x015E, [LOW_S_CEDI] = 0x015F, // Ş ş - [UPC_U_CIRC] = 0x00DB, [LOW_U_CIRC] = 0x00FB, // Û û - [UPC_U_DIAE] = 0x00DC, [LOW_U_DIAE] = 0x00FC, // Ü ü - [UPC_ALPHA] = 0x0391, [LOW_ALPHA] = 0x03B1, // Α α - [UPC_BETA] = 0x0392, [LOW_BETA] = 0x03B2, // Β β - [UPC_GAMMA] = 0x0393, [LOW_GAMMA] = 0x03B3, // Γ γ - [UPC_DELTA] = 0x0394, [LOW_DELTA] = 0x03B4, // Δ δ - [UPC_EPSILON] = 0x0395, [LOW_EPSILON] = 0x03B5, // Ε ε - [UPC_ZETA] = 0x0396, [LOW_ZETA] = 0x03B6, // Ζ ζ - [UPC_ETA] = 0x0397, [LOW_ETA] = 0x03B7, // Η η - [UPC_THETA] = 0x0398, [LOW_THETA] = 0x03B8, // Θ θ - [UPC_IOTA] = 0x0399, [LOW_IOTA] = 0x03B9, // Ι ι - [UPC_KAPPA] = 0x039A, [LOW_KAPPA] = 0x03BA, // Κ κ - [UPC_LAMBDA] = 0x039B, [LOW_LAMBDA] = 0x03BB, // Λ λ - [UPC_MU] = 0x039C, [LOW_MU] = 0x03BC, // Μ μ - [UPC_NU] = 0x039D, [LOW_NU] = 0x03BD, // Ν ν - [UPC_XI] = 0x039E, [LOW_XI] = 0x03BE, // Ξ ξ - [UPC_OMICRON] = 0x039F, [LOW_OMICRON] = 0x03BF, // Ο ο - [UPC_PI] = 0x03A0, [LOW_PI] = 0x03C0, // Π π - [UPC_RHO] = 0x03A1, [LOW_RHO] = 0x03C1, // Ρ ρ - [UPC_SIGMA] = 0x03A3, [LOW_SIGMA] = 0x03C3, // Σ σ - [UPC_TAU] = 0x03A4, [LOW_TAU] = 0x03C4, // Τ τ - [UPC_UPSILON] = 0x03A5, [LOW_UPSILON] = 0x03C5, // Υ υ - [UPC_PHI] = 0x03A6, [LOW_PHI] = 0x03C6, // Φ φ - [UPC_CHI] = 0x03A7, [LOW_CHI] = 0x03C7, // Χ χ - [UPC_PSI] = 0x03A8, [LOW_PSI] = 0x03C8, // Ψ ψ - [UPC_OMEGA] = 0x03A9, [LOW_OMEGA] = 0x03C9, // Ω ω - [ELLIPSIS] = 0x2026, // … - [PLANCK_CON] = 0x210F, // ℏ - [ANGSTROM] = 0x212B, // Å - [BITCOIN] = 0x20BF // ₿ -}; -#endif // UNICODEMAP_ENABLE - -// Keycodes -bool process_record_macro(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - // AltGr + Caps should change the oled layout variable - case KC_CAPS_LOCK: - if (record->event.pressed) { - if (get_mods() & MOD_BIT(KC_RALT)) { - userspace_config.layout = (userspace_config.layout + 1) % 3; - } - } - return true; - break; - case BB_OLED: - if (record->event.pressed) { - if (get_mods() & MOD_MASK_SHIFT) { - // Scroll in opposite direction - userspace_config.layout = (userspace_config.layout + 4) % 3; - } else { - userspace_config.layout = (userspace_config.layout + 1) % 3; - } - } - return false; - break; - // Plain macros - case BB_PGPK: - // My public PGP key - if (record->event.pressed) { - SEND_STRING("0B7151C823559DD8A7A04CE36426139E2F4C6CCE"); - } - return false; break; - case DBL_ANG: - // Double angular bracket - if (record->event.pressed) { - SEND_STRING("<>"SS_TAP(X_LEFT)); - } - return false; break; - case DBL_PAR: - // Double paranthesis - if (record->event.pressed) { - SEND_STRING("()"SS_TAP(X_LEFT)); - } - return false; break; - case DBL_BRC: - // Double square brackets - if (record->event.pressed) { - SEND_STRING("[]"SS_TAP(X_LEFT)); - } - return false; break; - case DBL_CBR: - // Double curly brackets - if (record->event.pressed) { - SEND_STRING("{}"SS_TAP(X_LEFT)); - } - return false; break; - // Unicode macros -# ifdef UNICODEMAP_ENABLE - case TR_FLAG: - // Turkish flag - if (record->event.pressed) { - send_unicode_string("🇹🇷"); - } - return false; break; - case BB_LENY: - // Lenny face: ( ͡° ͜ʖ ͡°) - if (record->event.pressed) { - send_unicode_string("( ͡° ͜ʖ ͡°)"); - } - return false; break; - case BB_TABL: - // Table flip: ┻━┻︵ \(°□°)/ ︵ ┻━┻ - if (record->event.pressed) { - send_unicode_string("┻━┻︵ \\(°□°)/ ︵ ┻━┻"); - } - return false; break; -# endif // UNICODEMAP_ENABLE - } - return true; -} diff --git a/users/bbaserdem/bb-macro.h b/users/bbaserdem/bb-macro.h deleted file mode 100644 index 3dc14e7a8a..0000000000 --- a/users/bbaserdem/bb-macro.h +++ /dev/null @@ -1,113 +0,0 @@ -/* Copyright 2021 Batuhan Başerdem - * @bbaserdem - * - * 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 . - */ -#pragma once -#include "bbaserdem.h" - -/* This header file contains definitons regarding custom keycodes. - * - Both regular and unicode macros are dealt with in this file - */ - -// These will be delegated to keymap specific stuff (weak definition) -bool process_record_macro(uint16_t keycode, keyrecord_t *record); - -// Unicodemap implementation -#ifdef UNICODEMAP_ENABLE -enum userspace_unicodemap { - UPC_A_CIRC, - UPC_C_CEDI, - UPC_G_BREV, - UPC_I_CIRC, - UPC_I_DOTL, - UPC_I_DOTT, - UPC_O_DIAE, - UPC_S_CEDI, - UPC_U_CIRC, - UPC_U_DIAE, - LOW_A_CIRC, - LOW_C_CEDI, - LOW_G_BREV, - LOW_I_CIRC, - LOW_I_DOTL, - LOW_I_DOTT, - LOW_O_DIAE, - LOW_S_CEDI, - LOW_U_CIRC, - LOW_U_DIAE, - ELLIPSIS, - PLANCK_CON, - ANGSTROM, - MATHPI, - BITCOIN, - UPC_ALPHA, - UPC_BETA, - UPC_GAMMA, - UPC_DELTA, - UPC_EPSILON, - UPC_ZETA, - UPC_ETA, - UPC_THETA, - UPC_IOTA, - UPC_KAPPA, - UPC_LAMBDA, - UPC_MU, - UPC_NU, - UPC_XI, - UPC_OMICRON, - UPC_PI, - UPC_RHO, - UPC_SIGMA, - UPC_TAU, - UPC_UPSILON, - UPC_PHI, - UPC_CHI, - UPC_PSI, - UPC_OMEGA, - LOW_ALPHA, - LOW_BETA, - LOW_GAMMA, - LOW_DELTA, - LOW_EPSILON, - LOW_ZETA, - LOW_ETA, - LOW_THETA, - LOW_IOTA, - LOW_KAPPA, - LOW_LAMBDA, - LOW_MU, - LOW_NU, - LOW_XI, - LOW_OMICRON, - LOW_PI, - LOW_RHO, - LOW_SIGMA, - LOW_TAU, - LOW_UPSILON, - LOW_PHI, - LOW_CHI, - LOW_PSI, - LOW_OMEGA, -}; -#endif // UNICODEMAP_ENABLE - -// Tap dance stuff -#ifdef AUDIO_ENABLE -#ifdef TAP_DANCE_ENABLE -enum { - TD_AUDIO_TEMPO, -}; -#endif // AUDIO_ENABLE -#endif // TAP_DANCE_ENABLE diff --git a/users/bbaserdem/bb-oled-extra.c b/users/bbaserdem/bb-oled-extra.c deleted file mode 100644 index b52c4b335a..0000000000 --- a/users/bbaserdem/bb-oled-extra.c +++ /dev/null @@ -1,796 +0,0 @@ -/* Copyright 2021 Batuhan Başerdem - * @bbaserdem - * - * 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 . - */ -#include "bb-oled.h" -#include "bb-oled-extra.h" - -// Helper function that draws images -void draw_image(uint8_t row, uint8_t col, const char image[4][42]) { - // Draw this image iteratively - for (int i = 0; i < 4; i++) { - oled_set_cursor(col, row + i); - oled_write_raw_P(image[i], 42); - } -} - -// Write modifiers to the screen -void render_modifiers(uint8_t row, uint8_t col, uint8_t mods) { - static const char PROGMEM mod_meta[12] = {0x00,0x01,0x01,0x01,0x01,0x06,0x18,0x60,0x81,0x81,0x81,0x81}; - static const char PROGMEM mod_altL[12] = {0x00,0x80,0x80,0x80,0x40,0x20,0x10,0x08,0x84,0x95,0x8e,0x84}; - static const char PROGMEM mod_altR[12] = {0x00,0x86,0x8f,0x8f,0x46,0x20,0x10,0x08,0x84,0x95,0x8e,0x84}; - static const char PROGMEM mod_ctrl[12] = {0x00,0x00,0xbd,0x42,0xa5,0x99,0x99,0xa5,0x42,0xbd,0x00,0x00}; - static const char PROGMEM mod_shft[12] = {0x00,0x20,0x30,0x28,0xe4,0x02,0x01,0x02,0xe4,0x28,0x30,0x20}; - // Looks like Mods: - oled_set_cursor(col, row); - oled_write("Mods: ", false); - // Meta - if (mods & MOD_MASK_GUI) { - oled_write_raw_P(mod_meta, 12); - oled_set_cursor(col + 8, row); - } else { - oled_write(" ", false); - } - // Alt(Gr) - if (mods & MOD_BIT(KC_RALT)) { - oled_write_raw_P(mod_altR, 12); - oled_set_cursor(col + 10, row); - } else if (mods & MOD_MASK_ALT) { - oled_write_raw_P(mod_altL, 12); - oled_set_cursor(col + 10, row); - } else { - oled_write(" ", false); - } - // Ctrl - if (mods & MOD_MASK_CTRL) { - oled_write_raw_P(mod_ctrl, 12); - oled_set_cursor(col + 12, row); - } else { - oled_write(" ", false); - } - // Shift - if (mods & MOD_MASK_SHIFT) { - oled_write_raw_P(mod_shft, 12); - oled_set_cursor(col + 14, row); - } else { - oled_write(" ", false); - } -} - -// Draws the image of the currently used layout -void render_layout(uint8_t row, uint8_t col, uint8_t mods, bool isLeft) { - // DVORAK - static const char PROGMEM base0_L_dvor_nomod[4][42] = { - { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x00,0x04,0x08,0x10,0x00,0x00,0x00, - 0x00,0x0e,0x00,0x00,0x00,0x00,0x60,0xe0,0x00,0x00,0x00,0x00,0xc0,0xc0, - 0x00,0x00,0x00,0xf8,0x90,0x88,0x88,0x70,0x00,0x78,0x80,0x80,0x40,0xf8 - },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x00,0x00, - 0x40,0x40,0x40,0x80,0x00,0x80,0x41,0x40,0x40,0x80,0x00,0x80,0x40,0x40, - 0x40,0x80,0x00,0xc3,0x00,0x00,0x00,0xc0,0x00,0x00,0x42,0xd2,0x02,0x01 - },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0xd8,0x06,0x01,0x00,0x00,0x00,0x02, - 0x05,0x05,0x05,0x07,0x00,0x03,0x04,0x04,0x04,0x03,0x00,0x03,0x05,0x05, - 0x85,0x05,0x00,0xc3,0x04,0x04,0x02,0x07,0x00,0x00,0x00,0x07,0x04,0x00 - },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x03,0x0c,0x30,0xc0,0x00,0x00, - 0xb6,0x76,0x00,0x00,0x00,0x1c,0x22,0x22,0x12,0xfe,0x00,0x00,0x80,0x82, - 0x7e,0x00,0x00,0x3f,0x08,0x0c,0x12,0x20,0x00,0x22,0x14,0x08,0x14,0x22}}; - static const char PROGMEM base0_L_dvor_shift[4][42] = { - { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x20,0x10,0x20,0x40,0x20,0x00,0x00, - 0x07,0x00,0x07,0x00,0x00,0x10,0x28,0x44,0x82,0x00,0x00,0x82,0x44,0x28, - 0x10,0x00,0x00,0xfe,0x12,0x12,0x12,0x0c,0x00,0x06,0x08,0xf0,0x08,0x06 - },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xe0, - 0x90,0x90,0x90,0xe0,0x00,0xe0,0x10,0x10,0x10,0xe0,0x00,0xf0,0x90,0x90, - 0x90,0x10,0x00,0xf0,0x00,0x00,0x00,0xf0,0x00,0x00,0x10,0xf0,0x10,0x00 - },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x80,0x87,0x80,0x00,0x00,0x07, - 0x00,0x00,0x00,0x07,0x00,0x03,0x84,0x84,0x84,0x03,0x00,0x07,0x04,0x04, - 0x04,0x84,0x00,0x83,0x04,0x04,0x04,0x83,0x00,0x80,0x04,0x07,0x04,0x80 - },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x01,0x00,0x28,0x04,0x03,0x00,0x00, - 0x36,0x36,0x00,0x00,0x00,0x1f,0x20,0x28,0x10,0x6f,0x00,0x18,0x20,0x20, - 0x20,0x1f,0x00,0x3f,0x04,0x0a,0x11,0x20,0x00,0x31,0x0a,0x04,0x0a,0x31}}; - static const char PROGMEM base0_R_dvor_nomod[4][42] = { - { 0x00,0xfc,0x12,0x12,0x00,0x00,0x70,0x88,0x88,0x48,0xf8,0x00,0x70,0x88, - 0x88,0x88,0x88,0x00,0xf8,0x10,0x08,0x08,0x10,0x00,0x00,0x02,0x7e,0x80, - 0x80,0x00,0x10,0x28,0x44,0x82,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00 - },{ 0x00,0x80,0x80,0x80,0xf0,0x00,0xf0,0x02,0x82,0x82,0x01,0x00,0x00,0x80, - 0xf0,0x80,0x80,0x00,0xc0,0x40,0x40,0x40,0x80,0x00,0x80,0x40,0x40,0x40, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9c,0xce,0x00,0x00 - },{ 0x83,0x04,0x04,0x02,0x07,0x00,0x07,0x01,0x00,0x00,0x07,0x00,0x00,0x00, - 0x03,0x04,0x04,0x00,0x07,0x00,0x00,0x00,0x07,0x00,0x04,0x05,0x05,0x05, - 0x02,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x73,0x39,0x00,0x00 - },{ 0x3f,0x24,0x22,0x22,0x1c,0x00,0x3e,0x02,0x3e,0x02,0x3c,0x00,0x1e,0x20, - 0x1c,0x20,0x1e,0x00,0x06,0x18,0x20,0x18,0x06,0x00,0x22,0x32,0x2a,0x26, - 0x22,0x00,0x14,0x14,0x14,0x14,0x14,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}}; - static const char PROGMEM base0_R_dvor_shift[4][42] = { - { 0xfe,0x12,0x12,0x12,0x02,0x00,0xfc,0x02,0x12,0x12,0xf4,0x00,0xfc,0x02, - 0x02,0x02,0x84,0x00,0xfe,0x12,0x12,0x32,0xcc,0x00,0xfe,0x00,0x00,0x00, - 0x00,0x00,0x04,0x88,0x50,0x20,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00 - },{ 0xf1,0x10,0x10,0x10,0xe0,0x00,0xf0,0x81,0x81,0x81,0xf0,0x00,0x10,0x11, - 0xf1,0x11,0x10,0x00,0xf1,0x60,0x80,0x00,0xf1,0x00,0x61,0x91,0x91,0x91, - 0x21,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9c,0xce,0x00,0x00 - },{ 0x8f,0x88,0x88,0x88,0x07,0x00,0x8f,0x00,0x00,0x00,0x8f,0x00,0x80,0x00, - 0x0f,0x00,0x80,0x00,0x8f,0x00,0x01,0x06,0x8f,0x00,0x84,0x88,0x88,0x88, - 0x87,0x00,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x73,0x39,0x00,0x00 - },{ 0x7f,0x44,0x44,0x44,0x3b,0x00,0x7f,0x01,0x06,0x01,0x7f,0x00,0x1f,0x60, - 0x1c,0x60,0x1f,0x00,0x07,0x18,0x60,0x18,0x07,0x00,0x70,0x48,0x44,0x42, - 0x41,0x00,0x08,0x08,0x3e,0x08,0x08,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}}; - static const char PROGMEM symb5_R_dvor[4][42] = { - { 0x00,0x02,0x04,0x08,0x00,0x00,0x20,0x20,0xdc,0x02,0x02,0x00,0x02,0x02, - 0xdc,0x20,0x20,0x00,0x00,0xc0,0x30,0x0c,0x03,0x00,0x50,0x50,0x50,0x50, - 0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00 - },{ 0x00,0x80,0x00,0x00,0x00,0x00,0x00,0xf0,0x11,0x12,0x02,0x00,0x02,0x12, - 0x11,0xf0,0x00,0x00,0x43,0x20,0x20,0x20,0xc0,0x00,0x00,0x00,0xc0,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9c,0xce,0x00,0x00 - },{ 0x01,0x80,0x41,0x82,0x01,0x00,0x00,0x1f,0x10,0x90,0x00,0x00,0x00,0x90, - 0x10,0x1f,0x00,0x00,0xc0,0x00,0x14,0x03,0x00,0x00,0x01,0x01,0x87,0x01, - 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x39,0x00,0x00 - },{ 0x22,0xf3,0x0a,0xf3,0x22,0x00,0x00,0x1c,0x63,0x80,0x00,0x00,0x00,0x80, - 0x63,0x1c,0x00,0x00,0x00,0x03,0x0c,0x30,0xc0,0x00,0x00,0x00,0x7f,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}}; - static const char PROGMEM numb6_L_dvor_nomod[4][42] = { - { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20, - 0x50,0x88,0x04,0x00,0x00,0x04,0x04,0xc4,0x34,0x0c,0x00,0xd8,0x24,0x24, - 0x24,0xd8,0x00,0x18,0x24,0x24,0x24,0xf8,0x00,0xf8,0x44,0x24,0x14,0xf8 - },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x01,0x00,0x00,0x00,0x80,0x41,0xe0,0x00,0x00,0xe0,0xa1,0xa1, - 0xa1,0x20,0x00,0xc0,0xa1,0xa1,0xa1,0x00,0x00,0x00,0x01,0x01,0x01,0x00 - },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08, - 0x08,0x08,0x08,0x08,0x00,0x03,0x02,0x02,0x0f,0x02,0x00,0x04,0x08,0x08, - 0x08,0x07,0x00,0x07,0x08,0x08,0x08,0x07,0x00,0x01,0x01,0x01,0x01,0x00 - },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41, - 0x22,0x14,0x08,0x00,0x00,0x00,0x04,0x02,0x7f,0x00,0x00,0x42,0x61,0x51, - 0x49,0x46,0x00,0x22,0x41,0x49,0x49,0x36,0x00,0x5e,0x61,0x01,0x61,0x5e}}; - static const char PROGMEM numb6_L_dvor_shift[4][42] = { - { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0xd8,0x24,0x54,0x88,0x40,0x00,0x50,0x20,0xf8, - 0x20,0x50,0x00,0x00,0x38,0xc6,0x01,0x00,0x00,0x00,0x01,0xc6,0x38,0x00 - },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x60,0x91,0xf9,0x90,0x21,0x00,0x20,0x50,0x20, - 0x80,0x60,0x00,0x40,0x20,0x10,0x21,0x40,0x00,0x00,0x01,0x00,0x00,0x00 - },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x02,0x04,0x8f,0x04,0x03,0x00,0x0c,0x02,0x09, - 0x14,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x3e,0x41,0x5d, - 0x55,0x5e,0x00,0x14,0x7f,0x14,0x7f,0x14,0x00,0x00,0x00,0x00,0x00,0x00}}; - // Turkish F - static const char PROGMEM base0_L_turf_nomod[4][42] = { - { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x10,0x10,0x7c,0x10,0x10,0x00,0x00, - 0xfe,0x09,0x09,0x00,0x00,0x70,0x88,0x88,0x48,0xf8,0x00,0x51,0xaa,0xaa, - 0x92,0x09,0x00,0x00,0x88,0xf8,0x80,0x00,0x00,0x70,0x88,0x88,0x88,0x70 - },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x40,0x80,0x00,0x80,0x40,0x00,0xc0, - 0x00,0x00,0x00,0xc0,0x00,0x00,0x42,0xd2,0x02,0x01,0x00,0x81,0x42,0x42, - 0x42,0x81,0x00,0x00,0x40,0x40,0x40,0x80,0x00,0xc0,0x10,0x00,0x10,0xc0 - },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x04,0x02,0x01,0x02,0x04,0x00,0x03, - 0x04,0x04,0x82,0x07,0x00,0x00,0x80,0x07,0x84,0x00,0x00,0x03,0x05,0x05, - 0x05,0x05,0x00,0x02,0x05,0x05,0x05,0x07,0x00,0x03,0x04,0x04,0x02,0x07 - },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x1c,0x22,0x22,0x12,0xfe,0x00,0x00, - 0x80,0x82,0x7e,0x00,0x00,0x1c,0x22,0x22,0x22,0x1c,0x00,0x06,0x18,0x20, - 0x18,0x06,0x00,0x1c,0x22,0x22,0x22,0x22,0x00,0x1c,0xa2,0x62,0x22,0x22}}; - static const char PROGMEM base0_L_turf_shift[4][42] = { - { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x28,0x10,0x7c,0x10,0x28,0x00,0xfe, - 0x12,0x12,0x12,0x02,0x00,0xfc,0x02,0x12,0x12,0xf4,0x00,0xf1,0x0a,0x4a, - 0x4a,0xd1,0x00,0x00,0x02,0xfe,0x02,0x00,0x00,0xfc,0x02,0x02,0x02,0xfc - },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x30,0x40,0x80,0x40,0x30,0x00,0xf1, - 0x00,0x00,0x00,0xf0,0x00,0x00,0x21,0xe9,0x21,0x00,0x00,0xf1,0x92,0x92, - 0x92,0x11,0x00,0xe0,0x91,0x91,0x91,0xe0,0x00,0xe0,0x09,0x01,0x09,0xe0 - },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x0e,0x81,0x80,0x81,0x0e,0x00,0x07, - 0x08,0x08,0x08,0x87,0x00,0x00,0x50,0x1f,0x50,0x00,0x00,0x8f,0x08,0x08, - 0x08,0x88,0x00,0x0f,0x80,0x80,0x80,0x0f,0x00,0x8f,0x50,0x50,0x50,0x8f - },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x3f,0x40,0x50,0x20,0xdf,0x00,0x30, - 0x40,0x40,0x40,0x3f,0x00,0x7e,0x81,0x81,0x81,0x7e,0x00,0x07,0x18,0x60, - 0x18,0x07,0x00,0x3f,0x40,0x40,0x40,0x21,0x00,0x1f,0xa0,0x60,0x20,0x10}}; - static const char PROGMEM base0_L_turf_altgr[4][42] = { - { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x10,0x10,0x10,0x30,0x00,0x00,0xf0, - 0x08,0xe8,0xa8,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x0c,0x1e,0xfe,0x02,0xfe,0x00,0x70,0x8a,0x89,0x8a,0x70 - },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x10,0x20,0x40,0x00,0x00,0xc1, - 0x12,0x0a,0x12,0xc2,0x00,0x00,0x10,0xc8,0x10,0x00,0x00,0x40,0xe0,0x50, - 0x10,0x20,0x00,0x00,0x50,0x48,0x50,0x80,0x00,0xc0,0x10,0x08,0x10,0xc0 - },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x03, - 0x04,0x04,0x02,0x07,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x01,0x83,0x05, - 0x04,0x82,0x00,0x02,0x05,0x05,0x05,0x07,0x00,0x83,0x84,0x04,0x82,0x87 - },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x3e,0x3e,0x3e,0x00,0x08,0x14, - 0x22,0x08,0x14,0x22,0x00,0x22,0x14,0x08,0x22,0x14,0x08,0x03,0x02,0x00, - 0x03,0x02,0x00,0x1c,0x22,0x7f,0x22,0x22,0x00,0x02,0x01,0x00,0x02,0x01}}; - static const char PROGMEM base0_L_turf_shfgr[4][42] = { - { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x90,0x90,0xfc,0x90,0x90,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x0a,0x09,0x0a,0xf0 - },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x88,0x90,0xa0,0x00,0x00,0xc0, - 0x10,0x08,0x10,0xc0,0x00,0x00,0x50,0xc8,0x50,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x80,0x50,0x48,0x50,0x80,0x00,0xc1,0x12,0x0a,0x12,0xc1 - },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x8f,0x4f,0x8f,0x00,0x00,0x0f, - 0x10,0x10,0x90,0x0f,0x00,0x80,0x10,0x1f,0x10,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x1f,0x82,0x82,0x82,0x1f,0x00,0x0f,0x10,0x10,0x10,0x0f - },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x7c,0x7d,0x7c,0x00,0x00,0x04, - 0x0a,0x11,0x20,0x00,0x00,0x20,0x11,0x0a,0x04,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x1f,0x24,0x2a,0x20,0x1f,0x00,0x00,0x00,0x00,0x00,0x00}}; - static const char PROGMEM base0_R_turf_nomod[4][42] = { - { 0x70,0x88,0x88,0x48,0xff,0x00,0xf8,0x10,0x08,0x08,0x10,0x00,0xf8,0x08, - 0x08,0x08,0xf0,0x00,0xff,0x10,0x08,0x08,0xf0,0x00,0xf8,0x90,0x88,0x88, - 0x70,0x00,0x10,0x28,0x44,0x82,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00 - },{ 0x40,0xf8,0x40,0x40,0x00,0x00,0xf8,0x00,0x80,0x40,0x00,0x00,0xc0,0x40, - 0xc0,0x40,0x80,0x00,0x08,0xf8,0x00,0x00,0x00,0x00,0xc3,0x00,0x00,0x00, - 0xc0,0x00,0x80,0x40,0x40,0x40,0x00,0x00,0x00,0x00,0x9c,0xce,0x00,0x00 - },{ 0x00,0x03,0x04,0x04,0x00,0x00,0x07,0x01,0x01,0x02,0x04,0x00,0xc7,0x00, - 0x07,0x00,0x07,0x00,0x00,0x03,0x04,0x04,0x00,0x00,0x03,0x14,0x14,0x12, - 0x0f,0x00,0x04,0x15,0x0d,0x05,0x02,0x00,0x00,0x00,0x73,0x39,0x00,0x00 - },{ 0x22,0x32,0x2a,0x26,0x22,0x00,0x24,0x2a,0x2a,0x2a,0x10,0x00,0x3f,0x24, - 0x22,0x22,0x1c,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0xb0,0x70,0x00, - 0x00,0x00,0x1e,0x20,0x1c,0x20,0x1e,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}}; - static const char PROGMEM base0_R_turf_shift[4][42] = { - { 0xfe,0x02,0x02,0x02,0xfc,0x00,0xfe,0x12,0x12,0x32,0xcc,0x00,0xfe,0x0c, - 0x30,0xc0,0xfe,0x00,0xfe,0x10,0x10,0x10,0xfe,0x00,0xfe,0x12,0x12,0x12, - 0x0c,0x00,0x82,0x44,0x28,0x10,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00 - },{ 0x11,0x11,0xf1,0x11,0x10,0x00,0xf1,0x80,0x40,0x20,0x11,0x00,0xf1,0x20, - 0xc0,0x20,0xf1,0x00,0xf1,0x00,0x00,0x00,0x01,0x00,0x31,0x40,0x80,0x40, - 0x30,0x00,0x30,0x48,0x48,0x48,0x90,0x00,0x00,0x00,0x9c,0xce,0x00,0x00 - },{ 0x80,0x80,0x8f,0x80,0x80,0x00,0x0f,0x80,0x81,0x82,0x0c,0x00,0x8f,0x80, - 0x80,0x80,0x0f,0x00,0x0f,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x0f,0x00, - 0x00,0x00,0x82,0x14,0x0c,0x04,0x83,0x00,0x00,0x00,0x73,0x39,0x00,0x00 - },{ 0x70,0x48,0x44,0x42,0x41,0x00,0x23,0x44,0x44,0x44,0x39,0x00,0x7f,0x44, - 0x44,0x44,0x3b,0x00,0x00,0x36,0x36,0x00,0x00,0x00,0x00,0xb6,0x76,0x00, - 0x00,0x00,0x1f,0x60,0x1c,0x60,0x1f,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}}; - static const char PROGMEM base0_R_turf_altgr[4][42] = { - { 0x53,0x54,0xf8,0x54,0x53,0x00,0x7c,0xba,0x8a,0x8a,0x7c,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x0c,0x12,0x12,0x0c,0x00,0x00,0x20,0xfc,0x22,0x02, - 0x84,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00 - },{ 0x80,0x80,0xf1,0xa0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00, - 0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x20,0x11,0x01, - 0x00,0x00,0x40,0xf0,0x41,0xf0,0x40,0x00,0x00,0x00,0x9c,0xce,0x00,0x00 - },{ 0x02,0x01,0x0f,0x08,0x08,0x06,0x83,0x40,0x40,0x40,0x00,0x00,0x0f,0x02, - 0x04,0x04,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x01,0x07,0x01,0x07,0x01,0x00,0x00,0x00,0x73,0x39,0x00,0x00 - },{ 0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x4a,0x4a,0x3c,0x00,0x00,0x11,0x0a, - 0x04,0x0a,0x11,0x00,0x04,0x04,0x15,0x04,0x04,0x00,0x00,0x00,0x04,0x00, - 0x00,0x00,0x04,0x02,0x04,0x08,0x04,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}}; - static const char PROGMEM base0_R_turf_shfgr[4][42] = { - { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00 - },{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0x90,0x88, - 0x00,0x00,0x00,0x90,0xa1,0x90,0x00,0x00,0x00,0x00,0x9c,0xce,0x00,0x00 - },{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x0f,0x0f, - 0x00,0x00,0x00,0x0f,0x0f,0x0f,0x00,0x00,0x00,0x00,0x73,0x39,0x00,0x00 - },{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0x7d,0x7c, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}}; - static const char PROGMEM symb5_R_turf_nomod[4][42] = { - { 0x20,0x20,0xf8,0x20,0x20,0x00,0x00,0xc0,0x30,0x0c,0x03,0x00,0x20,0x20, - 0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00 - },{ 0x80,0x00,0xc0,0x00,0x80,0x00,0x43,0x20,0x20,0x20,0xc0,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9c,0xce,0x00,0x00 - },{ 0x02,0x81,0x47,0x81,0x02,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0x04,0x04, - 0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x39,0x00,0x00 - },{ 0x22,0xf3,0x0a,0xf3,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}}; - static const char PROGMEM symb5_R_turf_altgr[4][42] = { - { 0x10,0x10,0x10,0x30,0x00,0x00,0x03,0x0c,0x30,0xc0,0x00,0x00,0x00,0x00, - 0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00 - },{ 0x80,0x80,0xe0,0x80,0x80,0x00,0x00,0x00,0xa0,0x00,0x03,0x00,0x00,0x00, - 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9c,0xce,0x00,0x00 - },{ 0x04,0x84,0x47,0x84,0x04,0x00,0x06,0x09,0x08,0x08,0x04,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x39,0x00,0x00 - },{ 0x22,0xf3,0x0a,0xf3,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}}; - static const char PROGMEM numb6_L_turf_nomod[4][42] = { - { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20, - 0x50,0x88,0x04,0x00,0x00,0x04,0x04,0xc4,0x34,0x0c,0x00,0xd8,0x24,0x24, - 0x24,0xd8,0x00,0x18,0x24,0x24,0x24,0xf8,0x00,0xf8,0x44,0x24,0x14,0xf8 - },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x01,0x00,0x00,0x00,0x80,0x41,0xe0,0x00,0x00,0xe0,0xa1,0xa1, - 0xa1,0x20,0x00,0xc0,0xa1,0xa1,0xa1,0x00,0x00,0x00,0x01,0x01,0x01,0x00 - },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x03,0x02,0x02,0x0f,0x02,0x00,0x04,0x08,0x08, - 0x08,0x07,0x00,0x07,0x08,0x08,0x08,0x07,0x00,0x00,0x00,0x00,0x00,0x00 - },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41, - 0x22,0x14,0x08,0x00,0x00,0x00,0x04,0x02,0x7f,0x00,0x00,0x42,0x61,0x51, - 0x49,0x46,0x00,0x22,0x41,0x49,0x49,0x36,0x00,0x5e,0x61,0x01,0x61,0x5e}}; - static const char PROGMEM numb6_L_turf_shift[4][42] = { - { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04, - 0x88,0x50,0x20,0x00,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x00,0x38,0xc6, - 0x01,0x00,0x00,0x00,0x01,0xc6,0x38,0x00,0x00,0x50,0x50,0x50,0x50,0x50 - },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, - 0x00,0x00,0x00,0x00,0x00,0x60,0x90,0xf8,0x90,0x20,0x00,0x20,0x50,0x20, - 0x81,0x60,0x00,0x70,0x89,0x48,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x02,0x04,0x8f,0x04,0x03,0x00,0x0c,0x82,0x09, - 0x94,0x08,0x00,0x07,0x08,0x89,0x06,0x09,0x00,0x00,0x00,0x00,0x00,0x00 - },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41, - 0x22,0x14,0x08,0x00,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x00,0x03,0x00, - 0x03,0x00,0x00,0x02,0x01,0x00,0x01,0x02,0x00,0x5e,0x61,0x01,0x61,0x5e}}; - static const char PROGMEM numb6_L_turf_altgr[4][42] = { - { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0xff,0x00,0x00,0x00,0x10,0x10,0xee,0x01,0x01,0x00,0x00,0xff,0x01, - 0x01,0x00,0x00,0x00,0x01,0x01,0xff,0x00,0x00,0x01,0x01,0xee,0x10,0x10 - },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x01,0x00,0x00,0x00,0x10,0xf8,0x00,0x01,0x01,0x00,0x10,0xf9,0x01, - 0x01,0x00,0x00,0x88,0xa9,0x51,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x00 - },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0xc0,0x00,0x00,0x00,0x00,0x08,0x8c,0x0a,0x1f,0x00,0x00,0x00,0x90, - 0x90,0x10,0x00,0x00,0x08,0x0c,0x0a,0x1f,0x00,0x00,0x00,0x00,0x00,0x00 - },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x7b,0x00,0x00,0x00,0x00,0x09,0x0f,0x08,0x00,0x00,0x00,0x09,0x0c, - 0x0a,0x09,0x00,0x14,0x7f,0x14,0x7f,0x14,0x00,0x5e,0x61,0x01,0x61,0x5e}}; - static const char PROGMEM numb6_L_turf_shfgr[4][42] = { - { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0xef,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x90,0x90,0xfc, - 0x90,0x90,0x00,0x06,0x09,0x09,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0xa8,0x50, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x0a, - 0x15,0x0a,0x00,0x40,0x40,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x7b,0x00,0x00,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x04,0x05,0x05,0x02,0x00,0x00,0x5e,0x61,0x01,0x61,0x5e}}; - // QWERTY - static const char PROGMEM base0_L_qwer_nomod[4][42] = { - { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x00,0x04,0x08,0x10,0x00,0x00,0x70, - 0x88,0x88,0x48,0xf8,0x00,0x78,0x80,0x70,0x80,0x78,0x00,0x70,0xa8,0xa8, - 0xa8,0xb0,0x00,0xf8,0x10,0x08,0x08,0x10,0x00,0x08,0x7f,0x88,0x88,0x00 - },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x18,0x60,0x80,0x00,0x00,0x00,0x00, - 0x40,0x40,0x40,0x83,0x00,0x80,0x40,0x40,0x40,0x00,0x00,0x80,0x40,0x40, - 0x40,0xf8,0x00,0x00,0xf0,0x48,0x48,0x00,0x00,0x80,0x40,0x40,0x40,0xc0 - },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0xc0,0x41,0x46,0x18,0x00,0x02, - 0x05,0x05,0x05,0x07,0x00,0x04,0x05,0x05,0x05,0x02,0x00,0x03,0x04,0x04, - 0x02,0x07,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0xc3,0x14,0x14,0x12,0x0f - },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0xff,0x80,0x80,0x00,0x00,0x22, - 0x32,0x2a,0x26,0x22,0x00,0x22,0x