mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-11-25 17:28:50 -05:00
Unify TV screen (3)
This commit is contained in:
parent
def91c4019
commit
707ce197cd
@ -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)
|
||||
|
@ -28,8 +28,8 @@
|
||||
#include <QFont>
|
||||
#include <QMatrix4x4>
|
||||
#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();
|
||||
|
@ -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
|
||||
)
|
||||
|
@ -22,7 +22,7 @@
|
||||
#include <sys/time.h>
|
||||
|
||||
#include "leansdr/framework.h"
|
||||
#include "datvscreen.h"
|
||||
#include "gui/tvscreen.h"
|
||||
|
||||
namespace leansdr
|
||||
{
|
||||
@ -35,11 +35,11 @@ template<typename T> 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<complex<T> > in;
|
||||
unsigned long phase;
|
||||
|
||||
datvconstellation(scheduler *sch, pipebuf<complex<T> > &_in, T _xymin, T _xymax, const char *_name = NULL, DATVScreen * objDATVScreen = NULL) :
|
||||
datvconstellation(scheduler *sch, pipebuf<complex<T> > &_in, T _xymin, T _xymax, const char *_name = 0, TVScreen *objDATVScreen = 0) :
|
||||
runnable(sch, _name ? _name : _in.name),
|
||||
xymin(_xymin),
|
||||
xymax(_xymax),
|
||||
|
@ -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<leansdr::f32>(m_objScheduler, *p_sampled, -128,128, NULL, m_objRegisteredDATVScreen);
|
||||
r_scope_symbols = new leansdr::datvconstellation<leansdr::f32>(m_objScheduler, *p_sampled, -128,128, NULL, m_objRegisteredTVScreen);
|
||||
r_scope_symbols->decimation = 1;
|
||||
r_scope_symbols->cstln = &m_objDemodulator->cstln;
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
||||
|
@ -248,7 +248,7 @@
|
||||
<enum>QLayout::SetMinimumSize</enum>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="DATVScreen" name="screenTV" native="true">
|
||||
<widget class="TVScreen" name="screenTV" native="true">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
@ -927,11 +927,6 @@
|
||||
<header>gui/rollupwidget.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>DATVScreen</class>
|
||||
<extends>QWidget</extends>
|
||||
<header>datvscreen.h</header>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>DATVideoRender</class>
|
||||
<extends>QWidget</extends>
|
||||
@ -944,6 +939,12 @@
|
||||
<header>gui/valuedialz.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>TVScreen</class>
|
||||
<extends>QWidget</extends>
|
||||
<header>gui/tvscreen.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources/>
|
||||
<connections/>
|
||||
|
@ -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();
|
||||
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include <QIODevice>
|
||||
#include <QThread>
|
||||
|
||||
#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
|
||||
|
||||
|
@ -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 \
|
||||
|
@ -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
|
||||
|
||||
|
@ -22,13 +22,13 @@
|
||||
#include <QOpenGLContext>
|
||||
#include <QOpenGLFunctions>
|
||||
#include <QSurface>
|
||||
#include "datvscreen.h"
|
||||
#include "tvscreen.h"
|
||||
|
||||
#include <algorithm>
|
||||
#include <QDebug>
|
||||
|
||||
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)
|
||||
{
|
@ -18,8 +18,8 @@
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>. //
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef INCLUDE_DATVSCREEN_H
|
||||
#define INCLUDE_DATVSCREEN_H
|
||||
#ifndef INCLUDE_TVSCREEN_H
|
||||
#define INCLUDE_TVSCREEN_H
|
||||
|
||||
#include <QGLWidget>
|
||||
#include <QPen>
|
||||
@ -28,23 +28,23 @@
|
||||
#include <QFont>
|
||||
#include <QMatrix4x4>
|
||||
#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
|
Loading…
Reference in New Issue
Block a user