UNPKG

@keymanapp/common-types

Version:

Keyman Developer keyboard file types

93 lines (91 loc) 4.07 kB
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="8c03099b-d6b6-5110-8d1b-2d7b6ca3c87a")}catch(e){}}(); import * as r from 'restructure'; // // Binary backing structures for .kvk format // matching VisualKeyboardSaverBinary.pas // export const BUILDER_KVK_HEADER_IDENTIFIER = 0x464B564B; // 'KVKF', little-endian export const KVK_HEADER_IDENTIFIER_BYTES = [0x4B, 0x56, 0x4B, 0x46]; export const BUILDER_KVK_HEADER_VERSION = 0x0600; // Keyman 6.0 ; ; export const BUILDER_KVK_FONT_Size = 8; // size of fixed elements of BUILDER_KVK_FONT export var BUILDER_KVK_KEY_FLAGS; (function (BUILDER_KVK_KEY_FLAGS) { BUILDER_KVK_KEY_FLAGS[BUILDER_KVK_KEY_FLAGS["kvkkBitmap"] = 1] = "kvkkBitmap"; BUILDER_KVK_KEY_FLAGS[BUILDER_KVK_KEY_FLAGS["kvkkUnicode"] = 2] = "kvkkUnicode"; })(BUILDER_KVK_KEY_FLAGS || (BUILDER_KVK_KEY_FLAGS = {})); ; export var BUILDER_KVK_SHIFT_STATE; (function (BUILDER_KVK_SHIFT_STATE) { BUILDER_KVK_SHIFT_STATE[BUILDER_KVK_SHIFT_STATE["KVKS_NORMAL"] = 0] = "KVKS_NORMAL"; BUILDER_KVK_SHIFT_STATE[BUILDER_KVK_SHIFT_STATE["KVKS_SHIFT"] = 1] = "KVKS_SHIFT"; BUILDER_KVK_SHIFT_STATE[BUILDER_KVK_SHIFT_STATE["KVKS_CTRL"] = 2] = "KVKS_CTRL"; BUILDER_KVK_SHIFT_STATE[BUILDER_KVK_SHIFT_STATE["KVKS_ALT"] = 4] = "KVKS_ALT"; BUILDER_KVK_SHIFT_STATE[BUILDER_KVK_SHIFT_STATE["KVKS_LCTRL"] = 8] = "KVKS_LCTRL"; BUILDER_KVK_SHIFT_STATE[BUILDER_KVK_SHIFT_STATE["KVKS_RCTRL"] = 16] = "KVKS_RCTRL"; BUILDER_KVK_SHIFT_STATE[BUILDER_KVK_SHIFT_STATE["KVKS_LALT"] = 32] = "KVKS_LALT"; BUILDER_KVK_SHIFT_STATE[BUILDER_KVK_SHIFT_STATE["KVKS_RALT"] = 64] = "KVKS_RALT"; })(BUILDER_KVK_SHIFT_STATE || (BUILDER_KVK_SHIFT_STATE = {})); ; ; export const BUILDER_KVK_KEY_Size = 9; // size of fixed elements of BUILDER_KVK_KEY export var BUILDER_KVK_HEADER_FLAGS; (function (BUILDER_KVK_HEADER_FLAGS) { BUILDER_KVK_HEADER_FLAGS[BUILDER_KVK_HEADER_FLAGS["kvkhNone"] = 0] = "kvkhNone"; BUILDER_KVK_HEADER_FLAGS[BUILDER_KVK_HEADER_FLAGS["kvkh102"] = 1] = "kvkh102"; BUILDER_KVK_HEADER_FLAGS[BUILDER_KVK_HEADER_FLAGS["kvkhDisplayUnderlying"] = 2] = "kvkhDisplayUnderlying"; BUILDER_KVK_HEADER_FLAGS[BUILDER_KVK_HEADER_FLAGS["kvkhUseUnderlying"] = 4] = "kvkhUseUnderlying"; BUILDER_KVK_HEADER_FLAGS[BUILDER_KVK_HEADER_FLAGS["kvkhAltGr"] = 8] = "kvkhAltGr"; })(BUILDER_KVK_HEADER_FLAGS || (BUILDER_KVK_HEADER_FLAGS = {})); ; ; export const BUILDER_KVK_HEADER_Size = 9 + BUILDER_KVK_FONT_Size + BUILDER_KVK_FONT_Size; // size of fixed elements of BUILDER_KVK_HEADER ; export default class KVKFile { KVK_HEADER; KVK_KEY; KVK_KEYS; KVK_FONT; KVK_FILE; KVK_STRING; constructor() { // // Binary restructure definitions matching VisualKeyboardSaverBinary.pas // TODO: move binaries to separate kvk-file.ts // this.KVK_STRING = new r.Struct({ len: r.int16le, str: new r.String(null, 'utf16le') }); this.KVK_FONT = new r.Struct({ name: this.KVK_STRING, size: r.int32le, color: r.uint32le }); this.KVK_KEY = new r.Struct({ flags: r.uint8, shift: r.uint16le, vkey: r.uint16le, text: this.KVK_STRING, bitmapSize: r.uint32le, bitmapData: new r.Array(r.uint8, 'bitmapSize') }); this.KVK_HEADER = new r.Struct({ identifier: r.uint32le, // KVKF version: r.uint32le, // 0x0600 flags: r.uint8, associatedKeyboard: this.KVK_STRING, ansiFont: this.KVK_FONT, unicodeFont: this.KVK_FONT }); this.KVK_FILE = new r.Struct({ header: this.KVK_HEADER, keyCount: r.uint32le, keys: new r.Array(this.KVK_KEY, 'keyCount') }); } } ; //# sourceMappingURL=kvk-file.js.map //# debugId=8c03099b-d6b6-5110-8d1b-2d7b6ca3c87a