add nb nr

This commit is contained in:
2026-03-09 20:55:19 +03:00
parent 35472b010f
commit 01de71c60f
5 changed files with 421 additions and 93 deletions
+33 -5
View File
@@ -34,8 +34,9 @@ type
Volume: Integer;
DriveLevel: Integer;
ActiveVfo: Integer;
NREnabled: Boolean;
NBEnabled: Boolean;
NRMode: Integer;
NBMode: Integer;
SNBEnabled: Boolean;
ANFEnabled: Boolean;
AGCSlope: Integer;
AGCHangThreshold: Integer;
@@ -82,6 +83,8 @@ type
// Размер окна — не привязан к MAC, хранится в корне JSON
procedure SaveWindowBounds(L, T, W, H: Integer);
procedure LoadWindowBounds(out L, T, W, H: Integer);
procedure SaveStartupPreview(VfoA, VfoB: Double; SampleRate: Integer);
function LoadStartupPreview(out VfoA, VfoB: Double; out SampleRate: Integer): Boolean;
end;
implementation
@@ -110,6 +113,7 @@ class procedure TSettingsManager.DefaultGlobal(out G: TGlobalSettings);
begin
FillChar(G, SizeOf(G), 0);
G.Volume := 70; G.DriveLevel := 50; G.ActiveVfo := 0;
G.NRMode := 0; G.NBMode := 0; G.SNBEnabled := False; G.ANFEnabled := False;
G.AGCSlope := 0; G.AGCHangThreshold := 100; G.LastBand := 5;
G.SampleRate := 192000;
end;
@@ -235,8 +239,9 @@ begin
G.Volume := JI(GObj,'volume',70);
G.DriveLevel := JI(GObj,'drive_level',50);
G.ActiveVfo := JI(GObj,'active_vfo',0);
G.NREnabled := JB(GObj,'nr_enabled',False);
G.NBEnabled := JB(GObj,'nb_enabled',False);
G.NRMode := JI(GObj,'nr_mode',Ord(JB(GObj,'nr_enabled',False)));
G.NBMode := JI(GObj,'nb_mode',Ord(JB(GObj,'nb_enabled',False)));
G.SNBEnabled := JB(GObj,'snb_enabled',False);
G.ANFEnabled := JB(GObj,'anf_enabled',False);
G.AGCSlope := JI(GObj,'agc_slope',0);
G.AGCHangThreshold := JI(GObj,'agc_hang_threshold',100);
@@ -268,7 +273,9 @@ begin
O := GetGlobalObj(GetDevObj(MacToStr(MAC)));
JW(O,'volume',G.Volume); JW(O,'drive_level',G.DriveLevel);
JW(O,'active_vfo',G.ActiveVfo);
JW(O,'nr_enabled',G.NREnabled); JW(O,'nb_enabled',G.NBEnabled);
JW(O,'nr_mode',G.NRMode); JW(O,'nb_mode',G.NBMode);
JW(O,'nr_enabled',G.NRMode <> 0); JW(O,'nb_enabled',G.NBMode <> 0);
JW(O,'snb_enabled',G.SNBEnabled);
JW(O,'anf_enabled',G.ANFEnabled);
JW(O,'agc_slope',G.AGCSlope);
JW(O,'agc_hang_threshold',G.AGCHangThreshold);
@@ -333,4 +340,25 @@ begin
H := JI(O, 'height', 900);
end;
procedure TSettingsManager.SaveStartupPreview(VfoA, VfoB: Double; SampleRate: Integer);
var O: TJSONObject;
begin
O := EnsureObj(FRoot, 'startup');
JW(O, 'vfo_a', VfoA);
JW(O, 'vfo_b', VfoB);
JW(O, 'sample_rate', SampleRate);
end;
function TSettingsManager.LoadStartupPreview(out VfoA, VfoB: Double; out SampleRate: Integer): Boolean;
var O: TJSONObject;
begin
Result := FRoot.Find('startup') <> nil;
if not Result then Exit;
O := EnsureObj(FRoot, 'startup');
VfoA := JD(O, 'vfo_a', 14200000);
VfoB := JD(O, 'vfo_b', 7100000);
SampleRate := JI(O, 'sample_rate', 192000);
end;
end.