summaryrefslogtreecommitdiff
path: root/gr-qtgui/include/qtgui/SpectrumGUIClass.h
diff options
context:
space:
mode:
Diffstat (limited to 'gr-qtgui/include/qtgui/SpectrumGUIClass.h')
-rw-r--r--gr-qtgui/include/qtgui/SpectrumGUIClass.h130
1 files changed, 130 insertions, 0 deletions
diff --git a/gr-qtgui/include/qtgui/SpectrumGUIClass.h b/gr-qtgui/include/qtgui/SpectrumGUIClass.h
new file mode 100644
index 0000000000..844c6509d6
--- /dev/null
+++ b/gr-qtgui/include/qtgui/SpectrumGUIClass.h
@@ -0,0 +1,130 @@
+/* -*- c++ -*- */
+/*
+ * Copyright 2008-2011 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * GNU Radio is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3, or (at your option)
+ * any later version.
+ *
+ * GNU Radio is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNU Radio; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef SPECTRUM_GUI_CLASS_HPP
+#define SPECTRUM_GUI_CLASS_HPP
+
+#include <gruel/thread.h>
+#include <qwidget.h>
+#include <qapplication.h>
+#include <qlabel.h>
+#include <qslider.h>
+#include <qtgui/spectrumUpdateEvents.h>
+
+class SpectrumDisplayForm;
+#include <qtgui/spectrumdisplayform.h>
+
+#include <cmath>
+
+#include <complex>
+#include <vector>
+#include <string>
+
+class SpectrumGUIClass
+{
+public:
+ SpectrumGUIClass(const uint64_t maxDataSize, const uint64_t fftSize,
+ const double newCenterFrequency,
+ const double newStartFrequency,
+ const double newStopFrequency);
+ ~SpectrumGUIClass();
+ void reset();
+
+ void openSpectrumWindow(QWidget*,
+ const bool frequency=true, const bool waterfall=true,
+ const bool time=true, const bool constellation=true);
+ void setDisplayTitle(const std::string);
+
+ bool getWindowOpenFlag();
+ void setWindowOpenFlag(const bool);
+
+ void setFrequencyRange(const double, const double, const double);
+ double getStartFrequency();
+ double getStopFrequency();
+ double getCenterFrequency();
+
+ void updateWindow(const bool, const float*,
+ const uint64_t, const float*,
+ const uint64_t, const float*,
+ const uint64_t,
+ const gruel::high_res_timer_type, const bool);
+
+ float getPowerValue();
+ void setPowerValue(const float);
+
+ int getWindowType();
+ void setWindowType(const int);
+
+ int getFFTSize();
+ int getFFTSizeIndex();
+ void setFFTSize(const int);
+
+ gruel::high_res_timer_type getLastGUIUpdateTime();
+ void setLastGUIUpdateTime(const gruel::high_res_timer_type);
+
+ unsigned int getPendingGUIUpdateEvents();
+ void incrementPendingGUIUpdateEvents();
+ void decrementPendingGUIUpdateEvents();
+ void resetPendingGUIUpdateEvents();
+
+ static const long MAX_FFT_SIZE;
+ static const long MIN_FFT_SIZE;
+
+ QWidget* qwidget();
+
+ void setTimeDomainAxis(double min, double max);
+ void setConstellationAxis(double xmin, double xmax,
+ double ymin, double ymax);
+ void setConstellationPenSize(int size);
+ void setFrequencyAxis(double min, double max);
+
+ void setUpdateTime(double t);
+
+protected:
+
+private:
+
+ gruel::mutex d_mutex;
+ int64_t _dataPoints;
+ std::string _title;
+ double _centerFrequency;
+ double _startFrequency;
+ double _stopFrequency;
+ float _powerValue;
+ bool _windowOpennedFlag;
+ int _windowType;
+ int64_t _lastDataPointCount;
+ int _fftSize;
+ gruel::high_res_timer_type _lastGUIUpdateTime;
+ unsigned int _pendingGUIUpdateEventsCount;
+ int _droppedEntriesCount;
+ bool _fftBuffersCreatedFlag;
+ double _updateTime;
+
+ SpectrumDisplayForm* _spectrumDisplayForm;
+
+ float* _fftPoints;
+ double* _realTimeDomainPoints;
+ double* _imagTimeDomainPoints;
+};
+
+#endif /* SPECTRUM_GUI_CLASS_HPP */