1/* This file is part of the KDE project
2 Copyright (C) 2005-2006 Matthias Kretz <kretz@kde.org>
3
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Lesser General Public
6 License as published by the Free Software Foundation; either
7 version 2.1 of the License, or (at your option) version 3, or any
8 later version accepted by the membership of KDE e.V. (or its
9 successor approved by the membership of KDE e.V.), Nokia Corporation
10 (or its successors, if any) and the KDE Free Qt Foundation, which shall
11 act as a proxy defined in Section 6 of version 3 of the license.
12
13 This library is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 Lesser General Public License for more details.
17
18 You should have received a copy of the GNU Lesser General Public
19 License along with this library. If not, see <http://www.gnu.org/licenses/>.
20
21*/
22#ifndef Phonon_ABSTRACTVIDEOOUTPUTBASE_H
23#define Phonon_ABSTRACTVIDEOOUTPUTBASE_H
24
25#include "phonondefs.h"
26#include "phonon_export.h"
27#include "medianode.h"
28#include <QtCore/QObject>
29
30QT_BEGIN_HEADER
31QT_BEGIN_NAMESPACE
32
33#ifndef QT_NO_PHONON_VIDEO
34
35class QString;
36
37namespace Phonon
38{
39
40namespace Experimental
41{
42 class Visualization;
43 class VisualizationPrivate;
44} // namespace Experimental
45
46 class AbstractVideoOutputPrivate;
47
48 /** \class AbstractVideoOutput abstractvideooutput.h Phonon/AbstractVideoOutput
49 * \brief Common base class for all video outputs.
50 *
51 * \see VideoWidget
52 */
53 class PHONON_EXPORT AbstractVideoOutput : public MediaNode
54 {
55 friend class Experimental::Visualization;
56 friend class Experimental::VisualizationPrivate;
57 K_DECLARE_PRIVATE(AbstractVideoOutput)
58 protected:
59 /**
60 * \internal
61 * Constructor that is called from derived classes.
62 *
63 * \param d the private object
64 */
65 AbstractVideoOutput(AbstractVideoOutputPrivate &d);
66 };
67} //namespace Phonon
68
69#endif //QT_NO_PHONON_VIDEO
70
71QT_END_NAMESPACE
72QT_END_HEADER
73
74#endif // Phonon_ABSTRACTVIDEOOUTPUTBASE_H
75