changeset 284:41d64b873d87

* continue to pick "new" colours for coloured layers even when all colours have been used at least once, rather than sticking on the last one * some messing about with application palette settings * when replacing an audio file, retain the previous playback settings for any layers that depended on the old file * re-check plugin program setting when a parameter changes -- so a plugin can decide to reset the program if the parameters no longer match those for the current program * fix failure to update check-boxes for toggled plugin parameters when their parameters are changed by program changes
author Chris Cannam
date Thu, 09 Aug 2007 14:40:03 +0000
parents 7336fe3a7caa
children 20028c634494
files base/PlayParameterRepository.cpp base/PlayParameterRepository.h base/PlayParameters.cpp base/PlayParameters.h
diffstat 4 files changed, 33 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/base/PlayParameterRepository.cpp	Thu Aug 09 10:06:02 2007 +0000
+++ b/base/PlayParameterRepository.cpp	Thu Aug 09 14:40:03 2007 +0000
@@ -85,8 +85,22 @@
     m_playParameters.erase(model);
 }
 
+void
+PlayParameterRepository::copyParameters(const Model *from, const Model *to)
+{
+    if (!getPlayParameters(from)) {
+        std::cerr << "ERROR: PlayParameterRepository::copyParameters: source model unknown" << std::endl;
+        return;
+    }
+    if (!getPlayParameters(to)) {
+        std::cerr << "WARNING: PlayParameterRepository::copyParameters: target model unknown, adding it now" << std::endl;
+        addModel(to);
+    }
+    getPlayParameters(to)->copyFrom(getPlayParameters(from));
+}
+
 PlayParameters *
-PlayParameterRepository::getPlayParameters(const Model *model) const
+PlayParameterRepository::getPlayParameters(const Model *model) 
 {
     if (m_playParameters.find(model) == m_playParameters.end()) return 0;
     return m_playParameters.find(model)->second;
--- a/base/PlayParameterRepository.h	Thu Aug 09 10:06:02 2007 +0000
+++ b/base/PlayParameterRepository.h	Thu Aug 09 14:40:03 2007 +0000
@@ -34,8 +34,9 @@
 
     void addModel(const Model *model);
     void removeModel(const Model *model);
+    void copyParameters(const Model *from, const Model *to);
 
-    PlayParameters *getPlayParameters(const Model *model) const;
+    PlayParameters *getPlayParameters(const Model *model);
 
     void clear();
 
--- a/base/PlayParameters.cpp	Thu Aug 09 10:06:02 2007 +0000
+++ b/base/PlayParameters.cpp	Thu Aug 09 14:40:03 2007 +0000
@@ -17,6 +17,16 @@
 
 #include <iostream>
 
+void
+PlayParameters::copyFrom(const PlayParameters *pp)
+{
+    m_playMuted = pp->isPlayMuted();
+    m_playPan = pp->getPlayPan();
+    m_playGain = pp->getPlayGain();
+    m_playPluginId = pp->getPlayPluginId();
+    m_playPluginConfiguration = pp->getPlayPluginConfiguration();
+}
+
 QString
 PlayParameters::toXmlString(QString indent,
                             QString extraAttributes) const
--- a/base/PlayParameters.h	Thu Aug 09 10:06:02 2007 +0000
+++ b/base/PlayParameters.h	Thu Aug 09 14:40:03 2007 +0000
@@ -34,6 +34,8 @@
     virtual QString getPlayPluginId() const { return m_playPluginId; } 
     virtual QString getPlayPluginConfiguration() const { return m_playPluginConfiguration; }
 
+    virtual void copyFrom(const PlayParameters *);
+
     virtual QString toXmlString(QString indent = "",
                                 QString extraAttributes = "") const;
 
@@ -60,6 +62,10 @@
     float m_playGain;
     QString m_playPluginId;
     QString m_playPluginConfiguration;
+
+private:
+    PlayParameters(const PlayParameters &);
+    PlayParameters &operator=(const PlayParameters &);
 };
 
 #endif