From 3f79f7a0c73eb0a574b63dc57fa12448e70b702e Mon Sep 17 00:00:00 2001 From: Amateur Audio Dude <168192910+AmateurAudioDude@users.noreply.github.com> Date: Sat, 3 May 2025 03:57:31 +1000 Subject: [PATCH] add auto bw, ceq, ims, stereo options to setup --- server/endpoints.js | 1 + server/index.js | 43 ++++++++++++++++++++++++++++++++++++++--- server/server_config.js | 10 +++++++++- 3 files changed, 50 insertions(+), 4 deletions(-) diff --git a/server/endpoints.js b/server/endpoints.js index 712fc62..1736723 100644 --- a/server/endpoints.js +++ b/server/endpoints.js @@ -146,6 +146,7 @@ router.get('/wizard', (req, res) => { enabledPlugins: updatedConfig.plugins, onlineUsers: dataHandler.dataToSend.users, connectedUsers: storage.connectedUsers, + device: serverConfig.device, banlist: updatedConfig.webserver.banlist // Updated banlist from the latest config }); }); diff --git a/server/index.js b/server/index.js index a1db2c0..66d2efc 100644 --- a/server/index.js +++ b/server/index.js @@ -188,7 +188,20 @@ if (serverConfig.xdrd.wirelessConnection === false) { serialport.write('F-1\n'); serialport.write('W0\n'); serverConfig.webserver.rdsMode ? serialport.write('D1\n') : serialport.write('D0\n'); - serialport.write('G00\n'); + // cEQ and iMS combinations + if (serverConfig.ceqStartup === "0" && serverConfig.imsStartup === "0") { + serialport.write("G00\n"); // Both Disabled + } else if (serverConfig.ceqStartup === "1" && serverConfig.imsStartup === "0") { + serialport.write(`G10\n`); + } else if (serverConfig.ceqStartup === "0" && serverConfig.imsStartup === "1") { + serialport.write(`G01\n`); + } else if (serverConfig.ceqStartup === "1" && serverConfig.imsStartup === "1") { + serialport.write("G11\n"); // Both Enabled + } + // Handle stereo mode + if (serverConfig.stereoStartup === "1") { + serialport.write("B1\n"); // Mono + } serverConfig.audio.startupVolume ? serialport.write('Y' + (serverConfig.audio.startupVolume * 100).toFixed(0) + '\n') : serialport.write('Y100\n'); @@ -485,8 +498,32 @@ wss.on('connection', (ws, request) => { if (currentUsers === 0) { storage.connectedUsers = []; - output.write('W0\n'); - output.write('B0\n'); + + if (serverConfig.bwAutoNoUsers === "1") { + output.write("W0\n"); // Auto BW 'Enabled' + } + + // cEQ and iMS combinations + if (serverConfig.ceqNoUsers === "1" && serverConfig.imsNoUsers === "1") { + output.write("G00\n"); // Both Disabled + } else if (serverConfig.ceqNoUsers === "1" && serverConfig.imsNoUsers === "0") { + output.write(`G0${dataHandler.dataToSend.ims}\n`); + } else if (serverConfig.ceqNoUsers === "0" && serverConfig.imsNoUsers === "1") { + output.write(`G${dataHandler.dataToSend.eq}0\n`); + } else if (serverConfig.ceqNoUsers === "2" && serverConfig.imsNoUsers === "0") { + output.write(`G1${dataHandler.dataToSend.ims}\n`); + } else if (serverConfig.ceqNoUsers === "0" && serverConfig.imsNoUsers === "2") { + output.write(`G${dataHandler.dataToSend.eq}1\n`); + } else if (serverConfig.ceqNoUsers === "2" && serverConfig.imsNoUsers === "2") { + output.write("G11\n"); // Both Enabled + } + + // Handle stereo mode + if (serverConfig.stereoNoUsers === "1") { + output.write("B0\n"); + } else if (serverConfig.stereoNoUsers === "2") { + output.write("B1\n"); + } } if (tunerLockTracker.has(ws)) { diff --git a/server/server_config.js b/server/server_config.js index ff5ad2e..cc36c81 100644 --- a/server/server_config.js +++ b/server/server_config.js @@ -105,7 +105,15 @@ let serverConfig = { autoShutdown: false, enableDefaultFreq: false, defaultFreq: "87.5", - bwSwitch: false + bwSwitch: false, + bwAutoStartup: "0", + bwAutoNoUsers: "0", + ceqStartup: "0", + ceqNoUsers: "0", + imsStartup: "0", + imsNoUsers: "0", + stereoStartup: "0", + stereoNoUsers: "0" }; // Function to add missing fields without overwriting existing values