/* Copyright (c) 2012 Patrick Ruoff * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. */ #pragma once #include #include #include #include #ifndef OPENTRACK_API # include # include #else # include # if defined(_WIN32) # include # endif #endif #include #include #include #include #include class PTVideoWidget : public QWidget { Q_OBJECT public: PTVideoWidget(QWidget *parent) : QWidget(parent), freshp(false) { connect(&timer, SIGNAL(timeout()), this, SLOT(update_and_repaint())); timer.start(40); } void update_image(const cv::Mat &frame); protected slots: void paintEvent( QPaintEvent* e ) { QMutexLocker foo(&mtx); QPainter painter(this); painter.drawImage(e->rect(), texture); } void update_and_repaint(); private: QMutex mtx; QImage texture; QTimer timer; cv::Mat _frame; bool freshp; };