Chris@49: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
Chris@0: 
Chris@0: /*
Chris@52:     Sonic Visualiser
Chris@52:     An audio file viewer and annotation editor.
Chris@52:     Centre for Digital Music, Queen Mary, University of London.
Chris@52:     This file copyright 2006 Chris Cannam.
Chris@0:     
Chris@52:     This program is free software; you can redistribute it and/or
Chris@52:     modify it under the terms of the GNU General Public License as
Chris@52:     published by the Free Software Foundation; either version 2 of the
Chris@52:     License, or (at your option) any later version.  See the file
Chris@52:     COPYING included with this distribution for more information.
Chris@0: */
Chris@0: 
Chris@28: #ifndef _PLAY_PARAMETERS_H_
Chris@28: #define _PLAY_PARAMETERS_H_
Chris@0: 
Chris@0: #include <QObject>
Chris@0: 
Chris@81: #include "XmlExportable.h"
Chris@81: 
Chris@81: class PlayParameters : public QObject, public XmlExportable
Chris@0: {
Chris@0:     Q_OBJECT
Chris@0: 
Chris@0: public:
Chris@0:     PlayParameters() : m_playMuted(false), m_playPan(0.0), m_playGain(1.0) { }
Chris@0: 
Chris@0:     virtual bool isPlayMuted() const { return m_playMuted; }
Chris@391:     virtual bool isPlayAudible() const { return !m_playMuted; }
Chris@0:     virtual float getPlayPan() const { return m_playPan; } // -1.0 -> 1.0
Chris@0:     virtual float getPlayGain() const { return m_playGain; }
Chris@0: 
Chris@57:     virtual QString getPlayPluginId() const { return m_playPluginId; } 
Chris@57:     virtual QString getPlayPluginConfiguration() const { return m_playPluginConfiguration; }
Chris@57: 
Chris@284:     virtual void copyFrom(const PlayParameters *);
Chris@284: 
Chris@314:     virtual void toXml(QTextStream &stream,
Chris@314:                        QString indent = "",
Chris@314:                        QString extraAttributes = "") const;
Chris@81: 
Chris@29: public slots:
Chris@29:     virtual void setPlayMuted(bool muted);
Chris@29:     virtual void setPlayAudible(bool nonMuted);
Chris@29:     virtual void setPlayPan(float pan);
Chris@29:     virtual void setPlayGain(float gain);
Chris@57:     virtual void setPlayPluginId(QString id);
Chris@57:     virtual void setPlayPluginConfiguration(QString configuration);
Chris@0: 
Chris@30: signals:
Chris@30:     void playParametersChanged();
Chris@30:     void playMutedChanged(bool);
Chris@30:     void playAudibleChanged(bool);
Chris@30:     void playPanChanged(float);
Chris@30:     void playGainChanged(float);
Chris@57:     void playPluginIdChanged(QString);
Chris@57:     void playPluginConfigurationChanged(QString);
Chris@30: 
Chris@0: protected:
Chris@0:     bool m_playMuted;
Chris@0:     float m_playPan;
Chris@0:     float m_playGain;
Chris@57:     QString m_playPluginId;
Chris@57:     QString m_playPluginConfiguration;
Chris@284: 
Chris@284: private:
Chris@284:     PlayParameters(const PlayParameters &);
Chris@284:     PlayParameters &operator=(const PlayParameters &);
Chris@0: };
Chris@0: 
Chris@0: #endif
Chris@0: 
Chris@0:     
Chris@0: 
Chris@0: