diff base/PlayParameterRepository.cpp @ 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 4b2ea82fd0ed
children 1dc99b430d2a
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;