more good progress, but still a little broken. so close

This commit is contained in:
DevL0rd 2022-03-04 22:51:51 +07:00
parent fac3f69160
commit acf91af8e0
7 changed files with 509 additions and 261 deletions

View file

@ -4,11 +4,6 @@ ipcRenderer.on('close', function (event, data) {
$("#startBtn").html("Start Streamer");
running = false;
});
ipcRenderer.on('started', function (event, data) {
$('#startBtn').addClass('btn-danger').removeClass('btn-dark');
$("#startBtn").html("End Streamer");
running = true;
})
var running = false;
function connect() {
ipcRenderer.send('connect', { ip: clientSettings.ip, q: clientSettings.quality, disableVideo: clientSettings.disableVideo, disableAudio: clientSettings.disableAudio, abxySwap: clientSettings.abxySwap, encoding: clientSettings.encoding, limitFPS: clientSettings.limitFPS, mouseControl: clientSettings.mouseControl });
@ -25,6 +20,9 @@ $('#startBtn').click(function () {
} else {
disconnect();
}
$('#startBtn').addClass('btn-danger').removeClass('btn-dark');
$("#startBtn").html("End Streamer");
running = true;
});
$('#donateBtn').click(function () {
ipcRenderer.send('donate');

View file

@ -8,7 +8,7 @@ const DB = require('./Devlord_modules/DB.js');
const isDev = require('electron-is-dev');
const Struct = require('struct');
const net = require('net');
// const robot = require("robotjs");
const robot = require("robotjs");
const VGen = require("vgen-xbox")
const vgen = new VGen();
const GyroServ = require("./Devlord_modules/GyroServ.js");
@ -49,23 +49,23 @@ function createWindow() {
});
// Create the browser window.
mainWindow = new BrowserWindow({
title: "SkyNX",
x: mainWindowState.x,
y: mainWindowState.y,
// width: mainWindowState.width,
// height: mainWindowState.height,
show: true,
title: "SkyNX",
x: mainWindowState.x,
y: mainWindowState.y,
// width: mainWindowState.width,
// height: mainWindowState.height,
show: true,
width: 500,
height: 320,
frame: false,
transparent: true, // needed for windows rounded edges
resizable: false,
webPreferences: {
nodeIntegration: true,
enableRemoteModule: true,
frame: false,
transparent: true, // needed for windows rounded edges
resizable: false,
webPreferences: {
nodeIntegration: true,
enableRemoteModule: true,
contextIsolation: false,
devTools: true
}
devTools: true
}
})
mainWindowState.manage(mainWindow);
mainWindow.setMenu(null);
@ -132,7 +132,7 @@ ipcMain.on('min', function () {
mainWindow.minimize();
});
ipcMain.on('max', function () {
mainWindow.maximize();
mainWindow.maximize();
});
ipcMain.on('consoleCommand', (event, fullMessage) => {
@ -200,7 +200,7 @@ function startStreamer(arg) {
mouseControl = arg.mouseControl;
encoding = arg.encoding
connectHID()
setTimeout(connectHID, 0);
if (usingVideo) {
if (autoChangeResolution && !restartingStream) {
@ -235,7 +235,6 @@ function startStreamer(arg) {
);
ffmpegProcess.stdout.on("data", data => {
log(`${data}`);
clientSender.send("started");
restartingStream = false;
});
ffmpegProcess.stderr.on('data', (data) => {
@ -266,6 +265,7 @@ function startStreamer(arg) {
});
ffmpegAudioProcess.on('close', (code) => {
log(`AudioProcess process exited with code ${code}`);
clientSender.send("close");
});
}
@ -490,45 +490,45 @@ function handleMouseInputToggling(hid, playerNumber) {
toggledMouseInput = false;
}
}
// function handleAnalogMouse(hid, playerNumber) {
// var RJoyX = convertAnalog(hid.get("RJoyX" + playerNumber));
// var RJoyY = convertAnalog(hid.get("RJoyY" + playerNumber));
// var LJoyX = convertAnalog(hid.get("LJoyX" + playerNumber));
// var LJoyY = convertAnalog(hid.get("LJoyY" + playerNumber));
// var heldKeys = hid.get("HeldKeys" + playerNumber);
// var inputStates = heldKeysBitmask(heldKeys);
// var mouse = robot.getMousePos();
// mx = mouse.x + (RJoyX * 25);
// my = mouse.y - (RJoyY * 25);
// if (mx && my) {
// robot.moveMouse(mx, my);
// }
// if (LJoyX || LJoyY) {
// robot.scrollMouse(LJoyX, LJoyY);
// }
// if (inputStates.ZR) {
// if (!leftClicking) {
// robot.mouseToggle("down");
// leftClicking = true;
// }
// } else {
// if (leftClicking) {
// robot.mouseToggle("up");
// leftClicking = false;
// }
// }
// if (inputStates.ZL) {
// if (!rightClicking) {
// robot.mouseToggle("down", "right");
// rightClicking = true;
// }
// } else {
// if (rightClicking) {
// robot.mouseToggle("up", "right");
// rightClicking = false;
// }
// }
// }
function handleAnalogMouse(hid, playerNumber) {
var RJoyX = convertAnalog(hid.get("RJoyX" + playerNumber));
var RJoyY = convertAnalog(hid.get("RJoyY" + playerNumber));
var LJoyX = convertAnalog(hid.get("LJoyX" + playerNumber));
var LJoyY = convertAnalog(hid.get("LJoyY" + playerNumber));
var heldKeys = hid.get("HeldKeys" + playerNumber);
var inputStates = heldKeysBitmask(heldKeys);
var mouse = robot.getMousePos();
mx = mouse.x + (RJoyX * 25);
my = mouse.y - (RJoyY * 25);
if (mx && my) {
robot.moveMouse(mx, my);
}
if (LJoyX || LJoyY) {
robot.scrollMouse(LJoyX, LJoyY);
}
if (inputStates.ZR) {
if (!leftClicking) {
robot.mouseToggle("down");
leftClicking = true;
}
} else {
if (leftClicking) {
robot.mouseToggle("up");
leftClicking = false;
}
}
if (inputStates.ZL) {
if (!rightClicking) {
robot.mouseToggle("down", "right");
rightClicking = true;
}
} else {
if (rightClicking) {
robot.mouseToggle("up", "right");
rightClicking = false;
}
}
}
var gyroHistory = [];
function smoothGyroMouse(gyro) {
@ -561,102 +561,102 @@ function smoothGyroMouse(gyro) {
}
var touchX1Old = 0;
var touchY1Old = 0;
// function handleGyroMouse(hid, playerNumber) {
// var RJoyX = convertAnalog(hid.get("RJoyX" + playerNumber));
// var RJoyY = convertAnalog(hid.get("RJoyY" + playerNumber));
// var heldKeys = hid.get("HeldKeys" + playerNumber);
// var inputStates = heldKeysBitmask(heldKeys);
// var gyro = { x: hid.get("gyroX"), y: hid.get("gyroY"), z: hid.get("gyroZ") }
// smoothGyroMouse(gyro);
// var mouse = robot.getMousePos();
// var ngx = gyro.x * -1;
// var ngz = gyro.z * -1
// mx = mouse.x + (ngz * ((screenWidth) / 3));
// my = mouse.y + (ngx * ((screenHeight) / 2));
// if (mx && my) {
// robot.moveMouse(mx, my);
// }
// if (RJoyX || RJoyY) {
// robot.scrollMouse(RJoyX, RJoyY);
// }
// if (inputStates.ZR) {
// if (!leftClicking) {
// robot.mouseToggle("down");
// leftClicking = true;
// }
// } else {
// if (leftClicking) {
// robot.mouseToggle("up");
// leftClicking = false;
// }
// }
// if (inputStates.R) {
// if (!rightClicking) {
// robot.mouseToggle("down", "right");
// rightClicking = true;
// }
// } else {
// if (rightClicking) {
// robot.mouseToggle("up", "right");
// rightClicking = false;
// }
// }
// }
// function handleTouchInput(hid) {
// var touchX1 = hid.get("touchX1");
// var touchY1 = hid.get("touchY1");
// if (touchX1 && touchY1) {
// touchX1 -= 15;
// touchY1 -= 15;
// touchX1 = Math.floor(screenWidth * (touchX1 / 1280))
// touchY1 = Math.floor(screenHeight * (touchY1 / 720))
// if (!touchX1old) touchX1old = touchX1;
// if (!touchY1old) touchY1old = touchY1;
// var touchX2 = hid.get("touchX2");
// var touchY2 = hid.get("touchY2");
// if (touchX2 && touchY2) {
// rightTouchTime++;
// if (rightTouchTime > 5) { //Handle scrolling
// var xDiff = touchX1old - touchX1;
// var yDiff = touchY1old - touchY1;
// robot.scrollMouse(xDiff, yDiff);
// scrolling = true;
// touchRightClicking = false;
// } else { //Handle left click
// touchRightClicking = true;
// }
// } else {
// if (touchRightClicking) {
// robot.mouseClick("right");
// touchRightClicking = false
// }
// scrolling = false;
// rightTouchTime = 0;
// }
// if (!scrolling) {
// leftTouchTime++;
// if (Math.abs(touchX1 - touchX1old) > 5 || Math.abs(touchY1 - touchY1old) > 5) {
// robot.moveMouse(touchX1 / screenScale, touchY1 / screenScale);
// }
// if (!touchLeftClicking) {
// robot.mouseToggle("down");
// touchLeftClicking = true;
// }
// } else {
// robot.mouseToggle("up");
// touchLeftClicking = false;
// }
// touchX1old = touchX1;
// touchY1old = touchY1;
// } else {
// if (touchLeftClicking) { //release left click
// robot.mouseToggle("up");
// touchLeftClicking = false;
// }
// leftTouchTime = 0;
// rightTouchTime = 0;
// }
// }
function handleGyroMouse(hid, playerNumber) {
var RJoyX = convertAnalog(hid.get("RJoyX" + playerNumber));
var RJoyY = convertAnalog(hid.get("RJoyY" + playerNumber));
var heldKeys = hid.get("HeldKeys" + playerNumber);
var inputStates = heldKeysBitmask(heldKeys);
var gyro = { x: hid.get("gyroX"), y: hid.get("gyroY"), z: hid.get("gyroZ") }
smoothGyroMouse(gyro);
var mouse = robot.getMousePos();
var ngx = gyro.x * -1;
var ngz = gyro.z * -1
mx = mouse.x + (ngz * ((screenWidth) / 3));
my = mouse.y + (ngx * ((screenHeight) / 2));
if (mx && my) {
robot.moveMouse(mx, my);
}
if (RJoyX || RJoyY) {
robot.scrollMouse(RJoyX, RJoyY);
}
if (inputStates.ZR) {
if (!leftClicking) {
robot.mouseToggle("down");
leftClicking = true;
}
} else {
if (leftClicking) {
robot.mouseToggle("up");
leftClicking = false;
}
}
if (inputStates.R) {
if (!rightClicking) {
robot.mouseToggle("down", "right");
rightClicking = true;
}
} else {
if (rightClicking) {
robot.mouseToggle("up", "right");
rightClicking = false;
}
}
}
function handleTouchInput(hid) {
var touchX1 = hid.get("touchX1");
var touchY1 = hid.get("touchY1");
if (touchX1 && touchY1) {
touchX1 -= 15;
touchY1 -= 15;
touchX1 = Math.floor(screenWidth * (touchX1 / 1280))
touchY1 = Math.floor(screenHeight * (touchY1 / 720))
if (!touchX1old) touchX1old = touchX1;
if (!touchY1old) touchY1old = touchY1;
var touchX2 = hid.get("touchX2");
var touchY2 = hid.get("touchY2");
if (touchX2 && touchY2) {
rightTouchTime++;
if (rightTouchTime > 5) { //Handle scrolling
var xDiff = touchX1old - touchX1;
var yDiff = touchY1old - touchY1;
robot.scrollMouse(xDiff, yDiff);
scrolling = true;
touchRightClicking = false;
} else { //Handle left click
touchRightClicking = true;
}
} else {
if (touchRightClicking) {
robot.mouseClick("right");
touchRightClicking = false
}
scrolling = false;
rightTouchTime = 0;
}
if (!scrolling) {
leftTouchTime++;
if (Math.abs(touchX1 - touchX1old) > 5 || Math.abs(touchY1 - touchY1old) > 5) {
robot.moveMouse(touchX1 / screenScale, touchY1 / screenScale);
}
if (!touchLeftClicking) {
robot.mouseToggle("down");
touchLeftClicking = true;
}
} else {
robot.mouseToggle("up");
touchLeftClicking = false;
}
touchX1old = touchX1;
touchY1old = touchY1;
} else {
if (touchLeftClicking) { //release left click
robot.mouseToggle("up");
touchLeftClicking = false;
}
leftTouchTime = 0;
rightTouchTime = 0;
}
}
function handleGyroAndAccel(hid) {
@ -672,22 +672,22 @@ function handleGyroAndAccel(hid) {
var fpsPrintTimer = 0;
var hidDataBuffer = "";
function connectHID() {
hidStreamClient.connect({
host: ip,
port: 2223
});
log("Connecting to switch...");
log(ip)
hidStreamClient.connect(2223, ip, function () {
hidStreamClient.setNoDelay(true);
log('Connected to Switch!');
});
}
hidStreamClient.on('error', function (ex) {
log("Could not connect to Switch. Connection timed out...");
if (ex) {
log("Could not connect to Switch. Connection timed out...");
setTimeout(connectHID, 1000);
}
});
hidStreamClient.on('connect', function () {
hidStreamClient.setNoDelay(true);
log('Connected to Switch!');
});
hidStreamClient.on('data', function (chunk) {
log(chunk)
hidDataBuffer += chunk.toString("hex");
var completeData = "";
if (hidDataBuffer.includes("ffffffffffffffff") && hidDataBuffer.includes("ffffffffffffff7")) {
@ -719,15 +719,15 @@ hidStreamClient.on('data', function (chunk) {
}
handleMouseInputToggling(hid, 1);
if (mouseControl == "ANALOG" && mouseInput) {
// handleAnalogMouse(hid, 1);
handleAnalogMouse(hid, 1);
} else if (mouseControl == "GYRO" && mouseInput) {
// handleGyroMouse(hid, 1);
handleGyroMouse(hid, 1);
}
// handleTouchInput(hid);
handleTouchInput(hid);
handleGyroAndAccel(hid);
});
hidStreamClient.on('end', function () {
hidStreamClient.on('close', function () {
log('hidStreamClient Disconnected.');
try {
for (i in controllerIds) {

View file

@ -74,11 +74,6 @@
}
}
},
"@popperjs/core": {
"version": "2.11.2",
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.2.tgz",
"integrity": "sha512-92FRmppjjqz29VMJ2dn+xdyXZBrMlE42AV6Kq6BwjWV7CNUW1hs2FtxSNLQE+gJhaZ6AAmYuO9y8dshhcBl7vA=="
},
"@sindresorhus/is": {
"version": "0.14.0",
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
@ -178,8 +173,7 @@
"ansi-regex": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"dev": true
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
},
"ansi-styles": {
"version": "4.3.0",
@ -264,25 +258,31 @@
"base64-js": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
"dev": true
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
},
"bl": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
"integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
"dev": true,
"requires": {
"buffer": "^5.5.0",
"inherits": "^2.0.4",
"readable-stream": "^3.4.0"
},
"dependencies": {
"buffer": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
"requires": {
"base64-js": "^1.3.1",
"ieee754": "^1.1.13"
}
},
"readable-stream": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
"dev": true,
"requires": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
@ -297,11 +297,6 @@
"integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==",
"optional": true
},
"bootstrap": {
"version": "5.1.3",
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz",
"integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q=="
},
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@ -313,13 +308,12 @@
}
},
"buffer": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
"dev": true,
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
"integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
"requires": {
"base64-js": "^1.3.1",
"ieee754": "^1.1.13"
"ieee754": "^1.2.1"
}
},
"buffer-crc32": {
@ -463,6 +457,11 @@
"mimic-response": "^1.0.0"
}
},
"code-point-at": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
"integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
},
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
@ -514,8 +513,7 @@
"console-control-strings": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
"integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
"dev": true
"integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
},
"core-util-is": {
"version": "1.0.3",
@ -554,6 +552,11 @@
"mimic-response": "^1.0.0"
}
},
"deep-extend": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
"integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
},
"defaults": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
@ -580,8 +583,7 @@
"delegates": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
"integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
"dev": true
"integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
},
"depd": {
"version": "1.1.2",
@ -592,8 +594,7 @@
"detect-libc": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
"integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
"dev": true
"integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups="
},
"detect-node": {
"version": "2.1.0",
@ -828,8 +829,7 @@
"emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"dev": true
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
},
"encodeurl": {
"version": "1.0.2",
@ -884,6 +884,11 @@
"integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
"optional": true
},
"expand-template": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
"integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg=="
},
"extract-zip": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz",
@ -949,6 +954,11 @@
"qs": "6.9.3"
}
},
"fs-constants": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
},
"fs-extra": {
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
@ -1018,6 +1028,11 @@
"get-symbol-from-current-process-h": "^1.0.1"
}
},
"github-from-package": {
"version": "0.0.0",
"resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
"integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4="
},
"glob": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
@ -1110,8 +1125,7 @@
"has-unicode": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
"integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
"dev": true
"integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
},
"hexoid": {
"version": "1.0.0",
@ -1176,8 +1190,7 @@
"ieee754": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
"dev": true
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
},
"imurmurhash": {
"version": "0.1.4",
@ -1215,8 +1228,7 @@
"ini": {
"version": "1.3.8",
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
"optional": true
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
},
"ip": {
"version": "1.1.5",
@ -1227,8 +1239,7 @@
"is-fullwidth-code-point": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
},
"is-interactive": {
"version": "1.0.0",
@ -1482,11 +1493,21 @@
"minimist": "^1.2.5"
}
},
"mkdirp-classic": {
"version": "0.5.3",
"resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
"integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"napi-build-utils": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
"integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg=="
},
"negotiator": {
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
@ -1573,6 +1594,11 @@
"resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz",
"integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q=="
},
"noop-logger": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz",
"integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI="
},
"nopt": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
@ -1609,6 +1635,11 @@
"set-blocking": "^2.0.0"
}
},
"number-is-nan": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
"integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
},
"object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
@ -1684,11 +1715,6 @@
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
"integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA="
},
"picomatch": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
},
"pify": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
@ -1700,6 +1726,114 @@
"resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz",
"integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ=="
},
"prebuild-install": {
"version": "5.3.6",
"resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.6.tgz",
"integrity": "sha512-s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==",
"requires": {
"detect-libc": "^1.0.3",
"expand-template": "^2.0.3",
"github-from-package": "0.0.0",
"minimist": "^1.2.3",
"mkdirp-classic": "^0.5.3",
"napi-build-utils": "^1.0.1",
"node-abi": "^2.7.0",
"noop-logger": "^0.1.1",
"npmlog": "^4.0.1",
"pump": "^3.0.0",
"rc": "^1.2.7",
"simple-get": "^3.0.3",
"tar-fs": "^2.0.0",
"tunnel-agent": "^0.6.0",
"which-pm-runs": "^1.0.0"
},
"dependencies": {
"ansi-regex": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
},
"aproba": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
"integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
},
"are-we-there-yet": {
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz",
"integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==",
"requires": {
"delegates": "^1.0.0",
"readable-stream": "^2.0.6"
}
},
"gauge": {
"version": "2.7.4",
"resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
"integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
"requires": {
"aproba": "^1.0.3",
"console-control-strings": "^1.0.0",
"has-unicode": "^2.0.0",
"object-assign": "^4.1.0",
"signal-exit": "^3.0.0",
"string-width": "^1.0.1",
"strip-ansi": "^3.0.1",
"wide-align": "^1.1.0"
}
},
"is-fullwidth-code-point": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
"requires": {
"number-is-nan": "^1.0.0"
}
},
"node-abi": {
"version": "2.30.1",
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz",
"integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==",
"requires": {
"semver": "^5.4.1"
}
},
"npmlog": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
"integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
"requires": {
"are-we-there-yet": "~1.1.2",
"console-control-strings": "~1.1.0",
"gauge": "~2.7.3",
"set-blocking": "~2.0.0"
}
},
"semver": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
},
"string-width": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
"strip-ansi": "^3.0.0"
}
},
"strip-ansi": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"requires": {
"ansi-regex": "^2.0.0"
}
}
}
},
"prepend-http": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
@ -1757,6 +1891,17 @@
"integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
"dev": true
},
"rc": {
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
"integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
"requires": {
"deep-extend": "^0.6.0",
"ini": "~1.3.0",
"minimist": "^1.2.0",
"strip-json-comments": "~2.0.1"
}
},
"readable-stream": {
"version": "2.3.7",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
@ -1771,14 +1916,6 @@
"util-deprecate": "~1.0.1"
}
},
"readdirp": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
"requires": {
"picomatch": "^2.2.1"
}
},
"ref-napi": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ref-napi/-/ref-napi-2.1.2.tgz",
@ -1874,6 +2011,21 @@
"sprintf-js": "^1.1.2"
}
},
"robotjs": {
"version": "git+https://github.com/csett86/robotjs.git#f74b42c257d72ec1c224d27c8c79b371d0ddc507",
"from": "git+https://github.com/csett86/robotjs.git",
"requires": {
"node-addon-api": "^4.2.0",
"prebuild-install": "^5.3.3"
},
"dependencies": {
"node-addon-api": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz",
"integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ=="
}
}
},
"safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
@ -1909,8 +2061,7 @@
"set-blocking": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
"dev": true
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
},
"shebang-command": {
"version": "2.0.0",
@ -1930,8 +2081,37 @@
"signal-exit": {
"version": "3.0.7",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
"integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
"dev": true
"integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
},
"simple-concat": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
"integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q=="
},
"simple-get": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz",
"integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==",
"requires": {
"decompress-response": "^4.2.0",
"once": "^1.3.1",
"simple-concat": "^1.0.0"
},
"dependencies": {
"decompress-response": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz",
"integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==",
"requires": {
"mimic-response": "^2.0.0"
}
},
"mimic-response": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz",
"integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA=="
}
}
},
"smart-buffer": {
"version": "4.2.0",
@ -1979,7 +2159,6 @@
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dev": true,
"requires": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
@ -1998,11 +2177,15 @@
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dev": true,
"requires": {
"ansi-regex": "^5.0.1"
}
},
"strip-json-comments": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
"integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
},
"struct": {
"version": "0.0.12",
"resolved": "https://registry.npmjs.org/struct/-/struct-0.0.12.tgz",
@ -2047,6 +2230,48 @@
}
}
},
"tar-fs": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
"integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
"requires": {
"chownr": "^1.1.1",
"mkdirp-classic": "^0.5.2",
"pump": "^3.0.0",
"tar-stream": "^2.1.4"
},
"dependencies": {
"chownr": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
"integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
}
}
},
"tar-stream": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
"integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
"requires": {
"bl": "^4.0.3",
"end-of-stream": "^1.4.1",
"fs-constants": "^1.0.0",
"inherits": "^2.0.3",
"readable-stream": "^3.1.1"
},
"dependencies": {
"readable-stream": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
"requires": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
"util-deprecate": "^1.0.1"
}
}
}
},
"to-readable-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
@ -2058,6 +2283,14 @@
"integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==",
"optional": true
},
"tunnel-agent": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
"requires": {
"safe-buffer": "^5.0.1"
}
},
"type-fest": {
"version": "0.13.1",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz",
@ -2153,11 +2386,15 @@
"isexe": "^2.0.0"
}
},
"which-pm-runs": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.1.0.tgz",
"integrity": "sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA=="
},
"wide-align": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
"integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
"dev": true,
"requires": {
"string-width": "^1.0.2 || 2 || 3 || 4"
}

