mirror of
https://github.com/AlexandreRouma/SDRPlusPlus.git
synced 2025-07-13 20:45:25 +02:00
Performance improvement to the FFT + code cleanup + Added an option to select the FFT window
This commit is contained in:
@ -162,8 +162,8 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
void setBandwidth(float bandWidth, bool updateWaterfall = true) {
|
||||
bandWidth = std::clamp<float>(bandWidth, bwMin, bwMax);
|
||||
bw = bandWidth;
|
||||
_vfo->setBandwidth(bw, updateWaterfall);
|
||||
float audioBW = std::min<float>(audioSampRate / 2.0f, bw / 2.0f);
|
||||
@ -173,6 +173,7 @@ private:
|
||||
resamp.updateWindow(&win);
|
||||
}
|
||||
|
||||
private:
|
||||
void setSnapInterval(float snapInt) {
|
||||
snapInterval = snapInt;
|
||||
_vfo->setSnapInterval(snapInterval);
|
||||
|
@ -169,12 +169,13 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
void setBandwidth(float bandWidth, bool updateWaterfall = true) {
|
||||
bandWidth = std::clamp<float>(bandWidth, bwMin, bwMax);
|
||||
bw = bandWidth;
|
||||
_vfo->setBandwidth(bw, updateWaterfall);
|
||||
}
|
||||
|
||||
private:
|
||||
void setSnapInterval(float snapInt) {
|
||||
snapInterval = snapInt;
|
||||
_vfo->setSnapInterval(snapInterval);
|
||||
|
@ -162,12 +162,13 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
void setBandwidth(float bandWidth, bool updateWaterfall = true) {
|
||||
bandWidth = std::clamp<float>(bandWidth, bwMin, bwMax);
|
||||
bw = bandWidth;
|
||||
_vfo->setBandwidth(bw, updateWaterfall);
|
||||
}
|
||||
|
||||
private:
|
||||
void setSnapInterval(float snapInt) {
|
||||
snapInterval = snapInt;
|
||||
_vfo->setSnapInterval(snapInterval);
|
||||
|
@ -154,14 +154,15 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
void setBandwidth(float bandWidth, bool updateWaterfall = true) {
|
||||
bandWidth = std::clamp<float>(bandWidth, bwMin, bwMax);
|
||||
bw = bandWidth;
|
||||
_vfo->setBandwidth(bw, updateWaterfall);
|
||||
demod.setDeviation(bw / 2.0f);
|
||||
setAudioSampleRate(audioSampRate);
|
||||
}
|
||||
|
||||
private:
|
||||
void setSnapInterval(float snapInt) {
|
||||
snapInterval = snapInt;
|
||||
_vfo->setSnapInterval(snapInterval);
|
||||
|
@ -161,8 +161,8 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
void setBandwidth(float bandWidth, bool updateWaterfall = true) {
|
||||
bandWidth = std::clamp<float>(bandWidth, bwMin, bwMax);
|
||||
bw = bandWidth;
|
||||
_vfo->setBandwidth(bw, updateWaterfall);
|
||||
demod.setBandWidth(bw);
|
||||
@ -173,6 +173,7 @@ private:
|
||||
resamp.updateWindow(&win);
|
||||
}
|
||||
|
||||
private:
|
||||
void setSnapInterval(float snapInt) {
|
||||
snapInterval = snapInt;
|
||||
_vfo->setSnapInterval(snapInterval);
|
||||
|
@ -174,6 +174,10 @@ private:
|
||||
int* _in = (int*)in;
|
||||
if (*_in != _this->demodId) { _this->selectDemodById(*_in); }
|
||||
}
|
||||
else if (code == RADIO_IFACE_CMD_SET_BANDWIDTH) {
|
||||
float* _in = (float*)in;
|
||||
_this->currentDemod->setBandwidth(*_in, true);
|
||||
}
|
||||
}
|
||||
|
||||
void selectDemod(Demodulator* demod) {
|
||||
|
@ -12,6 +12,7 @@ public:
|
||||
virtual VFOManager::VFO* getVFO() = 0;
|
||||
virtual void setAudioSampleRate(float sampleRate) = 0;
|
||||
virtual float getAudioSampleRate() = 0;
|
||||
virtual void setBandwidth(float bandWidth, bool updateWaterfall = true) = 0;
|
||||
virtual dsp::stream<dsp::stereo_t>* getOutput() = 0;
|
||||
virtual void showMenu() = 0;
|
||||
};
|
@ -116,6 +116,10 @@ public:
|
||||
}
|
||||
|
||||
// TODO: Allow selection of the bandwidth
|
||||
}
|
||||
|
||||
void setBandwidth(float bandWidth, bool updateWaterfall = true) {
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
private:
|
||||
|
@ -161,8 +161,8 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
void setBandwidth(float bandWidth, bool updateWaterfall = true) {
|
||||
bandWidth = std::clamp<float>(bandWidth, bwMin, bwMax);
|
||||
bw = bandWidth;
|
||||
_vfo->setBandwidth(bw, updateWaterfall);
|
||||
demod.setBandWidth(bw);
|
||||
@ -173,6 +173,7 @@ private:
|
||||
resamp.updateWindow(&win);
|
||||
}
|
||||
|
||||
private:
|
||||
void setSnapInterval(float snapInt) {
|
||||
snapInterval = snapInt;
|
||||
_vfo->setSnapInterval(snapInterval);
|
||||
|
@ -192,13 +192,15 @@ public:
|
||||
_vfo->setSnapInterval(snapInterval);
|
||||
}
|
||||
|
||||
private:
|
||||
void setBandwidth(float bandWidth, bool updateWaterfall = true) {
|
||||
bandWidth = std::clamp<float>(bandWidth, bwMin, bwMax);
|
||||
bw = bandWidth;
|
||||
_vfo->setBandwidth(bw, updateWaterfall);
|
||||
demod.setDeviation(bw / 2.0f);
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
const float bwMax = 250000;
|
||||
const float bwMin = 50000;
|
||||
const float bbSampRate = 250000;
|
||||
|
Reference in New Issue
Block a user