diff base/PlayParameterRepository.h @ 391:5858cc462d0a

* Fix #1628781 changes to layer visibility and mute should use a command * Also use a command for changes to layer playback pan, gain, plugin settings * Refactor PlayParameterRepository to remove dependency on audioio from base * Fix failure to save play parameters for main model in session file
author Chris Cannam
date Thu, 13 Mar 2008 14:06:03 +0000
parents 41d64b873d87
children 1f98e28f70c6
line wrap: on
line diff
--- a/base/PlayParameterRepository.h	Thu Mar 13 12:41:20 2008 +0000
+++ b/base/PlayParameterRepository.h	Thu Mar 13 14:06:03 2008 +0000
@@ -16,12 +16,15 @@
 #ifndef _PLAY_PARAMETER_REPOSITORY_H_
 #define _PLAY_PARAMETER_REPOSITORY_H_
 
-class PlayParameters;
-class Model;
+#include "PlayParameters.h"
+#include "Command.h"
+
+class Playable;
 
 #include <map>
 
 #include <QObject>
+#include <QString>
 
 class PlayParameterRepository : public QObject
 {
@@ -32,18 +35,38 @@
 
     virtual ~PlayParameterRepository();
 
-    void addModel(const Model *model);
-    void removeModel(const Model *model);
-    void copyParameters(const Model *from, const Model *to);
+    void addPlayable(const Playable *playable);
+    void removePlayable(const Playable *playable);
+    void copyParameters(const Playable *from, const Playable *to);
 
-    PlayParameters *getPlayParameters(const Model *model);
+    PlayParameters *getPlayParameters(const Playable *playable);
 
     void clear();
 
+    class EditCommand : public Command
+    {
+    public:
+        EditCommand(PlayParameters *params);
+        void setPlayMuted(bool);
+        void setPlayAudible(bool);
+        void setPlayPan(float);
+        void setPlayGain(float);
+        void setPlayPluginId(QString);
+        void setPlayPluginConfiguration(QString);
+        void execute();
+        void unexecute();
+        QString getName() const;
+
+    protected:
+        PlayParameters *m_params;
+        PlayParameters m_from;
+        PlayParameters m_to;
+    };
+
 signals:
     void playParametersChanged(PlayParameters *);
-    void playPluginIdChanged(const Model *, QString);
-    void playPluginConfigurationChanged(const Model *, QString);
+    void playPluginIdChanged(const Playable *, QString);
+    void playPluginConfigurationChanged(const Playable *, QString);
 
 protected slots:
     void playParametersChanged();
@@ -51,8 +74,8 @@
     void playPluginConfigurationChanged(QString);
 
 protected:
-    typedef std::map<const Model *, PlayParameters *> ModelParameterMap;
-    ModelParameterMap m_playParameters;
+    typedef std::map<const Playable *, PlayParameters *> PlayableParameterMap;
+    PlayableParameterMap m_playParameters;
 
     static PlayParameterRepository *m_instance;
 };