Skip to content

Commit

Permalink
Merge pull request #2313 from srcejon/freq_scanner
Browse files Browse the repository at this point in the history
Support more Qt configurations
  • Loading branch information
f4exb authored Nov 7, 2024
2 parents 06678a5 + 5bffac3 commit f09a125
Show file tree
Hide file tree
Showing 13 changed files with 84 additions and 8 deletions.
4 changes: 3 additions & 1 deletion devices/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,6 @@ if(ENABLE_USRP AND UHD_FOUND)
add_subdirectory(usrp)
endif()

add_subdirectory(metis)
if(ENABLE_METIS)
add_subdirectory(metis)
endif()
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,7 @@ void RemoteTCPInputTCPHandler::connectToHost(const QString& address, quint16 por
m_readMetaData = false;
if (protocol == "SDRangel wss")
{
#ifndef QT_NO_OPENSSL
m_webSocket = new QWebSocket(QString(), QWebSocketProtocol::VersionLatest, this);
connect(m_webSocket, &QWebSocket::binaryFrameReceived, this, &RemoteTCPInputTCPHandler::dataReadyRead);
connect(m_webSocket, &QWebSocket::connected, this, &RemoteTCPInputTCPHandler::connected);
Expand All @@ -160,6 +161,9 @@ void RemoteTCPInputTCPHandler::connectToHost(const QString& address, quint16 por
connect(m_webSocket, &QWebSocket::sslErrors, this, &RemoteTCPInputTCPHandler::sslErrors);
m_webSocket->open(QUrl(QString("wss://%1:%2").arg(address).arg(port)));
m_dataSocket = new WebSocket(m_webSocket);
#else
qWarning() << "RemoteTCPInput unable to use wss protocol as SSL is not supported";
#endif
}
else
{
Expand Down Expand Up @@ -202,6 +206,7 @@ void RemoteTCPInputTCPHandler::cleanup()
FLAC__stream_decoder_delete(m_decoder);
m_decoder = nullptr;
}
#ifndef QT_NO_OPENSSL
if (m_webSocket)
{
qDebug() << "RemoteTCPInputTCPHandler::cleanup: Closing and deleting web socket";
Expand All @@ -212,6 +217,7 @@ void RemoteTCPInputTCPHandler::cleanup()
disconnect(m_webSocket, &QWebSocket::errorOccurred, this, &RemoteTCPInputTCPHandler::errorOccurred);
#endif
}
#endif
if (m_tcpSocket)
{
qDebug() << "RemoteTCPInputTCPHandler::cleanup: Closing and deleting TCP socket";
Expand Down Expand Up @@ -1071,11 +1077,13 @@ void RemoteTCPInputTCPHandler::errorOccurred(QAbstractSocket::SocketError socket
}
}

#ifndef QT_NO_OPENSSL
void RemoteTCPInputTCPHandler::sslErrors(const QList<QSslError> &errors)
{
qDebug() << "RemoteTCPInputTCPHandler::sslErrors: " << errors;
m_webSocket->ignoreSslErrors(); // FIXME: Add a setting whether to do this?
}
#endif

void RemoteTCPInputTCPHandler::dataReadyRead()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,9 @@ public slots:
void connected();
void disconnected();
void errorOccurred(QAbstractSocket::SocketError socketError);
#ifndef QT_NO_OPENSSL
void sslErrors(const QList<QSslError> &errors);
#endif

private:

Expand Down
23 changes: 19 additions & 4 deletions qrtplib/rtpudptransmitter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -157,8 +157,10 @@ int RTPUDPTransmitter::Create(std::size_t maximumpacketsize, const RTPTransmissi
}

m_maxpacksize = maximumpacketsize;
m_multicastInterface = params->GetMulticastInterface();
m_receivemode = RTPTransmitter::AcceptAll;
#ifndef QT_NO_NETWORKINTERFACE
m_multicastInterface = params->GetMulticastInterface();
#endif
m_receivemode = RTPTransmitter::AcceptAll;

m_waitingfordata = false;
m_created = true;
Expand Down Expand Up @@ -306,7 +308,8 @@ void RTPUDPTransmitter::ClearDestinations()

bool RTPUDPTransmitter::SupportsMulticasting()
{
QNetworkInterface::InterfaceFlags flags = m_multicastInterface.flags();
#ifndef QT_NO_NETWORKINTERFACE
QNetworkInterface::InterfaceFlags flags = m_multicastInterface.flags();
QAbstractSocket::SocketState rtpSocketState = m_rtpsock->state();
QAbstractSocket::SocketState rtcpSocketState = m_rtcpsock->state();
return m_multicastInterface.isValid()
Expand All @@ -315,11 +318,16 @@ bool RTPUDPTransmitter::SupportsMulticasting()
&& (flags & QNetworkInterface::CanMulticast)
&& (flags & QNetworkInterface::IsRunning)
&& !(flags & QNetworkInterface::IsLoopBack);

#else
return false;
#endif
}

int RTPUDPTransmitter::JoinMulticastGroup(const RTPAddress &addr)
{
if (!m_init) {
#ifndef QT_NO_NETWORKINTERFACE
if (!m_init) {
return ERR_RTP_UDPV4TRANS_NOTINIT;
}

Expand All @@ -346,10 +354,14 @@ int RTPUDPTransmitter::JoinMulticastGroup(const RTPAddress &addr)
}

return 0;
#else
return ERR_RTP_UDPV6TRANS_NOMULTICASTSUPPORT;
#endif
}

int RTPUDPTransmitter::LeaveMulticastGroup(const RTPAddress &addr)
{
#ifndef QT_NO_NETWORKINTERFACE
if (!m_init) {
return ERR_RTP_UDPV4TRANS_NOTINIT;
}
Expand All @@ -370,6 +382,9 @@ int RTPUDPTransmitter::LeaveMulticastGroup(const RTPAddress &addr)
}

return 0;
#else
return ERR_RTP_UDPV6TRANS_NOMULTICASTSUPPORT;
#endif
}

int RTPUDPTransmitter::SetReceiveMode(RTPTransmitter::ReceiveMode m)
Expand Down
14 changes: 11 additions & 3 deletions qrtplib/rtpudptransmitter.h
Original file line number Diff line number Diff line change
Expand Up @@ -68,10 +68,12 @@ class QRTPLIB_API RTPUDPTransmissionParams: public RTPTransmissionParams
m_bindAddress = bindAddress;
}

