CCIMXDesktop
 
Loading...
Searching...
No Matches
FrameProvider.h
1#ifndef FRAMEPROVIDER_H
2#define FRAMEPROVIDER_H
3
4#include <QObject>
5#include <QPixmap>
6class QMutex;
7
12class FrameProvider : public QObject {
13 Q_OBJECT
14public:
20 explicit FrameProvider(const QString& valid_base_path, QObject* parent);
21
25 virtual ~FrameProvider();
26
31 void append_src(const QString& valid_base_path);
32
37 void append_srcs(const QStringList& valid_base_paths);
38
43 void lock_src(const QString& valid_base_path);
44
48 void terminate_flow();
49
53 void resume_flow();
54
59
64 QPixmap& src_pixmap();
65
70 virtual QRect& src_bounding_rect() = 0;
71
72private:
73 bool locked { false };
74 QStringList sources_path;
75 QMutex* src_query_locker;
76 QPixmap static_load;
77 QTimer* update_timer;
78 short flow_index { 0 };
79
83 void flush_src_once();
84};
85
86#endif // FRAMEPROVIDER_H
Provides and manages frame sources for image processing.
Definition FrameProvider.h:12
void terminate_flow()
Stops frame updates.
Definition FrameProvider.cpp:39
void resume_flow()
Resumes frame updates.
Definition FrameProvider.cpp:44
void append_src(const QString &valid_base_path)
Adds a single source path.
Definition FrameProvider.cpp:23
void append_srcs(const QStringList &valid_base_paths)
Adds multiple source paths.
Definition FrameProvider.cpp:28
QPixmap & src_pixmap()
Gets current source pixmap.
Definition FrameProvider.cpp:55
virtual ~FrameProvider()
Destructor.
Definition FrameProvider.cpp:19
void manual_shuffle_once()
Manually triggers one frame shuffle.
Definition FrameProvider.cpp:49
virtual QRect & src_bounding_rect()=0
Pure virtual function to get source bounding rectangle.
void lock_src(const QString &valid_base_path)
Locks to a specific source path.
Definition FrameProvider.cpp:33