mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 20:37:33 +00:00
feat(slices): multi-slice receivers (FlexRadio-style) — soft fan-out + per-slice flag/audio
Independent RX slices sharing one panadapter: each has its own freq/mode/filter/AGC/NR-NB-SNB-ANF, S-meter, volume and sound card. VFO A = main receiver; B+ are soft fan-out WDSP channels within the captured span (ideal for Pluto/QO-100; HW DDC path is Stage 3). - WDSPEngine: soft fan-out (TSliceChan, ProcessSlices in DSP thread, per-slice NCO/mode/filter/AGC/NR/NB/SNB/ANF + S-meter, OnSliceAudio), FSliceLock serialises add/remove/set vs DSP; reopened on rate change. - RadioController: TCtrlSlice with its own TAudioOutput/device, Add/Remove/SetSlice*, RefreshSliceShifts keeps slices on target Hz across centre changes. Slice letters start at 'B' (A = main receiver). - UI: per-slice flags (VfoOverlay) with letter badge/close, filter-band markers in BOTH GL and CPU renderers, drag-retune, wheel; flags placed beside the filter band with flip, like the main flag. Ctrl+click adds. - Main flag (slice A) visible whenever the left panel is hidden OR any slice exists; synced with panel-driven DSP/mode/AGC changes. - Perf: S-meter decoupled from flag chrome cache (FMeterDirty + meter-only RefreshMeter via EnsureRendered); InvalidateVfoOverlay avoids global overlay-cache churn on meter ticks. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -17,9 +17,9 @@
|
||||
<UseVersionInfo Value="True"/>
|
||||
<AutoIncrementBuild Value="True"/>
|
||||
<MinorVersionNr Value="9"/>
|
||||
<BuildNr Value="215"/>
|
||||
<BuildNr Value="232"/>
|
||||
</VersionInfo>
|
||||
<MacroValues Count="27">
|
||||
<MacroValues Count="50">
|
||||
<Macro1 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro2 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro3 Name="LCLWidgetType" Value="qt6"/>
|
||||
@@ -47,6 +47,29 @@
|
||||
<Macro25 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro26 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro27 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro28 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro29 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro30 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro31 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro32 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro33 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro34 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro35 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro36 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro37 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro38 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro39 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro40 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro41 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro42 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro43 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro44 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro45 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro46 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro47 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro48 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro49 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro50 Name="LCLWidgetType" Value="qt6"/>
|
||||
</MacroValues>
|
||||
<BuildModes>
|
||||
<Item Name="Debug" Default="True"/>
|
||||
|
||||
Reference in New Issue
Block a user