summaryrefslogtreecommitdiff
path: root/gtk2_ardour/time_axis_view.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/time_axis_view.cc')
-rw-r--r--gtk2_ardour/time_axis_view.cc52
1 files changed, 38 insertions, 14 deletions
diff --git a/gtk2_ardour/time_axis_view.cc b/gtk2_ardour/time_axis_view.cc
index cb335882e2..e5205069a3 100644
--- a/gtk2_ardour/time_axis_view.cc
+++ b/gtk2_ardour/time_axis_view.cc
@@ -183,6 +183,10 @@ TimeAxisView::~TimeAxisView()
delete (*i)->end_trim;
}
+ for (list<SimpleLine*>::iterator i = feature_lines.begin(); i != feature_lines.end(); ++i) {
+ delete (*i);
+ }
+
if (selection_group) {
delete selection_group;
selection_group = 0;
@@ -637,6 +641,14 @@ TimeAxisView::set_samples_per_unit (double spu)
for (Children::iterator i = children.begin(); i != children.end(); ++i) {
(*i)->set_samples_per_unit (spu);
}
+
+ AnalysisFeatureList::const_iterator i;
+ list<ArdourCanvas::SimpleLine*>::iterator l;
+
+ for (i = analysis_features.begin(), l = feature_lines.begin(); i != analysis_features.end() && l != feature_lines.end(); ++i, ++l) {
+ (*l)->property_x1() = editor.frame_to_pixel (*i);
+ (*l)->property_x2() = editor.frame_to_pixel (*i);
+ }
}
void
@@ -1166,35 +1178,47 @@ TimeAxisView::covers_y_position (double y)
}
void
-TimeAxisView::show_temporary_lines (const AnalysisFeatureList& pos)
+TimeAxisView::show_feature_lines (const AnalysisFeatureList& pos)
{
- while (temp_lines.size()< pos.size()) {
+ analysis_features = pos;
+ reshow_feature_lines ();
+}
+
+
+void
+TimeAxisView::hide_feature_lines ()
+{
+ list<ArdourCanvas::SimpleLine*>::iterator l;
+
+ for (l = feature_lines.begin(); l != feature_lines.end(); ++l) {
+ (*l)->hide();
+ }
+}
+
+void
+TimeAxisView::reshow_feature_lines ()
+{
+ while (feature_lines.size()< analysis_features.size()) {
ArdourCanvas::SimpleLine* l = new ArdourCanvas::SimpleLine (*canvas_display);
l->property_color_rgba() = (guint) ARDOUR_UI::config()->canvasvar_ZeroLine.get();
l->property_y1() = 0;
l->property_y2() = height;
- temp_lines.push_back (l);
+ feature_lines.push_back (l);
}
- while (temp_lines.size() > pos.size()) {
- ArdourCanvas::SimpleLine *line = temp_lines.back();
- temp_lines.pop_back ();
+ while (feature_lines.size() > analysis_features.size()) {
+ ArdourCanvas::SimpleLine *line = feature_lines.back();
+ feature_lines.pop_back ();
delete line;
}
AnalysisFeatureList::const_iterator i;
list<ArdourCanvas::SimpleLine*>::iterator l;
- for (i = pos.begin(), l = temp_lines.begin(); i != pos.end() && l != temp_lines.end(); ++i, ++l) {
+ for (i = analysis_features.begin(), l = feature_lines.begin(); i != analysis_features.end() && l != feature_lines.end(); ++i, ++l) {
(*l)->property_x1() = editor.frame_to_pixel (*i);
(*l)->property_x2() = editor.frame_to_pixel (*i);
+ (*l)->show ();
}
}
-void
-TimeAxisView::hide_temporary_lines ()
-{
- for (list<ArdourCanvas::SimpleLine*>::iterator l = temp_lines.begin(); l != temp_lines.end(); ++l) {
- (*l)->hide ();
- }
-}