AJA NTV2 SDK  17.0.1.1246
NTV2 SDK 17.0.1.1246
ajapreviewwidget.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MIT */
2 #ifndef AJAPREVIEW_WIDGET_H
3 #define AJAPREVIEW_WIDGET_H
4 
5 #include <QBasicTimer>
6 #include <QtCore>
7 #if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
8  #include <QtWidgets>
9 #else
10  #include <QtGui>
11 #endif
12 #include <QThread>
13 #include <QList>
14 #include <QRectF>
15 #include "ajatypes.h"
16 #if defined (INCLUDE_AJACC)
18 #endif // defined (INCLUDE_AJACC)
19 
20 class AJAPreviewWidget;
21 
22 #define AJAPREVIEW_WIDGET_X (960)
23 #define AJAPREVIEW_WIDGET_Y (540)
24 
25 typedef struct
26 {
27  bool display;
28  QRectF roiRect;
29  QColor roiRectColor;
30 
31 } ROIStruct;
32 
33 typedef QList<ROIStruct> ROIRectList;
34 
35 
36 class AJAPreviewWidget : public QFrame
37 {
38  Q_OBJECT
39 
40  public:
41  AJAPreviewWidget (QWidget * parent = AJA_NULL);
42 
43  signals:
44  void droppedFile (QString fileName);
45 
46  public slots:
47  void updateFrame (const QImage &image, bool clear);
48  void updateFrameWithStatus (const QImage &image, const QString &statusString, bool clear);
49  void updateFrameWithROI (const QImage &image, ROIRectList roiList, bool clear);
50  void updateROI (ROIRectList roiList);
51  void updateStatusString (const QString statusString);
52  #if defined (INCLUDE_AJACC)
53  void updateCaptionScreen (const ushort * inScreen);
54  #endif // defined (INCLUDE_AJACC)
55 
56  private slots:
57  void renderFrame ();
58 
59  protected:
60  void paintEvent (QPaintEvent * event);
61 
62  void dragEnterEvent (QDragEnterEvent *event);
63  void dropEvent (QDropEvent *event);
64 
65  private:
66  QImage _image;
67  bool _clear;
68  bool _render;
69  QPixmap _pixmap;
70  QString _statusString;
71  int _step;
72  ROIRectList _roiList;
73  QSize _unscaledImageSize;
74  #if defined (INCLUDE_AJACC)
75  QString _captionStrings [15];
76  #endif // defined (INCLUDE_AJACC)
77 
78 }; // AJAPreviewWidget
79 
80 #endif // AJAPREVIEW_WIDGET_H
ntv2caption608types.h
Declares several data types used with 608/SD captioning.
ROIStruct::roiRectColor
QColor roiRectColor
normalize to width and height 0.0-1.0
Definition: ajapreviewwidget.h:29
ROIRectList
QList< ROIStruct > ROIRectList
Definition: ajapreviewwidget.h:33
AJAPreviewWidget::updateStatusString
void updateStatusString(const QString statusString)
Definition: ajapreviewwidget.cpp:125
AJAPreviewWidget::updateFrame
void updateFrame(const QImage &image, bool clear)
Definition: ajapreviewwidget.cpp:73
ROIStruct::display
bool display
Definition: ajapreviewwidget.h:27
ROIStruct
Definition: ajapreviewwidget.h:25
AJAPreviewWidget::dropEvent
void dropEvent(QDropEvent *event)
Definition: ajapreviewwidget.cpp:164
ajatypes.h
Declares the most fundamental data types used by NTV2. Since Windows NT was the first principal devel...
AJAPreviewWidget::AJAPreviewWidget
AJAPreviewWidget(QWidget *parent=NULL)
Definition: ajapreviewwidget.cpp:7
AJAPreviewWidget::updateROI
void updateROI(ROIRectList roiList)
Definition: ajapreviewwidget.cpp:120
AJAPreviewWidget::updateFrameWithROI
void updateFrameWithROI(const QImage &image, ROIRectList roiList, bool clear)
Definition: ajapreviewwidget.cpp:105
ROIStruct::roiRect
QRectF roiRect
Definition: ajapreviewwidget.h:28
AJA_NULL
#define AJA_NULL
Definition: ajatypes.h:190
AJAPreviewWidget::updateFrameWithStatus
void updateFrameWithStatus(const QImage &image, const QString &statusString, bool clear)
Definition: ajapreviewwidget.cpp:88
AJAPreviewWidget::droppedFile
void droppedFile(QString fileName)
AJAPreviewWidget
Definition: ajapreviewwidget.h:36
AJAPreviewWidget::dragEnterEvent
void dragEnterEvent(QDragEnterEvent *event)
Definition: ajapreviewwidget.cpp:155
AJAPreviewWidget::paintEvent
void paintEvent(QPaintEvent *event)
Definition: ajapreviewwidget.cpp:21