SkyNX/SkyNX-Streamer/js/settings.js

258 lines
8.1 KiB
JavaScript
Raw Normal View History

2020-04-16 00:15:44 +00:00
var debug = true;
var clientSettings = {};
2020-04-16 00:15:44 +00:00
var clientSettingsPath = "./settings.json";
2020-04-24 03:05:54 +00:00
2020-04-16 00:15:44 +00:00
if (fs.existsSync(clientSettingsPath)) {
loadClientSettings();
} else {
2020-04-24 03:05:54 +00:00
initSettings();
2020-04-16 00:15:44 +00:00
}
function saveClientSettings() {
DB.save(clientSettingsPath, clientSettings);
}
2020-04-24 03:05:54 +00:00
function initSettings() {
if (!clientSettings.hasOwnProperty("debug")) {
clientSettings.debug = false;
}
2020-04-24 03:05:54 +00:00
if (!clientSettings.hasOwnProperty("accentColor")) {
clientSettings.accentColor = {
"r": 50,
"g": 50,
"b": 50,
"a": 0.9
};
}
2020-04-24 03:05:54 +00:00
if (!clientSettings.hasOwnProperty("rainbowEnabled")) {
clientSettings.rainbowEnabled = true;
}
2020-04-24 03:05:54 +00:00
if (!clientSettings.hasOwnProperty("devToolsOnStartup")) {
clientSettings.devToolsOnStartup = false;
}
2020-04-24 03:05:54 +00:00
if (!clientSettings.hasOwnProperty("ip")) {
clientSettings.ip = "0.0.0.0";
}
2020-04-24 03:05:54 +00:00
if (!clientSettings.hasOwnProperty("quality")) {
clientSettings.quality = 5;
}
if (!clientSettings.hasOwnProperty("disableVideo")) {
clientSettings.disableVideo = false;
}
2020-04-24 19:14:48 +00:00
if (!clientSettings.hasOwnProperty("disableAudio")) {
clientSettings.disableAudio = false;
}
if (!clientSettings.hasOwnProperty("abxySwap")) {
clientSettings.abxySwap = false;
}
2020-04-27 00:24:33 +00:00
if (!clientSettings.hasOwnProperty("limitFPS")) {
clientSettings.limitFPS = false;
}
if (!clientSettings.hasOwnProperty("autoChangeResolution")) {
clientSettings.autoChangeResolution = true;
}
2020-04-26 22:56:40 +00:00
if (!clientSettings.hasOwnProperty("encoding")) {
clientSettings.encoding = "CPU";
}
2020-04-27 03:48:45 +00:00
if (!clientSettings.hasOwnProperty("mouseControl")) {
clientSettings.mouseControl = "ANALOG";
2020-04-27 03:48:45 +00:00
}
2020-04-24 03:05:54 +00:00
if (!clientSettings.hasOwnProperty("firstInstall")) {
clientSettings.firstInstall = false;
}
2020-04-26 23:46:42 +00:00
if (!clientSettings.hasOwnProperty("autoStartup")) {
clientSettings.autoStartup = false;
}
applyClientSettings();
}
2020-04-24 03:05:54 +00:00
function loadClientSettings() {
clientSettings = DB.load(clientSettingsPath);
initSettings();
saveClientSettings();
}
function applyClientSettings() {
2020-04-16 00:15:44 +00:00
$("#debugEnabled").prop("checked", clientSettings.debug);
$("#rainbowEnabled").prop("checked", clientSettings.rainbowEnabled);
$("#devToolsOnStartup").prop("checked", clientSettings.devToolsOnStartup);
2020-04-22 22:22:43 +00:00
$("#autoStart").prop("checked", clientSettings.autoStartStreamer);
2020-04-26 23:46:42 +00:00
$("#autoStartup").prop("checked", clientSettings.autoStartup);
2020-04-16 03:58:28 +00:00
$("#qualitySlider").val(clientSettings.quality);
2020-04-23 02:12:51 +00:00
$('#qualityLabel').html("Quality: " + clientSettings.quality + "Mbps");
$('#disableVideo').prop("checked", clientSettings.disableVideo);
2020-04-24 19:14:48 +00:00
$('#disableAudio').prop("checked", clientSettings.disableAudio);
$('#abxySwap').prop("checked", clientSettings.abxySwap);
2020-04-27 00:24:33 +00:00
$('#limitFPS').prop("checked", clientSettings.limitFPS);
$('#autoChangeResolution').prop("checked", clientSettings.autoChangeResolution);
if (clientSettings.autoChangeResolution) {
ipcRenderer.send("autoChangeResolutionOn");
} else {
ipcRenderer.send("autoChangeResolutionOff")
}
2020-04-16 03:58:28 +00:00
$("#ipInput").val(clientSettings.ip);
2020-04-26 22:56:40 +00:00
if (clientSettings.encoding == "NVENC") {
$("#encodingDrop").html("Encoding (Nvidia)");
2020-05-10 01:15:08 +00:00
} else if(clientSettings.encoding == "AMDVCE"){
$("#encodingDrop").html("Encoding (AMD)")
2020-05-10 20:44:31 +00:00
} else if(clientSettings.encoding == "QSV"){
$("#encodingDrop").html("Encoding (Intel)");
2020-04-26 22:56:40 +00:00
} else {
$("#encodingDrop").html("Encoding (CPU)");
2020-04-27 03:48:45 +00:00
clientSettings.encoding = "CPU";
}
if (clientSettings.mouseControl == "ANALOG") {
$("#mouseControlDrop").html("Mouse Control (Analog)");
} else if (clientSettings.mouseControl == "GYRO") {
$("#mouseControlDrop").html("Mouse Control (Gyro)");
} else {
$("#mouseControlDrop").html("Mouse Control (Analog)");
clientSettings.mouseControl = "ANALOG";
2020-04-26 22:56:40 +00:00
}
2020-04-16 00:15:44 +00:00
if (clientSettings.debug) {
$("#dev-btn").fadeIn(400);
$("#rld-btn").fadeIn(400);
} else {
$("#dev-btn").fadeOut(400);
$("#rld-btn").fadeOut(400);
}
if (clientSettings.rainbowEnabled) {
rainbowAccent();
} else {
setAccentColor(clientSettings.accentColor.r, clientSettings.accentColor.g, clientSettings.accentColor.b, clientSettings.accentColor.a);
}
if (clientSettings.devToolsOnStartup) {
openDevTools();
}
if (!clientSettings.firstInstall) {
ipcRenderer.send('installScpVBus');
ipcRenderer.send('installAudioDriver');
2022-03-03 14:14:33 +00:00
// $('#restartModal').modal('show');
clientSettings.firstInstall = true;
2020-04-24 03:05:54 +00:00
saveClientSettings();
}
2020-04-22 22:19:05 +00:00
if (clientSettings.autoStartStreamer) {
connect();
}
2020-04-26 23:46:42 +00:00
if (clientSettings.autoStartup) {
ipcRenderer.send('autoStartupOn');
} else {
ipcRenderer.send('autoStartupOff');
}
2020-04-16 00:15:44 +00:00
}
2020-04-22 22:19:05 +00:00
2020-04-16 00:15:44 +00:00
$("#rainbowEnabled").on('change', function () {
clientSettings.rainbowEnabled = $("#rainbowEnabled").prop("checked");
saveClientSettings();
applyClientSettings();
});
// $("#debugEnabled").on('change', function () {
// clientSettings.debug = $("#debugEnabled").prop("checked");
// saveClientSettings();
// applyClientSettings();
// });
// $("#devToolsOnStartup").on('change', function () {
// clientSettings.devToolsOnStartup = $("#devToolsOnStartup").prop("checked");
// saveClientSettings();
// applyClientSettings();
// });
$("#autoStart").on('change', function () {
clientSettings.autoStartStreamer = $("#autoStart").prop("checked");
saveClientSettings();
applyClientSettings();
2020-04-26 23:46:42 +00:00
}); $("#autoStartup").on('change', function () {
clientSettings.autoStartup = $("#autoStartup").prop("checked");
saveClientSettings();
applyClientSettings();
});
2020-04-26 23:46:42 +00:00
$('#installScpVBusBtn').click(function () {
ipcRenderer.send('installScpVBus');
2020-04-16 00:15:44 +00:00
});
$('#unInstallScpVBusBtn').click(function () {
ipcRenderer.send('unInstallScpVBus');
});
$('#installAudioDriverBtn').click(function () {
ipcRenderer.send('installAudioDriver');
2020-04-16 00:15:44 +00:00
});
$('#unInstallAudioDriverBtn').click(function () {
ipcRenderer.send('unInstallAudioDriver');
2020-04-24 03:05:54 +00:00
});
var qualityChangeTimeout;
$(document).on('input', '#qualitySlider', function () {
$('#qualityLabel').html("Quality: " + $(this).val() + "Mbps");
clientSettings.quality = $(this).val();
if (running) {
clearTimeout(qualityChangeTimeout);
qualityChangeTimeout = setTimeout(restart, 1000)
}
2020-04-24 19:14:48 +00:00
saveClientSettings();
});
2020-04-24 03:05:54 +00:00
$(document).on('input', '#ipInput', function () {
clientSettings.ip = $(this).val();
saveClientSettings();
});
$("#disableVideo").on('change', function () {
clientSettings.disableVideo = $("#disableVideo").prop("checked");
2020-04-24 19:14:48 +00:00
if (running) {
restart();
}
saveClientSettings();
applyClientSettings();
});
$("#disableAudio").on('change', function () {
clientSettings.disableAudio = $("#disableAudio").prop("checked");
if (running) {
restart();
}
saveClientSettings();
applyClientSettings();
});
$("#abxySwap").on('change', function () {
clientSettings.abxySwap = $("#abxySwap").prop("checked");
if (running) {
restart();
}
saveClientSettings();
applyClientSettings();
});
2020-04-27 00:24:33 +00:00
$("#limitFPS").on('change', function () {
clientSettings.limitFPS = $("#limitFPS").prop("checked");
if (running) {
restart();
}
saveClientSettings();
applyClientSettings();
});
$("#autoChangeResolution").on('change', function () {
clientSettings.autoChangeResolution = $("#autoChangeResolution").prop("checked");
saveClientSettings();
applyClientSettings();
});
2020-04-27 00:24:33 +00:00
2020-04-24 03:05:54 +00:00
$("#settings-btn").click(function () {
$(".contentArea").hide();
$("#settings").fadeIn(400);
$('#settings-btn').tooltip('hide');
});
2020-04-26 22:56:40 +00:00
function setEncoding(encoding) {
clientSettings.encoding = encoding;
if (running) {
restart();
}
saveClientSettings();
applyClientSettings();
}
2020-04-27 03:48:45 +00:00
function setMouseControl(mouseControl) {
clientSettings.mouseControl = mouseControl;
if (running) {
restart();
}
saveClientSettings();
applyClientSettings();
}
$("#restartBtn").click(function () {
ipcRenderer.send('restartComputer');
});