View file

@ -13,6 +13,7 @@
"dependencies": {
"ansi_up": "latest",
"auto-launch": "latest",
"buffer": "^6.0.3",
"crc": "latest",
"dgram": "latest",
"electron": "^17.1.0",
@ -22,6 +23,7 @@
"jquery": "latest",
"long": "latest",
"popper.js": "^1.16.1",
"robotjs": "git+https://github.com/csett86/robotjs.git",
"struct": "latest",
"vgen-xbox": "git+https://github.com/JAMesserman/vgen-xbox.git",
"windows-elevate": "^1.0.1",

View file

@ -14,11 +14,16 @@ Result rc = 0;
void gamePadSend(JoyConSocket *connection)
{
JoyPkg pkg;
pkg.streamStart = (uint64_t)UINT64_MAX; // easy identifiers for the start and stop of tcp stream
pkg.streamEnd = (uint64_t)UINT64_MAX / 2;
pkg.controllerCount = (uint32_t)1;
padUpdate(&pad);
u64 kDown = padGetButtonsDown(&pad);
u64 kHeld = padGetButtons(&pad);
u64 kUp = padGetButtonsUp(&pad);
tmpout = 0;
rc = hiddbgGetAbstractedPadsState(pads, states, sizeof(pads) / sizeof(u64), &tmpout);
@ -63,6 +68,11 @@ void gamePadSend(JoyConSocket *connection)
pkg.rJoyX4 = (int32_t)states[3].state.analog_stick_r.x;
pkg.rJoyY4 = (int32_t)states[3].state.analog_stick_r.y;
printf("%d %d %d %d\n", pkg.lJoyX1, pkg.lJoyY1, pkg.rJoyX1, pkg.rJoyY1);
printf("%d %d %d %d\n", pkg.lJoyX2, pkg.lJoyY2, pkg.rJoyX2, pkg.rJoyY2);
printf("%d %d %d %d\n", pkg.lJoyX3, pkg.lJoyY3, pkg.rJoyX3, pkg.rJoyY3);
printf("%d %d %d %d\n", pkg.lJoyX4, pkg.lJoyY4, pkg.rJoyX4, pkg.rJoyY4);
HidTouchScreenState touchState = {0};
if (hidGetTouchScreenStates(&touchState, 1))
{
@ -71,28 +81,29 @@ void gamePadSend(JoyConSocket *connection)
pkg.touchX2 = (uint32_t)touchState.touches[1].x;
pkg.touchY2 = (uint32_t)touchState.touches[1].y;
}
HidSixAxisSensorState sixaxis = {0};
u64 style_set = padGetStyleSet(&pad);
if (style_set & HidNpadStyleTag_NpadHandheld)
hidGetSixAxisSensorStates(handles[0], &sixaxis, 1);
else if (style_set & HidNpadStyleTag_NpadFullKey)
hidGetSixAxisSensorStates(handles[1], &sixaxis, 1);
else if (style_set & HidNpadStyleTag_NpadJoyDual)
{
// For JoyDual, read from either the Left or Right Joy-Con depending on which is/are connected
u64 attrib = padGetAttributes(&pad);
if (attrib & HidNpadAttribute_IsLeftConnected)
hidGetSixAxisSensorStates(handles[2], &sixaxis, 1);
else if (attrib & HidNpadAttribute_IsRightConnected)
hidGetSixAxisSensorStates(handles[3], &sixaxis, 1);
}
pkg.accelX = (float_t)sixaxis.acceleration.x;
pkg.accelY = (float_t)sixaxis.acceleration.y;
pkg.accelZ = (float_t)sixaxis.acceleration.z;
pkg.gyroX = (float_t)sixaxis.angle.x;
pkg.gyroY = (float_t)sixaxis.angle.y;
pkg.gyroZ = (float_t)sixaxis.angle.z;
printf("%d %d %d %d\n", pkg.touchX1, pkg.touchY1, pkg.touchX2, pkg.touchY2);
// HidSixAxisSensorState sixaxis = {0};
// u64 style_set = padGetStyleSet(&pad);
// if (style_set & HidNpadStyleTag_NpadHandheld)
// hidGetSixAxisSensorStates(handles[0], &sixaxis, 1);
// else if (style_set & HidNpadStyleTag_NpadFullKey)
// hidGetSixAxisSensorStates(handles[1], &sixaxis, 1);
// else if (style_set & HidNpadStyleTag_NpadJoyDual)
// {
// // For JoyDual, read from either the Left or Right Joy-Con depending on which is/are connected
// u64 attrib = padGetAttributes(&pad);
// if (attrib & HidNpadAttribute_IsLeftConnected)
// hidGetSixAxisSensorStates(handles[2], &sixaxis, 1);
// else if (attrib & HidNpadAttribute_IsRightConnected)
// hidGetSixAxisSensorStates(handles[3], &sixaxis, 1);
// }
// pkg.accelX = (float_t)sixaxis.acceleration.x;
// pkg.accelY = (float_t)sixaxis.acceleration.y;
// pkg.accelZ = (float_t)sixaxis.acceleration.z;
// pkg.gyroX = (float_t)sixaxis.angle.x;
// pkg.gyroY = (float_t)sixaxis.angle.y;
// pkg.gyroZ = (float_t)sixaxis.angle.z;
// printf("%f %f %f %f %f %f\n", pkg.accelX, pkg.accelY, pkg.accelZ, pkg.gyroX, pkg.gyroY, pkg.gyroZ);
sendJoyConInput(connection, &pkg);
}

View file

@ -53,12 +53,12 @@ void init()
{
// consoleInit(NULL);
/* Init all switch required systems */
printf("romfsInit\n");
romfsInit();
printf("networkInit\n");
network_init(&socketInitConf);
printf("romfsInit\n");
romfsInit();
printf("audoutInitialize\n");
audoutInitialize();

View file

@ -144,29 +144,29 @@ void initBubbles()
{
while (bubblesLength < maxBubbles)
{
SDL_Color bubbleColor = {126, 242, 213, 255};
SDL_Color bubbleColor = {148, 0, 126, 255};
float randR = 15;
if (bubblesLength < 8)
{
SDL_Color nbc = {145, 255, 249, 120};
SDL_Color nbc = {120, 0, 102, 120};
randR = getRandomInt(5, 20);
bubbleColor = nbc;
}
else if (bubblesLength < 13)
{
SDL_Color nbc = {75, 219, 211, 180};
SDL_Color nbc = {89, 0, 76, 180};
randR = getRandomInt(25, 40);
bubbleColor = nbc;
}
else if (bubblesLength < 17)
{
SDL_Color nbc = {24, 161, 153, 200};
SDL_Color nbc = {66, 0, 57, 200};
randR = getRandomInt(45, 60);
bubbleColor = nbc;
}
else if (bubblesLength < 20)
{
SDL_Color nbc = {0, 102, 96, 230};
SDL_Color nbc = {46, 0, 40, 230};
randR = getRandomInt(65, 80);
bubbleColor = nbc;
}
@ -466,13 +466,13 @@ void drawSplash(RenderContext *context)
SDL_Color bg = {50, 50, 50, 255};
SDL_ClearScreen(context, bg);
SDL_Color bgf = {0, 181, 178, 255};
SDL_Color bgt = {0, 41, 40, 255};
SDL_Color bgf = {95, 0, 135, 255};
SDL_Color bgt = {87, 1, 94, 255};
drawGradient(context, 0, 0, 1280, 720, bgf, bgt, 1);
renderBubbles(context);
SDL_Color gf = {0, 0, 0, 250};
SDL_Color gf = {0, 0, 0, 200};
SDL_Color gt = {0, 0, 0, 0};
drawGradient(context, 0, 0, 1280, 180, gf, gt, 1);
drawGradient(context, 0, 720 - 100, 1280, 180, gf, gt, 2);