diff --git a/images/icons/kbd__system_power_down.svg b/images/icons/kbd__system_power_down.svg new file mode 100755 index 00000000..8ac0928b --- /dev/null +++ b/images/icons/kbd__system_power_down.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/images/icons/kbd__fn--sleep.svg b/images/icons/kbd__system_sleep.svg similarity index 100% rename from images/icons/kbd__fn--sleep.svg rename to images/icons/kbd__system_sleep.svg diff --git a/images/icons/kbd__system_wake_up.svg b/images/icons/kbd__system_wake_up.svg new file mode 100755 index 00000000..b6eb4d5a --- /dev/null +++ b/images/icons/kbd__system_wake_up.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/shared/src/components/popover/tab/keypress/keypress-tab.component.ts b/shared/src/components/popover/tab/keypress/keypress-tab.component.ts index c3cd947d..1c14710c 100644 --- a/shared/src/components/popover/tab/keypress/keypress-tab.component.ts +++ b/shared/src/components/popover/tab/keypress/keypress-tab.component.ts @@ -195,7 +195,8 @@ export class KeypressTabComponent extends Tab implements OnChanges { } private findScancodeOptionByScancode(scancode: number, type: KeystrokeType): Select2OptionData { - const typeToFind: string = type === KeystrokeType.shortMedia || KeystrokeType.longMedia ? 'media' : KeystrokeType[type]; + const typeToFind: string = + (type === KeystrokeType.shortMedia || type === KeystrokeType.longMedia) ? 'media' : KeystrokeType[type]; return this.findScancodeOptionBy((option: Select2OptionData) => { const additional = option.additional; if (additional && additional.scancode === scancode && additional.type === typeToFind) { diff --git a/shared/src/components/popover/tab/keypress/scancodes.json b/shared/src/components/popover/tab/keypress/scancodes.json index 73659785..cafcdb70 100644 --- a/shared/src/components/popover/tab/keypress/scancodes.json +++ b/shared/src/components/popover/tab/keypress/scancodes.json @@ -654,5 +654,34 @@ } } ] + }, + { + "text": "System Keys", + "children": [ + { + "id": "139", + "text": "Power Down", + "additional": { + "type": "system", + "scancode": 129 + } + }, + { + "id": "140", + "text": "Sleep", + "additional": { + "type": "system", + "scancode": 130 + } + }, + { + "id": "141", + "text": "Wake Up", + "additional": { + "type": "system", + "scancode": 131 + } + } + ] } ] diff --git a/shared/src/services/mapper.service.ts b/shared/src/services/mapper.service.ts index 52473c2b..28c16cd0 100644 --- a/shared/src/services/mapper.service.ts +++ b/shared/src/services/mapper.service.ts @@ -10,9 +10,11 @@ export class MapperService { private basicScanCodeTextMap: Map; private mediaScanCodeTextMap: Map; + private sytemScanCodeTextMap: Map; private basicScancodeIcons: Map; private mediaScancodeIcons: Map; + private systemScancodeIcons: Map; private nameToFileName: Map; constructor() { @@ -28,6 +30,9 @@ export class MapperService { case KeystrokeType.longMedia: map = this.mediaScanCodeTextMap; break; + case KeystrokeType.system: + map = this.sytemScanCodeTextMap; + break; default: map = this.basicScanCodeTextMap; break; @@ -45,6 +50,9 @@ export class MapperService { case KeystrokeType.longMedia: map = this.mediaScancodeIcons; break; + case KeystrokeType.system: + map = this.systemScancodeIcons; + break; default: map = new Map(); } @@ -61,6 +69,9 @@ export class MapperService { case KeystrokeType.longMedia: map = this.mediaScancodeIcons; break; + case KeystrokeType.system: + map = this.systemScancodeIcons; + break; default: return undefined; } @@ -207,6 +218,11 @@ export class MapperService { this.mediaScanCodeTextMap.set(226, ['Mute']); this.mediaScanCodeTextMap.set(233, ['Vol +']); this.mediaScanCodeTextMap.set(234, ['Vol -']); + + this.sytemScanCodeTextMap = new Map(); + this.sytemScanCodeTextMap.set(129, ['Power Down']); + this.sytemScanCodeTextMap.set(130, ['Sleep']); + this.sytemScanCodeTextMap.set(131, ['Wake Up']); } private initScancodeIcons(): void { @@ -227,6 +243,11 @@ export class MapperService { this.mediaScancodeIcons.set(226, 'icon-kbd__media--mute'); this.mediaScancodeIcons.set(233, 'icon-kbd__media--vol-up'); this.mediaScancodeIcons.set(234, 'icon-kbd__media--vol-down'); + + this.systemScancodeIcons = new Map(); + this.systemScancodeIcons.set(129, 'icon-kbd__system_power_down'); + this.systemScancodeIcons.set(130, 'icon-kbd__system_sleep'); + this.systemScancodeIcons.set(131, 'icon-kbd__system_wake_up'); } private initNameToFileNames(): void {