/*
*/
#ifndef Phonon_GST_AUDIOOUTPUT_H
#define Phonon_GST_AUDIOOUTPUT_H

#include "abstractaudiooutput.h"
#include <QFile>
#include <phonon/audiooutputinterface.h>

namespace Phonon
{
namespace Gst
{
    class AudioOutput : public AbstractAudioOutput, public AudioOutputInterface
	{
		Q_OBJECT
        Q_INTERFACES(Phonon::AudioOutputInterface)
		public:
			AudioOutput( QObject* parent );
			~AudioOutput();

		public Q_SLOTS:
			// Attributes Getters:
			float volume() const;
			int outputDevice() const;

			// Attributes Setters:
			void setVolume( float newVolume );
            bool setOutputDevice(int newDevice);

		public:
			virtual void processBuffer( const QVector<float>& buffer );

			void openDevice();
			void closeDevice();

		Q_SIGNALS:
			void volumeChanged( float newVolume );

		private:
			float m_volume;
			int m_device;
			QFile m_dsp;
	};
}} //namespace Phonon::Gst

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