int bw = lt + BC_DisplayInfo::get_right_border(); // borders
int bh = top + BC_DisplayInfo::get_bottom_border();
int zx = 0, zy = 0; // window origins
- int mw = 10+10, mh = 10+10; // canvas margins
+ int mw = xS(10+10), mh = yS(10+10); // canvas margins
int rsz = 0, n = 0, dz = 0;
int ow = edl->session->output_w, oh = edl->session->output_h;
for( int i=0; i<zwindows.size(); ++i ) {
int mx = x2 - zw, my = y2 - zh;
if( xx > mx ) xx = mx;
if( yy > my ) yy = my;
- xx += lt + dz; yy += top + dz;
+ xx += lt + xS(dz); yy += top + yS(dz);
zwindow->reposition(xx,yy, ww,hh);
if( zwindow->running() ) {
ZWindowGUI *gui = (ZWindowGUI *)zwindow->get_gui();
Asset *format_asset = new Asset;
format_asset->format = FILE_FFMPEG;
format_asset->load_defaults(defaults, "PROXY_", 1, 1, 0, 0, 0);
- ProxyRender proxy_render(this, format_asset);
int new_scale = edl->session->proxy_scale;
- int use_scaler = edl->session->proxy_use_scaler;
+ ProxyRender proxy_render(this, format_asset, new_scale);
for( int i=0; i<new_idxbls.size(); ++i ) {
Indexable *orig = new_idxbls.get(i);
// render needed proxies
int result = proxy_render.create_needed_proxies(new_scale);
if( !result ) {
- add_proxy(use_scaler,
- &proxy_render.orig_idxbls, &proxy_render.orig_proxies);
+ add_proxy(&proxy_render.orig_idxbls, &proxy_render.orig_proxies);
}
format_asset->remove_user();
return !result ? proxy_render.needed_proxies.size() : -1;
edl->Garbage::add_user();
save_backup();
undo_before(_("proxy"), this);
- ProxyRender proxy_render(this, asset);
+ int asset_scale = new_scale == 1 ? 0 :
+ !new_use_scaler ? 1 : new_scale;
+ ProxyRender proxy_render(this, asset, asset_scale);
// revert project to original size from current size
// remove all session proxy assets at the at the current proxy_scale
if(debug) printf("MWindow::create_objects %d total_time=%d\n", __LINE__, (int)timer.get_difference());
- plugin_guis = new ArrayList<PluginServer*>;
+ plugin_guis = new PluginGUIs(this);
dead_plugins = new ArrayList<PluginServer*>;
keyframe_threads = new ArrayList<KeyFrameThread*>;
}
-
-
-
void MWindow::show_plugin(Plugin *plugin)
{
int done = 0;
}
if(!got_it) plugin->show = 0;
-
plugin = (Plugin*)plugin->next;
}
}
int MWindow::plugin_gui_open(Plugin *plugin)
{
- int result = 0;
+ int gui_id = plugin->gui_id;
+ if( gui_id < 0 ) return 0;
plugin_gui_lock->lock("MWindow::plugin_gui_open");
- for(int i = 0; i < plugin_guis->total; i++)
- {
- if(plugin_guis->get(i)->plugin->identical_location(plugin))
- {
- result = 1;
- break;
- }
- }
+ PluginServer *plugin_server = plugin_guis->gui_server(gui_id);
+ int result = plugin_server ? 1 : 0;
plugin_gui_lock->unlock();
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");
- for(int i = 0; i < plugin_guis->total; i++)
- {
- if(plugin_guis->get(i)->plugin->identical_location(plugin))
- {
- plugin_guis->get(i)->render_gui(data);
- break;
- }
- }
+ PluginServer *plugin_server = plugin_guis->gui_server(gui_id);
+ if( plugin_server )
+ plugin_server->render_gui(data);
plugin_gui_lock->unlock();
}
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");
- for(int i = 0; i < plugin_guis->total; i++)
- {
- if(plugin_guis->get(i)->plugin->identical_location(plugin))
- {
- plugin_guis->get(i)->render_gui(data, size);
- break;
- }
- }
+ PluginServer *plugin_server = plugin_guis->gui_server(gui_id);
+ if( plugin_server )
+ plugin_server->render_gui(data, size);
plugin_gui_lock->unlock();
}