mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-09-05 22:57:47 -04:00
Support compilation on Qt platforms that don't support processes (i.e. WebAssembly).
This commit is contained in:
parent
2abe88368b
commit
8ed7972dce
@ -28,6 +28,7 @@
|
|||||||
#include "util/timeutil.h"
|
#include "util/timeutil.h"
|
||||||
|
|
||||||
Command::Command() :
|
Command::Command() :
|
||||||
|
#if QT_CONFIG(process)
|
||||||
m_currentProcess(nullptr),
|
m_currentProcess(nullptr),
|
||||||
m_currentProcessState(QProcess::NotRunning),
|
m_currentProcessState(QProcess::NotRunning),
|
||||||
m_isInError(false),
|
m_isInError(false),
|
||||||
@ -35,6 +36,7 @@ Command::Command() :
|
|||||||
m_hasExited(false),
|
m_hasExited(false),
|
||||||
m_currentProcessExitCode(0),
|
m_currentProcessExitCode(0),
|
||||||
m_currentProcessExitStatus(QProcess::NormalExit),
|
m_currentProcessExitStatus(QProcess::NormalExit),
|
||||||
|
#endif
|
||||||
m_currentProcessPid(0)
|
m_currentProcessPid(0)
|
||||||
{
|
{
|
||||||
m_currentProcessStartTimeStampms = 0;
|
m_currentProcessStartTimeStampms = 0;
|
||||||
@ -53,6 +55,7 @@ Command::Command(const Command& command) :
|
|||||||
m_keyModifiers(command.m_keyModifiers),
|
m_keyModifiers(command.m_keyModifiers),
|
||||||
m_associateKey(command.m_associateKey),
|
m_associateKey(command.m_associateKey),
|
||||||
m_release(command.m_release),
|
m_release(command.m_release),
|
||||||
|
#if QT_CONFIG(process)
|
||||||
m_currentProcess(nullptr),
|
m_currentProcess(nullptr),
|
||||||
m_currentProcessState(QProcess::NotRunning),
|
m_currentProcessState(QProcess::NotRunning),
|
||||||
m_isInError(false),
|
m_isInError(false),
|
||||||
@ -60,6 +63,7 @@ Command::Command(const Command& command) :
|
|||||||
m_hasExited(false),
|
m_hasExited(false),
|
||||||
m_currentProcessExitCode(0),
|
m_currentProcessExitCode(0),
|
||||||
m_currentProcessExitStatus(QProcess::NormalExit),
|
m_currentProcessExitStatus(QProcess::NormalExit),
|
||||||
|
#endif
|
||||||
m_currentProcessPid(0)
|
m_currentProcessPid(0)
|
||||||
{
|
{
|
||||||
m_currentProcessStartTimeStampms = 0;
|
m_currentProcessStartTimeStampms = 0;
|
||||||
@ -68,6 +72,7 @@ Command::Command(const Command& command) :
|
|||||||
|
|
||||||
Command::~Command()
|
Command::~Command()
|
||||||
{
|
{
|
||||||
|
#if QT_CONFIG(process)
|
||||||
if (m_currentProcess)
|
if (m_currentProcess)
|
||||||
{
|
{
|
||||||
#if QT_VERSION < QT_VERSION_CHECK(5, 10, 0)
|
#if QT_VERSION < QT_VERSION_CHECK(5, 10, 0)
|
||||||
@ -79,6 +84,7 @@ Command::~Command()
|
|||||||
disconnect(m_currentProcess, SIGNAL(stateChanged(QProcess::ProcessState)), this, SLOT(processStateChanged(QProcess::ProcessState)));
|
disconnect(m_currentProcess, SIGNAL(stateChanged(QProcess::ProcessState)), this, SLOT(processStateChanged(QProcess::ProcessState)));
|
||||||
m_currentProcess->deleteLater();
|
m_currentProcess->deleteLater();
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void Command::resetToDefaults()
|
void Command::resetToDefaults()
|
||||||
@ -164,6 +170,7 @@ QString Command::getKeyLabel() const
|
|||||||
|
|
||||||
void Command::run(const QString& apiAddress, int apiPort, int deviceSetIndex)
|
void Command::run(const QString& apiAddress, int apiPort, int deviceSetIndex)
|
||||||
{
|
{
|
||||||
|
#if QT_CONFIG(process)
|
||||||
if (m_currentProcess)
|
if (m_currentProcess)
|
||||||
{
|
{
|
||||||
qWarning("Command::run: process already running");
|
qWarning("Command::run: process already running");
|
||||||
@ -212,17 +219,22 @@ void Command::run(const QString& apiAddress, int apiPort, int deviceSetIndex)
|
|||||||
QStringList allArgs = args.split(" ", QString::SkipEmptyParts);
|
QStringList allArgs = args.split(" ", QString::SkipEmptyParts);
|
||||||
#endif
|
#endif
|
||||||
m_currentProcess->start(m_command, allArgs);
|
m_currentProcess->start(m_command, allArgs);
|
||||||
|
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void Command::kill()
|
void Command::kill()
|
||||||
{
|
{
|
||||||
|
#if QT_CONFIG(process)
|
||||||
if (m_currentProcess)
|
if (m_currentProcess)
|
||||||
{
|
{
|
||||||
qDebug("Command::kill: %lld", m_currentProcessPid);
|
qDebug("Command::kill: %lld", m_currentProcessPid);
|
||||||
m_currentProcess->kill();
|
m_currentProcess->kill();
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if QT_CONFIG(process)
|
||||||
QProcess::ProcessState Command::getLastProcessState() const
|
QProcess::ProcessState Command::getLastProcessState() const
|
||||||
{
|
{
|
||||||
return m_currentProcessState;
|
return m_currentProcessState;
|
||||||
@ -307,3 +319,4 @@ void Command::processFinished(int exitCode, QProcess::ExitStatus exitStatus)
|
|||||||
m_currentProcess->deleteLater(); // make sure other threads can still access it until all events have been processed
|
m_currentProcess->deleteLater(); // make sure other threads can still access it until all events have been processed
|
||||||
m_currentProcess = nullptr; // for this thread it can assume it was deleted
|
m_currentProcess = nullptr; // for this thread it can assume it was deleted
|
||||||
}
|
}
|
||||||
|
#endif /* QT_CONFIG(process) */
|
||||||
|
@ -62,10 +62,12 @@ public:
|
|||||||
|
|
||||||
void run(const QString& apiAddress, int apiPort, int deviceSetIndex = 0);
|
void run(const QString& apiAddress, int apiPort, int deviceSetIndex = 0);
|
||||||
void kill();
|
void kill();
|
||||||
|
#if QT_CONFIG(process)
|
||||||
QProcess::ProcessState getLastProcessState() const;
|
QProcess::ProcessState getLastProcessState() const;
|
||||||
bool getLastProcessError(QProcess::ProcessError& error) const;
|
bool getLastProcessError(QProcess::ProcessError& error) const;
|
||||||
bool getLastProcessExit(int& exitCode, QProcess::ExitStatus& exitStatus) const;
|
bool getLastProcessExit(int& exitCode, QProcess::ExitStatus& exitStatus) const;
|
||||||
const QString& getLastProcessLog() const;
|
const QString& getLastProcessLog() const;
|
||||||
|
#endif
|
||||||
uint64_t getLastProcessStartTimestampms() const { return m_currentProcessStartTimeStampms; }
|
uint64_t getLastProcessStartTimestampms() const { return m_currentProcessStartTimeStampms; }
|
||||||
uint64_t getLastProcessFinishTimestampms() const { return m_currentProcessFinishTimeStampms; }
|
uint64_t getLastProcessFinishTimestampms() const { return m_currentProcessFinishTimeStampms; }
|
||||||
const QString& getLastProcessCommandLine() const { return m_currentProcessCommandLine; }
|
const QString& getLastProcessCommandLine() const { return m_currentProcessCommandLine; }
|
||||||
@ -102,6 +104,7 @@ private:
|
|||||||
Qt::KeyboardModifiers m_keyModifiers;
|
Qt::KeyboardModifiers m_keyModifiers;
|
||||||
bool m_associateKey;
|
bool m_associateKey;
|
||||||
bool m_release;
|
bool m_release;
|
||||||
|
#if QT_CONFIG(process)
|
||||||
QProcess *m_currentProcess;
|
QProcess *m_currentProcess;
|
||||||
QProcess::ProcessState m_currentProcessState;
|
QProcess::ProcessState m_currentProcessState;
|
||||||
bool m_isInError;
|
bool m_isInError;
|
||||||
@ -109,6 +112,7 @@ private:
|
|||||||
bool m_hasExited;
|
bool m_hasExited;
|
||||||
int m_currentProcessExitCode;
|
int m_currentProcessExitCode;
|
||||||
QProcess::ExitStatus m_currentProcessExitStatus;
|
QProcess::ExitStatus m_currentProcessExitStatus;
|
||||||
|
#endif
|
||||||
QString m_log;
|
QString m_log;
|
||||||
uint64_t m_currentProcessStartTimeStampms;
|
uint64_t m_currentProcessStartTimeStampms;
|
||||||
uint64_t m_currentProcessFinishTimeStampms;
|
uint64_t m_currentProcessFinishTimeStampms;
|
||||||
@ -116,9 +120,11 @@ private:
|
|||||||
qint64 m_currentProcessPid;
|
qint64 m_currentProcessPid;
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
#if QT_CONFIG(process)
|
||||||
void processStateChanged(QProcess::ProcessState newState);
|
void processStateChanged(QProcess::ProcessState newState);
|
||||||
void processError(QProcess::ProcessError error);
|
void processError(QProcess::ProcessError error);
|
||||||
void processFinished(int exitCode, QProcess::ExitStatus exitStatus);
|
void processFinished(int exitCode, QProcess::ExitStatus exitStatus);
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
Q_DECLARE_METATYPE(const Command*);
|
Q_DECLARE_METATYPE(const Command*);
|
||||||
|
@ -22,6 +22,8 @@
|
|||||||
|
|
||||||
#include <QDateTime>
|
#include <QDateTime>
|
||||||
|
|
||||||
|
#if QT_CONFIG(process)
|
||||||
|
|
||||||
CommandOutputDialog::CommandOutputDialog(Command& command, QWidget* parent) :
|
CommandOutputDialog::CommandOutputDialog(Command& command, QWidget* parent) :
|
||||||
QDialog(parent),
|
QDialog(parent),
|
||||||
ui(new Ui::CommandOutputDialog),
|
ui(new Ui::CommandOutputDialog),
|
||||||
@ -167,3 +169,4 @@ void CommandOutputDialog::on_processKill_toggled(bool checked)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif // QT_CONFIG(process)
|
||||||
|
@ -24,6 +24,8 @@
|
|||||||
#include <QDialog>
|
#include <QDialog>
|
||||||
#include <QProcess>
|
#include <QProcess>
|
||||||
|
|
||||||
|
#if QT_CONFIG(process)
|
||||||
|
|
||||||
#include "export.h"
|
#include "export.h"
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
@ -54,5 +56,6 @@ private slots:
|
|||||||
void on_processKill_toggled(bool checked);
|
void on_processKill_toggled(bool checked);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* SDRGUI_GUI_COMMANDOUTPUTDIALOG_H_ */
|
#endif /* SDRGUI_GUI_COMMANDOUTPUTDIALOG_H_ */
|
||||||
|
@ -29,6 +29,8 @@
|
|||||||
#include "commandsdialog.h"
|
#include "commandsdialog.h"
|
||||||
#include "ui_commandsdialog.h"
|
#include "ui_commandsdialog.h"
|
||||||
|
|
||||||
|
#if QT_CONFIG(process)
|
||||||
|
|
||||||
CommandsDialog::CommandsDialog(QWidget* parent) :
|
CommandsDialog::CommandsDialog(QWidget* parent) :
|
||||||
QDialog(parent),
|
QDialog(parent),
|
||||||
ui(new Ui::CommandsDialog),
|
ui(new Ui::CommandsDialog),
|
||||||
@ -309,3 +311,5 @@ QTreeWidgetItem* CommandsDialog::addCommandToTree(const Command* command)
|
|||||||
//updatePresetControls();
|
//updatePresetControls();
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif // QT_CONFIG(process)
|
||||||
|
@ -25,6 +25,8 @@
|
|||||||
|
|
||||||
#include "export.h"
|
#include "export.h"
|
||||||
|
|
||||||
|
#if QT_CONFIG(process)
|
||||||
|
|
||||||
class CommandKeyReceiver;
|
class CommandKeyReceiver;
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
@ -66,4 +68,6 @@ private slots:
|
|||||||
void on_commandKeyboardConnect_toggled(bool checked);
|
void on_commandKeyboardConnect_toggled(bool checked);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#endif // QT_CONFIG(process)
|
||||||
|
|
||||||
#endif // SDRGUI_GUI_COMMANDSDIALOG_H_
|
#endif // SDRGUI_GUI_COMMANDSDIALOG_H_
|
||||||
|
@ -24,6 +24,8 @@
|
|||||||
#include "fftwisdomdialog.h"
|
#include "fftwisdomdialog.h"
|
||||||
#include "ui_fftwisdomdialog.h"
|
#include "ui_fftwisdomdialog.h"
|
||||||
|
|
||||||
|
#if QT_CONFIG(process)
|
||||||
|
|
||||||
FFTWisdomDialog::FFTWisdomDialog(QProcess *process, QWidget* parent) :
|
FFTWisdomDialog::FFTWisdomDialog(QProcess *process, QWidget* parent) :
|
||||||
QDialog(parent),
|
QDialog(parent),
|
||||||
ui(new Ui::FFTWisdomDialog),
|
ui(new Ui::FFTWisdomDialog),
|
||||||
@ -132,3 +134,5 @@ void FFTWisdomDialog::updateArguments(int fftMaxLog2, bool includeReverse)
|
|||||||
qDebug("FFTWisdomDialog::updateArguments: %s %s", qPrintable(m_fftwExecPath), qPrintable(argStr));
|
qDebug("FFTWisdomDialog::updateArguments: %s %s", qPrintable(m_fftwExecPath), qPrintable(argStr));
|
||||||
ui->fftwCommand->setText(m_fftwExecPath + " " + argStr);
|
ui->fftwCommand->setText(m_fftwExecPath + " " + argStr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif // QT_CONFIG(process)
|
||||||
|
@ -25,6 +25,8 @@
|
|||||||
|
|
||||||
#include "export.h"
|
#include "export.h"
|
||||||
|
|
||||||
|
#if QT_CONFIG(process)
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
class FFTWisdomDialog;
|
class FFTWisdomDialog;
|
||||||
}
|
}
|
||||||
@ -55,5 +57,7 @@ private:
|
|||||||
QProcess *m_process;
|
QProcess *m_process;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#endif // SDRGUI_GUI_FFTWISDOMDIALOG_H_
|
#endif // SDRGUI_GUI_FFTWISDOMDIALOG_H_
|
||||||
|
Loading…
x
Reference in New Issue
Block a user