diff --git a/config-serializer/config-items/DelayMacroAction.ts b/config-serializer/config-items/DelayMacroAction.ts new file mode 100644 index 00000000..72a3253f --- /dev/null +++ b/config-serializer/config-items/DelayMacroAction.ts @@ -0,0 +1,33 @@ +class DelayMacroAction extends MacroAction { + + // @assertUInt16 + delay: number; + + _fromJsObject(jsObject: any): DelayMacroAction { + this.assertMacroActionType(jsObject); + this.delay = jsObject.delay; + return this; + } + + _fromBinary(buffer: UhkBuffer): DelayMacroAction { + this.readAndAssertMacroActionId(buffer); + this.delay = buffer.readUInt16(); + return this; + } + + _toJsObject(): any { + return { + macroActionType: macroActionType.DelayMacroAction, + delay: this.delay + }; + } + + _toBinary(buffer: UhkBuffer) { + buffer.writeUInt8(MacroActionId.DelayMacroAction); + buffer.writeUInt16(this.delay); + } + + toString(): string { + return ``; + } +} diff --git a/config-serializer/config-items/MacroActions.ts b/config-serializer/config-items/MacroActions.ts index fc16280d..2d71853c 100644 --- a/config-serializer/config-items/MacroActions.ts +++ b/config-serializer/config-items/MacroActions.ts @@ -24,6 +24,10 @@ class MacroActions extends ClassArray { return new MoveMouseMacroAction().fromJsObject(jsObject); case macroActionType.ScrollMouseMacroAction: return new ScrollMouseMacroAction().fromJsObject(jsObject); + case macroActionType.DelayMacroAction: + return new DelayMacroAction().fromJsObject(jsObject); + case macroActionType.TextMacroAction: + return new TextMacroAction().fromJsObject(jsObject); default: throw `Invalid MacroAction.macroActionType: "${jsObject.macroActionType}"`; } @@ -61,6 +65,10 @@ class MacroActions extends ClassArray { return new MoveMouseMacroAction().fromBinary(buffer); case MacroActionId.ScrollMouseMacroAction: return new ScrollMouseMacroAction().fromBinary(buffer); + case MacroActionId.DelayMacroAction: + return new DelayMacroAction().fromBinary(buffer); + case MacroActionId.TextMacroAction: + return new TextMacroAction().fromBinary(buffer); default: throw `Invalid MacroAction first byte: ${macroActionFirstByte}`; } diff --git a/config-serializer/config-items/TextMacroAction.ts b/config-serializer/config-items/TextMacroAction.ts new file mode 100644 index 00000000..2e48168b --- /dev/null +++ b/config-serializer/config-items/TextMacroAction.ts @@ -0,0 +1,32 @@ +class TextMacroAction extends MacroAction { + + text: string; + + _fromJsObject(jsObject: any): TextMacroAction { + this.assertMacroActionType(jsObject); + this.text = jsObject.text; + return this; + } + + _fromBinary(buffer: UhkBuffer): TextMacroAction { + this.readAndAssertMacroActionId(buffer); + this.text = buffer.readString(); + return this; + } + + _toJsObject(): any { + return { + macroActionType: macroActionType.TextMacroAction, + text: this.text + }; + } + + _toBinary(buffer: UhkBuffer) { + buffer.writeUInt8(MacroActionId.TextMacroAction); + buffer.writeString(this.text); + } + + toString(): string { + return ``; + } +} diff --git a/config-serializer/config-items/config-items.ts b/config-serializer/config-items/config-items.ts index d4cc9dc3..a84a4312 100644 --- a/config-serializer/config-items/config-items.ts +++ b/config-serializer/config-items/config-items.ts @@ -28,3 +28,5 @@ /// /// /// +/// +/// diff --git a/config-serializer/uhk-config.json b/config-serializer/uhk-config.json index b6d792fc..778e9354 100644 --- a/config-serializer/uhk-config.json +++ b/config-serializer/uhk-config.json @@ -244,6 +244,14 @@ "macroActionType": "scrollMouse", "x": 0, "y": 20000 + }, + { + "macroActionType": "delay", + "delay": 40000 + }, + { + "macroActionType": "text", + "text": "this is a text" } ] }