vicon_audio = 0;
vicon_drawing = 1;
displayed_folder = AW_NO_FOLDER;
+ folder_lock = new Mutex("AWindowGUI::folder_lock");
}
AWindowGUI::~AWindowGUI()
delete vtransition_vframe; delete vtransition_icon;
delete aeffect_vframe; delete aeffect_icon;
delete veffect_vframe; delete veffect_icon;
+ delete folder_lock;
}
bool AWindowGUI::protected_pixmap(BC_Pixmap *icon)
plugin_icon(ladspa_vframe, ladspa_icon, "lad_picon", lad_picon_png);
plugin_icon(ff_aud_vframe, ff_aud_icon, "ff_audio", ff_audio_png);
plugin_icon(ff_vid_vframe, ff_vid_icon, "ff_video", ff_video_png);
-
+ folder_lock->lock("AWindowGUI::create_objects");
// Mandatory folders
folders.append(new AssetPicon(mwindow, this, AW_AEFFECT_FOLDER, 1));
folders.append(new AssetPicon(mwindow, this, AW_VEFFECT_FOLDER, 1));
folders.append(new AssetPicon(mwindow, this, AW_MEDIA_FOLDER, 1));
create_label_folder();
+ folder_lock->unlock();
mwindow->theme->get_awindow_sizes(this);
load_defaults(mwindow->defaults);
void AWindowGUI::sort_assets(int use_mtime)
{
+ folder_lock->lock("AWindowGUI::sort_assets");
switch( mwindow->edl->session->awindow_folder ) {
case AW_AEFFECT_FOLDER:
sort_picons(&aeffects);
break;
default:
sort_picons(&assets, use_mtime);
+ break;
}
// reset xyposition
asset_list->update_format(asset_list->get_format(), 0);
+ folder_lock->unlock();
update_assets();
}
void AWindowGUI::sort_folders()
{
+ folder_lock->lock("AWindowGUI::update_assets");
sort_picons(&folders);
folder_list->update_format(folder_list->get_format(), 0);
+ folder_lock->unlock();
update_assets();
}
void AWindowGUI::update_assets()
{
stop_vicon_drawing();
+ folder_lock->lock("AWindowGUI::update_assets");
update_folder_list();
update_asset_list();
labellist.remove_all_objects();
if( displayed_folder != mwindow->edl->session->awindow_folder )
search_text->clear();
filter_displayed_assets();
+ folder_lock->unlock();
if( mwindow->edl->session->folderlist_format != folder_list->get_format() ) {
folder_list->update_format(mwindow->edl->session->folderlist_format, 0);