diff --git a/model/KeyAction.ts b/model/KeyAction.ts
index 7b726f85..1f76dc56 100644
--- a/model/KeyAction.ts
+++ b/model/KeyAction.ts
@@ -1,9 +1,14 @@
+///
///
class KeyAction {
static fromJsObject(jsObject: any): KeyAction {
switch (jsObject.actionType) {
+ case 'none':
+ let keyActionNone = new KeyActionNone();
+ keyActionNone.fromJsObject(jsObject);
+ return keyActionNone;
case 'keyStroke':
let keystrokeAction = new KeystrokeAction();
keystrokeAction.fromJsObject(jsObject);
@@ -17,12 +22,14 @@ class KeyAction {
let keyActionFirstByte = buffer.readUInt8();
buffer.backtrack();
- if (KeystrokeAction.firstValidScancode <= keyActionFirstByte &&
- keyActionFirstByte <= KeystrokeAction.lastValidScancode)
- {
+ if (KeystrokeAction.isScancodeValid(keyActionFirstByte)) {
let keystrokeAction = new KeystrokeAction();
keystrokeAction.fromBinary(buffer);
return keystrokeAction;
+ } else if (keyActionFirstByte === KeyActionNone.keyActionNoneId) {
+ let keyActionNone = new KeyActionNone();
+ keyActionNone.fromBinary(buffer);
+ return keyActionNone;
} else {
throw 'Unknown KeyAction first byte "${keyActionFirstByte}"';
}
diff --git a/model/KeyActionNone.ts b/model/KeyActionNone.ts
new file mode 100644
index 00000000..b483da67
--- /dev/null
+++ b/model/KeyActionNone.ts
@@ -0,0 +1,36 @@
+///
+///
+
+class KeyActionNone extends KeyAction implements Serializable {
+ static keyActionNoneId = 0;
+ static keyActionNoneParam = 0;
+
+ fromJsObject(jsObject: any) {
+ if (jsObject.actionType !== 'none') {
+ throw 'KeyActionNone: The actionType is not "none"';
+ }
+ }
+
+ fromBinary(buffer: UhkBuffer) {
+ let keyActionId = buffer.readUInt8();
+ if (keyActionId !== KeyActionNone.keyActionNoneId) {
+ throw 'KeyActionNone: id is ${keyActionId} instead of ${KeyActionNone.keyActionNoneId}';
+ }
+
+ let keyActionParam = buffer.readUInt8();
+ if (keyActionParam !== KeyActionNone.keyActionNoneParam) {
+ throw 'KeyActionNone: The param is ${keyActionParam} instead of ${KeyActionNone.keyActionNoneParam}';
+ }
+ }
+
+ toJsObject(): any {
+ return {
+ actionType: 'none'
+ };
+ }
+
+ toBinary(buffer: UhkBuffer) {
+ buffer.writeUInt8(KeyActionNone.keyActionNoneId);
+ buffer.writeUInt8(KeyActionNone.keyActionNoneParam);
+ }
+}
diff --git a/model/tslint.json b/model/tslint.json
index 1a65cc37..f6d5c24e 100644
--- a/model/tslint.json
+++ b/model/tslint.json
@@ -35,7 +35,7 @@
],
"max-line-length": [
true,
- 100
+ 120
],
"no-trailing-whitespace": true,
"trailing-comma": [