X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fcwindow.C;h=7152f5a671206b40820044c6afe77d521063ca59;hb=a6369311556cc1e1877142181d8606e4f68aa803;hp=1b028302ab76fae9c0167aa97206608100c2c94e;hpb=235c9cc4df8306babbbfda46189108fe262d44ef;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/cwindow.C b/cinelerra-5.1/cinelerra/cwindow.C index 1b028302..7152f5a6 100644 --- a/cinelerra-5.1/cinelerra/cwindow.C +++ b/cinelerra-5.1/cinelerra/cwindow.C @@ -2,21 +2,21 @@ /* * CINELERRA * Copyright (C) 2008 Adam Williams - * + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * + * */ #include "autos.h" @@ -34,6 +34,7 @@ #include "keys.h" #include "edl.h" #include "edlsession.h" +#include "language.h" #include "localsession.h" #include "mainmenu.h" #include "mainsession.h" @@ -143,7 +144,7 @@ Track* CWindow::calculate_affected_track() return affected_track; } -Auto* CWindow::calculate_affected_auto(Autos *autos, +Auto* CWindow::calculate_affected_auto(Autos *autos, int create, int *created, int redraw) @@ -214,28 +215,26 @@ void CWindow::calculate_affected_autos(FloatAuto **x_auto, } } - - - +void CWindow::stop_playback(int wait) +{ + playback_engine->stop_playback(wait); +} void CWindow::run() { gui->run_window(); } -void CWindow::update(int position, - int overlays, - int tool_window, +void CWindow::update(int position, + int overlays, + int tool_window, int operation, int timebar) { if(position) { - playback_engine->que->send_command(CURRENT_FRAME, - CHANGE_NONE, - mwindow->edl, - 1); + refresh_frame(CHANGE_NONE); } gui->lock_window("CWindow::update 2"); @@ -266,15 +265,14 @@ void CWindow::update(int position, gui->timebar->update(1); } - if(!mwindow->edl->session->cwindow_scrollbars) - gui->zoom_panel->update(AUTO_ZOOM); - else - gui->zoom_panel->update(mwindow->edl->session->cwindow_zoom); + double zoom = !mwindow->edl->session->cwindow_scrollbars ? + 0 :mwindow->edl->session->cwindow_zoom; + gui->zoom_panel->update(zoom); gui->canvas->update_zoom(mwindow->edl->session->cwindow_xscroll, - mwindow->edl->session->cwindow_yscroll, + mwindow->edl->session->cwindow_yscroll, mwindow->edl->session->cwindow_zoom); - gui->canvas->reposition_window(mwindow->edl, + gui->canvas->reposition_window(mwindow->edl, mwindow->theme->ccanvas_x, mwindow->theme->ccanvas_y, mwindow->theme->ccanvas_w, @@ -295,7 +293,7 @@ int CWindow::update_position(double position) gui->unlock_window(); playback_engine->interrupt_playback(1); - + position = mwindow->edl->align_to_frame(position, 0); position = MAX(0, position); @@ -307,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) @@ -325,7 +331,7 @@ CWindowRemoteHandler:: int CWindowRemoteHandler::remote_process_key(RemoteControl *remote_control, int key) { MWindowGUI *mwindow_gui = remote_control->mwindow_gui; - EDL *edl = mwindow_gui->mwindow->edl; + EDL *edl = mwindow_gui->mwindow->edl; if( !edl ) return 0; PlayTransport *transport = mwindow_gui->mbuttons->transport; if( !transport->get_edl() ) return 0;