summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2013-03-12 22:00:09 +0100
committerRobin Gareus <robin@gareus.org>2013-03-13 20:28:15 +0100
commit0c3e840700a915fc1476cef73c591048f688f81e (patch)
tree3241845f899cfed86217db2f6f589740b2b9c04a /gtk2_ardour/editor.cc
parentd91565093965b3405774acd878b3baf38839f4e4 (diff)
videotimline
squashed 694 commits from http://gareus.org/gitweb/?p=ardour3.git
Diffstat (limited to 'gtk2_ardour/editor.cc')
-rw-r--r--gtk2_ardour/editor.cc41
1 files changed, 41 insertions, 0 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index 88d60a15cf..4f3390e752 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -246,6 +246,9 @@ Editor::Editor ()
, range_mark_label (_("Range Markers"))
, transport_mark_label (_("Loop/Punch Ranges"))
, cd_mark_label (_("CD Markers"))
+#ifdef WITH_VIDEOTIMELINE
+ , videotl_label (_("Video Timeline"))
+#endif
, edit_packer (4, 4, true)
/* the values here don't matter: layout widgets
@@ -437,6 +440,16 @@ Editor::Editor ()
cd_mark_label.hide();
cd_mark_label.set_no_show_all();
+#ifdef WITH_VIDEOTIMELINE
+ videotl_bar_height = 4;
+ videotl_label.set_name ("EditorRulerLabel");
+ videotl_label.set_size_request (-1, (int)timebar_height * videotl_bar_height);
+ videotl_label.set_alignment (1.0, 0.5);
+ videotl_label.set_padding (5,0);
+ videotl_label.hide();
+ videotl_label.set_no_show_all();
+#endif
+
range_mark_label.set_name ("EditorRulerLabel");
range_mark_label.set_size_request (-1, (int)timebar_height);
range_mark_label.set_alignment (1.0, 0.5);
@@ -4280,6 +4293,21 @@ Editor::set_frames_per_unit (double fpu)
instant_save ();
}
+#ifdef WITH_VIDEOTIMELINE
+void
+Editor::queue_visual_videotimeline_update ()
+{
+ /* TODO:
+ * pending_visual_change.add (VisualChange::VideoTimeline);
+ * or maybe even more specific: which videotimeline-image
+ * currently it calls update_video_timeline() to update
+ * _all outdated_ images on the video-timeline.
+ * see 'exposeimg()' in video_image_frame.cc
+ */
+ ensure_visual_change_idle_handler ();
+}
+#endif
+
void
Editor::ensure_visual_change_idle_handler ()
{
@@ -4329,9 +4357,17 @@ Editor::idle_visual_changer ()
current_bbt_points_begin, current_bbt_points_end);
update_tempo_based_rulers (current_bbt_points_begin, current_bbt_points_end);
}
+
+#ifdef WITH_VIDEOTIMELINE
+ if (p & VisualChange::ZoomLevel) {
+ update_video_timeline();
+ }
+#endif
+
if (p & VisualChange::TimeOrigin) {
set_horizontal_position (pending_visual_change.time_origin / frames_per_unit);
}
+
if (p & VisualChange::YOrigin) {
vertical_adjustment.set_value (pending_visual_change.y_origin);
}
@@ -4341,6 +4377,11 @@ Editor::idle_visual_changer ()
update_fixed_rulers ();
redisplay_tempo (true);
}
+#ifdef WITH_VIDEOTIMELINE
+ if (!(p & VisualChange::ZoomLevel)) {
+ update_video_timeline();
+ }
+#endif
_summary->set_overlays_dirty ();