X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Frecord.C;h=719c8869f9fb04e6198ea7d4007dbafad726d5c2;hb=a0cf574cd7814600dc5730b8204b51cb91f8ad12;hp=1c9f6ecd1376e80e6b14c54effa3f427ea982ce9;hpb=21c2e6b36d6a96c2f662a89459d607b5a387f4eb;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/record.C b/cinelerra-5.1/cinelerra/record.C index 1c9f6ecd..719c8869 100644 --- a/cinelerra-5.1/cinelerra/record.C +++ b/cinelerra-5.1/cinelerra/record.C @@ -163,7 +163,7 @@ Record::Record(MWindow *mwindow, RecordMenuItem *menu_item) Record::~Record() { mwindow->gui->record = 0; - stop(); join(); + stop(); delete blink_status; delete cutads_status; stop_skimming(); @@ -369,7 +369,7 @@ void Record::run() if( channel ) video_stream = channel->video_stream; } - stop(); + stop(0); edl->Garbage::remove_user(); if( mwindow->gui->remote_control->deactivate() ) @@ -402,8 +402,9 @@ void Record::run() // For pasting, clear the active region if(load_mode == LOADMODE_PASTE) mwindow->clear(0); - - mwindow->paste_edls(&new_edls, load_mode, 0, -1, + int loadmode = load_mode == LOADMODE_RESOURCESONLY ? + LOADMODE_ASSETSONLY : load_mode; + mwindow->paste_edls(&new_edls, loadmode, 0, -1, SESSION->labels_follow_edits, SESSION->plugins_follow_edits, SESSION->autos_follow_edits, @@ -433,9 +434,12 @@ void Record::run() default_asset->Garbage::remove_user(); } -void Record::stop() +void Record::stop(int wait) { stop_operation(); + if( wait && running() ) + record_gui->set_done(1); + join(); window_lock->lock("Record::stop"); delete record_thread; record_thread = 0; delete record_monitor; record_monitor = 0; @@ -588,7 +592,6 @@ void Record::start() window_lock->unlock(); } else { - stop(); join(); init_lock->reset(); Thread::start(); }