From 6dd479e04b637e985fdfeae1a65688b759a754c3 Mon Sep 17 00:00:00 2001 From: Sam Rang Date: Sun, 17 Apr 2016 22:55:20 -0500 Subject: [PATCH] more macro action types --- .../config-items/HoldKeyAction.ts | 33 +++++++++++++++++++ .../config-items/HoldModifiersAction.ts | 33 +++++++++++++++++++ .../config-items/HoldMouseButtonsAction.ts | 33 +++++++++++++++++++ .../config-items/MacroActions.ts | 32 ++++++++++++++++++ .../config-items/PressModifiersAction.ts | 33 +++++++++++++++++++ .../config-items/PressMouseButtonsAction.ts | 33 +++++++++++++++++++ .../config-items/ReleaseKeyAction.ts | 33 +++++++++++++++++++ .../config-items/ReleaseModifiersAction.ts | 33 +++++++++++++++++++ .../config-items/ReleaseMouseButtonsAction.ts | 33 +++++++++++++++++++ .../config-items/config-items.ts | 8 +++++ config-serializer/uhk-config.json | 32 ++++++++++++++++++ 11 files changed, 336 insertions(+) create mode 100644 config-serializer/config-items/HoldKeyAction.ts create mode 100644 config-serializer/config-items/HoldModifiersAction.ts create mode 100644 config-serializer/config-items/HoldMouseButtonsAction.ts create mode 100644 config-serializer/config-items/PressModifiersAction.ts create mode 100644 config-serializer/config-items/PressMouseButtonsAction.ts create mode 100644 config-serializer/config-items/ReleaseKeyAction.ts create mode 100644 config-serializer/config-items/ReleaseModifiersAction.ts create mode 100644 config-serializer/config-items/ReleaseMouseButtonsAction.ts diff --git a/config-serializer/config-items/HoldKeyAction.ts b/config-serializer/config-items/HoldKeyAction.ts new file mode 100644 index 00000000..ad2b4877 --- /dev/null +++ b/config-serializer/config-items/HoldKeyAction.ts @@ -0,0 +1,33 @@ +class HoldKeyAction extends MacroAction { + + // @assertUInt8 + scancode: number; + + _fromJsObject(jsObject: any): HoldKeyAction { + this.assertMacroActionType(jsObject); + this.scancode = jsObject.scancode; + return this; + } + + _fromBinary(buffer: UhkBuffer): HoldKeyAction { + this.readAndAssertMacroActionId(buffer); + this.scancode = buffer.readUInt8(); + return this; + } + + _toJsObject(): any { + return { + macroActionType: macroActionType.HoldKeyAction, + scancode: this.scancode + }; + } + + _toBinary(buffer: UhkBuffer) { + buffer.writeUInt8(MacroActionId.HoldKeyAction); + buffer.writeUInt8(this.scancode); + } + + toString(): string { + return ``; + } +} diff --git a/config-serializer/config-items/HoldModifiersAction.ts b/config-serializer/config-items/HoldModifiersAction.ts new file mode 100644 index 00000000..d91165a3 --- /dev/null +++ b/config-serializer/config-items/HoldModifiersAction.ts @@ -0,0 +1,33 @@ +class HoldModifiersAction extends MacroAction { + + // @assertUInt8 + modifierMask: number; + + _fromJsObject(jsObject: any): HoldModifiersAction { + this.assertMacroActionType(jsObject); + this.modifierMask = jsObject.modifierMask; + return this; + } + + _fromBinary(buffer: UhkBuffer): HoldModifiersAction { + this.readAndAssertMacroActionId(buffer); + this.modifierMask = buffer.readUInt8(); + return this; + } + + _toJsObject(): any { + return { + macroActionType: macroActionType.HoldModifiersAction, + modifierMask: this.modifierMask + }; + } + + _toBinary(buffer: UhkBuffer) { + buffer.writeUInt8(MacroActionId.HoldModifiersAction); + buffer.writeUInt8(this.modifierMask); + } + + toString(): string { + return ``; + } +} diff --git a/config-serializer/config-items/HoldMouseButtonsAction.ts b/config-serializer/config-items/HoldMouseButtonsAction.ts new file mode 100644 index 00000000..2dd4b247 --- /dev/null +++ b/config-serializer/config-items/HoldMouseButtonsAction.ts @@ -0,0 +1,33 @@ +class HoldMouseButtonsAction extends MacroAction { + + // @assertUInt8 + mouseButtonsMask: number; + + _fromJsObject(jsObject: any): HoldMouseButtonsAction { + this.assertMacroActionType(jsObject); + this.mouseButtonsMask = jsObject.mouseButtonsMask; + return this; + } + + _fromBinary(buffer: UhkBuffer): HoldMouseButtonsAction { + this.readAndAssertMacroActionId(buffer); + this.mouseButtonsMask = buffer.readUInt8(); + return this; + } + + _toJsObject(): any { + return { + macroActionType: macroActionType.HoldMouseButtonsAction, + mouseButtonsMask: this.mouseButtonsMask + }; + } + + _toBinary(buffer: UhkBuffer) { + buffer.writeUInt8(MacroActionId.HoldMouseButtonsAction); + buffer.writeUInt8(this.mouseButtonsMask); + } + + toString(): string { + return ``; + } +} diff --git a/config-serializer/config-items/MacroActions.ts b/config-serializer/config-items/MacroActions.ts index 8a0f13f6..315035db 100644 --- a/config-serializer/config-items/MacroActions.ts +++ b/config-serializer/config-items/MacroActions.ts @@ -4,6 +4,22 @@ class MacroActions extends ClassArray { switch (jsObject.macroActionType) { case macroActionType.PressKeyAction: return new PressKeyAction().fromJsObject(jsObject); + case macroActionType.HoldKeyAction: + return new HoldKeyAction().fromJsObject(jsObject); + case macroActionType.ReleaseKeyAction: + return new ReleaseKeyAction().fromJsObject(jsObject); + case macroActionType.PressModifiersAction: + return new PressModifiersAction().fromJsObject(jsObject); + case macroActionType.HoldModifiersAction: + return new HoldModifiersAction().fromJsObject(jsObject); + case macroActionType.ReleaseModifiersAction: + return new ReleaseModifiersAction().fromJsObject(jsObject); + case macroActionType.PressMouseButtonsAction: + return new PressMouseButtonsAction().fromJsObject(jsObject); + case macroActionType.HoldMouseButtonsAction: + return new HoldMouseButtonsAction().fromJsObject(jsObject); + case macroActionType.ReleaseMouseButtonsAction: + return new ReleaseMouseButtonsAction().fromJsObject(jsObject); default: throw `Invalid MacroAction.macroActionType: "${jsObject.macroActionType}"`; } @@ -21,6 +37,22 @@ class MacroActions extends ClassArray { switch (macroActionFirstByte) { case MacroActionId.PressKeyAction: return new PressKeyAction().fromBinary(buffer); + case MacroActionId.HoldKeyAction: + return new HoldKeyAction().fromBinary(buffer); + case MacroActionId.ReleaseKeyAction: + return new ReleaseKeyAction().fromBinary(buffer); + case MacroActionId.PressModifiersAction: + return new PressModifiersAction().fromBinary(buffer); + case MacroActionId.HoldModifiersAction: + return new HoldModifiersAction().fromBinary(buffer); + case MacroActionId.ReleaseModifiersAction: + return new ReleaseModifiersAction().fromBinary(buffer); + case MacroActionId.PressMouseButtonsAction: + return new PressMouseButtonsAction().fromBinary(buffer); + case MacroActionId.HoldMouseButtonsAction: + return new HoldMouseButtonsAction().fromBinary(buffer); + case MacroActionId.ReleaseMouseButtonsAction: + return new ReleaseMouseButtonsAction().fromBinary(buffer); default: throw `Invalid MacroAction first byte: ${macroActionFirstByte}`; } diff --git a/config-serializer/config-items/PressModifiersAction.ts b/config-serializer/config-items/PressModifiersAction.ts new file mode 100644 index 00000000..59f7e4a2 --- /dev/null +++ b/config-serializer/config-items/PressModifiersAction.ts @@ -0,0 +1,33 @@ +class PressModifiersAction extends MacroAction { + + // @assertUInt8 + modifierMask: number; + + _fromJsObject(jsObject: any): PressModifiersAction { + this.assertMacroActionType(jsObject); + this.modifierMask = jsObject.modifierMask; + return this; + } + + _fromBinary(buffer: UhkBuffer): PressModifiersAction { + this.readAndAssertMacroActionId(buffer); + this.modifierMask = buffer.readUInt8(); + return this; + } + + _toJsObject(): any { + return { + macroActionType: macroActionType.PressModifiersAction, + modifierMask: this.modifierMask + }; + } + + _toBinary(buffer: UhkBuffer) { + buffer.writeUInt8(MacroActionId.PressModifiersAction); + buffer.writeUInt8(this.modifierMask); + } + + toString(): string { + return ``; + } +} diff --git a/config-serializer/config-items/PressMouseButtonsAction.ts b/config-serializer/config-items/PressMouseButtonsAction.ts new file mode 100644 index 00000000..35853c07 --- /dev/null +++ b/config-serializer/config-items/PressMouseButtonsAction.ts @@ -0,0 +1,33 @@ +class PressMouseButtonsAction extends MacroAction { + + // @assertUInt8 + mouseButtonsMask: number; + + _fromJsObject(jsObject: any): PressMouseButtonsAction { + this.assertMacroActionType(jsObject); + this.mouseButtonsMask = jsObject.mouseButtonsMask; + return this; + } + + _fromBinary(buffer: UhkBuffer): PressMouseButtonsAction { + this.readAndAssertMacroActionId(buffer); + this.mouseButtonsMask = buffer.readUInt8(); + return this; + } + + _toJsObject(): any { + return { + macroActionType: macroActionType.PressMouseButtonsAction, + mouseButtonsMask: this.mouseButtonsMask + }; + } + + _toBinary(buffer: UhkBuffer) { + buffer.writeUInt8(MacroActionId.PressMouseButtonsAction); + buffer.writeUInt8(this.mouseButtonsMask); + } + + toString(): string { + return ``; + } +} diff --git a/config-serializer/config-items/ReleaseKeyAction.ts b/config-serializer/config-items/ReleaseKeyAction.ts new file mode 100644 index 00000000..1d20aaa3 --- /dev/null +++ b/config-serializer/config-items/ReleaseKeyAction.ts @@ -0,0 +1,33 @@ +class ReleaseKeyAction extends MacroAction { + + // @assertUInt8 + scancode: number; + + _fromJsObject(jsObject: any): ReleaseKeyAction { + this.assertMacroActionType(jsObject); + this.scancode = jsObject.scancode; + return this; + } + + _fromBinary(buffer: UhkBuffer): ReleaseKeyAction { + this.readAndAssertMacroActionId(buffer); + this.scancode = buffer.readUInt8(); + return this; + } + + _toJsObject(): any { + return { + macroActionType: macroActionType.ReleaseKeyAction, + scancode: this.scancode + }; + } + + _toBinary(buffer: UhkBuffer) { + buffer.writeUInt8(MacroActionId.ReleaseKeyAction); + buffer.writeUInt8(this.scancode); + } + + toString(): string { + return ``; + } +} diff --git a/config-serializer/config-items/ReleaseModifiersAction.ts b/config-serializer/config-items/ReleaseModifiersAction.ts new file mode 100644 index 00000000..cd0c6f13 --- /dev/null +++ b/config-serializer/config-items/ReleaseModifiersAction.ts @@ -0,0 +1,33 @@ +class ReleaseModifiersAction extends MacroAction { + + // @assertUInt8 + modifierMask: number; + + _fromJsObject(jsObject: any): ReleaseModifiersAction { + this.assertMacroActionType(jsObject); + this.modifierMask = jsObject.modifierMask; + return this; + } + + _fromBinary(buffer: UhkBuffer): ReleaseModifiersAction { + this.readAndAssertMacroActionId(buffer); + this.modifierMask = buffer.readUInt8(); + return this; + } + + _toJsObject(): any { + return { + macroActionType: macroActionType.ReleaseModifiersAction, + modifierMask: this.modifierMask + }; + } + + _toBinary(buffer: UhkBuffer) { + buffer.writeUInt8(MacroActionId.ReleaseModifiersAction); + buffer.writeUInt8(this.modifierMask); + } + + toString(): string { + return ``; + } +} diff --git a/config-serializer/config-items/ReleaseMouseButtonsAction.ts b/config-serializer/config-items/ReleaseMouseButtonsAction.ts new file mode 100644 index 00000000..c77caf33 --- /dev/null +++ b/config-serializer/config-items/ReleaseMouseButtonsAction.ts @@ -0,0 +1,33 @@ +class ReleaseMouseButtonsAction extends MacroAction { + + // @assertUInt8 + mouseButtonsMask: number; + + _fromJsObject(jsObject: any): ReleaseMouseButtonsAction { + this.assertMacroActionType(jsObject); + this.mouseButtonsMask = jsObject.mouseButtonsMask; + return this; + } + + _fromBinary(buffer: UhkBuffer): ReleaseMouseButtonsAction { + this.readAndAssertMacroActionId(buffer); + this.mouseButtonsMask = buffer.readUInt8(); + return this; + } + + _toJsObject(): any { + return { + macroActionType: macroActionType.ReleaseMouseButtonsAction, + mouseButtonsMask: this.mouseButtonsMask + }; + } + + _toBinary(buffer: UhkBuffer) { + buffer.writeUInt8(MacroActionId.ReleaseMouseButtonsAction); + buffer.writeUInt8(this.mouseButtonsMask); + } + + toString(): string { + return ``; + } +} diff --git a/config-serializer/config-items/config-items.ts b/config-serializer/config-items/config-items.ts index 08a05a1a..9415eb66 100644 --- a/config-serializer/config-items/config-items.ts +++ b/config-serializer/config-items/config-items.ts @@ -18,3 +18,11 @@ /// /// /// +/// +/// +/// +/// +/// +/// +/// +/// diff --git a/config-serializer/uhk-config.json b/config-serializer/uhk-config.json index afada8d0..fd13d498 100644 --- a/config-serializer/uhk-config.json +++ b/config-serializer/uhk-config.json @@ -202,6 +202,38 @@ { "macroActionType": "pressKey", "scancode": 111 + }, + { + "macroActionType": "holdKey", + "scancode": 83 + }, + { + "macroActionType": "releaseKey", + "scancode": 112 + }, + { + "macroActionType": "pressModifiers", + "modifierMask": 93 + }, + { + "macroActionType": "holdModifiers", + "modifierMask": 101 + }, + { + "macroActionType": "releaseModifiers", + "modifierMask": 133 + }, + { + "macroActionType": "pressMouseButtons", + "mouseButtonsMask": 9 + }, + { + "macroActionType": "holdMouseButtons", + "mouseButtonsMask": 12 + }, + { + "macroActionType": "releaseMouseButtons", + "mouseButtonsMask": 104 } ] }