dynamic keyframes, textbox rework, andrea ffmpeg.opts, perpetual chkpt undo, lv2...
[goodguy/history.git] / cinelerra-5.1 / cinelerra / batchrender.C
index 9e45b3ec0a7e13054bee3c1c161fc471516ed1d0..e75c71093253ea7c219b7954d1c66b1fd53ded77 100644 (file)
@@ -58,7 +58,7 @@
 // Farmed is not present if not preferences->use_renderfarm
 int BatchRenderThread::column_widths[] = { 42, 42, 42, 222, 222, 150 };
 const char *BatchRenderThread::column_titles[] = {
-       _("Enabled"), _("Labeled"), _("Farmed"), _("Output"), _("EDL"), _("Elapsed")
+       N_("Enabled"), N_("Labeled"), N_("Farmed"), N_("Output"), N_("EDL"), N_("Elapsed")
 };
 
 BatchRenderMenuItem::BatchRenderMenuItem(MWindow *mwindow)
@@ -404,7 +404,9 @@ int BatchRenderThread::test_edl_files()
                                char *bfr = new char[sz+1];
                                int64_t len = fread(bfr, 1, sz+1, fp);
                                if( len == sz ) {
-                                       FileXML file;  file.set_shared_input(bfr, len);
+                                       FileXML file;
+                                       XMLBuffer data(bfr, len, 0);
+                                       file.set_shared_input(&data);
                                        EDL *edl = new EDL; edl->create_objects();
                                        edl->load_xml(&file, LOAD_ALL);
                                        double pos = edl->equivalent_output(mwindow->edl);
@@ -672,6 +674,8 @@ BatchRenderGUI::BatchRenderGUI(MWindow *mwindow,
 BatchRenderGUI::~BatchRenderGUI()
 {
        lock_window("BatchRenderGUI::~BatchRenderGUI");
+       loadlist_batch->stop();
+       savelist_batch->stop();
        delete format_tools;
        unlock_window();
 }
@@ -857,19 +861,19 @@ void BatchRenderGUI::create_list(int update_widget)
 
        const char **column_titles = BatchRenderThread::column_titles;
        list_columns = 0;
-       list_titles[list_columns] = column_titles[ENABLED_COL];
+       list_titles[list_columns] = _(column_titles[ENABLED_COL]);
        list_width[list_columns++] = thread->list_width[ENABLED_COL];
-       list_titles[list_columns] = column_titles[LABELED_COL];
+       list_titles[list_columns] = _(column_titles[LABELED_COL]);
        list_width[list_columns++] = thread->list_width[LABELED_COL];
        if( mwindow->preferences->use_renderfarm ) {
-               list_titles[list_columns] = column_titles[FARMED_COL];
+               list_titles[list_columns] = _(column_titles[FARMED_COL]);
                list_width[list_columns++] = thread->list_width[FARMED_COL];
        }
-       list_titles[list_columns] = column_titles[OUTPUT_COL];
+       list_titles[list_columns] = _(column_titles[OUTPUT_COL]);
        list_width[list_columns++] = thread->list_width[OUTPUT_COL];
-       list_titles[list_columns] = column_titles[EDL_COL];
+       list_titles[list_columns] = _(column_titles[EDL_COL]);
        list_width[list_columns++] = thread->list_width[EDL_COL];
-       list_titles[list_columns] = column_titles[ELAPSED_COL];
+       list_titles[list_columns] = _(column_titles[ELAPSED_COL]);
        list_width[list_columns++] = thread->list_width[ELAPSED_COL];
 
        for( int i = 0; i < thread->jobs.total; i++ ) {
@@ -996,16 +1000,17 @@ BatchRenderSaveList::BatchRenderSaveList(BatchRenderThread *thread, int x, int y
 }
 
 BatchRenderSaveList::~BatchRenderSaveList()
+{
+       stop();
+       delete startup_lock;
+}
+
+void BatchRenderSaveList::stop()
 {
        startup_lock->lock("BatchRenderSaveList::~BrowseButton");
-       if( gui ) {
-               gui->lock_window();
-               gui->set_done(1);
-               gui->unlock_window();
-       }
+       if( gui ) gui->set_done(1);
        startup_lock->unlock();
        Thread::join();
-       delete startup_lock;
 }
 
 int BatchRenderSaveList::handle_event()
@@ -1046,7 +1051,6 @@ void BatchRenderSaveList::run()
                thread->save_jobs(thread->batch_path);
        }
 
-       this->thread->gui->flush();
        startup_lock->lock("BatchRenderLoadList::run");
        gui = 0;
        startup_lock->unlock();
@@ -1072,16 +1076,17 @@ BatchRenderLoadList::BatchRenderLoadList(BatchRenderThread *thread,
 }
 
 BatchRenderLoadList::~BatchRenderLoadList()
+{
+       stop();
+       delete startup_lock;
+}
+
+void BatchRenderLoadList::stop()
 {
        startup_lock->lock("BatchRenderLoadList::~BrowseButton");
-       if( gui ) {
-               gui->lock_window();
-               gui->set_done(1);
-               gui->unlock_window();
-       }
+       if( gui ) gui->set_done(1);
        startup_lock->unlock();
        Thread::join();
-       delete startup_lock;
 }
 
 int BatchRenderLoadList::handle_event()
@@ -1125,7 +1130,6 @@ void BatchRenderLoadList::run()
                thread->gui->change_job();
        }
 
-       thread->gui->flush();
        startup_lock->lock("BatchRenderLoadList::run");
        gui = 0;
        startup_lock->unlock();
@@ -1240,6 +1244,7 @@ int BatchRenderList::drag_stop_event()
                        thread->move_batch(src, dst);
                }
                BC_ListBox::drag_stop_event();
+               dragging_item = 0;
        }
        return 0;
 }