mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 17:27:32 +00:00
Add audio buffer setting and optimize overlays
This commit is contained in:
+48
-1
@@ -46,6 +46,7 @@ type
|
||||
TOnGridParamChange = procedure(RefLevel, Range, GridStep: Double) of object;
|
||||
TOnAudioDevChange = procedure(DevIndex: Integer; const DevName: string) of object;
|
||||
TOnAudioInDevChange = procedure(DevIndex: Integer; const DevName: string) of object;
|
||||
TOnAudioBufferChange = procedure(BufferSize: Integer) of object;
|
||||
TOnVisibilityChange = procedure(ShowSpectrum, ShowWaterfall: Boolean) of object;
|
||||
TOnFPSChange = procedure(FPS: Integer) of object;
|
||||
TOnThemeChange = procedure(LightTheme: Boolean) of object;
|
||||
@@ -94,6 +95,7 @@ type
|
||||
FCmbTXDev: TComboBox;
|
||||
FTXDevIndices: array[0..63] of Integer;
|
||||
FTXDevCount: Integer;
|
||||
FCmbAudioBuffer: TComboBox;
|
||||
|
||||
// ---- RX1 sub-tab controls ----
|
||||
FCmbFFTSize: TComboBox;
|
||||
@@ -263,6 +265,7 @@ type
|
||||
FOnGridChange: TOnGridParamChange;
|
||||
FOnAudioDevChange: TOnAudioDevChange;
|
||||
FOnAudioInDevChange: TOnAudioInDevChange;
|
||||
FOnAudioBufferChange: TOnAudioBufferChange;
|
||||
FOnVisibilityChange: TOnVisibilityChange;
|
||||
FOnFPSChange: TOnFPSChange;
|
||||
FOnThemeChange: TOnThemeChange;
|
||||
@@ -325,6 +328,7 @@ type
|
||||
procedure OnGridStepChange(Sender: TObject);
|
||||
procedure OnRXDevChange(Sender: TObject);
|
||||
procedure OnTXDevChange(Sender: TObject);
|
||||
procedure OnAudioBufferCmbChange(Sender: TObject);
|
||||
procedure OnVisibilityChkChange(Sender: TObject);
|
||||
procedure OnFPSCmbChange(Sender: TObject);
|
||||
procedure OnLightThemeChkChange(Sender: TObject);
|
||||
@@ -364,6 +368,7 @@ type
|
||||
const AudioInDevName: string);
|
||||
|
||||
procedure RefreshAudioDevices(AudioOut: TAudioOutput; AudioIn: TAudioInput);
|
||||
procedure LoadAudioBufferSize(BufferSize: Integer);
|
||||
procedure LoadVisibility(ShowSpectrum, ShowWaterfall: Boolean);
|
||||
procedure LoadFPS(FPS: Integer);
|
||||
procedure LoadLightTheme(ALight: Boolean);
|
||||
@@ -393,6 +398,7 @@ type
|
||||
property OnGridChange: TOnGridParamChange read FOnGridChange write FOnGridChange;
|
||||
property OnAudioDevChange: TOnAudioDevChange read FOnAudioDevChange write FOnAudioDevChange;
|
||||
property OnAudioInDevChange: TOnAudioInDevChange read FOnAudioInDevChange write FOnAudioInDevChange;
|
||||
property OnAudioBufferChange: TOnAudioBufferChange read FOnAudioBufferChange write FOnAudioBufferChange;
|
||||
property OnVisibilityChange: TOnVisibilityChange read FOnVisibilityChange write FOnVisibilityChange;
|
||||
property OnFPSChange: TOnFPSChange read FOnFPSChange write FOnFPSChange;
|
||||
property OnThemeChange: TOnThemeChange read FOnThemeChange write FOnThemeChange;
|
||||
@@ -737,7 +743,7 @@ begin
|
||||
Font.Color := CLR_TEXTDIM;
|
||||
end;
|
||||
|
||||
Grp := MakeGroupPanel(FPageAudio, 'Audio Devices', MARGIN, 86, 650, 142);
|
||||
Grp := MakeGroupPanel(FPageAudio, 'Audio Devices', MARGIN, 86, 650, 184);
|
||||
|
||||
MakeLbl(Grp, 'TX input device', PAD, R1 + 5, LW);
|
||||
FCmbTXDev := MakeCombo(Grp, CX, R1, CMB_W, OnTXDevChange);
|
||||
@@ -746,6 +752,13 @@ begin
|
||||
MakeLbl(Grp, 'RX output device', PAD, R1 + STEP + 5, LW);
|
||||
FCmbRXDev := MakeCombo(Grp, CX, R1 + STEP, CMB_W, OnRXDevChange);
|
||||
FCmbRXDev.Items.Add('Default');
|
||||
|
||||
MakeLbl(Grp, 'Output buffer', PAD, R1 + STEP * 2 + 5, LW);
|
||||
FCmbAudioBuffer := MakeCombo(Grp, CX, R1 + STEP * 2, 160, OnAudioBufferCmbChange);
|
||||
FCmbAudioBuffer.Items.Add('128 frames');
|
||||
FCmbAudioBuffer.Items.Add('256 frames');
|
||||
FCmbAudioBuffer.Items.Add('512 frames');
|
||||
FCmbAudioBuffer.ItemIndex := 0;
|
||||
end;
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
@@ -1972,6 +1985,25 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// LoadAudioBufferSize
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
procedure TSettingsForm.LoadAudioBufferSize(BufferSize: Integer);
|
||||
begin
|
||||
FLoading := True;
|
||||
try
|
||||
case BufferSize of
|
||||
256: FCmbAudioBuffer.ItemIndex := 1;
|
||||
512: FCmbAudioBuffer.ItemIndex := 2;
|
||||
else
|
||||
FCmbAudioBuffer.ItemIndex := 0;
|
||||
end;
|
||||
finally
|
||||
FLoading := False;
|
||||
end;
|
||||
end;
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// RefreshAudioDevices
|
||||
// ---------------------------------------------------------------------------
|
||||
@@ -2243,6 +2275,21 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TSettingsForm.OnAudioBufferCmbChange(Sender: TObject);
|
||||
var
|
||||
BufferSize: Integer;
|
||||
begin
|
||||
if FLoading then Exit;
|
||||
if not Assigned(FOnAudioBufferChange) then Exit;
|
||||
case FCmbAudioBuffer.ItemIndex of
|
||||
1: BufferSize := 256;
|
||||
2: BufferSize := 512;
|
||||
else
|
||||
BufferSize := 128;
|
||||
end;
|
||||
FOnAudioBufferChange(BufferSize);
|
||||
end;
|
||||
|
||||
procedure TSettingsForm.LoadVisibility(ShowSpectrum, ShowWaterfall: Boolean);
|
||||
begin
|
||||
FLoading := True;
|
||||
|
||||
Reference in New Issue
Block a user