/* 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 <http://www.gnu.org/licenses/>. | |
*/ | |
#ifndef PHONON_VOLUMEEFFECT_H | |
#define PHONON_VOLUMEEFFECT_H | |
#include "effect.h" | |
#include <phonon/volumefaderinterface.h> | |
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; | |
//paramaters 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 |