]> git.sesse.net Git - vlc/blob - bindings/phonon/vlc/videowidget.h
Phonon Backend using VLC
[vlc] / bindings / phonon / vlc / videowidget.h
1 /*****************************************************************************
2  * VLC backend for the Phonon library                                        *
3  * Copyright (C) 2007-2008 Tanguy Krotoff <tkrotoff@gmail.com>               *
4  * Copyright (C) 2008 Lukas Durfina <lukas.durfina@gmail.com>                *
5  * Copyright (C) 2009 Fathi Boudra <fabo@kde.org>                            *
6  *                                                                           *
7  * This program is free software; you can redistribute it and/or             *
8  * modify it under the terms of the GNU Lesser General Public                *
9  * License as published by the Free Software Foundation; either              *
10  * version 3 of the License, or (at your option) any later version.          *
11  *                                                                           *
12  * This program is distributed in the hope that it will be useful,           *
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of            *
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU         *
15  * Lesser General Public License for more details.                           *
16  *                                                                           *
17  * You should have received a copy of the GNU Lesser General Public          *
18  * License along with this package; if not, write to the Free Software       *
19  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA *
20  *****************************************************************************/
21
22 #ifndef PHONON_VLC_VIDEOWIDGET_H
23 #define PHONON_VLC_VIDEOWIDGET_H
24
25 #include "sinknode.h"
26
27 #include <phonon/videowidgetinterface.h>
28
29 #include "vlcvideowidget.h"
30 typedef Phonon::VLC::VLCVideoWidget Widget;
31
32
33 namespace Phonon
34 {
35 namespace VLC {
36
37
38 class VideoWidget : public SinkNode, public VideoWidgetInterface
39 {
40     Q_OBJECT
41     Q_INTERFACES(Phonon::VideoWidgetInterface)
42 public:
43
44     VideoWidget(QWidget *p_parent);
45     ~VideoWidget();
46
47     void connectToMediaObject(PrivateMediaObject * mediaObject);
48
49     Phonon::VideoWidget::AspectRatio aspectRatio() const;
50     void setAspectRatio(Phonon::VideoWidget::AspectRatio aspect);
51
52     Phonon::VideoWidget::ScaleMode scaleMode() const;
53     void setScaleMode(Phonon::VideoWidget::ScaleMode scale);
54
55     qreal brightness() const;
56     void setBrightness(qreal brightness);
57
58     qreal contrast() const;
59     void setContrast(qreal contrast);
60
61     qreal hue() const;
62     void setHue(qreal hue);
63
64     qreal saturation() const;
65     void setSaturation(qreal saturation);
66
67     Widget * widget();
68
69 private slots:
70
71     void videoWidgetSizeChanged(int width, int height);
72
73 private:
74
75     Widget *p_video_widget;
76
77     Phonon::VideoWidget::AspectRatio aspect_ratio;
78
79     Phonon::VideoWidget::ScaleMode scale_mode;
80
81     bool  b_filter_adjust_activated;
82     qreal f_brightness;
83     qreal f_contrast;
84     qreal f_hue;
85     qreal f_saturation;
86 };
87
88 }
89 } // Namespace Phonon::VLC
90
91 #endif // PHONON_VLC_VIDEOWIDGET_H