Skip to content

File display.h

File List > src > 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