/* Copyright (C) 2007-2008 Tanguy Krotoff Copyright (C) 2008 Lukas Durfina Copyright (C) 2009 Fathi Boudra Copyright (C) 2009-2011 vlc-phonon AUTHORS This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library. If not, see . */ #ifndef PHONON_VLC_EFFECT_H #define PHONON_VLC_EFFECT_H #include "sinknode.h" #include "effectmanager.h" #include #include namespace Phonon { namespace VLC { class EffectManager; /** \brief Effect implementation for Phonon-VLC * * There are methods to get or set the effect parameters, implemented for * the EffectInterface. See the Phonon documentation for details. * * As a sink node, it provides methods to handle the connection to a media object. * * An effect manager is the parent of each effect. * * \see EffectManager * \see VolumeFaderEffect */ class Effect : public QObject, public SinkNode, public EffectInterface { Q_OBJECT Q_INTERFACES(Phonon::EffectInterface) public: Effect(EffectManager *p_em, int i_effectId, QObject *p_parent); ~Effect(); void setupEffectParams(); QList parameters() const override; QVariant parameterValue(const EffectParameter ¶m) const override; void setParameterValue(const EffectParameter ¶m, const QVariant &newValue) override; /** \reimp */ void handleConnectToMediaObject(MediaObject *p_media_object) override; /** \reimp */ void handleDisconnectFromMediaObject(MediaObject *p_media_object) override; private: EffectManager *p_effectManager; int i_effect_filter; EffectInfo::Type effect_type; QList parameterList; }; } } // Namespace Phonon::VLC #endif // PHONON_VLC_EFFECT_H