From: Paul Davis Date: Tue, 19 Apr 2016 19:43:17 +0000 (-0400) Subject: fix return type of SlavableAutomationControl::get_boolean_masters() to make it usefl X-Git-Tag: 5.0-pre0~181 X-Git-Url: https://main.carlh.net/gitweb/?a=commitdiff_plain;h=bce617375eeb0429e8f98f19839faf7be8a84a5d;p=ardour.git fix return type of SlavableAutomationControl::get_boolean_masters() to make it usefl --- diff --git a/libs/ardour/ardour/slavable_automation_control.h b/libs/ardour/ardour/slavable_automation_control.h index 1f1847fb03..5e95cba22b 100644 --- a/libs/ardour/ardour/slavable_automation_control.h +++ b/libs/ardour/ardour/slavable_automation_control.h @@ -96,7 +96,7 @@ class SlavableAutomationControl : public AutomationControl double get_value_locked() const; void actually_set_value (double val, PBD::Controllable::GroupControlDisposition group_override); void update_boolean_masters_records (boost::shared_ptr); - bool get_boolean_masters () const; + int32_t get_boolean_masters () const; virtual void master_changed (bool from_self, GroupControlDisposition gcd, boost::shared_ptr); virtual void recompute_masters_ratios (double val) { /* do nothing by default */} diff --git a/libs/ardour/automation_control.cc b/libs/ardour/automation_control.cc index 8ffbd2d7df..d947a3599f 100644 --- a/libs/ardour/automation_control.cc +++ b/libs/ardour/automation_control.cc @@ -284,7 +284,6 @@ AutomationControl::check_rt (double val, Controllable::GroupControlDisposition g { if (!_session.loading() && (flags() & Controllable::RealTime) && !AudioEngine::instance()->in_process_thread()) { /* queue change in RT context */ - std::cerr << "::set_value (" << val << ", " << enum_2_string (gcd) << ") called for " << enum_2_string ((AutomationType) _parameter.type()) << ", queueing in RT context\n"; _session.set_control (shared_from_this(), val, gcd); return true; } diff --git a/libs/ardour/mute_control.cc b/libs/ardour/mute_control.cc index a345f54203..26280d5cd5 100644 --- a/libs/ardour/mute_control.cc +++ b/libs/ardour/mute_control.cc @@ -67,7 +67,7 @@ MuteControl::pre_remove_master (boost::shared_ptr m) } if (m->get_value()) { - if (!muted_by_self() && (muted_by_others() == 1)) { + if (!muted_by_self() && (get_boolean_masters() == 1)) { Changed (false, Controllable::NoGroup); } } diff --git a/libs/ardour/slavable_automation_control.cc b/libs/ardour/slavable_automation_control.cc index b9f7602dfc..78a1cc192d 100644 --- a/libs/ardour/slavable_automation_control.cc +++ b/libs/ardour/slavable_automation_control.cc @@ -163,19 +163,21 @@ SlavableAutomationControl::add_master (boost::shared_ptr m) update_boolean_masters_records (m); } -bool +int32_t SlavableAutomationControl::get_boolean_masters () const { - if (!_desc.toggled) { - return false; - } + int32_t n = 0; - Glib::Threads::RWLock::ReaderLock lm (master_lock); - for (Masters::const_iterator mr = _masters.begin(); mr != _masters.end(); ++mr) { - if (mr->second.yn()) { - return true; + if (_desc.toggled) { + Glib::Threads::RWLock::ReaderLock lm (master_lock); + for (Masters::const_iterator mr = _masters.begin(); mr != _masters.end(); ++mr) { + if (mr->second.yn()) { + ++n; + } } } + + return n; } void