| 
									
										
										
										
											2014-05-18 16:52:39 +01:00
										 |  |  | #ifndef INCLUDE_TCPSRCGUI_H
 | 
					
						
							|  |  |  | #define INCLUDE_TCPSRCGUI_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <QHostAddress>
 | 
					
						
							|  |  |  | #include "gui/rollupwidget.h"
 | 
					
						
							|  |  |  | #include "plugin/plugingui.h"
 | 
					
						
							| 
									
										
										
										
											2015-08-25 00:52:37 +02:00
										 |  |  | #include "dsp/channelmarker.h"
 | 
					
						
							| 
									
										
										
										
											2015-11-18 06:05:13 +01:00
										 |  |  | #include "dsp/movingaverage.h"
 | 
					
						
							| 
									
										
										
										
											2016-10-02 13:18:07 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | #include "../../channelrx/tcpsrc/tcpsrc.h"
 | 
					
						
							| 
									
										
										
										
											2014-05-18 16:52:39 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | class PluginAPI; | 
					
						
							| 
									
										
										
										
											2016-10-11 01:17:55 +02:00
										 |  |  | class DeviceSourceAPI; | 
					
						
							| 
									
										
										
										
											2016-10-03 15:55:16 +02:00
										 |  |  | class ThreadedBasebandSampleSink; | 
					
						
							| 
									
										
										
										
											2016-10-02 21:52:39 +02:00
										 |  |  | class DownChannelizer; | 
					
						
							| 
									
										
										
										
											2014-05-18 16:52:39 +01:00
										 |  |  | class TCPSrc; | 
					
						
							|  |  |  | class SpectrumVis; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace Ui { | 
					
						
							|  |  |  | 	class TCPSrcGUI; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class TCPSrcGUI : public RollupWidget, public PluginGUI { | 
					
						
							|  |  |  | 	Q_OBJECT | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2016-10-11 01:17:55 +02:00
										 |  |  | 	static TCPSrcGUI* create(PluginAPI* pluginAPI, DeviceSourceAPI *deviceAPI); | 
					
						
							| 
									
										
										
										
											2014-05-18 16:52:39 +01:00
										 |  |  | 	void destroy(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	void setName(const QString& name); | 
					
						
							| 
									
										
										
										
											2015-06-07 03:30:28 +02:00
										 |  |  | 	QString getName() const; | 
					
						
							| 
									
										
										
										
											2015-09-29 03:35:14 +02:00
										 |  |  | 	virtual qint64 getCenterFrequency() const; | 
					
						
							|  |  |  | 	virtual void setCenterFrequency(qint64 centerFrequency); | 
					
						
							| 
									
										
										
										
											2014-05-18 16:52:39 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	void resetToDefaults(); | 
					
						
							|  |  |  | 	QByteArray serialize() const; | 
					
						
							|  |  |  | 	bool deserialize(const QByteArray& data); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-17 08:29:34 +02:00
										 |  |  | 	virtual bool handleMessage(const Message& message); | 
					
						
							| 
									
										
										
										
											2014-05-18 16:52:39 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-16 19:37:53 +02:00
										 |  |  | 	static const QString m_channelID; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-05-18 16:52:39 +01:00
										 |  |  | private slots: | 
					
						
							|  |  |  | 	void channelMarkerChanged(); | 
					
						
							| 
									
										
										
										
											2015-11-18 05:36:29 +01:00
										 |  |  | 	void on_deltaFrequency_changed(quint64 value); | 
					
						
							|  |  |  | 	void on_deltaMinus_toggled(bool minus); | 
					
						
							| 
									
										
										
										
											2014-05-18 16:52:39 +01:00
										 |  |  | 	void on_sampleFormat_currentIndexChanged(int index); | 
					
						
							|  |  |  | 	void on_sampleRate_textEdited(const QString& arg1); | 
					
						
							|  |  |  | 	void on_rfBandwidth_textEdited(const QString& arg1); | 
					
						
							|  |  |  | 	void on_tcpPort_textEdited(const QString& arg1); | 
					
						
							|  |  |  | 	void on_applyBtn_clicked(); | 
					
						
							|  |  |  | 	void onWidgetRolled(QWidget* widget, bool rollDown); | 
					
						
							|  |  |  | 	void onMenuDoubleClicked(); | 
					
						
							| 
									
										
										
										
											2014-12-28 19:04:26 +00:00
										 |  |  | 	void on_boost_valueChanged(int value); | 
					
						
							| 
									
										
										
										
											2015-11-18 06:05:13 +01:00
										 |  |  | 	void tick(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-05-18 16:52:39 +01:00
										 |  |  | private: | 
					
						
							|  |  |  | 	Ui::TCPSrcGUI* ui; | 
					
						
							|  |  |  | 	PluginAPI* m_pluginAPI; | 
					
						
							| 
									
										
										
										
											2016-10-11 01:17:55 +02:00
										 |  |  | 	DeviceSourceAPI* m_deviceAPI; | 
					
						
							| 
									
										
										
										
											2014-11-21 19:44:19 +00:00
										 |  |  | 	TCPSrc* m_tcpSrc; | 
					
						
							| 
									
										
										
										
											2015-08-25 00:52:37 +02:00
										 |  |  | 	ChannelMarker m_channelMarker; | 
					
						
							| 
									
										
										
										
											2017-05-12 00:03:56 +02:00
										 |  |  | 	MovingAverage<double> m_channelPowerDbAvg; | 
					
						
							| 
									
										
										
										
											2014-05-18 16:52:39 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// settings
 | 
					
						
							|  |  |  | 	TCPSrc::SampleFormat m_sampleFormat; | 
					
						
							|  |  |  | 	Real m_outputSampleRate; | 
					
						
							|  |  |  | 	Real m_rfBandwidth; | 
					
						
							| 
									
										
										
										
											2014-12-28 19:04:26 +00:00
										 |  |  | 	int m_boost; | 
					
						
							| 
									
										
										
										
											2014-05-18 16:52:39 +01:00
										 |  |  | 	int m_tcpPort; | 
					
						
							|  |  |  | 	bool m_basicSettingsShown; | 
					
						
							| 
									
										
										
										
											2015-08-19 01:02:52 +02:00
										 |  |  | 	bool m_doApplySettings; | 
					
						
							| 
									
										
										
										
											2014-05-18 16:52:39 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// RF path
 | 
					
						
							| 
									
										
										
										
											2016-10-03 15:55:16 +02:00
										 |  |  | 	ThreadedBasebandSampleSink* m_threadedChannelizer; | 
					
						
							| 
									
										
										
										
											2016-10-02 21:52:39 +02:00
										 |  |  | 	DownChannelizer* m_channelizer; | 
					
						
							| 
									
										
										
										
											2014-05-18 16:52:39 +01:00
										 |  |  | 	SpectrumVis* m_spectrumVis; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-11 01:17:55 +02:00
										 |  |  | 	explicit TCPSrcGUI(PluginAPI* pluginAPI, DeviceSourceAPI *deviceAPI, QWidget* parent = 0); | 
					
						
							| 
									
										
										
										
											2015-08-17 08:29:34 +02:00
										 |  |  | 	virtual ~TCPSrcGUI(); | 
					
						
							| 
									
										
										
										
											2014-05-18 16:52:39 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-19 01:02:52 +02:00
										 |  |  |     void blockApplySettings(bool block); | 
					
						
							| 
									
										
										
										
											2014-05-18 16:52:39 +01:00
										 |  |  | 	void applySettings(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	void addConnection(quint32 id, const QHostAddress& peerAddress, int peerPort); | 
					
						
							|  |  |  | 	void delConnection(quint32 id); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif // INCLUDE_TCPSRCGUI_H
 |