improve delays created by vicon drawing locks, reset_cache segv fix, gang track toolt...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / vwindowgui.C
index eb42c679f72f339c3bdcf60730eda2c5140c6849..1217633f0cdb4fd9a0896c15a97e07a1292094ed 100644 (file)
@@ -557,7 +557,9 @@ VWindowEditing::VWindowEditing(MWindow *mwindow, VWindow *vwindow)
                0, // use_cut
                0, // use_commerical
                0, // use_goto
-               1) // use_clk2play
+               1, // use_clk2play
+               1, // use_scope
+               0) // use_gang_tracks
 {
        this->mwindow = mwindow;
        this->vwindow = vwindow;
@@ -702,6 +704,7 @@ void VWindowEditing::panel_set_editing_mode(int mode) {}
 void VWindowEditing::panel_set_auto_keyframes(int v) {}
 void VWindowEditing::panel_set_span_keyframes(int v) {}
 void VWindowEditing::panel_set_labels_follow_edits(int v) {}
+void VWindowEditing::panel_set_gang_tracks(int v) {}
 
 
 VWindowSource::VWindowSource(MWindow *mwindow, VWindowGUI *vwindow, int x, int y)
@@ -826,6 +829,32 @@ void VWindowCanvas::close_source()
        gui->vwindow->delete_source(1, 1);
 }
 
+int VWindowCanvas::scope_on()
+{
+       EditPanelScopeDialog *scope_dialog = gui->edit_panel->scope_dialog;
+       if( !scope_dialog || !scope_dialog->scope_gui ) return 0;
+       if( scope_dialog->scope_gui->use_refresh ) return 0;
+       if( scope_dialog->scope_gui->use_release ) return 0;
+       return scope_dialog->running();
+}
+
+void VWindowCanvas::draw_scope(VFrame *output, int refresh)
+{
+       if( !output ) return;
+       EditPanelScopeDialog *scope_dialog = gui->edit_panel->scope_dialog;
+       if( !scope_dialog || !scope_dialog->scope_gui ) return;
+       if( scope_dialog->scope_gui->use_refresh && !refresh ) return;
+       if( scope_dialog->scope_gui->use_release && refresh >= 0 ) return;
+       scope_dialog->process(output);
+}
+
+int VWindowCanvas::button_release_event()
+{
+       BC_WindowBase *window = get_canvas();
+       if( window && !window->get_video_on() )
+               draw_scope(refresh_frame, -1);
+       return Canvas::button_release_event();
+}
 
 void VWindowCanvas::draw_refresh(int flush)
 {