MuteMaster should (a) use a Muteable's own ::muted_by_others_soloing() (b) not try...
[ardour.git] / libs / ardour / session.cc
index 9e9b530ce3bf0de1a19ea78f72d17d3f25090689..63cd20a0c0a2752459c3b7ee9177bab973b6a949 100644 (file)
 
 #include "LuaBridge/LuaBridge.h"
 
-#include "i18n.h"
+#include "pbd/i18n.h"
 
 #include <glibmm/checksum.h>
 
@@ -213,6 +213,7 @@ Session::Session (AudioEngine &eng,
        , post_export_position (0)
        , _exporting (false)
        , _export_rolling (false)
+       , _realtime_export (false)
        , _export_preroll (0)
        , _export_latency (0)
        , _pre_export_mmc_enabled (false)
@@ -3902,6 +3903,8 @@ Session::route_solo_changed (bool self_solo_changed, Controllable::GroupControlD
 
                if ((*i)->solo_isolate_control()->solo_isolated() || !(*i)->can_solo()) {
                        /* route does not get solo propagated to it */
+                       DEBUG_TRACE (DEBUG::Solo, string_compose ("%1 excluded from solo because iso = %2 can_solo = %3\n", (*i)->name(), (*i)->solo_isolate_control()->solo_isolated(),
+                                                                 (*i)->can_solo()));
                        continue;
                }
 
@@ -7041,3 +7044,14 @@ Session::auto_connect_thread_run ()
        }
        pthread_mutex_unlock (&_auto_connect_mutex);
 }
+
+void
+Session::cancel_all_solo ()
+{
+       StripableList sl;
+
+       get_stripables (sl);
+
+       set_controls (stripable_list_to_control_list (sl, &Stripable::solo_control), 0.0, Controllable::NoGroup);
+       clear_all_solo_state (routes.reader());
+}