Tempo ramps - rename tempo_at() -> tempo_at_frame().. 3 decimals for the audioclock...
[ardour.git] / gtk2_ardour / automation_controller.cc
index dd2d71d9cd4d5c43f96650a3aa3ff4230dbf18c7..66c051ee19b45f58aa1c3569de6b00a4c43e686e 100644 (file)
@@ -40,6 +40,8 @@
 using namespace ARDOUR;
 using namespace Gtk;
 
+using PBD::Controllable;
+
 AutomationBarController::AutomationBarController (
                boost::shared_ptr<Automatable>       printer,
                boost::shared_ptr<AutomationControl> ac,
@@ -153,7 +155,7 @@ void
 AutomationController::value_adjusted ()
 {
        if (!_ignore_change) {
-               _controllable->set_value (_controllable->interface_to_internal(_adjustment->get_value()));
+               _controllable->set_value (_controllable->interface_to_internal(_adjustment->get_value()), Controllable::NoGroup);
        }
 
        /* A bar controller will automatically follow the adjustment, but for a
@@ -171,7 +173,6 @@ void
 AutomationController::start_touch()
 {
        _controllable->start_touch (_controllable->session().transport_frame());
-       StartGesture.emit();  /* EMIT SIGNAL */
 }
 
 void
@@ -188,8 +189,9 @@ AutomationController::end_touch ()
                }
 
                _controllable->stop_touch (mark, when);
+       } else {
+               _controllable->stop_touch (false, _controllable->session().transport_frame());
        }
-       StopGesture.emit();  /* EMIT SIGNAL */
 }
 
 void
@@ -248,7 +250,7 @@ AutomationController::run_note_select_dialog()
                const double value = ((_controllable->desc().unit == ARDOUR::ParameterDescriptor::HZ)
                                      ? midi_note_to_hz(dialog->note_number())
                                      : dialog->note_number());
-               _controllable->set_value(clamp(value, desc.lower, desc.upper));
+               _controllable->set_value(clamp(value, desc.lower, desc.upper), Controllable::NoGroup);
        }
        delete dialog;
 }
@@ -259,11 +261,11 @@ AutomationController::set_freq_beats(double beats)
        const ARDOUR::ParameterDescriptor& desc    = _controllable->desc();
        const ARDOUR::Session&             session = _controllable->session();
        const framepos_t                   pos     = session.transport_frame();
-       const ARDOUR::Tempo&               tempo   = session.tempo_map().tempo_at(pos);
+       const ARDOUR::Tempo&               tempo   = session.tempo_map().tempo_at_frame (pos);
        const double                       bpm     = tempo.beats_per_minute();
        const double                       bps     = bpm / 60.0;
        const double                       freq    = bps / beats;
-       _controllable->set_value(clamp(freq, desc.lower, desc.upper));
+       _controllable->set_value(clamp(freq, desc.lower, desc.upper), Controllable::NoGroup);
 }
 
 void
@@ -271,7 +273,7 @@ AutomationController::set_ratio(double ratio)
 {
        const ARDOUR::ParameterDescriptor& desc  = _controllable->desc();
        const double                       value = _controllable->get_value() * ratio;
-       _controllable->set_value(clamp(value, desc.lower, desc.upper));
+       _controllable->set_value(clamp(value, desc.lower, desc.upper), Controllable::NoGroup);
 }
 
 bool