From 2d1e4c549329b3914445131a25b081418d8fc0e2 Mon Sep 17 00:00:00 2001 From: f4exb Date: Sat, 21 Dec 2019 23:19:17 +0100 Subject: [PATCH] Base MIMO support on major version. Remove MIMO item from GUI based on version. Remove AMBE preferences item for Apple --- sdrbase/mainparser.cpp | 20 ++++++++++++++------ sdrbase/mainparser.h | 3 +-- sdrgui/mainwindow.cpp | 10 +++++++++- 3 files changed, 24 insertions(+), 9 deletions(-) diff --git a/sdrbase/mainparser.cpp b/sdrbase/mainparser.cpp index 48a5fefdd..5c7f21534 100644 --- a/sdrbase/mainparser.cpp +++ b/sdrbase/mainparser.cpp @@ -30,13 +30,11 @@ MainParser::MainParser() : m_serverPortOption(QStringList() << "p" << "api-port", "Web API server port.", "port", - "8091"), - m_mimoOption("mimo", "Activate MIMO functionality") + "8091") { m_serverAddress = "127.0.0.1"; m_serverPort = 8091; m_mimoSupport = false; - m_mimoOption.setFlags(QCommandLineOption::HiddenFromHelp); m_parser.setApplicationDescription("Software Defined Radio application"); m_parser.addHelpOption(); @@ -44,7 +42,6 @@ MainParser::MainParser() : m_parser.addOption(m_serverAddressOption); m_parser.addOption(m_serverPortOption); - m_parser.addOption(m_mimoOption); } MainParser::~MainParser() @@ -85,7 +82,18 @@ void MainParser::parse(const QCoreApplication& app) qWarning() << "MainParser::parse: server port invalid. Defaulting to " << m_serverPort; } - // MIMO + // MIMO - from version - m_mimoSupport = m_parser.isSet(m_mimoOption); + QStringList versionParts = app.applicationVersion().split("."); + + if (versionParts.size() > 0) + { + bool ok; + int maj = versionParts.at(0).toInt(&ok); + m_mimoSupport = ok && (maj > 4); + } + else + { + m_mimoSupport = false; + } } diff --git a/sdrbase/mainparser.h b/sdrbase/mainparser.h index 197eb19eb..55066886f 100644 --- a/sdrbase/mainparser.h +++ b/sdrbase/mainparser.h @@ -39,12 +39,11 @@ public: private: QString m_serverAddress; uint16_t m_serverPort; - bool m_mimoSupport; + bool m_mimoSupport; //!< obtained from major version QCommandLineParser m_parser; QCommandLineOption m_serverAddressOption; QCommandLineOption m_serverPortOption; - QCommandLineOption m_mimoOption; }; diff --git a/sdrgui/mainwindow.cpp b/sdrgui/mainwindow.cpp index 797bb3a27..0548e1461 100644 --- a/sdrgui/mainwindow.cpp +++ b/sdrgui/mainwindow.cpp @@ -239,6 +239,14 @@ MainWindow::MainWindow(qtwebapp::LoggerWithFile *logger, const MainParser& parse m_dspEngine->setMIMOSupport(parser.getMIMOSupport()); + if (!parser.getMIMOSupport()) { + ui->menu_Devices->removeAction(ui->action_addMIMODevice); + } + +#ifdef __APPLE__ + ui->menuPreferences->removeAction(ui->action_AMBE); +#endif + delete splash; qDebug() << "MainWindow::MainWindow: end"; @@ -1982,7 +1990,7 @@ void MainWindow::on_action_addMIMODevice_triggered() if (m_dspEngine->getMIMOSupport()) { addMIMODevice(); } else { - QMessageBox::information(this, tr("Message"), tr("MIMO operation not supported yet")); + QMessageBox::information(this, tr("Message"), tr("MIMO not supported in this version")); } }