← index
AcidCam.Lite/display_window.hpp
Source: AcidCam.Lite/display_window.hpp
#ifndef _DISPLAY_WINDOW_H_
#define _DISPLAY_WINDOW_H_

#include<QDialog>
#include<QWidget>
#include<vector>
#include<string>
#include<QTimer>
#include"ac.h"

inline QImage Mat2QImage(cv::Mat const& src)
{
    cv::Mat temp;
    cvtColor(src, temp,cv::COLOR_BGR2RGB);
    QImage dest((const uchar *) temp.data, static_cast<int>(temp.cols), static_cast<int>(temp.rows), static_cast<int>(temp.step), QImage::Format_RGB888);
    dest.bits();
    return dest;
}

class AC_DisplayWindow : public QDialog {
    Q_OBJECT
public:
    AC_DisplayWindow(QWidget *parent = 0);
public slots:
    void update();
public:
    void setIndex(int index);
    bool loadList(QString lst);
    bool openCamera(int index, int w, int h);
    void paintEvent(QPaintEvent *p);
    void keyPressEvent(QKeyEvent *ke);
    void setDelay(int d);
    void setShuffle(bool s);
    void shuffleList();
    void stop();
private:
    std::vector<std::string> playback;
    int playback_index = 0;
    cv::VideoCapture cap;
    QTimer *timer;
    int delay = (24 * 30);
    bool shuffle_on;
};


#endif