Added module management system

This commit is contained in:
Ryzerth
2021-05-05 04:31:37 +02:00
parent 85b9649a9a
commit 1b27916c24
20 changed files with 191 additions and 33 deletions

View File

@@ -78,12 +78,23 @@ public:
}
~MeteorDemodulatorModule() {
if (recording) {
std::lock_guard<std::mutex> lck(recMtx);
recording = false;
recFile.close();
}
demod.stop();
split.stop();
reshape.stop();
symSink.stop();
sink.stop();
sigpath::vfoManager.deleteVFO(vfo);
gui::menu.removeEntry(name);
}
void enable() {
double bw = gui::waterfall.getBandwidth();
vfo = sigpath::vfoManager.createVFO(name, ImGui::WaterfallVFO::REF_CENTER, std::clamp<double>(savedOffset, -bw/2.0, bw/2.0), 150000, INPUT_SAMPLE_RATE, 150000, 150000, true);
vfo = sigpath::vfoManager.createVFO(name, ImGui::WaterfallVFO::REF_CENTER, std::clamp<double>(0, -bw/2.0, bw/2.0), 150000, INPUT_SAMPLE_RATE, 150000, 150000, true);
demod.setInput(vfo->output);
@@ -103,7 +114,6 @@ public:
symSink.stop();
sink.stop();
savedOffset = vfo->getOffset();
sigpath::vfoManager.deleteVFO(vfo);
enabled = false;
}
@@ -186,8 +196,6 @@ private:
std::string name;
bool enabled = true;
double savedOffset = 0;
// DSP Chain
VFOManager::VFO* vfo;