X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmwindow.C;h=d932f67975b964e973649297ba46f0c0988f7ea3;hb=d17640d4122d028eee849d9fedf8ba35f7f0f6e0;hp=03e265e6b75525023afea2276c49852e1ce2c89d;hpb=83c58d6d78f6bf0d1d1fd4cfba8654906fe6ec29;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/mwindow.C b/cinelerra-5.1/cinelerra/mwindow.C index 03e265e6..d932f679 100644 --- a/cinelerra-5.1/cinelerra/mwindow.C +++ b/cinelerra-5.1/cinelerra/mwindow.C @@ -3446,6 +3446,20 @@ void MWindow::update_plugin_guis(int do_keyframe_guis) if(do_keyframe_guis) update_keyframe_guis(); } +void MWindow::stop_plugin_guis() +{ +// Send new configuration to plugin GUI's + plugin_gui_lock->lock("MWindow::stop_plugin_guis"); + + for( int i=0; isize(); ++i ) { + PluginServer *ptr = plugin_guis->get(i); + if( edl->tracks->plugin_exists(ptr->plugin) ) { + ptr->render_stop(); + } + } + plugin_gui_lock->unlock(); +} + int MWindow::plugin_gui_open(Plugin *plugin) { int gui_id = plugin->gui_id; @@ -3457,11 +3471,12 @@ int MWindow::plugin_gui_open(Plugin *plugin) return result; } + void MWindow::render_plugin_gui(void *data, Plugin *plugin) { int gui_id = plugin->gui_id; if( gui_id < 0 ) return; - plugin_gui_lock->lock("MWindow::render_plugin_gui"); + plugin_gui_lock->lock("MWindow::render_plugin_gui 0"); PluginServer *plugin_server = plugin_guis->gui_server(gui_id); if( plugin_server ) plugin_server->render_gui(data); @@ -3472,13 +3487,44 @@ void MWindow::render_plugin_gui(void *data, int size, Plugin *plugin) { int gui_id = plugin->gui_id; if( gui_id < 0 ) return; - plugin_gui_lock->lock("MWindow::render_plugin_gui"); + plugin_gui_lock->lock("MWindow::render_plugin_gui 1"); PluginServer *plugin_server = plugin_guis->gui_server(gui_id); if( plugin_server ) plugin_server->render_gui(data, size); plugin_gui_lock->unlock(); } +void MWindow::reset_plugin_gui_frames(Plugin *plugin) +{ + int gui_id = plugin->gui_id; + if( gui_id < 0 ) return; + plugin_gui_lock->lock("MWindow::reset_plugin_gui_frames"); + PluginServer *plugin_server = plugin_guis->gui_server(gui_id); + if( plugin_server ) + plugin_server->reset_plugin_gui_frames(); + plugin_gui_lock->unlock(); +} + +void MWindow::render_plugin_gui_frames(PluginClientFrames *frames, Plugin *plugin) +{ + int gui_id = plugin->gui_id; + if( gui_id < 0 ) return; + plugin_gui_lock->lock("MWindow::render_plugin_gui_frames"); + PluginServer *plugin_server = plugin_guis->gui_server(gui_id); + if( plugin_server ) + plugin_server->render_plugin_gui_frames(frames); + plugin_gui_lock->unlock(); +} + +double MWindow::get_tracking_position() +{ + return edl->local_session->get_selectionstart(1); +} + +int MWindow::get_tracking_direction() +{ + return cwindow->playback_engine->get_direction(); +} void MWindow::update_plugin_states() {