Fix copy+paste error for mb32c filter freq.
[ardour.git] / libs / ardour / route.cc
index 82ce63551112dac839057b55d6e00cfb36ac2e86..41d85bcda5a9161b32958a3ecd2708e9309adb03 100644 (file)
@@ -4968,7 +4968,7 @@ Route::eq_band_cnt () const
                if (is_master() || mixbus()) {
                        return 3;
                } else {
-                       return 4;
+                       return 6;
                }
 #else
                return 3;
@@ -5001,10 +5001,10 @@ Route::eq_gain_controllable (uint32_t band) const
        } else {
 #ifdef MIXBUS32C
                switch (band) {
-                       case 0: port_number = 14; break;
-                       case 1: port_number = 12; break;
-                       case 2: port_number = 10; break;
-                       case 3: port_number =  8; break;
+                       case 2: port_number = 14; break;
+                       case 3: port_number = 12; break;
+                       case 4: port_number = 10; break;
+                       case 5: port_number =  8; break;
                        default:
                                return boost::shared_ptr<AutomationControl>();
                }
@@ -5042,10 +5042,12 @@ Route::eq_freq_controllable (uint32_t band) const
        uint32_t port_number;
 #ifdef MIXBUS32C
        switch (band) {
-               case 0: port_number = 13; break;
-               case 1: port_number = 11; break;
-               case 2: port_number = 9; break;
-               case 3: port_number = 7; break;
+               case 0: port_number = 5; break; // HPF
+               case 1: port_number = 6; break; // LPF
+               case 2: port_number = 13; break; // lo
+               case 3: port_number = 11; break; // lo mid
+               case 4: port_number = 9; break; // hi mid
+               case 5: port_number = 7; break; // hi
                default:
                        return boost::shared_ptr<AutomationControl>();
        }
@@ -5103,7 +5105,7 @@ Route::eq_hpf_controllable () const
                return boost::shared_ptr<AutomationControl>();
        }
 #ifdef MIXBUS32C
-       return boost::dynamic_pointer_cast<ARDOUR::AutomationControl> (eq->control (Evoral::Parameter (ARDOUR::PluginAutomation, 0, 3)));
+       return boost::dynamic_pointer_cast<ARDOUR::AutomationControl> (eq->control (Evoral::Parameter (ARDOUR::PluginAutomation, 0, 5)));
 #else
        return boost::dynamic_pointer_cast<ARDOUR::AutomationControl> (eq->control (Evoral::Parameter (ARDOUR::PluginAutomation, 0, 2)));
 #endif
@@ -5113,6 +5115,38 @@ Route::eq_hpf_controllable () const
 #endif
 }
 
+boost::shared_ptr<AutomationControl>
+Route::eq_lpf_controllable () const
+{
+#ifdef MIXBUS32C
+       boost::shared_ptr<PluginInsert> eq = ch_eq();
+
+       if (is_master() || mixbus() || !eq) {
+               return boost::shared_ptr<AutomationControl>();
+       }
+
+       return boost::dynamic_pointer_cast<ARDOUR::AutomationControl> (eq->control (Evoral::Parameter (ARDOUR::PluginAutomation, 0, 4)));
+#else
+       return boost::shared_ptr<AutomationControl>();
+#endif
+}
+
+boost::shared_ptr<AutomationControl>
+Route::filter_enable_controllable () const
+{
+#ifdef MIXBUS32C
+       boost::shared_ptr<PluginInsert> eq = ch_eq();
+
+       if (is_master() || mixbus() || !eq) {
+               return boost::shared_ptr<AutomationControl>();
+       }
+
+       return boost::dynamic_pointer_cast<ARDOUR::AutomationControl> (eq->control (Evoral::Parameter (ARDOUR::PluginAutomation, 0, 2)));
+#else
+       return boost::shared_ptr<AutomationControl>();
+#endif
+}
+
 string
 Route::eq_band_name (uint32_t band) const
 {
@@ -5132,10 +5166,12 @@ Route::eq_band_name (uint32_t band) const
 #ifdef MIXBUS32C
        } else {
                switch (band) {
-                       case 0: return _("lo");
-                       case 1: return _("lo mid");
-                       case 2: return _("hi mid");
-                       case 3: return _("hi");
+                       case 0: return _("HPF");
+                       case 1: return _("LPF");
+                       case 2: return _("lo");
+                       case 3: return _("lo mid");
+                       case 4: return _("hi mid");
+                       case 5: return _("hi");
                        default: return string();
                }
        }
@@ -5450,3 +5486,23 @@ Route::clear_all_solo_state ()
 {
        _solo_control->clear_all_solo_state ();
 }
+
+boost::shared_ptr<AutomationControl>
+Route::automation_control_recurse (PBD::ID const & id) const
+{
+       boost::shared_ptr<AutomationControl> ac = Automatable::automation_control (id);
+
+       if (ac) {
+               return ac;
+       }
+
+       Glib::Threads::RWLock::ReaderLock lm (_processor_lock);
+
+       for (ProcessorList::const_iterator i = _processors.begin(); i != _processors.end(); ++i) {
+               if ((ac = (*i)->automation_control (id))) {
+                       return ac;
+               }
+       }
+
+       return boost::shared_ptr<AutomationControl> ();
+}