Fixes the replotting update. It's now based on a QTimer so it's in the event buffer...
[debian/gnuradio] / gr-qtgui / src / lib / spectrumUpdateEvents.cc
1 #ifndef SPECTRUM_UPDATE_EVENTS_C
2 #define SPECTRUM_UPDATE_EVENTS_C
3
4 #include <spectrumUpdateEvents.h>
5
6 SpectrumUpdateEvent::SpectrumUpdateEvent(const std::complex<float>* fftPoints,
7                                          const uint64_t numFFTDataPoints,
8                                          const double* realTimeDomainPoints,
9                                          const double* imagTimeDomainPoints,
10                                          const uint64_t numTimeDomainDataPoints,
11                                          const timespec dataTimestamp,
12                                          const bool repeatDataFlag,
13                                          const bool lastOfMultipleUpdateFlag,
14                                          const timespec generatedTimestamp,
15                                          const int droppedFFTFrames)
16   : QEvent(QEvent::Type(10005))
17 {
18   _numFFTDataPoints = numFFTDataPoints;
19   if(_numFFTDataPoints < 1){
20     _numFFTDataPoints = 1;
21   }
22
23   _numTimeDomainDataPoints = numTimeDomainDataPoints;
24   if(_numTimeDomainDataPoints < 1){
25     _numTimeDomainDataPoints = 1;
26   }
27
28   _fftPoints = new std::complex<float>[_numFFTDataPoints];
29   _fftPoints[0] = std::complex<float>(0,0);
30   memcpy(_fftPoints, fftPoints, numFFTDataPoints*sizeof(std::complex<float>));
31
32   _realDataTimeDomainPoints = new double[_numTimeDomainDataPoints];
33   memset(_realDataTimeDomainPoints, 0x0, _numTimeDomainDataPoints*sizeof(double));
34   if(numTimeDomainDataPoints > 0){
35     memcpy(_realDataTimeDomainPoints, realTimeDomainPoints,
36            numTimeDomainDataPoints*sizeof(double));
37   }
38
39   _imagDataTimeDomainPoints = new double[_numTimeDomainDataPoints];
40   memset(_imagDataTimeDomainPoints, 0x0, _numTimeDomainDataPoints*sizeof(double));
41   if(numTimeDomainDataPoints > 0){
42     memcpy(_imagDataTimeDomainPoints, imagTimeDomainPoints,
43            numTimeDomainDataPoints*sizeof(double));
44   }
45   _dataTimestamp = dataTimestamp;
46   _repeatDataFlag = repeatDataFlag;
47   _lastOfMultipleUpdateFlag = lastOfMultipleUpdateFlag;
48   _eventGeneratedTimestamp = generatedTimestamp;
49   _droppedFFTFrames = droppedFFTFrames;
50 }
51
52 SpectrumUpdateEvent::~SpectrumUpdateEvent(){
53   delete[] _fftPoints;
54   delete[] _realDataTimeDomainPoints;
55   delete[] _imagDataTimeDomainPoints;
56 }
57
58 const std::complex<float>*
59 SpectrumUpdateEvent::getFFTPoints() const
60 {
61   return _fftPoints;
62 }
63
64 const double*
65 SpectrumUpdateEvent::getRealTimeDomainPoints() const
66 {
67   return _realDataTimeDomainPoints;
68 }
69
70 const double*
71 SpectrumUpdateEvent::getImagTimeDomainPoints() const
72 {
73   return _imagDataTimeDomainPoints;
74 }
75
76 uint64_t
77 SpectrumUpdateEvent::getNumFFTDataPoints() const
78 {
79   return _numFFTDataPoints;
80 }
81
82 uint64_t
83 SpectrumUpdateEvent::getNumTimeDomainDataPoints() const
84 {
85   return _numTimeDomainDataPoints;
86 }
87
88 timespec
89 SpectrumUpdateEvent::getDataTimestamp() const
90 {
91   return _dataTimestamp;
92 }
93
94 bool
95 SpectrumUpdateEvent::getRepeatDataFlag() const
96 {
97   return _repeatDataFlag;
98 }
99
100 bool
101 SpectrumUpdateEvent::getLastOfMultipleUpdateFlag() const
102 {
103   return _lastOfMultipleUpdateFlag;
104 }
105
106 timespec
107 SpectrumUpdateEvent::getEventGeneratedTimestamp() const
108 {
109   return _eventGeneratedTimestamp;
110 }
111
112 int
113 SpectrumUpdateEvent::getDroppedFFTFrames() const
114 {
115   return _droppedFFTFrames;
116 }
117
118 SpectrumWindowCaptionEvent::SpectrumWindowCaptionEvent(const QString& newLbl)
119   : QEvent(QEvent::Type(10008))
120 {
121   _labelString = newLbl;
122 }
123
124 SpectrumWindowCaptionEvent::~SpectrumWindowCaptionEvent()
125 {
126 }
127
128 QString
129 SpectrumWindowCaptionEvent::getLabel()
130 {
131   return _labelString;
132 }
133
134 SpectrumWindowResetEvent::SpectrumWindowResetEvent()
135   : QEvent(QEvent::Type(10009))
136 {
137 }
138
139 SpectrumWindowResetEvent::~SpectrumWindowResetEvent()
140 {
141 }
142
143 SpectrumFrequencyRangeEvent::SpectrumFrequencyRangeEvent(const double centerFreq, 
144                                                          const double startFreq,
145                                                          const double stopFreq)
146   : QEvent(QEvent::Type(10010))
147 {
148   _centerFrequency = centerFreq;
149   _startFrequency = startFreq;
150   _stopFrequency = stopFreq;
151 }
152
153 SpectrumFrequencyRangeEvent::~SpectrumFrequencyRangeEvent()
154 {
155 }
156
157 double
158 SpectrumFrequencyRangeEvent::GetCenterFrequency() const
159 {
160   return _centerFrequency;
161 }
162
163 double
164 SpectrumFrequencyRangeEvent::GetStartFrequency() const
165 {
166   return _startFrequency;
167 }
168
169 double
170 SpectrumFrequencyRangeEvent::GetStopFrequency() const
171 {
172   return _stopFrequency;
173 }
174
175 #endif /* SPECTRUM_UPDATE_EVENTS_C */