From a721dd3212d8ba9a4e0d2ee320dbca83513fa813 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Monda?= Date: Tue, 29 Mar 2016 23:02:36 +0200 Subject: [PATCH] Add SwitchKeymapAction --- .../config-items/SwitchKeymapAction.ts | 44 +++++++++++++++++++ .../config-items/config-items.ts | 1 + config-serializer/serializeConfig.ts | 9 ---- 3 files changed, 45 insertions(+), 9 deletions(-) create mode 100644 config-serializer/config-items/SwitchKeymapAction.ts diff --git a/config-serializer/config-items/SwitchKeymapAction.ts b/config-serializer/config-items/SwitchKeymapAction.ts new file mode 100644 index 00000000..f5c24783 --- /dev/null +++ b/config-serializer/config-items/SwitchKeymapAction.ts @@ -0,0 +1,44 @@ +class SwitchKeymapAction extends KeyAction implements Serializable { + + static keyActionTypeString = 'switchKeymap'; + static keyActionId = 246; + + private _keymapId: number; + + get keymapId(): number { + return this._keymapId; + } + + set keymapId(value) { + if (!SwitchKeymapAction.isKeymapIdValid(value)) { + throw 'Invalid SwitchKeymapAction.keymapId: ${value}'; + } + this._keymapId = value; + } + + static isKeymapIdValid(keymapId) { + return 0 <= keymapId && keymapId <= 255; + } + + fromJsObject(jsObject: any): SwitchKeymapAction { + this.keymapId = jsObject.keymapId; + return this; + } + + fromBinary(buffer: UhkBuffer): SwitchKeymapAction { + this.keymapId = buffer.readUInt8(); + return this; + } + + toJsObject(): any { + return { + keyActionType: SwitchKeymapAction.keyActionTypeString, + keymapId: this.keymapId + }; + } + + toBinary(buffer: UhkBuffer) { + buffer.writeUInt8(SwitchKeymapAction.keyActionId); + buffer.writeUInt8(this.keymapId); + } +} diff --git a/config-serializer/config-items/config-items.ts b/config-serializer/config-items/config-items.ts index 4b5ecc4c..0c1bd558 100644 --- a/config-serializer/config-items/config-items.ts +++ b/config-serializer/config-items/config-items.ts @@ -2,4 +2,5 @@ /// /// /// +/// /// diff --git a/config-serializer/serializeConfig.ts b/config-serializer/serializeConfig.ts index 67b87dc6..d073d704 100644 --- a/config-serializer/serializeConfig.ts +++ b/config-serializer/serializeConfig.ts @@ -22,7 +22,6 @@ let KEY_ACTION_ID_DUAL_ROLE_KEYSTROKE_RIGHT_CTRL = 240; let KEY_ACTION_ID_DUAL_ROLE_KEYSTROKE_RIGHT_SHIFT = 241; let KEY_ACTION_ID_DUAL_ROLE_KEYSTROKE_RIGHT_ALT = 242; let KEY_ACTION_ID_DUAL_ROLE_KEYSTROKE_RIGHT_SUPER = 243; -let KEY_ACTION_ID_SWITCH_KEYMAP = 246; let KEY_ACTION_ID_NONE = 255; let SWITCH_LAYER_MOD = 0; @@ -45,9 +44,6 @@ function serializeKeyAction(keyAction) { case 'dualRoleKeystroke': serializeDualRoleKeyAction(keyAction); break; - case 'switchKeymap': - serializeSwitchKeymapAction(keyAction); - break; case 'switchLayer': serializeSwitchLayerAction(keyAction); break; @@ -73,11 +69,6 @@ function serializeDualRoleKeyAction(dualRoleKeyAction) { writer.writeUInt8(dualRoleKeyAction.scancode); } -function serializeSwitchKeymapAction(switchKeymapAction) { - writer.writeUInt8(KEY_ACTION_ID_SWITCH_KEYMAP); - writer.writeUInt8(switchKeymapAction.keymapId); -} - function serializeSwitchLayerAction(switchLayerAction) { writer.writeUInt8(KEY_ACTION_ID_SWITCH_LAYER); writer.writeUInt8({