mirror of
				https://github.com/f4exb/sdrangel.git
				synced 2025-10-31 04:50:29 -04:00 
			
		
		
		
	GLScope redesign: removed SpectrumScopeComboVis
This commit is contained in:
		
							parent
							
								
									eb811c1e56
								
							
						
					
					
						commit
						ccb7633154
					
				| @ -62,7 +62,7 @@ public: | ||||
| 	virtual void destroy() { delete this; } | ||||
|     SpectrumVis *getSpectrumVis() { return &m_spectrumVis; } | ||||
|     ScopeVis *getScopeVis() { return &m_scopeVis; } | ||||
|     void setSampleSink(BasebandSampleSink *sink) { m_basebandSink->setSampleSink(sink); } | ||||
|     void setScopeVis(ScopeVis *scopeVis) { m_basebandSink->setScopeVis(scopeVis); } | ||||
| 
 | ||||
|     int getChannelSampleRate() const { return m_basebandSink->getChannelSampleRate(); } | ||||
|     int getDecimation() const { return 1<<m_settings.m_log2Decim; } | ||||
|  | ||||
| @ -67,7 +67,7 @@ public: | ||||
|     int getChannelSampleRate() const; | ||||
|     double getMagSq() { return m_sink.getMagSq(); } | ||||
|     double getMagSqAvg() const { return (double) m_sink.getMagSqAvg(); } | ||||
|     void setSampleSink(BasebandSampleSink* sampleSink) { m_sink.setSampleSink(sampleSink); } | ||||
|     void setScopeVis(ScopeVis *scopeVis) { m_sink.setScopeVis(scopeVis); } | ||||
|     bool isPllLocked() const { return m_sink.isPllLocked(); } | ||||
|     Real getPllFrequency() const { return m_sink.getPllFrequency(); } | ||||
|     Real getPllDeltaPhase() const { return m_sink.getPllDeltaPhase(); } | ||||
| @ -90,4 +90,4 @@ private slots: | ||||
|     void handleData(); //!< Handle data when samples have to be processed
 | ||||
| }; | ||||
| 
 | ||||
| #endif // INCLUDE_CHANNELANALYZERBASEBAND_H
 | ||||
| #endif // INCLUDE_CHANNELANALYZERBASEBAND_H
 | ||||
|  | ||||
| @ -19,7 +19,6 @@ | ||||
| #include <QMainWindow> | ||||
| 
 | ||||
