Improve SSB UI visuals and interactivity

This commit is contained in:
Charles J. Cliffe
2015-02-16 02:15:04 -05:00
parent 6b120cff95
commit 24fe742f8e
3 changed files with 56 additions and 35 deletions
+21 -8
View File
@@ -369,22 +369,35 @@ void AppFrame::OnIdle(wxIdleEvent& event) {
demodModeSelector->setSelection(dType);
}
if (demodWaterfallCanvas->getDragState() == WaterfallCanvas::WF_DRAG_NONE) {
if (demod->getFrequency() != demodWaterfallCanvas->getCenterFrequency()) {
demodWaterfallCanvas->setCenterFrequency(demod->getFrequency());
demodSpectrumCanvas->setCenterFrequency(demod->getFrequency());
}
int dSelection = demodModeSelector->getSelection();
if (dSelection != -1 && dSelection != demod->getDemodulatorType()) {
demod->setDemodulatorType(dSelection);
long long centerFreq = demod->getFrequency();
unsigned int demodBw = (unsigned int) ceil((float) demod->getBandwidth() * 2.5);
if (demod->getDemodulatorType() == DEMOD_TYPE_USB) {
demodBw /= 2;
centerFreq += demod->getBandwidth()/4;
}
if (demod->getDemodulatorType() == DEMOD_TYPE_LSB) {
demodBw /= 2;
centerFreq -= demod->getBandwidth()/4;
}
unsigned int demodBw = (unsigned int) ceil((float) demod->getBandwidth() * 2.5);
if (demodBw > wxGetApp().getSampleRate() / 2) {
demodBw = wxGetApp().getSampleRate() / 2;
}
if (demodBw < 30000) {
demodBw = 30000;
}
if (centerFreq != demodWaterfallCanvas->getCenterFrequency()) {
demodWaterfallCanvas->setCenterFrequency(centerFreq);
demodSpectrumCanvas->setCenterFrequency(centerFreq);
}
int dSelection = demodModeSelector->getSelection();
if (dSelection != -1 && dSelection != demod->getDemodulatorType()) {
demod->setDemodulatorType(dSelection);
}
demodWaterfallCanvas->setBandwidth(demodBw);
demodSpectrumCanvas->setBandwidth(demodBw);
}