11import { CommandInterface } from "emulators" ;
2- import { domToKeyCode } from "./keys" ;
2+ // eslint-disable-next-line camelcase
3+ import { domToKeyCode , KBD_pause } from "./keys" ;
34import { Dispatch } from "@reduxjs/toolkit" ;
45import { sendQuickLoadEvent , sendQuickSaveEvent } from "../../../player-api" ;
56import { uiSlice } from "../../../store/ui" ;
6- export function keyboard ( el : HTMLElement , ci : CommandInterface , handleQuickSaves : boolean , dispatch : Dispatch ) {
7+ import { dosSlice } from "../../../store/dos" ;
8+
9+ export function keyboard ( el : HTMLElement ,
10+ ci : CommandInterface ,
11+ handleQuickSaves : boolean ,
12+ dispatch : Dispatch ,
13+ paused : boolean ) {
714 const pressedKeys = new Set < number > ( ) ;
815
916 function releaseKeys ( ) {
@@ -30,10 +37,14 @@ export function keyboard(el: HTMLElement, ci: CommandInterface, handleQuickSaves
3037 }
3138
3239 const keyCode = domToKeyCode ( e . keyCode , e . location ) ;
33- ci . sendKeyEvent ( keyCode , true ) ;
34- pressedKeys . add ( keyCode ) ;
35- e . stopPropagation ( ) ;
36- e . preventDefault ( ) ;
40+ if ( keyCode === KBD_pause ) { // eslint-disable-line camelcase
41+ dispatch ( dosSlice . actions . paused ( ! paused ) ) ;
42+ } else {
43+ ci . sendKeyEvent ( keyCode , true ) ;
44+ pressedKeys . add ( keyCode ) ;
45+ e . stopPropagation ( ) ;
46+ e . preventDefault ( ) ;
47+ }
3748 }
3849
3950 function onKeyUp ( e : KeyboardEvent ) {
0 commit comments