#include "render.inc"
#include "timeentry.h"
-#define BATCHRENDER_COLUMNS 4
-
-
-
+enum {
+ ENABLED_COL, LABELED_COL, FARMED_COL,
+ OUTPUT_COL, EDL_COL, ELAPSED_COL,
+ BATCHRENDER_COLUMNS
+};
class BatchRenderMenuItem : public BC_MenuItem
{
class BatchRenderJob
{
public:
- BatchRenderJob(Preferences *preferences);
+ BatchRenderJob(Preferences *preferences, int labeled=0, int farmed=-1);
~BatchRenderJob();
void copy_from(BatchRenderJob *src);
void load(FileXML *file);
void save(FileXML *file);
- void fix_strategy();
+ int get_strategy();
// Source EDL to render
char edl_path[BCTEXTLEN];
// Destination file for output
Asset *asset;
- int strategy;
+ int labeled, farmed;
int enabled;
// Amount of time elapsed in last render operation
double elapsed;
int test_edl_files();
void calculate_dest_paths(ArrayList<char*> *paths,
Preferences *preferences);
-
+ void reset(const char *path=0);
// Load batch rendering jobs
void load_jobs(char *path, Preferences *preferences);
// Not applicable to western civilizations
- void save_jobs(char *path);
+ void save_jobs(char *path=0);
void load_defaults(BC_Hash *defaults);
void save_defaults(BC_Hash *defaults);
// Create path for persistent storage functions
void update_active(int number);
void update_done(int number, int create_list, double elapsed_time);
void move_batch(int src, int dst);
+ static void trap_hook(FILE *fp, void *vp);
MWindow *mwindow;
+ char batch_path[BCTEXTLEN];
double current_start;
double current_end;
BatchRenderJob *default_job;
Preferences *preferences;
Render *render;
BatchRenderGUI *gui;
- int column_width[BATCHRENDER_COLUMNS];
+
+ static const char *column_titles[BATCHRENDER_COLUMNS];
+ static int column_widths[BATCHRENDER_COLUMNS];
+ int list_width[BATCHRENDER_COLUMNS];
// job being edited
int current_job;
// job being rendered
int rendering_job;
int is_rendering;
- ArrayList<BC_ListBoxItem*> *file_entries;
+ int warn;
};
-
-
-
-
-
-
-
class BatchRenderEDLPath : public BC_TextBox
{
public:
- BatchRenderEDLPath(BatchRenderThread *thread,
- int x,
- int y,
- int w,
+ BatchRenderEDLPath(BatchRenderThread *thread, int x, int y, int w,
char *text);
int handle_event();
BatchRenderThread *thread;
class BatchRenderCurrentEDL : public BC_GenericButton
{
public:
- BatchRenderCurrentEDL(BatchRenderThread *thread,
- int x,
- int y);
+ BatchRenderCurrentEDL(BatchRenderThread *thread, int x, int y);
int handle_event();
BatchRenderThread *thread;
};
class BatchRenderUpdateEDL : public BC_GenericButton
{
public:
- BatchRenderUpdateEDL(BatchRenderThread *thread,
- int x,
- int y);
+ BatchRenderUpdateEDL(BatchRenderThread *thread, int x, int y);
int handle_event();
BatchRenderThread *thread;
};
class BatchRenderNew : public BC_GenericButton
{
public:
- BatchRenderNew(BatchRenderThread *thread,
- int x,
- int y);
+ BatchRenderNew(BatchRenderThread *thread, int x, int y);
int handle_event();
BatchRenderThread *thread;
};
class BatchRenderDelete : public BC_GenericButton
{
public:
- BatchRenderDelete(BatchRenderThread *thread,
- int x,
- int y);
+ BatchRenderDelete(BatchRenderThread *thread, int x, int y);
int handle_event();
BatchRenderThread *thread;
};
class BatchRenderSaveList : public BC_GenericButton, public Thread
{
public:
- BatchRenderSaveList(BatchRenderThread *thread,
- int x,
- int y);
+ BatchRenderSaveList(BatchRenderThread *thread, int x, int y);
~BatchRenderSaveList();
int handle_event();
BatchRenderThread *thread;
BC_FileBox *gui;
void run();
+ void stop();
virtual int keypress_event();
Mutex *startup_lock;
};
class BatchRenderLoadList : public BC_GenericButton, public Thread
{
public:
- BatchRenderLoadList(BatchRenderThread *thread,
- int x,
- int y);
+ BatchRenderLoadList(BatchRenderThread *thread, int x, int y);
~BatchRenderLoadList();
int handle_event();
BatchRenderThread *thread;
BC_FileBox *gui;
void run();
+ void stop();
virtual int keypress_event();
Mutex *startup_lock;
};
class BatchRenderList : public BC_ListBox
{
public:
- BatchRenderList(BatchRenderThread *thread,
- int x,
- int y,
- int w,
- int h);
+ BatchRenderList(BatchRenderThread *thread, int x, int y, int w, int h);
int handle_event();
int selection_changed();
int column_resize_event();
class BatchRenderStart : public BC_GenericButton
{
public:
- BatchRenderStart(BatchRenderThread *thread,
- int x,
- int y);
+ BatchRenderStart(BatchRenderThread *thread, int x, int y);
int handle_event();
BatchRenderThread *thread;
};
class BatchRenderStop : public BC_GenericButton
{
public:
- BatchRenderStop(BatchRenderThread *thread,
- int x,
- int y);
+ BatchRenderStop(BatchRenderThread *thread, int x, int y);
+ int handle_event();
+ BatchRenderThread *thread;
+};
+
+class BatchRenderWarning : public BC_CheckBox
+{
+public:
+ BatchRenderWarning(BatchRenderThread *thread, int x, int y);
int handle_event();
BatchRenderThread *thread;
};
class BatchRenderCancel : public BC_GenericButton
{
public:
- BatchRenderCancel(BatchRenderThread *thread,
- int x,
- int y);
+ BatchRenderCancel(BatchRenderThread *thread, int x, int y);
int handle_event();
int keypress_event();
BatchRenderThread *thread;
class BatchFormat : public FormatTools
{
public:
- BatchFormat(MWindow *mwindow,
- BatchRenderGUI *gui,
- Asset *asset);
+ BatchFormat(MWindow *mwindow, BatchRenderGUI *gui, Asset *asset);
~BatchFormat();
int handle_event();
MWindow *mwindow;
};
+class BatchRenderUseFarm : public BC_CheckBox
+{
+public:
+ BatchRenderUseFarm(BatchRenderThread *thread, int x, int y, int *output);
+ int handle_event();
+ void update(int *output);
+
+ BatchRenderThread *thread;
+ int *output;
+};
+
class BatchRenderGUI : public BC_Window
{
void button_enable();
void button_disable();
- ArrayList<BC_ListBoxItem*> list_columns[BATCHRENDER_COLUMNS];
+ ArrayList<BC_ListBoxItem*> list_items[BATCHRENDER_COLUMNS];
+ const char *list_titles[BATCHRENDER_COLUMNS];
+ int list_width[BATCHRENDER_COLUMNS], list_columns;
MWindow *mwindow;
BatchRenderThread *thread;
// BC_Title *status_text;
// BC_ProgressBar *progress_bar;
BC_Title *list_title;
+ BC_Title *batch_path;
BatchRenderNew *new_batch;
BatchRenderDelete *delete_batch;
BatchRenderSaveList *savelist_batch;
BatchRenderLoadList *loadlist_batch;
+ BatchRenderWarning *warning;
BatchRenderList *batch_list;
BatchRenderStart *start_button;
BatchRenderStop *stop_button;
BatchRenderCancel *cancel_button;
BatchRenderCurrentEDL *use_current_edl;
BatchRenderUpdateEDL *update_selected_edl;
+ BatchRenderUseFarm *use_renderfarm;
};