Phonon

effect.h
1/* This file is part of the KDE project
2 Copyright (C) 2005-2007 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
23
24#ifndef PHONON_EFFECT_H
25#define PHONON_EFFECT_H
26
27#include "phonondefs.h"
28#include <QObject>
29#include "objectdescription.h"
30#include "medianode.h"
31
32
33#ifndef QT_NO_PHONON_EFFECT
34
35class QString;
36template<class T> class QList;
37
38namespace Phonon
39{
40 class EffectParameter;
41 class EffectPrivate;
42
43 /** \class Effect effect.h phonon/Effect
44 * \short Effects that can be inserted into a Path.
45 * An effect is a special object which can perform
46 * transformations on the specified path. Examples may include simple
47 * modifiers such as fading or pitch shifting, or more complex mathematical
48 * transformations.
49 *
50 * In order to use an effect, insert it into the path as follows:
51 * \code
52 * Path path = Phonon::createPath(...);
53 * Effect *effect = new Effect(this);
54 * path.insertEffect(effect);
55 * \endcode
56 *
57 * The effect will immediately begin applying it's transformations on
58 * the path. To stop it, remove the Effect from the path.
59 *
60 * \ingroup PhononEffects
61 * \author Matthias Kretz <kretz@kde.org>
62 */
63 class PHONON_EXPORT Effect : public QObject, public MediaNode
64 {
65 Q_OBJECT
66 P_DECLARE_PRIVATE(Effect)
67
68 public:
69 ~Effect() override;
70
71//X enum Type {
72//X AudioEffect,
73//X VideoEffect
74//X };
75
76 /**
77 * QObject constructor.
78 *
79 * \param description An EffectDescription object to determine the
80 * type of effect. See BackendCapabilities::availableAudioEffects().
81 * \param parent QObject parent
82 */
83 explicit Effect(const EffectDescription &description, QObject *parent = nullptr);
84
85//X Type type() const;
86
87 /**
88 * Returns the description of this effect. This is the same type as was
89 * passed to the constructor.
90 */
91 EffectDescription description() const;
92
93 /**
94 * Returns a list of parameters that this effect provides to control
95 * its behaviour.
96 *
97 * \see EffectParameter
98 * \see EffectWidget
99 */
100 QList<EffectParameter> parameters() const;
101
102 QVariant parameterValue(const EffectParameter&) const;
103 void setParameterValue(const EffectParameter&, const QVariant &value);
104
105 protected:
106 Effect(EffectPrivate &dd, QObject *parent);
107 };
108} //namespace Phonon
109
110#endif // QT_NO_EFFECT
111
112
113// vim: sw=4 ts=4 tw=80
114#endif // PHONON_EFFECT_H
115
This class describes one parameter of an effect.
Effects that can be inserted into a Path.
Definition effect.h:64
Provides a tuple of enduser visible name and description.
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Tue Mar 26 2024 11:20:24 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.