/* This file is part of the KDE project. Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). 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 or 3 of the License. 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_VOLUMEEFFECT_H #define PHONON_VOLUMEEFFECT_H #include "effect.h" #include QT_BEGIN_NAMESPACE #ifndef QT_NO_PHONON_VOLUMEFADEREFFECT namespace Phonon { namespace DS9 { class VolumeEffectFilter; class VolumeEffect : public Effect, public Phonon::VolumeFaderInterface { Q_OBJECT Q_INTERFACES(Phonon::VolumeFaderInterface) public: VolumeEffect(QObject *parent); //reimplementation virtual float volume() const; virtual void setVolume(float); virtual Phonon::VolumeFaderEffect::FadeCurve fadeCurve() const; virtual void setFadeCurve(Phonon::VolumeFaderEffect::FadeCurve); virtual void fadeTo(float, int); private: float m_volume; //parameters used to fade Phonon::VolumeFaderEffect::FadeCurve m_fadeCurve; bool m_fading; //determines if we should be fading. float m_initialVolume; float m_targetVolume; int m_fadeDuration; int m_fadeSamplePosition; qreal (*m_fadeCurveFn)(const qreal, const qreal, const qreal); //allow the filter to get access to that friend class VolumeEffectFilter; }; } } #endif //QT_NO_PHONON_VOLUMEFADEREFFECT QT_END_NAMESPACE #endif