/*
*/
#ifndef Phonon_GST_VOLUMEFADEREFFECT_H
#define Phonon_GST_VOLUMEFADEREFFECT_H

#include <QTime>
#include "audioeffect.h"
#include <phonon/volumefadereffect.h>

namespace Phonon
{
namespace Gst
{
	/**
	 * \author Matthias Kretz <kretz@kde.org>
	 */
	class VolumeFaderEffect : public AudioEffect
	{
		Q_OBJECT
		public:
			VolumeFaderEffect( QObject* parent );
			~VolumeFaderEffect();

			Q_INVOKABLE float volume() const;
			Q_INVOKABLE void setVolume( float volume );
			Q_INVOKABLE Phonon::VolumeFaderEffect::FadeCurve fadeCurve() const;
			Q_INVOKABLE void setFadeCurve( Phonon::VolumeFaderEffect::FadeCurve curve );
			Q_INVOKABLE void fadeTo( float volume, int fadeTime );

		private:
			float m_volume;
			float m_endvolume;
			int m_fadeTime;
			QTime m_fadeStart;
			Phonon::VolumeFaderEffect::FadeCurve m_fadeCurve;
	};
}} //namespace Phonon::Gst

// vim: sw=4 ts=4 tw=80
#endif // Phonon_GST_VOLUMEFADEREFFECT_H
