start gamepad

This commit is contained in:
Ethan O'Brien 2023-06-29 16:26:30 -05:00
parent ebe647b141
commit 0afa3dcdcc
2 changed files with 32 additions and 3 deletions

View file

@ -21,9 +21,10 @@ class EJS_GameManager {
this.mkdir("/home/web_user/retroarch"); this.mkdir("/home/web_user/retroarch");
this.mkdir("/home/web_user/retroarch/userdata"); this.mkdir("/home/web_user/retroarch/userdata");
this.FS.writeFile("/home/web_user/retroarch/userdata/retroarch.cfg", this.getRetroArchCfg()); //this.FS.writeFile("/home/web_user/retroarch/userdata/retroarch.cfg", this.getRetroArchCfg());
this.initShaders(); this.initShaders();
window.RA.nonblock = true; //lets see if this works
} }
mkdir(path) { mkdir(path) {
try { try {

View file

@ -468,6 +468,7 @@ class EmulatorJS {
this.setupSettingsMenu(); this.setupSettingsMenu();
this.handleResize(); this.handleResize();
this.updateCheatUI(); this.updateCheatUI();
this.updateGamepadLabels();
this.elements.parent.focus(); this.elements.parent.focus();
} }
bindListeners() { bindListeners() {
@ -482,8 +483,33 @@ class EmulatorJS {
}) })
this.addEventListener(window, "resize", this.handleResize.bind(this)); this.addEventListener(window, "resize", this.handleResize.bind(this));
//this.addEventListener(window, "blur", e => console.log(e), true); //TODO - add "click to make keyboard keys work" message //this.addEventListener(window, "blur", e => console.log(e), true); //TODO - add "click to make keyboard keys work" message
//this.gamepad = new GamepadHandler(); //https://github.com/ethanaobrien/Gamepad this.gamepad = new GamepadHandler(); //https://github.com/ethanaobrien/Gamepad
//keyboard, etc... this.gamepad.on('connected', (e) => {
if (!this.gamepadLabels) return;
this.updateGamepadLabels();
})
this.gamepad.on('disconnected', (e) => {
setTimeout(this.updateGamepadLabels.bind(this), 10);
})
this.gamepad.on('axischanged', function(e) {
console.log('axischanged', e);
})
this.gamepad.on('buttondown', function(e) {
console.log('buttondown', e);
})
this.gamepad.on('buttonup', function(e) {
console.log('buttonup', e);
})
}
updateGamepadLabels() {
for (let i=0; i<this.gamepadLabels.length; i++) {
console.log(this.gamepad.gamepads[i]);
if (this.gamepad.gamepads[i]) {
this.gamepadLabels[i].innerText = this.gamepad.gamepads[i].id;
} else {
this.gamepadLabels[i].innerText = "n/a";
}
}
} }
createContextMenu() { createContextMenu() {
this.elements.contextmenu = this.createElement('div'); this.elements.contextmenu = this.createElement('div');
@ -794,6 +820,7 @@ class EmulatorJS {
} }
createControlSettingMenu() { createControlSettingMenu() {
let buttonListeners = []; let buttonListeners = [];
this.gamepadLabels = [];
this.controls = this.defaultControllers; this.controls = this.defaultControllers;
const body = this.createPopup("Control Settings", { const body = this.createPopup("Control Settings", {
"Reset": () => { "Reset": () => {
@ -880,6 +907,7 @@ class EmulatorJS {
gamepadTitle.innerText = "Connected Gamepad: "; gamepadTitle.innerText = "Connected Gamepad: ";
const gamepadName = this.createElement("span"); const gamepadName = this.createElement("span");
this.gamepadLabels.push(gamepadName);
gamepadName.innerText = "n/a"; gamepadName.innerText = "n/a";
gamepadTitle.appendChild(gamepadName); gamepadTitle.appendChild(gamepadName);