summaryrefslogtreecommitdiff
path: root/gr-qtgui/src/lib/spectrumdisplayform.cc
blob: 141fc0e3385178dae91756ad7cf28b00dfa57335 (plain)
ofshex dumpascii
0000 23 69 6e 63 6c 75 64 65 20 3c 63 6d 61 74 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 51 43 6f 6c 6f #include.<cmath>.#include.<QColo
0020 72 44 69 61 6c 6f 67 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 51 4d 65 73 73 61 67 65 42 6f 78 3e 0a rDialog>.#include.<QMessageBox>.
0040 23 69 6e 63 6c 75 64 65 20 3c 73 70 65 63 74 72 75 6d 64 69 73 70 6c 61 79 66 6f 72 6d 2e 68 3e #include.<spectrumdisplayform.h>
0060 0a 0a 69 6e 74 20 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 5f 6f 70 65 6e ..int.SpectrumDisplayForm::_open
0080 47 4c 57 61 74 65 72 66 61 6c 6c 33 44 46 6c 61 67 20 3d 20 2d 31 3b 0a 0a 53 70 65 63 74 72 75 GLWaterfall3DFlag.=.-1;..Spectru
00a0 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 mDisplayForm::SpectrumDisplayFor
00c0 6d 28 62 6f 6f 6c 20 75 73 65 4f 70 65 6e 47 4c 2c 20 51 57 69 64 67 65 74 2a 20 70 61 72 65 6e m(bool.useOpenGL,.QWidget*.paren
00e0 74 29 0a 20 20 3a 20 51 57 69 64 67 65 74 28 70 61 72 65 6e 74 29 0a 7b 0a 20 20 73 65 74 75 70 t)...:.QWidget(parent).{...setup
0100 55 69 28 74 68 69 73 29 3b 0a 0a 20 20 5f 75 73 65 4f 70 65 6e 47 4c 20 3d 20 75 73 65 4f 70 65 Ui(this);...._useOpenGL.=.useOpe
0120 6e 47 4c 3b 0a 20 20 5f 73 79 73 74 65 6d 53 70 65 63 69 66 69 65 64 46 6c 61 67 20 3d 20 66 61 nGL;..._systemSpecifiedFlag.=.fa
0140 6c 73 65 3b 0a 20 20 5f 69 6e 74 56 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 51 49 6e 74 56 lse;..._intValidator.=.new.QIntV
0160 61 6c 69 64 61 74 6f 72 28 74 68 69 73 29 3b 0a 20 20 5f 69 6e 74 56 61 6c 69 64 61 74 6f 72 2d alidator(this);..._intValidator-
0180 3e 73 65 74 42 6f 74 74 6f 6d 28 30 29 3b 0a 20 20 5f 66 72 65 71 75 65 6e 63 79 44 69 73 70 6c >setBottom(0);..._frequencyDispl
01a0 61 79 50 6c 6f 74 20 3d 20 6e 65 77 20 46 72 65 71 75 65 6e 63 79 44 69 73 70 6c 61 79 50 6c 6f ayPlot.=.new.FrequencyDisplayPlo
01c0 74 28 46 72 65 71 75 65 6e 63 79 50 6c 6f 74 44 69 73 70 6c 61 79 46 72 61 6d 65 29 3b 0a 20 20 t(FrequencyPlotDisplayFrame);...
01e0 5f 77 61 74 65 72 66 61 6c 6c 44 69 73 70 6c 61 79 50 6c 6f 74 20 3d 20 6e 65 77 20 57 61 74 65 _waterfallDisplayPlot.=.new.Wate
0200 72 66 61 6c 6c 44 69 73 70 6c 61 79 50 6c 6f 74 28 57 61 74 65 72 66 61 6c 6c 50 6c 6f 74 44 69 rfallDisplayPlot(WaterfallPlotDi
0220 73 70 6c 61 79 46 72 61 6d 65 00 29 3b 0a 0a 20 20 69 66 28 28 51 47 4c 46 6f 72 6d 61 74 3a 3a splayFrame.);....if((QGLFormat::
0240 68 61 73 4f 70 65 6e 47 4c 28 29 29 20 26 26 20 28 5f 75 73 65 4f 70 65 6e 47 4c 29 29 20 7b 0a hasOpenGL()).&&.(_useOpenGL)).{.
0260 20 20 20 20 5f 77 61 74 65 72 66 61 6c 6c 33 44 44 69 73 70 6c 61 79 50 6c 6f 74 20 3d 20 6e 65 ...._waterfall3DDisplayPlot.=.ne
0280 77 20 57 61 74 65 72 66 61 6c 6c 33 44 44 69 73 70 6c 61 79 50 6c 6f 74 28 57 61 74 65 72 66 61 w.Waterfall3DDisplayPlot(Waterfa
02a0 6c 6c 33 44 50 6c 6f 74 44 69 73 70 6c 61 79 46 72 61 6d 65 29 3b 0a 20 20 7d 0a 0a 20 20 5f 74 ll3DPlotDisplayFrame);...}...._t
02c0 69 6d 65 44 6f 6d 61 69 6e 44 69 73 70 6c 61 79 50 6c 6f 74 20 3d 20 6e 65 77 20 54 69 6d 65 44 imeDomainDisplayPlot.=.new.TimeD
02e0 6f 6d 61 69 6e 44 69 73 70 6c 61 79 50 6c 6f 74 28 54 69 6d 65 44 6f 6d 61 69 6e 44 69 73 70 6c omainDisplayPlot(TimeDomainDispl
0300 61 79 46 72 61 6d 65 29 3b 0a 20 20 5f 63 6f 6e 73 74 65 6c 6c 61 74 69 6f 6e 44 69 73 70 6c 61 ayFrame);..._constellationDispla
0320 79 50 6c 6f 74 20 3d 20 6e 65 77 20 43 6f 6e 73 74 65 6c 6c 61 74 69 6f 6e 44 69 73 70 6c 61 79 yPlot.=.new.ConstellationDisplay
0340 50 6c 6f 74 28 43 6f 6e 73 74 65 6c 6c 61 74 69 6f 6e 44 69 73 70 6c 61 79 46 72 61 6d 65 29 3b Plot(ConstellationDisplayFrame);
0360 0a 20 20 5f 6e 75 6d 52 65 61 6c 44 61 74 61 50 6f 69 6e 74 73 20 3d 20 31 30 32 34 3b 0a 20 20 ..._numRealDataPoints.=.1024;...
0380 5f 72 65 61 6c 46 46 54 44 61 74 61 50 6f 69 6e 74 73 20 3d 20 6e 65 77 20 64 6f 75 62 6c 65 5b _realFFTDataPoints.=.new.double[
03a0 5f 6e 75 6d 52 65 61 6c 44 61 74 61 50 6f 69 6e 74 73 5d 3b 0a 20 20 5f 61 76 65 72 61 67 65 64 _numRealDataPoints];..._averaged
03c0 56 61 6c 75 65 73 20 3d 20 6e 65 77 20 64 6f 75 62 6c 65 5b 5f 6e 75 6d 52 65 61 6c 44 61 74 61 Values.=.new.double[_numRealData
03e0 50 6f 69 6e 74 73 5d 3b 0a 20 20 5f 68 69 73 74 6f 72 79 56 65 63 74 6f 72 20 3d 20 6e 65 77 20 Points];..._historyVector.=.new.
0400 73 74 64 3a 3a 76 65 63 74 6f 72 3c 64 6f 75 62 6c 65 2a 3e 3b 0a 20 20 0a 20 20 41 76 67 4c 69 std::vector<double*>;......AvgLi
0420 6e 65 45 64 69 74 2d 3e 73 65 74 52 61 6e 67 65 28 30 2c 20 35 30 30 29 3b 20 20 20 20 20 20 20 neEdit->setRange(0,.500);.......
0440 20 20 20 20 20 20 20 20 20 20 2f 2f 20 53 65 74 20 72 61 6e 67 65 20 6f 66 20 41 76 65 72 61 67 ..........//.Set.range.of.Averag
0460 65 20 62 6f 78 20 76 61 6c 75 65 20 66 72 6f 6d 20 30 20 74 6f 20 35 30 30 0a 20 20 4d 69 6e 48 e.box.value.from.0.to.500...MinH
0480 6f 6c 64 43 68 65 63 6b 42 6f 78 5f 74 6f 67 67 6c 65 64 28 20 66 61 6c 73 65 20 29 3b 0a 20 20 oldCheckBox_toggled(.false.);...
04a0 4d 61 78 48 6f 6c 64 43 68 65 63 6b 42 6f 78 5f 74 6f 67 67 6c 65 64 28 20 66 61 6c 73 65 20 29 MaxHoldCheckBox_toggled(.false.)
04c0 3b 0a 20 20 0a 20 20 57 61 74 65 72 66 61 6c 6c 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 ;......WaterfallMaximumIntensity
04e0 57 68 65 65 6c 2d 3e 73 65 74 52 61 6e 67 65 28 2d 32 30 30 2c 20 30 29 3b 0a 20 20 57 61 74 65 Wheel->setRange(-200,.0);...Wate
0500 72 66 61 6c 6c 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 73 65 74 54 rfallMaximumIntensityWheel->setT
0520 69 63 6b 43 6e 74 28 35 30 29 3b 0a 20 20 57 61 74 65 72 66 61 6c 6c 4d 69 6e 69 6d 75 6d 49 6e ickCnt(50);...WaterfallMinimumIn
0540 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 73 65 74 52 61 6e 67 65 28 2d 32 30 30 2c 20 30 29 3b tensityWheel->setRange(-200,.0);
0560 0a 20 20 57 61 74 65 72 66 61 6c 6c 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 ...WaterfallMinimumIntensityWhee
0580 6c 2d 3e 73 65 74 54 69 63 6b 43 6e 74 28 35 30 29 3b 0a 20 20 57 61 74 65 72 66 61 6c 6c 4d 69 l->setTickCnt(50);...WaterfallMi
05a0 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 73 65 74 56 61 6c 75 65 28 2d 32 nimumIntensityWheel->setValue(-2
05c0 30 30 29 3b 0a 20 20 0a 20 20 69 66 28 28 51 47 4c 46 6f 72 6d 61 74 3a 3a 68 61 73 4f 70 65 6e 00);......if((QGLFormat::hasOpen
05e0 47 4c 28 29 29 20 26 26 20 28 5f 75 73 65 4f 70 65 6e 47 4c 29 29 20 7b 0a 20 20 20 20 57 61 74 GL()).&&.(_useOpenGL)).{.....Wat
0600 65 72 66 61 6c 6c 33 44 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 73 erfall3DMaximumIntensityWheel->s
0620 65 74 52 61 6e 67 65 28 2d 32 30 30 2c 20 30 29 3b 0a 20 20 20 20 57 61 74 65 72 66 61 6c 6c 33 etRange(-200,.0);.....Waterfall3
0640 44 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 73 65 74 54 69 63 6b 43 DMaximumIntensityWheel->setTickC
0660 6e 74 28 35 30 29 3b 0a 20 20 20 20 57 61 74 65 72 66 61 6c 6c 33 44 4d 69 6e 69 6d 75 6d 49 6e nt(50);.....Waterfall3DMinimumIn
0680 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 73 65 74 52 61 6e 67 65 28 2d 32 30 30 2c 20 30 29 3b tensityWheel->setRange(-200,.0);
06a0 0a 20 20 20 20 57 61 74 65 72 66 61 6c 6c 33 44 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 .....Waterfall3DMinimumIntensity
06c0 57 68 65 65 6c 2d 3e 73 65 74 54 69 63 6b 43 6e 74 28 35 30 29 3b 0a 20 20 20 20 57 61 74 65 72 Wheel->setTickCnt(50);.....Water
06e0 66 61 6c 6c 33 44 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 73 65 74 fall3DMinimumIntensityWheel->set
0700 56 61 6c 75 65 28 2d 32 30 30 29 3b 0a 20 20 7d 0a 0a 20 20 5f 70 65 61 6b 46 72 65 71 75 65 6e Value(-200);...}...._peakFrequen
0720 63 79 20 3d 20 30 3b 0a 20 20 5f 70 65 61 6b 41 6d 70 6c 69 74 75 64 65 20 3d 20 2d 48 55 47 45 cy.=.0;..._peakAmplitude.=.-HUGE
0740 5f 56 41 4c 3b 0a 20 20 0a 20 20 5f 6e 6f 69 73 65 46 6c 6f 6f 72 41 6d 70 6c 69 74 75 64 65 20 _VAL;......_noiseFloorAmplitude.
0760 3d 20 2d 48 55 47 45 5f 56 41 4c 3b 0a 0a 20 20 63 6f 6e 6e 65 63 74 28 5f 77 61 74 65 72 66 61 =.-HUGE_VAL;....connect(_waterfa
0780 6c 6c 44 69 73 70 6c 61 79 50 6c 6f 74 2c 20 53 49 47 4e 41 4c 28 55 70 64 61 74 65 64 4c 6f 77 llDisplayPlot,.SIGNAL(UpdatedLow
07a0 65 72 49 6e 74 65 6e 73 69 74 79 4c 65 76 65 6c 28 63 6f 6e 73 74 20 64 6f 75 62 6c 65 29 29 2c erIntensityLevel(const.double)),
07c0 20 0a 09 20 20 5f 66 72 65 71 75 65 6e 63 79 44 69 73 70 6c 61 79 50 6c 6f 74 2c 20 53 4c 4f 54 ....._frequencyDisplayPlot,.SLOT
07e0 28 53 65 74 4c 6f 77 65 72 49 6e 74 65 6e 73 69 74 79 4c 65 76 65 6c 28 63 6f 6e 73 74 20 64 6f (SetLowerIntensityLevel(const.do
0800 75 62 6c 65 29 29 29 3b 0a 20 20 63 6f 6e 6e 65 63 74 28 5f 77 61 74 65 72 66 61 6c 6c 44 69 73 uble)));...connect(_waterfallDis
0820 70 6c 61 79 50 6c 6f 74 2c 20 53 49 47 4e 41 4c 28 55 70 64 61 74 65 64 55 70 70 65 72 49 6e 74 playPlot,.SIGNAL(UpdatedUpperInt
0840 65 6e 73 69 74 79 4c 65 76 65 6c 28 63 6f 6e 73 74 20 64 6f 75 62 6c 65 29 29 2c 20 0a 09 20 20 ensityLevel(const.double)),.....
0860 5f 66 72 65 71 75 65 6e 63 79 44 69 73 70 6c 61 79 50 6c 6f 74 2c 20 53 4c 4f 54 28 53 65 74 55 _frequencyDisplayPlot,.SLOT(SetU
0880 70 70 65 72 49 6e 74 65 6e 73 69 74 79 4c 65 76 65 6c 28 63 6f 6e 73 74 20 64 6f 75 62 6c 65 29 pperIntensityLevel(const.double)
08a0 29 29 3b 0a 20 20 0a 20 20 5f 66 72 65 71 75 65 6e 63 79 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e ));......_frequencyDisplayPlot->
08c0 53 65 74 4c 6f 77 65 72 49 6e 74 65 6e 73 69 74 79 4c 65 76 65 6c 28 2d 32 30 30 29 3b 0a 20 20 SetLowerIntensityLevel(-200);...
08e0 5f 66 72 65 71 75 65 6e 63 79 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 53 65 74 55 70 70 65 72 49 _frequencyDisplayPlot->SetUpperI
0900 6e 74 65 6e 73 69 74 79 4c 65 76 65 6c 28 2d 32 30 30 29 3b 0a 0a 20 20 2f 2f 20 4c 6f 61 64 20 ntensityLevel(-200);....//.Load.
0920 75 70 20 74 68 65 20 61 63 63 65 70 74 61 62 6c 65 20 46 46 54 20 73 69 7a 65 73 2e 2e 2e 0a 20 up.the.acceptable.FFT.sizes.....
0940 20 46 46 54 53 69 7a 65 43 6f 6d 62 6f 42 6f 78 2d 3e 63 6c 65 61 72 28 29 3b 0a 20 20 66 6f 72 .FFTSizeComboBox->clear();...for
0960 28 6c 6f 6e 67 20 66 66 74 53 69 7a 65 20 3d 20 53 70 65 63 74 72 75 6d 47 55 49 43 6c 61 73 73 (long.fftSize.=.SpectrumGUIClass
0980 3a 3a 4d 49 4e 5f 46 46 54 5f 53 49 5a 45 3b 20 66 66 74 53 69 7a 65 20 3c 3d 20 53 70 65 63 74 ::MIN_FFT_SIZE;.fftSize.<=.Spect
09a0 72 75 6d 47 55 49 43 6c 61 73 73 3a 3a 4d 41 58 5f 46 46 54 5f 53 49 5a 45 3b 20 66 66 74 53 69 rumGUIClass::MAX_FFT_SIZE;.fftSi
09c0 7a 65 20 2a 3d 20 32 29 7b 0a 20 20 20 20 46 46 54 53 69 7a 65 43 6f 6d 62 6f 42 6f 78 2d 3e 69 ze.*=.2){.....FFTSizeComboBox->i
09e0 6e 73 65 72 74 49 74 65 6d 28 46 46 54 53 69 7a 65 43 6f 6d 62 6f 42 6f 78 2d 3e 63 6f 75 6e 74 nsertItem(FFTSizeComboBox->count
0a00 28 29 2c 20 51 53 74 72 69 6e 67 28 22 25 31 22 29 2e 61 72 67 28 66 66 74 53 69 7a 65 29 29 3b (),.QString("%1").arg(fftSize));
0a20 0a 20 20 7d 0a 20 20 52 65 73 65 74 28 29 3b 0a 0a 20 20 54 6f 67 67 6c 65 54 61 62 46 72 65 71 ...}...Reset();....ToggleTabFreq
0a40 75 65 6e 63 79 28 66 61 6c 73 65 29 3b 0a 20 20 54 6f 67 67 6c 65 54 61 62 57 61 74 65 72 66 61 uency(false);...ToggleTabWaterfa
0a60 6c 6c 28 66 61 6c 73 65 29 3b 0a 20 20 54 6f 67 67 6c 65 54 61 62 57 61 74 65 72 66 61 6c 6c 33 ll(false);...ToggleTabWaterfall3
0a80 44 28 66 61 6c 73 65 29 3b 0a 20 20 54 6f 67 67 6c 65 54 61 62 54 69 6d 65 28 66 61 6c 73 65 29 D(false);...ToggleTabTime(false)
0aa0 3b 0a 20 20 54 6f 67 67 6c 65 54 61 62 43 6f 6e 73 74 65 6c 6c 61 74 69 6f 6e 28 66 61 6c 73 65 ;...ToggleTabConstellation(false
0ac0 29 3b 0a 7d 0a 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 7e 53 70 65 63 );.}..SpectrumDisplayForm::~Spec
0ae0 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 28 29 0a 7b 0a 20 20 2f 2f 20 51 74 20 64 65 6c 65 trumDisplayForm().{...//.Qt.dele
0b00 74 65 73 20 63 68 69 6c 64 72 65 6e 20 77 68 65 6e 20 70 61 72 65 6e 74 20 69 73 20 64 65 6c 65 tes.children.when.parent.is.dele
0b20 74 65 64 0a 0a 20 20 2f 2f 20 44 6f 6e 27 74 20 77 6f 72 72 79 20 61 62 6f 75 74 20 64 65 6c 65 ted....//.Don't.worry.about.dele
0b40 74 69 6e 67 20 44 69 73 70 6c 61 79 20 50 6c 6f 74 73 20 2d 20 74 68 65 79 20 61 72 65 20 64 65 ting.Display.Plots.-.they.are.de
0b60 6c 65 74 65 64 20 77 68 65 6e 20 70 61 72 65 6e 74 73 20 61 72 65 20 64 65 6c 65 74 65 64 0a 20 leted.when.parents.are.deleted..
0b80 20 2f 2a 20 20 20 64 65 6c 65 74 65 20 5f 69 6e 74 56 61 6c 69 64 61 74 6f 72 3b 20 2a 2f 0a 0a ./*...delete._intValidator;.*/..
0ba0 20 20 64 65 6c 65 74 65 5b 5d 20 5f 72 65 61 6c 46 46 54 44 61 74 61 50 6f 69 6e 74 73 3b 0a 20 ..delete[]._realFFTDataPoints;..
0bc0 20 64 65 6c 65 74 65 5b 5d 20 5f 61 76 65 72 61 67 65 64 56 61 6c 75 65 73 3b 0a 0a 20 20 66 6f .delete[]._averagedValues;....fo
0be0 72 28 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 63 6f 75 6e 74 20 3d 20 30 3b 20 63 6f 75 6e 74 20 r(unsigned.int.count.=.0;.count.
0c00 3c 20 5f 68 69 73 74 6f 72 79 56 65 63 74 6f 72 2d 3e 73 69 7a 65 28 29 3b 20 63 6f 75 6e 74 2b <._historyVector->size();.count+
0c20 2b 29 7b 0a 20 20 20 20 64 65 6c 65 74 65 5b 5d 20 5f 68 69 73 74 6f 72 79 56 65 63 74 6f 72 2d +){.....delete[]._historyVector-
0c40 3e 6f 70 65 72 61 74 6f 72 5b 5d 28 63 6f 75 6e 74 29 3b 0a 20 20 7d 0a 0a 20 20 64 65 6c 65 74 >operator[](count);...}....delet
0c60 65 20 5f 68 69 73 74 6f 72 79 56 65 63 74 6f 72 3b 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 e._historyVector;.}..void.Spectr
0c80 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 73 65 74 53 79 73 74 65 6d 28 20 53 70 65 63 74 72 umDisplayForm::setSystem(.Spectr
0ca0 75 6d 47 55 49 43 6c 61 73 73 20 2a 20 6e 65 77 53 79 73 74 65 6d 2c 20 0a 09 09 09 09 63 6f 6e umGUIClass.*.newSystem,......con
0cc0 73 74 20 75 69 6e 74 36 34 5f 74 20 6e 75 6d 46 46 54 44 61 74 61 50 6f 69 6e 74 73 2c 20 0a 09 st.uint64_t.numFFTDataPoints,...
0ce0 09 09 09 63 6f 6e 73 74 20 75 69 6e 74 36 34 5f 74 20 6e 75 6d 54 69 6d 65 44 6f 6d 61 69 6e 44 ...const.uint64_t.numTimeDomainD
0d00 61 74 61 50 6f 69 6e 74 73 20 29 0a 7b 0a 20 20 52 65 73 69 7a 65 42 75 66 66 65 72 73 28 6e 75 ataPoints.).{...ResizeBuffers(nu
0d20 6d 46 46 54 44 61 74 61 50 6f 69 6e 74 73 2c 20 6e 75 6d 54 69 6d 65 44 6f 6d 61 69 6e 44 61 74 mFFTDataPoints,.numTimeDomainDat
0d40 61 50 6f 69 6e 74 73 29 3b 0a 20 20 0a 20 20 69 66 28 6e 65 77 53 79 73 74 65 6d 20 21 3d 20 4e aPoints);......if(newSystem.!=.N
0d60 55 4c 4c 29 7b 0a 20 20 20 20 5f 73 79 73 74 65 6d 20 3d 20 6e 65 77 53 79 73 74 65 6d 3b 0a 20 ULL){....._system.=.newSystem;..
0d80 20 20 20 5f 73 79 73 74 65 6d 53 70 65 63 69 66 69 65 64 46 6c 61 67 20 3d 20 74 72 75 65 3b 0a ..._systemSpecifiedFlag.=.true;.
0da0 20 20 7d 0a 20 20 65 6c 73 65 7b 0a 20 20 20 20 5f 73 79 73 74 65 6d 53 70 65 63 69 66 69 65 64 ..}...else{....._systemSpecified
0dc0 46 6c 61 67 20 3d 20 66 61 6c 73 65 3b 0a 20 20 7d 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 Flag.=.false;...}.}..void.Spectr
0de0 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 6e 65 77 46 72 65 71 75 65 6e 63 79 44 61 74 61 28 umDisplayForm::newFrequencyData(
0e00 20 63 6f 6e 73 74 20 53 70 65 63 74 72 75 6d 55 70 64 61 74 65 45 76 65 6e 74 2a 20 73 70 65 63 .const.SpectrumUpdateEvent*.spec
0e20 74 72 75 6d 55 70 64 61 74 65 45 76 65 6e 74 29 0a 7b 0a 20 20 2f 2f 70 72 69 6e 74 66 28 22 50 trumUpdateEvent).{...//printf("P
0e40 61 72 65 6e 74 20 57 69 64 74 68 3a 20 25 64 20 20 48 65 69 67 68 74 3a 20 25 64 5c 6e 22 2c 20 arent.Width:.%d..Height:.%d\n",.
0e60 77 69 64 74 68 28 29 2c 20 68 65 69 67 68 74 28 29 29 3b 0a 20 20 2f 2f 70 72 69 6e 74 66 28 22 width(),.height());...//printf("
0e80 46 72 65 71 75 65 6e 63 79 20 46 72 61 6d 65 20 57 69 64 74 68 3a 20 25 64 20 20 48 65 69 67 68 Frequency.Frame.Width:.%d..Heigh
0ea0 74 3a 20 25 64 5c 6e 22 2c 20 46 72 65 71 75 65 6e 63 79 50 6c 6f 74 44 69 73 70 6c 61 79 46 72 t:.%d\n",.FrequencyPlotDisplayFr
0ec0 61 6d 65 2d 3e 77 69 64 74 68 28 29 2c 20 46 72 65 71 75 65 6e 63 79 50 6c 6f 74 44 69 73 70 6c ame->width(),.FrequencyPlotDispl
0ee0 61 79 46 72 61 6d 65 2d 3e 68 65 69 67 68 74 28 29 29 3b 0a 20 20 2f 2f 70 72 69 6e 74 66 28 22 ayFrame->height());...//printf("
0f00 46 72 65 71 75 65 6e 63 79 20 50 6c 6f 74 20 57 69 64 74 68 3a 20 25 64 20 20 48 65 69 67 68 74 Frequency.Plot.Width:.%d..Height
0f20 3a 20 25 64 5c 6e 22 2c 20 5f 66 72 65 71 75 65 6e 63 79 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e :.%d\n",._frequencyDisplayPlot->
0f40 77 69 64 74 68 28 29 2c 20 5f 66 72 65 71 75 65 6e 63 79 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e width(),._frequencyDisplayPlot->
0f60 68 65 69 67 68 74 28 29 29 3b 0a 0a 0a 20 20 2f 2f 5f 6c 61 73 74 53 70 65 63 74 72 75 6d 45 76 height());.....//_lastSpectrumEv
0f80 65 6e 74 20 3d 20 28 53 70 65 63 74 72 75 6d 55 70 64 61 74 65 45 76 65 6e 74 29 28 2a 73 70 65 ent.=.(SpectrumUpdateEvent)(*spe
0fa0 63 74 72 75 6d 55 70 64 61 74 65 45 76 65 6e 74 29 3b 0a 20 20 63 6f 6e 73 74 20 73 74 64 3a 3a ctrumUpdateEvent);...const.std::
0fc0 63 6f 6d 70 6c 65 78 3c 66 6c 6f 61 74 3e 2a 20 63 6f 6d 70 6c 65 78 44 61 74 61 50 6f 69 6e 74 complex<float>*.complexDataPoint
0fe0 73 20 3d 20 73 70 65 63 74 72 75 6d 55 70 64 61 74 65 45 76 65 6e 74 2d 3e 67 65 74 46 46 54 50 s.=.spectrumUpdateEvent->getFFTP
1000 6f 69 6e 74 73 28 29 3b 0a 20 20 63 6f 6e 73 74 20 75 69 6e 74 36 34 5f 74 20 6e 75 6d 46 46 54 oints();...const.uint64_t.numFFT
1020 44 61 74 61 50 6f 69 6e 74 73 20 3d 20 73 70 65 63 74 72 75 6d 55 70 64 61 74 65 45 76 65 6e 74 DataPoints.=.spectrumUpdateEvent
1040 2d 3e 67 65 74 4e 75 6d 46 46 54 44 61 74 61 50 6f 69 6e 74 73 28 29 3b 0a 20 20 63 6f 6e 73 74 ->getNumFFTDataPoints();...const
1060 20 64 6f 75 62 6c 65 2a 20 72 65 61 6c 54 69 6d 65 44 6f 6d 61 69 6e 44 61 74 61 50 6f 69 6e 74 .double*.realTimeDomainDataPoint
1080 73 20 3d 20 73 70 65 63 74 72 75 6d 55 70 64 61 74 65 45 76 65 6e 74 2d 3e 67 65 74 52 65 61 6c s.=.spectrumUpdateEvent->getReal
10a0 54 69 6d 65 44 6f 6d 61 69 6e 50 6f 69 6e 74 73 28 29 3b 0a 20 20 63 6f 6e 73 74 20 64 6f 75 62 TimeDomainPoints();...const.doub
10c0 6c 65 2a 20 69 6d 61 67 54 69 6d 65 44 6f 6d 61 69 6e 44 61 74 61 50 6f 69 6e 74 73 20 3d 20 73 le*.imagTimeDomainDataPoints.=.s
10e0 70 65 63 74 72 75 6d 55 70 64 61 74 65 45 76 65 6e 74 2d 3e 67 65 74 49 6d 61 67 54 69 6d 65 44 pectrumUpdateEvent->getImagTimeD
1100 6f 6d 61 69 6e 50 6f 69 6e 74 73 28 29 3b 0a 20 20 63 6f 6e 73 74 20 75 69 6e 74 36 34 5f 74 20 omainPoints();...const.uint64_t.
1120 6e 75 6d 54 69 6d 65 44 6f 6d 61 69 6e 44 61 74 61 50 6f 69 6e 74 73 20 3d 20 73 70 65 63 74 72 numTimeDomainDataPoints.=.spectr
1140 75 6d 55 70 64 61 74 65 45 76 65 6e 74 2d 3e 67 65 74 4e 75 6d 54 69 6d 65 44 6f 6d 61 69 6e 44 umUpdateEvent->getNumTimeDomainD
1160 61 74 61 50 6f 69 6e 74 73 28 29 3b 0a 20 20 63 6f 6e 73 74 20 64 6f 75 62 6c 65 20 74 69 6d 65 ataPoints();...const.double.time
1180 50 65 72 46 46 54 20 3d 20 73 70 65 63 74 72 75 6d 55 70 64 61 74 65 45 76 65 6e 74 2d 3e 67 65 PerFFT.=.spectrumUpdateEvent->ge
11a0 74 54 69 6d 65 50 65 72 46 46 54 28 29 3b 0a 20 20 63 6f 6e 73 74 20 74 69 6d 65 73 70 65 63 20 tTimePerFFT();...const.timespec.
11c0 64 61 74 61 54 69 6d 65 73 74 61 6d 70 20 3d 20 73 70 65 63 74 72 75 6d 55 70 64 61 74 65 45 76 dataTimestamp.=.spectrumUpdateEv
11e0 65 6e 74 2d 3e 67 65 74 44 61 74 61 54 69 6d 65 73 74 61 6d 70 28 29 3b 3b 0a 20 20 63 6f 6e 73 ent->getDataTimestamp();;...cons
1200 74 20 62 6f 6f 6c 20 72 65 70 65 61 74 44 61 74 61 46 6c 61 67 20 3d 20 73 70 65 63 74 72 75 6d t.bool.repeatDataFlag.=.spectrum
1220 55 70 64 61 74 65 45 76 65 6e 74 2d 3e 67 65 74 52 65 70 65 61 74 44 61 74 61 46 6c 61 67 28 29 UpdateEvent->getRepeatDataFlag()
1240 3b 0a 20 20 63 6f 6e 73 74 20 62 6f 6f 6c 20 6c 61 73 74 4f 66 4d 75 6c 74 69 70 6c 65 55 70 64 ;...const.bool.lastOfMultipleUpd
1260 61 74 65 73 46 6c 61 67 20 3d 20 73 70 65 63 74 72 75 6d 55 70 64 61 74 65 45 76 65 6e 74 2d 3e atesFlag.=.spectrumUpdateEvent->
1280 67 65 74 4c 61 73 74 4f 66 4d 75 6c 74 69 70 6c 65 55 70 64 61 74 65 46 6c 61 67 28 29 3b 0a 20 getLastOfMultipleUpdateFlag();..
12a0 20 63 6f 6e 73 74 20 74 69 6d 65 73 70 65 63 20 67 65 6e 65 72 61 74 65 64 54 69 6d 65 73 74 61 .const.timespec.generatedTimesta
12c0 6d 70 20 3d 20 73 70 65 63 74 72 75 6d 55 70 64 61 74 65 45 76 65 6e 74 2d 3e 67 65 74 45 76 65 mp.=.spectrumUpdateEvent->getEve
12e0 6e 74 47 65 6e 65 72 61 74 65 64 54 69 6d 65 73 74 61 6d 70 28 29 3b 0a 0a 20 20 2f 2f 20 52 45 ntGeneratedTimestamp();....//.RE
1300 4d 45 4d 42 45 52 3a 20 54 68 65 20 64 61 74 61 54 69 6d 65 73 74 61 6d 70 20 69 73 20 4e 4f 54 MEMBER:.The.dataTimestamp.is.NOT
1320 20 76 61 6c 69 64 20 77 68 65 6e 20 74 68 65 20 72 65 70 65 61 74 20 64 61 74 61 20 66 6c 61 67 .valid.when.the.repeat.data.flag
1340 20 69 73 20 74 72 75 65 2e 2e 2e 0a 20 20 52 65 73 69 7a 65 42 75 66 66 65 72 73 28 6e 75 6d 46 .is.true......ResizeBuffers(numF
1360 46 54 44 61 74 61 50 6f 69 6e 74 73 2c 20 6e 75 6d 54 69 6d 65 44 6f 6d 61 69 6e 44 61 74 61 50 FTDataPoints,.numTimeDomainDataP
1380 6f 69 6e 74 73 29 3b 0a 0a 20 20 2f 2f 20 43 61 6c 63 75 6c 61 74 65 20 74 68 65 20 4d 61 67 6e oints);....//.Calculate.the.Magn
13a0 69 74 75 64 65 20 6f 66 20 74 68 65 20 63 6f 6d 70 6c 65 78 20 70 6f 69 6e 74 0a 20 20 63 6f 6e itude.of.the.complex.point...con
13c0 73 74 20 73 74 64 3a 3a 63 6f 6d 70 6c 65 78 3c 66 6c 6f 61 74 3e 2a 20 63 6f 6d 70 6c 65 78 44 st.std::complex<float>*.complexD
13e0 61 74 61 50 6f 69 6e 74 73 50 74 72 20 3d 20 63 6f 6d 70 6c 65 78 44 61 74 61 50 6f 69 6e 74 73 ataPointsPtr.=.complexDataPoints
1400 2b 6e 75 6d 46 46 54 44 61 74 61 50 6f 69 6e 74 73 2f 32 3b 0a 20 20 64 6f 75 62 6c 65 2a 20 72 +numFFTDataPoints/2;...double*.r
1420 65 61 6c 46 46 54 44 61 74 61 50 6f 69 6e 74 73 50 74 72 20 3d 20 5f 72 65 61 6c 46 46 54 44 61 ealFFTDataPointsPtr.=._realFFTDa
1440 74 61 50 6f 69 6e 74 73 3b 0a 0a 20 20 2f 2f 20 52 75 6e 20 74 68 69 73 20 74 77 69 63 65 20 74 taPoints;....//.Run.this.twice.t
1460 6f 20 70 65 72 66 6f 72 6d 20 74 68 65 20 66 66 74 73 68 69 66 74 20 6f 70 65 72 61 74 69 6f 6e o.perform.the.fftshift.operation
1480 20 6f 6e 20 74 68 65 20 64 61 74 61 20 68 65 72 65 20 61 73 20 77 65 6c 6c 0a 20 20 66 6f 72 28 .on.the.data.here.as.well...for(
14a0 75 69 6e 74 36 34 5f 74 20 70 6f 69 6e 74 20 3d 20 30 3b 20 70 6f 69 6e 74 20 3c 20 6e 75 6d 46 uint64_t.point.=.0;.point.<.numF
14c0 46 54 44 61 74 61 50 6f 69 6e 74 73 2f 32 3b 20 70 6f 69 6e 74 2b 2b 29 7b 0a 20 20 20 20 2f 2f FTDataPoints/2;.point++){.....//
14e0 20 43 61 6c 63 75 6c 61 74 65 20 64 42 6d 0a 20 20 20 20 2f 2f 20 35 30 20 6f 68 6d 20 6c 6f 61 .Calculate.dBm.....//.50.ohm.loa
1500 64 20 61 73 73 75 6d 70 74 69 6f 6e 0a 20 20 20 20 2f 2f 20 31 30 20 2a 20 6c 6f 67 31 30 20 28 d.assumption.....//.10.*.log10.(
1520 76 5e 32 20 2f 20 28 32 20 2a 20 35 30 2e 30 20 2a 20 2e 30 30 31 29 29 20 3d 20 31 30 20 2a 20 v^2./.(2.*.50.0.*..001)).=.10.*.
1540 6c 6f 67 31 30 28 20 76 5e 32 20 2a 20 31 30 29 0a 20 20 20 20 2f 2f 20 37 35 20 6f 68 6d 20 6c log10(.v^2.*.10).....//.75.ohm.l
1560 6f 61 64 20 61 73 73 75 6d 70 74 69 6f 6e 0a 20 20 20 20 2f 2f 20 31 30 20 2a 20 6c 6f 67 31 30 oad.assumption.....//.10.*.log10
1580 20 28 76 5e 32 20 2f 20 28 32 20 2a 20 37 35 2e 30 20 2a 20 2e 30 30 31 29 29 20 3d 20 31 30 20 .(v^2./.(2.*.75.0.*..001)).=.10.
15a0 2a 20 6c 6f 67 31 30 28 20 76 5e 32 20 2a 20 31 35 29 0a 0a 20 20 20 20 2f 2f 20 70 65 72 66 6f *.log10(.v^2.*.15)......//.perfo
15c0 72 6d 20 73 63 61 6c 69 6e 67 20 68 65 72 65 0a 20 20 20 20 73 74 64 3a 3a 63 6f 6d 70 6c 65 78 rm.scaling.here.....std::complex
15e0 3c 66 6c 6f 61 74 3e 20 70 74 20 3d 20 28 2a 63 6f 6d 70 6c 65 78 44 61 74 61 50 6f 69 6e 74 73 <float>.pt.=.(*complexDataPoints
1600 50 74 72 29 20 2f 20 73 74 64 3a 3a 63 6f 6d 70 6c 65 78 3c 66 6c 6f 61 74 3e 28 28 66 6c 6f 61 Ptr)./.std::complex<float>((floa
1620 74 29 6e 75 6d 46 46 54 44 61 74 61 50 6f 69 6e 74 73 29 3b 0a 20 20 20 20 2a 72 65 61 6c 46 46 t)numFFTDataPoints);.....*realFF
1640 54 44 61 74 61 50 6f 69 6e 74 73 50 74 72 20 3d 20 31 30 2e 30 2a 6c 6f 67 31 30 28 28 70 74 2e TDataPointsPtr.=.10.0*log10((pt.
1660 72 65 61 6c 28 29 20 2a 20 70 74 2e 72 65 61 6c 28 29 20 2b 20 70 74 2e 69 6d 61 67 28 29 2a 70 real().*.pt.real().+.pt.imag()*p
1680 74 2e 69 6d 61 67 28 29 29 20 2b 20 31 65 2d 32 30 29 3b 0a 0a 20 20 20 20 63 6f 6d 70 6c 65 78 t.imag()).+.1e-20);......complex
16a0 44 61 74 61 50 6f 69 6e 74 73 50 74 72 2b 2b 3b 0a 20 20 20 20 72 65 61 6c 46 46 54 44 61 74 61 DataPointsPtr++;.....realFFTData
16c0 50 6f 69 6e 74 73 50 74 72 2b 2b 3b 0a 20 20 7d 0a 20 20 0a 20 20 2f 2f 20 54 68 69 73 20 6c 6f PointsPtr++;...}......//.This.lo
16e0 6f 70 20 74 61 6b 65 73 20 74 68 65 20 66 69 72 73 74 20 68 61 6c 66 20 6f 66 20 74 68 65 20 69 op.takes.the.first.half.of.the.i
1700 6e 70 75 74 20 64 61 74 61 20 61 6e 64 20 70 75 74 73 20 69 74 20 69 6e 20 74 68 65 20 73 65 63 nput.data.and.puts.it.in.the.sec
1720 6f 6e 64 20 68 61 6c 66 20 6f 66 20 74 68 65 20 70 6c 6f 74 74 65 64 20 64 61 74 61 0a 20 20 63 ond.half.of.the.plotted.data...c
1740 6f 6d 70 6c 65 78 44 61 74 61 50 6f 69 6e 74 73 50 74 72 20 3d 20 63 6f 6d 70 6c 65 78 44 61 74 omplexDataPointsPtr.=.complexDat
1760 61 50 6f 69 6e 74 73 3b 0a 20 20 66 6f 72 28 75 69 6e 74 36 34 5f 74 20 70 6f 69 6e 74 20 3d 20 aPoints;...for(uint64_t.point.=.
1780 30 3b 20 70 6f 69 6e 74 20 3c 20 6e 75 6d 46 46 54 44 61 74 61 50 6f 69 6e 74 73 2f 32 3b 20 70 0;.point.<.numFFTDataPoints/2;.p
17a0 6f 69 6e 74 2b 2b 29 7b 0a 20 20 20 20 73 74 64 3a 3a 63 6f 6d 70 6c 65 78 3c 66 6c 6f 61 74 3e oint++){.....std::complex<float>
17c0 20 70 74 20 3d 20 28 2a 63 6f 6d 70 6c 65 78 44 61 74 61 50 6f 69 6e 74 73 50 74 72 29 20 2f 20 .pt.=.(*complexDataPointsPtr)./.
17e0 73 74 64 3a 3a 63 6f 6d 70 6c 65 78 3c 66 6c 6f 61 74 3e 28 28 66 6c 6f 61 74 29 6e 75 6d 46 46 std::complex<float>((float)numFF
1800 54 44 61 74 61 50 6f 69 6e 74 73 29 3b 0a 20 20 20 20 2a 72 65 61 6c 46 46 54 44 61 74 61 50 6f TDataPoints);.....*realFFTDataPo
1820 69 6e 74 73 50 74 72 20 3d 20 31 30 2e 30 2a 6c 6f 67 31 30 28 28 70 74 2e 72 65 61 6c 28 29 20 intsPtr.=.10.0*log10((pt.real().
1840 2a 20 70 74 2e 72 65 61 6c 28 29 20 2b 20 70 74 2e 69 6d 61 67 28 29 2a 70 74 2e 69 6d 61 67 28 *.pt.real().+.pt.imag()*pt.imag(
1860 29 29 20 2b 20 31 65 2d 32 30 29 3b 0a 0a 20 20 20 20 63 6f 6d 70 6c 65 78 44 61 74 61 50 6f 69 )).+.1e-20);......complexDataPoi
1880 6e 74 73 50 74 72 2b 2b 3b 0a 20 20 20 20 72 65 61 6c 46 46 54 44 61 74 61 50 6f 69 6e 74 73 50 ntsPtr++;.....realFFTDataPointsP
18a0 74 72 2b 2b 3b 0a 20 20 7d 0a 0a 20 20 2f 2f 20 44 6f 6e 27 74 20 75 70 64 61 74 65 20 74 68 65 tr++;...}....//.Don't.update.the
18c0 20 61 76 65 72 61 67 69 6e 67 20 68 69 73 74 6f 72 79 20 69 66 20 74 68 69 73 20 69 73 20 72 65 .averaging.history.if.this.is.re
18e0 70 65 61 74 65 64 20 64 61 74 61 0a 20 20 69 66 28 21 72 65 70 65 61 74 44 61 74 61 46 6c 61 67 peated.data...if(!repeatDataFlag
1900 29 7b 0a 20 20 20 20 5f 41 76 65 72 61 67 65 48 69 73 74 6f 72 79 28 5f 72 65 61 6c 46 46 54 44 ){....._AverageHistory(_realFFTD
1920 61 74 61 50 6f 69 6e 74 73 29 3b 0a 0a 20 20 20 20 64 6f 75 62 6c 65 20 73 75 6d 4d 65 61 6e 3b ataPoints);......double.sumMean;
1940 0a 20 20 20 20 63 6f 6e 73 74 20 64 6f 75 62 6c 65 20 66 66 74 5f 62 69 6e 5f 73 69 7a 65 20 3d .....const.double.fft_bin_size.=
1960 20 28 5f 73 74 6f 70 46 72 65 71 75 65 6e 63 79 2d 5f 73 74 61 72 74 46 72 65 71 75 65 6e 63 79 .(_stopFrequency-_startFrequency
1980 29 20 2f 0a 20 20 20 20 20 20 73 74 61 74 69 63 5f 63 61 73 74 3c 64 6f 75 62 6c 65 3e 28 6e 75 )./.......static_cast<double>(nu
19a0 6d 46 46 54 44 61 74 61 50 6f 69 6e 74 73 29 3b 0a 0a 20 20 20 20 2f 2f 20 66 69 6e 64 20 74 68 mFFTDataPoints);......//.find.th
19c0 65 20 70 65 61 6b 2c 20 73 75 6d 20 28 66 6f 72 20 6d 65 61 6e 29 2c 20 65 74 63 0a 20 20 20 20 e.peak,.sum.(for.mean),.etc.....
19e0 5f 70 65 61 6b 41 6d 70 6c 69 74 75 64 65 20 3d 20 2d 48 55 47 45 5f 56 41 4c 3b 0a 20 20 20 20 _peakAmplitude.=.-HUGE_VAL;.....
1a00 73 75 6d 4d 65 61 6e 20 3d 20 30 2e 30 3b 0a 20 20 20 20 66 6f 72 28 75 69 6e 74 36 34 5f 74 20 sumMean.=.0.0;.....for(uint64_t.
1a20 6e 75 6d 62 65 72 20 3d 20 30 3b 20 6e 75 6d 62 65 72 20 3c 20 6e 75 6d 46 46 54 44 61 74 61 50 number.=.0;.number.<.numFFTDataP
1a40 6f 69 6e 74 73 3b 20 6e 75 6d 62 65 72 2b 2b 29 7b 0a 20 20 20 20 20 20 2f 2f 20 66 69 6e 64 20 oints;.number++){.......//.find.
1a60 70 65 61 6b 0a 20 20 20 20 20 20 69 66 28 5f 72 65 61 6c 46 46 54 44 61 74 61 50 6f 69 6e 74 73 peak.......if(_realFFTDataPoints
1a80 5b 6e 75 6d 62 65 72 5d 20 3e 20 5f 70 65 61 6b 41 6d 70 6c 69 74 75 64 65 29 7b 0a 09 2f 2f 20 [number].>._peakAmplitude){..//.
1aa0 43 61 6c 63 75 6c 61 74 65 20 74 68 65 20 66 72 65 71 75 65 6e 63 79 20 72 65 6c 61 74 69 76 65 Calculate.the.frequency.relative
1ac0 20 74 6f 20 74 68 65 20 6c 6f 63 61 6c 20 62 77 2c 20 61 64 6a 75 73 74 20 66 6f 72 20 5f 73 74 .to.the.local.bw,.adjust.for._st
1ae0 61 72 74 46 72 65 71 75 65 6e 63 79 20 6c 61 74 65 72 0a 20 20 20 20 20 20 20 20 5f 70 65 61 6b artFrequency.later........._peak
1b00 46 72 65 71 75 65 6e 63 79 20 3d 20 28 73 74 61 74 69 63 5f 63 61 73 74 3c 66 6c 6f 61 74 3e 28 Frequency.=.(static_cast<float>(
1b20 6e 75 6d 62 65 72 29 20 2a 20 66 66 74 5f 62 69 6e 5f 73 69 7a 65 29 3b 0a 20 20 20 20 20 20 20 number).*.fft_bin_size);........
1b40 20 5f 70 65 61 6b 41 6d 70 6c 69 74 75 64 65 20 3d 20 5f 72 65 61 6c 46 46 54 44 61 74 61 50 6f ._peakAmplitude.=._realFFTDataPo
1b60 69 6e 74 73 5b 6e 75 6d 62 65 72 5d 3b 0a 20 20 20 20 20 20 20 20 2f 2f 20 5f 70 65 61 6b 42 69 ints[number];.........//._peakBi
1b80 6e 20 3d 20 6e 75 6d 62 65 72 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 2f 2f 20 73 75 6d n.=.number;.......}.......//.sum
1ba0 20 28 66 6f 72 20 6d 65 61 6e 29 0a 20 20 20 20 20 20 73 75 6d 4d 65 61 6e 20 2b 3d 20 5f 72 65 .(for.mean).......sumMean.+=._re
1bc0 61 6c 46 46 54 44 61 74 61 50 6f 69 6e 74 73 5b 6e 75 6d 62 65 72 5d 3b 0a 20 20 20 20 7d 0a 0a alFFTDataPoints[number];.....}..
1be0 20 20 20 20 2f 2f 20 63 61 6c 63 75 6c 61 74 65 20 74 68 65 20 73 70 65 63 74 72 61 6c 20 6d 65 ....//.calculate.the.spectral.me
1c00 61 6e 0a 20 20 20 20 2f 2f 20 2b 32 30 20 62 65 63 61 75 73 65 20 66 6f 72 20 74 68 65 20 63 6f an.....//.+20.because.for.the.co
1c20 6d 70 61 72 69 73 6f 6e 20 62 65 6c 6f 77 20 77 65 20 6f 6e 6c 79 20 77 61 6e 74 20 74 6f 20 74 mparison.below.we.only.want.to.t
1c40 68 72 6f 77 20 6f 75 74 20 62 69 6e 73 0a 20 20 20 20 2f 2f 20 74 68 61 74 20 61 72 65 20 73 69 hrow.out.bins.....//.that.are.si
1c60 67 6e 69 66 69 63 61 6e 74 6c 79 20 68 69 67 68 65 72 20 28 61 6e 64 20 77 6f 75 6c 64 2c 20 74 gnificantly.higher.(and.would,.t
1c80 68 75 73 2c 20 61 66 66 65 63 74 20 74 68 65 20 6d 65 61 6e 20 6d 6f 72 65 29 0a 20 20 20 20 63 hus,.affect.the.mean.more).....c
1ca0 6f 6e 73 74 20 64 6f 75 62 6c 65 20 6d 65 61 6e 41 6d 70 6c 69 74 75 64 65 20 3d 20 28 73 75 6d onst.double.meanAmplitude.=.(sum
1cc0 4d 65 61 6e 20 2f 20 6e 75 6d 46 46 54 44 61 74 61 50 6f 69 6e 74 73 29 20 2b 20 32 30 2e 30 3b Mean./.numFFTDataPoints).+.20.0;
1ce0 0a 0a 20 20 20 20 2f 2f 20 6e 6f 77 20 74 68 72 6f 77 20 6f 75 74 20 61 6e 79 20 62 69 6e 73 20 ......//.now.throw.out.any.bins.
1d00 68 69 67 68 65 72 20 74 68 61 6e 20 74 68 65 20 6d 65 61 6e 0a 20 20 20 20 73 75 6d 4d 65 61 6e higher.than.the.mean.....sumMean
1d20 20 3d 20 30 2e 30 3b 0a 20 20 20 20 75 69 6e 74 36 34 5f 74 20 6e 65 77 4e 75 6d 44 61 74 61 50 .=.0.0;.....uint64_t.newNumDataP
1d40 6f 69 6e 74 73 20 3d 20 6e 75 6d 46 46 54 44 61 74 61 50 6f 69 6e 74 73 3b 0a 20 20 20 20 66 6f oints.=.numFFTDataPoints;.....fo
1d60 72 28 75 69 6e 74 36 34 5f 74 20 6e 75 6d 62 65 72 20 3d 20 30 3b 20 6e 75 6d 62 65 72 20 3c 20 r(uint64_t.number.=.0;.number.<.
1d80 6e 75 6d 46 46 54 44 61 74 61 50 6f 69 6e 74 73 3b 20 6e 75 6d 62 65 72 2b 2b 29 7b 0a 20 20 20 numFFTDataPoints;.number++){....
1da0 20 20 20 69 66 20 28 5f 72 65 61 6c 46 46 54 44 61 74 61 50 6f 69 6e 74 73 5b 6e 75 6d 62 65 72 ...if.(_realFFTDataPoints[number
1dc0 5d 20 3c 3d 20 6d 65 61 6e 41 6d 70 6c 69 74 75 64 65 29 0a 20 20 20 20 20 20 20 20 73 75 6d 4d ].<=.meanAmplitude).........sumM
1de0 65 61 6e 20 2b 3d 20 5f 72 65 61 6c 46 46 54 44 61 74 61 50 6f 69 6e 74 73 5b 6e 75 6d 62 65 72 ean.+=._realFFTDataPoints[number
1e00 5d 3b 0a 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 6e 65 77 4e 75 6d 44 61 74 61 ];.......else.........newNumData
1e20 50 6f 69 6e 74 73 2d 2d 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 69 66 20 28 6e 65 77 4e 75 6d 44 Points--;.....}......if.(newNumD
1e40 61 74 61 50 6f 69 6e 74 73 20 3d 3d 20 30 29 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 69 ataPoints.==.0).............//.i
1e60 6e 20 74 68 65 20 6f 64 64 20 63 61 73 65 20 74 68 61 74 20 61 6c 6c 0a 20 20 20 20 20 20 5f 6e n.the.odd.case.that.all......._n
1e80 6f 69 73 65 46 6c 6f 6f 72 41 6d 70 6c 69 74 75 64 65 20 3d 20 6d 65 61 6e 41 6d 70 6c 69 74 75 oiseFloorAmplitude.=.meanAmplitu
1ea0 64 65 3b 20 2f 2f 20 61 6d 70 6c 69 74 75 64 65 73 20 61 72 65 20 65 71 75 61 6c 21 0a 20 20 20 de;.//.amplitudes.are.equal!....
1ec0 20 65 6c 73 65 0a 20 20 20 20 20 20 5f 6e 6f 69 73 65 46 6c 6f 6f 72 41 6d 70 6c 69 74 75 64 65 .else......._noiseFloorAmplitude
1ee0 20 3d 20 73 75 6d 4d 65 61 6e 20 2f 20 6e 65 77 4e 75 6d 44 61 74 61 50 6f 69 6e 74 73 3b 0a 20 .=.sumMean./.newNumDataPoints;..
1f00 20 7d 0a 0a 20 20 69 66 28 6c 61 73 74 4f 66 4d 75 6c 74 69 70 6c 65 55 70 64 61 74 65 73 46 6c .}....if(lastOfMultipleUpdatesFl
1f20 61 67 29 7b 0a 20 20 20 20 69 6e 74 20 74 61 62 69 6e 64 65 78 20 3d 20 53 70 65 63 74 72 75 6d ag){.....int.tabindex.=.Spectrum
1f40 54 79 70 65 54 61 62 2d 3e 63 75 72 72 65 6e 74 49 6e 64 65 78 28 29 3b 0a 20 20 20 20 69 66 28 TypeTab->currentIndex();.....if(
1f60 74 61 62 69 6e 64 65 78 20 3d 3d 20 64 5f 70 6c 6f 74 5f 66 66 74 29 20 7b 0a 20 20 20 20 20 20 tabindex.==.d_plot_fft).{.......
1f80 5f 66 72 65 71 75 65 6e 63 79 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 50 6c 6f 74 4e 65 77 44 61 _frequencyDisplayPlot->PlotNewDa
1fa0 74 61 28 5f 61 76 65 72 61 67 65 64 56 61 6c 75 65 73 2c 20 6e 75 6d 46 46 54 44 61 74 61 50 6f ta(_averagedValues,.numFFTDataPo
1fc0 69 6e 74 73 2c 20 0a 09 09 09 09 09 20 5f 6e 6f 69 73 65 46 6c 6f 6f 72 41 6d 70 6c 69 74 75 64 ints,........_noiseFloorAmplitud
1fe0 65 2c 20 5f 70 65 61 6b 46 72 65 71 75 65 6e 63 79 2c 20 0a 09 09 09 09 09 20 5f 70 65 61 6b 41 e,._peakFrequency,........_peakA
2000 6d 70 6c 69 74 75 64 65 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 28 74 61 62 69 6e 64 65 78 mplitude);.....}.....if(tabindex
2020 20 3d 3d 20 64 5f 70 6c 6f 74 5f 74 69 6d 65 29 20 7b 0a 20 20 20 20 20 20 5f 74 69 6d 65 44 6f .==.d_plot_time).{......._timeDo
2040 6d 61 69 6e 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 50 6c 6f 74 4e 65 77 44 61 74 61 28 72 65 61 mainDisplayPlot->PlotNewData(rea
2060 6c 54 69 6d 65 44 6f 6d 61 69 6e 44 61 74 61 50 6f 69 6e 74 73 2c 20 0a 09 09 09 09 09 20 20 69 lTimeDomainDataPoints,.........i
2080 6d 61 67 54 69 6d 65 44 6f 6d 61 69 6e 44 61 74 61 50 6f 69 6e 74 73 2c 20 0a 09 09 09 09 09 20 magTimeDomainDataPoints,........
20a0 20 6e 75 6d 54 69 6d 65 44 6f 6d 61 69 6e 44 61 74 61 50 6f 69 6e 74 73 29 3b 0a 20 20 20 20 7d .numTimeDomainDataPoints);.....}
20c0 0a 20 20 20 20 69 66 28 74 61 62 69 6e 64 65 78 20 3d 3d 20 64 5f 70 6c 6f 74 5f 63 6f 6e 73 74 .....if(tabindex.==.d_plot_const
20e0 65 6c 6c 61 74 69 6f 6e 29 20 7b 0a 20 20 20 20 20 20 5f 63 6f 6e 73 74 65 6c 6c 61 74 69 6f 6e ellation).{......._constellation
2100 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 50 6c 6f 74 4e 65 77 44 61 74 61 28 72 65 61 6c 54 69 6d DisplayPlot->PlotNewData(realTim
2120 65 44 6f 6d 61 69 6e 44 61 74 61 50 6f 69 6e 74 73 2c 20 0a 09 09 09 09 09 20 20 20 20 20 69 6d eDomainDataPoints,............im
2140 61 67 54 69 6d 65 44 6f 6d 61 69 6e 44 61 74 61 50 6f 69 6e 74 73 2c 20 0a 09 09 09 09 09 20 20 agTimeDomainDataPoints,.........
2160 20 20 20 6e 75 6d 54 69 6d 65 44 6f 6d 61 69 6e 44 61 74 61 50 6f 69 6e 74 73 29 3b 0a 20 20 20 ...numTimeDomainDataPoints);....
2180 20 7d 0a 0a 20 20 20 20 2f 2f 20 44 6f 6e 27 74 20 75 70 64 61 74 65 20 74 68 65 20 72 65 70 65 .}......//.Don't.update.the.repe
21a0 61 74 65 64 20 64 61 74 61 20 66 6f 72 20 74 68 65 20 77 61 74 65 72 66 61 6c 6c 0a 20 20 20 20 ated.data.for.the.waterfall.....
21c0 69 66 28 21 72 65 70 65 61 74 44 61 74 61 46 6c 61 67 29 7b 0a 20 20 20 20 20 20 69 66 28 74 61 if(!repeatDataFlag){.......if(ta
21e0 62 69 6e 64 65 78 20 3d 3d 20 64 5f 70 6c 6f 74 5f 77 61 74 65 72 66 61 6c 6c 29 20 7b 0a 09 5f bindex.==.d_plot_waterfall).{.._
2200 77 61 74 65 72 66 61 6c 6c 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 50 6c 6f 74 4e 65 77 44 61 74 waterfallDisplayPlot->PlotNewDat
2220 61 28 5f 72 65 61 6c 46 46 54 44 61 74 61 50 6f 69 6e 74 73 2c 20 6e 75 6d 46 46 54 44 61 74 61 a(_realFFTDataPoints,.numFFTData
2240 50 6f 69 6e 74 73 2c 20 0a 09 09 09 09 09 20 20 20 74 69 6d 65 50 65 72 46 46 54 2c 20 64 61 74 Points,..........timePerFFT,.dat
2260 61 54 69 6d 65 73 74 61 6d 70 2c 20 0a 09 09 09 09 09 20 20 20 73 70 65 63 74 72 75 6d 55 70 64 aTimestamp,..........spectrumUpd
2280 61 74 65 45 76 65 6e 74 2d 3e 67 65 74 44 72 6f 70 70 65 64 46 46 54 46 72 61 6d 65 73 28 29 29 ateEvent->getDroppedFFTFrames())
22a0 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 69 66 28 28 51 47 4c 46 6f 72 6d 61 74 3a 3a 68 ;.......}.......if((QGLFormat::h
22c0 61 73 4f 70 65 6e 47 4c 28 29 29 20 26 26 20 28 5f 75 73 65 4f 70 65 6e 47 4c 29 29 20 7b 0a 09 asOpenGL()).&&.(_useOpenGL)).{..
22e0 69 66 28 20 5f 6f 70 65 6e 47 4c 57 61 74 65 72 66 61 6c 6c 33 44 46 6c 61 67 20 3d 3d 20 31 20 if(._openGLWaterfall3DFlag.==.1.
2300 26 26 20 28 74 61 62 69 6e 64 65 78 20 3d 3d 20 64 5f 70 6c 6f 74 5f 77 61 74 65 72 66 61 6c 6c &&.(tabindex.==.d_plot_waterfall
2320 33 64 29 29 20 7b 0a 09 20 20 5f 77 61 74 65 72 66 61 6c 6c 33 44 44 69 73 70 6c 61 79 50 6c 6f 3d)).{...._waterfall3DDisplayPlo
2340 74 2d 3e 50 6c 6f 74 4e 65 77 44 61 74 61 28 5f 72 65 61 6c 46 46 54 44 61 74 61 50 6f 69 6e 74 t->PlotNewData(_realFFTDataPoint
2360 73 2c 20 6e 75 6d 46 46 54 44 61 74 61 50 6f 69 6e 74 73 2c 20 0a 09 09 09 09 09 20 20 20 20 20 s,.numFFTDataPoints,............
2380 20 20 74 69 6d 65 50 65 72 46 46 54 2c 20 64 61 74 61 54 69 6d 65 73 74 61 6d 70 2c 20 0a 09 09 ..timePerFFT,.dataTimestamp,....
23a0 09 09 09 20 20 20 20 20 20 20 73 70 65 63 74 72 75 6d 55 70 64 61 74 65 45 76 65 6e 74 2d 3e 67 ..........spectrumUpdateEvent->g
23c0 65 74 44 72 6f 70 70 65 64 46 46 54 46 72 61 6d 65 73 28 29 29 3b 0a 09 7d 0a 20 20 20 20 20 20 etDroppedFFTFrames());..}.......
23e0 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 0a 20 20 20 20 2f 2f 20 54 65 6c 6c 20 74 68 65 20 73 79 }.....}...........//.Tell.the.sy
2400 73 74 65 6d 20 74 68 65 20 47 55 49 20 68 61 73 20 62 65 65 6e 20 75 70 64 61 74 65 64 0a 20 20 stem.the.GUI.has.been.updated...
2420 20 20 69 66 28 5f 73 79 73 74 65 6d 53 70 65 63 69 66 69 65 64 46 6c 61 67 29 7b 0a 20 20 20 20 ..if(_systemSpecifiedFlag){.....
2440 20 20 5f 73 79 73 74 65 6d 2d 3e 53 65 74 4c 61 73 74 47 55 49 55 70 64 61 74 65 54 69 6d 65 28 .._system->SetLastGUIUpdateTime(
2460 67 65 6e 65 72 61 74 65 64 54 69 6d 65 73 74 61 6d 70 29 3b 0a 20 20 20 20 20 20 5f 73 79 73 74 generatedTimestamp);......._syst
2480 65 6d 2d 3e 44 65 63 72 65 6d 65 6e 74 50 65 6e 64 69 6e 67 47 55 49 55 70 64 61 74 65 45 76 65 em->DecrementPendingGUIUpdateEve
24a0 6e 74 73 28 29 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 nts();.....}...}.}..void.Spectru
24c0 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 72 65 73 69 7a 65 45 76 65 6e 74 28 20 51 52 65 73 69 mDisplayForm::resizeEvent(.QResi
24e0 7a 65 45 76 65 6e 74 20 2a 65 20 29 0a 7b 0a 20 20 51 53 69 7a 65 20 73 3b 0a 20 20 73 2e 73 65 zeEvent.*e.).{...QSize.s;...s.se
2500 74 57 69 64 74 68 28 46 72 65 71 75 65 6e 63 79 50 6c 6f 74 44 69 73 70 6c 61 79 46 72 61 6d 65 tWidth(FrequencyPlotDisplayFrame
2520 2d 3e 77 69 64 74 68 28 29 29 3b 0a 20 20 73 2e 73 65 74 48 65 69 67 68 74 28 46 72 65 71 75 65 ->width());...s.setHeight(Freque
2540 6e 63 79 50 6c 6f 74 44 69 73 70 6c 61 79 46 72 61 6d 65 2d 3e 68 65 69 67 68 74 28 29 29 3b 0a ncyPlotDisplayFrame->height());.
2560 20 20 65 6d 69 74 20 5f 66 72 65 71 75 65 6e 63 79 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 72 65 ..emit._frequencyDisplayPlot->re
2580 73 69 7a 65 53 6c 6f 74 28 26 73 29 3b 0a 0a 20 20 73 2e 73 65 74 57 69 64 74 68 28 54 69 6d 65 sizeSlot(&s);....s.setWidth(Time
25a0 44 6f 6d 61 69 6e 44 69 73 70 6c 61 79 46 72 61 6d 65 2d 3e 77 69 64 74 68 28 29 29 3b 0a 20 20 DomainDisplayFrame->width());...
25c0 73 2e 73 65 74 48 65 69 67 68 74 28 54 69 6d 65 44 6f 6d 61 69 6e 44 69 73 70 6c 61 79 46 72 61 s.setHeight(TimeDomainDisplayFra
25e0 6d 65 2d 3e 68 65 69 67 68 74 28 29 29 3b 0a 20 20 65 6d 69 74 20 5f 74 69 6d 65 44 6f 6d 61 69 me->height());...emit._timeDomai
2600 6e 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 72 65 73 69 7a 65 53 6c 6f 74 28 26 73 29 3b 0a 0a 20 nDisplayPlot->resizeSlot(&s);...
2620 20 73 2e 73 65 74 57 69 64 74 68 28 57 61 74 65 72 66 61 6c 6c 50 6c 6f 74 44 69 73 70 6c 61 79 .s.setWidth(WaterfallPlotDisplay
2640 46 72 61 6d 65 2d 3e 77 69 64 74 68 28 29 29 3b 0a 20 20 73 2e 73 65 74 48 65 69 67 68 74 28 57 Frame->width());...s.setHeight(W
2660 61 74 65 72 66 61 6c 6c 50 6c 6f 74 44 69 73 70 6c 61 79 46 72 61 6d 65 2d 3e 68 65 69 67 68 74 aterfallPlotDisplayFrame->height
2680 28 29 29 3b 0a 20 20 65 6d 69 74 20 5f 77 61 74 65 72 66 61 6c 6c 44 69 73 70 6c 61 79 50 6c 6f ());...emit._waterfallDisplayPlo
26a0 74 2d 3e 72 65 73 69 7a 65 53 6c 6f 74 28 26 73 29 3b 0a 0a 20 20 69 66 28 28 51 47 4c 46 6f 72 t->resizeSlot(&s);....if((QGLFor
26c0 6d 61 74 3a 3a 68 61 73 4f 70 65 6e 47 4c 28 29 29 20 26 26 20 28 5f 75 73 65 4f 70 65 6e 47 4c mat::hasOpenGL()).&&.(_useOpenGL
26e0 29 29 20 7b 0a 20 20 20 20 73 2e 73 65 74 57 69 64 74 68 28 57 61 74 65 72 66 61 6c 6c 33 44 50 )).{.....s.setWidth(Waterfall3DP
2700 6c 6f 74 44 69 73 70 6c 61 79 46 72 61 6d 65 2d 3e 77 69 64 74 68 28 29 29 3b 0a 20 20 20 20 73 lotDisplayFrame->width());.....s
2720 2e 73 65 74 48 65 69 67 68 74 28 57 61 74 65 72 66 61 6c 6c 33 44 50 6c 6f 74 44 69 73 70 6c 61 .setHeight(Waterfall3DPlotDispla
2740 79 46 72 61 6d 65 2d 3e 68 65 69 67 68 74 28 29 29 3b 0a 20 20 20 20 65 6d 69 74 20 5f 77 61 74 yFrame->height());.....emit._wat
2760 65 72 66 61 6c 6c 33 44 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 72 65 73 69 7a 65 53 6c 6f 74 28 erfall3DDisplayPlot->resizeSlot(
2780 26 73 29 3b 0a 20 20 7d 0a 0a 20 20 73 2e 73 65 74 57 69 64 74 68 28 43 6f 6e 73 74 65 6c 6c 61 &s);...}....s.setWidth(Constella
27a0 74 69 6f 6e 44 69 73 70 6c 61 79 46 72 61 6d 65 2d 3e 77 69 64 74 68 28 29 29 3b 0a 20 20 73 2e tionDisplayFrame->width());...s.
27c0 73 65 74 48 65 69 67 68 74 28 43 6f 6e 73 74 65 6c 6c 61 74 69 6f 6e 44 69 73 70 6c 61 79 46 72 setHeight(ConstellationDisplayFr
27e0 61 6d 65 2d 3e 68 65 69 67 68 74 28 29 29 3b 0a 20 20 65 6d 69 74 20 5f 63 6f 6e 73 74 65 6c 6c ame->height());...emit._constell
2800 61 74 69 6f 6e 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 72 65 73 69 7a 65 53 6c 6f 74 28 26 73 29 ationDisplayPlot->resizeSlot(&s)
2820 3b 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 63 ;.}..void.SpectrumDisplayForm::c
2840 75 73 74 6f 6d 45 76 65 6e 74 28 20 51 45 76 65 6e 74 20 2a 20 65 29 0a 7b 0a 20 20 69 66 28 65 ustomEvent(.QEvent.*.e).{...if(e
2860 2d 3e 74 79 70 65 28 29 20 3d 3d 20 51 45 76 65 6e 74 3a 3a 55 73 65 72 2b 33 29 7b 0a 20 20 20 ->type().==.QEvent::User+3){....
2880 20 69 66 28 5f 73 79 73 74 65 6d 53 70 65 63 69 66 69 65 64 46 6c 61 67 29 7b 0a 20 20 20 20 20 .if(_systemSpecifiedFlag){......
28a0 20 57 69 6e 64 6f 77 43 6f 6d 62 6f 42 6f 78 2d 3e 73 65 74 43 75 72 72 65 6e 74 49 6e 64 65 78 .WindowComboBox->setCurrentIndex
28c0 28 5f 73 79 73 74 65 6d 2d 3e 47 65 74 57 69 6e 64 6f 77 54 79 70 65 28 29 29 3b 0a 20 20 20 20 (_system->GetWindowType());.....
28e0 20 20 46 46 54 53 69 7a 65 43 6f 6d 62 6f 42 6f 78 2d 3e 73 65 74 43 75 72 72 65 6e 74 49 6e 64 ..FFTSizeComboBox->setCurrentInd
2900 65 78 28 5f 73 79 73 74 65 6d 2d 3e 47 65 74 46 46 54 53 69 7a 65 49 6e 64 65 78 28 29 29 3b 0a ex(_system->GetFFTSizeIndex());.
2920 20 20 20 20 20 20 2f 2f 46 46 54 53 69 7a 65 43 6f 6d 62 6f 42 6f 78 2d 3e 73 65 74 43 75 72 72 ......//FFTSizeComboBox->setCurr
2940 65 6e 74 49 6e 64 65 78 28 31 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 77 61 74 65 72 66 61 6c entIndex(1);.....}......waterfal
2960 6c 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 43 68 61 6e 67 65 64 43 42 28 57 61 74 65 72 lMinimumIntensityChangedCB(Water
2980 66 61 6c 6c 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 76 61 6c 75 65 fallMinimumIntensityWheel->value
29a0 28 29 29 3b 0a 20 20 20 20 77 61 74 65 72 66 61 6c 6c 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 ());.....waterfallMaximumIntensi
29c0 74 79 43 68 61 6e 67 65 64 43 42 28 57 61 74 65 72 66 61 6c 6c 4d 61 78 69 6d 75 6d 49 6e 74 65 tyChangedCB(WaterfallMaximumInte
29e0 6e 73 69 74 79 57 68 65 65 6c 2d 3e 76 61 6c 75 65 28 29 29 3b 0a 0a 20 20 20 20 2f 2f 20 49 66 nsityWheel->value());......//.If
2a00 20 74 68 65 20 76 69 64 65 6f 20 63 61 72 64 20 64 6f 65 73 6e 27 74 20 73 75 70 70 6f 72 74 20 .the.video.card.doesn't.support.
2a20 4f 70 65 6e 47 4c 20 74 68 65 6e 20 64 6f 6e 27 74 20 64 69 73 70 6c 61 79 20 74 68 65 20 33 44 OpenGL.then.don't.display.the.3D
2a40 20 57 61 74 65 72 66 61 6c 6c 0a 20 20 20 20 69 66 28 28 51 47 4c 46 6f 72 6d 61 74 3a 3a 68 61 .Waterfall.....if((QGLFormat::ha
2a60 73 4f 70 65 6e 47 4c 28 29 29 20 26 26 20 28 5f 75 73 65 4f 70 65 6e 47 4c 29 29 20 7b 0a 20 20 sOpenGL()).&&.(_useOpenGL)).{...
2a80 20 20 20 20 77 61 74 65 72 66 61 6c 6c 33 44 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 43 ....waterfall3DMinimumIntensityC
2aa0 68 61 6e 67 65 64 43 42 28 57 61 74 65 72 66 61 6c 6c 33 44 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e hangedCB(Waterfall3DMinimumInten
2ac0 73 69 74 79 57 68 65 65 6c 2d 3e 76 61 6c 75 65 28 29 29 3b 0a 20 20 20 20 20 20 77 61 74 65 72 sityWheel->value());.......water
2ae0 66 61 6c 6c 33 44 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 43 68 61 6e 67 65 64 43 42 28 fall3DMaximumIntensityChangedCB(
2b00 57 61 74 65 72 66 61 6c 6c 33 44 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c Waterfall3DMaximumIntensityWheel
2b20 2d 3e 76 61 6c 75 65 28 29 29 3b 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 2f 2f 20 43 68 65 63 ->value());..............//.Chec
2b40 6b 20 66 6f 72 20 48 61 72 64 77 61 72 65 20 41 63 63 65 6c 65 72 61 74 69 6f 6e 20 6f 66 20 74 k.for.Hardware.Acceleration.of.t
2b60 68 65 20 4f 70 65 6e 47 4c 0a 20 20 20 20 20 20 69 66 28 21 5f 77 61 74 65 72 66 61 6c 6c 33 44 he.OpenGL.......if(!_waterfall3D
2b80 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 66 6f 72 6d 61 74 28 29 2e 64 69 72 65 63 74 52 65 6e 64 DisplayPlot->format().directRend
2ba0 65 72 69 6e 67 28 29 29 7b 0a 09 2f 2f 20 4f 6e 6c 79 20 61 73 6b 20 74 68 69 73 20 6f 6e 63 65 ering()){..//.Only.ask.this.once
2bc0 20 77 68 69 6c 65 20 74 68 65 20 70 72 6f 67 72 61 6d 20 69 73 20 72 75 6e 6e 69 6e 67 2e 2e 2e .while.the.program.is.running...
2be0 0a 09 69 66 28 5f 6f 70 65 6e 47 4c 57 61 74 65 72 66 61 6c 6c 33 44 46 6c 61 67 20 3d 3d 20 2d ..if(_openGLWaterfall3DFlag.==.-
2c00 31 29 7b 0a 09 20 20 5f 6f 70 65 6e 47 4c 57 61 74 65 72 66 61 6c 6c 33 44 46 6c 61 67 20 3d 20 1){...._openGLWaterfall3DFlag.=.
2c20 30 3b 0a 09 20 20 69 66 28 51 4d 65 73 73 61 67 65 42 6f 78 3a 3a 77 61 72 6e 69 6e 67 28 74 68 0;....if(QMessageBox::warning(th
2c40 69 73 2c 20 22 4f 70 65 6e 47 4c 20 44 69 72 65 63 74 20 52 65 6e 64 65 72 69 6e 67 20 4e 4f 54 is,."OpenGL.Direct.Rendering.NOT
2c60 20 53 75 70 70 6f 72 74 65 64 22 2c 20 22 3c 63 65 6e 74 65 72 3e 54 68 65 20 73 79 73 74 65 6d .Supported",."<center>The.system
2c80 27 73 20 76 69 64 65 6f 20 63 61 72 64 20 68 61 72 64 77 61 72 65 20 6f 72 20 63 75 72 72 65 6e 's.video.card.hardware.or.curren
2ca0 74 20 64 72 69 76 65 72 73 20 64 6f 20 6e 6f 74 20 73 75 70 70 6f 72 74 20 64 69 72 65 63 74 20 t.drivers.do.not.support.direct.
2cc0 68 61 72 64 77 61 72 65 20 72 65 6e 64 65 72 69 6e 67 20 6f 66 20 74 68 65 20 4f 70 65 6e 47 4c hardware.rendering.of.the.OpenGL
2ce0 20 6d 6f 64 75 6c 65 73 2e 3c 2f 63 65 6e 74 65 72 3e 3c 62 72 3e 3c 63 65 6e 74 65 72 3e 53 6f .modules.</center><br><center>So
2d00 66 74 77 61 72 65 20 72 65 6e 64 65 72 69 6e 67 20 69 73 20 56 45 52 59 20 70 72 6f 63 65 73 73 ftware.rendering.is.VERY.process
2d20 6f 72 20 69 6e 74 65 6e 73 69 76 65 2e 3c 2f 63 65 6e 74 65 72 3e 3c 62 72 3e 3c 63 65 6e 74 65 or.intensive.</center><br><cente
2d40 72 3e 44 6f 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 75 73 65 20 73 6f 66 74 77 61 72 65 20 72 65 r>Do.you.want.to.use.software.re
2d60 6e 64 65 72 69 6e 67 3f 3c 2f 63 65 6e 74 65 72 3e 22 2c 20 51 4d 65 73 73 61 67 65 42 6f 78 3a ndering?</center>",.QMessageBox:
2d80 3a 59 65 73 2c 20 51 4d 65 73 73 61 67 65 42 6f 78 3a 3a 4e 6f 20 7c 20 51 4d 65 73 73 61 67 65 :Yes,.QMessageBox::No.|.QMessage
2da0 42 6f 78 3a 3a 44 65 66 61 75 6c 74 20 7c 20 51 4d 65 73 73 61 67 65 42 6f 78 3a 3a 45 73 63 61 Box::Default.|.QMessageBox::Esca
2dc0 70 65 29 20 3d 3d 20 51 4d 65 73 73 61 67 65 42 6f 78 3a 3a 59 65 73 29 7b 0a 09 20 20 20 20 5f pe).==.QMessageBox::Yes){......_
2de0 6f 70 65 6e 47 4c 57 61 74 65 72 66 61 6c 6c 33 44 46 6c 61 67 20 3d 20 31 3b 0a 09 20 20 7d 0a openGLWaterfall3DFlag.=.1;....}.
2e00 09 7d 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 65 6c 73 65 7b 0a 09 5f 6f 70 65 6e 47 4c 57 .}.......}.......else{.._openGLW
2e20 61 74 65 72 66 61 6c 6c 33 44 46 6c 61 67 20 3d 20 31 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 aterfall3DFlag.=.1;.......}.....
2e40 7d 0a 20 20 20 20 0a 20 20 20 20 69 66 28 5f 6f 70 65 6e 47 4c 57 61 74 65 72 66 61 6c 6c 33 44 }..........if(_openGLWaterfall3D
2e60 46 6c 61 67 20 21 3d 20 31 29 7b 0a 20 20 20 20 20 20 54 6f 67 67 6c 65 54 61 62 57 61 74 65 72 Flag.!=.1){.......ToggleTabWater
2e80 66 61 6c 6c 33 44 28 66 61 6c 73 65 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 43 6c 65 fall3D(false);.....}......//.Cle
2ea0 61 72 20 61 6e 79 20 70 72 65 76 69 6f 75 73 20 64 69 73 70 6c 61 79 0a 20 20 20 20 52 65 73 65 ar.any.previous.display.....Rese
2ec0 74 28 29 3b 0a 20 20 7d 0a 20 20 65 6c 73 65 20 69 66 28 65 2d 3e 74 79 70 65 28 29 20 3d 3d 20 t();...}...else.if(e->type().==.
2ee0 31 30 30 30 35 29 7b 0a 20 20 20 20 53 70 65 63 74 72 75 6d 55 70 64 61 74 65 45 76 65 6e 74 2a 10005){.....SpectrumUpdateEvent*
2f00 20 73 70 65 63 74 72 75 6d 55 70 64 61 74 65 45 76 65 6e 74 20 3d 20 28 53 70 65 63 74 72 75 6d .spectrumUpdateEvent.=.(Spectrum
2f20 55 70 64 61 74 65 45 76 65 6e 74 2a 29 65 3b 0a 20 20 20 20 6e 65 77 46 72 65 71 75 65 6e 63 79 UpdateEvent*)e;.....newFrequency
2f40 44 61 74 61 28 73 70 65 63 74 72 75 6d 55 70 64 61 74 65 45 76 65 6e 74 29 3b 0a 20 20 7d 0a 20 Data(spectrumUpdateEvent);...}..
2f60 20 65 6c 73 65 20 69 66 28 65 2d 3e 74 79 70 65 28 29 20 3d 3d 20 31 30 30 30 38 29 7b 0a 20 20 .else.if(e->type().==.10008){...
2f80 20 20 73 65 74 57 69 6e 64 6f 77 54 69 74 6c 65 28 28 28 53 70 65 63 74 72 75 6d 57 69 6e 64 6f ..setWindowTitle(((SpectrumWindo
2fa0 77 43 61 70 74 69 6f 6e 45 76 65 6e 74 2a 29 65 29 2d 3e 67 65 74 4c 61 62 65 6c 28 29 29 3b 0a wCaptionEvent*)e)->getLabel());.
2fc0 20 20 7d 0a 20 20 65 6c 73 65 20 69 66 28 65 2d 3e 74 79 70 65 28 29 20 3d 3d 20 31 30 30 30 39 ..}...else.if(e->type().==.10009
2fe0 29 7b 0a 20 20 20 20 52 65 73 65 74 28 29 3b 0a 20 20 20 20 69 66 28 5f 73 79 73 74 65 6d 53 70 ){.....Reset();.....if(_systemSp
3000 65 63 69 66 69 65 64 46 6c 61 67 29 7b 0a 20 20 20 20 20 20 5f 73 79 73 74 65 6d 2d 3e 52 65 73 ecifiedFlag){......._system->Res
3020 65 74 50 65 6e 64 69 6e 67 47 55 49 55 70 64 61 74 65 45 76 65 6e 74 73 28 29 3b 0a 20 20 20 20 etPendingGUIUpdateEvents();.....
3040 7d 0a 20 20 7d 0a 20 20 65 6c 73 65 20 69 66 28 65 2d 3e 74 79 70 65 28 29 20 3d 3d 20 31 30 30 }...}...else.if(e->type().==.100
3060 31 30 29 7b 0a 20 20 20 20 5f 73 74 61 72 74 46 72 65 71 75 65 6e 63 79 20 3d 20 28 28 53 70 65 10){....._startFrequency.=.((Spe
3080 63 74 72 75 6d 46 72 65 71 75 65 6e 63 79 52 61 6e 67 65 45 76 65 6e 74 2a 29 65 29 2d 3e 47 65 ctrumFrequencyRangeEvent*)e)->Ge
30a0 74 53 74 61 72 74 46 72 65 71 75 65 6e 63 79 28 29 3b 0a 20 20 20 20 5f 73 74 6f 70 46 72 65 71 tStartFrequency();....._stopFreq
30c0 75 65 6e 63 79 20 3d 20 28 28 53 70 65 63 74 72 75 6d 46 72 65 71 75 65 6e 63 79 52 61 6e 67 65 uency.=.((SpectrumFrequencyRange
30e0 45 76 65 6e 74 2a 29 65 29 2d 3e 47 65 74 53 74 6f 70 46 72 65 71 75 65 6e 63 79 28 29 3b 0a 20 Event*)e)->GetStopFrequency();..
3100 20 20 20 5f 63 65 6e 74 65 72 46 72 65 71 75 65 6e 63 79 20 20 3d 20 28 28 53 70 65 63 74 72 75 ..._centerFrequency..=.((Spectru
3120 6d 46 72 65 71 75 65 6e 63 79 52 61 6e 67 65 45 76 65 6e 74 2a 29 65 29 2d 3e 47 65 74 43 65 6e mFrequencyRangeEvent*)e)->GetCen
3140 74 65 72 46 72 65 71 75 65 6e 63 79 28 29 3b 0a 0a 20 20 20 20 55 73 65 52 46 46 72 65 71 75 65 terFrequency();......UseRFFreque
3160 6e 63 69 65 73 43 42 28 55 73 65 52 46 46 72 65 71 75 65 6e 63 69 65 73 43 68 65 63 6b 42 6f 78 nciesCB(UseRFFrequenciesCheckBox
3180 2d 3e 69 73 43 68 65 63 6b 65 64 28 29 29 3b 0a 20 20 7d 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 ->isChecked());...}.}..void.Spec
31a0 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 41 76 67 4c 69 6e 65 45 64 69 74 5f 76 61 6c trumDisplayForm::AvgLineEdit_val
31c0 75 65 43 68 61 6e 67 65 64 28 20 69 6e 74 20 76 61 6c 75 65 20 29 0a 7b 0a 20 20 53 65 74 41 76 ueChanged(.int.value.).{...SetAv
31e0 65 72 61 67 65 43 6f 75 6e 74 28 76 61 6c 75 65 29 3b 0a 7d 0a 0a 0a 76 6f 69 64 0a 53 70 65 63 erageCount(value);.}...void.Spec
3200 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 4d 61 78 48 6f 6c 64 43 68 65 63 6b 42 6f 78 trumDisplayForm::MaxHoldCheckBox
3220 5f 74 6f 67 67 6c 65 64 28 20 62 6f 6f 6c 20 6e 65 77 53 74 61 74 65 20 29 0a 7b 0a 20 20 4d 61 _toggled(.bool.newState.).{...Ma
3240 78 48 6f 6c 64 52 65 73 65 74 42 74 6e 2d 3e 73 65 74 45 6e 61 62 6c 65 64 28 6e 65 77 53 74 61 xHoldResetBtn->setEnabled(newSta
3260 74 65 29 3b 0a 20 20 5f 66 72 65 71 75 65 6e 63 79 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 53 65 te);..._frequencyDisplayPlot->Se
3280 74 4d 61 78 46 46 54 56 69 73 69 62 6c 65 28 6e 65 77 53 74 61 74 65 29 3b 0a 20 20 4d 61 78 48 tMaxFFTVisible(newState);...MaxH
32a0 6f 6c 64 52 65 73 65 74 42 74 6e 5f 63 6c 69 63 6b 65 64 28 29 3b 0a 7d 0a 0a 0a 76 6f 69 64 0a oldResetBtn_clicked();.}...void.
32c0 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 4d 69 6e 48 6f 6c 64 43 68 65 63 SpectrumDisplayForm::MinHoldChec
32e0 6b 42 6f 78 5f 74 6f 67 67 6c 65 64 28 20 62 6f 6f 6c 20 6e 65 77 53 74 61 74 65 20 29 0a 7b 0a kBox_toggled(.bool.newState.).{.
3300 20 20 4d 69 6e 48 6f 6c 64 52 65 73 65 74 42 74 6e 2d 3e 73 65 74 45 6e 61 62 6c 65 64 28 6e 65 ..MinHoldResetBtn->setEnabled(ne
3320 77 53 74 61 74 65 29 3b 0a 20 20 5f 66 72 65 71 75 65 6e 63 79 44 69 73 70 6c 61 79 50 6c 6f 74 wState);..._frequencyDisplayPlot
3340 2d 3e 53 65 74 4d 69 6e 46 46 54 56 69 73 69 62 6c 65 28 6e 65 77 53 74 61 74 65 29 3b 0a 20 20 ->SetMinFFTVisible(newState);...
3360 4d 69 6e 48 6f 6c 64 52 65 73 65 74 42 74 6e 5f 63 6c 69 63 6b 65 64 28 29 3b 0a 7d 0a 0a 0a 76 MinHoldResetBtn_clicked();.}...v
3380 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 4d 69 6e 48 6f 6c 64 oid.SpectrumDisplayForm::MinHold
33a0 52 65 73 65 74 42 74 6e 5f 63 6c 69 63 6b 65 64 28 29 0a 7b 0a 20 20 5f 66 72 65 71 75 65 6e 63 ResetBtn_clicked().{..._frequenc
33c0 79 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 43 6c 65 61 72 4d 69 6e 44 61 74 61 28 29 3b 0a 20 20 yDisplayPlot->ClearMinData();...
33e0 5f 66 72 65 71 75 65 6e 63 79 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 72 65 70 6c 6f 74 28 29 3b _frequencyDisplayPlot->replot();
3400 0a 7d 0a 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 4d .}...void.SpectrumDisplayForm::M
3420 61 78 48 6f 6c 64 52 65 73 65 74 42 74 6e 5f 63 6c 69 63 6b 65 64 28 29 0a 7b 0a 20 20 5f 66 72 axHoldResetBtn_clicked().{..._fr
3440 65 71 75 65 6e 63 79 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 43 6c 65 61 72 4d 61 78 44 61 74 61 equencyDisplayPlot->ClearMaxData
3460 28 29 3b 0a 20 20 5f 66 72 65 71 75 65 6e 63 79 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 72 65 70 ();..._frequencyDisplayPlot->rep
3480 6c 6f 74 28 29 3b 0a 7d 0a 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 lot();.}...void.SpectrumDisplayF
34a0 6f 72 6d 3a 3a 54 61 62 43 68 61 6e 67 65 64 28 69 6e 74 20 69 6e 64 65 78 29 0a 7b 0a 20 20 2f orm::TabChanged(int.index).{.../
34c0 2f 20 54 68 69 73 20 6d 69 67 68 74 20 62 65 20 64 61 6e 67 65 72 6f 75 73 20 74 6f 20 63 61 6c /.This.might.be.dangerous.to.cal
34e0 6c 20 74 68 69 73 20 77 69 74 68 20 4e 55 4c 4c 0a 20 20 72 65 73 69 7a 65 45 76 65 6e 74 28 4e l.this.with.NULL...resizeEvent(N
3500 55 4c 4c 29 3b 20 20 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 ULL);...}..void.SpectrumDisplayF
3520 6f 72 6d 3a 3a 53 65 74 46 72 65 71 75 65 6e 63 79 52 61 6e 67 65 28 63 6f 6e 73 74 20 64 6f 75 orm::SetFrequencyRange(const.dou
3540 62 6c 65 20 6e 65 77 43 65 6e 74 65 72 46 72 65 71 75 65 6e 63 79 2c 0a 09 09 09 09 20 20 20 20 ble.newCenterFrequency,.........
3560 20 20 20 63 6f 6e 73 74 20 64 6f 75 62 6c 65 20 6e 65 77 53 74 61 72 74 46 72 65 71 75 65 6e 63 ...const.double.newStartFrequenc
3580 79 2c 20 0a 09 09 09 09 20 20 20 20 20 20 20 63 6f 6e 73 74 20 64 6f 75 62 6c 65 20 6e 65 77 53 y,.............const.double.newS
35a0 74 6f 70 46 72 65 71 75 65 6e 63 79 29 0a 7b 0a 20 20 64 6f 75 62 6c 65 20 66 64 69 66 66 3b 0a topFrequency).{...double.fdiff;.
35c0 20 20 69 66 28 55 73 65 52 46 46 72 65 71 75 65 6e 63 69 65 73 43 68 65 63 6b 42 6f 78 2d 3e 69 ..if(UseRFFrequenciesCheckBox->i
35e0 73 43 68 65 63 6b 65 64 28 29 29 20 7b 0a 20 20 20 20 66 64 69 66 66 20 3d 20 6e 65 77 43 65 6e sChecked()).{.....fdiff.=.newCen
3600 74 65 72 46 72 65 71 75 65 6e 63 79 3b 0a 20 20 7d 0a 20 20 65 6c 73 65 20 7b 0a 20 20 20 20 66 terFrequency;...}...else.{.....f
3620 64 69 66 66 20 3d 20 73 74 64 3a 3a 6d 61 78 28 66 61 62 73 28 6e 65 77 53 74 61 72 74 46 72 65 diff.=.std::max(fabs(newStartFre
3640 71 75 65 6e 63 79 29 2c 20 66 61 62 73 28 6e 65 77 53 74 6f 70 46 72 65 71 75 65 6e 63 79 29 29 quency),.fabs(newStopFrequency))
3660 3b 0a 20 20 7d 0a 0a 20 20 69 66 28 66 64 69 66 66 20 3e 20 30 29 20 7b 0a 20 20 20 20 73 74 64 ;...}....if(fdiff.>.0).{.....std
3680 3a 3a 73 74 72 69 6e 67 20 73 74 72 75 6e 69 74 73 5b 34 5d 20 3d 20 7b 22 48 7a 22 2c 20 22 6b ::string.strunits[4].=.{"Hz",."k
36a0 48 7a 22 2c 20 22 4d 48 7a 22 2c 20 22 47 48 7a 22 7d 3b 0a 20 20 20 20 64 6f 75 62 6c 65 20 75 Hz",."MHz",."GHz"};.....double.u
36c0 6e 69 74 73 31 30 20 3d 20 66 6c 6f 6f 72 28 6c 6f 67 31 30 28 66 64 69 66 66 29 29 3b 0a 20 20 nits10.=.floor(log10(fdiff));...
36e0 20 20 64 6f 75 62 6c 65 20 75 6e 69 74 73 33 20 20 3d 20 73 74 64 3a 3a 6d 61 78 28 66 6c 6f 6f ..double.units3..=.std::max(floo
3700 72 28 75 6e 69 74 73 31 30 20 2f 20 33 2e 30 29 2c 20 30 2e 30 29 3b 0a 20 20 20 20 64 6f 75 62 r(units10./.3.0),.0.0);.....doub
3720 6c 65 20 75 6e 69 74 73 20 3d 20 70 6f 77 28 31 30 2c 20 28 75 6e 69 74 73 31 30 2d 66 6d 6f 64 le.units.=.pow(10,.(units10-fmod
3740 28 75 6e 69 74 73 31 30 2c 20 33 2e 30 29 29 29 3b 0a 20 20 20 20 69 6e 74 20 69 75 6e 69 74 20 (units10,.3.0)));.....int.iunit.
3760 3d 20 73 74 61 74 69 63 5f 63 61 73 74 3c 69 6e 74 3e 28 75 6e 69 74 73 33 29 3b 0a 20 20 20 20 =.static_cast<int>(units3);.....
3780 0a 20 20 20 20 5f 73 74 61 72 74 46 72 65 71 75 65 6e 63 79 20 3d 20 6e 65 77 53 74 61 72 74 46 ....._startFrequency.=.newStartF
37a0 72 65 71 75 65 6e 63 79 3b 0a 20 20 20 20 5f 73 74 6f 70 46 72 65 71 75 65 6e 63 79 20 3d 20 6e requency;....._stopFrequency.=.n
37c0 65 77 53 74 6f 70 46 72 65 71 75 65 6e 63 79 3b 0a 20 20 20 20 5f 63 65 6e 74 65 72 46 72 65 71 ewStopFrequency;....._centerFreq
37e0 75 65 6e 63 79 20 3d 20 6e 65 77 43 65 6e 74 65 72 46 72 65 71 75 65 6e 63 79 3b 0a 0a 20 20 20 uency.=.newCenterFrequency;.....
3800 20 5f 66 72 65 71 75 65 6e 63 79 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 53 65 74 46 72 65 71 75 ._frequencyDisplayPlot->SetFrequ
3820 65 6e 63 79 52 61 6e 67 65 28 6e 65 77 53 74 61 72 74 46 72 65 71 75 65 6e 63 79 2c 0a 09 09 09 encyRange(newStartFrequency,....
3840 09 09 20 20 20 20 20 6e 65 77 53 74 6f 70 46 72 65 71 75 65 6e 63 79 2c 0a 09 09 09 09 09 20 20 .......newStopFrequency,........
3860 20 20 20 6e 65 77 43 65 6e 74 65 72 46 72 65 71 75 65 6e 63 79 2c 0a 09 09 09 09 09 20 20 20 20 ...newCenterFrequency,..........
3880 20 55 73 65 52 46 46 72 65 71 75 65 6e 63 69 65 73 43 68 65 63 6b 42 6f 78 2d 3e 69 73 43 68 65 .UseRFFrequenciesCheckBox->isChe
38a0 63 6b 65 64 28 29 2c 0a 09 09 09 09 09 20 20 20 20 20 75 6e 69 74 73 2c 20 73 74 72 75 6e 69 74 cked(),...........units,.strunit
38c0 73 5b 69 75 6e 69 74 5d 29 3b 0a 20 20 20 20 5f 77 61 74 65 72 66 61 6c 6c 44 69 73 70 6c 61 79 s[iunit]);....._waterfallDisplay
38e0 50 6c 6f 74 2d 3e 53 65 74 46 72 65 71 75 65 6e 63 79 52 61 6e 67 65 28 6e 65 77 53 74 61 72 74 Plot->SetFrequencyRange(newStart
3900 46 72 65 71 75 65 6e 63 79 2c 0a 09 09 09 09 09 20 20 20 20 20 6e 65 77 53 74 6f 70 46 72 65 71 Frequency,...........newStopFreq
3920 75 65 6e 63 79 2c 0a 09 09 09 09 09 20 20 20 20 20 6e 65 77 43 65 6e 74 65 72 46 72 65 71 75 65 uency,...........newCenterFreque
3940 6e 63 79 2c 0a 09 09 09 09 09 20 20 20 20 20 55 73 65 52 46 46 72 65 71 75 65 6e 63 69 65 73 43 ncy,...........UseRFFrequenciesC
3960 68 65 63 6b 42 6f 78 2d 3e 69 73 43 68 65 63 6b 65 64 28 29 2c 0a 09 09 09 09 09 20 20 20 20 20 heckBox->isChecked(),...........
3980 75 6e 69 74 73 2c 20 73 74 72 75 6e 69 74 73 5b 69 75 6e 69 74 5d 29 3b 0a 20 20 20 20 69 66 28 units,.strunits[iunit]);.....if(
39a0 28 51 47 4c 46 6f 72 6d 61 74 3a 3a 68 61 73 4f 70 65 6e 47 4c 28 29 29 20 26 26 20 28 5f 75 73 (QGLFormat::hasOpenGL()).&&.(_us
39c0 65 4f 70 65 6e 47 4c 29 29 20 7b 0a 20 20 20 20 20 20 5f 77 61 74 65 72 66 61 6c 6c 33 44 44 69 eOpenGL)).{......._waterfall3DDi
39e0 73 70 6c 61 79 50 6c 6f 74 2d 3e 53 65 74 46 72 65 71 75 65 6e 63 79 52 61 6e 67 65 28 6e 65 77 splayPlot->SetFrequencyRange(new
3a00 53 74 61 72 74 46 72 65 71 75 65 6e 63 79 2c 0a 09 09 09 09 09 09 20 6e 65 77 53 74 6f 70 46 72 StartFrequency,........newStopFr
3a20 65 71 75 65 6e 63 79 2c 0a 09 09 09 09 09 09 20 6e 65 77 43 65 6e 74 65 72 46 72 65 71 75 65 6e equency,........newCenterFrequen
3a40 63 79 2c 0a 09 09 09 09 09 09 20 55 73 65 52 46 46 72 65 71 75 65 6e 63 69 65 73 43 68 65 63 6b cy,........UseRFFrequenciesCheck
3a60 42 6f 78 2d 3e 69 73 43 68 65 63 6b 65 64 28 29 2c 0a 09 09 09 09 09 09 20 75 6e 69 74 73 2c 20 Box->isChecked(),........units,.
3a80 73 74 72 75 6e 69 74 73 5b 69 75 6e 69 74 5d 29 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 7d 0a 0a 69 strunits[iunit]);.....}...}.}..i
3aa0 6e 74 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 47 65 74 41 76 65 72 61 nt.SpectrumDisplayForm::GetAvera
3ac0 67 65 43 6f 75 6e 74 28 29 0a 7b 0a 20 20 72 65 74 75 72 6e 20 5f 68 69 73 74 6f 72 79 56 65 63 geCount().{...return._historyVec
3ae0 74 6f 72 2d 3e 73 69 7a 65 28 29 3b 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 tor->size();.}..void.SpectrumDis
3b00 70 6c 61 79 46 6f 72 6d 3a 3a 53 65 74 41 76 65 72 61 67 65 43 6f 75 6e 74 28 63 6f 6e 73 74 20 playForm::SetAverageCount(const.
3b20 69 6e 74 20 6e 65 77 43 6f 75 6e 74 29 0a 7b 0a 20 20 69 66 28 6e 65 77 43 6f 75 6e 74 20 3e 20 int.newCount).{...if(newCount.>.
3b40 2d 31 29 7b 0a 20 20 20 20 69 66 28 6e 65 77 43 6f 75 6e 74 20 21 3d 20 73 74 61 74 69 63 5f 63 -1){.....if(newCount.!=.static_c
3b60 61 73 74 3c 69 6e 74 3e 28 5f 68 69 73 74 6f 72 79 56 65 63 74 6f 72 2d 3e 73 69 7a 65 28 29 29 ast<int>(_historyVector->size())
3b80 29 7b 0a 20 20 20 20 20 20 73 74 64 3a 3a 76 65 63 74 6f 72 3c 64 6f 75 62 6c 65 2a 3e 3a 3a 69 ){.......std::vector<double*>::i
3ba0 74 65 72 61 74 6f 72 20 70 6f 73 3b 0a 20 20 20 20 20 20 77 68 69 6c 65 28 6e 65 77 43 6f 75 6e terator.pos;.......while(newCoun
3bc0 74 20 3c 20 73 74 61 74 69 63 5f 63 61 73 74 3c 69 6e 74 3e 28 5f 68 69 73 74 6f 72 79 56 65 63 t.<.static_cast<int>(_historyVec
3be0 74 6f 72 2d 3e 73 69 7a 65 28 29 29 29 7b 0a 09 70 6f 73 20 3d 20 5f 68 69 73 74 6f 72 79 56 65 tor->size())){..pos.=._historyVe
3c00 63 74 6f 72 2d 3e 62 65 67 69 6e 28 29 3b 0a 09 64 65 6c 65 74 65 5b 5d 20 28 2a 70 6f 73 29 3b ctor->begin();..delete[].(*pos);
3c20 0a 09 5f 68 69 73 74 6f 72 79 56 65 63 74 6f 72 2d 3e 65 72 61 73 65 28 70 6f 73 29 3b 0a 20 20 .._historyVector->erase(pos);...
3c40 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 77 68 69 6c 65 28 6e 65 77 43 6f 75 6e 74 20 3e 20 73 74 ....}........while(newCount.>.st
3c60 61 74 69 63 5f 63 61 73 74 3c 69 6e 74 3e 28 5f 68 69 73 74 6f 72 79 56 65 63 74 6f 72 2d 3e 73 atic_cast<int>(_historyVector->s
3c80 69 7a 65 28 29 29 29 7b 0a 09 5f 68 69 73 74 6f 72 79 56 65 63 74 6f 72 2d 3e 70 75 73 68 5f 62 ize())){.._historyVector->push_b
3ca0 61 63 6b 28 6e 65 77 20 64 6f 75 62 6c 65 5b 5f 6e 75 6d 52 65 61 6c 44 61 74 61 50 6f 69 6e 74 ack(new.double[_numRealDataPoint
3cc0 73 5d 29 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 41 76 65 72 61 67 65 44 61 74 61 52 65 s]);.......}.......AverageDataRe
3ce0 73 65 74 28 29 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 set();.....}...}.}..void.Spectru
3d00 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 5f 41 76 65 72 61 67 65 48 69 73 74 6f 72 79 28 63 6f mDisplayForm::_AverageHistory(co
3d20 6e 73 74 20 64 6f 75 62 6c 65 2a 20 6e 65 77 42 75 66 66 65 72 29 0a 7b 0a 20 20 69 66 28 5f 6e nst.double*.newBuffer).{...if(_n
3d40 75 6d 52 65 61 6c 44 61 74 61 50 6f 69 6e 74 73 20 3e 20 30 29 7b 0a 20 20 20 20 69 66 28 5f 68 umRealDataPoints.>.0){.....if(_h
3d60 69 73 74 6f 72 79 56 65 63 74 6f 72 2d 3e 73 69 7a 65 28 29 20 3e 20 30 29 7b 0a 20 20 20 20 20 istoryVector->size().>.0){......
3d80 20 6d 65 6d 63 70 79 28 5f 68 69 73 74 6f 72 79 56 65 63 74 6f 72 2d 3e 6f 70 65 72 61 74 6f 72 .memcpy(_historyVector->operator
3da0 5b 5d 28 5f 68 69 73 74 6f 72 79 45 6e 74 72 79 29 2c 20 6e 65 77 42 75 66 66 65 72 2c 0a 09 20 [](_historyEntry),.newBuffer,...
3dc0 20 20 20 20 5f 6e 75 6d 52 65 61 6c 44 61 74 61 50 6f 69 6e 74 73 2a 73 69 7a 65 6f 66 28 64 6f ...._numRealDataPoints*sizeof(do
3de0 75 62 6c 65 29 29 3b 0a 0a 20 20 20 20 20 20 2f 2f 20 49 6e 63 72 65 6d 65 6e 74 20 74 68 65 20 uble));........//.Increment.the.
3e00 6e 65 78 74 20 6c 6f 63 61 74 69 6f 6e 20 74 6f 20 73 74 6f 72 65 20 64 61 74 61 0a 20 20 20 20 next.location.to.store.data.....
3e20 20 20 5f 68 69 73 74 6f 72 79 45 6e 74 72 79 43 6f 75 6e 74 2b 2b 3b 0a 20 20 20 20 20 20 69 66 .._historyEntryCount++;.......if
3e40 28 5f 68 69 73 74 6f 72 79 45 6e 74 72 79 43 6f 75 6e 74 20 3e 20 73 74 61 74 69 63 5f 63 61 73 (_historyEntryCount.>.static_cas
3e60 74 3c 69 6e 74 3e 28 5f 68 69 73 74 6f 72 79 56 65 63 74 6f 72 2d 3e 73 69 7a 65 28 29 29 29 7b t<int>(_historyVector->size())){
3e80 0a 09 5f 68 69 73 74 6f 72 79 45 6e 74 72 79 43 6f 75 6e 74 20 3d 20 5f 68 69 73 74 6f 72 79 56 .._historyEntryCount.=._historyV
3ea0 65 63 74 6f 72 2d 3e 73 69 7a 65 28 29 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 5f 68 69 ector->size();.......}......._hi
3ec0 73 74 6f 72 79 45 6e 74 72 79 20 3d 20 28 2b 2b 5f 68 69 73 74 6f 72 79 45 6e 74 72 79 29 25 5f storyEntry.=.(++_historyEntry)%_
3ee0 68 69 73 74 6f 72 79 56 65 63 74 6f 72 2d 3e 73 69 7a 65 28 29 3b 0a 0a 20 20 20 20 20 20 2f 2f historyVector->size();........//
3f00 20 54 6f 74 61 6c 20 75 70 20 61 6e 64 20 74 68 65 6e 20 61 76 65 72 61 67 65 20 74 68 65 20 76 .Total.up.and.then.average.the.v
3f20 61 6c 75 65 73 0a 20 20 20 20 20 20 64 6f 75 62 6c 65 20 73 75 6d 3b 0a 20 20 20 20 20 20 66 6f alues.......double.sum;.......fo
3f40 72 28 75 69 6e 74 36 34 5f 74 20 6c 6f 63 61 74 69 6f 6e 20 3d 20 30 3b 20 6c 6f 63 61 74 69 6f r(uint64_t.location.=.0;.locatio
3f60 6e 20 3c 20 5f 6e 75 6d 52 65 61 6c 44 61 74 61 50 6f 69 6e 74 73 3b 20 6c 6f 63 61 74 69 6f 6e n.<._numRealDataPoints;.location
3f80 2b 2b 29 7b 0a 09 73 75 6d 20 3d 20 30 3b 0a 09 66 6f 72 28 69 6e 74 20 6e 75 6d 62 65 72 20 3d ++){..sum.=.0;..for(int.number.=
3fa0 20 30 3b 20 6e 75 6d 62 65 72 20 3c 20 5f 68 69 73 74 6f 72 79 45 6e 74 72 79 43 6f 75 6e 74 3b .0;.number.<._historyEntryCount;
3fc0 20 6e 75 6d 62 65 72 2b 2b 29 7b 0a 09 20 20 73 75 6d 20 2b 3d 20 5f 68 69 73 74 6f 72 79 56 65 .number++){....sum.+=._historyVe
3fe0 63 74 6f 72 2d 3e 6f 70 65 72 61 74 6f 72 5b 5d 28 6e 75 6d 62 65 72 29 5b 6c 6f 63 61 74 69 6f ctor->operator[](number)[locatio
4000 6e 5d 3b 0a 09 7d 0a 20 09 5f 61 76 65 72 61 67 65 64 56 61 6c 75 65 73 5b 6c 6f 63 61 74 69 6f n];..}..._averagedValues[locatio
4020 6e 5d 20 3d 20 73 75 6d 2f 73 74 61 74 69 63 5f 63 61 73 74 3c 64 6f 75 62 6c 65 3e 28 5f 68 69 n].=.sum/static_cast<double>(_hi
4040 73 74 6f 72 79 45 6e 74 72 79 43 6f 75 6e 74 29 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a storyEntryCount);.......}.....}.
4060 20 20 20 20 65 6c 73 65 7b 0a 20 20 20 20 20 20 6d 65 6d 63 70 79 28 5f 61 76 65 72 61 67 65 64 ....else{.......memcpy(_averaged
4080 56 61 6c 75 65 73 2c 20 6e 65 77 42 75 66 66 65 72 2c 20 5f 6e 75 6d 52 65 61 6c 44 61 74 61 50 Values,.newBuffer,._numRealDataP
40a0 6f 69 6e 74 73 2a 73 69 7a 65 6f 66 28 64 6f 75 62 6c 65 29 29 3b 0a 20 20 20 20 7d 0a 20 20 7d oints*sizeof(double));.....}...}
40c0 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 52 65 .}..void.SpectrumDisplayForm::Re
40e0 73 69 7a 65 42 75 66 66 65 72 73 28 20 63 6f 6e 73 74 20 75 69 6e 74 36 34 5f 74 20 6e 75 6d 46 sizeBuffers(.const.uint64_t.numF
4100 46 54 44 61 74 61 50 6f 69 6e 74 73 2c 0a 09 09 09 09 20 20 20 20 63 6f 6e 73 74 20 75 69 6e 74 FTDataPoints,.........const.uint
4120 36 34 5f 74 20 2f 2a 6e 75 6d 54 69 6d 65 44 6f 6d 61 69 6e 44 61 74 61 50 6f 69 6e 74 73 2a 2f 64_t./*numTimeDomainDataPoints*/
4140 20 29 0a 7b 0a 20 20 2f 2f 20 43 6f 6e 76 65 72 74 20 66 72 6f 6d 20 43 6f 6d 70 6c 65 78 20 74 .).{...//.Convert.from.Complex.t
4160 6f 20 52 65 61 6c 20 66 6f 72 20 63 65 72 74 61 69 6e 20 44 69 73 70 6c 61 79 73 0a 20 20 69 66 o.Real.for.certain.Displays...if
4180 28 5f 6e 75 6d 52 65 61 6c 44 61 74 61 50 6f 69 6e 74 73 20 21 3d 20 6e 75 6d 46 46 54 44 61 74 (_numRealDataPoints.!=.numFFTDat
41a0 61 50 6f 69 6e 74 73 29 7b 0a 20 20 20 20 5f 6e 75 6d 52 65 61 6c 44 61 74 61 50 6f 69 6e 74 73 aPoints){....._numRealDataPoints
41c0 20 3d 20 6e 75 6d 46 46 54 44 61 74 61 50 6f 69 6e 74 73 3b 0a 20 20 20 20 64 65 6c 65 74 65 5b .=.numFFTDataPoints;.....delete[
41e0 5d 20 5f 72 65 61 6c 46 46 54 44 61 74 61 50 6f 69 6e 74 73 3b 0a 20 20 20 20 64 65 6c 65 74 65 ]._realFFTDataPoints;.....delete
4200 5b 5d 20 5f 61 76 65 72 61 67 65 64 56 61 6c 75 65 73 3b 0a 20 20 20 20 0a 20 20 20 20 5f 72 65 []._averagedValues;.........._re
4220 61 6c 46 46 54 44 61 74 61 50 6f 69 6e 74 73 20 3d 20 6e 65 77 20 64 6f 75 62 6c 65 5b 5f 6e 75 alFFTDataPoints.=.new.double[_nu
4240 6d 52 65 61 6c 44 61 74 61 50 6f 69 6e 74 73 5d 3b 0a 20 20 20 20 5f 61 76 65 72 61 67 65 64 56 mRealDataPoints];....._averagedV
4260 61 6c 75 65 73 20 3d 20 6e 65 77 20 64 6f 75 62 6c 65 5b 5f 6e 75 6d 52 65 61 6c 44 61 74 61 50 alues.=.new.double[_numRealDataP
4280 6f 69 6e 74 73 5d 3b 0a 20 20 20 20 6d 65 6d 73 65 74 28 5f 72 65 61 6c 46 46 54 44 61 74 61 50 oints];.....memset(_realFFTDataP
42a0 6f 69 6e 74 73 2c 20 30 78 30 2c 20 5f 6e 75 6d 52 65 61 6c 44 61 74 61 50 6f 69 6e 74 73 2a 73 oints,.0x0,._numRealDataPoints*s
42c0 69 7a 65 6f 66 28 64 6f 75 62 6c 65 29 29 3b 0a 20 20 20 20 0a 20 20 20 20 63 6f 6e 73 74 20 69 izeof(double));..........const.i
42e0 6e 74 20 68 69 73 74 6f 72 79 53 69 7a 65 20 3d 20 5f 68 69 73 74 6f 72 79 56 65 63 74 6f 72 2d nt.historySize.=._historyVector-
4300 3e 73 69 7a 65 28 29 3b 0a 20 20 20 20 53 65 74 41 76 65 72 61 67 65 43 6f 75 6e 74 28 30 29 3b >size();.....SetAverageCount(0);
4320 20 2f 2f 20 43 6c 65 61 72 20 74 68 65 20 65 78 69 73 74 69 6e 67 20 68 69 73 74 6f 72 79 0a 20 .//.Clear.the.existing.history..
4340 20 20 20 53 65 74 41 76 65 72 61 67 65 43 6f 75 6e 74 28 68 69 73 74 6f 72 79 53 69 7a 65 29 3b ...SetAverageCount(historySize);
4360 0a 20 20 20 20 0a 20 20 20 20 52 65 73 65 74 28 29 3b 0a 20 20 7d 0a 7d 0a 0a 76 6f 69 64 0a 53 ..........Reset();...}.}..void.S
4380 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 52 65 73 65 74 28 29 0a 7b 0a 20 20 pectrumDisplayForm::Reset().{...
43a0 41 76 65 72 61 67 65 44 61 74 61 52 65 73 65 74 28 29 3b 0a 0a 20 20 5f 77 61 74 65 72 66 61 6c AverageDataReset();...._waterfal
43c0 6c 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 52 65 73 65 74 28 29 3b 0a 20 20 69 66 28 28 51 47 4c lDisplayPlot->Reset();...if((QGL
43e0 46 6f 72 6d 61 74 3a 3a 68 61 73 4f 70 65 6e 47 4c 28 29 29 20 26 26 20 28 5f 75 73 65 4f 70 65 Format::hasOpenGL()).&&.(_useOpe
4400 6e 47 4c 29 29 20 7b 0a 20 20 20 20 5f 77 61 74 65 72 66 61 6c 6c 33 44 44 69 73 70 6c 61 79 50 nGL)).{....._waterfall3DDisplayP
4420 6c 6f 74 2d 3e 52 65 73 65 74 28 29 3b 0a 20 20 7d 0a 7d 0a 0a 0a 76 6f 69 64 0a 53 70 65 63 74 lot->Reset();...}.}...void.Spect
4440 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 41 76 65 72 61 67 65 44 61 74 61 52 65 73 65 74 rumDisplayForm::AverageDataReset
4460 28 29 0a 7b 0a 20 20 5f 68 69 73 74 6f 72 79 45 6e 74 72 79 20 3d 20 30 3b 0a 20 20 5f 68 69 73 ().{..._historyEntry.=.0;..._his
4480 74 6f 72 79 45 6e 74 72 79 43 6f 75 6e 74 20 3d 20 30 3b 0a 0a 20 20 6d 65 6d 73 65 74 28 5f 61 toryEntryCount.=.0;....memset(_a
44a0 76 65 72 61 67 65 64 56 61 6c 75 65 73 2c 20 30 78 30 2c 20 5f 6e 75 6d 52 65 61 6c 44 61 74 61 veragedValues,.0x0,._numRealData
44c0 50 6f 69 6e 74 73 2a 73 69 7a 65 6f 66 28 64 6f 75 62 6c 65 29 29 3b 0a 0a 20 20 4d 61 78 48 6f Points*sizeof(double));....MaxHo
44e0 6c 64 52 65 73 65 74 42 74 6e 5f 63 6c 69 63 6b 65 64 28 29 3b 0a 20 20 4d 69 6e 48 6f 6c 64 52 ldResetBtn_clicked();...MinHoldR
4500 65 73 65 74 42 74 6e 5f 63 6c 69 63 6b 65 64 28 29 3b 0a 7d 0a 0a 0a 76 6f 69 64 0a 53 70 65 63 esetBtn_clicked();.}...void.Spec
4520 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 63 6c 6f 73 65 45 76 65 6e 74 28 20 51 43 6c trumDisplayForm::closeEvent(.QCl
4540 6f 73 65 45 76 65 6e 74 20 2a 65 20 29 0a 7b 0a 20 20 69 66 28 5f 73 79 73 74 65 6d 53 70 65 63 oseEvent.*e.).{...if(_systemSpec
4560 69 66 69 65 64 46 6c 61 67 29 7b 0a 20 20 20 20 5f 73 79 73 74 65 6d 2d 3e 53 65 74 57 69 6e 64 ifiedFlag){....._system->SetWind
4580 6f 77 4f 70 65 6e 46 6c 61 67 28 66 61 6c 73 65 29 3b 0a 20 20 7d 0a 0a 20 20 71 41 70 70 2d 3e owOpenFlag(false);...}....qApp->
45a0 70 72 6f 63 65 73 73 45 76 65 6e 74 73 28 29 3b 0a 0a 20 20 51 57 69 64 67 65 74 3a 3a 63 6c 6f processEvents();....QWidget::clo
45c0 73 65 45 76 65 6e 74 28 65 29 3b 0a 7d 0a 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 seEvent(e);.}...void.SpectrumDis
45e0 70 6c 61 79 46 6f 72 6d 3a 3a 57 69 6e 64 6f 77 54 79 70 65 43 68 61 6e 67 65 64 28 20 69 6e 74 playForm::WindowTypeChanged(.int
4600 20 6e 65 77 49 74 65 6d 20 29 0a 7b 0a 20 20 69 66 28 5f 73 79 73 74 65 6d 53 70 65 63 69 66 69 .newItem.).{...if(_systemSpecifi
4620 65 64 46 6c 61 67 29 7b 0a 20 20 20 5f 73 79 73 74 65 6d 2d 3e 53 65 74 57 69 6e 64 6f 77 54 79 edFlag){...._system->SetWindowTy
4640 70 65 28 6e 65 77 49 74 65 6d 29 3b 0a 20 20 7d 0a 7d 0a 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 pe(newItem);...}.}...void.Spectr
4660 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 55 73 65 52 46 46 72 65 71 75 65 6e 63 69 65 73 43 umDisplayForm::UseRFFrequenciesC
4680 42 28 20 62 6f 6f 6c 20 75 73 65 52 46 46 6c 61 67 20 29 0a 7b 0a 20 20 53 65 74 46 72 65 71 75 B(.bool.useRFFlag.).{...SetFrequ
46a0 65 6e 63 79 52 61 6e 67 65 28 5f 63 65 6e 74 65 72 46 72 65 71 75 65 6e 63 79 2c 20 5f 73 74 61 encyRange(_centerFrequency,._sta
46c0 72 74 46 72 65 71 75 65 6e 63 79 2c 20 5f 73 74 6f 70 46 72 65 71 75 65 6e 63 79 29 3b 0a 7d 0a rtFrequency,._stopFrequency);.}.
46e0 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 77 61 74 65 ..void.SpectrumDisplayForm::wate
4700 72 66 61 6c 6c 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 43 68 61 6e 67 65 64 43 42 28 20 rfallMaximumIntensityChangedCB(.
4720 64 6f 75 62 6c 65 20 6e 65 77 56 61 6c 75 65 20 29 0a 7b 0a 20 20 69 66 28 6e 65 77 56 61 6c 75 double.newValue.).{...if(newValu
4740 65 20 3e 20 57 61 74 65 72 66 61 6c 6c 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 e.>.WaterfallMinimumIntensityWhe
4760 65 6c 2d 3e 76 61 6c 75 65 28 29 29 7b 0a 20 20 20 20 57 61 74 65 72 66 61 6c 6c 4d 61 78 69 6d el->value()){.....WaterfallMaxim
4780 75 6d 49 6e 74 65 6e 73 69 74 79 4c 61 62 65 6c 2d 3e 73 65 74 54 65 78 74 28 51 53 74 72 69 6e umIntensityLabel->setText(QStrin
47a0 67 28 22 25 31 20 64 42 22 29 2e 61 72 67 28 6e 65 77 56 61 6c 75 65 2c 20 30 2c 20 27 66 27 2c g("%1.dB").arg(newValue,.0,.'f',
47c0 20 30 29 29 3b 0a 20 20 7d 0a 20 20 65 6c 73 65 7b 0a 20 20 20 20 57 61 74 65 72 66 61 6c 6c 4d .0));...}...else{.....WaterfallM
47e0 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 73 65 74 56 61 6c 75 65 28 57 aximumIntensityWheel->setValue(W
4800 61 74 65 72 66 61 6c 6c 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 76 aterfallMinimumIntensityWheel->v
4820 61 6c 75 65 28 29 29 3b 0a 20 20 7d 0a 0a 20 20 5f 77 61 74 65 72 66 61 6c 6c 44 69 73 70 6c 61 alue());...}...._waterfallDispla
4840 79 50 6c 6f 74 2d 3e 53 65 74 49 6e 74 65 6e 73 69 74 79 52 61 6e 67 65 28 57 61 74 65 72 66 61 yPlot->SetIntensityRange(Waterfa
4860 6c 6c 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 76 61 6c 75 65 28 29 llMinimumIntensityWheel->value()
4880 2c 0a 09 09 09 09 09 20 20 20 57 61 74 65 72 66 61 6c 6c 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 ,.........WaterfallMaximumIntens
48a0 69 74 79 57 68 65 65 6c 2d 3e 76 61 6c 75 65 28 29 29 3b 0a 7d 0a 0a 0a 76 6f 69 64 0a 53 70 65 ityWheel->value());.}...void.Spe
48c0 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 77 61 74 65 72 66 61 6c 6c 4d 69 6e 69 6d ctrumDisplayForm::waterfallMinim
48e0 75 6d 49 6e 74 65 6e 73 69 74 79 43 68 61 6e 67 65 64 43 42 28 20 64 6f 75 62 6c 65 20 6e 65 77 umIntensityChangedCB(.double.new
4900 56 61 6c 75 65 20 29 0a 7b 0a 20 20 69 66 28 6e 65 77 56 61 6c 75 65 20 3c 20 57 61 74 65 72 66 Value.).{...if(newValue.<.Waterf
4920 61 6c 6c 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 76 61 6c 75 65 28 allMaximumIntensityWheel->value(
4940 29 29 7b 0a 20 20 20 20 57 61 74 65 72 66 61 6c 6c 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 )){.....WaterfallMinimumIntensit
4960 79 4c 61 62 65 6c 2d 3e 73 65 74 54 65 78 74 28 51 53 74 72 69 6e 67 28 22 25 31 20 64 42 22 29 yLabel->setText(QString("%1.dB")
4980 2e 61 72 67 28 6e 65 77 56 61 6c 75 65 2c 20 30 2c 20 27 66 27 2c 20 30 29 29 3b 0a 20 20 7d 0a .arg(newValue,.0,.'f',.0));...}.
49a0 20 20 65 6c 73 65 7b 0a 20 20 20 20 57 61 74 65 72 66 61 6c 6c 4d 69 6e 69 6d 75 6d 49 6e 74 65 ..else{.....WaterfallMinimumInte
49c0 6e 73 69 74 79 57 68 65 65 6c 2d 3e 73 65 74 56 61 6c 75 65 28 57 61 74 65 72 66 61 6c 6c 4d 61 nsityWheel->setValue(WaterfallMa
49e0 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 76 61 6c 75 65 28 29 29 3b 0a 20 ximumIntensityWheel->value());..
4a00 20 7d 0a 0a 20 20 5f 77 61 74 65 72 66 61 6c 6c 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 53 65 74 .}...._waterfallDisplayPlot->Set
4a20 49 6e 74 65 6e 73 69 74 79 52 61 6e 67 65 28 57 61 74 65 72 66 61 6c 6c 4d 69 6e 69 6d 75 6d 49 IntensityRange(WaterfallMinimumI
4a40 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 76 61 6c 75 65 28 29 2c 0a 09 09 09 09 09 20 20 20 ntensityWheel->value(),.........
4a60 57 61 74 65 72 66 61 6c 6c 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e WaterfallMaximumIntensityWheel->
4a80 76 61 6c 75 65 28 29 29 3b 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 value());.}..void.SpectrumDispla
4aa0 79 46 6f 72 6d 3a 3a 77 61 74 65 72 66 61 6c 6c 33 44 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 yForm::waterfall3DMaximumIntensi
4ac0 74 79 43 68 61 6e 67 65 64 43 42 28 20 64 6f 75 62 6c 65 20 6e 65 77 56 61 6c 75 65 20 29 0a 7b tyChangedCB(.double.newValue.).{
4ae0 0a 20 20 69 66 28 28 51 47 4c 46 6f 72 6d 61 74 3a 3a 68 61 73 4f 70 65 6e 47 4c 28 29 29 20 26 ...if((QGLFormat::hasOpenGL()).&
4b00 26 20 28 5f 75 73 65 4f 70 65 6e 47 4c 29 29 20 7b 0a 20 20 20 20 69 66 28 6e 65 77 56 61 6c 75 &.(_useOpenGL)).{.....if(newValu
4b20 65 20 3e 20 57 61 74 65 72 66 61 6c 6c 33 44 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 e.>.Waterfall3DMinimumIntensityW
4b40 68 65 65 6c 2d 3e 76 61 6c 75 65 28 29 29 7b 0a 20 20 20 20 20 20 57 61 74 65 72 66 61 6c 6c 33 heel->value()){.......Waterfall3
4b60 44 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 4c 61 62 65 6c 2d 3e 73 65 74 54 65 78 74 28 DMaximumIntensityLabel->setText(
4b80 51 53 74 72 69 6e 67 28 22 25 31 20 64 42 22 29 2e 61 72 67 28 6e 65 77 56 61 6c 75 65 2c 20 30 QString("%1.dB").arg(newValue,.0
4ba0 2c 20 27 66 27 2c 20 30 29 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 65 6c 73 65 7b 0a 20 20 20 20 ,.'f',.0));.....}.....else{.....
4bc0 20 20 57 61 74 65 72 66 61 6c 6c 33 44 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 ..Waterfall3DMaximumIntensityWhe
4be0 65 6c 2d 3e 73 65 74 56 61 6c 75 65 28 57 61 74 65 72 66 61 6c 6c 33 44 4d 69 6e 69 6d 75 6d 49 el->setValue(Waterfall3DMinimumI
4c00 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 76 61 6c 75 65 28 29 29 3b 0a 20 20 20 20 7d 0a 20 ntensityWheel->value());.....}..
4c20 20 20 20 0a 20 20 20 20 5f 77 61 74 65 72 66 61 6c 6c 33 44 44 69 73 70 6c 61 79 50 6c 6f 74 2d ........_waterfall3DDisplayPlot-
4c40 3e 53 65 74 49 6e 74 65 6e 73 69 74 79 52 61 6e 67 65 28 57 61 74 65 72 66 61 6c 6c 33 44 4d 69 >SetIntensityRange(Waterfall3DMi
4c60 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 76 61 6c 75 65 28 29 2c 0a 09 09 nimumIntensityWheel->value(),...
4c80 09 09 09 20 20 20 20 20 20 20 57 61 74 65 72 66 61 6c 6c 33 44 4d 61 78 69 6d 75 6d 49 6e 74 65 ..........Waterfall3DMaximumInte
4ca0 6e 73 69 74 79 57 68 65 65 6c 2d 3e 76 61 6c 75 65 28 29 29 3b 0a 20 20 7d 0a 7d 0a 0a 0a 76 6f nsityWheel->value());...}.}...vo
4cc0 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 77 61 74 65 72 66 61 6c id.SpectrumDisplayForm::waterfal
4ce0 6c 33 44 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 43 68 61 6e 67 65 64 43 42 28 20 64 6f l3DMinimumIntensityChangedCB(.do
4d00 75 62 6c 65 20 6e 65 77 56 61 6c 75 65 20 29 0a 7b 0a 20 20 69 66 28 28 51 47 4c 46 6f 72 6d 61 uble.newValue.).{...if((QGLForma
4d20 74 3a 3a 68 61 73 4f 70 65 6e 47 4c 28 29 29 20 26 26 20 28 5f 75 73 65 4f 70 65 6e 47 4c 29 29 t::hasOpenGL()).&&.(_useOpenGL))
4d40 20 7b 0a 20 20 20 20 69 66 28 6e 65 77 56 61 6c 75 65 20 3c 20 57 61 74 65 72 66 61 6c 6c 33 44 .{.....if(newValue.<.Waterfall3D
4d60 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 76 61 6c 75 65 28 29 29 7b MaximumIntensityWheel->value()){
4d80 0a 20 20 20 20 20 20 57 61 74 65 72 66 61 6c 6c 33 44 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 .......Waterfall3DMinimumIntensi
4da0 74 79 4c 61 62 65 6c 2d 3e 73 65 74 54 65 78 74 28 51 53 74 72 69 6e 67 28 22 25 31 20 64 42 22 tyLabel->setText(QString("%1.dB"
4dc0 29 2e 61 72 67 28 6e 65 77 56 61 6c 75 65 2c 20 30 2c 20 27 66 27 2c 20 30 29 29 3b 0a 20 20 20 ).arg(newValue,.0,.'f',.0));....
4de0 20 7d 0a 20 20 20 20 65 6c 73 65 7b 0a 20 20 20 20 20 20 57 61 74 65 72 66 61 6c 6c 33 44 4d 69 .}.....else{.......Waterfall3DMi
4e00 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 73 65 74 56 61 6c 75 65 28 57 61 nimumIntensityWheel->setValue(Wa
4e20 74 65 72 66 61 6c 6c 33 44 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e terfall3DMaximumIntensityWheel->
4e40 76 61 6c 75 65 28 29 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 0a 20 20 20 20 5f 77 61 74 65 72 66 value());.....}.........._waterf
4e60 61 6c 6c 33 44 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 53 65 74 49 6e 74 65 6e 73 69 74 79 52 61 all3DDisplayPlot->SetIntensityRa
4e80 6e 67 65 28 57 61 74 65 72 66 61 6c 6c 33 44 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 nge(Waterfall3DMinimumIntensityW
4ea0 68 65 65 6c 2d 3e 76 61 6c 75 65 28 29 2c 0a 09 09 09 09 09 20 20 20 20 20 20 20 57 61 74 65 72 heel->value(),.............Water
4ec0 66 61 6c 6c 33 44 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 76 61 6c fall3DMaximumIntensityWheel->val
4ee0 75 65 28 29 29 3b 0a 20 20 7d 0a 7d 0a 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 ue());...}.}...void.SpectrumDisp
4f00 6c 61 79 46 6f 72 6d 3a 3a 46 46 54 43 6f 6d 62 6f 42 6f 78 53 65 6c 65 63 74 65 64 43 42 28 20 layForm::FFTComboBoxSelectedCB(.
4f20 63 6f 6e 73 74 20 51 53 74 72 69 6e 67 20 26 66 66 74 53 69 7a 65 53 74 72 69 6e 67 20 29 0a 7b const.QString.&fftSizeString.).{
4f40 0a 20 20 69 66 28 5f 73 79 73 74 65 6d 53 70 65 63 69 66 69 65 64 46 6c 61 67 29 7b 0a 20 20 20 ...if(_systemSpecifiedFlag){....
4f60 20 5f 73 79 73 74 65 6d 2d 3e 53 65 74 46 46 54 53 69 7a 65 28 66 66 74 53 69 7a 65 53 74 72 69 ._system->SetFFTSize(fftSizeStri
4f80 6e 67 2e 74 6f 4c 6f 6e 67 28 29 29 3b 0a 20 20 7d 0a 7d 0a 0a 0a 76 6f 69 64 0a 53 70 65 63 74 ng.toLong());...}.}...void.Spect
4fa0 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 57 61 74 65 72 66 61 6c 6c 41 75 74 6f 53 63 61 rumDisplayForm::WaterfallAutoSca
4fc0 6c 65 42 74 6e 43 42 28 29 0a 7b 0a 20 20 64 6f 75 62 6c 65 20 6d 69 6e 69 6d 75 6d 49 6e 74 65 leBtnCB().{...double.minimumInte
4fe0 6e 73 69 74 79 20 3d 20 5f 6e 6f 69 73 65 46 6c 6f 6f 72 41 6d 70 6c 69 74 75 64 65 20 2d 20 35 nsity.=._noiseFloorAmplitude.-.5
5000 3b 0a 20 20 69 66 28 6d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 20 3c 20 57 61 74 65 72 66 ;...if(minimumIntensity.<.Waterf
5020 61 6c 6c 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 6d 69 6e 56 61 6c allMinimumIntensityWheel->minVal
5040 75 65 28 29 29 7b 0a 20 20 20 20 6d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 20 3d 20 57 61 ue()){.....minimumIntensity.=.Wa
5060 74 65 72 66 61 6c 6c 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 6d 69 terfallMinimumIntensityWheel->mi
5080 6e 56 61 6c 75 65 28 29 3b 0a 20 20 7d 0a 20 20 57 61 74 65 72 66 61 6c 6c 4d 69 6e 69 6d 75 6d nValue();...}...WaterfallMinimum
50a0 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 73 65 74 56 61 6c 75 65 28 6d 69 6e 69 6d 75 6d IntensityWheel->setValue(minimum
50c0 49 6e 74 65 6e 73 69 74 79 29 3b 0a 20 20 64 6f 75 62 6c 65 20 6d 61 78 69 6d 75 6d 49 6e 74 65 Intensity);...double.maximumInte
50e0 6e 73 69 74 79 20 3d 20 5f 70 65 61 6b 41 6d 70 6c 69 74 75 64 65 20 2b 20 31 30 3b 0a 20 20 69 nsity.=._peakAmplitude.+.10;...i
5100 66 28 6d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 20 3e 20 57 61 74 65 72 66 61 6c 6c 4d 61 f(maximumIntensity.>.WaterfallMa
5120 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 6d 61 78 56 61 6c 75 65 28 29 29 ximumIntensityWheel->maxValue())
5140 7b 0a 20 20 20 20 6d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 20 3d 20 57 61 74 65 72 66 61 {.....maximumIntensity.=.Waterfa
5160 6c 6c 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 6d 61 78 56 61 6c 75 llMaximumIntensityWheel->maxValu
5180 65 28 29 3b 0a 20 20 7d 0a 20 20 57 61 74 65 72 66 61 6c 6c 4d 61 78 69 6d 75 6d 49 6e 74 65 6e e();...}...WaterfallMaximumInten
51a0 73 69 74 79 57 68 65 65 6c 2d 3e 73 65 74 56 61 6c 75 65 28 6d 61 78 69 6d 75 6d 49 6e 74 65 6e sityWheel->setValue(maximumInten
51c0 73 69 74 79 29 3b 0a 20 20 77 61 74 65 72 66 61 6c 6c 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 sity);...waterfallMaximumIntensi
51e0 74 79 43 68 61 6e 67 65 64 43 42 28 6d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 29 3b 0a 7d tyChangedCB(maximumIntensity);.}
5200 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 57 61 74 65 ..void.SpectrumDisplayForm::Wate
5220 72 66 61 6c 6c 33 44 41 75 74 6f 53 63 61 6c 65 42 74 6e 43 42 28 29 0a 7b 0a 20 20 69 66 28 28 rfall3DAutoScaleBtnCB().{...if((
5240 51 47 4c 46 6f 72 6d 61 74 3a 3a 68 61 73 4f 70 65 6e 47 4c 28 29 29 20 26 26 20 28 5f 75 73 65 QGLFormat::hasOpenGL()).&&.(_use
5260 4f 70 65 6e 47 4c 29 29 20 7b 0a 20 20 20 20 64 6f 75 62 6c 65 20 6d 69 6e 69 6d 75 6d 49 6e 74 OpenGL)).{.....double.minimumInt
5280 65 6e 73 69 74 79 20 3d 20 5f 6e 6f 69 73 65 46 6c 6f 6f 72 41 6d 70 6c 69 74 75 64 65 20 2d 20 ensity.=._noiseFloorAmplitude.-.
52a0 35 3b 0a 20 20 20 20 69 66 28 6d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 20 3c 20 57 61 74 5;.....if(minimumIntensity.<.Wat
52c0 65 72 66 61 6c 6c 33 44 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 6d erfall3DMinimumIntensityWheel->m
52e0 69 6e 56 61 6c 75 65 28 29 29 7b 0a 20 20 20 20 20 20 6d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 inValue()){.......minimumIntensi
5300 74 79 20 3d 20 57 61 74 65 72 66 61 6c 6c 33 44 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 ty.=.Waterfall3DMinimumIntensity
5320 57 68 65 65 6c 2d 3e 6d 69 6e 56 61 6c 75 65 28 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 57 61 74 Wheel->minValue();.....}.....Wat
5340 65 72 66 61 6c 6c 33 44 4d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 73 erfall3DMinimumIntensityWheel->s
5360 65 74 56 61 6c 75 65 28 6d 69 6e 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 29 3b 0a 20 20 20 20 64 etValue(minimumIntensity);.....d
5380 6f 75 62 6c 65 20 6d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 20 3d 20 5f 70 65 61 6b 41 6d ouble.maximumIntensity.=._peakAm
53a0 70 6c 69 74 75 64 65 20 2b 20 31 30 3b 0a 20 20 20 20 69 66 28 6d 61 78 69 6d 75 6d 49 6e 74 65 plitude.+.10;.....if(maximumInte
53c0 6e 73 69 74 79 20 3e 20 57 61 74 65 72 66 61 6c 6c 33 44 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 nsity.>.Waterfall3DMaximumIntens
53e0 69 74 79 57 68 65 65 6c 2d 3e 6d 61 78 56 61 6c 75 65 28 29 29 7b 0a 20 20 20 20 20 20 6d 61 78 ityWheel->maxValue()){.......max
5400 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 20 3d 20 57 61 74 65 72 66 61 6c 6c 33 44 4d 61 78 69 6d imumIntensity.=.Waterfall3DMaxim
5420 75 6d 49 6e 74 65 6e 73 69 74 79 57 68 65 65 6c 2d 3e 6d 61 78 56 61 6c 75 65 28 29 3b 0a 20 20 umIntensityWheel->maxValue();...
5440 20 20 7d 0a 20 20 20 20 57 61 74 65 72 66 61 6c 6c 33 44 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 ..}.....Waterfall3DMaximumIntens
5460 69 74 79 57 68 65 65 6c 2d 3e 73 65 74 56 61 6c 75 65 28 6d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 ityWheel->setValue(maximumIntens
5480 69 74 79 29 3b 0a 20 20 20 20 77 61 74 65 72 66 61 6c 6c 4d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 ity);.....waterfallMaximumIntens
54a0 69 74 79 43 68 61 6e 67 65 64 43 42 28 6d 61 78 69 6d 75 6d 49 6e 74 65 6e 73 69 74 79 29 3b 0a ityChangedCB(maximumIntensity);.
54c0 20 20 7d 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a ..}.}..void.SpectrumDisplayForm:
54e0 3a 57 61 74 65 72 66 61 6c 6c 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 54 79 70 65 43 68 61 6e :WaterfallIntensityColorTypeChan
5500 67 65 64 28 20 69 6e 74 20 6e 65 77 54 79 70 65 20 29 0a 7b 0a 20 20 51 43 6f 6c 6f 72 20 6c 6f ged(.int.newType.).{...QColor.lo
5520 77 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 3b 0a 20 20 51 43 6f 6c 6f 72 20 68 69 67 68 49 6e wIntensityColor;...QColor.highIn
5540 74 65 6e 73 69 74 79 43 6f 6c 6f 72 3b 0a 20 20 69 66 28 6e 65 77 54 79 70 65 20 3d 3d 20 57 61 tensityColor;...if(newType.==.Wa
5560 74 65 72 66 61 6c 6c 44 69 73 70 6c 61 79 50 6c 6f 74 3a 3a 49 4e 54 45 4e 53 49 54 59 5f 43 4f terfallDisplayPlot::INTENSITY_CO
5580 4c 4f 52 5f 4d 41 50 5f 54 59 50 45 5f 55 53 45 52 5f 44 45 46 49 4e 45 44 29 7b 0a 20 20 20 20 LOR_MAP_TYPE_USER_DEFINED){.....
55a0 2f 2f 20 53 65 6c 65 63 74 20 74 68 65 20 4c 6f 77 20 49 6e 74 65 6e 73 69 74 79 20 43 6f 6c 6f //.Select.the.Low.Intensity.Colo
55c0 72 0a 20 20 20 20 6c 6f 77 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 20 3d 20 5f 77 61 74 65 72 r.....lowIntensityColor.=._water
55e0 66 61 6c 6c 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 47 65 74 55 73 65 72 44 65 66 69 6e 65 64 4c fallDisplayPlot->GetUserDefinedL
5600 6f 77 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 28 29 3b 0a 20 20 20 20 69 66 28 21 6c 6f 77 49 owIntensityColor();.....if(!lowI
5620 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 2e 69 73 56 61 6c 69 64 28 29 29 7b 0a 20 20 20 20 20 20 ntensityColor.isValid()){.......
5640 6c 6f 77 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 20 3d 20 51 74 3a 3a 62 6c 61 63 6b 3b 0a 20 lowIntensityColor.=.Qt::black;..
5660 20 20 20 7d 0a 20 20 20 20 51 4d 65 73 73 61 67 65 42 6f 78 3a 3a 69 6e 66 6f 72 6d 61 74 69 6f ...}.....QMessageBox::informatio
5680 6e 28 74 68 69 73 2c 20 22 4c 6f 77 20 49 6e 74 65 6e 73 69 74 79 20 43 6f 6c 6f 72 20 53 65 6c n(this,."Low.Intensity.Color.Sel
56a0 65 63 74 69 6f 6e 22 2c 20 22 49 6e 20 74 68 65 20 6e 65 78 74 20 77 69 6e 64 6f 77 2c 20 73 65 ection",."In.the.next.window,.se
56c0 6c 65 63 74 20 74 68 65 20 6c 6f 77 20 69 6e 74 65 6e 73 69 74 79 20 63 6f 6c 6f 72 20 66 6f 72 lect.the.low.intensity.color.for
56e0 20 74 68 65 20 77 61 74 65 72 66 61 6c 6c 20 64 69 73 70 6c 61 79 22 2c 20 20 51 4d 65 73 73 61 .the.waterfall.display",..QMessa
5700 67 65 42 6f 78 3a 3a 4f 6b 29 3b 0a 20 20 20 20 6c 6f 77 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f geBox::Ok);.....lowIntensityColo
5720 72 20 3d 20 51 43 6f 6c 6f 72 44 69 61 6c 6f 67 3a 3a 67 65 74 43 6f 6c 6f 72 28 6c 6f 77 49 6e r.=.QColorDialog::getColor(lowIn
5740 74 65 6e 73 69 74 79 43 6f 6c 6f 72 2c 20 74 68 69 73 29 3b 0a 20 20 20 20 0a 20 20 20 20 2f 2f tensityColor,.this);..........//
5760 20 53 65 6c 65 63 74 20 74 68 65 20 48 69 67 68 20 49 6e 74 65 6e 73 69 74 79 20 43 6f 6c 6f 72 .Select.the.High.Intensity.Color
5780 0a 20 20 20 20 68 69 67 68 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 20 3d 20 5f 77 61 74 65 72 .....highIntensityColor.=._water
57a0 66 61 6c 6c 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 47 65 74 55 73 65 72 44 65 66 69 6e 65 64 48 fallDisplayPlot->GetUserDefinedH
57c0 69 67 68 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 28 29 3b 0a 20 20 20 20 69 66 28 21 68 69 67 ighIntensityColor();.....if(!hig
57e0 68 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 2e 69 73 56 61 6c 69 64 28 29 29 7b 0a 20 20 20 20 hIntensityColor.isValid()){.....
5800 20 20 68 69 67 68 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 20 3d 20 51 74 3a 3a 77 68 69 74 65 ..highIntensityColor.=.Qt::white
5820 3b 0a 20 20 20 20 7d 0a 20 20 20 20 51 4d 65 73 73 61 67 65 42 6f 78 3a 3a 69 6e 66 6f 72 6d 61 ;.....}.....QMessageBox::informa
5840 74 69 6f 6e 28 74 68 69 73 2c 20 22 48 69 67 68 20 49 6e 74 65 6e 73 69 74 79 20 43 6f 6c 6f 72 tion(this,."High.Intensity.Color
5860 20 53 65 6c 65 63 74 69 6f 6e 22 2c 20 22 49 6e 20 74 68 65 20 6e 65 78 74 20 77 69 6e 64 6f 77 .Selection",."In.the.next.window
5880 2c 20 73 65 6c 65 63 74 20 74 68 65 20 68 69 67 68 20 69 6e 74 65 6e 73 69 74 79 20 63 6f 6c 6f ,.select.the.high.intensity.colo
58a0 72 20 66 6f 72 20 74 68 65 20 77 61 74 65 72 66 61 6c 6c 20 64 69 73 70 6c 61 79 22 2c 20 20 51 r.for.the.waterfall.display",..Q
58c0 4d 65 73 73 61 67 65 42 6f 78 3a 3a 4f 6b 29 3b 0a 20 20 20 20 68 69 67 68 49 6e 74 65 6e 73 69 MessageBox::Ok);.....highIntensi
58e0 74 79 43 6f 6c 6f 72 20 3d 20 51 43 6f 6c 6f 72 44 69 61 6c 6f 67 3a 3a 67 65 74 43 6f 6c 6f 72 tyColor.=.QColorDialog::getColor
5900 28 68 69 67 68 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 2c 20 74 68 69 73 29 3b 0a 20 20 7d 0a (highIntensityColor,.this);...}.
5920 20 20 0a 20 20 5f 77 61 74 65 72 66 61 6c 6c 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 53 65 74 49 ....._waterfallDisplayPlot->SetI
5940 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 4d 61 70 54 79 70 65 28 6e 65 77 54 79 70 65 2c 20 6c 6f ntensityColorMapType(newType,.lo
5960 77 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 2c 20 68 69 67 68 49 6e 74 65 6e 73 69 74 79 43 6f wIntensityColor,.highIntensityCo
5980 6c 6f 72 29 3b 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 lor);.}..void.SpectrumDisplayFor
59a0 6d 3a 3a 57 61 74 65 72 66 61 6c 6c 33 44 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 54 79 70 65 m::Waterfall3DIntensityColorType
59c0 43 68 61 6e 67 65 64 28 20 69 6e 74 20 6e 65 77 54 79 70 65 20 29 0a 7b 0a 20 20 69 66 28 28 51 Changed(.int.newType.).{...if((Q
59e0 47 4c 46 6f 72 6d 61 74 3a 3a 68 61 73 4f 70 65 6e 47 4c 28 29 29 20 26 26 20 28 5f 75 73 65 4f GLFormat::hasOpenGL()).&&.(_useO
5a00 70 65 6e 47 4c 29 29 20 7b 0a 20 20 20 20 51 43 6f 6c 6f 72 20 6c 6f 77 49 6e 74 65 6e 73 69 74 penGL)).{.....QColor.lowIntensit
5a20 79 43 6f 6c 6f 72 3b 0a 20 20 20 20 51 43 6f 6c 6f 72 20 68 69 67 68 49 6e 74 65 6e 73 69 74 79 yColor;.....QColor.highIntensity
5a40 43 6f 6c 6f 72 3b 0a 20 20 20 20 69 66 28 6e 65 77 54 79 70 65 20 3d 3d 20 57 61 74 65 72 66 61 Color;.....if(newType.==.Waterfa
5a60 6c 6c 33 44 44 69 73 70 6c 61 79 50 6c 6f 74 3a 3a 49 4e 54 45 4e 53 49 54 59 5f 43 4f 4c 4f 52 ll3DDisplayPlot::INTENSITY_COLOR
5a80 5f 4d 41 50 5f 54 59 50 45 5f 55 53 45 52 5f 44 45 46 49 4e 45 44 29 7b 0a 20 20 20 20 20 20 2f _MAP_TYPE_USER_DEFINED){......./
5aa0 2f 20 53 65 6c 65 63 74 20 74 68 65 20 4c 6f 77 20 49 6e 74 65 6e 73 69 74 79 20 43 6f 6c 6f 72 /.Select.the.Low.Intensity.Color
5ac0 0a 20 20 20 20 20 20 6c 6f 77 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 20 3d 20 5f 77 61 74 65 .......lowIntensityColor.=._wate
5ae0 72 66 61 6c 6c 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 47 65 74 55 73 65 72 44 65 66 69 6e 65 64 rfallDisplayPlot->GetUserDefined
5b00 4c 6f 77 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 28 29 3b 0a 20 20 20 20 20 20 69 66 28 21 6c LowIntensityColor();.......if(!l
5b20 6f 77 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 2e 69 73 56 61 6c 69 64 28 29 29 7b 0a 09 6c 6f owIntensityColor.isValid()){..lo
5b40 77 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 20 3d 20 51 74 3a 3a 62 6c 61 63 6b 3b 0a 20 20 20 wIntensityColor.=.Qt::black;....
5b60 20 20 20 7d 0a 20 20 20 20 20 20 51 4d 65 73 73 61 67 65 42 6f 78 3a 3a 69 6e 66 6f 72 6d 61 74 ...}.......QMessageBox::informat
5b80 69 6f 6e 28 74 68 69 73 2c 20 22 4c 6f 77 20 49 6e 74 65 6e 73 69 74 79 20 43 6f 6c 6f 72 20 53 ion(this,."Low.Intensity.Color.S
5ba0 65 6c 65 63 74 69 6f 6e 22 2c 20 22 49 6e 20 74 68 65 20 6e 65 78 74 20 77 69 6e 64 6f 77 2c 20 election",."In.the.next.window,.
5bc0 73 65 6c 65 63 74 20 74 68 65 20 6c 6f 77 20 69 6e 74 65 6e 73 69 74 79 20 63 6f 6c 6f 72 20 66 select.the.low.intensity.color.f
5be0 6f 72 20 74 68 65 20 77 61 74 65 72 66 61 6c 6c 20 64 69 73 70 6c 61 79 22 2c 20 20 51 4d 65 73 or.the.waterfall.display",..QMes
5c00 73 61 67 65 42 6f 78 3a 3a 4f 6b 29 3b 0a 20 20 20 20 20 20 6c 6f 77 49 6e 74 65 6e 73 69 74 79 sageBox::Ok);.......lowIntensity
5c20 43 6f 6c 6f 72 20 3d 20 51 43 6f 6c 6f 72 44 69 61 6c 6f 67 3a 3a 67 65 74 43 6f 6c 6f 72 28 6c Color.=.QColorDialog::getColor(l
5c40 6f 77 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 2c 20 74 68 69 73 29 3b 0a 20 20 20 20 20 20 0a owIntensityColor,.this);........
5c60 20 20 20 20 20 20 2f 2f 20 53 65 6c 65 63 74 20 74 68 65 20 48 69 67 68 20 49 6e 74 65 6e 73 69 ......//.Select.the.High.Intensi
5c80 74 79 20 43 6f 6c 6f 72 0a 20 20 20 20 20 20 68 69 67 68 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f ty.Color.......highIntensityColo
5ca0 72 20 3d 20 5f 77 61 74 65 72 66 61 6c 6c 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 47 65 74 55 73 r.=._waterfallDisplayPlot->GetUs
5cc0 65 72 44 65 66 69 6e 65 64 48 69 67 68 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 28 29 3b 0a 20 erDefinedHighIntensityColor();..
5ce0 20 20 20 20 20 69 66 28 21 68 69 67 68 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 2e 69 73 56 61 .....if(!highIntensityColor.isVa
5d00 6c 69 64 28 29 29 7b 0a 09 68 69 67 68 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 20 3d 20 51 74 lid()){..highIntensityColor.=.Qt
5d20 3a 3a 77 68 69 74 65 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 51 4d 65 73 73 61 67 65 42 ::white;.......}.......QMessageB
5d40 6f 78 3a 3a 69 6e 66 6f 72 6d 61 74 69 6f 6e 28 74 68 69 73 2c 20 22 48 69 67 68 20 49 6e 74 65 ox::information(this,."High.Inte
5d60 6e 73 69 74 79 20 43 6f 6c 6f 72 20 53 65 6c 65 63 74 69 6f 6e 22 2c 20 22 49 6e 20 74 68 65 20 nsity.Color.Selection",."In.the.
5d80 6e 65 78 74 20 77 69 6e 64 6f 77 2c 20 73 65 6c 65 63 74 20 74 68 65 20 68 69 67 68 20 69 6e 74 next.window,.select.the.high.int
5da0 65 6e 73 69 74 79 20 63 6f 6c 6f 72 20 66 6f 72 20 74 68 65 20 77 61 74 65 72 66 61 6c 6c 20 64 ensity.color.for.the.waterfall.d
5dc0 69 73 70 6c 61 79 22 2c 20 20 51 4d 65 73 73 61 67 65 42 6f 78 3a 3a 4f 6b 29 3b 0a 20 20 20 20 isplay",..QMessageBox::Ok);.....
5de0 20 20 68 69 67 68 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 20 3d 20 51 43 6f 6c 6f 72 44 69 61 ..highIntensityColor.=.QColorDia
5e00 6c 6f 67 3a 3a 67 65 74 43 6f 6c 6f 72 28 68 69 67 68 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 log::getColor(highIntensityColor
5e20 2c 20 74 68 69 73 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 5f 77 61 74 65 72 66 61 6c 6c 33 44 44 ,.this);.....}....._waterfall3DD
5e40 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 53 65 74 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 4d 61 70 isplayPlot->SetIntensityColorMap
5e60 54 79 70 65 28 6e 65 77 54 79 70 65 2c 20 6c 6f 77 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 2c Type(newType,.lowIntensityColor,
5e80 0a 09 09 09 09 09 09 20 20 20 20 20 20 68 69 67 68 49 6e 74 65 6e 73 69 74 79 43 6f 6c 6f 72 29 .............highIntensityColor)
5ea0 3b 0a 20 20 7d 0a 7d 0a 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f ;...}.}...void.SpectrumDisplayFo
5ec0 72 6d 3a 3a 54 6f 67 67 6c 65 54 61 62 46 72 65 71 75 65 6e 63 79 28 63 6f 6e 73 74 20 62 6f 6f rm::ToggleTabFrequency(const.boo
5ee0 6c 20 73 74 61 74 65 29 0a 7b 0a 20 20 69 66 28 73 74 61 74 65 20 3d 3d 20 74 72 75 65 29 20 7b l.state).{...if(state.==.true).{
5f00 0a 20 20 20 20 69 66 28 64 5f 70 6c 6f 74 5f 66 66 74 20 3d 3d 20 2d 31 29 20 7b 0a 20 20 20 20 .....if(d_plot_fft.==.-1).{.....
5f20 20 20 53 70 65 63 74 72 75 6d 54 79 70 65 54 61 62 2d 3e 61 64 64 54 61 62 28 46 72 65 71 75 65 ..SpectrumTypeTab->addTab(Freque
5f40 6e 63 79 50 61 67 65 2c 20 22 46 72 65 71 75 65 6e 63 79 20 44 69 73 70 6c 61 79 22 29 3b 0a 20 ncyPage,."Frequency.Display");..
5f60 20 20 20 20 20 64 5f 70 6c 6f 74 5f 66 66 74 20 3d 20 53 70 65 63 74 72 75 6d 54 79 70 65 54 61 .....d_plot_fft.=.SpectrumTypeTa
5f80 62 2d 3e 63 6f 75 6e 74 28 29 2d 31 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 20 20 65 6c 73 65 20 7b b->count()-1;.....}...}...else.{
5fa0 0a 20 20 20 20 53 70 65 63 74 72 75 6d 54 79 70 65 54 61 62 2d 3e 72 65 6d 6f 76 65 54 61 62 28 .....SpectrumTypeTab->removeTab(
5fc0 53 70 65 63 74 72 75 6d 54 79 70 65 54 61 62 2d 3e 69 6e 64 65 78 4f 66 28 46 72 65 71 75 65 6e SpectrumTypeTab->indexOf(Frequen
5fe0 63 79 50 61 67 65 29 29 3b 0a 20 20 20 20 64 5f 70 6c 6f 74 5f 66 66 74 20 3d 20 2d 31 3b 0a 20 cyPage));.....d_plot_fft.=.-1;..
6000 20 7d 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a .}.}..void.SpectrumDisplayForm::
6020 54 6f 67 67 6c 65 54 61 62 57 61 74 65 72 66 61 6c 6c 28 63 6f 6e 73 74 20 62 6f 6f 6c 20 73 74 ToggleTabWaterfall(const.bool.st
6040 61 74 65 29 0a 7b 0a 20 20 69 66 28 73 74 61 74 65 20 3d 3d 20 74 72 75 65 29 20 7b 0a 20 20 20 ate).{...if(state.==.true).{....
6060 20 69 66 28 64 5f 70 6c 6f 74 5f 77 61 74 65 72 66 61 6c 6c 20 3d 3d 20 2d 31 29 20 7b 0a 20 20 .if(d_plot_waterfall.==.-1).{...
6080 20 20 20 20 53 70 65 63 74 72 75 6d 54 79 70 65 54 61 62 2d 3e 61 64 64 54 61 62 28 57 61 74 65 ....SpectrumTypeTab->addTab(Wate
60a0 72 66 61 6c 6c 50 61 67 65 2c 20 22 57 61 74 65 72 66 61 6c 6c 20 44 69 73 70 6c 61 79 22 29 3b rfallPage,."Waterfall.Display");
60c0 0a 20 20 20 20 20 20 64 5f 70 6c 6f 74 5f 77 61 74 65 72 66 61 6c 6c 20 3d 20 53 70 65 63 74 72 .......d_plot_waterfall.=.Spectr
60e0 75 6d 54 79 70 65 54 61 62 2d 3e 63 6f 75 6e 74 28 29 2d 31 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a umTypeTab->count()-1;.....}...}.
6100 20 20 65 6c 73 65 20 7b 0a 20 20 20 20 53 70 65 63 74 72 75 6d 54 79 70 65 54 61 62 2d 3e 72 65 ..else.{.....SpectrumTypeTab->re
6120 6d 6f 76 65 54 61 62 28 53 70 65 63 74 72 75 6d 54 79 70 65 54 61 62 2d 3e 69 6e 64 65 78 4f 66 moveTab(SpectrumTypeTab->indexOf
6140 28 57 61 74 65 72 66 61 6c 6c 50 61 67 65 29 29 3b 0a 20 20 20 20 64 5f 70 6c 6f 74 5f 77 61 74 (WaterfallPage));.....d_plot_wat
6160 65 72 66 61 6c 6c 20 3d 20 2d 31 3b 0a 20 20 7d 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 erfall.=.-1;...}.}..void.Spectru
6180 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 54 6f 67 67 6c 65 54 61 62 57 61 74 65 72 66 61 6c 6c mDisplayForm::ToggleTabWaterfall
61a0 33 44 28 63 6f 6e 73 74 20 62 6f 6f 6c 20 73 74 61 74 65 29 0a 7b 0a 20 20 69 66 28 73 74 61 74 3D(const.bool.state).{...if(stat
61c0 65 20 3d 3d 20 74 72 75 65 29 20 7b 0a 20 20 20 20 69 66 28 28 51 47 4c 46 6f 72 6d 61 74 3a 3a e.==.true).{.....if((QGLFormat::
61e0 68 61 73 4f 70 65 6e 47 4c 28 29 29 20 26 26 20 28 5f 75 73 65 4f 70 65 6e 47 4c 29 29 20 7b 0a hasOpenGL()).&&.(_useOpenGL)).{.
6200 20 20 20 20 20 20 69 66 28 64 5f 70 6c 6f 74 5f 77 61 74 65 72 66 61 6c 6c 33 64 20 3d 3d 20 2d ......if(d_plot_waterfall3d.==.-
6220 31 29 20 7b 0a 09 53 70 65 63 74 72 75 6d 54 79 70 65 54 61 62 2d 3e 61 64 64 54 61 62 28 57 61 1).{..SpectrumTypeTab->addTab(Wa
6240 74 65 72 66 61 6c 6c 33 44 50 61 67 65 2c 20 22 33 44 20 57 61 74 65 72 66 61 6c 6c 20 44 69 73 terfall3DPage,."3D.Waterfall.Dis
6260 70 6c 61 79 22 29 3b 0a 09 64 5f 70 6c 6f 74 5f 77 61 74 65 72 66 61 6c 6c 33 64 20 3d 20 53 70 play");..d_plot_waterfall3d.=.Sp
6280 65 63 74 72 75 6d 54 79 70 65 54 61 62 2d 3e 63 6f 75 6e 74 28 29 2d 31 3b 0a 20 20 20 20 20 20 ectrumTypeTab->count()-1;.......
62a0 7d 0a 20 20 20 20 7d 0a 20 20 7d 0a 20 20 65 6c 73 65 20 7b 0a 20 20 20 20 53 70 65 63 74 72 75 }.....}...}...else.{.....Spectru
62c0 6d 54 79 70 65 54 61 62 2d 3e 72 65 6d 6f 76 65 54 61 62 28 53 70 65 63 74 72 75 6d 54 79 70 65 mTypeTab->removeTab(SpectrumType
62e0 54 61 62 2d 3e 69 6e 64 65 78 4f 66 28 57 61 74 65 72 66 61 6c 6c 33 44 50 61 67 65 29 29 3b 0a Tab->indexOf(Waterfall3DPage));.
6300 20 20 20 20 64 5f 70 6c 6f 74 5f 77 61 74 65 72 66 61 6c 6c 33 64 20 3d 20 2d 31 3b 0a 20 20 7d ....d_plot_waterfall3d.=.-1;...}
6320 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 54 6f .}..void.SpectrumDisplayForm::To
6340 67 67 6c 65 54 61 62 54 69 6d 65 28 63 6f 6e 73 74 20 62 6f 6f 6c 20 73 74 61 74 65 29 0a 7b 0a ggleTabTime(const.bool.state).{.
6360 20 20 69 66 28 73 74 61 74 65 20 3d 3d 20 74 72 75 65 29 20 7b 0a 20 20 20 20 69 66 28 64 5f 70 ..if(state.==.true).{.....if(d_p
6380 6c 6f 74 5f 74 69 6d 65 20 3d 3d 20 2d 31 29 20 7b 0a 20 20 20 20 20 20 53 70 65 63 74 72 75 6d lot_time.==.-1).{.......Spectrum
63a0 54 79 70 65 54 61 62 2d 3e 61 64 64 54 61 62 28 54 69 6d 65 44 6f 6d 61 69 6e 50 61 67 65 2c 20 TypeTab->addTab(TimeDomainPage,.
63c0 22 54 69 6d 65 20 44 6f 6d 61 69 6e 20 44 69 73 70 6c 61 79 22 29 3b 0a 20 20 20 20 20 20 64 5f "Time.Domain.Display");.......d_
63e0 70 6c 6f 74 5f 74 69 6d 65 20 3d 20 53 70 65 63 74 72 75 6d 54 79 70 65 54 61 62 2d 3e 63 6f 75 plot_time.=.SpectrumTypeTab->cou
6400 6e 74 28 29 2d 31 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 20 20 65 6c 73 65 20 7b 0a 20 20 20 20 53 nt()-1;.....}...}...else.{.....S
6420 70 65 63 74 72 75 6d 54 79 70 65 54 61 62 2d 3e 72 65 6d 6f 76 65 54 61 62 28 53 70 65 63 74 72 pectrumTypeTab->removeTab(Spectr
6440 75 6d 54 79 70 65 54 61 62 2d 3e 69 6e 64 65 78 4f 66 28 54 69 6d 65 44 6f 6d 61 69 6e 50 61 67 umTypeTab->indexOf(TimeDomainPag
6460 65 29 29 3b 0a 20 20 20 20 64 5f 70 6c 6f 74 5f 74 69 6d 65 20 3d 20 2d 31 3b 0a 20 20 7d 0a 7d e));.....d_plot_time.=.-1;...}.}
6480 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 54 6f 67 67 ..void.SpectrumDisplayForm::Togg
64a0 6c 65 54 61 62 43 6f 6e 73 74 65 6c 6c 61 74 69 6f 6e 28 63 6f 6e 73 74 20 62 6f 6f 6c 20 73 74 leTabConstellation(const.bool.st
64c0 61 74 65 29 0a 7b 0a 20 20 69 66 28 73 74 61 74 65 20 3d 3d 20 74 72 75 65 29 20 7b 0a 20 20 20 ate).{...if(state.==.true).{....
64e0 20 69 66 28 64 5f 70 6c 6f 74 5f 63 6f 6e 73 74 65 6c 6c 61 74 69 6f 6e 20 3d 3d 20 2d 31 29 20 .if(d_plot_constellation.==.-1).
6500 7b 0a 20 20 20 20 20 20 53 70 65 63 74 72 75 6d 54 79 70 65 54 61 62 2d 3e 61 64 64 54 61 62 28 {.......SpectrumTypeTab->addTab(
6520 43 6f 6e 73 74 65 6c 6c 61 74 69 6f 6e 50 61 67 65 2c 20 22 43 6f 6e 73 74 65 6c 6c 61 74 69 6f ConstellationPage,."Constellatio
6540 6e 20 44 69 73 70 6c 61 79 22 29 3b 0a 20 20 20 20 20 20 64 5f 70 6c 6f 74 5f 63 6f 6e 73 74 65 n.Display");.......d_plot_conste
6560 6c 6c 61 74 69 6f 6e 20 3d 20 53 70 65 63 74 72 75 6d 54 79 70 65 54 61 62 2d 3e 63 6f 75 6e 74 llation.=.SpectrumTypeTab->count
6580 28 29 2d 31 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 20 20 65 6c 73 65 20 7b 0a 20 20 20 20 53 70 65 ()-1;.....}...}...else.{.....Spe
65a0 63 74 72 75 6d 54 79 70 65 54 61 62 2d 3e 72 65 6d 6f 76 65 54 61 62 28 53 70 65 63 74 72 75 6d ctrumTypeTab->removeTab(Spectrum
65c0 54 79 70 65 54 61 62 2d 3e 69 6e 64 65 78 4f 66 28 43 6f 6e 73 74 65 6c 6c 61 74 69 6f 6e 50 61 TypeTab->indexOf(ConstellationPa
65e0 67 65 29 29 3b 0a 20 20 20 20 64 5f 70 6c 6f 74 5f 63 6f 6e 73 74 65 6c 6c 61 74 69 6f 6e 20 3d ge));.....d_plot_constellation.=
6600 20 2d 31 3b 0a 20 20 7d 0a 7d 0a 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 .-1;...}.}...void.SpectrumDispla
6620 79 46 6f 72 6d 3a 3a 53 65 74 54 69 6d 65 44 6f 6d 61 69 6e 41 78 69 73 28 64 6f 75 62 6c 65 20 yForm::SetTimeDomainAxis(double.
6640 6d 69 6e 2c 20 64 6f 75 62 6c 65 20 6d 61 78 29 0a 7b 0a 20 20 5f 74 69 6d 65 44 6f 6d 61 69 6e min,.double.max).{..._timeDomain
6660 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 73 65 74 5f 79 61 78 69 73 28 6d 69 6e 2c 20 6d 61 78 29 DisplayPlot->set_yaxis(min,.max)
6680 3b 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 53 ;.}..void.SpectrumDisplayForm::S
66a0 65 74 43 6f 6e 73 74 65 6c 6c 61 74 69 6f 6e 41 78 69 73 28 64 6f 75 62 6c 65 20 78 6d 69 6e 2c etConstellationAxis(double.xmin,
66c0 20 64 6f 75 62 6c 65 20 78 6d 61 78 2c 0a 09 09 09 09 09 09 64 6f 75 62 6c 65 20 79 6d 69 6e 2c .double.xmax,.......double.ymin,
66e0 20 64 6f 75 62 6c 65 20 79 6d 61 78 29 0a 7b 0a 20 20 5f 63 6f 6e 73 74 65 6c 6c 61 74 69 6f 6e .double.ymax).{..._constellation
6700 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 73 65 74 5f 61 78 69 73 28 78 6d 69 6e 2c 20 78 6d 61 78 DisplayPlot->set_axis(xmin,.xmax
6720 2c 20 79 6d 69 6e 2c 20 79 6d 61 78 29 3b 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 ,.ymin,.ymax);.}..void.SpectrumD
6740 69 73 70 6c 61 79 46 6f 72 6d 3a 3a 53 65 74 43 6f 6e 73 74 65 6c 6c 61 74 69 6f 6e 50 65 6e 53 isplayForm::SetConstellationPenS
6760 69 7a 65 28 69 6e 74 20 73 69 7a 65 29 0a 7b 0a 20 20 5f 63 6f 6e 73 74 65 6c 6c 61 74 69 6f 6e ize(int.size).{..._constellation
6780 44 69 73 70 6c 61 79 50 6c 6f 74 2d 3e 73 65 74 5f 70 65 6e 5f 73 69 7a 65 28 20 73 69 7a 65 20 DisplayPlot->set_pen_size(.size.
67a0 29 3b 0a 7d 0a 0a 76 6f 69 64 0a 53 70 65 63 74 72 75 6d 44 69 73 70 6c 61 79 46 6f 72 6d 3a 3a );.}..void.SpectrumDisplayForm::
67c0 53 65 74 46 72 65 71 75 65 6e 63 79 41 78 69 73 28 64 6f 75 62 6c 65 20 6d 69 6e 2c 20 64 6f 75 SetFrequencyAxis(double.min,.dou
67e0 62 6c 65 20 6d 61 78 29 0a 7b 0a 20 20 5f 66 72 65 71 75 65 6e 63 79 44 69 73 70 6c 61 79 50 6c ble.max).{..._frequencyDisplayPl
6800 6f 74 2d 3e 73 65 74 5f 79 61 78 69 73 28 6d 69 6e 2c 20 6d 61 78 29 3b 0a 7d 0a ot->set_yaxis(min,.max);.}.