diff --git a/sdrgui/mainspectrum/mainspectrumgui.cpp b/sdrgui/mainspectrum/mainspectrumgui.cpp index 8e82dddc6..1dd21bfc5 100644 --- a/sdrgui/mainspectrum/mainspectrumgui.cpp +++ b/sdrgui/mainspectrum/mainspectrumgui.cpp @@ -29,7 +29,6 @@ #include "gui/glspectrumgui.h" #include "gui/workspaceselectiondialog.h" #include "dsp/spectrumvis.h" -#include "channel/channelwebapiutils.h" #include "mainspectrumgui.h" MainSpectrumGUI::MainSpectrumGUI(GLSpectrum *spectrum, GLSpectrumGUI *spectrumGUI, QWidget *parent) : @@ -324,6 +323,5 @@ QString MainSpectrumGUI::getDeviceTypeTag() // Handle request from GLSpectrum to adjust center frequency void MainSpectrumGUI::onRequestCenterFrequency(qint64 frequency) { - double frequencyInHz = (double)frequency; - ChannelWebAPIUtils::setCenterFrequency(m_deviceSetIndex, frequencyInHz); + emit requestCenterFrequency(m_deviceSetIndex, frequency); } diff --git a/sdrgui/mainspectrum/mainspectrumgui.h b/sdrgui/mainspectrum/mainspectrumgui.h index 884359fa3..1ae135356 100644 --- a/sdrgui/mainspectrum/mainspectrumgui.h +++ b/sdrgui/mainspectrum/mainspectrumgui.h @@ -112,6 +112,7 @@ signals: void closing(); void moveToWorkspace(int workspaceIndex); void forceShrink(); + void requestCenterFrequency(int deviceSetIndex, qint64 frequency); // an action from the user to move device center frequency }; diff --git a/sdrgui/mainwindow.cpp b/sdrgui/mainwindow.cpp index 8e0a55b95..0beb9e21a 100644 --- a/sdrgui/mainwindow.cpp +++ b/sdrgui/mainwindow.cpp @@ -319,6 +319,13 @@ void MainWindow::sampleSourceAdd(Workspace *deviceWorkspace, Workspace *spectrum [=](int channelPluginIndex){ this->channelAddClicked(deviceWorkspace, deviceSetIndex, channelPluginIndex); } ); + QObject::connect( + mainSpectrumGUI, + &MainSpectrumGUI::requestCenterFrequency, + this, + &MainWindow::mainSpectrumRequestDeviceCenterFrequency + ); + deviceWorkspace->addToMdiArea(m_deviceUIs.back()->m_deviceGUI); spectrumWorkspace->addToMdiArea(m_deviceUIs.back()->m_mainSpectrumGUI); emit m_mainCore->deviceSetAdded(deviceSetIndex, deviceAPI); @@ -535,6 +542,13 @@ void MainWindow::sampleSinkAdd(Workspace *deviceWorkspace, Workspace *spectrumWo [=](int channelPluginIndex){ this->channelAddClicked(deviceWorkspace, deviceSetIndex, channelPluginIndex); } ); + QObject::connect( + mainSpectrumGUI, + &MainSpectrumGUI::requestCenterFrequency, + this, + &MainWindow::mainSpectrumRequestDeviceCenterFrequency + ); + deviceWorkspace->addToMdiArea(m_deviceUIs.back()->m_deviceGUI); spectrumWorkspace->addToMdiArea(m_deviceUIs.back()->m_mainSpectrumGUI); emit m_mainCore->deviceSetAdded(deviceSetIndex, deviceAPI); @@ -2666,6 +2680,19 @@ void MainWindow::mainSpectrumShow(int deviceSetIndex) deviceUISet->m_mainSpectrumGUI->raise(); } +void MainWindow::mainSpectrumRequestDeviceCenterFrequency(int deviceSetIndex, qint64 deviceCenterFrequency) +{ + DeviceUISet *deviceUISet = m_deviceUIs[deviceSetIndex]; + DeviceAPI *deviceAPI = deviceUISet->m_deviceAPI; + + if (deviceAPI->getSampleSource()) { + deviceAPI->getSampleSource()->setCenterFrequency(deviceCenterFrequency); + } else if (deviceAPI->getSampleSink()) { + deviceAPI->getSampleSink()->setCenterFrequency(deviceCenterFrequency); + } + // Not implemented for MIMO +} + void MainWindow::showAllChannels(int deviceSetIndex) { DeviceUISet *deviceUISet = m_deviceUIs[deviceSetIndex]; diff --git a/sdrgui/mainwindow.h b/sdrgui/mainwindow.h index 54625921a..3361e048b 100644 --- a/sdrgui/mainwindow.h +++ b/sdrgui/mainwindow.h @@ -207,6 +207,7 @@ private slots: void deviceMove(DeviceGUI *gui, int wsIndexDestnation); void mainSpectrumMove(MainSpectrumGUI *gui, int wsIndexDestnation); void mainSpectrumShow(int deviceSetIndex); + void mainSpectrumRequestDeviceCenterFrequency(int deviceSetIndex, qint64 deviceCenterFrequency); void showAllChannels(int deviceSetIndex); void openDeviceSetPresetsDialog(QPoint p, DeviceGUI *deviceGUI); void commandKeyPressed(Qt::Key key, Qt::KeyboardModifiers keyModifiers, bool release);