Fixed weird VFO behavior

This commit is contained in:
Ryzerth 2021-07-31 01:38:01 +02:00
parent 79e79e78ac
commit 011fdce237
4 changed files with 25 additions and 2 deletions

View File

@ -248,7 +248,17 @@ void MainWindow::vfoAddedHandler(VFOManager::VFO* vfo, void* ctx) {
double offset = core::configManager.conf["vfoOffsets"][name];
core::configManager.release();
sigpath::vfoManager.setOffset(name, _this->initComplete ? std::clamp<double>(offset, -_this->bw/2.0, _this->bw/2.0) : offset);
double viewBW = gui::waterfall.getViewBandwidth();
double viewOffset = gui::waterfall.getViewOffset();
double viewLower = viewOffset - (viewBW/2.0);
double viewUpper = viewOffset + (viewBW/2.0);
double newOffset = std::clamp<double>(offset, viewLower, viewUpper);
sigpath::vfoManager.setCenterOffset(name, _this->initComplete ? newOffset : offset);
}
void MainWindow::draw() {

View File

@ -74,6 +74,10 @@ double VFOManager::VFO::getBandwidth() {
return wtfVFO->bandwidth;
}
int VFOManager::VFO::getReference() {
return wtfVFO->reference;
}
void VFOManager::VFO::setColor(ImU32 color) {
wtfVFO->color = color;
}
@ -176,6 +180,13 @@ double VFOManager::getBandwidth(std::string name) {
return vfos[name]->getBandwidth();
}
int VFOManager::getReference(std::string name) {
if (vfos.find(name) == vfos.end()) {
return -1;
}
return vfos[name]->getReference();
}
void VFOManager::setColor(std::string name, ImU32 color) {
if (vfos.find(name) == vfos.end()) {
return;

View File

@ -22,6 +22,7 @@ public:
void setBandwidthLimits(double minBandwidth, double maxBandwidth, bool bandwidthLocked);
bool getBandwidthChanged(bool erase = true);
double getBandwidth();
int getReference();
void setColor(ImU32 color);
std::string getName();
@ -50,6 +51,7 @@ public:
double getBandwidth(std::string name);
void setColor(std::string name, ImU32 color);
std::string getName();
int getReference(std::string name);
bool vfoExists(std::string name);
void updateFromWaterfall(ImGui::WaterFall* wtf);

View File

@ -1,3 +1,3 @@
#pragma once
#define VERSION_STR "1.0.0_rc3"
#define VERSION_STR "1.0.0_rc4"