mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 20:37:33 +00:00
add nb nr
This commit is contained in:
+33
-5
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user