void MWindow::close_mixers(int destroy)
{
+ ArrayList<ZWindow*> closed;
zwindows_lock->lock("MWindow::close_mixers");
for( int i=zwindows.size(); --i>=0; ) {
ZWindow *zwindow = zwindows[i];
zgui->lock_window("MWindow::select_zwindow 0");
zgui->set_done(0);
zgui->unlock_window();
+ closed.append(zwindow);
}
zwindows_lock->unlock();
- for( int i=0; i<zwindows.size(); ++i ) {
- ZWindow *zwindow = zwindows[i];
- if( zwindow->idx < 0 ) continue;
- zwindow->close_window();
+ for( int i=0; i<closed.size(); ++i ) {
+ ZWindow *zwindow = closed[i];
+ zwindow->join();
}
}
void MWindow::init_gui()
{
gui = new MWindowGUI(this);
- gui->lock_window("MWindow::init_gui");
gui->create_objects();
- gui->unlock_window();
gui->load_defaults(defaults);
}
edl->session->proxy_auto_scale = 0;
edl->session->proxy_beep = 0;
edl->local_session->preview_start = 0;
- edl->local_session->preview_end = 0;
+ edl->local_session->preview_end = -1;
edl->local_session->loop_playback = 0;
edl->local_session->set_selectionstart(0);
edl->local_session->set_selectionend(0);
if( edl->session->proxy_scale == 1 &&
edl->session->proxy_disabled_scale != 1 ) {
int new_scale = edl->session->proxy_disabled_scale;
+ int new_use_scaler = edl->session->proxy_use_scaler;
edl->session->proxy_disabled_scale = 1;
Asset *asset = new Asset;
asset->format = FILE_FFMPEG;
asset->load_defaults(defaults, "PROXY_", 1, 1, 0, 0, 0);
- ret = to_proxy(asset, new_scale);
+ ret = to_proxy(asset, new_scale, new_use_scaler);
asset->remove_user();
if( ret > 0 )
beep(2000., 1.5, 0.5);
{
if( edl->session->proxy_scale != 1 &&
edl->session->proxy_disabled_scale == 1 ) {
+ int new_scale = 1;
+ int new_use_scaler = edl->session->proxy_use_scaler;
edl->session->proxy_disabled_scale = edl->session->proxy_scale;
Asset *asset = new Asset;
asset->format = FILE_FFMPEG;
asset->load_defaults(defaults, "PROXY_", 1, 1, 0, 0, 0);
- to_proxy(asset, 1);
+ to_proxy(asset, new_scale, new_use_scaler);
asset->remove_user();
}
return 1;
}
-int MWindow::to_proxy(Asset *asset, int new_scale)
+int MWindow::to_proxy(Asset *asset, int new_scale, int new_use_scaler)
{
ArrayList<Indexable*> orig_idxbls;
ArrayList<Indexable*> proxy_assets;
// revert project to original size from current size
// remove all session proxy assets at the at the current proxy_scale
int proxy_scale = edl->session->proxy_scale;
- int proxy_use_scaler = edl->session->proxy_use_scaler;
if( proxy_scale > 1 ) {
Asset *orig_asset = edl->assets->first;
result = proxy_render.create_needed_proxies(new_scale);
if( !result ) // resize project
- edl->set_proxy(new_scale, proxy_use_scaler,
+ edl->set_proxy(new_scale, new_use_scaler,
&proxy_render.orig_idxbls, &proxy_render.orig_proxies);
undo->update_undo_after(_("proxy"), LOAD_ALL);
check_language();
init_preferences();
if(splash_window)
- splash_window->operation->update(_("Initializing Plugins"));
+ splash_window->update_status(_("Initializing Plugins"));
init_plugins(this, preferences);
if(debug) PRINT_TRACE
init_ladspa_plugins(this, preferences);
if(debug) PRINT_TRACE
init_plugin_tips(*plugindb, cin_lang);
if(splash_window)
- splash_window->operation->update(_("Initializing GUI"));
+ splash_window->update_status(_("Initializing GUI"));
if(debug) PRINT_TRACE
init_theme();
init_error();
if(splash_window)
- splash_window->operation->update(_("Initializing Fonts"));
+ splash_window->update_status(_("Initializing Fonts"));
char string[BCTEXTLEN];
strcpy(string, preferences->plugin_dir);
strcat(string, "/" FONT_SEARCHPATH);