| #include "device/deviceuiset.h" | ||||
| #include "dsp/spectrumscopecombovis.h" | ||||
| #include "dsp/spectrumvis.h" | ||||
| #include "dsp/dspengine.h" | ||||
| #include "dsp/dspcommands.h" | ||||
| @ -475,9 +474,9 @@ ChannelAnalyzerGUI::ChannelAnalyzerGUI(PluginAPI* pluginAPI, DeviceUISet *device | ||||
| 	m_spectrumVis->setGLSpectrum(ui->glSpectrum); | ||||
|     m_scopeVis = m_channelAnalyzer->getScopeVis(); | ||||
|     m_scopeVis->setGLScope(ui->glScope); | ||||
| 	m_spectrumScopeComboVis = new SpectrumScopeComboVis(m_spectrumVis, m_scopeVis); | ||||
|     m_basebandSampleRate = m_channelAnalyzer->getChannelSampleRate(); | ||||
|     m_channelAnalyzer->setSampleSink(m_spectrumScopeComboVis); | ||||
|     m_scopeVis->setSpectrumVis(m_spectrumVis); | ||||
|     m_channelAnalyzer->setScopeVis(m_scopeVis); | ||||
| 	m_channelAnalyzer->setMessageQueueToGUI(getInputMessageQueue()); | ||||
| 
 | ||||
|     ui->deltaFrequencyLabel->setText(QString("%1f").arg(QChar(0x94, 0x03))); | ||||
| @ -529,7 +528,6 @@ ChannelAnalyzerGUI::~ChannelAnalyzerGUI() | ||||
|     qDebug("ChannelAnalyzerGUI::~ChannelAnalyzerGUI"); | ||||
| 	ui->glScope->disconnectTimer(); | ||||
| 	delete ui; | ||||
| 	delete m_spectrumScopeComboVis; | ||||
|     qDebug("ChannelAnalyzerGUI::~ChannelAnalyzerGUI: done"); | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -30,7 +30,6 @@ class PluginAPI; | ||||
| class DeviceUISet; | ||||
| class BasebandSampleSink; | ||||
| class ChannelAnalyzer; | ||||
| class SpectrumScopeComboVis; | ||||
| class SpectrumVis; | ||||
| class ScopeVis; | ||||
| 
 | ||||
| @ -65,7 +64,6 @@ private: | ||||
| 	MovingAverageUtil<double, double, 40> m_channelPowerAvg; | ||||
| 
 | ||||
| 	ChannelAnalyzer* m_channelAnalyzer; | ||||
| 	SpectrumScopeComboVis* m_spectrumScopeComboVis; | ||||
| 	SpectrumVis* m_spectrumVis; | ||||
| 	ScopeVis* m_scopeVis; | ||||
| 	MessageQueue m_inputMessageQueue; | ||||
|  | ||||
| @ -21,7 +21,7 @@ | ||||
| #include <QDebug> | ||||
| #include <stdio.h> | ||||
| 
 | ||||
| #include "dsp/basebandsamplesink.h" | ||||
| #include "dsp/scopevis.h" | ||||
| 
 | ||||
| const unsigned int ChannelAnalyzerSink::m_ssbFftLen = 1024; | ||||
| const unsigned int ChannelAnalyzerSink::m_corrFFTLen = 4*m_ssbFftLen; | ||||
| @ -31,7 +31,7 @@ ChannelAnalyzerSink::ChannelAnalyzerSink() : | ||||
|     m_channelFrequencyOffset(0), | ||||
|     m_sinkSampleRate(48000), | ||||
|     m_costasLoop(0.002, 2), | ||||
|     m_sampleSink(nullptr) | ||||
|     m_scopeVis(nullptr) | ||||
| { | ||||
| 	m_usb = true; | ||||
| 	m_magsq = 0; | ||||
| @ -90,9 +90,12 @@ void ChannelAnalyzerSink::feed(const SampleVector::const_iterator& begin, const | ||||
|         } | ||||
| 	} | ||||
| 
 | ||||
| 	if (m_sampleSink) { | ||||
| 		m_sampleSink->feed(m_sampleBuffer.begin(), m_sampleBuffer.end(), m_settings.m_ssb); // m_ssb = positive only
 | ||||
| 	} | ||||
|     if (m_scopeVis) | ||||
|     { | ||||
|         std::vector<SampleVector::const_iterator> vbegin; | ||||
|         vbegin.push_back(m_sampleBuffer.begin()); | ||||
|         m_scopeVis->feed(vbegin, m_sampleBuffer.end() - m_sampleBuffer.begin()); | ||||
|     } | ||||
| 
 | ||||
| 	m_sampleBuffer.clear(); | ||||
| } | ||||
|  | ||||
| @ -33,7 +33,7 @@ | ||||
| 
 | ||||
| #include "chanalyzersettings.h" | ||||
| 
 | ||||
| class BasebandSampleSink; | ||||
| class ScopeVis; | ||||
| 
 | ||||
