diff --git a/plugins/channelrx/demodatv/atvscreen.cpp b/plugins/channelrx/demodatv/atvscreen.cpp index 359a623ef..7e4b72c58 100644 --- a/plugins/channelrx/demodatv/atvscreen.cpp +++ b/plugins/channelrx/demodatv/atvscreen.cpp @@ -171,6 +171,14 @@ void ATVScreen::tick() } } +void ATVScreen::connectTimer(const QTimer& objTimer) +{ + qDebug() << "ATVScreen::connectTimer"; + disconnect(&m_objTimer, SIGNAL(timeout()), this, SLOT(tick())); + connect(&objTimer, SIGNAL(timeout()), this, SLOT(tick())); + m_objTimer.stop(); +} + void ATVScreen::cleanup() { if (m_blnGLContextInitialized) diff --git a/plugins/channelrx/demodatv/atvscreen.h b/plugins/channelrx/demodatv/atvscreen.h index 26c6a5bcd..7b64a3e36 100644 --- a/plugins/channelrx/demodatv/atvscreen.h +++ b/plugins/channelrx/demodatv/atvscreen.h @@ -28,8 +28,8 @@ #include #include #include "dsp/dsptypes.h" -#include "gui/glshadertvarray.h" #include "gui/glshadertextured.h" +#include "gui/glshadertvarray.h" #include "util/export.h" #include "util/bitfieldindex.h" @@ -50,9 +50,18 @@ public: virtual void resizeATVScreen(int intCols, int intRows); virtual void renderImage(unsigned char * objData); + QRgb* getRowBuffer(int intRow); + void resetImage(); + virtual bool selectRow(int intLine); virtual bool setDataColor(int intCol,int intRed, int intGreen, int intBlue); + void connectTimer(const QTimer& timer); + + //Valeurs par défaut + static const int ATV_COLS=192; + static const int ATV_ROWS=625; + signals: void traceSizeChanged(int); void sampleRateChanged(int); @@ -71,20 +80,13 @@ private: GLShaderTVArray m_objGLShaderArray; - unsigned char *m_chrLastData; - - //Valeurs par défaut - static const int ATV_COLS=192; - static const int ATV_ROWS=625; - void initializeGL(); void resizeGL(int width, int height); void paintGL(); void mousePressEvent(QMouseEvent*); - QRgb* getRowBuffer(int intRow); - void resetImage(); + unsigned char *m_chrLastData; protected slots: void cleanup(); diff --git a/plugins/channelrx/demoddatv/CMakeLists.txt b/plugins/channelrx/demoddatv/CMakeLists.txt index ca4229347..f12dac3ff 100644 --- a/plugins/channelrx/demoddatv/CMakeLists.txt +++ b/plugins/channelrx/demoddatv/CMakeLists.txt @@ -4,7 +4,6 @@ set(datv_SOURCES datvdemod.cpp datvdemodgui.cpp datvdemodplugin.cpp - datvscreen.cpp datvideostream.cpp datvideorender.cpp ) @@ -13,7 +12,6 @@ set(datv_HEADERS datvdemod.h datvdemodgui.h datvdemodplugin.h - datvscreen.h datvideostream.h datvideorender.h ) diff --git a/plugins/channelrx/demoddatv/datvconstellation.h b/plugins/channelrx/demoddatv/datvconstellation.h index 2289eb010..9cd92ecf3 100644 --- a/plugins/channelrx/demoddatv/datvconstellation.h +++ b/plugins/channelrx/demoddatv/datvconstellation.h @@ -22,7 +22,7 @@ #include #include "leansdr/framework.h" -#include "datvscreen.h" +#include "gui/tvscreen.h" namespace leansdr { @@ -35,11 +35,11 @@ template struct datvconstellation: runnable unsigned long decimation; unsigned long pixels_per_frame; cstln_lut<256> **cstln; // Optional ptr to optional constellation - DATVScreen *m_objDATVScreen; + TVScreen *m_objDATVScreen; pipereader > in; unsigned long phase; - datvconstellation(scheduler *sch, pipebuf > &_in, T _xymin, T _xymax, const char *_name = NULL, DATVScreen * objDATVScreen = NULL) : + datvconstellation(scheduler *sch, pipebuf > &_in, T _xymin, T _xymax, const char *_name = 0, TVScreen *objDATVScreen = 0) : runnable(sch, _name ? _name : _in.name), xymin(_xymin), xymax(_xymax), diff --git a/plugins/channelrx/demoddatv/datvdemod.cpp b/plugins/channelrx/demoddatv/datvdemod.cpp index bf04aa6e6..25d78b408 100644 --- a/plugins/channelrx/demoddatv/datvdemod.cpp +++ b/plugins/channelrx/demoddatv/datvdemod.cpp @@ -39,8 +39,8 @@ DATVDemod::DATVDemod(DeviceSourceAPI *deviceAPI) : ChannelSinkAPI(m_channelIdURI), m_blnNeedConfigUpdate(false), m_deviceAPI(deviceAPI), - m_objRegisteredDATVScreen(NULL), - m_objRegisteredVideoRender(NULL), + m_objRegisteredTVScreen(0), + m_objRegisteredVideoRender(0), m_objVideoStream(NULL), m_objRenderThread(NULL), m_blnRenderingVideo(false), @@ -112,9 +112,9 @@ void DATVDemod::channelSampleRateChanged() } } -bool DATVDemod::SetDATVScreen(DATVScreen *objScreen) +bool DATVDemod::SetTVScreen(TVScreen *objScreen) { - m_objRegisteredDATVScreen = objScreen; + m_objRegisteredTVScreen = objScreen; return true; } @@ -694,11 +694,11 @@ void DATVDemod::InitDATVFramework() //constellation - if (m_objRegisteredDATVScreen) + if (m_objRegisteredTVScreen) { - m_objRegisteredDATVScreen->resizeDATVScreen(256,256); + m_objRegisteredTVScreen->resizeTVScreen(256,256); - r_scope_symbols = new leansdr::datvconstellation(m_objScheduler, *p_sampled, -128,128, NULL, m_objRegisteredDATVScreen); + r_scope_symbols = new leansdr::datvconstellation(m_objScheduler, *p_sampled, -128,128, NULL, m_objRegisteredTVScreen); r_scope_symbols->decimation = 1; r_scope_symbols->cstln = &m_objDemodulator->cstln; } diff --git a/plugins/channelrx/demoddatv/datvdemod.h b/plugins/channelrx/demoddatv/datvdemod.h index 3c60368ef..dc2d36276 100644 --- a/plugins/channelrx/demoddatv/datvdemod.h +++ b/plugins/channelrx/demoddatv/datvdemod.h @@ -209,7 +209,7 @@ public: virtual void stop(); virtual bool handleMessage(const Message& cmd); - bool SetDATVScreen(DATVScreen *objScreen); + bool SetTVScreen(TVScreen *objScreen); DATVideostream * SetVideoRender(DATVideoRender *objScreen); bool PlayVideo(bool blnStartStop); @@ -441,7 +441,7 @@ private: DownChannelizer* m_channelizer; //*************** DATV PARAMETERS *************** - DATVScreen * m_objRegisteredDATVScreen; + TVScreen * m_objRegisteredTVScreen; DATVideoRender * m_objRegisteredVideoRender; DATVideostream * m_objVideoStream; DATVideoRenderThread * m_objRenderThread; diff --git a/plugins/channelrx/demoddatv/datvdemodgui.cpp b/plugins/channelrx/demoddatv/datvdemodgui.cpp index c619e7917..0e124fd1a 100644 --- a/plugins/channelrx/demoddatv/datvdemodgui.cpp +++ b/plugins/channelrx/demoddatv/datvdemodgui.cpp @@ -266,7 +266,7 @@ DATVDemodGUI::DATVDemodGUI(PluginAPI* objPluginAPI, DeviceUISet *deviceUISet, Ba m_objDATVDemod = (DATVDemod*) rxChannel; m_objDATVDemod->setMessageQueueToGUI(getInputMessageQueue()); - m_objDATVDemod->SetDATVScreen(ui->screenTV); + m_objDATVDemod->SetTVScreen(ui->screenTV); connect(m_objDATVDemod->SetVideoRender(ui->screenTV_2),&DATVideostream::onDataPackets,this,&DATVDemodGUI::on_StreamDataAvailable); diff --git a/plugins/channelrx/demoddatv/datvdemodgui.ui b/plugins/channelrx/demoddatv/datvdemodgui.ui index 3393e12e9..fb0284f41 100644 --- a/plugins/channelrx/demoddatv/datvdemodgui.ui +++ b/plugins/channelrx/demoddatv/datvdemodgui.ui @@ -248,7 +248,7 @@ QLayout::SetMinimumSize - + 0 @@ -927,11 +927,6 @@
gui/rollupwidget.h
1 - - DATVScreen - QWidget -
datvscreen.h
-
DATVideoRender QWidget @@ -944,6 +939,12 @@
gui/valuedialz.h
1
+ + TVScreen + QWidget +
gui/tvscreen.h
+ 1 +
diff --git a/plugins/channelrx/demoddatv/datvideorender.cpp b/plugins/channelrx/demoddatv/datvideorender.cpp index c1e9b9525..32aa01f9e 100644 --- a/plugins/channelrx/demoddatv/datvideorender.cpp +++ b/plugins/channelrx/demoddatv/datvideorender.cpp @@ -18,7 +18,7 @@ #include "datvideorender.h" DATVideoRender::DATVideoRender(QWidget * parent): - DATVScreen(parent) + TVScreen(true, parent) { installEventFilter(this); m_blnIsFullScreen=false; @@ -488,7 +488,7 @@ bool DATVideoRender::RenderStream() //Rendering device setup - resizeDATVScreen(m_objFrame->width,m_objFrame->height); + resizeTVScreen(m_objFrame->width,m_objFrame->height); update(); resetImage(); diff --git a/plugins/channelrx/demoddatv/datvideorender.h b/plugins/channelrx/demoddatv/datvideorender.h index b3341b9a2..5603b6497 100644 --- a/plugins/channelrx/demoddatv/datvideorender.h +++ b/plugins/channelrx/demoddatv/datvideorender.h @@ -23,7 +23,7 @@ #include #include -#include "datvscreen.h" +#include "gui/tvscreen.h" #include "datvideostream.h" extern "C" @@ -85,7 +85,7 @@ struct DataTSMetaData2 } }; -class DATVideoRender : public DATVScreen +class DATVideoRender : public TVScreen { Q_OBJECT diff --git a/plugins/channelrx/demoddatv/demoddatv.pro b/plugins/channelrx/demoddatv/demoddatv.pro index b38c59fcd..c02e89ad5 100644 --- a/plugins/channelrx/demoddatv/demoddatv.pro +++ b/plugins/channelrx/demoddatv/demoddatv.pro @@ -31,14 +31,12 @@ CONFIG(macx):INCLUDEPATH += "../../../../../boost_1_64_0" SOURCES += datvdemod.cpp\ datvdemodgui.cpp\ datvdemodplugin.cpp\ - datvscreen.cpp \ datvideostream.cpp \ datvideorender.cpp HEADERS += datvdemod.h\ datvdemodgui.h\ datvdemodplugin.h\ - datvscreen.h \ leansdr/convolutional.h \ leansdr/dsp.h \ leansdr/dvb.h \ diff --git a/sdrgui/CMakeLists.txt b/sdrgui/CMakeLists.txt index cd9ead1fd..a893a5e8a 100644 --- a/sdrgui/CMakeLists.txt +++ b/sdrgui/CMakeLists.txt @@ -41,6 +41,7 @@ set(sdrgui_SOURCES gui/tickedslider.cpp gui/transverterbutton.cpp gui/transverterdialog.cpp + gui/tvscreen.cpp gui/valuedial.cpp gui/valuedialz.cpp @@ -96,7 +97,8 @@ set(sdrgui_HEADERS gui/scaleengine.h gui/tickedslider.h gui/transverterbutton.h - gui/transverterdialog.h + gui/transverterdialog.h + gui/tvscreen.h gui/valuedial.h gui/valuedialz.h diff --git a/plugins/channelrx/demoddatv/datvscreen.cpp b/sdrgui/gui/tvscreen.cpp similarity index 85% rename from plugins/channelrx/demoddatv/datvscreen.cpp rename to sdrgui/gui/tvscreen.cpp index d7965f57c..c3c816e43 100644 --- a/plugins/channelrx/demoddatv/datvscreen.cpp +++ b/sdrgui/gui/tvscreen.cpp @@ -22,13 +22,13 @@ #include #include #include -#include "datvscreen.h" +#include "tvscreen.h" #include #include -DATVScreen::DATVScreen(QWidget* parent) : - QGLWidget(parent), m_objMutex(QMutex::NonRecursive), m_objGLShaderArray(true) +TVScreen::TVScreen(bool blnColor, QWidget* parent) : + QGLWidget(parent), m_objMutex(QMutex::NonRecursive), m_objGLShaderArray(blnColor) { setAttribute(Qt::WA_OpaquePaintEvent); connect(&m_objTimer, SIGNAL(timeout()), this, SLOT(tick())); @@ -40,17 +40,17 @@ DATVScreen::DATVScreen(QWidget* parent) : m_blnGLContextInitialized = false; //Par défaut - m_intAskedCols = DATV_COLS; - m_intAskedRows = DATV_ROWS; + m_intAskedCols = TV_COLS; + m_intAskedRows = TV_ROWS; } -DATVScreen::~DATVScreen() +TVScreen::~TVScreen() { cleanup(); } -QRgb* DATVScreen::getRowBuffer(int intRow) +QRgb* TVScreen::getRowBuffer(int intRow) { if (!m_blnGLContextInitialized) { @@ -60,25 +60,25 @@ QRgb* DATVScreen::getRowBuffer(int intRow) return m_objGLShaderArray.GetRowBuffer(intRow); } -void DATVScreen::renderImage(unsigned char * objData) +void TVScreen::renderImage(unsigned char * objData) { m_chrLastData = objData; m_blnDataChanged = true; //update(); } -void DATVScreen::resetImage() +void TVScreen::resetImage() { m_objGLShaderArray.ResetPixels(); } -void DATVScreen::resizeDATVScreen(int intCols, int intRows) +void TVScreen::resizeTVScreen(int intCols, int intRows) { m_intAskedCols = intCols; m_intAskedRows = intRows; } -void DATVScreen::initializeGL() +void TVScreen::initializeGL() { m_objMutex.lock(); @@ -128,21 +128,21 @@ void DATVScreen::initializeGL() } connect(objGlCurrentContext, &QOpenGLContext::aboutToBeDestroyed, this, - &DATVScreen::cleanup); // TODO: when migrating to QOpenGLWidget + &TVScreen::cleanup); // TODO: when migrating to QOpenGLWidget m_blnGLContextInitialized = true; m_objMutex.unlock(); } -void DATVScreen::resizeGL(int intWidth, int intHeight) +void TVScreen::resizeGL(int intWidth, int intHeight) { QOpenGLFunctions *ptrF = QOpenGLContext::currentContext()->functions(); ptrF->glViewport(0, 0, intWidth, intHeight); m_blnConfigChanged = true; } -void DATVScreen::paintGL() +void TVScreen::paintGL() { if (!m_objMutex.tryLock(2)) return; @@ -161,18 +161,18 @@ void DATVScreen::paintGL() m_objMutex.unlock(); } -void DATVScreen::mousePressEvent(QMouseEvent* event __attribute__((unused))) +void TVScreen::mousePressEvent(QMouseEvent* event __attribute__((unused))) { } -void DATVScreen::tick() +void TVScreen::tick() { if (m_blnDataChanged) { update(); } } -void DATVScreen::connectTimer(const QTimer& objTimer) +void TVScreen::connectTimer(const QTimer& objTimer) { qDebug() << "DATVScreen::connectTimer"; disconnect(&m_objTimer, SIGNAL(timeout()), this, SLOT(tick())); @@ -180,7 +180,7 @@ void DATVScreen::connectTimer(const QTimer& objTimer) m_objTimer.stop(); } -void DATVScreen::cleanup() +void TVScreen::cleanup() { if (m_blnGLContextInitialized) { @@ -188,7 +188,7 @@ void DATVScreen::cleanup() } } -bool DATVScreen::selectRow(int intLine) +bool TVScreen::selectRow(int intLine) { if (m_blnGLContextInitialized) { @@ -200,7 +200,7 @@ bool DATVScreen::selectRow(int intLine) } } -bool DATVScreen::setDataColor(int intCol, int intRed, int intGreen, int intBlue) +bool TVScreen::setDataColor(int intCol, int intRed, int intGreen, int intBlue) { if (m_blnGLContextInitialized) { diff --git a/plugins/channelrx/demoddatv/datvscreen.h b/sdrgui/gui/tvscreen.h similarity index 86% rename from plugins/channelrx/demoddatv/datvscreen.h rename to sdrgui/gui/tvscreen.h index 545703394..93cfdd156 100644 --- a/plugins/channelrx/demoddatv/datvscreen.h +++ b/sdrgui/gui/tvscreen.h @@ -18,8 +18,8 @@ // along with this program. If not, see . // /////////////////////////////////////////////////////////////////////////////////// -#ifndef INCLUDE_DATVSCREEN_H -#define INCLUDE_DATVSCREEN_H +#ifndef INCLUDE_TVSCREEN_H +#define INCLUDE_TVSCREEN_H #include #include @@ -28,23 +28,23 @@ #include #include #include "dsp/dsptypes.h" -#include "gui/glshadertextured.h" -#include "gui/glshadertvarray.h" +#include "glshadertextured.h" +#include "glshadertvarray.h" #include "util/export.h" #include "util/bitfieldindex.h" class QPainter; -class DATVScreen: public QGLWidget +class TVScreen: public QGLWidget { Q_OBJECT public: - DATVScreen(QWidget* parent = NULL); - ~DATVScreen(); + TVScreen(bool blnColor, QWidget* parent = 0); + ~TVScreen(); - void resizeDATVScreen(int intCols, int intRows); + void resizeTVScreen(int intCols, int intRows); void renderImage(unsigned char * objData); QRgb* getRowBuffer(int intRow); void resetImage(); @@ -55,8 +55,8 @@ public: void connectTimer(const QTimer& timer); //Valeurs par défaut - static const int DATV_COLS=256; - static const int DATV_ROWS=256; + static const int TV_COLS=256; + static const int TV_ROWS=256; signals: void traceSizeChanged(int); @@ -82,11 +82,11 @@ private: void mousePressEvent(QMouseEvent*); - unsigned char *m_chrLastData; + unsigned char *m_chrLastData; protected slots: void cleanup(); void tick(); }; -#endif // INCLUDE_DATVSCREEN_H +#endif // INCLUDE_TVSCREEN_H