diff --git a/model/KeystrokeAction.ts b/model/KeystrokeAction.ts
new file mode 100644
index 00000000..35c26787
--- /dev/null
+++ b/model/KeystrokeAction.ts
@@ -0,0 +1,26 @@
+///
+
+class KeystrokeAction implements Serializable {
+ scancode: number;
+ modifierMask: number;
+
+ fromJsObject(jsObject: any) {
+ this.scancode = jsObject.scancode;
+ this.modifierMask = jsObject.modifierMask;
+ }
+
+ toJsObject(): any {
+ return {
+ scancode: this.scancode,
+ modifierMask: this.modifierMask
+ };
+ }
+
+ fromBinary(buffer: UhkBuffer) {
+ }
+
+ toBinary(buffer: UhkBuffer) {
+ buffer.uint8(this.scancode);
+ buffer.uint8(this.modifierMask);
+ }
+}
diff --git a/model/Serializable.ts b/model/Serializable.ts
new file mode 100644
index 00000000..deb2102c
--- /dev/null
+++ b/model/Serializable.ts
@@ -0,0 +1,8 @@
+///
+
+interface Serializable {
+ fromJsObject(jsObject: any);
+ toJsObject(): any;
+ fromBinary(buffer: UhkBuffer);
+ toBinary(buffer: UhkBuffer);
+}
diff --git a/model/serializeConfig.ts b/model/serializeConfig.ts
index 50f13939..69731df6 100644
--- a/model/serializeConfig.ts
+++ b/model/serializeConfig.ts
@@ -1,4 +1,5 @@
///
+///
var fs = require('fs');
var buffer = new Buffer(1000);
@@ -150,5 +151,6 @@ function serializeSwitchLayerAction(switchLayerAction) {
}[switchLayerAction] | switchLayerAction.toggle ? SWITCH_LAYER_TOGGLE : 0);
}
+new KeystrokeAction();
serializeKeyActions(keyActions);
fs.writeFileSync('uhk-config.bin', buffer);