/** Sets the multicast interface IP address. */
#ifndef QT_NO_NETWORKINTERFACE
/** Sets the multicast interface IP address. */
void SetMulticastInterface(const QNetworkInterface& mcastInterface) {
m_mcastInterface = mcastInterface;
}
#endif

/** Sets the RTP portbase to \c pbase, which has to be an even number
* unless RTPUDPv4TransmissionParams::SetAllowOddPortbase was called;
Expand All @@ -87,11 +89,13 @@ class QRTPLIB_API RTPUDPTransmissionParams: public RTPTransmissionParams
return m_bindAddress;
}

#ifndef QT_NO_NETWORKINTERFACE
/** Returns the multicast interface IP address. */
QNetworkInterface GetMulticastInterface() const
{
return m_mcastInterface;
}
#endif

/** Returns the RTP portbase which will be used (default is 5000). */
uint16_t GetPortbase() const
Expand Down Expand Up @@ -210,7 +214,9 @@ class QRTPLIB_API RTPUDPTransmissionParams: public RTPTransmissionParams

private:
QHostAddress m_bindAddress;
#ifndef QT_NO_NETWORKINTERFACE
QNetworkInterface m_mcastInterface;
#endif
uint16_t m_portbase;
int m_rtpsendbufsz, m_rtprecvbufsz;
int m_rtcpsendbufsz, m_rtcprecvbufsz;
Expand Down Expand Up @@ -349,8 +355,10 @@ class QRTPLIB_API RTPUDPTransmitter: public QObject, public RTPTransmitter
QUdpSocket *m_rtpsock, *m_rtcpsock;
bool m_deletesocketswhendone;
QHostAddress m_localIP; //!< from parameters bind IP
QNetworkInterface m_multicastInterface; //!< from parameters multicast interface
uint16_t m_rtpPort, m_rtcpPort;
#ifndef QT_NO_NETWORKINTERFACE
QNetworkInterface m_multicastInterface; //!< from parameters multicast interface
#endif
uint16_t m_rtpPort, m_rtcpPort;
RTPTransmitter::ReceiveMode m_receivemode;

