]> git.sesse.net Git - vlc/blob - bindings/phonon/vlc/effect.h
Phonon Backend using VLC
[vlc] / bindings / phonon / vlc / effect.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_EFFECT_H
23 #define PHONON_VLC_EFFECT_H
24
25 #include "sinknode.h"
26 #include "effectmanager.h"
27
28 #include <phonon/effectinterface.h>
29 #include <phonon/effectparameter.h>
30
31 namespace Phonon
32 {
33 namespace VLC {
34
35 class EffectManager;
36
37
38 class Effect : public SinkNode, public EffectInterface
39 {
40     Q_OBJECT
41     Q_INTERFACES(Phonon::EffectInterface)
42
43 public:
44
45     Effect(EffectManager *p_em, int i_effectId, QObject *p_parent);
46     ~Effect();
47
48     void setupEffectParams();
49     QList<EffectParameter> parameters() const;
50     QVariant parameterValue(const EffectParameter & param) const;
51     void setParameterValue(const EffectParameter & param, const QVariant & newValue);
52
53     void connectToMediaObject(PrivateMediaObject *p_media_object);
54     void disconnectFromMediaObject(PrivateMediaObject *p_media_object);
55
56 private:
57
58     EffectManager *p_effectManager;
59     int i_effect_filter;
60     EffectInfo::Type effect_type;
61     QList<Phonon::EffectParameter> parameterList;
62 };
63
64 }
65 } // Namespace Phonon::VLC
66
67 #endif // PHONON_VLC_EFFECT_H