blob: 69edf7d444511615f690298563713c41f7abd73a [file] [log] [blame]
Edric Milaret627500d2015-03-27 16:41:40 -04001/***************************************************************************
Edric Milaret559bda52015-04-29 17:02:31 -04002 * Copyright (C) 2015 by Savoir-Faire Linux *
Edric Milaret627500d2015-03-27 16:41:40 -04003 * Author: Edric Ladent Milaret <edric.ladent-milaret@savoirfairelinux.com>*
4 * *
5 * This program is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation; either version 3 of the License, or *
8 * (at your option) any later version. *
9 * *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
14 * *
15 * You should have received a copy of the GNU General Public License *
16 * along with this program. If not, see <http://www.gnu.org/licenses/>. *
17 **************************************************************************/
18
19#ifndef VIDEOWIDGET_H
20#define VIDEOWIDGET_H
21
22#include <QWidget>
23#include <QPainter>
24
25#include <video/renderer.h>
26#include <video/previewmanager.h>
27#include <callmodel.h>
28#include <QMutex>
29#include <QPixmap>
30
31class VideoWidget : public QWidget
32{
33 Q_OBJECT
34public:
35 explicit VideoWidget(QWidget *parent = 0);
36 ~VideoWidget();
37 void paintEvent(QPaintEvent* evt);
38
39public slots:
40 void previewStarted(Video::Renderer* renderer);
Edric Milaret72c406d2015-04-28 13:23:54 -040041 void previewStopped();
Edric Milaret627500d2015-03-27 16:41:40 -040042 void frameFromPreview();
43 void callInitiated(Call *call, Video::Renderer *renderer);
44 void frameFromDistant();
45 void renderingStopped();
46
Edric Milaret435cdfc2015-06-01 16:15:50 -040047protected slots:
48 void mouseDoubleClickEvent(QMouseEvent *e);
Edric Milaret627500d2015-03-27 16:41:40 -040049private:
50 Video::Renderer* previewRenderer_;
51 Video::Renderer* renderer_;
52 QImage *previewFrame_;
53 QImage *distantFrame_;
54 QMutex lock_;
55 QPixmap *previewPix_;
Edric Milaret435cdfc2015-06-01 16:15:50 -040056 QWidget *oldParent_;
57 QSize oldSize_;
Edric Milaret627500d2015-03-27 16:41:40 -040058};
59
60#endif // VIDEOWIDGET_H