std::size_t m_maxpacksize;
Expand Down
13 changes: 13 additions & 0 deletions sdrbase/commands/command.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,15 @@
#include "util/timeutil.h"

Command::Command() :
#if QT_CONFIG(process)
m_currentProcess(nullptr),
m_currentProcessState(QProcess::NotRunning),
m_isInError(false),
m_currentProcessError(QProcess::UnknownError),
m_hasExited(false),
m_currentProcessExitCode(0),
m_currentProcessExitStatus(QProcess::NormalExit),
#endif
m_currentProcessPid(0)
{
m_currentProcessStartTimeStampms = 0;
Expand All @@ -53,13 +55,15 @@ Command::Command(const Command& command) :
m_keyModifiers(command.m_keyModifiers),
m_associateKey(command.m_associateKey),
m_release(command.m_release),
#if QT_CONFIG(process)
m_currentProcess(nullptr),
m_currentProcessState(QProcess::NotRunning),
m_isInError(false),
m_currentProcessError(QProcess::UnknownError),
m_hasExited(false),
m_currentProcessExitCode(0),
m_currentProcessExitStatus(QProcess::NormalExit),
#endif
m_currentProcessPid(0)
{
m_currentProcessStartTimeStampms = 0;
Expand All @@ -68,6 +72,7 @@ Command::Command(const Command& command) :

Command::~Command()
{
#if QT_CONFIG(process)
if (m_currentProcess)
{
#if QT_VERSION < QT_VERSION_CHECK(5, 10, 0)
Expand All @@ -79,6 +84,7 @@ Command::~Command()
disconnect(m_currentProcess, SIGNAL(stateChanged(QProcess::ProcessState)), this, SLOT(processStateChanged(QProcess::ProcessState)));
m_currentProcess->deleteLater();
}
#endif
}

void Command::resetToDefaults()
Expand Down Expand Up @@ -164,6 +170,7 @@ QString Command::getKeyLabel() const

void Command::run(const QString& apiAddress, int apiPort, int deviceSetIndex)
{
#if QT_CONFIG(process)
if (m_currentProcess)
{
qWarning("Command::run: process already running");
Expand Down Expand Up @@ -212,17 +219,22 @@ void Command::run(const QString& apiAddress, int apiPort, int deviceSetIndex)
QStringList allArgs = args.split(" ", QString::SkipEmptyParts);
#endif
m_currentProcess->start(m_command, allArgs);

#endif
}

void Command::kill()
{
#if QT_CONFIG(process)
if (m_currentProcess)
{
qDebug("Command::kill: %lld", m_currentProcessPid);
m_currentProcess->kill();
}
#endif
}

#if QT_CONFIG(process)
QProcess::ProcessState Command::getLastProcessState() const
{
return m_currentProcessState;
Expand Down Expand Up @@ -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 = nullptr; // for this thread it can assume it was deleted
}
#endif /* QT_CONFIG(process) */
6 changes: 6 additions & 0 deletions sdrbase/commands/command.h
Original file line number Diff line number Diff line change
Expand Up @@ -62,10 +62,12 @@ class SDRBASE_API Command : public QObject

void run(const QString& apiAddress, int apiPort, int deviceSetIndex = 0);
void kill();
#if QT_CONFIG(process)
QProcess::ProcessState getLastProcessState() const;
bool getLastProcessError(QProcess::ProcessError& error) const;
bool getLastProcessExit(int& exitCode, QProcess::ExitStatus& exitStatus) const;
const QString& getLastProcessLog() const;
#endif
uint64_t getLastProcessStartTimestampms() const { return m_currentProcessStartTimeStampms; }
uint64_t getLastProcessFinishTimestampms() const { return m_currentProcessFinishTimeStampms; }
const QString& getLastProcessCommandLine() const { return m_currentProcessCommandLine; }
Expand Down Expand Up @@ -102,23 +104,27 @@ class SDRBASE_API Command : public QObject
Qt::KeyboardModifiers m_keyModifiers;
bool m_associateKey;
bool m_release;
#if QT_CONFIG(process)
QProcess *m_currentProcess;
QProcess::ProcessState m_currentProcessState;
bool m_isInError;
QProcess::ProcessError m_currentProcessError;
bool m_hasExited;
int m_currentProcessExitCode;
QProcess::ExitStatus m_currentProcessExitStatus;
#endif
QString m_log;
uint64_t m_currentProcessStartTimeStampms;
uint64_t m_currentProcessFinishTimeStampms;
QString m_currentProcessCommandLine;
qint64 m_currentProcessPid;

private slots:
#if QT_CONFIG(process)
void processStateChanged(QProcess::ProcessState newState);
void processError(QProcess::ProcessError error);
void processFinished(int exitCode, QProcess::ExitStatus exitStatus);
#endif
};

Q_DECLARE_METATYPE(const Command*);
Expand Down
3 changes: 3 additions & 0 deletions sdrgui/gui/commandoutputdialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@

#include <QDateTime>

#if QT_CONFIG(process)

CommandOutputDialog::CommandOutputDialog(Command& command, QWidget* parent) :
QDialog(parent),
ui(new Ui::CommandOutputDialog),
Expand Down Expand Up @@ -167,3 +169,4 @@ void CommandOutputDialog::on_processKill_toggled(bool checked)
}
}

