diff --git a/src/locale/locale.cpp b/src/locale/locale.cpp index 868c5a0..3972217 100644 --- a/src/locale/locale.cpp +++ b/src/locale/locale.cpp @@ -17,6 +17,7 @@ #include "mac/locale_fr_mac.h" #include "mac/locale_gb_mac.h" #include "mac/locale_gr_mac.h" +#include "mac/locale_hr_mac.h" #include "mac/locale_hu_mac.h" #include "mac/locale_in_mac.h" #include "mac/locale_is_mac.h" @@ -52,6 +53,7 @@ #include "win/locale_fr_win.h" #include "win/locale_gb_win.h" #include "win/locale_gr_win.h" +#include "win/locale_hr_win.h" #include "win/locale_hu_win.h" #include "win/locale_ie_win.h" #include "win/locale_in_win.h" @@ -98,6 +100,7 @@ namespace locale { else if (strncmp(name, "FR_MAC", 6) == 0) return &locale_fr_mac; else if (strncmp(name, "GB_MAC", 6) == 0) return &locale_gb_mac; else if (strncmp(name, "GR_MAC", 6) == 0) return &locale_gr_mac; + else if (strncmp(name, "HR_MAC", 6) == 0) return &locale_hr_mac; else if (strncmp(name, "HU_MAC", 6) == 0) return &locale_hu_mac; else if (strncmp(name, "IN_MAC", 6) == 0) return &locale_in_mac; else if (strncmp(name, "IS_MAC", 6) == 0) return &locale_is_mac; @@ -133,6 +136,7 @@ namespace locale { else if (strncmp(name, "FR", 2) == 0) return &locale_fr_win; else if (strncmp(name, "GB", 2) == 0) return &locale_gb_win; else if (strncmp(name, "GR", 2) == 0) return &locale_gr_win; + else if (strncmp(name, "HR", 2) == 0) return &locale_hr_win; else if (strncmp(name, "HU", 2) == 0) return &locale_hu_win; else if (strncmp(name, "IE", 2) == 0) return &locale_ie_win; else if (strncmp(name, "IN", 2) == 0) return &locale_in_win; diff --git a/src/locale/mac/locale_hr_mac.h b/src/locale/mac/locale_hr_mac.h new file mode 100644 index 0000000..4d2dcd6 --- /dev/null +++ b/src/locale/mac/locale_hr_mac.h @@ -0,0 +1,321 @@ +/* This software is licensed under the MIT License: https://github.com/spacehuhntech/usbnova */ + +#pragma once + +#include "../usb_hid_keys.h" + +// Modifier(s), Key +const uint8_t ascii_hr_mac[] = { + KEY_NONE, KEY_NONE, // NUL + KEY_NONE, KEY_NONE, // SOH + KEY_NONE, KEY_NONE, // STX + KEY_NONE, KEY_NONE, // ETX + KEY_NONE, KEY_NONE, // EOT + KEY_NONE, KEY_NONE, // ENQ + KEY_NONE, KEY_NONE, // ACK + KEY_NONE, KEY_NONE, // BEL + + // 8, 0x08 + KEY_NONE, KEY_BACKSPACE, // BS Backspace + KEY_NONE, KEY_TAB, // TAB Tab + KEY_NONE, KEY_ENTER, // LF Enter + + KEY_NONE, KEY_NONE, // VT + KEY_NONE, KEY_NONE, // FF + KEY_NONE, KEY_NONE, // CR + KEY_NONE, KEY_NONE, // SO + KEY_NONE, KEY_NONE, // SI + KEY_NONE, KEY_NONE, // DEL + KEY_NONE, KEY_NONE, // DC1 + KEY_NONE, KEY_NONE, // DC2 + KEY_NONE, KEY_NONE, // DC3 + KEY_NONE, KEY_NONE, // DC4 + KEY_NONE, KEY_NONE, // NAK + KEY_NONE, KEY_NONE, // SYN + KEY_NONE, KEY_NONE, // ETB + KEY_NONE, KEY_NONE, // CAN + KEY_NONE, KEY_NONE, // EM + KEY_NONE, KEY_NONE, // SUB + KEY_NONE, KEY_NONE, // ESC + KEY_NONE, KEY_NONE, // FS + KEY_NONE, KEY_NONE, // GS + KEY_NONE, KEY_NONE, // RS + KEY_NONE, KEY_NONE, // US + + // 32, 0x20 + KEY_NONE, KEY_SPACE, // ' ' + KEY_MOD_LSHIFT, KEY_1, // ! + KEY_MOD_LSHIFT, KEY_2, // " + KEY_MOD_LSHIFT, KEY_3, // # + + // 36, 0x24 + KEY_MOD_LSHIFT, KEY_4, // $ + KEY_MOD_LSHIFT, KEY_5, // % + KEY_MOD_LSHIFT, KEY_6, // & + KEY_MOD_LSHIFT, KEY_7, // ' + + // 40, 0x28 + KEY_MOD_LSHIFT, KEY_8, // ( + KEY_MOD_LSHIFT, KEY_9, // ) + KEY_MOD_LSHIFT, KEY_EQUAL, // * + KEY_NONE, KEY_EQUAL, // + + + // 44, 0x2c + KEY_NONE, KEY_COMMA, // , + KEY_NONE, KEY_SLASH, // - + KEY_NONE, KEY_DOT, // . + KEY_NONE, KEY_MINUS, // / + + // 48, 0x30 + KEY_NONE, KEY_0, // 0 + KEY_NONE, KEY_1, // 1 + KEY_NONE, KEY_2, // 2 + KEY_NONE, KEY_3, // 3 + + // 52, 0x34 + KEY_NONE, KEY_4, // 4 + KEY_NONE, KEY_5, // 5 + KEY_NONE, KEY_6, // 6 + KEY_NONE, KEY_7, // 7 + + // 56, 0x38 + KEY_NONE, KEY_8, // 8 + KEY_NONE, KEY_9, // 9 + KEY_MOD_LSHIFT, KEY_DOT, // : + KEY_MOD_LSHIFT, KEY_COMMA, // ; + + // 60, 0x3c + KEY_NONE, KEY_GRAVE, // < + KEY_MOD_LSHIFT, KEY_0, // = + KEY_MOD_LSHIFT, KEY_GRAVE, // > + KEY_MOD_LSHIFT, KEY_MINUS, // ? + + // 64, 0x40 + KEY_MOD_LALT, KEY_2, // @ + KEY_MOD_LSHIFT, KEY_A, // A + KEY_MOD_LSHIFT, KEY_B, // B + KEY_MOD_LSHIFT, KEY_C, // C + + // 68, 0x44 + KEY_MOD_LSHIFT, KEY_D, // D + KEY_MOD_LSHIFT, KEY_E, // E + KEY_MOD_LSHIFT, KEY_F, // F + KEY_MOD_LSHIFT, KEY_G, // G + + // 72, 0x48 + KEY_MOD_LSHIFT, KEY_H, // H + KEY_MOD_LSHIFT, KEY_I, // I + KEY_MOD_LSHIFT, KEY_J, // J + KEY_MOD_LSHIFT, KEY_K, // K + + // 76, 0x4c + KEY_MOD_LSHIFT, KEY_L, // L + KEY_MOD_LSHIFT, KEY_M, // M + KEY_MOD_LSHIFT, KEY_N, // N + KEY_MOD_LSHIFT, KEY_O, // O + + // 80, 0x50 + KEY_MOD_LSHIFT, KEY_P, // P + KEY_MOD_LSHIFT, KEY_Q, // Q + KEY_MOD_LSHIFT, KEY_R, // R + KEY_MOD_LSHIFT, KEY_S, // S + + // 84, 0x54 + KEY_MOD_LSHIFT, KEY_T, // T + KEY_MOD_LSHIFT, KEY_U, // U + KEY_MOD_LSHIFT, KEY_V, // V + KEY_MOD_LSHIFT, KEY_W, // W + + // 88, 0x58 + KEY_MOD_LSHIFT, KEY_X, // X + KEY_MOD_LSHIFT, KEY_Y, // Y + KEY_MOD_LSHIFT, KEY_Z, // Z + KEY_MOD_LALT, KEY_LEFTBRACE, // [ + + // 92, 0x5c + KEY_MOD_LALT, KEY_BACKSLASH, // bslash + KEY_MOD_LALT, KEY_RIGHTBRACE, // ] + KEY_MOD_LALT, KEY_APOSTROPHE, // ^ + KEY_MOD_LSHIFT, KEY_SLASH, // _ + + // 96, 0x60 + KEY_NONE, KEY_SPACE, // ` + KEY_NONE, KEY_A, // a + KEY_NONE, KEY_B, // b + KEY_NONE, KEY_C, // c + + // 100, 0x64 + KEY_NONE, KEY_D, // d + KEY_NONE, KEY_E, // e + KEY_NONE, KEY_F, // f + KEY_NONE, KEY_G, // g + + // 104, 0x68 + KEY_NONE, KEY_H, // h + KEY_NONE, KEY_I, // i + KEY_NONE, KEY_J, // j + KEY_NONE, KEY_K, // k + + // 108, 0x6c + KEY_NONE, KEY_L, // l + KEY_NONE, KEY_M, // m + KEY_NONE, KEY_N, // n + KEY_NONE, KEY_O, // o + + // 112, 0x70 + KEY_NONE, KEY_P, // p + KEY_NONE, KEY_Q, // q + KEY_NONE, KEY_R, // r + KEY_NONE, KEY_S, // s + + // 116, 0x74 + KEY_NONE, KEY_T, // t + KEY_NONE, KEY_U, // u + KEY_NONE, KEY_V, // v + KEY_NONE, KEY_W, // w + + // 120, 0x78 + KEY_NONE, KEY_X, // x + KEY_NONE, KEY_Y, // y + KEY_NONE, KEY_Z, // z + (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_LEFTBRACE, // { + + // 124, 0x7c + (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_BACKSLASH, // | + (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_RIGHTBRACE, // } + (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_GRAVE, // ~ + KEY_NONE, KEY_DELETE // DEL +}; + +const uint8_t utf8_hr_mac[] = { + 0xC2, 0xA0, 0x00, 0x00, KEY_MOD_LALT, KEY_SPACE, //   + 0xC2, 0xA1, 0x00, 0x00, KEY_MOD_LALT, KEY_1, // ¡ + 0xC2, 0xA2, 0x00, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_5, // ¢ + 0xC2, 0xA3, 0x00, 0x00, KEY_MOD_LALT, KEY_3, // £ + 0xC2, 0xA7, 0x00, 0x00, KEY_MOD_LALT, KEY_6, // § + 0xC2, 0xA9, 0x00, 0x00, KEY_MOD_LALT, KEY_G, // © + 0xC2, 0xAA, 0x00, 0x00, KEY_MOD_LALT, KEY_9, // ª + 0xC2, 0xAB, 0x00, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_Z, // « + 0xC2, 0xAC, 0x00, 0x00, KEY_MOD_LALT, KEY_L, // ¬ + 0xC2, 0xAE, 0x00, 0x00, KEY_MOD_LALT, KEY_R, // ® + 0xC2, 0xAF, 0x00, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_M, // ¯ + 0xC2, 0xB0, 0x00, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_8, // ° + 0xC2, 0xB1, 0x00, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_EQUAL, // ± + 0xC2, 0xB5, 0x00, 0x00, KEY_MOD_LALT, KEY_M, // µ + 0xC2, 0xB6, 0x00, 0x00, KEY_MOD_LALT, KEY_7, // ¶ + 0xC2, 0xB7, 0x00, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_9, // · + 0xC2, 0xBA, 0x00, 0x00, KEY_MOD_LALT, KEY_0, // º + 0xC2, 0xBB, 0x00, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_X, // » + 0xC2, 0xBF, 0x00, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_MINUS, // ¿ + 0xC3, 0x85, 0x00, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_A, // Å + 0xC3, 0x86, 0x00, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_APOSTROPHE, // Æ + 0xC3, 0x87, 0x00, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_C, // Ç + 0xC3, 0x88, 0x00, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_COMMA, // È + 0xC3, 0x89, 0x00, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_I, // É + 0xC3, 0x8C, 0x00, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_G, // Ì + 0xC3, 0x8D, 0x00, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_S, // Í + 0xC3, 0x8E, 0x00, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_D, // Î + 0xC3, 0x8F, 0x00, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_F, // Ï + 0xC3, 0x91, 0x00, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_B, // Ñ + 0xC3, 0x92, 0x00, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_L, // Ò + 0xC3, 0x93, 0x00, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_H, // Ó + 0xC3, 0x94, 0x00, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_J, // Ô + 0xC3, 0x98, 0x00, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_O, // Ø + 0xC3, 0x9F, 0x00, 0x00, KEY_MOD_LALT, KEY_S, // ß + 0xC3, 0xA5, 0x00, 0x00, KEY_MOD_LALT, KEY_A, // å + 0xC3, 0xA6, 0x00, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_SEMICOLON, // æ + 0xC3, 0xA7, 0x00, 0x00, KEY_MOD_LALT, KEY_C, // ç + 0xC3, 0xB7, 0x00, 0x00, KEY_MOD_LALT, KEY_MINUS, // ÷ + 0xC3, 0xB8, 0x00, 0x00, KEY_MOD_LALT, KEY_O, // ø + 0xC4, 0x86, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_APOSTROPHE, // Ć + 0xC4, 0x87, 0x00, 0x00, KEY_NONE, KEY_APOSTROPHE, // ć + 0xC4, 0x8C, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_SEMICOLON, // Č + 0xC4, 0x8D, 0x00, 0x00, KEY_NONE, KEY_SEMICOLON, // č + 0xC4, 0x90, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_RIGHTBRACE, // Đ + 0xC4, 0x91, 0x00, 0x00, KEY_NONE, KEY_RIGHTBRACE, // đ + 0xC4, 0xB1, 0x00, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_6, // ı + 0xC5, 0x92, 0x00, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_Q, // Œ + 0xC5, 0x93, 0x00, 0x00, KEY_MOD_LALT, KEY_Q, // œ + 0xC5, 0xA0, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, // Š + 0xC5, 0xA1, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, // š + 0xC5, 0xBD, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_BACKSLASH, // Ž + 0xC5, 0xBE, 0x00, 0x00, KEY_NONE, KEY_BACKSLASH, // ž + 0xC6, 0x92, 0x00, 0x00, KEY_MOD_LALT, KEY_F, // ƒ + 0xCB, 0x86, 0x00, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_N, // ˆ + 0xCB, 0x87, 0x00, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_DOT, // ˇ + 0xCE, 0xA9, 0x00, 0x00, KEY_MOD_LALT, KEY_Z, // Ω + 0xCF, 0x80, 0x00, 0x00, KEY_MOD_LALT, KEY_P, // π + 0xE2, 0x80, 0x93, 0x00, KEY_MOD_LALT, KEY_SLASH, // – + 0xE2, 0x80, 0x94, 0x00, KEY_MOD_LALT, KEY_Y, // — + 0xE2, 0x80, 0x98, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_T, // ‘ + 0xE2, 0x80, 0x99, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_U, // ’ + 0xE2, 0x80, 0x9A, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_0, // ‚ + 0xE2, 0x80, 0x9C, 0x00, KEY_NONE, KEY_102ND, // “ + 0xE2, 0x80, 0x9D, 0x00, KEY_MOD_LSHIFT, KEY_102ND, // ” + 0xE2, 0x80, 0x9E, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_W, // „ + 0xE2, 0x80, 0xA0, 0x00, KEY_MOD_LALT, KEY_T, // † + 0xE2, 0x80, 0xA2, 0x00, KEY_MOD_LALT, KEY_8, // • + 0xE2, 0x80, 0xA6, 0x00, KEY_MOD_LALT, KEY_SEMICOLON, // … + 0xE2, 0x80, 0xB0, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_E, // ‰ + 0xE2, 0x80, 0xB9, 0x00, KEY_MOD_LALT, KEY_102ND, // ‹ + 0xE2, 0x80, 0xBA, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_4, // › + 0xE2, 0x81, 0x84, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_1, // ⁄ + 0xE2, 0x82, 0xAC, 0x00, KEY_MOD_LALT, KEY_4, // € + 0xE2, 0x84, 0xA2, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_2, // ™ + 0xE2, 0x88, 0x82, 0x00, KEY_MOD_LALT, KEY_D, // ∂ + 0xE2, 0x88, 0x86, 0x00, KEY_MOD_LALT, KEY_J, // ∆ + 0xE2, 0x88, 0x8F, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_P, // ∏ + 0xE2, 0x88, 0x91, 0x00, KEY_MOD_LALT, KEY_W, // ∑ + 0xE2, 0x88, 0x9A, 0x00, KEY_MOD_LALT, KEY_V, // √ + 0xE2, 0x88, 0x9E, 0x00, KEY_MOD_LALT, KEY_5, // ∞ + 0xE2, 0x88, 0xAB, 0x00, KEY_MOD_LALT, KEY_B, // ∫ + 0xE2, 0x89, 0x88, 0x00, KEY_MOD_LALT, KEY_X, // ≈ + 0xE2, 0x89, 0xA0, 0x00, KEY_MOD_LALT, KEY_EQUAL, // ≠ + 0xE2, 0x89, 0xA4, 0x00, KEY_MOD_LALT, KEY_COMMA, // ≤ + 0xE2, 0x89, 0xA5, 0x00, KEY_MOD_LALT, KEY_DOT, // ≥ + 0xE2, 0x97, 0x8A, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_V, // ◊ + 0xEF, 0xA3, 0xBF, 0x00, (KEY_MOD_LALT|KEY_MOD_LSHIFT), KEY_K, //  +}; + +const uint8_t combinations_hr_mac[] = { + 0x60, 0x00, 0x00, 0x00, KEY_MOD_LALT, KEY_GRAVE, KEY_NONE, KEY_SPACE, // ` + 0xC2, 0xA8, 0x00, 0x00, KEY_MOD_LALT, KEY_U, KEY_NONE, KEY_SPACE, // ¨ + 0xC2, 0xB4, 0x00, 0x00, KEY_MOD_LALT, KEY_E, KEY_NONE, KEY_SPACE, // ´ + 0xC3, 0x80, 0x00, 0x00, KEY_MOD_LALT, KEY_GRAVE, KEY_MOD_LSHIFT, KEY_A, // À + 0xC3, 0x81, 0x00, 0x00, KEY_MOD_LALT, KEY_E, KEY_MOD_LSHIFT, KEY_A, // Á + 0xC3, 0x82, 0x00, 0x00, KEY_MOD_LALT, KEY_I, KEY_MOD_LSHIFT, KEY_A, //  + 0xC3, 0x83, 0x00, 0x00, KEY_MOD_LALT, KEY_N, KEY_MOD_LSHIFT, KEY_A, // à + 0xC3, 0x84, 0x00, 0x00, KEY_MOD_LALT, KEY_U, KEY_MOD_LSHIFT, KEY_A, // Ä + 0xC3, 0x8A, 0x00, 0x00, KEY_MOD_LALT, KEY_I, KEY_MOD_LSHIFT, KEY_E, // Ê + 0xC3, 0x8B, 0x00, 0x00, KEY_MOD_LALT, KEY_U, KEY_MOD_LSHIFT, KEY_E, // Ë + 0xC3, 0x95, 0x00, 0x00, KEY_MOD_LALT, KEY_N, KEY_MOD_LSHIFT, KEY_O, // Õ + 0xC3, 0x96, 0x00, 0x00, KEY_MOD_LALT, KEY_U, KEY_MOD_LSHIFT, KEY_O, // Ö + 0xC3, 0x99, 0x00, 0x00, KEY_MOD_LALT, KEY_GRAVE, KEY_MOD_LSHIFT, KEY_U, // Ù + 0xC3, 0x9A, 0x00, 0x00, KEY_MOD_LALT, KEY_E, KEY_MOD_LSHIFT, KEY_U, // Ú + 0xC3, 0x9B, 0x00, 0x00, KEY_MOD_LALT, KEY_I, KEY_MOD_LSHIFT, KEY_U, // Û + 0xC3, 0xA0, 0x00, 0x00, KEY_MOD_LALT, KEY_GRAVE, KEY_NONE, KEY_A, // à + 0xC3, 0xA1, 0x00, 0x00, KEY_MOD_LALT, KEY_E, KEY_NONE, KEY_A, // á + 0xC3, 0xA2, 0x00, 0x00, KEY_MOD_LALT, KEY_I, KEY_NONE, KEY_A, // â + 0xC3, 0xA3, 0x00, 0x00, KEY_MOD_LALT, KEY_N, KEY_NONE, KEY_A, // ã + 0xC3, 0xA4, 0x00, 0x00, KEY_MOD_LALT, KEY_U, KEY_NONE, KEY_A, // ä + 0xC3, 0xA8, 0x00, 0x00, KEY_MOD_LALT, KEY_GRAVE, KEY_NONE, KEY_E, // è + 0xC3, 0xAA, 0x00, 0x00, KEY_MOD_LALT, KEY_I, KEY_NONE, KEY_E, // ê + 0xC3, 0xAB, 0x00, 0x00, KEY_MOD_LALT, KEY_U, KEY_NONE, KEY_E, // ë + 0xC3, 0xAC, 0x00, 0x00, KEY_MOD_LALT, KEY_GRAVE, KEY_NONE, KEY_I, // ì + 0xC3, 0xAD, 0x00, 0x00, KEY_MOD_LALT, KEY_E, KEY_NONE, KEY_I, // í + 0xC3, 0xAF, 0x00, 0x00, KEY_MOD_LALT, KEY_U, KEY_NONE, KEY_I, // ï + 0xC3, 0xB2, 0x00, 0x00, KEY_MOD_LALT, KEY_GRAVE, KEY_NONE, KEY_O, // ò + 0xC3, 0xB3, 0x00, 0x00, KEY_MOD_LALT, KEY_E, KEY_NONE, KEY_O, // ó + 0xC3, 0xB4, 0x00, 0x00, KEY_MOD_LALT, KEY_I, KEY_NONE, KEY_O, // ô + 0xC3, 0xB5, 0x00, 0x00, KEY_MOD_LALT, KEY_N, KEY_NONE, KEY_O, // õ + 0xC3, 0xB6, 0x00, 0x00, KEY_MOD_LALT, KEY_U, KEY_NONE, KEY_O, // ö + 0xC3, 0xB9, 0x00, 0x00, KEY_MOD_LALT, KEY_GRAVE, KEY_NONE, KEY_U, // ù + 0xC3, 0xBA, 0x00, 0x00, KEY_MOD_LALT, KEY_E, KEY_NONE, KEY_U, // ú + 0xC3, 0xBB, 0x00, 0x00, KEY_MOD_LALT, KEY_I, KEY_NONE, KEY_U, // û +}; + +static hid_locale_t locale_hr_mac { + (uint8_t*)ascii_hr_mac, 128, + (uint8_t*)utf8_hr_mac, sizeof(utf8_hr_mac) / 6, + (uint8_t*)combinations_hr_mac, sizeof(combinations_hr_mac) / 8, +}; \ No newline at end of file diff --git a/src/locale/win/locale_hr_win.h b/src/locale/win/locale_hr_win.h new file mode 100644 index 0000000..7c27a76 --- /dev/null +++ b/src/locale/win/locale_hr_win.h @@ -0,0 +1,253 @@ +/* This software is licensed under the MIT License: https://github.com/spacehuhntech/usbnova */ + +#pragma once + +#include "../usb_hid_keys.h" + +// Modifier(s), Key +const uint8_t ascii_hr_win[] = { + KEY_NONE, KEY_NONE, // NUL + KEY_NONE, KEY_NONE, // SOH + KEY_NONE, KEY_NONE, // STX + KEY_NONE, KEY_NONE, // ETX + KEY_NONE, KEY_NONE, // EOT + KEY_NONE, KEY_NONE, // ENQ + KEY_NONE, KEY_NONE, // ACK + KEY_NONE, KEY_NONE, // BEL + + // 8, 0x08 + KEY_NONE, KEY_BACKSPACE, // BS Backspace + KEY_NONE, KEY_TAB, // TAB Tab + KEY_NONE, KEY_ENTER, // LF Enter + + KEY_NONE, KEY_NONE, // VT + KEY_NONE, KEY_NONE, // FF + KEY_NONE, KEY_NONE, // CR + KEY_NONE, KEY_NONE, // SO + KEY_NONE, KEY_NONE, // SI + KEY_NONE, KEY_NONE, // DEL + KEY_NONE, KEY_NONE, // DC1 + KEY_NONE, KEY_NONE, // DC2 + KEY_NONE, KEY_NONE, // DC3 + KEY_NONE, KEY_NONE, // DC4 + KEY_NONE, KEY_NONE, // NAK + KEY_NONE, KEY_NONE, // SYN + KEY_NONE, KEY_NONE, // ETB + KEY_NONE, KEY_NONE, // CAN + KEY_NONE, KEY_NONE, // EM + KEY_NONE, KEY_NONE, // SUB + KEY_NONE, KEY_NONE, // ESC + KEY_NONE, KEY_NONE, // FS + KEY_NONE, KEY_NONE, // GS + KEY_NONE, KEY_NONE, // RS + KEY_NONE, KEY_NONE, // US + + // 32, 0x20 + KEY_NONE, KEY_SPACE, // ' ' + KEY_MOD_LSHIFT, KEY_1, // ! + KEY_MOD_LSHIFT, KEY_2, // " + KEY_MOD_LSHIFT, KEY_3, // # + + // 36, 0x24 + KEY_MOD_LSHIFT, KEY_4, // $ + KEY_MOD_LSHIFT, KEY_5, // % + KEY_MOD_LSHIFT, KEY_6, // & + KEY_NONE, KEY_MINUS, // ' + + // 40, 0x28 + KEY_MOD_LSHIFT, KEY_8, // ( + KEY_MOD_LSHIFT, KEY_9, // ) + KEY_MOD_LSHIFT, KEY_EQUAL, // * + KEY_NONE, KEY_EQUAL, // + + + // 44, 0x2c + KEY_NONE, KEY_COMMA, // , + KEY_NONE, KEY_SLASH, // - + KEY_NONE, KEY_DOT, // . + KEY_MOD_LSHIFT, KEY_7, // / + + // 48, 0x30 + KEY_NONE, KEY_0, // 0 + KEY_NONE, KEY_1, // 1 + KEY_NONE, KEY_2, // 2 + KEY_NONE, KEY_3, // 3 + + // 52, 0x34 + KEY_NONE, KEY_4, // 4 + KEY_NONE, KEY_5, // 5 + KEY_NONE, KEY_6, // 6 + KEY_NONE, KEY_7, // 7 + + // 56, 0x38 + KEY_NONE, KEY_8, // 8 + KEY_NONE, KEY_9, // 9 + KEY_MOD_LSHIFT, KEY_DOT, // : + KEY_MOD_LSHIFT, KEY_COMMA, // ; + + // 60, 0x3c + KEY_NONE, KEY_102ND, // < + KEY_MOD_LSHIFT, KEY_0, // = + KEY_MOD_LSHIFT, KEY_102ND, // > + KEY_MOD_LSHIFT, KEY_MINUS, // ? + + // 64, 0x40 + KEY_MOD_RALT, KEY_V, // @ + KEY_MOD_LSHIFT, KEY_A, // A + KEY_MOD_LSHIFT, KEY_B, // B + KEY_MOD_LSHIFT, KEY_C, // C + + // 68, 0x44 + KEY_MOD_LSHIFT, KEY_D, // D + KEY_MOD_LSHIFT, KEY_E, // E + KEY_MOD_LSHIFT, KEY_F, // F + KEY_MOD_LSHIFT, KEY_G, // G + + // 72, 0x48 + KEY_MOD_LSHIFT, KEY_H, // H + KEY_MOD_LSHIFT, KEY_I, // I + KEY_MOD_LSHIFT, KEY_J, // J + KEY_MOD_LSHIFT, KEY_K, // K + + // 76, 0x4c + KEY_MOD_LSHIFT, KEY_L, // L + KEY_MOD_LSHIFT, KEY_M, // M + KEY_MOD_LSHIFT, KEY_N, // N + KEY_MOD_LSHIFT, KEY_O, // O + + // 80, 0x50 + KEY_MOD_LSHIFT, KEY_P, // P + KEY_MOD_LSHIFT, KEY_Q, // Q + KEY_MOD_LSHIFT, KEY_R, // R + KEY_MOD_LSHIFT, KEY_S, // S + + // 84, 0x54 + KEY_MOD_LSHIFT, KEY_T, // T + KEY_MOD_LSHIFT, KEY_U, // U + KEY_MOD_LSHIFT, KEY_V, // V + KEY_MOD_LSHIFT, KEY_W, // W + + // 88, 0x58 + KEY_MOD_LSHIFT, KEY_X, // X + KEY_MOD_LSHIFT, KEY_Z, // Y + KEY_MOD_LSHIFT, KEY_Y, // Z + KEY_MOD_RALT, KEY_F, // [ + + // 92, 0x5c + KEY_MOD_RALT, KEY_Q, // bslash + KEY_MOD_RALT, KEY_G, // ] + KEY_MOD_RALT, KEY_3, // ^ + KEY_MOD_LSHIFT, KEY_SLASH, // _ + + // 96, 0x60 + KEY_MOD_RALT, KEY_7, // ` + KEY_NONE, KEY_A, // a + KEY_NONE, KEY_B, // b + KEY_NONE, KEY_C, // c + + // 100, 0x64 + KEY_NONE, KEY_D, // d + KEY_NONE, KEY_E, // e + KEY_NONE, KEY_F, // f + KEY_NONE, KEY_G, // g + + // 104, 0x68 + KEY_NONE, KEY_H, // h + KEY_NONE, KEY_I, // i + KEY_NONE, KEY_J, // j + KEY_NONE, KEY_K, // k + + // 108, 0x6c + KEY_NONE, KEY_L, // l + KEY_NONE, KEY_M, // m + KEY_NONE, KEY_N, // n + KEY_NONE, KEY_O, // o + + // 112, 0x70 + KEY_NONE, KEY_P, // p + KEY_NONE, KEY_Q, // q + KEY_NONE, KEY_R, // r + KEY_NONE, KEY_S, // s + + // 116, 0x74 + KEY_NONE, KEY_T, // t + KEY_NONE, KEY_U, // u + KEY_NONE, KEY_V, // v + KEY_NONE, KEY_W, // w + + // 120, 0x78 + KEY_NONE, KEY_X, // x + KEY_NONE, KEY_Z, // y + KEY_NONE, KEY_Y, // z + KEY_MOD_RALT, KEY_B, // { + + // 124, 0x7c + KEY_MOD_RALT, KEY_W, // | + KEY_MOD_RALT, KEY_N, // } + KEY_MOD_RALT, KEY_1, // ~ + KEY_NONE, KEY_DELETE // DEL +}; + +const uint8_t utf8_hr_win[] = { + 0xC2, 0xA4, 0x00, 0x00, KEY_MOD_RALT, KEY_BACKSLASH, // ¤ + 0xC2, 0xA7, 0x00, 0x00, KEY_MOD_RALT, KEY_M, // § + 0xC2, 0xB0, 0x00, 0x00, KEY_MOD_RALT, KEY_5, // ° + 0xC2, 0xB4, 0x00, 0x00, KEY_MOD_RALT, KEY_9, // ´ + 0xC2, 0xB8, 0x00, 0x00, KEY_MOD_RALT, KEY_EQUAL, // ¸ + 0xC3, 0x97, 0x00, 0x00, KEY_MOD_RALT, KEY_RIGHTBRACE, // × + 0xC3, 0x9F, 0x00, 0x00, KEY_MOD_RALT, KEY_APOSTROPHE, // ß + 0xC3, 0xB7, 0x00, 0x00, KEY_MOD_RALT, KEY_LEFTBRACE, // ÷ + 0xC4, 0x86, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_APOSTROPHE, // Ć + 0xC4, 0x87, 0x00, 0x00, KEY_NONE, KEY_APOSTROPHE, // ć + 0xC4, 0x8C, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_SEMICOLON, // Č + 0xC4, 0x8D, 0x00, 0x00, KEY_NONE, KEY_SEMICOLON, // č + 0xC4, 0x90, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_RIGHTBRACE, // Đ + 0xC4, 0x91, 0x00, 0x00, KEY_NONE, KEY_RIGHTBRACE, // đ + 0xC5, 0x81, 0x00, 0x00, KEY_MOD_RALT, KEY_L, // Ł + 0xC5, 0x82, 0x00, 0x00, KEY_MOD_RALT, KEY_K, // ł + 0xC5, 0xA0, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, // Š + 0xC5, 0xA1, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, // š + 0xC5, 0xBD, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_BACKSLASH, // Ž + 0xC5, 0xBE, 0x00, 0x00, KEY_NONE, KEY_BACKSLASH, // ž + 0xE2, 0x82, 0xAC, 0x00, KEY_MOD_RALT, KEY_E, // € +}; + +const uint8_t combinations_hr_win[] = { + 0xC2, 0xA8, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_GRAVE, KEY_NONE, KEY_SPACE, // ¨ + 0xC3, 0x84, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_GRAVE, KEY_MOD_LSHIFT, KEY_A, // Ä + 0xC3, 0x87, 0x00, 0x00, KEY_NONE, KEY_GRAVE, KEY_MOD_LSHIFT, KEY_C, // Ç + 0xC3, 0x8B, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_GRAVE, KEY_MOD_LSHIFT, KEY_E, // Ë + 0xC3, 0x96, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_GRAVE, KEY_MOD_LSHIFT, KEY_O, // Ö + 0xC3, 0x9C, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_GRAVE, KEY_MOD_LSHIFT, KEY_U, // Ü + 0xC3, 0xA4, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_GRAVE, KEY_NONE, KEY_A, // ä + 0xC3, 0xA7, 0x00, 0x00, KEY_NONE, KEY_GRAVE, KEY_NONE, KEY_C, // ç + 0xC3, 0xAB, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_GRAVE, KEY_NONE, KEY_E, // ë + 0xC3, 0xB6, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_GRAVE, KEY_NONE, KEY_O, // ö + 0xC3, 0xBC, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_GRAVE, KEY_NONE, KEY_U, // ü + 0xC4, 0x82, 0x00, 0x00, KEY_MOD_RALT, KEY_4, KEY_MOD_LSHIFT, KEY_A, // Ă + 0xC4, 0x83, 0x00, 0x00, KEY_MOD_RALT, KEY_4, KEY_NONE, KEY_A, // ă + 0xC4, 0x84, 0x00, 0x00, KEY_MOD_RALT, KEY_6, KEY_MOD_LSHIFT, KEY_A, // Ą + 0xC4, 0x85, 0x00, 0x00, KEY_MOD_RALT, KEY_6, KEY_NONE, KEY_A, // ą + 0xC4, 0x8E, 0x00, 0x00, KEY_MOD_RALT, KEY_2, KEY_MOD_LSHIFT, KEY_D, // Ď + 0xC4, 0x8F, 0x00, 0x00, KEY_MOD_RALT, KEY_2, KEY_NONE, KEY_D, // ď + 0xC4, 0x98, 0x00, 0x00, KEY_MOD_RALT, KEY_6, KEY_MOD_LSHIFT, KEY_E, // Ę + 0xC4, 0x99, 0x00, 0x00, KEY_MOD_RALT, KEY_6, KEY_NONE, KEY_E, // ę + 0xC4, 0x9A, 0x00, 0x00, KEY_MOD_RALT, KEY_2, KEY_MOD_LSHIFT, KEY_E, // Ě + 0xC4, 0x9B, 0x00, 0x00, KEY_MOD_RALT, KEY_2, KEY_NONE, KEY_E, // ě + 0xC5, 0x90, 0x00, 0x00, KEY_MOD_RALT, KEY_0, KEY_MOD_LSHIFT, KEY_O, // Ő + 0xC5, 0x91, 0x00, 0x00, KEY_MOD_RALT, KEY_0, KEY_NONE, KEY_O, // ő + 0xC5, 0x9E, 0x00, 0x00, KEY_NONE, KEY_GRAVE, KEY_MOD_LSHIFT, KEY_S, // Ş + 0xC5, 0x9F, 0x00, 0x00, KEY_NONE, KEY_GRAVE, KEY_NONE, KEY_S, // ş + 0xC5, 0xB0, 0x00, 0x00, KEY_MOD_RALT, KEY_0, KEY_MOD_LSHIFT, KEY_U, // Ű + 0xC5, 0xB1, 0x00, 0x00, KEY_MOD_RALT, KEY_0, KEY_NONE, KEY_U, // ű + 0xCB, 0x87, 0x00, 0x00, KEY_MOD_RALT, KEY_2, KEY_NONE, KEY_SPACE, // ˇ + 0xCB, 0x98, 0x00, 0x00, KEY_MOD_RALT, KEY_4, KEY_NONE, KEY_SPACE, // ˘ + 0xCB, 0x99, 0x00, 0x00, KEY_MOD_RALT, KEY_8, KEY_NONE, KEY_SPACE, // ˙ + 0xCB, 0x9B, 0x00, 0x00, KEY_MOD_RALT, KEY_6, KEY_NONE, KEY_SPACE, // ˛ + 0xCB, 0x9D, 0x00, 0x00, KEY_MOD_RALT, KEY_0, KEY_NONE, KEY_SPACE, // ˝ +}; + +static hid_locale_t locale_hr_win { + (uint8_t*)ascii_hr_win, 128, + (uint8_t*)utf8_hr_win, sizeof(utf8_hr_win) / 6, + (uint8_t*)combinations_hr_win, sizeof(combinations_hr_win) / 8, +}; \ No newline at end of file