mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-31 13:10:19 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			140 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			140 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			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
 | |
| 
 | |
| #include <QtGui>
 | |
| #include <QFrame>
 | |
| #include <QImage>
 | |
| #include <QToolTip>
 | |
| #include <cstring>
 | |
| #include "commons.h"
 | |
| 
 | |
| #define VERT_DIVS 7	//specify grid screen divisions
 | |
| #define HORZ_DIVS 20
 | |
| 
 | |
| class CPlotter : public QFrame
 | |
| {
 | |
|   Q_OBJECT
 | |
| public:
 | |
|   explicit CPlotter(QWidget *parent = 0);
 | |
|   ~CPlotter();
 | |
| 
 | |
|   QSize minimumSizeHint() const override;
 | |
|   QSize sizeHint() const override;
 | |
|   QColor  m_ColorTbl[256];
 | |
|   bool    m_bDecodeFinished;
 | |
|   int     m_plotZero;
 | |
|   int     m_plotGain;
 | |
|   float   m_fSpan;
 | |
|   qint32  m_nSpan;
 | |
|   qint32  m_binsPerPixel;
 | |
|   qint32  m_fQSO;
 | |
|   qint32  m_DF;
 | |
|   qint32  m_tol;
 | |
|   qint32  m_fCal;
 | |
| 
 | |
|   void draw(float sw[], int i0, float splot[]);		//Update the waterfalls
 | |
|   void SetRunningState(bool running);
 | |
|   void setPlotZero(int plotZero);
 | |
|   int  getPlotZero();
 | |
|   void setPlotGain(int plotGain);
 | |
|   int  getPlotGain();
 | |
|   void SetCenterFreq(int f);
 | |
|   qint64 centerFreq();
 | |
|   void SetStartFreq(quint64 f);
 | |
|   qint64 startFreq();
 | |
|   void SetFreqOffset(quint64 f);
 | |
|   qint64 freqOffset();
 | |
|   int  plotWidth();
 | |
|   void setNSpan(int n);
 | |
|   void UpdateOverlay();
 | |
|   void setDataFromDisk(bool b);
 | |
|   void setTol(int n);
 | |
|   void setBinsPerPixel(int n);
 | |
|   int  binsPerPixel();
 | |
|   void setFQSO(int n, bool bf);
 | |
|   void setFcal(int n);
 | |
|   void setNkhz(int n);
 | |
|   void DecodeFinished();
 | |
|   void DrawOverlay();
 | |
|   int  fQSO();
 | |
|   int  DF();
 | |
|   int  autoZero();
 | |
|   void setPalette(QString palette);
 | |
|   void setFsample(int n);
 | |
|   void setMode65(int n);
 | |
|   void set2Dspec(bool b);
 | |
|   double fGreen();
 | |
|   void setLockTxRx(bool b);
 | |
|   double rxFreq();
 | |
|   double txFreq();
 | |
| //  void updateFreqLabel();
 | |
| 
 | |
| signals:
 | |
|   void freezeDecode0(int n);
 | |
|   void freezeDecode1(int n);
 | |
| 
 | |
| protected:
 | |
|   //re-implemented widget event handlers
 | |
|   void paintEvent(QPaintEvent *event) override;
 | |
|   void resizeEvent(QResizeEvent* event) override;
 | |
|   void mouseMoveEvent(QMouseEvent * event) override;
 | |
| 
 | |
| private:
 | |
| 
 | |
|   void MakeFrequencyStrs();
 | |
|   void UTCstr();
 | |
|   int XfromFreq(float f);
 | |
|   float FreqfromX(int x);
 | |
|   qint64 RoundFreq(qint64 freq, int resolution);
 | |
| 
 | |
|   QPixmap m_WaterfallPixmap;
 | |
|   QPixmap m_ZoomWaterfallPixmap;
 | |
|   QPixmap m_2DPixmap;
 | |
|   unsigned char m_zwf[32768*400];
 | |
|   QPixmap m_ScalePixmap;
 | |
|   QPixmap m_ZoomScalePixmap;
 | |
|   QSize   m_Size;
 | |
|   QString m_Str;
 | |
|   QString m_HDivText[483];
 | |
|   bool    m_Running;
 | |
|   bool    m_paintEventBusy;
 | |
|   bool    m_2Dspec;
 | |
|   bool    m_paintAllZoom;
 | |
|   bool    m_bLockTxRx;
 | |
|   double  m_CenterFreq;
 | |
|   double  m_fGreen;
 | |
|   double  m_TXfreq;
 | |
|   qint64  m_StartFreq;
 | |
|   qint64  m_ZoomStartFreq;
 | |
|   qint64  m_FreqOffset;
 | |
|   qint32  m_dBStepSize;
 | |
|   qint32  m_FreqUnits;
 | |
|   qint32  m_hdivs;
 | |
|   bool    m_dataFromDisk;
 | |
|   QString m_sutc;
 | |
|   qint32  m_line;
 | |
|   qint32  m_hist1[256];
 | |
|   qint32  m_hist2[256];
 | |
|   qint32  m_z1;
 | |
|   qint32  m_z2;
 | |
|   qint32  m_nkhz;
 | |
|   qint32  m_fSample;
 | |
|   qint32  m_mode65;
 | |
|   qint32  m_i0;
 | |
|   qint32  m_xClick;
 | |
|   qint32  m_TXkHz;
 | |
|   qint32  m_TxDF;
 | |
| 
 | |
| private slots:
 | |
|   void mousePressEvent(QMouseEvent *event) override;
 | |
|   void mouseDoubleClickEvent(QMouseEvent *event) override;
 | |
| };
 | |
| 
 | |
| #endif // PLOTTER_H
 |