Fix mute of MIDI tracks with channel forcing.
[ardour.git] / libs / ardour / panner_shell.cc
index 064554eac65dab1bbf3e8b9f376b3e8afc7345a0..7b19977b9c79a8b9994b2fa1476dabb91903601c 100644 (file)
@@ -120,7 +120,7 @@ PannerShell::configure_io (ChanCount in, ChanCount out)
        PannerInfo* pi = PannerManager::instance().select_panner (in, out, _user_selected_panner_uri);
        if (!pi) {
                fatal << _("No panner found: check that panners are being discovered correctly during startup.") << endmsg;
-               /*NOTREACHED*/
+               abort(); /*NOTREACHED*/
        }
 
        DEBUG_TRACE (DEBUG::Panning, string_compose (_("select panner: %1\n"), pi->descriptor.name.c_str()));
@@ -172,7 +172,7 @@ PannerShell::set_state (const XMLNode& node, int version)
        XMLNodeList nlist = node.children ();
        XMLNodeConstIterator niter;
        const XMLProperty *prop;
-       LocaleGuard lg (X_("POSIX"));
+       LocaleGuard lg (X_("C"));
 
        if ((prop = node.property (X_("bypassed"))) != 0) {
                set_bypassed (string_is_affirmative (prop->value ()));
@@ -233,6 +233,16 @@ PannerShell::set_state (const XMLNode& node, int version)
                                                _current_panner_uri = (*p)->descriptor.panner_uri;
                                                _panner_gui_uri = (*p)->descriptor.gui_uri;
 
+                                               if (_is_send) {
+                                                       if (!_panlinked) {
+                                                               _pannable_internal->set_panner(_panner);
+                                                       } else {
+                                                               _force_reselect = true;
+                                                       }
+                                               } else {
+                                                       _pannable_route->set_panner(_panner);
+                                               }
+
                                                if (_panner->set_state (**niter, version) == 0) {
                                                        return -1;
                                                }