182 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			182 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   | // -*- Mode: C++ -*- | ||
|  | /////////////////////////////////////////////////////////////////////////// | ||
|  | // Some code in this file and accompanying files is based on work by | ||
|  | // Moe Wheatley, AE4Y, released under the "Simplified BSD License". | ||
|  | // For more details see the accompanying file LICENSE_WHEATLEY.TXT | ||
|  | /////////////////////////////////////////////////////////////////////////// | ||
|  | 
 | ||
|  | #ifndef PLOTTER_H | ||
|  | #define PLOTTER_H | ||
|  | 
 | ||
|  | #ifdef QT5 | ||
|  | #include <QtWidgets> | ||
|  | #else | ||
|  | #include <QtGui> | ||
|  | #endif | ||
|  | #include <QFrame> | ||
|  | #include <QImage> | ||
|  | #include <QVector> | ||
|  | #include <cstring> | ||
|  | 
 | ||
|  | #define VERT_DIVS 7	//specify grid screen divisions | ||
|  | #define HORZ_DIVS 20 | ||
|  | 
 | ||
|  | extern bool g_single_decode; | ||
|  | 
 | ||
|  | class CPlotter : public QFrame | ||
|  | { | ||
|  |   Q_OBJECT; | ||
|  | 
 | ||
|  | public: | ||
|  |   explicit CPlotter(QWidget *parent = 0); | ||
|  |   ~CPlotter(); | ||
|  | 
 | ||
|  |   QSize minimumSizeHint() const; | ||
|  |   QSize sizeHint() const; | ||
|  |   bool    m_bScaleOK; | ||
|  | 
 | ||
|  |   void draw(float swide[], bool bScroll, bool bRed);		//Update the waterfall | ||
|  |   void SetRunningState(bool running); | ||
|  |   void setPlotZero(int plotZero); | ||
|  |   int  plotZero(); | ||
|  |   void setPlotGain(int plotGain); | ||
|  |   int  plotGain(); | ||
|  |   int  plot2dGain(); | ||
|  |   void setPlot2dGain(int n); | ||
|  |   int  plot2dZero(); | ||
|  |   void setPlot2dZero(int plot2dZero); | ||
|  |   void setStartFreq(int f); | ||
|  |   int startFreq(); | ||
|  |   int  plotWidth(); | ||
|  |   void UpdateOverlay(); | ||
|  |   void setDataFromDisk(bool b); | ||
|  |   void setRxRange(int fMin); | ||
|  |   void setBinsPerPixel(int n); | ||
|  |   int  binsPerPixel(); | ||
|  |   void setWaterfallAvg(int n); | ||
|  |   void setRxFreq(int n); | ||
|  |   void DrawOverlay(); | ||
|  |   int  rxFreq(); | ||
|  |   void setFsample(int n); | ||
|  |   void setNsps(int ntrperiod, int nsps); | ||
|  |   void setTxFreq(int n); | ||
|  |   void setMode(QString mode); | ||
|  |   void setSubMode(int n); | ||
|  |   void setModeTx(QString modeTx); | ||
|  |   void SetPercent2DScreen(int percent); | ||
|  |   int  Fmax(); | ||
|  |   void setDialFreq(double d); | ||
|  |   void setCurrent(bool b) {m_bCurrent = b;} | ||
|  |   bool current() const {return m_bCurrent;} | ||
|  |   void setCumulative(bool b) {m_bCumulative = b;} | ||
|  |   bool cumulative() const {return m_bCumulative;} | ||
|  |   void setLinearAvg(bool b) {m_bLinearAvg = b;} | ||
|  |   bool linearAvg() const {return m_bLinearAvg;} | ||
|  |   void setBreadth(qint32 w) {m_w = w;} | ||
|  |   qint32 breadth() const {return m_w;} | ||
|  |   float fSpan() const {return m_fSpan;} | ||
|  |   void setColours(QVector<QColor> const& cl); | ||
|  |   void setFlatten(bool b1, bool b2); | ||
|  |   void setTol(int n); | ||
|  |   void setRxBand(QString band); | ||
|  |   void setReference(bool b) {m_bReference = b;} | ||
|  |   bool Reference() const {return m_bReference;} | ||
|  |   void drawRed(int ia, int ib, float swide[]); | ||
|  |   void setVHF(bool bVHF); | ||
|  |   void setRedFile(QString fRed); | ||
|  | 
 | ||
|  | signals: | ||
|  |   void freezeDecode1(int n); | ||
|  |   void setFreq1(int rxFreq, int txFreq); | ||
|  | 
 | ||
|  | protected: | ||
|  |   //re-implemented widget event handlers | ||
|  |   void paintEvent(QPaintEvent *event); | ||
|  |   void resizeEvent(QResizeEvent* event); | ||
|  | 
 | ||
|  | private: | ||
|  | 
 | ||
|  |   void MakeFrequencyStrs(); | ||
|  |   int XfromFreq(float f); | ||
|  |   float FreqfromX(int x); | ||
|  | 
 | ||
|  |   bool    m_bCurrent; | ||
|  |   bool    m_bCumulative; | ||
|  |   bool    m_bLinearAvg; | ||
|  |   bool    m_bReference; | ||
|  |   bool    m_bReference0; | ||
|  |   bool    m_bVHF; | ||
|  | 
 | ||
|  |   float   m_fSpan; | ||
|  | 
 | ||
|  |   qint32  m_plotZero; | ||
|  |   qint32  m_plotGain; | ||
|  |   qint32  m_plot2dGain; | ||
|  |   qint32  m_plot2dZero; | ||
|  |   qint32  m_binsPerPixel; | ||
|  |   qint32  m_waterfallAvg; | ||
|  |   qint32  m_w; | ||
|  |   qint32  m_Flatten; | ||
|  |   qint32  m_nSubMode; | ||
|  |   qint32  m_ia; | ||
|  |   qint32  m_ib; | ||
|  | 
 | ||
|  |   QPixmap m_WaterfallPixmap; | ||
|  |   QPixmap m_2DPixmap; | ||
|  |   QPixmap m_ScalePixmap; | ||
|  |   QPixmap m_OverlayPixmap; | ||
|  | 
 | ||
|  |   QSize   m_Size; | ||
|  |   QString m_Str; | ||
|  |   QString m_HDivText[483]; | ||
|  |   QString m_mode; | ||
|  |   QString m_modeTx; | ||
|  |   QString m_rxBand; | ||
|  |   QString m_redFile; | ||
|  | 
 | ||
|  |   bool    m_Running; | ||
|  |   bool    m_paintEventBusy; | ||
|  |   bool    m_dataFromDisk; | ||
|  | 
 | ||
|  |   double  m_fftBinWidth; | ||
|  |   double  m_dialFreq; | ||
|  |   double  m_xOffset; | ||
|  | 
 | ||
|  |   float   m_sum[2048]; | ||
|  | 
 | ||
|  |   qint32  m_dBStepSize; | ||
|  |   qint32  m_FreqUnits; | ||
|  |   qint32  m_hdivs; | ||
|  |   qint32  m_line; | ||
|  |   qint32  m_fSample; | ||
|  |   qint32  m_xClick; | ||
|  |   qint32  m_freqPerDiv; | ||
|  |   qint32  m_nsps; | ||
|  |   qint32  m_Percent2DScreen; | ||
|  |   qint32  m_Percent2DScreen0; | ||
|  |   qint32  m_h; | ||
|  |   qint32  m_h1; | ||
|  |   qint32  m_h2; | ||
|  |   qint32  m_TRperiod; | ||
|  |   qint32  m_rxFreq; | ||
|  |   qint32  m_txFreq; | ||
|  |   qint32  m_fMin; | ||
|  |   qint32  m_fMax; | ||
|  |   qint32  m_startFreq; | ||
|  |   qint32  m_tol; | ||
|  | 
 | ||
|  |   char    m_sutc[6]; | ||
|  | 
 | ||
|  | private slots: | ||
|  |   void mousePressEvent(QMouseEvent *event); | ||
|  |   void mouseDoubleClickEvent(QMouseEvent *event); | ||
|  | }; | ||
|  | 
 | ||
|  | extern QVector<QColor> g_ColorTbl; | ||
|  | 
 | ||
|  | extern "C" { | ||
|  |   void flat4_(float swide[], int* iz, int* nflatten); | ||
|  | } | ||
|  | 
 | ||
|  | #endif // PLOTTER_H |