Mercurial > hg > svcore
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