add crop plugin, add timeline bars, render setup err chks, minor tweaks
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / batchrender.h
index 4a81520babf3ba1180863a4f58671504ac31ae05..57309895827b3d42faef5d3c3b86d1cdf108a79f 100644 (file)
@@ -30,6 +30,7 @@
 #include "browsebutton.inc"
 #include "filexml.inc"
 #include "formattools.h"
+#include "indexable.inc"
 #include "keyframe.inc"
 #include "mwindow.inc"
 #include "preferences.inc"
@@ -55,14 +56,19 @@ public:
 class BatchRenderJob
 {
 public:
-       BatchRenderJob(Preferences *preferences, int labeled=0, int farmed=-1);
-       ~BatchRenderJob();
-
+       BatchRenderJob(const char *tag,
+               Preferences *preferences, int labeled, int farmed);
+       BatchRenderJob(Preferences *preferences, int labeled, int farmed);
+       BatchRenderJob(const char *tag);
+       virtual ~BatchRenderJob();
+       virtual BatchRenderJob *copy();
+       virtual void load(FileXML *file);
+       virtual void save(FileXML *file);
+       virtual int get_strategy();
+       virtual char *create_script(EDL *edl, ArrayList<Indexable *> *idxbls);
        void copy_from(BatchRenderJob *src);
-       void load(FileXML *file);
-       void save(FileXML *file);
-       int get_strategy();
 
+       const char *tag;
 // Source EDL to render
        char edl_path[BCTEXTLEN];
 // Destination file for output
@@ -75,22 +81,36 @@ public:
 };
 
 
+class BatchRenderWarnJob
+{
+public:
+       BatchRenderWarnJob() { no = 0; path = 0; }
+       ~BatchRenderWarnJob() { delete [] path; }
+       int no;
+       const char *path;
+};
 
-
-
-
-
+class BatchRenderWarnJobs : public ArrayList<BatchRenderWarnJob>
+{
+public:
+       BatchRenderWarnJobs() {}
+       ~BatchRenderWarnJobs() {}
+       void add(int no, const char *path) {
+               BatchRenderWarnJob &job = append();
+               job.no = no;  job.path = cstrdup(path);
+       }
+};
 
 class BatchRenderThread : public BC_DialogThread
 {
 public:
-       BatchRenderThread(MWindow *mwindow);
-       BatchRenderThread();
+       BatchRenderThread(MWindow *mwindow=0);
        ~BatchRenderThread();
        void handle_close_event(int result);
        BC_Window* new_gui();
 
        int test_edl_files();
+       int test_errmsg(BatchRenderWarnJobs &err_jobs, const char *msg, int *warn);
        void calculate_dest_paths(ArrayList<char*> *paths,
                Preferences *preferences);
        void reset(const char *path=0);
@@ -119,6 +139,7 @@ public:
        void update_active(int number);
        void update_done(int number, int create_list, double elapsed_time);
        void move_batch(int src, int dst);
+       void start(int do_farmed, int do_labeled);
        static void trap_hook(FILE *fp, void *vp);
 
        MWindow *mwindow;
@@ -135,6 +156,8 @@ public:
        static const char *column_titles[BATCHRENDER_COLUMNS];
        static int column_widths[BATCHRENDER_COLUMNS];
        int list_width[BATCHRENDER_COLUMNS];
+       int do_farmed;
+       int do_labeled;
 // job being edited
        int current_job;
 // job being rendered