| class ChannelAnalyzerSink : public ChannelSampleSink { | ||||
| public: | ||||
| @ -51,7 +51,7 @@ public: | ||||
|     Real getPllFrequency() const; | ||||
|     Real getPllDeltaPhase() const; | ||||
|     Real getPllPhase() const; | ||||
|     void setSampleSink(BasebandSampleSink* sampleSink) { m_sampleSink = sampleSink; } | ||||
|     void setScopeVis(ScopeVis* scopeVis) { m_scopeVis = scopeVis; } | ||||
| 
 | ||||
|     static const unsigned int m_corrFFTLen; | ||||
|     static const unsigned int m_ssbFftLen; | ||||
| @ -82,7 +82,7 @@ private: | ||||
| 	SampleVector m_sampleBuffer; | ||||
| 	MovingAverageUtil<double, double, 480> m_channelPowerAvg; | ||||
| 
 | ||||
|     BasebandSampleSink* m_sampleSink; | ||||
|     ScopeVis* m_scopeVis; | ||||
| 
 | ||||
| 	void setFilters(int sampleRate, float bandwidth, float lowCutoff); | ||||
| 	void processOneSample(Complex& c, fftfilt::cmplx *sideband); | ||||
|  | ||||
| @ -54,6 +54,7 @@ DemodAnalyzer::DemodAnalyzer(WebAPIAdapterInterface *webAPIAdapterInterface) : | ||||
|     qDebug("DemodAnalyzer::DemodAnalyzer: webAPIAdapterInterface: %p", webAPIAdapterInterface); | ||||
|     setObjectName(m_featureId); | ||||
|     m_worker = new DemodAnalyzerWorker(); | ||||
|     m_worker->setScopeVis(&m_scopeVis); | ||||
|     m_state = StIdle; | ||||
|     m_errorMessage = "DemodAnalyzer error"; | ||||
|     m_networkManager = new QNetworkAccessManager(); | ||||
| @ -108,11 +109,6 @@ void DemodAnalyzer::stop() | ||||
| 	m_thread.wait(); | ||||
| } | ||||
| 
 | ||||
| void DemodAnalyzer::setSampleSink(BasebandSampleSink *sink) | ||||
| { | ||||
|     m_worker->setSampleSink(sink); | ||||
| } | ||||
| 
 | ||||
