From 83b5be1addd392f6920e7b97e8c6fc1fcbe28365 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Tue, 24 May 2022 20:07:35 +0200 Subject: [PATCH] Add static signal to indicate MixerScene changes --- libs/ardour/ardour/mixer_scene.h | 3 +++ libs/ardour/mixer_scene.cc | 13 ++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/libs/ardour/ardour/mixer_scene.h b/libs/ardour/ardour/mixer_scene.h index 8356e3866f..afb9a5f156 100644 --- a/libs/ardour/ardour/mixer_scene.h +++ b/libs/ardour/ardour/mixer_scene.h @@ -36,6 +36,7 @@ class LIBARDOUR_API MixerScene : public SessionHandleRef, public PBD::Stateful { public: MixerScene (Session&); + ~MixerScene (); void snapshot (); bool apply () const; @@ -48,6 +49,8 @@ public: XMLNode& get_state () const; int set_state (XMLNode const&, int version); + static PBD::Signal0 Change; + private: typedef std::map ControllableValueMap; diff --git a/libs/ardour/mixer_scene.cc b/libs/ardour/mixer_scene.cc index 5559e555b5..8a49e9e8a4 100644 --- a/libs/ardour/mixer_scene.cc +++ b/libs/ardour/mixer_scene.cc @@ -29,9 +29,17 @@ using namespace PBD; using namespace ARDOUR; -MixerScene::MixerScene(Session& s) +PBD::Signal0 MixerScene::Change; + +MixerScene::MixerScene (Session& s) : SessionHandleRef (s) { + Change (); /* EMIT SIGNAL */ +} + +MixerScene::~MixerScene () +{ + Change (); /* EMIT SIGNAL */ } bool @@ -40,6 +48,7 @@ MixerScene::set_name (std::string const& name) if (_name != name) { _name = name; _session.set_dirty (); + Change (); /* EMIT SIGNAL */ } return true; } @@ -49,6 +58,7 @@ MixerScene::clear () { _ctrl_map.clear (); _name.clear (); + Change (); /* EMIT SIGNAL */ } void @@ -65,6 +75,7 @@ MixerScene::snapshot () _ctrl_map[c->id ()] = c->get_save_value (); } _session.set_dirty (); + Change (); /* EMIT SIGNAL */ } bool