diff --git a/html/keyboard.js b/html/keyboard.js
index 106b869..3d38e0d 100644
--- a/html/keyboard.js
+++ b/html/keyboard.js
@@ -23,3 +23,55 @@ $(document).keypress((event) => {
event.preventDefault();
}
})
+var keyBinds = new Map();
+var pressed = [];
+var gameLooper = 0;
+//Sending keys from gamepad
+function changeToGame(){
+ //Called when game is running
+ //reset events
+ gamepad.off('press', 'start');
+ gamepad.off('press', 'd_pad_left');
+ gamepad.off('press', 'd_pad_right');
+ gamepad.off('press', 'button_1');
+ gamepad.off('press', 'button_2');
+ //add custom ones
+ keyBinds.foreach((val, key) => {
+ gamepad.on('press', key, () => {
+ pressed.push(val);
+ })
+ })
+
+ gameLooper = setInterval(() => {
+ sendKeys(pressed);
+ pressed = [];
+ }, 100);
+}
+
+function changeToMenu(){
+ clearInterval(gameLooper); //stop sending keys
+ //Called when game is stopped
+ //reset events
+ gamepad.off('press', 'start');
+ gamepad.off('press', 'd_pad_left');
+ gamepad.off('press', 'd_pad_right');
+ gamepad.off('press', 'button_1');
+ gamepad.off('press', 'button_2');
+ //restore original events
+ gamepad.on('press', 'start', () => {
+ showMainMenu();
+ });
+
+ gamepad.on('press', 'd_pad_left', () => {
+ goLeft();
+ });
+ gamepad.on('press', 'd_pad_right', () => {
+ goRight();
+ });
+ gamepad.on('press', 'button_1', () => {
+ select();
+ });
+ gamepad.on('press', 'button_2', () => {
+ deselect();
+ });
+}
diff --git a/html/node.js b/html/node.js
index a896bf7..6b1611d 100644
--- a/html/node.js
+++ b/html/node.js
@@ -27,11 +27,19 @@ if(typeof require !== typeof undefined){
files = arg;
refreshFiles();
})
+ function sendKeys(arg){
+ ipcRenderer.send('sendKeys', arg);
+ return true;
+ }
var loc = window.location.pathname;
var dir = loc.substring(1, loc.lastIndexOf('/'));//fix file:///, only on node
ipcRenderer.send('listFiles', dir);
} else {
//no NODE integration, propably browser access
+ function sendKeys(arg){
+ return false;
+ }
+ toast('Missing node - features may not be available');
$("div:has(#files)").hide();//Disable file system preview
mainMenuItems.slice("files");
}