mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-03-21 11:38:34 -04:00
222 lines
5.9 KiB
C++
222 lines
5.9 KiB
C++
#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(int iret);
|
|
void decoderFinished();
|
|
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();
|
|
void on_actionDelete_all_iq_files_in_SaveDir_triggered();
|
|
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);
|
|
void on_actionSettings_triggered();
|
|
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();
|
|
void on_actionQuick_Start_Guide_to_Q65_triggered();
|
|
void on_actionQuick_Start_Guide_to_WSJT_X_2_7_and_QMAP_triggered();
|
|
void on_actionAlso_Q65_30x_toggled(bool b);
|
|
void on_sbMaxDrift_valueChanged(int arg1);
|
|
void on_actionSave_decoded_triggered();
|
|
void on_actionExport_wav_file_at_fQSO_triggered();
|
|
|
|
void on_actionExport_wav_file_at_fQSO_30a_triggered();
|
|
|
|
void on_actionExport_wav_file_at_fQSO_30b_triggered();
|
|
|
|
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_waterfallAvg;
|
|
qint32 m_DF;
|
|
qint32 m_tol;
|
|
qint32 m_astroFont;
|
|
qint32 m_fCal;
|
|
qint32 m_sec0;
|
|
qint32 m_nutc0;
|
|
qint32 m_nrx;
|
|
qint32 m_hsym0;
|
|
qint32 m_paInDevice;
|
|
qint32 m_udpPort;
|
|
qint32 m_NBslider;
|
|
qint32 m_TRperiod;
|
|
qint32 m_modeQ65;
|
|
qint32 m_dB;
|
|
qint32 m_fetched=0;
|
|
qint32 m_hsymStop=390; //390*0.15 = 58.5 s
|
|
qint32 m_nTx30a=0;
|
|
qint32 m_nTx30b=0;
|
|
qint32 m_nTx60=0;
|
|
qint32 m_nDoubleClicked=0;
|
|
qint32 m_nline=0;
|
|
qint32 m_WSJTX_TRperiod=0;
|
|
qint32 m_dop00=0;
|
|
qint32 m_dop58=0;
|
|
qint32 m_n60;
|
|
|
|
double m_fAdd;
|
|
double m_xavg;
|
|
|
|
bool m_monitoring;
|
|
bool m_diskData;
|
|
bool m_loopall;
|
|
bool m_decoderBusy=false;
|
|
bool m_restart;
|
|
bool m_startAnother;
|
|
bool m_saveAll;
|
|
bool m_saveDecoded;
|
|
bool m_NB;
|
|
bool m_decode_called=false;
|
|
bool m_bAlso30=true;
|
|
bool m_bDiskDatBusy=false;
|
|
bool m_bWTransmitting=false;
|
|
bool m_bDecodeAgain=false;
|
|
|
|
float m_pctZap;
|
|
|
|
int m_myCallColor;
|
|
|
|
QRect m_wideGraphGeom;
|
|
|
|
QLabel* lab1; // labels in status bar
|
|
QLabel* lab2; // labels in status bar
|
|
QLabel* lab3; // labels in status bar
|
|
QLabel* lab4;
|
|
QLabel* lab5;
|
|
QLabel* lab6;
|
|
QLabel* lab7; //Why still needed?
|
|
|
|
QMessageBox msgBox0;
|
|
|
|
QFutureWatcher<void> watcher3; //For decoder
|
|
|
|
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;
|
|
QString m_UTC0="";
|
|
QString m_revision;
|
|
QString m_saveFileName;
|
|
|
|
QDateTime m_dateTimeSeqStart; //Nominal start time of Rx sequence about to be decoded
|
|
QHash<QString,bool> m_worked;
|
|
SignalMeter *xSignalMeter;
|
|
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 save_iq(QString fname);
|
|
extern int killbyname(const char* progName);
|
|
|
|
extern "C" {
|
|
//----------------------------------------------------- C and Fortran routines
|
|
void symspec_(int* k, int* ndiskdat, int* nb, int* m_NBslider, int* nfsample,
|
|
float* px, float s[], int* nkhz, int* nhsym,
|
|
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);
|
|
|
|
void q65c_();
|
|
|
|
void all_done_();
|
|
|
|
void zaptx_(float d4[], int* k0, int* k);
|
|
|
|
void save_qm_(const char* fname, const char* prog_id, const char* mycall, const char* mygrid,
|
|
float d4[], int* ntx30a, int* ntx30b, double* fcenter, int* nutc,
|
|
int* dop00, int* dop58, int len1, int len2, int len3, int len4);
|
|
|
|
void read_qm_(const char* fname, int* iret, int len);
|
|
|
|
}
|
|
|
|
#endif // MAINWINDOW_H
|