qtsoundmodem/QtSoundModem.h

151 lines
3.2 KiB
C
Raw Permalink Normal View History

2023-09-04 19:06:44 +01:00
#pragma once
#include <QtWidgets/QMainWindow>
#include "ui_QtSoundModem.h"
#include "ui_calibrateDialog.h"
#include "ui_devicesDialog.h"
#include "ui_filterWindow.h"
#include "ui_ModemDialog.h"
#include "QThread"
#include <QLabel>
#include <QTableWidget>
#include <QTcpServer>
#include <QTcpSocket>
#include <QUdpSocket>
#include <QSystemTrayIcon>
#include "tcpCode.h"
class QtSoundModem : public QMainWindow
{
Q_OBJECT
public:
QtSoundModem(QWidget *parent = Q_NULLPTR);
void changeEvent(QEvent * e);
void closeEvent(QCloseEvent * event);
~QtSoundModem();
void RefreshWaterfall(int snd_ch, unsigned char * Data);
2023-12-17 13:53:32 +00:00
void initWaterfall(int state);
2023-09-04 19:06:44 +01:00
void show_grid();
2023-10-07 12:21:48 +01:00
void checkforCWID();
public slots:
2023-09-04 19:06:44 +01:00
private slots:
2023-10-07 12:21:48 +01:00
void CWIDTimer();
2023-09-04 19:06:44 +01:00
void doDevices();
2023-12-17 13:53:32 +00:00
void mysetstyle();
2023-10-07 12:21:48 +01:00
void updateFont();
2023-09-04 19:06:44 +01:00
void MinimizetoTray();
void TrayActivated(QSystemTrayIcon::ActivationReason reason);
2024-10-29 22:45:21 +00:00
void StatsTimer();
2023-09-04 19:06:44 +01:00
void MyTimerSlot();
void returnPressed();
void clickedSlotI(int i);
void doModems();
void doFilter(int Chan, int Filter);
void SoundModeChanged(bool State);
void DualPTTChanged(bool State);
void CATChanged(bool State);
void PTTPortChanged(int);
void deviceaccept();
void devicereject();
void modemaccept();
void modemSave();
void modemreject();
void doRSIDA();
void doRSIDB();
void doRSIDC();
void doRSIDD();
void handleButton(int Port, int Act);
void doCalibrate();
2023-10-07 12:21:48 +01:00
void RefreshSpectrum(unsigned char * Data);
2023-09-04 19:06:44 +01:00
void doAbout();
void doRestartWF();
void doupdateDCD(int, int);
void sendtoTrace(char * Msg, int tx);
void preEmphAllAChanged(int);
void preEmphAllBChanged(int);
void preEmphAllCChanged(int state);
void preEmphAllDChanged(int state);
void menuChecked();
void onTEselectionChanged();
2024-07-23 21:26:30 +01:00
void StartWatchdog();
void StopWatchdog();
void PTTWatchdogExpired();
2024-10-29 22:45:21 +00:00
void showRequest(QByteArray Data);
2023-09-04 19:06:44 +01:00
void clickedSlot();
2023-10-07 12:21:48 +01:00
void startCWIDTimerSlot();
2024-07-23 21:26:30 +01:00
void setWaterfallImage();
void setLevelImage();
void setConstellationImage(int chan, int Qual);
2023-09-04 19:06:44 +01:00
protected:
bool eventFilter(QObject * obj, QEvent * evt);
void resizeEvent(QResizeEvent *event) override;
private:
Ui::QtSoundModemClass ui;
QTableWidget* sessionTable;
QStringList m_TableHeader;
QMenu *setupMenu;
QMenu *viewMenu;
QAction *actDevices;
QAction *actModems;
2023-10-07 12:21:48 +01:00
QAction *actFont;
2023-09-04 19:06:44 +01:00
QAction *actMintoTray;
QAction *actCalib;
QAction *actAbout;
QAction *actRestartWF;
QAction *actWaterfall1;
QAction *actWaterfall2;
2023-10-07 12:21:48 +01:00
signals:
2023-09-04 19:06:44 +01:00
};
class myResize : public QObject
{
Q_OBJECT
protected:
bool eventFilter(QObject *obj, QEvent *event) override;
};
2023-12-17 13:53:32 +00:00
#define WaterfallDisplayPixels 80
#define WaterfallHeaderPixels 38
#define WaterfallTotalPixels WaterfallDisplayPixels + WaterfallHeaderPixels
#define WaterfallImageHeight (WaterfallTotalPixels + WaterfallTotalPixels)
2024-10-29 22:45:21 +00:00
class serialThread : public QThread
{
Q_OBJECT
public:
void run() Q_DECL_OVERRIDE;
void startSlave(const QString &portName, int waitTimeout, const QString &response);
signals:
void request(const QByteArray &s);
void error(const QString &s);
void timeout(const QString &s);
private:
QString portName;
QString response;
int waitTimeout;
QMutex mutex;
bool quit;
};