#include "asset.h"
#include "assets.h"
+#include "bcsignals.h"
#include "clip.h"
#include "clipedit.h"
#include "bchash.h"
void VWindow::delete_source(int do_main_edl, int update_gui)
{
+//printf("VWindow::delete_source %d %d %p %p\n", __LINE__, gui->get_window_lock(), edl, indexable);
if(do_main_edl) mwindow->edl->remove_vwindow_edl(get_edl());
-
if(edl)
{
-//printf("VWindow::delete_source %d %p\n", __LINE__, edl);
edl->Garbage::remove_user();
//printf("VWindow::delete_source %d\n", __LINE__);
edl = 0;
//printf("VWindow::delete_source %d\n", __LINE__);
if(indexable) indexable->Garbage::remove_user();
-//printf("VWindow::delete_source %d\n", __LINE__);
indexable = 0;
if(update_gui) gui->change_source(0, _("Viewer"));
+//printf("VWindow::delete_source %d\n", __LINE__);
}
}
-void VWindow::handle_close_event(int result)
+void VWindow::handle_done_event(int result)
{
+ playback_engine->interrupt_playback(1);
delete_source(1, 0);
- delete playback_engine;
- delete playback_cursor;
- delete clip_edit;
- playback_engine = 0;
- playback_cursor = 0;
- clip_edit = 0;
if( mwindow->in_destructor ) return;
int total = 0;
for(int i = 0; i < mwindow->vwindows.size(); i++)
{
-//printf("VWindow::handle_close_event %d %d\n", __LINE__, mwindow->vwindows.get(i)->is_running());
+//printf("VWindow::handle_done_event %d %d\n", __LINE__, mwindow->vwindows.get(i)->is_running());
if(mwindow->vwindows.get(i)->is_running()) total++;
}
// subtract ourselves