mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 18:43:51 +00:00
- общая IQ-очередь с TIQQueueItem.PanId (64→256 слотов); DSP-поток диспетчеризует пан-пакеты в PushPanItemToDSP: декод, feed анализатора PAN_DISP_BASE+PanId, аккумулятор, ProcessSlicesFor(PanId) под FSliceLock - пан-анализаторы: Create/DestroyPanAnalyzer + ApplyPanAnalyzerSettings (rate пана, без зума — пан-зум в 3.3+), живут в OpenAnalyzer/CloseAnalyzer, общие настройки дисплея перекатываются (ReapplyPanDisplaySettings) - слайсы в панах: TSliceChan.PanId, AddSlice(..., APanId), OpenSliceChannel от rate/блока своего пана, SliceDSPRateFor (WFM от rate пана); блок пана = FAudioBufSize*Rate/FAudioRate => аудио-блок слайсов неизменен - выдача пикселей: OnPanSpectrum/OnPanWaterfall(PanId,...) из display-потока, GetPixels пана под FSliceLock, колбэки вне лока - MAX_PANS=4 переехал в WDSPEngine (единый движок/контроллер/UI) - контроллер: AddPanDDC создаёт пан в движке до включения DDC, RemovePanDDC убирает слайсы (со звуковухами)+движок+DDC, гейт/NCO слайсов от центра своего пана, ретюн пана двигает его слайсы - смоук-тест на libwdsp без железа ALL PASS: пик спектра пана точно на месте, слайс пана выдал 1 кГц RMS 0.68, главный тракт жив, RemovePan чисто Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>