SDRAngel  4.11.5
Developer docs for <a href="https://github.com/f4exb/sdrangel">SDRangel<\a>, an Open Source Qt5 / OpenGL 3.0+ SDR and signal analyzer frontend to various hardware.
datvdemodgui.h
Go to the documentation of this file.
1 // Copyright (C) 2018 F4HKW //
3 // for F4EXB / SDRAngel //
4 // using LeanSDR Framework (C) 2016 F4DAV //
5 // //
6 // This program is free software; you can redistribute it and/or modify //
7 // it under the terms of the GNU General Public License as published by //
8 // the Free Software Foundation as version 3 of the License, or //
9 // (at your option) any later version. //
10 // //
11 // This program is distributed in the hope that it will be useful, //
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of //
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
14 // GNU General Public License V3 for more details. //
15 // //
16 // You should have received a copy of the GNU General Public License //
17 // along with this program. If not, see <http://www.gnu.org/licenses/>. //
19 
20 #ifndef INCLUDE_DATVDEMODGUI_H
21 #define INCLUDE_DATVDEMODGUI_H
22 
23 #include "gui/rollupwidget.h"
25 #include "dsp/channelmarker.h"
26 #include "dsp/movingaverage.h"
27 
28 #include "datvdemod.h"
29 
30 #include <QTimer>
31 
32 
33 class PluginAPI;
34 class DeviceUISet;
35 class BasebandSampleSink;
36 class DownChannelizer;
37 
38 namespace Ui
39 {
40  class DATVDemodGUI;
41 }
42 
44 {
45  Q_OBJECT
46 
47 public:
48  static DATVDemodGUI* create(PluginAPI* objPluginAPI, DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
49  virtual void destroy();
50 
51  void setName(const QString& strName);
52  QString getName() const;
53  virtual qint64 getCenterFrequency() const;
54  virtual void setCenterFrequency(qint64 intCenterFrequency);
55 
56  void resetToDefaults();
57  QByteArray serialize() const;
58  bool deserialize(const QByteArray& arrData);
59 
60  virtual MessageQueue *getInputMessageQueue() { return &m_inputMessageQueue; }
61  virtual bool handleMessage(const Message& objMessage);
62 
63  static const QString m_strChannelID;
64 
65 private slots:
66  void channelMarkerChangedByCursor();
67  void channelMarkerHighlightedByCursor();
68 
69  void onWidgetRolled(QWidget* widget, bool rollDown);
70  void onMenuDoubleClicked();
71  void handleInputMessages();
72  void audioSelect();
73  void tick();
74 
75  void on_cmbStandard_currentIndexChanged(int index);
76  void on_cmbModulation_currentIndexChanged(const QString &arg1);
77  void on_cmbFEC_currentIndexChanged(const QString &arg1);
78  void on_chkViterbi_clicked();
79  void on_chkHardMetric_clicked();
80  void on_resetDefaults_clicked();
81  void on_spiSymbolRate_valueChanged(int arg1);
82  void on_spiNotchFilters_valueChanged(int arg1);
83  void on_chkAllowDrift_clicked();
84  void on_fullScreen_clicked();
85  void on_mouseEvent(QMouseEvent* obj);
86  void on_StreamDataAvailable(int *intPackets, int *intBytes, int *intPercent, qint64 *intTotalReceived);
87  void on_StreamMetaDataChanged(DataTSMetaData2 *objMetaData);
88  void on_chkFastlock_clicked();
89  void on_cmbFilter_currentIndexChanged(int index);
90  void on_spiRollOff_valueChanged(int arg1);
91  void on_spiExcursion_valueChanged(int arg1);
92  void on_deltaFrequency_changed(qint64 value);
93  void on_rfBandwidth_changed(qint64 value);
94  void on_audioMute_toggled(bool checked);
95  void on_audioVolume_valueChanged(int value);
96  void on_videoMute_toggled(bool checked);
97  void on_udpTS_clicked(bool checked);
98  void on_udpTSAddress_editingFinished();
99  void on_udpTSPort_editingFinished();
100 
101 private:
102  Ui::DATVDemodGUI* ui;
105 
113 
114  QTimer m_objTimer;
119 
126 
128 
129  explicit DATVDemodGUI(PluginAPI* objPluginAPI, DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel, QWidget* objParent = 0);
130  virtual ~DATVDemodGUI();
131 
132  void blockApplySettings(bool blnBlock);
133  void applySettings(bool force = false);
134  void displaySettings();
135  void displaySystemConfiguration();
136  QString formatBytes(qint64 intBytes);
137 
138  void displayRRCParameters(bool blnVisible);
139 
140  void leaveEvent(QEvent*);
141  void enterEvent(QEvent*);
142 };
143 
144 #endif // INCLUDE_DATVDEMODGUI_H
int m_modcodModulationIndex
Definition: datvdemodgui.h:123
int m_modcodCodeRateIndex
Definition: datvdemodgui.h:124
qint64 m_intLastSpeed
Definition: datvdemodgui.h:117
int m_intReadyDecodedData
Definition: datvdemodgui.h:118
virtual MessageQueue * getInputMessageQueue()
Definition: datvdemodgui.h:60
bool m_blnBasicSettingsShown
Definition: datvdemodgui.h:120
DATVDemod * m_objDATVDemod
Definition: datvdemodgui.h:109
bool m_blnButtonPlayClicked
Definition: datvdemodgui.h:122
bool m_cstlnSetByModcod
Definition: datvdemodgui.h:125
int m_intCenterFrequency
Definition: datvdemodgui.h:111
MovingAverageUtil< double, double, 4 > m_objMagSqAverage
Definition: datvdemodgui.h:127
static const QString m_strChannelID
Definition: datvdemodgui.h:63
bool m_blnDoApplySettings
Definition: datvdemodgui.h:121
ChannelMarker m_objChannelMarker
Definition: datvdemodgui.h:106
void * create(QString type)
DownChannelizer * m_objChannelizer
Definition: datvdemodgui.h:108
PluginAPI * m_objPluginAPI
Definition: datvdemodgui.h:103
MessageQueue m_inputMessageQueue
Definition: datvdemodgui.h:110
qint64 m_intPreviousDecodedData
Definition: datvdemodgui.h:115
DATVDemodSettings m_settings
Definition: datvdemodgui.h:112
QTimer m_objTimer
Definition: datvdemodgui.h:114
DeviceUISet * m_deviceUISet
Definition: datvdemodgui.h:104
Ui::DATVDemodGUI * ui
Definition: datvdemodgui.h:102
ThreadedBasebandSampleSink * m_objThreadedChannelizer
Definition: datvdemodgui.h:107
qint64 m_intLastDecodedData
Definition: datvdemodgui.h:116