diff --git a/plugins/samplemimo/bladerf2mimo/bladerf2mimogui.cpp b/plugins/samplemimo/bladerf2mimo/bladerf2mimogui.cpp index e10be3e95..4fef23e33 100644 --- a/plugins/samplemimo/bladerf2mimo/bladerf2mimogui.cpp +++ b/plugins/samplemimo/bladerf2mimo/bladerf2mimogui.cpp @@ -22,6 +22,7 @@ #include #include #include +#include #include "plugin/pluginapi.h" #include "device/deviceapi.h" @@ -94,6 +95,10 @@ BladeRF2MIMOGui::BladeRF2MIMOGui(DeviceUISet *deviceUISet, QWidget* parent) : m_sampleMIMO->setMessageQueueToGUI(&m_inputMessageQueue); CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStopRx); + connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); + + CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); + connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); sendSettings(); } @@ -789,3 +794,48 @@ void BladeRF2MIMOGui::updateStatus() m_lastTxEngineState = stateTx; } } + +void BladeRF2MIMOGui::openDeviceSettingsDialog(const QPoint& p) +{ + BasicDeviceSettingsDialog dialog(this); + dialog.setUseReverseAPI(m_settings.m_useReverseAPI); + dialog.setReverseAPIAddress(m_settings.m_reverseAPIAddress); + dialog.setReverseAPIPort(m_settings.m_reverseAPIPort); + dialog.setReverseAPIDeviceIndex(m_settings.m_reverseAPIDeviceIndex); + + dialog.move(p); + dialog.exec(); + + m_settings.m_useReverseAPI = dialog.useReverseAPI(); + m_settings.m_reverseAPIAddress = dialog.getReverseAPIAddress(); + m_settings.m_reverseAPIPort = dialog.getReverseAPIPort(); + m_settings.m_reverseAPIDeviceIndex = dialog.getReverseAPIDeviceIndex(); + + sendSettings(); +} + +void BladeRF2MIMOGui::openFileRecordDialog(const QPoint& p) +{ + QFileDialog fileDialog( + this, + tr("Save I/Q record file"), + m_settings.m_fileRecordName, + tr("SDR I/Q Files (*.sdriq)") + ); + + fileDialog.setOptions(QFileDialog::DontUseNativeDialog); + fileDialog.setFileMode(QFileDialog::AnyFile); + fileDialog.move(p); + QStringList fileNames; + + if (fileDialog.exec()) + { + fileNames = fileDialog.selectedFiles(); + + if (fileNames.size() > 0) + { + m_settings.m_fileRecordName = fileNames.at(0); + sendSettings(); + } + } +} diff --git a/plugins/samplemimo/bladerf2mimo/bladerf2mimogui.h b/plugins/samplemimo/bladerf2mimo/bladerf2mimogui.h index fa0faa593..889194173 100644 --- a/plugins/samplemimo/bladerf2mimo/bladerf2mimogui.h +++ b/plugins/samplemimo/bladerf2mimo/bladerf2mimogui.h @@ -118,6 +118,8 @@ private slots: void on_gain_valueChanged(int value); void on_biasTee_toggled(bool checked); void on_transverter_clicked(); + void openDeviceSettingsDialog(const QPoint& p); + void openFileRecordDialog(const QPoint& p); }; #endif // _BLADERF2MIMO_BLADERF2MIMOGUI_H_ diff --git a/plugins/samplemimo/bladerf2mimo/bladerf2mimogui.ui b/plugins/samplemimo/bladerf2mimo/bladerf2mimogui.ui index 96844ac0a..6cf4d13b3 100644 --- a/plugins/samplemimo/bladerf2mimo/bladerf2mimogui.ui +++ b/plugins/samplemimo/bladerf2mimo/bladerf2mimogui.ui @@ -260,7 +260,7 @@ - Toggle record I/Q samples from device + Left: toggle record I/Q samples from device - Right: select output file diff --git a/plugins/samplemimo/bladerf2mimo/readme.md b/plugins/samplemimo/bladerf2mimo/readme.md index 75be2bfb1..22c46b6d7 100644 --- a/plugins/samplemimo/bladerf2mimo/readme.md +++ b/plugins/samplemimo/bladerf2mimo/readme.md @@ -49,7 +49,8 @@ This button controls the start/stop of the Tx subsystem.

7. Record button

-At this moment this control is inactive (waiting for synchronous streams recording). + - Left click: record baseband I/Q stream toggle button (inactive: waiting for synchronous streams recording) + - Right click: choose record file

8. Center frequency

diff --git a/plugins/samplemimo/testmi/readme.md b/plugins/samplemimo/testmi/readme.md index 2212cb7a0..d32834df2 100644 --- a/plugins/samplemimo/testmi/readme.md +++ b/plugins/samplemimo/testmi/readme.md @@ -32,7 +32,8 @@ Device start / stop button.

1.3: Record

-Record baseband I/Q stream toggle button + - Left click: record baseband I/Q stream toggle button + - Right click: choose record file

1.4: Stream sample rate

diff --git a/plugins/samplemimo/testmi/testmigui.cpp b/plugins/samplemimo/testmi/testmigui.cpp index f802483b6..71cdf65d5 100644 --- a/plugins/samplemimo/testmi/testmigui.cpp +++ b/plugins/samplemimo/testmi/testmigui.cpp @@ -21,6 +21,7 @@ #include #include #include +#include #include "plugin/pluginapi.h" #include "device/deviceapi.h" @@ -80,6 +81,9 @@ TestMIGui::TestMIGui(DeviceUISet *deviceUISet, QWidget* parent) : CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); + + CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); + connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); } TestMIGui::~TestMIGui() @@ -602,4 +606,30 @@ void TestMIGui::openDeviceSettingsDialog(const QPoint& p) m_settings.m_reverseAPIDeviceIndex = dialog.getReverseAPIDeviceIndex(); sendSettings(); -} \ No newline at end of file +} + +void TestMIGui::openFileRecordDialog(const QPoint& p) +{ + QFileDialog fileDialog( + this, + tr("Save I/Q record file"), + m_settings.m_fileRecordName, + tr("SDR I/Q Files (*.sdriq)") + ); + + fileDialog.setOptions(QFileDialog::DontUseNativeDialog); + fileDialog.setFileMode(QFileDialog::AnyFile); + fileDialog.move(p); + QStringList fileNames; + + if (fileDialog.exec()) + { + fileNames = fileDialog.selectedFiles(); + + if (fileNames.size() > 0) + { + m_settings.m_fileRecordName = fileNames.at(0); + sendSettings(); + } + } +} diff --git a/plugins/samplemimo/testmi/testmigui.h b/plugins/samplemimo/testmi/testmigui.h index eaff0fb03..65896a6e0 100644 --- a/plugins/samplemimo/testmi/testmigui.h +++ b/plugins/samplemimo/testmi/testmigui.h @@ -105,6 +105,7 @@ private slots: void on_phaseImbalance_valueChanged(int value); void on_record_toggled(bool checked); void openDeviceSettingsDialog(const QPoint& p); + void openFileRecordDialog(const QPoint& p); void updateStatus(); void updateHardware(); }; diff --git a/plugins/samplemimo/testmi/testmigui.ui b/plugins/samplemimo/testmi/testmigui.ui index e21fe1946..dd2bfcd2c 100644 --- a/plugins/samplemimo/testmi/testmigui.ui +++ b/plugins/samplemimo/testmi/testmigui.ui @@ -169,7 +169,7 @@ - Toggle record I/Q samples from device + Left: toggle record I/Q samples from device - Right: select output file