#include "asset.h"
+#include "bchash.h"
#include "clip.h"
#include "dvdcreate.h"
#include "edl.h"
CreateDVD_MenuItem::CreateDVD_MenuItem(MWindow *mwindow)
: BC_MenuItem(_("DVD Render..."), _("Shift-D"), 'D')
{
- set_shift(1);
+ set_shift(1);
this->mwindow = mwindow;
}
close_window();
}
-int CreateDVD_Thread::create_dvd_jobs(ArrayList<BatchRenderJob*> *jobs,
- const char *tmp_path, const char *asset_title)
+int CreateDVD_Thread::create_dvd_jobs(ArrayList<BatchRenderJob*> *jobs, const char *asset_dir)
{
EDL *edl = mwindow->edl;
if( !edl || !edl->session ) {
return 1;
}
- char asset_dir[BCTEXTLEN];
- sprintf(asset_dir, "%s/%s", tmp_path, asset_title);
-
if( mkdir(asset_dir, 0777) ) {
char err[BCTEXTLEN], msg[BCTEXTLEN];
strerror_r(errno, err, sizeof(err));
jobs->append(job);
strcpy(&job->edl_path[0], xml_filename);
asset = job->asset;
-
+
sprintf(&asset->path[0],"%s/dvd.ac3", asset_dir);
asset->audio_data = 1;
asset->format = FILE_AC3;
void CreateDVD_Thread::handle_close_event(int result)
{
if( result ) return;
+ mwindow->defaults->update("WORK_DIRECTORY", tmp_path);
mwindow->batch_render->load_defaults(mwindow->defaults);
mwindow->undo->update_undo_before();
KeyFrame keyframe; char data[BCTEXTLEN];
edit->startproject, edit->length,
PLUGIN_STANDALONE, 0, &keyframe, 0);
}
+ vtrk->optimize();
}
}
keyframe.set_data(data);
insert_video_plugin("Histogram", &keyframe);
}
- mwindow->batch_render->reset(1);
- create_dvd_jobs(&mwindow->batch_render->jobs, tmp_path, asset_title);
- mwindow->save_backup();
+ char asset_dir[BCTEXTLEN], jobs_path[BCTEXTLEN];
+ sprintf(asset_dir, "%s/%s", tmp_path, asset_title);
+ sprintf(jobs_path, "%s/dvd.jobs", asset_dir);
+ mwindow->batch_render->reset(jobs_path);
+ int ret = create_dvd_jobs(&mwindow->batch_render->jobs, asset_dir);
mwindow->undo->update_undo_after(_("create dvd"), LOAD_ALL);
mwindow->resync_guis();
- mwindow->batch_render->handle_close_event(0);
+ if( ret ) return;
+ mwindow->batch_render->save_jobs();
mwindow->batch_render->start();
}
BC_Window* CreateDVD_Thread::new_gui()
{
- memset(tmp_path,0,sizeof(tmp_path));
strcpy(tmp_path,"/tmp");
+ mwindow->defaults->get("WORK_DIRECTORY", tmp_path);
memset(asset_title,0,sizeof(asset_title));
time_t dt; time(&dt);
struct tm dtm; localtime_r(&dt, &dtm);
if( output_h != dvd_norms[norm].h ) continue;
int aspect = dvd_formats[i].aspect;
double dvd_aspect_ratio =
- (double)dvd_aspects[aspect].w / dvd_aspects[aspect].h;
+ (double)dvd_aspects[aspect].w / dvd_aspects[aspect].h;
if( !EQUIV(aspect_ratio, dvd_aspect_ratio) ) continue;
has_standard = i; break;
}
int64_t CreateDVD_DiskSpace::tmp_path_space()
{
- const char *path = gui->tmp_path->get_text();
+ const char *path = gui->thread->tmp_path;
if( access(path,R_OK+W_OK) ) return 0;
struct statfs sfs;
if( statfs(path, &sfs) ) return 0;
int CreateDVD_TmpPath::handle_event()
{
+ get_text();
gui->disk_space->update();
return 1;
}
CreateDVD_AssetTitle::CreateDVD_AssetTitle(CreateDVD_GUI *gui, int x, int y, int w)
- : BC_TextBox(x, y, w, 1, 0, gui->thread->asset_title, 1, MEDIUMFONT)
+ : BC_TextBox(x, y, w, 1, -(int)sizeof(gui->thread->asset_title),
+ gui->thread->asset_title, 1, MEDIUMFONT)
{
this->gui = gui;
}
{
}
+int CreateDVD_AssetTitle::handle_event()
+{
+ get_text();
+ return 1;
+}
+
CreateDVD_Deinterlace::CreateDVD_Deinterlace(CreateDVD_GUI *gui, int x, int y)
: BC_CheckBox(x, y, &gui->thread->use_deinterlace, _("Deinterlace"))
tmp_x = x + title->get_w(); tmp_y = y;
tmp_path = new CreateDVD_TmpPath(this, tmp_x, tmp_y, get_w()-tmp_x-35);
add_subwindow(tmp_path);
- btmp_path = new BrowseButton(thread->mwindow, this, tmp_path,
+ btmp_path = new BrowseButton(thread->mwindow->theme, this, tmp_path,
tmp_x+tmp_path->get_w(), tmp_y, "/tmp",
_("Work path"), _("Select a Work directory:"), 1);
add_subwindow(btmp_path);
edit->startproject, edit->length,
PLUGIN_STANDALONE, 0, default_keyframe, 0);
}
+ vtrk->optimize();
}
return 0;
}