FAST  3.2.0
Framework for Heterogeneous Medical Image Computing and Visualization
CameraStreamer.hpp
Go to the documentation of this file.
1 #pragma once
2 
4 #include <QtMultimedia/QCamera>
5 #include <QtMultimedia/QCameraInfo>
6 
7 class QThread;
8 
9 namespace fast {
10 
11 class CameraWorker;
12 
13 class FAST_EXPORT CameraStreamer : public Streamer {
15  public:
16  void setFinished(bool finished);
17  void addNewImageFrame(const uchar* data, int width, int height);
18  bool getGrayscale() const;
19  void setGrayscale(bool grayscale);
20  void loadAttributes() override;
21  void setCamera(uchar index);
22  protected:
24  void execute() override;
25  void generateStream() override {};
26 
27 
28  bool mGrayscale = false;
29  bool m_finished = false;
30  int m_framesAdded = 0;
31  std::chrono::high_resolution_clock::time_point m_startTime;
32  QThread* thread;
34  uint m_cameraIndex = 0;
35 };
36 
37 
38 class CameraWorker : public QObject {
39  Q_OBJECT
40  public:
41  CameraWorker(CameraStreamer* streamer, const QCameraInfo camera);
42  ~CameraWorker();
43  public Q_SLOTS:
44  void run();
45  Q_SIGNALS:
46  void finished();
47  void error(QString err);
48  private:
49  QCameraInfo m_cameraInfo;
50  std::unique_ptr<QCamera> m_camera;
51  CameraStreamer* mStreamer;
52 };
53 
54 
55 }
fast::Streamer
Definition: Streamer.hpp:19
fast::CameraStreamer::m_startTime
std::chrono::high_resolution_clock::time_point m_startTime
Definition: CameraStreamer.hpp:31
Streamer.hpp
fast
Definition: AffineTransformation.hpp:7
fast::CameraStreamer::thread
QThread * thread
Definition: CameraStreamer.hpp:32
FAST_OBJECT
#define FAST_OBJECT(className)
Definition: Object.hpp:9
fast::CameraWorker::CameraWorker
CameraWorker(CameraStreamer *streamer, const QCameraInfo camera)
fast::CameraStreamer::generateStream
void generateStream() override
Definition: CameraStreamer.hpp:25
fast::CameraWorker
Definition: CameraStreamer.hpp:38
fast::CameraWorker::finished
void finished()
fast::CameraWorker::~CameraWorker
~CameraWorker()
uint
unsigned int uint
Definition: DataTypes.hpp:16
uchar
unsigned char uchar
Definition: DataTypes.hpp:14
fast::CameraStreamer::worker
CameraWorker * worker
Definition: CameraStreamer.hpp:33
fast::CameraStreamer
Definition: CameraStreamer.hpp:13
fast::CameraWorker::error
void error(QString err)
fast::CameraWorker::run
void run()