MCPcopy Create free account
hub / github.com/AlexandreRouma/SDRPlusPlus / draw

Method draw

core/src/gui/main_window.cpp:271–660  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

269}
270
271void MainWindow::draw() {
272 ImGui::Begin("Main", NULL, WINDOW_FLAGS);
273
274 ImGui::WaterfallVFO* vfo = NULL;
275 if (gui::waterfall.selectedVFO != "") {
276 vfo = gui::waterfall.vfos[gui::waterfall.selectedVFO];
277 }
278
279 // Handle VFO movement
280 if (vfo != NULL) {
281 if (vfo->centerOffsetChanged) {
282 if (tuningMode == tuner::TUNER_MODE_CENTER) {
283 tuner::tune(tuner::TUNER_MODE_CENTER, gui::waterfall.selectedVFO, gui::waterfall.getCenterFrequency() + vfo->generalOffset);
284 }
285 gui::freqSelect.setFrequency(gui::waterfall.getCenterFrequency() + vfo->generalOffset);
286 gui::freqSelect.frequencyChanged = false;
287 core::configManager.acquire();
288 core::configManager.conf["vfoOffsets"][gui::waterfall.selectedVFO] = vfo->generalOffset;
289 core::configManager.release(true);
290 }
291 }
292
293 sigpath::vfoManager.updateFromWaterfall(&gui::waterfall);
294
295 // Handle selection of another VFO
296 if (gui::waterfall.selectedVFOChanged) {
297 gui::freqSelect.setFrequency((vfo != NULL) ? (vfo->generalOffset + gui::waterfall.getCenterFrequency()) : gui::waterfall.getCenterFrequency());
298 gui::waterfall.selectedVFOChanged = false;
299 gui::freqSelect.frequencyChanged = false;
300 }
301
302 // Handle change in selected frequency
303 if (gui::freqSelect.frequencyChanged) {
304 gui::freqSelect.frequencyChanged = false;
305 tuner::tune(tuningMode, gui::waterfall.selectedVFO, gui::freqSelect.frequency);
306 if (vfo != NULL) {
307 vfo->centerOffsetChanged = false;
308 vfo->lowerOffsetChanged = false;
309 vfo->upperOffsetChanged = false;
310 }
311 core::configManager.acquire();
312 core::configManager.conf["frequency"] = gui::waterfall.getCenterFrequency();
313 if (vfo != NULL) {
314 core::configManager.conf["vfoOffsets"][gui::waterfall.selectedVFO] = vfo->generalOffset;
315 }
316 core::configManager.release(true);
317 }
318
319 // Handle dragging the frequency scale
320 if (gui::waterfall.centerFreqMoved) {
321 gui::waterfall.centerFreqMoved = false;
322 sigpath::sourceManager.tune(gui::waterfall.getCenterFrequency());
323 if (vfo != NULL) {
324 gui::freqSelect.setFrequency(gui::waterfall.getCenterFrequency() + vfo->generalOffset);
325 }
326 else {
327 gui::freqSelect.setFrequency(gui::waterfall.getCenterFrequency());
328 }

Callers 5

sdrpp_mainFunction · 0.45
drawMenuMethod · 0.45
menuHandlerMethod · 0.45
menuHandlerMethod · 0.45
menuHandlerMethod · 0.45

Calls 15

BeginFunction · 0.85
tuneFunction · 0.85
ImVec2Function · 0.85
beginDisabledFunction · 0.85
endDisabledFunction · 0.85
SNRMeterFunction · 0.85
GetForegroundDrawListFunction · 0.85
arrayClass · 0.85
EndFunction · 0.85
getCenterFrequencyMethod · 0.80
updateFromWaterfallMethod · 0.80

Tested by

no test coverage detected