/*
Copyright (C) 2007 Paul Davis
- Author: Dave Robillard
+ Author: David Robillard
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include "pbd/error.h"
-#include "ardour/automation_list.h"
-#include "ardour/automation_control.h"
-#include "ardour/event_type_map.h"
#include "ardour/automatable.h"
-#include "ardour/panner.h"
-#include "ardour/pan_controllable.h"
+#include "ardour/automation_control.h"
#include "ardour/session.h"
#include "ardour_ui.h"
const Evoral::Parameter& param,
boost::shared_ptr<AutomationControl> ac)
{
- Gtk::Adjustment* adjustment = manage (new Gtk::Adjustment (param.normal(), param.min(), param.max()));
+ Gtk::Adjustment* adjustment = manage (
+ new Gtk::Adjustment (
+ ac->internal_to_interface (param.normal()),
+ ac->internal_to_interface (param.min()),
+ ac->internal_to_interface (param.max()),
+ (param.max() - param.min()) / 100.0,
+ (param.max() - param.min()) / 10.0
+ )
+ );
+
assert (ac);
assert(ac->parameter() == param);
return boost::shared_ptr<AutomationController>(new AutomationController(printer, ac, adjustment));
void
AutomationController::display_effective_value()
{
- double const ui_value = _controllable->user_to_ui (_controllable->get_value());
+ double const interface_value = _controllable->internal_to_interface (_controllable->get_value());
- if (_adjustment->get_value() != ui_value) {
+ if (_adjustment->get_value () != interface_value) {
_ignore_change = true;
- _adjustment->set_value (ui_value);
+ _adjustment->set_value (interface_value);
_ignore_change = false;
}
}
AutomationController::value_adjusted ()
{
if (!_ignore_change) {
- _controllable->set_value (_controllable->ui_to_user (_adjustment->get_value()));
+ _controllable->set_value (_controllable->interface_to_internal (_adjustment->get_value()));
}
}
bool mark = false;
double when = 0;
-
+
if (_controllable->session().transport_rolling()) {
mark = true;
when = _controllable->session().transport_frame();
}
}
-void
-AutomationController::automation_state_changed ()
-{
- ENSURE_GUI_THREAD (*this, &AutomationController::automation_state_changed)
-
- bool x = (_controllable->automation_state() != Off);
-
- /* start watching automation so that things move */
-
- _screen_update_connection.disconnect();
-
- if (x) {
- _screen_update_connection = ARDOUR_UI::RapidScreenUpdate.connect (
- sigc::mem_fun (*this, &AutomationController::display_effective_value));
- }
-}
-
void
AutomationController::value_changed ()
{