/*
*/
#ifndef Phonon_GST_AUDIOPATH_H
#define Phonon_GST_AUDIOPATH_H

#include <QObject>
#include <QList>

namespace Phonon
{
namespace Gst
{
	class AudioEffect;
	class AbstractAudioOutput;

	class AudioPath : public QObject
	{
		Q_OBJECT
		public:
			AudioPath( QObject* parent );
			~AudioPath();

			Q_INVOKABLE bool addOutput( QObject* audioOutput );
			Q_INVOKABLE bool removeOutput( QObject* audioOutput );
			Q_INVOKABLE bool insertEffect( QObject* newEffect, QObject* insertBefore = 0 );
			Q_INVOKABLE bool removeEffect( QObject* effect );

			// fake specific
			void processBuffer( const QVector<float>& buffer );

			GPhoAudioPath *object;

		private:
			QList<AudioEffect*> m_effects;
			QList<AbstractAudioOutput*> m_outputs;
	};
}} //namespace Phonon::Gst

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