Fix reversed logic in legacy tempo secton detection
[ardour.git] / libs / ardour / amp.cc
index 46af91bf05d30462d990994444af84950120f6c3..d7b901434069f3a221af9ae4c4a1d96b2cb1f6f1 100644 (file)
@@ -16,7 +16,6 @@
     675 Mass Ave, Cambridge, MA 02139, USA.
 */
 
-#include <iostream>
 #include <cstring>
 #include <cmath>
 #include <algorithm>
@@ -359,7 +358,7 @@ XMLNode&
 Amp::state (bool full_state)
 {
        XMLNode& node (Processor::state (full_state));
-       node.add_property("type", _gain_control->parameter().type() == GainAutomation ? "amp" : "trim");
+       node.set_property("type", _gain_control->parameter().type() == GainAutomation ? "amp" : "trim");
        node.add_child_nocopy (_gain_control->get_state());
 
        return node;
@@ -368,13 +367,13 @@ Amp::state (bool full_state)
 int
 Amp::set_state (const XMLNode& node, int version)
 {
-        XMLNode* gain_node;
+       XMLNode* gain_node;
 
        Processor::set_state (node, version);
 
-        if ((gain_node = node.child (Controllable::xml_node_name.c_str())) != 0) {
-                _gain_control->set_state (*gain_node, version);
-        }
+       if ((gain_node = node.child (Controllable::xml_node_name.c_str ())) != 0) {
+               _gain_control->set_state (*gain_node, version);
+       }
 
        return 0;
 }
@@ -393,22 +392,8 @@ Amp::setup_gain_automation (framepos_t start_frame, framepos_t end_frame, framec
            && _gain_control->automation_playback())
        {
                assert (_gain_automation_buffer);
-               _apply_gain_automation = _gain_control->list()->curve().rt_safe_get_vector (
-                       start_frame, end_frame, _gain_automation_buffer, nframes);
-
-               /* XXX the future requires a way to automate the control master
-                * and merge its own automation vector/curve with this one. We
-                * don't have a way to do that just yet, so for now, just get
-                * the master's current gain and scale our own automation
-                * vector/curve by this value.
-                */
-
-               if (_gain_control->slaved()) {
-                       const double master_gain = _gain_control->get_masters_value ();
-                       if (master_gain != 1.0) {
-                               apply_gain_to_buffer (_gain_automation_buffer, nframes, master_gain);
-                       }
-               }
+
+               _apply_gain_automation = _gain_control->get_masters_curve ( start_frame, end_frame, _gain_automation_buffer, nframes);
 
                if (start_frame != _current_automation_frame && _session.bounce_processing ()) {
                        _current_gain = _gain_automation_buffer[0];