mirror of
https://github.com/cjcliffe/CubicSDR.git
synced 2024-10-02 18:16:50 -04:00
4609386648
make process() a true interface as strong hint for derived classes, plus misc define added for understanding. BUGFIX: FFTDataDistributor loses incoming samples when compacting internal buffers. BUGFIX2: FFTDistributor: Frozen Waterfall if internal buffer is no bigger than fftSize
32 lines
797 B
C++
32 lines
797 B
C++
// Copyright (c) Charles J. Cliffe
|
|
// SPDX-License-Identifier: GPL-2.0+
|
|
|
|
#pragma once
|
|
|
|
#include "VisualProcessor.h"
|
|
#include "DemodDefs.h"
|
|
#include <cmath>
|
|
#include <cstring>
|
|
#include <atomic>
|
|
|
|
class FFTDataDistributor : public VisualProcessor<DemodulatorThreadIQData, DemodulatorThreadIQData> {
|
|
public:
|
|
FFTDataDistributor();
|
|
void setFFTSize(unsigned int size);
|
|
void setLinesPerSecond(unsigned int lines);
|
|
unsigned int getLinesPerSecond();
|
|
|
|
protected:
|
|
virtual void process();
|
|
|
|
DemodulatorThreadIQData inputBuffer, tempBuffer;
|
|
ReBuffer<DemodulatorThreadIQData> outputBuffers;
|
|
std::atomic<unsigned int> fftSize;
|
|
|
|
unsigned int linesPerSecond;
|
|
double lineRateAccum;
|
|
size_t bufferMax = 0;
|
|
size_t bufferOffset = 0;
|
|
size_t bufferedItems = 0;
|
|
};
|