cposer/viewer btn1/2/3 fwd/rev/frm playback, misc fixes, leaks, cleanup
[goodguy/history.git] / cinelerra-5.1 / cinelerra / cwindow.C
index 176bf3c425b5cfc6e9de8ac1019fc6b6973185a0..7152f5a671206b40820044c6afe77d521063ca59 100644 (file)
@@ -215,12 +215,9 @@ void CWindow::calculate_affected_autos(FloatAuto **x_auto,
        }
 }
 
-void CWindow::stop_playback()
+void CWindow::stop_playback(int wait)
 {
-       int locked = gui->get_window_lock();
-       if( locked ) gui->unlock_window();
-       playback_engine->interrupt_playback(1);
-       if( locked ) gui->lock_window("CWindow::stop_playback");
+       playback_engine->stop_playback(wait);
 }
 
 void CWindow::run()
@@ -237,11 +234,7 @@ void CWindow::update(int position,
 
        if(position)
        {
-               mwindow->queue_mixers(mwindow->edl, CURRENT_FRAME,1,0,1,0);
-               playback_engine->que->send_command(CURRENT_FRAME,
-                       CHANGE_NONE,
-                       mwindow->edl,
-                       1);
+               refresh_frame(CHANGE_NONE);
        }
 
        gui->lock_window("CWindow::update 2");
@@ -312,8 +305,16 @@ int CWindow::update_position(double position)
        return 1;
 }
 
+void CWindow::refresh_frame(int change_type, EDL *edl)
+{
+       mwindow->refresh_mixers();
+       playback_engine->refresh_frame(change_type, edl);
+}
 
-
+void CWindow::refresh_frame(int change_type)
+{
+       refresh_frame(change_type, mwindow->edl);
+}
 
 CWindowRemoteHandler::
 CWindowRemoteHandler(RemoteControl *remote_control)