#endif // QT_CONFIG(process)
3 changes: 3 additions & 0 deletions sdrgui/gui/commandoutputdialog.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@
#include <QDialog>
#include <QProcess>

#if QT_CONFIG(process)

#include "export.h"

namespace Ui {
Expand Down Expand Up @@ -54,5 +56,6 @@ private slots:
void on_processKill_toggled(bool checked);
};

#endif

#endif /* SDRGUI_GUI_COMMANDOUTPUTDIALOG_H_ */
4 changes: 4 additions & 0 deletions sdrgui/gui/commandsdialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@
#include "commandsdialog.h"
#include "ui_commandsdialog.h"

#if QT_CONFIG(process)

CommandsDialog::CommandsDialog(QWidget* parent) :
QDialog(parent),
ui(new Ui::CommandsDialog),
Expand Down Expand Up @@ -309,3 +311,5 @@ QTreeWidgetItem* CommandsDialog::addCommandToTree(const Command* command)
//updatePresetControls();
return item;
}

#endif // QT_CONFIG(process)
4 changes: 4 additions & 0 deletions sdrgui/gui/commandsdialog.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@

#include "export.h"

#if QT_CONFIG(process)

class CommandKeyReceiver;

namespace Ui {
Expand Down Expand Up @@ -66,4 +68,6 @@ private slots:
void on_commandKeyboardConnect_toggled(bool checked);
};

#endif // QT_CONFIG(process)

#endif // SDRGUI_GUI_COMMANDSDIALOG_H_
4 changes: 4 additions & 0 deletions sdrgui/gui/fftwisdomdialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@
#include "fftwisdomdialog.h"
#include "ui_fftwisdomdialog.h"

#if QT_CONFIG(process)

FFTWisdomDialog::FFTWisdomDialog(QProcess *process, QWidget* parent) :
QDialog(parent),
ui(new Ui::FFTWisdomDialog),
Expand Down Expand Up @@ -132,3 +134,5 @@ void FFTWisdomDialog::updateArguments(int fftMaxLog2, bool includeReverse)
qDebug("FFTWisdomDialog::updateArguments: %s %s", qPrintable(m_fftwExecPath), qPrintable(argStr));
ui->fftwCommand->setText(m_fftwExecPath + " " + argStr);
}

#endif // QT_CONFIG(process)
Loading

0 comments on commit f09a125

Please sign in to comment.