mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-03-22 04:08:29 -04:00
Device user arguments: pass from main window to device API
This commit is contained in:
parent
4f89e22cc2
commit
ea1b3e90b4
@ -102,50 +102,26 @@ public:
|
||||
|
||||
MessageQueue *getDeviceEngineInputMessageQueue(); //!< Device engine message queue
|
||||
MessageQueue *getSamplingDeviceInputMessageQueue(); //!< Sampling device (ex: single Rx) input message queue
|
||||
// MessageQueue *getSampleSinkInputMessageQueue();
|
||||
// MessageQueue *getSampleSourceInputMessageQueue();
|
||||
MessageQueue *getSamplingDeviceGUIMessageQueue(); //!< Sampling device (ex: single Tx) GUI input message queue
|
||||
// MessageQueue *getSampleSinkGUIMessageQueue();
|
||||
// MessageQueue *getSampleSourceGUIMessageQueue();
|
||||
|
||||
void configureCorrections(bool dcOffsetCorrection, bool iqImbalanceCorrection, int streamIndex = 0); //!< Configure current device engine DSP corrections (Rx)
|
||||
|
||||
void setHardwareId(const QString& id);
|
||||
void setSamplingDeviceId(const QString& id) { m_samplingDeviceId = id; }
|
||||
// void setSampleSourceId(const QString& id);
|
||||
// void setSampleSinkId(const QString& id);
|
||||
void resetSamplingDeviceId() { m_samplingDeviceId.clear(); }
|
||||
// void resetSampleSourceId();
|
||||
// void resetSampleSinkId();
|
||||
void setSamplingDeviceSerial(const QString& serial) { m_samplingDeviceSerial = serial; }
|
||||
// void setSampleSourceSerial(const QString& serial);
|
||||
// void setSampleSinkSerial(const QString& serial);
|
||||
void setSamplingDeviceDisplayName(const QString& name) { m_samplingDeviceDisplayName = name; }
|
||||
// void setSampleSourceDisplayName(const QString& serial);
|
||||
// void setSampleSinkDisplayName(const QString& serial);
|
||||
void setSamplingDeviceSequence(int sequence) { m_samplingDeviceSequence = sequence; }
|
||||
// void setSampleSourceSequence(int sequence);
|
||||
// void setSampleSinkSequence(int sequence);
|
||||
void setHardwareUserArguments(const QString& userArguments) { m_hardwareUserArguments = userArguments; }
|
||||
void setSamplingDevicePluginInterface(PluginInterface *iface);
|
||||
// void setSampleSourcePluginInterface(PluginInterface *iface);
|
||||
// void setSampleSinkPluginInterface(PluginInterface *iface);
|
||||
void setSamplingDevicePluginInstanceGUI(PluginInstanceGUI *gui);
|
||||
// void setSampleSourcePluginInstanceGUI(PluginInstanceGUI *gui);
|
||||
// void setSampleSinkPluginInstanceUI(PluginInstanceGUI *gui);
|
||||
|
||||
const QString& getHardwareId() const { return m_hardwareId; }
|
||||
const QString& getSamplingDeviceId() const { return m_samplingDeviceId; }
|
||||
// const QString& getSampleSourceId() const { return m_sampleSourceId; }
|
||||
// const QString& getSampleSinkId() const { return m_sampleSinkId; }
|
||||
const QString& getSamplingDeviceSerial() const { return m_samplingDeviceSerial; }
|
||||
// const QString& getSampleSourceSerial() const { return m_sampleSourceSerial; }
|
||||
// const QString& getSampleSinkSerial() const { return m_sampleSinkSerial; }
|
||||
const QString& getSamplingDeviceDisplayName() const { return m_samplingDeviceDisplayName; }
|
||||
// const QString& getSampleSourceDisplayName() const { return m_sampleSourceDisplayName; }
|
||||
// const QString& getSampleSinkDisplayName() const { return m_sampleSinkDisplayName; }
|
||||
uint32_t getSamplingDeviceSequence() const { return m_samplingDeviceSequence; }
|
||||
// uint32_t getSampleSourceSequence() const { return m_sampleSourceSequence; }
|
||||
// uint32_t getSampleSinkSequence() const { return m_sampleSinkSequence; }
|
||||
const QString& getHardwareUserArguments() const { return m_hardwareUserArguments; }
|
||||
|
||||
void setDeviceNbItems(uint32_t nbItems);
|
||||
void setDeviceItemIndex(uint32_t index);
|
||||
@ -212,6 +188,7 @@ protected:
|
||||
QString m_samplingDeviceSerial; //!< The device serial number defined by the vendor or a fake one (SDRplay)
|
||||
QString m_samplingDeviceDisplayName; //!< The human readable name identifying this instance
|
||||
uint32_t m_samplingDeviceSequence; //!< The device sequence. >0 when more than one device of the same type is connected
|
||||
QString m_hardwareUserArguments; //!< User given arguments to be used at hardware level i.e. for the hardware device and device sequence
|
||||
PluginInstanceGUI* m_samplingDevicePluginInstanceUI;
|
||||
|
||||
// Buddies (single Rx or single Tx)
|
||||
|
@ -79,6 +79,17 @@ QList<DeviceUserArgs::Args>::iterator DeviceUserArgs::findDeviceArgs(const QStri
|
||||
}
|
||||
}
|
||||
|
||||
QString DeviceUserArgs::findUserArgs(const QString& id, int sequence)
|
||||
{
|
||||
QList<DeviceUserArgs::Args>::iterator it = findDeviceArgs(id, sequence);
|
||||
|
||||
if (it != m_argsByDevice.end()) {
|
||||
return it->m_args;
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
void DeviceUserArgs::addDeviceArgs(const QString& id, int sequence, const QString& deviceArgs)
|
||||
{
|
||||
Args args;
|
||||
|
@ -43,6 +43,7 @@ public:
|
||||
QByteArray serialize() const;
|
||||
bool deserialize(const QByteArray& data);
|
||||
QList<Args>::iterator findDeviceArgs(const QString& id, int sequence);
|
||||
QString findUserArgs(const QString& id, int sequence);
|
||||
void addDeviceArgs(const QString& id, int sequence, const QString& args); //!< Will not add if it exists for same reference
|
||||
void addOrUpdateDeviceArgs(const QString& id, int sequence, const QString& args); //!< Add or update if it exists for same reference
|
||||
void updateDeviceArgs(const QString& id, int sequence, const QString& args); //!< Will not update if reference does not exist
|
||||
|
@ -315,6 +315,12 @@ void MainWindow::addSourceDevice(int deviceIndex)
|
||||
m_deviceUIs.back()->m_deviceAPI->setSamplingDeviceDisplayName(samplingDevice->displayedName);
|
||||
m_deviceUIs.back()->m_deviceAPI->setSamplingDevicePluginInterface(DeviceEnumerator::instance()->getRxPluginInterface(deviceIndex));
|
||||
|
||||
QString userArgs = m_settings.getDeviceUserArgs().findUserArgs(samplingDevice->hardwareId, samplingDevice->sequence);
|
||||
|
||||
if (userArgs.size() > 0) {
|
||||
m_deviceUIs.back()->m_deviceAPI->setHardwareUserArguments(userArgs);
|
||||
}
|
||||
|
||||
m_deviceUIs.back()->m_samplingDeviceControl->setSelectedDeviceIndex(deviceIndex);
|
||||
|
||||
// delete previous plugin GUI
|
||||
@ -388,6 +394,12 @@ void MainWindow::addSinkDevice()
|
||||
m_deviceUIs.back()->m_deviceAPI->setSamplingDeviceDisplayName(samplingDevice->displayedName);
|
||||
m_deviceUIs.back()->m_deviceAPI->setSamplingDevicePluginInterface(DeviceEnumerator::instance()->getTxPluginInterface(fileSinkDeviceIndex));
|
||||
|
||||
QString userArgs = m_settings.getDeviceUserArgs().findUserArgs(samplingDevice->hardwareId, samplingDevice->sequence);
|
||||
|
||||
if (userArgs.size() > 0) {
|
||||
m_deviceUIs.back()->m_deviceAPI->setHardwareUserArguments(userArgs);
|
||||
}
|
||||
|
||||
m_deviceUIs.back()->m_samplingDeviceControl->setSelectedDeviceIndex(fileSinkDeviceIndex);
|
||||
|
||||
// delete previous plugin GUI if it exists
|
||||
@ -469,6 +481,12 @@ void MainWindow::addMIMODevice()
|
||||
m_deviceUIs.back()->m_deviceAPI->setSamplingDeviceDisplayName(samplingDevice->displayedName);
|
||||
m_deviceUIs.back()->m_deviceAPI->setSamplingDevicePluginInterface(DeviceEnumerator::instance()->getMIMOPluginInterface(testMIMODeviceIndex));
|
||||
|
||||
QString userArgs = m_settings.getDeviceUserArgs().findUserArgs(samplingDevice->hardwareId, samplingDevice->sequence);
|
||||
|
||||
if (userArgs.size() > 0) {
|
||||
m_deviceUIs.back()->m_deviceAPI->setHardwareUserArguments(userArgs);
|
||||
}
|
||||
|
||||
m_deviceUIs.back()->m_samplingDeviceControl->setSelectedDeviceIndex(testMIMODeviceIndex);
|
||||
|
||||
// delete previous plugin GUI if it exists
|
||||
@ -1676,6 +1694,12 @@ void MainWindow::sampleSourceChanged()
|
||||
deviceUI->m_deviceAPI->setSamplingDeviceDisplayName(samplingDevice->displayedName);
|
||||
deviceUI->m_deviceAPI->setSamplingDevicePluginInterface(DeviceEnumerator::instance()->getRxPluginInterface(deviceUI->m_samplingDeviceControl->getSelectedDeviceIndex()));
|
||||
|
||||
QString userArgs = m_settings.getDeviceUserArgs().findUserArgs(samplingDevice->hardwareId, samplingDevice->sequence);
|
||||
|
||||
if (userArgs.size() > 0) {
|
||||
deviceUI->m_deviceAPI->setHardwareUserArguments(userArgs);
|
||||
}
|
||||
|
||||
// add to buddies list
|
||||
std::vector<DeviceUISet*>::iterator it = m_deviceUIs.begin();
|
||||
int nbOfBuddies = 0;
|
||||
@ -1765,6 +1789,12 @@ void MainWindow::sampleSinkChanged()
|
||||
deviceUI->m_deviceAPI->setSamplingDeviceDisplayName(samplingDevice->displayedName);
|
||||
deviceUI->m_deviceAPI->setSamplingDevicePluginInterface(DeviceEnumerator::instance()->getTxPluginInterface(deviceUI->m_samplingDeviceControl->getSelectedDeviceIndex()));
|
||||
|
||||
QString userArgs = m_settings.getDeviceUserArgs().findUserArgs(samplingDevice->hardwareId, samplingDevice->sequence);
|
||||
|
||||
if (userArgs.size() > 0) {
|
||||
deviceUI->m_deviceAPI->setHardwareUserArguments(userArgs);
|
||||
}
|
||||
|
||||
// add to buddies list
|
||||
std::vector<DeviceUISet*>::iterator it = m_deviceUIs.begin();
|
||||
int nbOfBuddies = 0;
|
||||
@ -1849,6 +1879,12 @@ void MainWindow::sampleMIMOChanged()
|
||||
deviceUI->m_deviceAPI->setSamplingDevicePluginInterface(
|
||||
DeviceEnumerator::instance()->getMIMOPluginInterface(deviceUI->m_samplingDeviceControl->getSelectedDeviceIndex()));
|
||||
|
||||
QString userArgs = m_settings.getDeviceUserArgs().findUserArgs(samplingDevice->hardwareId, samplingDevice->sequence);
|
||||
|
||||
if (userArgs.size() > 0) {
|
||||
deviceUI->m_deviceAPI->setHardwareUserArguments(userArgs);
|
||||
}
|
||||
|
||||
// constructs new GUI and MIMO object
|
||||
DeviceSampleMIMO *mimo = deviceUI->m_deviceAPI->getPluginInterface()->createSampleMIMOPluginInstance(
|
||||
deviceUI->m_deviceAPI->getSamplingDeviceId(), deviceUI->m_deviceAPI);
|
||||
|
Loading…
Reference in New Issue
Block a user