mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-10-01 01:06:35 -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 *getDeviceEngineInputMessageQueue(); //!< Device engine message queue
|
||||||
MessageQueue *getSamplingDeviceInputMessageQueue(); //!< Sampling device (ex: single Rx) input 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 *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 configureCorrections(bool dcOffsetCorrection, bool iqImbalanceCorrection, int streamIndex = 0); //!< Configure current device engine DSP corrections (Rx)
|
||||||
|
|
||||||
void setHardwareId(const QString& id);
|
void setHardwareId(const QString& id);
|
||||||
void setSamplingDeviceId(const QString& id) { m_samplingDeviceId = 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 resetSamplingDeviceId() { m_samplingDeviceId.clear(); }
|
||||||
// void resetSampleSourceId();
|
|
||||||
// void resetSampleSinkId();
|
|
||||||
void setSamplingDeviceSerial(const QString& serial) { m_samplingDeviceSerial = serial; }
|
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 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 setSamplingDeviceSequence(int sequence) { m_samplingDeviceSequence = sequence; }
|
||||||
// void setSampleSourceSequence(int sequence);
|
void setHardwareUserArguments(const QString& userArguments) { m_hardwareUserArguments = userArguments; }
|
||||||
// void setSampleSinkSequence(int sequence);
|
|
||||||
void setSamplingDevicePluginInterface(PluginInterface *iface);
|
void setSamplingDevicePluginInterface(PluginInterface *iface);
|
||||||
// void setSampleSourcePluginInterface(PluginInterface *iface);
|
|
||||||
// void setSampleSinkPluginInterface(PluginInterface *iface);
|
|
||||||
void setSamplingDevicePluginInstanceGUI(PluginInstanceGUI *gui);
|
void setSamplingDevicePluginInstanceGUI(PluginInstanceGUI *gui);
|
||||||
// void setSampleSourcePluginInstanceGUI(PluginInstanceGUI *gui);
|
|
||||||
// void setSampleSinkPluginInstanceUI(PluginInstanceGUI *gui);
|
|
||||||
|
|
||||||
const QString& getHardwareId() const { return m_hardwareId; }
|
const QString& getHardwareId() const { return m_hardwareId; }
|
||||||
const QString& getSamplingDeviceId() const { return m_samplingDeviceId; }
|
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& 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& 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 getSamplingDeviceSequence() const { return m_samplingDeviceSequence; }
|
||||||
// uint32_t getSampleSourceSequence() const { return m_sampleSourceSequence; }
|
const QString& getHardwareUserArguments() const { return m_hardwareUserArguments; }
|
||||||
// uint32_t getSampleSinkSequence() const { return m_sampleSinkSequence; }
|
|
||||||
|
|
||||||
void setDeviceNbItems(uint32_t nbItems);
|
void setDeviceNbItems(uint32_t nbItems);
|
||||||
void setDeviceItemIndex(uint32_t index);
|
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_samplingDeviceSerial; //!< The device serial number defined by the vendor or a fake one (SDRplay)
|
||||||
QString m_samplingDeviceDisplayName; //!< The human readable name identifying this instance
|
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
|
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;
|
PluginInstanceGUI* m_samplingDevicePluginInstanceUI;
|
||||||
|
|
||||||
// Buddies (single Rx or single Tx)
|
// 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)
|
void DeviceUserArgs::addDeviceArgs(const QString& id, int sequence, const QString& deviceArgs)
|
||||||
{
|
{
|
||||||
Args args;
|
Args args;
|
||||||
|
@ -43,6 +43,7 @@ public:
|
|||||||
QByteArray serialize() const;
|
QByteArray serialize() const;
|
||||||
bool deserialize(const QByteArray& data);
|
bool deserialize(const QByteArray& data);
|
||||||
QList<Args>::iterator findDeviceArgs(const QString& id, int sequence);
|
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 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 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
|
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->setSamplingDeviceDisplayName(samplingDevice->displayedName);
|
||||||
m_deviceUIs.back()->m_deviceAPI->setSamplingDevicePluginInterface(DeviceEnumerator::instance()->getRxPluginInterface(deviceIndex));
|
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);
|
m_deviceUIs.back()->m_samplingDeviceControl->setSelectedDeviceIndex(deviceIndex);
|
||||||
|
|
||||||
// delete previous plugin GUI
|
// delete previous plugin GUI
|
||||||
@ -388,6 +394,12 @@ void MainWindow::addSinkDevice()
|
|||||||
m_deviceUIs.back()->m_deviceAPI->setSamplingDeviceDisplayName(samplingDevice->displayedName);
|
m_deviceUIs.back()->m_deviceAPI->setSamplingDeviceDisplayName(samplingDevice->displayedName);
|
||||||
m_deviceUIs.back()->m_deviceAPI->setSamplingDevicePluginInterface(DeviceEnumerator::instance()->getTxPluginInterface(fileSinkDeviceIndex));
|
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);
|
m_deviceUIs.back()->m_samplingDeviceControl->setSelectedDeviceIndex(fileSinkDeviceIndex);
|
||||||
|
|
||||||
// delete previous plugin GUI if it exists
|
// 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->setSamplingDeviceDisplayName(samplingDevice->displayedName);
|
||||||
m_deviceUIs.back()->m_deviceAPI->setSamplingDevicePluginInterface(DeviceEnumerator::instance()->getMIMOPluginInterface(testMIMODeviceIndex));
|
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);
|
m_deviceUIs.back()->m_samplingDeviceControl->setSelectedDeviceIndex(testMIMODeviceIndex);
|
||||||
|
|
||||||
// delete previous plugin GUI if it exists
|
// delete previous plugin GUI if it exists
|
||||||
@ -1676,6 +1694,12 @@ void MainWindow::sampleSourceChanged()
|
|||||||
deviceUI->m_deviceAPI->setSamplingDeviceDisplayName(samplingDevice->displayedName);
|
deviceUI->m_deviceAPI->setSamplingDeviceDisplayName(samplingDevice->displayedName);
|
||||||
deviceUI->m_deviceAPI->setSamplingDevicePluginInterface(DeviceEnumerator::instance()->getRxPluginInterface(deviceUI->m_samplingDeviceControl->getSelectedDeviceIndex()));
|
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
|
// add to buddies list
|
||||||
std::vector<DeviceUISet*>::iterator it = m_deviceUIs.begin();
|
std::vector<DeviceUISet*>::iterator it = m_deviceUIs.begin();
|
||||||
int nbOfBuddies = 0;
|
int nbOfBuddies = 0;
|
||||||
@ -1765,6 +1789,12 @@ void MainWindow::sampleSinkChanged()
|
|||||||
deviceUI->m_deviceAPI->setSamplingDeviceDisplayName(samplingDevice->displayedName);
|
deviceUI->m_deviceAPI->setSamplingDeviceDisplayName(samplingDevice->displayedName);
|
||||||
deviceUI->m_deviceAPI->setSamplingDevicePluginInterface(DeviceEnumerator::instance()->getTxPluginInterface(deviceUI->m_samplingDeviceControl->getSelectedDeviceIndex()));
|
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
|
// add to buddies list
|
||||||
std::vector<DeviceUISet*>::iterator it = m_deviceUIs.begin();
|
std::vector<DeviceUISet*>::iterator it = m_deviceUIs.begin();
|
||||||
int nbOfBuddies = 0;
|
int nbOfBuddies = 0;
|
||||||
@ -1849,6 +1879,12 @@ void MainWindow::sampleMIMOChanged()
|
|||||||
deviceUI->m_deviceAPI->setSamplingDevicePluginInterface(
|
deviceUI->m_deviceAPI->setSamplingDevicePluginInterface(
|
||||||
DeviceEnumerator::instance()->getMIMOPluginInterface(deviceUI->m_samplingDeviceControl->getSelectedDeviceIndex()));
|
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
|
// constructs new GUI and MIMO object
|
||||||
DeviceSampleMIMO *mimo = deviceUI->m_deviceAPI->getPluginInterface()->createSampleMIMOPluginInstance(
|
DeviceSampleMIMO *mimo = deviceUI->m_deviceAPI->getPluginInterface()->createSampleMIMOPluginInstance(
|
||||||
deviceUI->m_deviceAPI->getSamplingDeviceId(), deviceUI->m_deviceAPI);
|
deviceUI->m_deviceAPI->getSamplingDeviceId(), deviceUI->m_deviceAPI);
|
||||||
|
Loading…
Reference in New Issue
Block a user