mirror of
https://github.com/f4exb/sdrangel.git
synced 2026-06-01 21:54:55 -04:00
Add VkFFT support and profiler
This commit is contained in:
+41
-7
@@ -65,6 +65,7 @@
|
||||
#include "gui/deviceuserargsdialog.h"
|
||||
#include "gui/sdrangelsplash.h"
|
||||
#include "gui/mypositiondialog.h"
|
||||
#include "gui/fftdialog.h"
|
||||
#include "gui/fftwisdomdialog.h"
|
||||
#include "gui/workspace.h"
|
||||
#include "gui/featurepresetsdialog.h"
|
||||
@@ -73,6 +74,7 @@
|
||||
#include "gui/configurationsdialog.h"
|
||||
#include "gui/dialogpositioner.h"
|
||||
#include "gui/welcomedialog.h"
|
||||
#include "gui/profiledialog.h"
|
||||
#include "dsp/dspengine.h"
|
||||
#include "dsp/spectrumvis.h"
|
||||
#include "dsp/dspcommands.h"
|
||||
@@ -121,6 +123,7 @@ MainWindow::MainWindow(qtwebapp::LoggerWithFile *logger, const MainParser& parse
|
||||
m_dateTimeWidget(nullptr),
|
||||
m_showSystemWidget(nullptr),
|
||||
m_commandKeyReceiver(nullptr),
|
||||
m_profileDialog(nullptr),
|
||||
m_fftWisdomProcess(nullptr)
|
||||
{
|
||||
#ifdef ANDROID
|
||||
@@ -190,7 +193,11 @@ MainWindow::MainWindow(qtwebapp::LoggerWithFile *logger, const MainParser& parse
|
||||
connect(&m_statusTimer, SIGNAL(timeout()), this, SLOT(updateStatus()));
|
||||
m_statusTimer.start(1000);
|
||||
|
||||
splash->showStatusMessage("allocate FFTs...", Qt::white);
|
||||
splash->showStatusMessage("load settings...", Qt::white);
|
||||
qDebug() << "MainWindow::MainWindow: load settings...";
|
||||
|
||||
loadSettings();
|
||||
|
||||
splash->showStatusMessage("allocate FFTs...", Qt::white);
|
||||
|
||||
if (parser.getFFTWFWisdomFileName().length() != 0)
|
||||
@@ -213,11 +220,6 @@ MainWindow::MainWindow(qtwebapp::LoggerWithFile *logger, const MainParser& parse
|
||||
|
||||
m_dspEngine->preAllocateFFTs();
|
||||
|
||||
splash->showStatusMessage("load settings...", Qt::white);
|
||||
qDebug() << "MainWindow::MainWindow: load settings...";
|
||||
|
||||
loadSettings();
|
||||
|
||||
splash->showStatusMessage("load plugins...", Qt::white);
|
||||
qDebug() << "MainWindow::MainWindow: load plugins...";
|
||||
|
||||
@@ -322,6 +324,7 @@ MainWindow::~MainWindow()
|
||||
removeAllFeatureSets();
|
||||
|
||||
delete m_commandKeyReceiver;
|
||||
delete m_profileDialog;
|
||||
|
||||
for (const auto& workspace : m_workspaces) {
|
||||
delete workspace;
|
||||
@@ -1657,6 +1660,11 @@ void MainWindow::createMenuBar(QToolButton *button)
|
||||
keepscreenonAction->setCheckable(true);
|
||||
QObject::connect(keepscreenonAction, &QAction::triggered, this, &MainWindow::on_action_View_KeepScreenOn_toggled);
|
||||
#endif
|
||||
#ifdef ENABLE_PROFILER
|
||||
QAction *profileAction = viewMenu->addAction("&Profile data...");
|
||||
profileAction->setToolTip("View profile data");
|
||||
QObject::connect(profileAction, &QAction::triggered, this, &MainWindow::on_action_Profile_triggered);
|
||||
#endif
|
||||
|
||||
QAction *newWorkspaceAction = workspacesMenu->addAction("&New");
|
||||
newWorkspaceAction->setToolTip("Add a new workspace");
|
||||
@@ -1684,8 +1692,11 @@ void MainWindow::createMenuBar(QToolButton *button)
|
||||
myPositionAction->setToolTip("Set station position");
|
||||
QObject::connect(myPositionAction, &QAction::triggered, this, &MainWindow::on_action_My_Position_triggered);
|
||||
QAction *fftAction = preferencesMenu->addAction("&FFT...");
|
||||
fftAction->setToolTip("Set FFT cache");
|
||||
fftAction->setToolTip("Set FFT preferences");
|
||||
QObject::connect(fftAction, &QAction::triggered, this, &MainWindow::on_action_FFT_triggered);
|
||||
QAction *fftWisdomAction = preferencesMenu->addAction("&FFTW Wisdom...");
|
||||
fftWisdomAction->setToolTip("Set FFTW cache");
|
||||
QObject::connect(fftWisdomAction, &QAction::triggered, this, &MainWindow::on_action_FFTWisdom_triggered);
|
||||
QMenu *devicesMenu = preferencesMenu->addMenu("&Devices");
|
||||
QAction *userArgumentsAction = devicesMenu->addAction("&User arguments...");
|
||||
userArgumentsAction->setToolTip("Device custom user arguments");
|
||||
@@ -1744,6 +1755,10 @@ void MainWindow::closeEvent(QCloseEvent *closeEvent)
|
||||
removeLastDeviceSet();
|
||||
}
|
||||
|
||||
if (m_profileDialog) {
|
||||
m_profileDialog->close();
|
||||
}
|
||||
|
||||
closeEvent->accept();
|
||||
}
|
||||
|
||||
@@ -2223,6 +2238,17 @@ void MainWindow::on_action_View_Fullscreen_toggled(bool checked)
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::on_action_Profile_triggered()
|
||||
{
|
||||
if (m_profileDialog == nullptr)
|
||||
{
|
||||
m_profileDialog = new ProfileDialog();
|
||||
new DialogPositioner(m_profileDialog, true);
|
||||
}
|
||||
m_profileDialog->show();
|
||||
m_profileDialog->raise();
|
||||
}
|
||||
|
||||
void MainWindow::commandKeysConnect(QObject *object, const char *slot)
|
||||
{
|
||||
setFocus();
|
||||
@@ -2345,6 +2371,14 @@ void MainWindow::on_action_commands_triggered()
|
||||
void MainWindow::on_action_FFT_triggered()
|
||||
{
|
||||
qDebug("MainWindow::on_action_FFT_triggered");
|
||||
FFTDialog fftDialog(m_mainCore->m_settings, this);
|
||||
new DialogPositioner(&fftDialog, true);
|
||||
fftDialog.exec();
|
||||
}
|
||||
|
||||
void MainWindow::on_action_FFTWisdom_triggered()
|
||||
{
|
||||
qDebug("MainWindow::on_action_FFTWisdom_triggered");
|
||||
|
||||
if (m_fftWisdomProcess)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user