MWindow::~MWindow()
{
run_lock->lock("MWindow::~MWindow");
+ stop_playback(1);
in_destructor = 1;
//printf("MWindow::~MWindow %d\n", __LINE__);
gui->stop_drawing();
void MWindow::restart_brender()
{
//printf("MWindow::restart_brender 1\n");
- if(!brender_active || !preferences->use_brender) return;
- if(brender) brender->restart(edl);
+ if( !brender_active || !preferences->use_brender ) return;
+ if( !brender ) return;
+ int locked = gui->get_window_lock();
+ if( locked ) gui->unlock_window();
+ brender->restart(edl);
+ if( locked ) gui->lock_window("MWindow::restart_brender");
}
void MWindow::stop_brender()
{
- if(brender) brender->stop();
+ if( !brender ) return;
+ int locked = gui->get_window_lock();
+ if( locked ) gui->unlock_window();
+ brender->stop();
+ if( locked ) gui->lock_window("MWindow::stop_brender");
}
int MWindow::brender_available(int position)
{
int result = 0;
brender_lock->lock("MWindow::brender_available 1");
- if(brender)
+ if(brender && brender_active)
{
if(brender->map_valid)
{
}
restart_brender();
}
- else
+ else {
+ edl->session->brender_start = edl->session->brender_end = 0;
stop_brender();
+ }
if( update ) {
gui->update_timebar(0);
gui->draw_overlays(1);
int locked = gui->get_window_lock();
if( locked ) gui->unlock_window();
- cwindow->playback_engine->que->send_command(STOP,
- CHANGE_NONE,
- 0,
- 0);
- cwindow->playback_engine->interrupt_playback(wait);
+ cwindow->playback_engine->stop_playback();
for(int i = 0; i < vwindows.size(); i++) {
VWindow *vwindow = vwindows[i];
if( !vwindow->is_running() ) continue;
- vwindow->playback_engine->que->send_command(STOP, CHANGE_NONE, 0, 0);
- vwindow->playback_engine->interrupt_playback(wait);
+ vwindow->playback_engine->stop_playback();
}
if( locked ) gui->lock_window("MWindow::stop_playback");
}
if(update_filename)
set_filename(new_edl->local_session->clip_title);
}
+ else
+ if( load_mode == LOADMODE_RESOURCESONLY ) {
+ strcpy(new_edl->local_session->clip_title,
+ filenames->get(i));
+ struct stat st;
+ time_t t = !stat(filenames->get(i),&st) ?
+ st.st_mtime : time(&t);
+ ctime_r(&t, new_edl->local_session->clip_notes);
+ }
}
new_edls.append(new_edl);
if(debug) printf("MWindow::load_filenames %d\n", __LINE__);
- if(!result) gui->statusbar->default_message();
-
-
-
-
-
+ if(!result) {
+ gui->reset_default_message();
+ gui->default_message();
+ }
if(debug) printf("MWindow::load_filenames %d\n", __LINE__);
}
if(debug) printf("MWindow::load_filenames %d\n", __LINE__);
- if(new_assets.size())
+ for(int i = 0; i < new_assets.size(); i++)
{
- for(int i = 0; i < new_assets.size(); i++)
- {
- Asset *new_asset = new_assets[i];
+ Asset *new_asset = new_assets[i];
- File *new_file = 0;
- int got_it = 0;
- for(int j = 0; j < new_files.size(); j++)
+ File *new_file = 0;
+ int got_it = 0;
+ for(int j = 0; j < new_files.size(); j++)
+ {
+ new_file = new_files[j];
+ if(!strcmp(new_file->asset->path,
+ new_asset->path))
{
- new_file = new_files[j];
- if(!strcmp(new_file->asset->path,
- new_asset->path))
- {
- got_it = 1;
- break;
- }
+ got_it = 1;
+ break;
}
-
- mainindexes->add_next_asset(got_it ? new_file : 0, new_asset);
- got_indexes = 1;
- edl->assets->update(new_asset);
-
}
-
+ mainindexes->add_next_asset(got_it ? new_file : 0, new_asset);
+ got_indexes = 1;
+ edl->assets->update(new_asset);
}
if(debug) printf("MWindow::load_filenames %d\n", __LINE__);
index_state->index_status = INDEX_NOTTESTED;
if( indexable->is_asset ) {
Asset *asset = (Asset *)indexable;
- if( asset->format != FILE_PCM )
+ if( asset->format != FILE_PCM ) {
+ asset->format = FILE_UNKNOWN;
asset->reset_audio();
+ }
asset->reset_video();
+// File file; // re-probe the asset
+// file.open_file(preferences, asset, 1, 0);
}
mainindexes->add_next_asset(0, indexable);
}