| double DemodAnalyzer::getMagSqAvg() const | ||||
| { | ||||
|     return m_worker->getMagSqAvg(); | ||||
|  | ||||
| @ -158,7 +158,6 @@ public: | ||||
|     virtual void destroy() { delete this; } | ||||
|     SpectrumVis *getSpectrumVis() { return &m_spectrumVis; } | ||||
|     ScopeVis *getScopeVis() { return &m_scopeVis; } | ||||
|     void setSampleSink(BasebandSampleSink *sink); | ||||
|     double getMagSqAvg() const; | ||||
|     virtual bool handleMessage(const Message& cmd); | ||||
| 
 | ||||
|  | ||||
| @ -18,7 +18,6 @@ | ||||
| #include <QMessageBox> | ||||
| 
 | ||||
| #include "feature/featureuiset.h" | ||||
| #include "dsp/spectrumscopecombovis.h" | ||||
| #include "dsp/spectrumvis.h" | ||||
| #include "gui/basicfeaturesettingsdialog.h" | ||||
| #include "gui/glspectrum.h" | ||||
| @ -146,8 +145,7 @@ DemodAnalyzerGUI::DemodAnalyzerGUI(PluginAPI* pluginAPI, FeatureUISet *featureUI | ||||
|     m_scopeVis->setGLScope(ui->glScope); | ||||
|     m_spectrumVis = m_demodAnalyzer->getSpectrumVis(); | ||||
| 	m_spectrumVis->setGLSpectrum(ui->glSpectrum); | ||||
| 	m_spectrumScopeComboVis = new SpectrumScopeComboVis(m_spectrumVis, m_scopeVis); | ||||
|     m_demodAnalyzer->setSampleSink(m_spectrumScopeComboVis); | ||||
|     m_scopeVis->setSpectrumVis(m_spectrumVis); | ||||
| 
 | ||||
| 	m_featureUISet->addRollupWidget(this); | ||||
| 
 | ||||
| @ -180,7 +178,6 @@ DemodAnalyzerGUI::DemodAnalyzerGUI(PluginAPI* pluginAPI, FeatureUISet *featureUI | ||||
| DemodAnalyzerGUI::~DemodAnalyzerGUI() | ||||
| { | ||||
| 	delete ui; | ||||
| 	delete m_spectrumScopeComboVis; | ||||
| } | ||||
| 
 | ||||
| void DemodAnalyzerGUI::blockApplySettings(bool block) | ||||
|  | ||||
| @ -30,7 +30,6 @@ class PluginAPI; | ||||
| class FeatureUISet; | ||||
| class DemodAnalyzer; | ||||
| class Feature; | ||||
| class SpectrumScopeComboVis; | ||||
| class SpectrumVis; | ||||
| class ScopeVis; | ||||
| 
 | ||||
| @ -58,7 +57,6 @@ private: | ||||
| 	bool m_doApplySettings; | ||||
| 
 | ||||
| 	DemodAnalyzer* m_demodAnalyzer; | ||||
| 	SpectrumScopeComboVis* m_spectrumScopeComboVis; | ||||
| 	SpectrumVis* m_spectrumVis; | ||||
| 	ScopeVis* m_scopeVis; | ||||
| 	MessageQueue m_inputMessageQueue; | ||||
|  | ||||
| @ -17,7 +17,7 @@ | ||||
| 
 | ||||
| #include <QDebug> | ||||
| 
 | ||||
| #include "dsp/basebandsamplesink.h" | ||||
| #include "dsp/scopevis.h" | ||||
| #include "dsp/datafifo.h" | ||||
| 
 | ||||
| #include "demodanalyzerworker.h" | ||||
| @ -95,8 +95,11 @@ void DemodAnalyzerWorker::feedPart(const QByteArray::const_iterator& begin, cons | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
| 	if (m_sampleSink) { | ||||
| 		m_sampleSink->feed(m_sampleBuffer.begin(), m_sampleBuffer.begin() + countSamples/(1<<m_settings.m_log2Decim), false); | ||||
| 	if (m_scopeVis) | ||||
|     { | ||||
|         std::vector<SampleVector::const_iterator> vbegin; | ||||
|         vbegin.push_back(m_sampleBuffer.begin()); | ||||
|         m_scopeVis->feed(vbegin, countSamples/(1<<m_settings.m_log2Decim)); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -33,6 +33,7 @@ | ||||
| #include "demodanalyzersettings.h" | ||||
| 
 | ||||
| class BasebandSampleSink; | ||||
| class ScopeVis; | ||||
| class ChannelAPI; | ||||
| class Feature; | ||||
| class DataFifo; | ||||
| @ -99,7 +100,7 @@ public: | ||||
| 
 | ||||
| 	double getMagSq() const { return m_magsq; } | ||||
| 	double getMagSqAvg() const { return (double) m_channelPowerAvg; } | ||||
|     void setSampleSink(BasebandSampleSink* sampleSink) { m_sampleSink = sampleSink; } | ||||
|     void setScopeVis(ScopeVis* scopeVis) { m_scopeVis = scopeVis; } | ||||
| 
 | ||||
|     static const unsigned int m_corrFFTLen; | ||||
|     static const unsigned int m_ssbFftLen; | ||||
| @ -117,7 +118,7 @@ private: | ||||
|     Decimators<qint32, qint16, SDR_RX_SAMP_SZ, 16, true> m_decimators; | ||||
|     int m_sampleBufferSize; | ||||
| 	MovingAverageUtil<double, double, 480> m_channelPowerAvg; | ||||
|     BasebandSampleSink* m_sampleSink; | ||||
|     ScopeVis* m_scopeVis; | ||||
|     bool m_running; | ||||
|     QMutex m_mutex; | ||||
| 
 | ||||
|  | ||||
| @ -21,6 +21,7 @@ | ||||
| #include <QMutexLocker> | ||||
| 
 | ||||
| #include "scopevis.h" | ||||
| #include "spectrumvis.h" | ||||
| #include "dsp/dspcommands.h" | ||||
| #include "dsp/glscopeinterface.h" | ||||
| 
 | ||||
| @ -41,6 +42,7 @@ MESSAGE_CLASS_DEFINITION(ScopeVis::MsgScopeVisNGMemoryTrace, Message) | ||||
| 
 | ||||
| ScopeVis::ScopeVis() : | ||||
|     m_glScope(nullptr), | ||||
|     m_spectrumVis(nullptr), | ||||
|     m_messageQueueToGUI(nullptr), | ||||
|     m_preTriggerDelay(0), | ||||
|     m_livePreTriggerDelay(0), | ||||
| @ -524,6 +526,10 @@ int ScopeVis::processTraces(const SampleVector::const_iterator& cbegin, int ilen | ||||
|     uint32_t length = m_traceSize / m_timeBase; | ||||
|     int remainder = ilength; | ||||
| 
 | ||||
|     if (m_spectrumVis) { | ||||
|         m_spectrumVis->feed(cbegin, cbegin + ilength, false); | ||||
|     } | ||||
| 
 | ||||
|     while ((remainder > 0) && (m_nbSamples > 0)) | ||||
|     { | ||||
|         std::vector<TraceControl*>::iterator itCtl = m_traces.m_tracesControl.begin(); | ||||
|  | ||||
| @ -40,6 +40,7 @@ | ||||
| 
 | ||||
| 
 | ||||
| class GLScopeInterface; | ||||
| class SpectrumVis; | ||||
| 
 | ||||
| class SDRBASE_API ScopeVis : public QObject { | ||||
|     Q_OBJECT | ||||
| @ -48,6 +49,7 @@ public: | ||||
|     virtual ~ScopeVis(); | ||||
| 
 | ||||
|     void setGLScope(GLScopeInterface* glScope); | ||||
|     void setSpectrumVis(SpectrumVis *spectrumVis) { m_spectrumVis = spectrumVis; } | ||||
|     void setMessageQueueToGUI(MessageQueue* messageQueue) { m_messageQueueToGUI = messageQueue; } | ||||
|     MessageQueue *getInputMessageQueue() { return &m_inputMessageQueue; } //!< Get the queue for asynchronous inbound communication
 | ||||
| 
 | ||||
| @ -1040,6 +1042,7 @@ private: | ||||
|     }; | ||||
| 
 | ||||
|     GLScopeInterface* m_glScope; | ||||
|     SpectrumVis *m_spectrumVis; | ||||
|     MessageQueue m_inputMessageQueue; | ||||
|     MessageQueue *m_messageQueueToGUI; | ||||
|     uint32_t m_preTriggerDelay;                    //!< Pre-trigger delay in number of samples
 | ||||
|  | ||||
| @ -69,7 +69,6 @@ set(sdrgui_SOURCES | ||||
|     gui/wrappingdatetimeedit.cpp | ||||
| 
 | ||||
|     dsp/scopevisxy.cpp | ||||
|     dsp/spectrumscopecombovis.cpp | ||||
| 
 | ||||
|     device/deviceuiset.cpp | ||||
| 
 | ||||
| @ -157,7 +156,6 @@ set(sdrgui_HEADERS | ||||
|     gui/wrappingdatetimeedit.h | ||||
| 
 | ||||
|     dsp/scopevisxy.h | ||||
|     dsp/spectrumscopecombovis.h | ||||
| 
 | ||||
|     device/deviceuiset.h | ||||
| 
 | ||||
|  | ||||
| @ -1,52 +0,0 @@ | ||||
| #include "dsp/spectrumscopecombovis.h" | ||||
| #include "dsp/dspcommands.h" | ||||
| #include "dsp/scopevis.h" | ||||
| #include "util/messagequeue.h" | ||||
| 
 | ||||
| SpectrumScopeComboVis::SpectrumScopeComboVis(SpectrumVis* spectrumVis, ScopeVis* scopeVis) : | ||||
| 	m_spectrumVis(spectrumVis), | ||||
| 	m_scopeVis(scopeVis) | ||||
| { | ||||
| 	setObjectName("SpectrumScopeComboVis"); | ||||
| } | ||||
| 
 | ||||
| SpectrumScopeComboVis::~SpectrumScopeComboVis() | ||||
| { | ||||
| } | ||||
| 
 | ||||
| void SpectrumScopeComboVis::feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool positiveOnly) | ||||
| { | ||||
|     (void) positiveOnly; | ||||
| 	std::vector<SampleVector::const_iterator> vbegin; | ||||
| 	vbegin.push_back(begin); | ||||
| 	m_scopeVis->feed(vbegin, end - begin); | ||||
| 	//SampleVector::const_iterator triggerPoint = m_scopeVis->getTriggerPoint();
 | ||||
| 	//m_spectrumVis->feedTriggered(triggerPoint, end, positiveOnly);
 | ||||
|     int triggerPointLocation = m_scopeVis->getTriggerLocation(); | ||||
| 
 | ||||
|     if (m_scopeVis->getFreeRun()) { | ||||
|         m_spectrumVis->feed(begin, end, positiveOnly); | ||||
|     } else if ((triggerPointLocation >= 0) && (triggerPointLocation <= end - begin)) { | ||||
|         m_spectrumVis->feedTriggered(end - triggerPointLocation, end, positiveOnly); | ||||
|     } else { | ||||
|         m_spectrumVis->feedTriggered(begin, end, positiveOnly); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| void SpectrumScopeComboVis::start() | ||||
| { | ||||
| 	m_spectrumVis->start(); | ||||
| } | ||||
| 
 | ||||
| void SpectrumScopeComboVis::stop() | ||||
| { | ||||
| 	m_spectrumVis->stop(); | ||||
| } | ||||
| 
 | ||||
| bool SpectrumScopeComboVis::handleMessage(const Message& message) | ||||
| { | ||||
| 	bool spectDone = m_spectrumVis->handleMessage(message); | ||||
| 	bool scopeDone = m_scopeVis->handleMessage(message); | ||||
| 
 | ||||
| 	return (spectDone || scopeDone); | ||||
| } | ||||
| @ -1,28 +0,0 @@ | ||||
| #ifndef INCLUDE_SPECTRUMSCOPENGCOMBOVIS_H | ||||
| #define INCLUDE_SPECTRUMSCOPENGCOMBOVIS_H | ||||
| 
 | ||||
| #include <dsp/basebandsamplesink.h> | ||||
| #include "dsp/spectrumvis.h" | ||||
| #include "export.h" | ||||
| 
 | ||||
| class Message; | ||||
| class ScopeVis; | ||||
| 
 | ||||
| class SDRGUI_API SpectrumScopeComboVis : public BasebandSampleSink { | ||||
| public: | ||||
| 
 | ||||
|     SpectrumScopeComboVis(SpectrumVis* spectrumVis, ScopeVis* scopeVis); | ||||
| 	virtual ~SpectrumScopeComboVis(); | ||||
| 
 | ||||
| 	using BasebandSampleSink::feed; | ||||
| 	virtual void feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool positiveOnly); | ||||
| 	virtual void start(); | ||||
| 	virtual void stop(); | ||||
| 	virtual bool handleMessage(const Message& message); | ||||
| 
 | ||||
| private: | ||||
| 	SpectrumVis* m_spectrumVis; | ||||
| 	ScopeVis* m_scopeVis; | ||||
| }; | ||||
| 
 | ||||
| #endif // INCLUDE_SPECTRUMSCOPENGCOMBOVIS_H
 | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user