mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-05-30 05:52:24 -04:00
Sort channel plugins by delta frequency and type before saving to preset
This commit is contained in:
parent
ad8be9875e
commit
6d27dc5e0b
@ -114,13 +114,15 @@ Done since the fork
|
|||||||
- Enhanced scope display and controls: scale display, better X (time) and Y scales control, grid fit to scale, effectively implementing triggers, trigger on magnitude and phase, properly handling time shift, ...
|
- Enhanced scope display and controls: scale display, better X (time) and Y scales control, grid fit to scale, effectively implementing triggers, trigger on magnitude and phase, properly handling time shift, ...
|
||||||
- Enhanced spectrum display: Histogram: define NO_AVX, wider decay range, make stroke and late holdoff adjustable. Added option to show live spectrum (had only max hold before).
|
- Enhanced spectrum display: Histogram: define NO_AVX, wider decay range, make stroke and late holdoff adjustable. Added option to show live spectrum (had only max hold before).
|
||||||
- Enhanced channel analyzer: enhanced scope and spectrum displays as mentioned above, make the spectrum display synchronous to scope (hence triggerable a la E4406A).
|
- Enhanced channel analyzer: enhanced scope and spectrum displays as mentioned above, make the spectrum display synchronous to scope (hence triggerable a la E4406A).
|
||||||
|
- Sort channel plugins by delta frequency and type before saving to preset
|
||||||
|
|
||||||
=====
|
=====
|
||||||
To Do
|
To Do
|
||||||
=====
|
=====
|
||||||
|
|
||||||
- Enhance presets management (Edit, Move, Import/Export from/to human readable format like JSON)
|
- Implement trigger delay on scope
|
||||||
- Variable scope memory depth
|
- Variable scope memory depth
|
||||||
|
- Enhance presets management (Edit, Move, Import/Export from/to human readable format like JSON)
|
||||||
- Level calibration
|
- Level calibration
|
||||||
- Enhance WFM (stereo, RDS?)
|
- Enhance WFM (stereo, RDS?)
|
||||||
- Even more demods ...
|
- Even more demods ...
|
||||||
|
@ -45,7 +45,7 @@ public:
|
|||||||
void registerSampleSource(const QString& sourceName, PluginInterface* plugin);
|
void registerSampleSource(const QString& sourceName, PluginInterface* plugin);
|
||||||
|
|
||||||
void loadSettings(const Preset* preset);
|
void loadSettings(const Preset* preset);
|
||||||
void saveSettings(Preset* preset) const;
|
void saveSettings(Preset* preset);
|
||||||
|
|
||||||
void freeAll();
|
void freeAll();
|
||||||
|
|
||||||
@ -78,6 +78,7 @@ private:
|
|||||||
m_channelName(channelName),
|
m_channelName(channelName),
|
||||||
m_gui(pluginGUI)
|
m_gui(pluginGUI)
|
||||||
{ }
|
{ }
|
||||||
|
bool operator<(const ChannelInstanceRegistration& other) const;
|
||||||
};
|
};
|
||||||
typedef QList<ChannelInstanceRegistration> ChannelInstanceRegistrations;
|
typedef QList<ChannelInstanceRegistration> ChannelInstanceRegistrations;
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ public:
|
|||||||
|
|
||||||
virtual QByteArray serializeGeneral() const;
|
virtual QByteArray serializeGeneral() const;
|
||||||
virtual bool deserializeGeneral(const QByteArray& data);
|
virtual bool deserializeGeneral(const QByteArray& data);
|
||||||
virtual quint64 getCenterFrequency() const;
|
virtual qint64 getCenterFrequency() const;
|
||||||
|
|
||||||
virtual QByteArray serialize() const = 0;
|
virtual QByteArray serialize() const = 0;
|
||||||
virtual bool deserialize(const QByteArray& data) = 0;
|
virtual bool deserialize(const QByteArray& data) = 0;
|
||||||
|
@ -39,6 +39,10 @@ QString AMDemodGUI::getName() const
|
|||||||
return objectName();
|
return objectName();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
qint64 AMDemodGUI::getCenterFrequency() const {
|
||||||
|
return m_channelMarker->getCenterFrequency();
|
||||||
|
}
|
||||||
|
|
||||||
void AMDemodGUI::resetToDefaults()
|
void AMDemodGUI::resetToDefaults()
|
||||||
{
|
{
|
||||||
ui->rfBW->setValue(4);
|
ui->rfBW->setValue(4);
|
||||||
|
@ -26,6 +26,7 @@ public:
|
|||||||
|
|
||||||
void setName(const QString& name);
|
void setName(const QString& name);
|
||||||
QString getName() const;
|
QString getName() const;
|
||||||
|
qint64 getCenterFrequency() const;
|
||||||
|
|
||||||
void resetToDefaults();
|
void resetToDefaults();
|
||||||
QByteArray serialize() const;
|
QByteArray serialize() const;
|
||||||
|
@ -37,6 +37,11 @@ QString ChannelAnalyzerGUI::getName() const
|
|||||||
return objectName();
|
return objectName();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
qint64 ChannelAnalyzerGUI::getCenterFrequency() const
|
||||||
|
{
|
||||||
|
return m_channelMarker->getCenterFrequency();
|
||||||
|
}
|
||||||
|
|
||||||
void ChannelAnalyzerGUI::resetToDefaults()
|
void ChannelAnalyzerGUI::resetToDefaults()
|
||||||
{
|
{
|
||||||
ui->BW->setValue(30);
|
ui->BW->setValue(30);
|
||||||
|
@ -28,6 +28,7 @@ public:
|
|||||||
|
|
||||||
void setName(const QString& name);
|
void setName(const QString& name);
|
||||||
QString getName() const;
|
QString getName() const;
|
||||||
|
qint64 getCenterFrequency() const;
|
||||||
|
|
||||||
void resetToDefaults();
|
void resetToDefaults();
|
||||||
QByteArray serialize() const;
|
QByteArray serialize() const;
|
||||||
|
@ -34,6 +34,10 @@ QString LoRaDemodGUI::getName() const
|
|||||||
return objectName();
|
return objectName();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
qint64 LoRaDemodGUI::getCenterFrequency() const {
|
||||||
|
return m_channelMarker->getCenterFrequency();
|
||||||
|
}
|
||||||
|
|
||||||
void LoRaDemodGUI::resetToDefaults()
|
void LoRaDemodGUI::resetToDefaults()
|
||||||
{
|
{
|
||||||
ui->BW->setValue(0);
|
ui->BW->setValue(0);
|
||||||
|
@ -26,6 +26,7 @@ public:
|
|||||||
|
|
||||||
void setName(const QString& name);
|
void setName(const QString& name);
|
||||||
QString getName() const;
|
QString getName() const;
|
||||||
|
qint64 getCenterFrequency() const;
|
||||||
|
|
||||||
void resetToDefaults();
|
void resetToDefaults();
|
||||||
QByteArray serialize() const;
|
QByteArray serialize() const;
|
||||||
|
@ -38,6 +38,11 @@ QString NFMDemodGUI::getName() const
|
|||||||
return objectName();
|
return objectName();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
qint64 NFMDemodGUI::getCenterFrequency() const
|
||||||
|
{
|
||||||
|
return m_channelMarker->getCenterFrequency();
|
||||||
|
}
|
||||||
|
|
||||||
void NFMDemodGUI::resetToDefaults()
|
void NFMDemodGUI::resetToDefaults()
|
||||||
{
|
{
|
||||||
ui->rfBW->setValue(4);
|
ui->rfBW->setValue(4);
|
||||||
|
@ -27,6 +27,7 @@ public:
|
|||||||
|
|
||||||
void setName(const QString& name);
|
void setName(const QString& name);
|
||||||
QString getName() const;
|
QString getName() const;
|
||||||
|
qint64 getCenterFrequency() const;
|
||||||
|
|
||||||
void resetToDefaults();
|
void resetToDefaults();
|
||||||
QByteArray serialize() const;
|
QByteArray serialize() const;
|
||||||
|
@ -36,6 +36,11 @@ QString SSBDemodGUI::getName() const
|
|||||||
return objectName();
|
return objectName();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
qint64 SSBDemodGUI::getCenterFrequency() const
|
||||||
|
{
|
||||||
|
return m_channelMarker->getCenterFrequency();
|
||||||
|
}
|
||||||
|
|
||||||
void SSBDemodGUI::resetToDefaults()
|
void SSBDemodGUI::resetToDefaults()
|
||||||
{
|
{
|
||||||
ui->BW->setValue(30);
|
ui->BW->setValue(30);
|
||||||
|
@ -26,6 +26,7 @@ public:
|
|||||||
|
|
||||||
void setName(const QString& name);
|
void setName(const QString& name);
|
||||||
QString getName() const;
|
QString getName() const;
|
||||||
|
qint64 getCenterFrequency() const;
|
||||||
|
|
||||||
void resetToDefaults();
|
void resetToDefaults();
|
||||||
QByteArray serialize() const;
|
QByteArray serialize() const;
|
||||||
|
@ -24,6 +24,11 @@ void TCPSrcGUI::setName(const QString& name)
|
|||||||
setObjectName(name);
|
setObjectName(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
qint64 TCPSrcGUI::getCenterFrequency() const
|
||||||
|
{
|
||||||
|
return m_channelMarker->getCenterFrequency();
|
||||||
|
}
|
||||||
|
|
||||||
QString TCPSrcGUI::getName() const
|
QString TCPSrcGUI::getName() const
|
||||||
{
|
{
|
||||||
return objectName();
|
return objectName();
|
||||||
|
@ -26,6 +26,7 @@ public:
|
|||||||
|
|
||||||
void setName(const QString& name);
|
void setName(const QString& name);
|
||||||
QString getName() const;
|
QString getName() const;
|
||||||
|
qint64 getCenterFrequency() const;
|
||||||
|
|
||||||
void resetToDefaults();
|
void resetToDefaults();
|
||||||
QByteArray serialize() const;
|
QByteArray serialize() const;
|
||||||
|
@ -48,6 +48,11 @@ QString WFMDemodGUI::getName() const
|
|||||||
return objectName();
|
return objectName();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
qint64 WFMDemodGUI::getCenterFrequency() const
|
||||||
|
{
|
||||||
|
return m_channelMarker->getCenterFrequency();
|
||||||
|
}
|
||||||
|
|
||||||
void WFMDemodGUI::resetToDefaults()
|
void WFMDemodGUI::resetToDefaults()
|
||||||
{
|
{
|
||||||
ui->rfBW->setValue(4);
|
ui->rfBW->setValue(4);
|
||||||
|
@ -26,6 +26,7 @@ public:
|
|||||||
|
|
||||||
void setName(const QString& name);
|
void setName(const QString& name);
|
||||||
QString getName() const;
|
QString getName() const;
|
||||||
|
qint64 getCenterFrequency() const;
|
||||||
|
|
||||||
void resetToDefaults();
|
void resetToDefaults();
|
||||||
QByteArray serialize() const;
|
QByteArray serialize() const;
|
||||||
|
@ -82,7 +82,7 @@ bool BladerfGui::deserializeGeneral(const QByteArray&data)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
quint64 BladerfGui::getCenterFrequency() const
|
qint64 BladerfGui::getCenterFrequency() const
|
||||||
{
|
{
|
||||||
return m_generalSettings.m_centerFrequency;
|
return m_generalSettings.m_centerFrequency;
|
||||||
}
|
}
|
||||||
|
@ -43,7 +43,7 @@ public:
|
|||||||
void resetToDefaults();
|
void resetToDefaults();
|
||||||
QByteArray serializeGeneral() const;
|
QByteArray serializeGeneral() const;
|
||||||
bool deserializeGeneral(const QByteArray&data);
|
bool deserializeGeneral(const QByteArray&data);
|
||||||
quint64 getCenterFrequency() const;
|
qint64 getCenterFrequency() const;
|
||||||
QByteArray serialize() const;
|
QByteArray serialize() const;
|
||||||
bool deserialize(const QByteArray& data);
|
bool deserialize(const QByteArray& data);
|
||||||
bool handleMessage(Message* message);
|
bool handleMessage(Message* message);
|
||||||
|
@ -63,7 +63,7 @@ bool FCDGui::deserializeGeneral(const QByteArray&data)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
quint64 FCDGui::getCenterFrequency() const
|
qint64 FCDGui::getCenterFrequency() const
|
||||||
{
|
{
|
||||||
return m_generalSettings.m_centerFrequency;
|
return m_generalSettings.m_centerFrequency;
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,7 @@ public:
|
|||||||
void resetToDefaults();
|
void resetToDefaults();
|
||||||
QByteArray serializeGeneral() const;
|
QByteArray serializeGeneral() const;
|
||||||
bool deserializeGeneral(const QByteArray&data);
|
bool deserializeGeneral(const QByteArray&data);
|
||||||
quint64 getCenterFrequency() const;
|
qint64 getCenterFrequency() const;
|
||||||
QByteArray serialize() const;
|
QByteArray serialize() const;
|
||||||
bool deserialize(const QByteArray& data);
|
bool deserialize(const QByteArray& data);
|
||||||
bool handleMessage(Message* message);
|
bool handleMessage(Message* message);
|
||||||
|
@ -64,7 +64,7 @@ bool RTLSDRGui::deserializeGeneral(const QByteArray&data)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
quint64 RTLSDRGui::getCenterFrequency() const
|
qint64 RTLSDRGui::getCenterFrequency() const
|
||||||
{
|
{
|
||||||
return m_generalSettings.m_centerFrequency;
|
return m_generalSettings.m_centerFrequency;
|
||||||
}
|
}
|
||||||
|
@ -26,7 +26,7 @@ public:
|
|||||||
void resetToDefaults();
|
void resetToDefaults();
|
||||||
QByteArray serializeGeneral() const;
|
QByteArray serializeGeneral() const;
|
||||||
bool deserializeGeneral(const QByteArray&data);
|
bool deserializeGeneral(const QByteArray&data);
|
||||||
quint64 getCenterFrequency() const;
|
qint64 getCenterFrequency() const;
|
||||||
QByteArray serialize() const;
|
QByteArray serialize() const;
|
||||||
bool deserialize(const QByteArray& data);
|
bool deserialize(const QByteArray& data);
|
||||||
bool handleMessage(Message* message);
|
bool handleMessage(Message* message);
|
||||||
|
@ -10,7 +10,7 @@ bool PluginGUI::deserializeGeneral(const QByteArray& data)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
quint64 PluginGUI::getCenterFrequency() const
|
qint64 PluginGUI::getCenterFrequency() const
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -133,7 +133,20 @@ void PluginManager::loadSettings(const Preset* preset)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void PluginManager::saveSettings(Preset* preset) const
|
// sort by increasing delta frequency and type (i.e. name)
|
||||||
|
bool PluginManager::ChannelInstanceRegistration::operator<(const ChannelInstanceRegistration& other) const {
|
||||||
|
if (m_gui && other.m_gui) {
|
||||||
|
if (m_gui->getCenterFrequency() == other.m_gui->getCenterFrequency()) {
|
||||||
|
return m_gui->getName() < other.m_gui->getName();
|
||||||
|
} else {
|
||||||
|
return m_gui->getCenterFrequency() < other.m_gui->getCenterFrequency();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void PluginManager::saveSettings(Preset* preset)
|
||||||
{
|
{
|
||||||
if(m_sampleSourceInstance != NULL) {
|
if(m_sampleSourceInstance != NULL) {
|
||||||
preset->setSourceConfig(m_sampleSource, m_sampleSourceInstance->serializeGeneral(), m_sampleSourceInstance->serialize());
|
preset->setSourceConfig(m_sampleSource, m_sampleSourceInstance->serializeGeneral(), m_sampleSourceInstance->serialize());
|
||||||
@ -141,8 +154,10 @@ void PluginManager::saveSettings(Preset* preset) const
|
|||||||
} else {
|
} else {
|
||||||
preset->setSourceConfig(QString::null, QByteArray(), QByteArray());
|
preset->setSourceConfig(QString::null, QByteArray(), QByteArray());
|
||||||
}
|
}
|
||||||
for(int i = 0; i < m_channelInstanceRegistrations.count(); i++)
|
qSort(m_channelInstanceRegistrations.begin(), m_channelInstanceRegistrations.end()); // sort by increasing delta frequency and type
|
||||||
|
for(int i = 0; i < m_channelInstanceRegistrations.count(); i++) {
|
||||||
preset->addChannel(m_channelInstanceRegistrations[i].m_channelName, m_channelInstanceRegistrations[i].m_gui->serialize());
|
preset->addChannel(m_channelInstanceRegistrations[i].m_channelName, m_channelInstanceRegistrations[i].m_gui->serialize());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void PluginManager::freeAll()
|
void PluginManager::freeAll()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user