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