X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fcwindow.C;h=3a65150df6c586664a0ce807ec5afd63c4edb3e0;hb=a4387a272874bd4ed9f010684976f336fa3d0190;hp=176bf3c425b5cfc6e9de8ac1019fc6b6973185a0;hpb=3f6a262cfe390b3f8b275297d64565a5b6272969;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/cwindow.C b/cinelerra-5.1/cinelerra/cwindow.C index 176bf3c4..3a65150d 100644 --- a/cinelerra-5.1/cinelerra/cwindow.C +++ b/cinelerra-5.1/cinelerra/cwindow.C @@ -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() @@ -228,49 +225,28 @@ void CWindow::run() gui->run_window(); } -void CWindow::update(int position, - int overlays, - int tool_window, - int operation, - int timebar) +void CWindow::update(int dir, int overlays, int tool_window, int operation, int timebar) { - 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); - } + if(dir) + refresh_frame(CHANGE_NONE, dir); gui->lock_window("CWindow::update 2"); - - // Create tool window if(operation) - { gui->set_operation(mwindow->edl->session->cwindow_operation); - } - // Updated by video device. - if(overlays && !position) - { + if(overlays && !dir) gui->canvas->draw_refresh(); - } // Update tool parameters // Never updated by someone else - if(tool_window || position) - { + if(tool_window || dir) gui->update_tool(); - } if(timebar) - { gui->timebar->update(1); - } double zoom = !mwindow->edl->session->cwindow_scrollbars ? 0 :mwindow->edl->session->cwindow_zoom; @@ -312,8 +288,16 @@ int CWindow::update_position(double position) return 1; } +void CWindow::refresh_frame(int change_type, EDL *edl, int dir) +{ + mwindow->refresh_mixers(dir); + playback_engine->refresh_frame(change_type, edl, dir); +} - +void CWindow::refresh_frame(int change_type, int dir) +{ + refresh_frame(change_type, mwindow->edl, dir); +} CWindowRemoteHandler:: CWindowRemoteHandler(RemoteControl *remote_control)