| 
									
										
										
										
											2022-12-04 10:17:02 -05:00
										 |  |  | #ifndef MAINWINDOW_H
 | 
					
						
							|  |  |  | #define MAINWINDOW_H
 | 
					
						
							|  |  |  | #include <QtGui>
 | 
					
						
							|  |  |  | #include <QtWidgets>
 | 
					
						
							|  |  |  | #include <QPointer>
 | 
					
						
							|  |  |  | #include <QScopedPointer>
 | 
					
						
							|  |  |  | #include <QLabel>
 | 
					
						
							|  |  |  | #include <QDateTime>
 | 
					
						
							|  |  |  | #include <QHash>
 | 
					
						
							|  |  |  | #include "getfile.h"
 | 
					
						
							|  |  |  | #include "soundin.h"
 | 
					
						
							|  |  |  | #include "signalmeter.h"
 | 
					
						
							|  |  |  | #include "commons.h"
 | 
					
						
							|  |  |  | #include "sleep.h"
 | 
					
						
							|  |  |  | #include <QtConcurrent/QtConcurrent>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define NFFT 32768
 | 
					
						
							|  |  |  | #define NSMAX 5760000
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //--------------------------------------------------------------- MainWindow
 | 
					
						
							|  |  |  | namespace Ui { | 
					
						
							|  |  |  |   class MainWindow; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class QTimer; | 
					
						
							|  |  |  | class Astro; | 
					
						
							|  |  |  | class WideGraph; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class MainWindow : public QMainWindow | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   Q_OBJECT | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |   explicit MainWindow(QWidget *parent = 0); | 
					
						
							|  |  |  |   ~MainWindow(); | 
					
						
							|  |  |  |   bool m_network; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public slots: | 
					
						
							|  |  |  |   void showSoundInError(const QString& errorMsg); | 
					
						
							|  |  |  |   void showStatusMessage(const QString& statusMsg); | 
					
						
							|  |  |  |   void dataSink(int k); | 
					
						
							|  |  |  |   void diskDat(); | 
					
						
							|  |  |  |   void diskWriteFinished(); | 
					
						
							| 
									
										
										
										
											2022-12-09 19:08:35 -05:00
										 |  |  |   void decoderFinished(); | 
					
						
							| 
									
										
										
										
											2022-12-04 10:17:02 -05:00
										 |  |  |   void freezeDecode(int n); | 
					
						
							|  |  |  |   void guiUpdate(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | private: | 
					
						
							|  |  |  |   virtual void keyPressEvent (QKeyEvent *) override; | 
					
						
							|  |  |  |   virtual bool eventFilter (QObject *, QEvent *) override; | 
					
						
							|  |  |  |   virtual void closeEvent (QCloseEvent *) override; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | private slots: | 
					
						
							|  |  |  |   void on_monitorButton_clicked(); | 
					
						
							|  |  |  |   void on_actionExit_triggered(); | 
					
						
							|  |  |  |   void on_actionAbout_triggered(); | 
					
						
							|  |  |  |   void on_actionLinrad_triggered(); | 
					
						
							|  |  |  |   void on_actionCuteSDR_triggered(); | 
					
						
							|  |  |  |   void on_tolSpinBox_valueChanged(int arg1); | 
					
						
							|  |  |  |   void on_actionAstro_Data_triggered(); | 
					
						
							|  |  |  |   void on_actionWide_Waterfall_triggered(); | 
					
						
							|  |  |  |   void on_actionOpen_triggered(); | 
					
						
							|  |  |  |   void on_actionOpen_next_in_directory_triggered(); | 
					
						
							|  |  |  |   void on_actionDecode_remaining_files_in_directory_triggered(); | 
					
						
							| 
									
										
										
										
											2022-12-11 08:35:28 -05:00
										 |  |  |   void on_actionDelete_all_iq_files_in_SaveDir_triggered(); | 
					
						
							| 
									
										
										
										
											2022-12-04 10:17:02 -05:00
										 |  |  |   void on_actionNone_triggered(); | 
					
						
							|  |  |  |   void on_actionSave_all_triggered(); | 
					
						
							|  |  |  |   void on_DecodeButton_clicked(); | 
					
						
							|  |  |  |   void decode(); | 
					
						
							|  |  |  |   void decodeBusy(bool b); | 
					
						
							|  |  |  |   void on_EraseButton_clicked(); | 
					
						
							|  |  |  |   void bumpDF(int n); | 
					
						
							| 
									
										
										
										
											2022-12-10 14:12:57 -05:00
										 |  |  |   void on_actionSettings_triggered(); | 
					
						
							| 
									
										
										
										
											2022-12-04 10:17:02 -05:00
										 |  |  |   void on_NBcheckBox_toggled(bool checked); | 
					
						
							|  |  |  |   void on_NBslider_valueChanged(int value); | 
					
						
							|  |  |  |   void on_actionAFMHot_triggered(); | 
					
						
							|  |  |  |   void on_actionBlue_triggered(); | 
					
						
							|  |  |  |   void on_actionQ65A_triggered(); | 
					
						
							|  |  |  |   void on_actionQ65B_triggered(); | 
					
						
							|  |  |  |   void on_actionQ65C_triggered(); | 
					
						
							|  |  |  |   void on_actionQ65D_triggered(); | 
					
						
							|  |  |  |   void on_actionQ65E_triggered(); | 
					
						
							| 
									
										
										
										
											2023-02-23 12:03:38 -05:00
										 |  |  |   void on_actionQuick_Start_Guide_to_Q65_triggered(); | 
					
						
							|  |  |  |   void on_actionQuick_Start_Guide_to_WSJT_X_2_7_and_QMAP_triggered(); | 
					
						
							| 
									
										
										
										
											2022-12-04 10:17:02 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | private: | 
					
						
							|  |  |  |   Ui::MainWindow *ui; | 
					
						
							|  |  |  |   QString m_appDir; | 
					
						
							|  |  |  |   QString m_settings_filename; | 
					
						
							|  |  |  |   QScopedPointer<Astro> m_astro_window; | 
					
						
							|  |  |  |   QScopedPointer<WideGraph> m_wide_graph_window; | 
					
						
							|  |  |  |   QPointer<QTimer> m_gui_timer; | 
					
						
							|  |  |  |   qint32  m_idInt; | 
					
						
							|  |  |  |   qint32  m_waterfallAvg; | 
					
						
							|  |  |  |   qint32  m_DF; | 
					
						
							|  |  |  |   qint32  m_tol; | 
					
						
							|  |  |  |   qint32  m_QSOfreq0; | 
					
						
							|  |  |  |   qint32  m_astroFont; | 
					
						
							|  |  |  |   qint32  m_timeout; | 
					
						
							|  |  |  |   qint32  m_fCal; | 
					
						
							|  |  |  |   qint32  m_txFreq; | 
					
						
							|  |  |  |   qint32  m_setftx; | 
					
						
							|  |  |  |   qint32  m_sec0; | 
					
						
							|  |  |  |   qint32  m_nutc0; | 
					
						
							|  |  |  |   qint32  m_nrx; | 
					
						
							|  |  |  |   qint32  m_hsym0; | 
					
						
							| 
									
										
										
										
											2022-12-05 17:17:51 -05:00
										 |  |  |   qint32  m_paInDevice; | 
					
						
							| 
									
										
										
										
											2022-12-04 10:17:02 -05:00
										 |  |  |   qint32  m_udpPort; | 
					
						
							|  |  |  |   qint32  m_NBslider; | 
					
						
							|  |  |  |   qint32  m_nsum; | 
					
						
							|  |  |  |   qint32  m_nsave; | 
					
						
							|  |  |  |   qint32  m_TRperiod; | 
					
						
							|  |  |  |   qint32  m_modeQ65; | 
					
						
							|  |  |  |   qint32  m_dB; | 
					
						
							| 
									
										
										
										
											2022-12-10 10:52:58 -05:00
										 |  |  |   qint32  m_fetched=0; | 
					
						
							| 
									
										
										
										
											2022-12-17 09:41:42 -05:00
										 |  |  |   qint32  m_hsymStop=302; | 
					
						
							| 
									
										
										
										
											2022-12-22 13:54:37 -05:00
										 |  |  |   qint32  m_nTransmitted=0; | 
					
						
							| 
									
										
										
										
											2023-01-19 12:31:04 -05:00
										 |  |  |   qint32  m_nDoubleClicked=0; | 
					
						
							| 
									
										
										
										
											2022-12-04 10:17:02 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |   double  m_fAdd; | 
					
						
							|  |  |  |   double  m_xavg; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   bool    m_monitoring; | 
					
						
							|  |  |  |   bool    m_diskData; | 
					
						
							|  |  |  |   bool    m_loopall; | 
					
						
							| 
									
										
										
										
											2023-01-16 17:45:14 -05:00
										 |  |  |   bool    m_decoderBusy=false; | 
					
						
							| 
									
										
										
										
											2022-12-04 10:17:02 -05:00
										 |  |  |   bool    m_restart; | 
					
						
							|  |  |  |   bool    m_call3Modified; | 
					
						
							|  |  |  |   bool    m_startAnother; | 
					
						
							|  |  |  |   bool    m_saveAll; | 
					
						
							|  |  |  |   bool    m_onlyEME; | 
					
						
							|  |  |  |   bool    m_kb8rq; | 
					
						
							|  |  |  |   bool    m_NB; | 
					
						
							|  |  |  |   bool    m_fs96000; | 
					
						
							| 
									
										
										
										
											2022-12-17 09:41:42 -05:00
										 |  |  |   bool    m_decode_called=false; | 
					
						
							| 
									
										
										
										
											2022-12-04 10:17:02 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |   float   m_gainx; | 
					
						
							|  |  |  |   float   m_gainy; | 
					
						
							|  |  |  |   float   m_phasex; | 
					
						
							|  |  |  |   float   m_phasey; | 
					
						
							|  |  |  |   float   m_pctZap; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   QRect   m_wideGraphGeom; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   QLabel* lab1;                            // labels in status bar
 | 
					
						
							| 
									
										
										
										
											2022-12-17 09:41:42 -05:00
										 |  |  |   QLabel* lab2;                            // labels in status bar
 | 
					
						
							|  |  |  |   QLabel* lab3;                            // labels in status bar
 | 
					
						
							| 
									
										
										
										
											2022-12-04 10:17:02 -05:00
										 |  |  |   QLabel* lab4; | 
					
						
							|  |  |  |   QLabel* lab5; | 
					
						
							|  |  |  |   QLabel* lab6; | 
					
						
							| 
									
										
										
										
											2022-12-05 19:59:15 -05:00
										 |  |  |   QLabel* lab7;                   //Why still needed?
 | 
					
						
							| 
									
										
										
										
											2022-12-04 10:17:02 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |   QMessageBox msgBox0; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   QFuture<void>* future1; | 
					
						
							|  |  |  |   QFuture<void>* future2; | 
					
						
							|  |  |  |   QFutureWatcher<void>* watcher1; | 
					
						
							|  |  |  |   QFutureWatcher<void>* watcher2; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-12-09 19:08:35 -05:00
										 |  |  |   QFutureWatcher<void> watcher3;     //For decoder
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-12-17 09:41:42 -05:00
										 |  |  |   QDateTime m_decoder_start_time; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-12-04 10:17:02 -05:00
										 |  |  |   QString m_path; | 
					
						
							|  |  |  |   QString m_pbdecoding_style1; | 
					
						
							|  |  |  |   QString m_pbmonitor_style; | 
					
						
							|  |  |  |   QString m_pbAutoOn_style; | 
					
						
							|  |  |  |   QString m_myCall; | 
					
						
							|  |  |  |   QString m_myGrid; | 
					
						
							|  |  |  |   QString m_hisCall; | 
					
						
							|  |  |  |   QString m_hisGrid; | 
					
						
							|  |  |  |   QString m_saveDir; | 
					
						
							|  |  |  |   QString m_azelDir; | 
					
						
							|  |  |  |   QString m_palette; | 
					
						
							|  |  |  |   QString m_dateTime; | 
					
						
							|  |  |  |   QString m_mode; | 
					
						
							| 
									
										
										
										
											2023-01-02 13:48:08 -05:00
										 |  |  |   QString m_UTC0=""; | 
					
						
							| 
									
										
										
										
											2022-12-04 10:17:02 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |   QHash<QString,bool> m_worked; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   SignalMeter *xSignalMeter; | 
					
						
							|  |  |  |   SignalMeter *ySignalMeter; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   SoundInThread soundInThread;             //Instantiate the audio threads
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   //---------------------------------------------------- private functions
 | 
					
						
							|  |  |  |   void readSettings(); | 
					
						
							|  |  |  |   void writeSettings(); | 
					
						
							|  |  |  |   void createStatusBar(); | 
					
						
							|  |  |  |   void updateStatusBar(); | 
					
						
							|  |  |  |   void msgBox(QString t); | 
					
						
							|  |  |  |   bool isGrid4(QString g); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern void getfile(QString fname, bool xpol, int idInt); | 
					
						
							|  |  |  | extern void savetf2(QString fname, bool xpol); | 
					
						
							|  |  |  | extern int killbyname(const char* progName); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern "C" { | 
					
						
							|  |  |  | //----------------------------------------------------- C and Fortran routines
 | 
					
						
							| 
									
										
										
										
											2022-12-12 15:37:06 -05:00
										 |  |  |   void symspec_(int* k, int* ndiskdat, int* nb, int* m_NBslider, int* nfsample, | 
					
						
							|  |  |  |                 float* px, float s[], int* nkhz, int* nhsym, | 
					
						
							| 
									
										
										
										
											2022-12-04 10:17:02 -05:00
										 |  |  |                 int* nzap, float* slimit, uchar lstrong[]); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   void astrosub00_ (int* nyear, int* month, int* nday, double* uth, int* nfreq, | 
					
						
							|  |  |  |                     const char* mygrid, int* ndop00, int len1); | 
					
						
							| 
									
										
										
										
											2022-12-09 19:08:35 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-12-12 13:09:07 -05:00
										 |  |  |   void q65c_(int* itimer); | 
					
						
							| 
									
										
										
										
											2022-12-04 10:17:02 -05:00
										 |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif // MAINWINDOW_H
 |