| 
									
										
										
										
											2014-05-21 18:31:14 +01:00
										 |  |  | #ifndef INCLUDE_SSBDEMODGUI_H
 | 
					
						
							|  |  |  | #define INCLUDE_SSBDEMODGUI_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-21 01:09:47 +01:00
										 |  |  | #include <QIcon>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-10-04 06:16:15 +02:00
										 |  |  | #include "channel/channelgui.h"
 | 
					
						
							| 
									
										
										
										
											2015-08-25 00:48:56 +02:00
										 |  |  | #include "dsp/channelmarker.h"
 | 
					
						
							| 
									
										
										
										
											2015-10-04 10:50:26 +02:00
										 |  |  | #include "dsp/movingaverage.h"
 | 
					
						
							| 
									
										
										
										
											2017-09-16 22:23:31 +02:00
										 |  |  | #include "util/messagequeue.h"
 | 
					
						
							| 
									
										
										
										
											2017-10-02 01:45:19 +02:00
										 |  |  | #include "ssbdemodsettings.h"
 | 
					
						
							| 
									
										
										
										
											2014-05-21 18:31:14 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | class PluginAPI; | 
					
						
							| 
									
										
										
										
											2017-10-31 08:24:05 +01:00
										 |  |  | class DeviceUISet; | 
					
						
							| 
									
										
										
										
											2014-05-21 18:31:14 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | class AudioFifo; | 
					
						
							|  |  |  | class SSBDemod; | 
					
						
							|  |  |  | class SpectrumVis; | 
					
						
							| 
									
										
										
										
											2017-11-09 01:03:05 +01:00
										 |  |  | class BasebandSampleSink; | 
					
						
							| 
									
										
										
										
											2014-05-21 18:31:14 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | namespace Ui { | 
					
						
							|  |  |  | 	class SSBDemodGUI; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-10-04 06:16:15 +02:00
										 |  |  | class SSBDemodGUI : public ChannelGUI { | 
					
						
							| 
									
										
										
										
											2014-05-21 18:31:14 +01:00
										 |  |  | 	Q_OBJECT | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2017-11-09 01:03:05 +01:00
										 |  |  | 	static SSBDemodGUI* create(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel); | 
					
						
							| 
									
										
										
										
											2017-09-16 10:45:08 +02:00
										 |  |  | 	virtual void destroy(); | 
					
						
							| 
									
										
										
										
											2014-05-21 18:31:14 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	void resetToDefaults(); | 
					
						
							|  |  |  | 	QByteArray serialize() const; | 
					
						
							|  |  |  | 	bool deserialize(const QByteArray& data); | 
					
						
							| 
									
										
										
										
											2017-09-16 22:23:31 +02:00
										 |  |  | 	virtual MessageQueue *getInputMessageQueue() { return &m_inputMessageQueue; } | 
					
						
							| 
									
										
										
										
											2014-05-21 18:31:14 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-14 02:01:44 +01:00
										 |  |  | public slots: | 
					
						
							|  |  |  | 	void channelMarkerChangedByCursor(); | 
					
						
							| 
									
										
										
										
											2017-11-14 22:58:35 +01:00
										 |  |  |     void channelMarkerHighlightedByCursor(); | 
					
						
							| 
									
										
										
										
											2014-05-21 18:31:14 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | private: | 
					
						
							|  |  |  | 	Ui::SSBDemodGUI* ui; | 
					
						
							|  |  |  | 	PluginAPI* m_pluginAPI; | 
					
						
							| 
									
										
										
										
											2017-10-31 08:24:05 +01:00
										 |  |  | 	DeviceUISet* m_deviceUISet; | 
					
						
							| 
									
										
										
										
											2015-08-25 00:48:56 +02:00
										 |  |  | 	ChannelMarker m_channelMarker; | 
					
						
							| 
									
										
										
										
											2017-10-02 01:45:19 +02:00
										 |  |  | 	SSBDemodSettings m_settings; | 
					
						
							| 
									
										
										
										
											2015-08-19 01:02:52 +02:00
										 |  |  | 	bool m_doApplySettings; | 
					
						
							| 
									
										
										
										
											2017-11-03 19:29:48 +01:00
										 |  |  |     int m_spectrumRate; | 
					
						
							| 
									
										
										
										
											2015-12-05 18:48:15 +01:00
										 |  |  | 	bool m_audioBinaural; | 
					
						
							| 
									
										
										
										
											2015-12-05 19:57:48 +01:00
										 |  |  | 	bool m_audioFlipChannels; | 
					
						
							| 
									
										
										
										
											2016-04-05 09:20:02 +02:00
										 |  |  | 	bool m_audioMute; | 
					
						
							| 
									
										
										
										
											2017-07-26 01:44:57 +02:00
										 |  |  | 	bool m_squelchOpen; | 
					
						
							| 
									
										
										
										
											2020-08-02 10:10:26 +02:00
										 |  |  |     int m_audioSampleRate; | 
					
						
							| 
									
										
										
										
											2017-08-17 17:43:27 +02:00
										 |  |  | 	uint32_t m_tickCount; | 
					
						
							| 
									
										
										
										
											2014-05-21 18:31:14 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	SSBDemod* m_ssbDemod; | 
					
						
							|  |  |  | 	SpectrumVis* m_spectrumVis; | 
					
						
							| 
									
										
										
										
											2017-09-16 22:23:31 +02:00
										 |  |  | 	MessageQueue m_inputMessageQueue; | 
					
						
							| 
									
										
										
										
											2014-05-21 18:31:14 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-21 01:09:47 +01:00
										 |  |  | 	QIcon m_iconDSBUSB; | 
					
						
							|  |  |  | 	QIcon m_iconDSBLSB; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-09 01:03:05 +01:00
										 |  |  | 	explicit SSBDemodGUI(PluginAPI* pluginAPI, DeviceUISet* deviceUISet, BasebandSampleSink *rxChannel, QWidget* parent = 0); | 
					
						
							| 
									
										
										
										
											2015-08-19 01:02:52 +02:00
										 |  |  | 	virtual ~SSBDemodGUI(); | 
					
						
							| 
									
										
										
										
											2014-05-21 18:31:14 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-03 11:20:27 +01:00
										 |  |  |     bool blockApplySettings(bool block); | 
					
						
							| 
									
										
										
										
											2017-10-02 01:45:19 +02:00
										 |  |  | 	void applySettings(bool force = false); | 
					
						
							| 
									
										
										
										
											2019-12-03 18:49:52 +01:00
										 |  |  | 	void applyBandwidths(unsigned int spanLog2, bool force = false); | 
					
						
							|  |  |  |     unsigned int spanLog2Max(); | 
					
						
							| 
									
										
										
										
											2017-07-27 21:14:50 +02:00
										 |  |  | 	void displaySettings(); | 
					
						
							| 
									
										
										
										
											2019-09-23 01:25:17 +02:00
										 |  |  |     void displayStreamIndex(); | 
					
						
							| 
									
										
										
										
											2017-07-27 10:50:41 +02:00
										 |  |  | 	void displayAGCPowerThreshold(int value); | 
					
						
							| 
									
										
										
										
											2019-06-09 09:25:18 +02:00
										 |  |  |     void displayAGCThresholdGate(int value); | 
					
						
							| 
									
										
										
										
											2020-10-03 19:51:14 +02:00
										 |  |  | 	bool handleMessage(const Message& message); | 
					
						
							| 
									
										
										
										
											2017-07-27 10:50:41 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-11 11:03:01 +02:00
										 |  |  | 	void leaveEvent(QEvent*); | 
					
						
							|  |  |  | 	void enterEvent(QEvent*); | 
					
						
							| 
									
										
										
										
											2017-11-14 02:01:44 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | private slots: | 
					
						
							|  |  |  | 	void on_deltaFrequency_changed(qint64 value); | 
					
						
							|  |  |  | 	void on_audioBinaural_toggled(bool binaural); | 
					
						
							|  |  |  | 	void on_audioFlipChannels_toggled(bool flip); | 
					
						
							|  |  |  | 	void on_dsb_toggled(bool dsb); | 
					
						
							|  |  |  | 	void on_BW_valueChanged(int value); | 
					
						
							|  |  |  | 	void on_lowCut_valueChanged(int value); | 
					
						
							|  |  |  | 	void on_volume_valueChanged(int value); | 
					
						
							|  |  |  | 	void on_agc_toggled(bool checked); | 
					
						
							|  |  |  |     void on_agcClamping_toggled(bool checked); | 
					
						
							|  |  |  | 	void on_agcTimeLog2_valueChanged(int value); | 
					
						
							|  |  |  |     void on_agcPowerThreshold_valueChanged(int value); | 
					
						
							|  |  |  |     void on_agcThresholdGate_valueChanged(int value); | 
					
						
							|  |  |  | 	void on_audioMute_toggled(bool checked); | 
					
						
							|  |  |  | 	void on_spanLog2_valueChanged(int value); | 
					
						
							| 
									
										
										
										
											2017-11-21 01:09:47 +01:00
										 |  |  | 	void on_flipSidebands_clicked(bool checked); | 
					
						
							| 
									
										
										
										
											2017-11-14 02:01:44 +01:00
										 |  |  | 	void onWidgetRolled(QWidget* widget, bool rollDown); | 
					
						
							| 
									
										
										
										
											2017-11-21 21:33:46 +01:00
										 |  |  |     void onMenuDialogCalled(const QPoint& p); | 
					
						
							| 
									
										
										
										
											2018-03-27 11:17:11 +02:00
										 |  |  |     void handleInputMessages(); | 
					
						
							|  |  |  |     void audioSelect(); | 
					
						
							| 
									
										
										
										
											2017-11-14 02:01:44 +01:00
										 |  |  | 	void tick(); | 
					
						
							| 
									
										
										
										
											2014-05-21 18:31:14 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif // INCLUDE_SSBDEMODGUI_H
 |