/*
*/
#ifndef Phonon_GST_AUDIOEFFECT_H
#define Phonon_GST_AUDIOEFFECT_H

#include <QObject>
#include <phonon/effectparameter.h>

namespace Phonon
{
namespace Gst
{
	class EffectInterface;

	class AudioEffect : public QObject
	{
		Q_OBJECT
		public:
			AudioEffect( int effectId, QObject* parent );
			~AudioEffect();
			Q_INVOKABLE QVariant value( int parameterId ) const;
			Q_INVOKABLE void setValue( int parameterId, QVariant newValue );

			Q_INVOKABLE QList<EffectParameter> parameterList() const;

			// Fake specific:
			virtual void processBuffer( QVector<float>& buffer );

		private:
			EffectInterface* m_effect;
			QList<Phonon::EffectParameter> m_parameterList;
	};
}} //namespace Phonon::Gst

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