Skip to content

Commit

Permalink
Merge pull request f4exb#2001 from mxi-box/device_claim_bugfix
Browse files Browse the repository at this point in the history
Fix renumberate deviceset without modifying claimed of SamplingDevice
  • Loading branch information
f4exb authored Feb 28, 2024
2 parents 480241f + 2de9f16 commit 2a5c04f
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 0 deletions.
15 changes: 15 additions & 0 deletions sdrbase/device/deviceenumerator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
///////////////////////////////////////////////////////////////////////////////////

#include <QGlobalStatic>
#include <functional>

#include "deviceenumerator.h"

Expand Down Expand Up @@ -432,6 +433,20 @@ void DeviceEnumerator::removeMIMOSelection(int tabIndex)
}
}

void DeviceEnumerator::renumeratetabIndex(int skippedTabIndex)
{
std::reference_wrapper<DevicesEnumeration> denums[] = {m_rxEnumeration, m_txEnumeration, m_mimoEnumeration};
for (DevicesEnumeration &denum : denums)
{
for (DevicesEnumeration::iterator it = denum.begin(); it != denum.end(); ++it)
{
if (it->m_samplingDevice.claimed > skippedTabIndex) {
it->m_samplingDevice.claimed--;
}
}
}
}

int DeviceEnumerator::getFileInputDeviceIndex() const
{
for (DevicesEnumeration::const_iterator it = m_rxEnumeration.begin(); it != m_rxEnumeration.end(); ++it)
Expand Down
1 change: 1 addition & 0 deletions sdrbase/device/deviceenumerator.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ class SDRBASE_API DeviceEnumerator : public QObject
void removeRxSelection(int tabIndex);
void removeTxSelection(int tabIndex);
void removeMIMOSelection(int tabIndex);
void renumeratetabIndex(int skippedTabIndex);
int getNbRxSamplingDevices() const { return m_rxEnumeration.size(); }
int getNbTxSamplingDevices() const { return m_txEnumeration.size(); }
int getNbMIMOSamplingDevices() const { return m_mimoEnumeration.size(); }
Expand Down
1 change: 1 addition & 0 deletions sdrgui/mainwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1072,6 +1072,7 @@ void MainWindow::removeDeviceSet(int deviceSetIndex)

m_deviceUIs.erase(m_deviceUIs.begin() + deviceSetIndex);
m_mainCore->removeDeviceSet(deviceSetIndex);
DeviceEnumerator::instance()->renumeratetabIndex(deviceSetIndex);

// Renumerate
for (int i = 0; i < (int) m_deviceUIs.size(); i++)
Expand Down

0 comments on commit 2a5c04f

Please sign in to comment.