diff options
author | Robin Gareus <robin@gareus.org> | 2013-03-12 22:00:09 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2013-03-13 20:28:15 +0100 |
commit | 0c3e840700a915fc1476cef73c591048f688f81e (patch) | |
tree | 3241845f899cfed86217db2f6f589740b2b9c04a /gtk2_ardour/editor.cc | |
parent | d91565093965b3405774acd878b3baf38839f4e4 (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.cc | 41 |
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 (); |