if (r->muted ()) {
/* full mute */
return Gtkmm2ext::ExplicitActive;
- } else if (!r->is_master() && s->soloing() && !r->soloed() && !r->solo_isolated()) {
- /* master is NEVER muted by others */
+ } else if (r->muted_by_others()) {
return Gtkmm2ext::ImplicitActive;
} else {
/* no mute at all */
bool muted () const;
void set_mute (bool yn, void* src);
+ bool muted_by_others() const;
+
/* controls use set_solo() to modify this route's solo state
*/
return _mute_master->muted_by_self();
}
+bool
+Route::muted_by_others () const
+{
+ //master is never muted by others
+ if (is_master())
+ return false;
+
+ //now check to see if something is soloed (and I am not)
+ return (_session.soloing() && !self_soloed() && !solo_isolated());
+}
+
#if 0
static void
dump_processors(const string& name, const list<boost::shared_ptr<Processor> >& procs)