clear all solo state should affect VCAs too

This commit is contained in:
Paul Davis 2016-04-21 11:08:47 -04:00
parent d283cefe12
commit a89b3f5687
6 changed files with 25 additions and 0 deletions

View File

@ -51,6 +51,8 @@ class LIBARDOUR_API VCA : public Stripable, public Soloable, public Muteable, pu
XMLNode& get_state();
int set_state (XMLNode const&, int version);
void clear_all_solo_state ();
bool soloed () const;
void push_solo_upstream (int32_t) {}
void push_solo_isolate_upstream (int32_t) {}

View File

@ -58,6 +58,7 @@ class VCAManager : public SessionHandleRef, public PBD::StatefulDestructible
int set_state (XMLNode const&, int version);
bool vcas_loaded() const { return _vcas_loaded; }
void clear_all_solo_state ();
static std::string xml_node_name;

View File

@ -107,6 +107,7 @@
#include "ardour/user_bundle.h"
#include "ardour/utils.h"
#include "ardour/vca_manager.h"
#include "ardour/vca.h"
#include "midi++/port.h"
#include "midi++/mmc.h"
@ -324,6 +325,7 @@ Session::Session (AudioEngine &eng,
pthread_cond_init (&_auto_connect_cond, 0);
init_name_id_counter (1); // reset for new sessions, start at 1
VCA::set_next_vca_number (1); // reset for new sessions, start at 1
pre_engine_init (fullpath);

View File

@ -25,6 +25,7 @@
#include "ardour/route.h"
#include "ardour/session.h"
#include "ardour/track.h"
#include "ardour/vca_manager.h"
#include "i18n.h"
@ -71,6 +72,9 @@ Session::rt_clear_all_solo_state (boost::shared_ptr<RouteList> rl, bool /* yn */
}
(*i)->clear_all_solo_state();
}
_vca_manager->clear_all_solo_state ();
set_dirty();
}

View File

@ -146,3 +146,9 @@ VCA::set_state (XMLNode const& node, int version)
return 0;
}
void
VCA::clear_all_solo_state ()
{
_solo_control->clear_all_solo_state ();
}

View File

@ -177,3 +177,13 @@ VCAManager::set_state (XMLNode const& node, int version)
return 0;
}
void
VCAManager::clear_all_solo_state ()
{
Mutex::Lock lm (lock);
for (VCAList::const_iterator i = _vcas.begin(); i != _vcas.end(); ++i) {
(*i)->clear_all_solo_state ();
}
}