File display.h
Go to the documentation of this file
/*******************************************************
* Author: Intelligent Medical Systems
* License: see LICENSE.md file
*******************************************************/
#ifndef DISPLAY_H
#define DISPLAY_H
#include <QColor>
#include <QImage>
#include <QObject>
#include <QString>
#include <boost/thread.hpp>
#include <xiApi.h>
class Displayer : public QObject
{
Q_OBJECT
public:
explicit Displayer(QObject *parent = nullptr);
~Displayer() override;
QString m_cameraType;
virtual void SetCameraProperties(QString cameraModel) = 0;
void StopDisplayer();
void StartDisplayer();
virtual void UpdateLut(int minValue, int maxValue, const QColor &darkColor, const QColor &saturatedColor);
virtual void UpdateBGRChannels(const std::vector<int> &bgrChannels);
signals:
void ImageReadyToUpdateRGB(QImage);
void ImageReadyToUpdateRaw(QImage);
void SaturationPercentageReady(double undersaturation, double oversaturation);
protected:
bool m_stop = false;
boost::condition_variable m_displayCondition;
QColor m_darkColor;
QColor m_saturatedColor;
public slots:
virtual void Display(XI_IMG &image) = 0;
};
#endif // DISPLAY_H