summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/automation_line.cc10
-rw-r--r--gtk2_ardour/automation_line.h2
-rw-r--r--gtk2_ardour/editor_mouse.cc8
-rw-r--r--gtk2_ardour/route_time_axis.cc2
4 files changed, 14 insertions, 8 deletions
diff --git a/gtk2_ardour/automation_line.cc b/gtk2_ardour/automation_line.cc
index 77f9adb757..f396a92d82 100644
--- a/gtk2_ardour/automation_line.cc
+++ b/gtk2_ardour/automation_line.cc
@@ -764,7 +764,7 @@ AutomationLine::determine_visible_control_points (ALPoints& points)
}
string
-AutomationLine::get_verbose_cursor_string (float fraction)
+AutomationLine::get_verbose_cursor_string (double fraction)
{
char buf[32];
@@ -775,7 +775,11 @@ AutomationLine::get_verbose_cursor_string (float fraction)
snprintf (buf, sizeof (buf), "%.1fdB", coefficient_to_dB (slider_position_to_gain (fraction)));
}
} else {
- snprintf (buf, sizeof (buf), "%.2f", fraction);
+ view_to_model_y(fraction);
+ if (alist->parameter().type() == MidiCCAutomation)
+ snprintf (buf, sizeof (buf), "%d", (int)fraction);
+ else
+ snprintf (buf, sizeof (buf), "%.2f", fraction);
}
return buf;
@@ -1306,6 +1310,8 @@ AutomationLine::view_to_model_y (double& y)
y = 1.0 - y;
} else if (alist->parameter().type() == MidiCCAutomation) {
y = (int)(y * 127.0);
+ } else if (alist->parameter().type() == PluginAutomation) {
+ y = y * (double)(alist->get_max_y()- alist->get_min_y()) + alist->get_min_y();
}
}
diff --git a/gtk2_ardour/automation_line.h b/gtk2_ardour/automation_line.h
index 76653e7a59..3f01ae6cf9 100644
--- a/gtk2_ardour/automation_line.h
+++ b/gtk2_ardour/automation_line.h
@@ -146,7 +146,7 @@ class AutomationLine : public sigc::trackable, public PBD::StatefulThingWithGoin
void show_selection();
void hide_selection ();
- virtual string get_verbose_cursor_string (float);
+ virtual string get_verbose_cursor_string (double);
virtual void view_to_model_y (double&);
virtual void model_to_view_y (double&);
diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc
index d954c63e56..fe17b31abf 100644
--- a/gtk2_ardour/editor_mouse.cc
+++ b/gtk2_ardour/editor_mouse.cc
@@ -2374,7 +2374,7 @@ Editor::start_control_point_grab (ArdourCanvas::Item* item, GdkEvent* event)
control_point->line.start_drag (control_point, drag_info.grab_frame, 0);
- float fraction = 1.0 - ((control_point->get_y() - control_point->line.y_position()) / control_point->line.height());
+ double fraction = 1.0 - ((control_point->get_y() - control_point->line.y_position()) / (double)control_point->line.height());
set_verbose_canvas_cursor (control_point->line.get_verbose_cursor_string (fraction),
drag_info.current_pointer_x + 20, drag_info.current_pointer_y + 20);
@@ -2412,7 +2412,7 @@ Editor::control_point_drag_motion_callback (ArdourCanvas::Item* item, GdkEvent*
snap_to (cx_frames);
}
- float const fraction = 1.0 - ((cy - cp->line.y_position()) / cp->line.height());
+ const double fraction = 1.0 - ((cy - cp->line.y_position()) / (double)cp->line.height());
bool push;
@@ -2503,7 +2503,7 @@ Editor::start_line_grab (AutomationLine* line, GdkEvent* event)
start_grab (event, fader_cursor);
- double const fraction = 1.0 - ((cy - line->y_position()) / line->height());
+ const double fraction = 1.0 - ((cy - line->y_position()) / (double)line->height());
line->start_drag (0, drag_info.grab_frame, fraction);
@@ -2521,7 +2521,7 @@ Editor::line_drag_motion_callback (ArdourCanvas::Item* item, GdkEvent* event)
line->parent_group().w2i (cx, cy);
- double const fraction = 1.0 - ((cy - line->y_position()) / line->height());
+ const double fraction = 1.0 - ((cy - line->y_position()) / (double)line->height());
bool push;
diff --git a/gtk2_ardour/route_time_axis.cc b/gtk2_ardour/route_time_axis.cc
index 976a3e1667..caead7fdd1 100644
--- a/gtk2_ardour/route_time_axis.cc
+++ b/gtk2_ardour/route_time_axis.cc
@@ -1905,7 +1905,7 @@ RouteTimeAxisView::processor_menu_item_toggled (RouteTimeAxisView::ProcessorAuto
redraw = true;
}
- if (showit != pan->view->marked_for_display()) {
+ if (pan->view && showit != pan->view->marked_for_display()) {
if (showit) {
pan->view->set_marked_for_display (true);