lotta bugfixes

This commit is contained in:
Marek Farkaš
2025-04-19 21:49:19 +02:00
parent cbefdb7c1f
commit 9f5f0522bb
15 changed files with 82 additions and 35 deletions
-1
View File
@@ -206,7 +206,6 @@ const updateInterval = 75;
var dataToSend = {
pi: '?',
freq: 87.500.toFixed(3),
prevFreq: 87.500.toFixed(3),
sig: 0,
sigRaw: '',
sigTop: -Infinity,
+1
View File
@@ -43,6 +43,7 @@ let serverConfig = {
audioDevice: "Microphone (High Definition Audio Device)",
audioChannels: 2,
audioBitrate: "128k",
audioBoost: false,
softwareMode: false,
startupVolume: "0.95"
},
+1 -1
View File
@@ -9,7 +9,7 @@ function enableAudioStream() {
const flags = `-fflags +nobuffer+flush_packets -flags low_delay -rtbufsize 6192 -probesize 32`;
const codec = `-acodec pcm_s16le -ar 48000 -ac ${serverConfig.audio.audioChannels}`;
const output = `-f s16le -fflags +nobuffer+flush_packets -packetsize 384 -flush_packets 1 -bufsize 960`;
const output = `${serverConfig.audio.audioBoost == true ? '$-af "volume=3.5"' : ''} -f s16le -fflags +nobuffer+flush_packets -packetsize 384 -flush_packets 1 -bufsize 960`;
if (process.platform === 'win32') {
// Windows
+10 -2
View File
@@ -7,6 +7,8 @@ let lastFetchTime = 0;
const fetchInterval = 1000;
const esSwitchCache = {"lastCheck":0, "esSwitch":false};
const esFetchInterval = 300000;
var currentPiCode = '';
var currentRdsPs = '';
const usStatesGeoJsonUrl = "https://raw.githubusercontent.com/PublicaMundi/MappingAPI/master/data/geojson/us-states.json";
let usStatesGeoJson = null; // To cache the GeoJSON data for US states
@@ -73,7 +75,11 @@ async function fetchTx(freq, piCode, rdsPs) {
if (isNaN(freq)) {
return;
}
if (now - lastFetchTime < fetchInterval || serverConfig.identification.lat.length < 2 || freq < 87) {
if (now - lastFetchTime < fetchInterval
|| serverConfig.identification.lat.length < 2
|| freq < 87
|| (currentPiCode == piCode && currentRdsPs == rdsPs))
{
return Promise.resolve();
}
@@ -90,7 +96,7 @@ async function fetchTx(freq, piCode, rdsPs) {
if (!response.ok) throw new Error(`HTTP error! Status: ${response.status}`);
const data = await response.json();
cachedData[freq] = data;
await loadUsStatesGeoJson();
if(serverConfig.webserver.rdsMode == true) await loadUsStatesGeoJson();
return processData(data, piCode, rdsPs);
} catch (error) {
console.error("Error fetching data:", error);
@@ -106,6 +112,8 @@ async function processData(data, piCode, rdsPs) {
let maxDistance;
let esMode = checkEs();
let detectedByPireg = false;
currentPiCode = piCode;
currentRdsPs = rdsPs;
function evaluateStation(station, city, distance) {
let weightDistance = distance.distanceKm;