You've already forked fm-dx-webserver
mirror of
https://github.com/KubaPro010/fm-dx-webserver.git
synced 2026-02-26 22:13:53 +01:00
Tune step bug fix and improvements
Fix AM rounding error tune problem and change smaller step size for AM vs FM frequencies
This commit is contained in:
@@ -315,34 +315,26 @@ function getCurrentFreq() {
|
|||||||
|
|
||||||
function checkKey(e) {
|
function checkKey(e) {
|
||||||
e = e || window.event;
|
e = e || window.event;
|
||||||
|
|
||||||
// Check if any input element is focused using jQuery
|
|
||||||
if ($('input:focus').length > 0) {
|
|
||||||
return; // Do nothing if an input is focused
|
|
||||||
}
|
|
||||||
|
|
||||||
getCurrentFreq();
|
getCurrentFreq();
|
||||||
|
|
||||||
if (socket.readyState === WebSocket.OPEN) {
|
if (socket.readyState === WebSocket.OPEN) {
|
||||||
switch (e.keyCode) {
|
if (e.keyCode == '82') { // RDS Reset (R key)
|
||||||
case 82: // RDS Reset (R key)
|
socket.send("T" + (currentFreq.toFixed(1) * 1000));
|
||||||
socket.send("T" + (currentFreq.toFixed(1) * 1000));
|
}
|
||||||
break;
|
if (e.keyCode == '38') {
|
||||||
case 38:
|
let smallStep = (currentFreq > 30) ? 10 : 1;
|
||||||
socket.send("T" + ((currentFreq + 0.01).toFixed(2) * 1000));
|
socket.send("T" + (Math.round(currentFreq*1000) + smallStep));
|
||||||
break;
|
}
|
||||||
case 40:
|
else if (e.keyCode == '40') {
|
||||||
socket.send("T" + ((currentFreq - 0.01).toFixed(2) * 1000));
|
let smallStep = (currentFreq > 30) ? 10 : 1;
|
||||||
break;
|
socket.send("T" + (Math.round(currentFreq*1000) - smallStep));
|
||||||
case 37:
|
}
|
||||||
tuneDown();
|
else if (e.keyCode == '37') {
|
||||||
break;
|
tuneDown();
|
||||||
case 39:
|
}
|
||||||
tuneUp();
|
else if (e.keyCode == '39') {
|
||||||
break;
|
tuneUp();
|
||||||
default:
|
|
||||||
// Handle default case if needed
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -352,38 +344,38 @@ function tuneUp() {
|
|||||||
getCurrentFreq();
|
getCurrentFreq();
|
||||||
let addVal = 0;
|
let addVal = 0;
|
||||||
if (currentFreq < 0.52) {
|
if (currentFreq < 0.52) {
|
||||||
addVal = 9 - ((currentFreq*1000) % 9);
|
addVal = 9 - (Math.round(currentFreq*1000) % 9);
|
||||||
} else if (currentFreq < 1.71) {
|
} else if (currentFreq < 1.71) {
|
||||||
// TODO: Rework to replace 9 with 9 or 10 based on regionalisation setting
|
// TODO: Rework to replace 9 with 9 or 10 based on regionalisation setting
|
||||||
addVal = 9 - ((currentFreq*1000) % 9);
|
addVal = 9 - (Math.round(currentFreq*1000) % 9);
|
||||||
} else if (currentFreq < 29.6) {
|
} else if (currentFreq < 29.6) {
|
||||||
addVal = 5 - ((currentFreq*1000) % 5);
|
addVal = 5 - (Math.round(currentFreq*1000) % 5);
|
||||||
} else if (currentFreq >= 65.9 && currentFreq < 74) {
|
} else if (currentFreq >= 65.9 && currentFreq < 74) {
|
||||||
addVal = ((currentFreq*1000) % 30 == 20) ? 30 : (20 - ((currentFreq*1000) % 30));
|
addVal = 30 - ((Math.round(currentFreq*1000) - 65900) % 30);
|
||||||
} else {
|
} else {
|
||||||
addVal = 100 - ((currentFreq*1000) % 100);
|
addVal = 100 - (Math.round(currentFreq*1000) % 100);
|
||||||
}
|
}
|
||||||
socket.send("T" + ((currentFreq*1000) + addVal));
|
socket.send("T" + (Math.round(currentFreq*1000) + addVal));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function tuneDown() {
|
function tuneDown() {
|
||||||
if (socket.readyState === WebSocket.OPEN) {
|
if (socket.readyState === WebSocket.OPEN) {
|
||||||
getCurrentFreq();
|
getCurrentFreq();
|
||||||
let subVal = 0;
|
let subVal = 0;
|
||||||
if (currentFreq < 0.52) {
|
if (currentFreq < 0.52) {
|
||||||
subVal = ((currentFreq*1000) % 9 == 0) ? 9 : ((currentFreq*1000) % 9);
|
subVal = (Math.round(currentFreq*1000) % 9 == 0) ? 9 : (Math.round(currentFreq*1000) % 9);
|
||||||
} else if (currentFreq < 1.71) {
|
} else if (currentFreq < 1.71) {
|
||||||
// TODO: Rework to replace 9 with 9 or 10 based on regionalisation setting
|
// TODO: Rework to replace 9 with 9 or 10 based on regionalisation setting
|
||||||
subVal = ((currentFreq*1000) % 9 == 0) ? 9 : ((currentFreq*1000) % 9);
|
subVal = (Math.round(currentFreq*1000) % 9 == 0) ? 9 : (Math.round(currentFreq*1000) % 9);
|
||||||
} else if (currentFreq < 29.6) {
|
} else if (currentFreq < 29.6) {
|
||||||
subVal = ((currentFreq*1000) % 5 == 0) ? 5 : ((currentFreq*1000) % 5);
|
subVal = (Math.round(currentFreq*1000) % 5 == 0) ? 5 : (Math.round(currentFreq*1000) % 5);
|
||||||
} else if (currentFreq >= 65.9 && currentFreq < 74) {
|
} else if (currentFreq > 65.9 && currentFreq <= 74) {
|
||||||
subVal = ((currentFreq*1000) % 30 == 20) ? 30 : (10 + ((currentFreq*1000) % 30));
|
subVal = ((Math.round(currentFreq*1000) - 65900) % 30 == 0) ? 30 : ((Math.round(currentFreq*1000) - 65900) % 30);
|
||||||
} else {
|
} else {
|
||||||
subVal = ((currentFreq*1000) % 100 == 0) ? 100 : ((currentFreq*1000) % 100);
|
subVal = (Math.round(currentFreq*1000) % 100 == 0) ? 100 : (Math.round(currentFreq*1000) % 100);
|
||||||
}
|
}
|
||||||
socket.send("T" + ((currentFreq*1000) - subVal));
|
socket.send("T" + (Math.round(currentFreq*1000) - subVal));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user