1 #ifndef __DVDCREATE_H__
2 #define __DVDCREATE_H__
5 #include "batchrender.h"
6 #include "bcwindowbase.h"
9 #include "bcmenuitem.h"
10 #include "bctextbox.h"
13 #include "dvdcreate.inc"
16 class CreateDVD_MenuItem : public BC_MenuItem
19 CreateDVD_MenuItem(MWindow *mwindow);
25 class CreateDVD_Thread : public BC_DialogThread
27 static const int64_t DVD_SIZE;
28 static const int DVD_STREAMS, DVD_WIDTH, DVD_HEIGHT;
29 static const double DVD_ASPECT_WIDTH, DVD_ASPECT_HEIGHT;
30 static const double DVD_WIDE_ASPECT_WIDTH, DVD_WIDE_ASPECT_HEIGHT;
31 static const int DVD_MAX_BITRATE, DVD_CHANNELS, DVD_WIDE_CHANNELS;
32 static const double DVD_FRAMERATE, DVD_SAMPLERATE, DVD_KAUDIO_RATE;
34 CreateDVD_Thread(MWindow *mwindow);
36 void handle_close_event(int result);
39 int create_dvd_jobs(ArrayList<BatchRenderJob*> *jobs,
40 const char *tmp_path, const char *asset_title);
41 int insert_video_plugin(const char *title, KeyFrame *default_keyframe);
46 char asset_title[BCTEXTLEN];
47 char tmp_path[BCTEXTLEN];
48 int use_deinterlace, use_inverse_telecine;
49 int use_scale, use_resize_tracks;
50 int use_wide_audio, use_wide_aspect;
51 int use_histogram, use_label_chapters;
55 class CreateDVD_OK : public BC_OKButton
58 CreateDVD_OK(CreateDVD_GUI *gui, int x, int y);
60 int button_press_event();
66 class CreateDVD_Cancel : public BC_CancelButton
69 CreateDVD_Cancel(CreateDVD_GUI *gui, int x, int y);
71 int button_press_event();
77 class CreateDVD_DiskSpace : public BC_Title
80 CreateDVD_DiskSpace(CreateDVD_GUI *gui, int x, int y);
81 ~CreateDVD_DiskSpace();
82 int64_t tmp_path_space();
88 class CreateDVD_TmpPath : public BC_TextBox
91 CreateDVD_TmpPath(CreateDVD_GUI *gui, int x, int y, int w);
99 class CreateDVD_AssetTitle : public BC_TextBox
102 CreateDVD_AssetTitle(CreateDVD_GUI *gui, int x, int y, int w);
103 ~CreateDVD_AssetTitle();
108 class CreateDVD_Deinterlace : public BC_CheckBox
111 CreateDVD_Deinterlace(CreateDVD_GUI *gui, int x, int y);
112 ~CreateDVD_Deinterlace();
118 class CreateDVD_InverseTelecine : public BC_CheckBox
121 CreateDVD_InverseTelecine(CreateDVD_GUI *gui, int x, int y);
122 ~CreateDVD_InverseTelecine();
128 class CreateDVD_Scale : public BC_CheckBox
131 CreateDVD_Scale(CreateDVD_GUI *gui, int x, int y);
137 class CreateDVD_ResizeTracks : public BC_CheckBox
140 CreateDVD_ResizeTracks(CreateDVD_GUI *gui, int x, int y);
141 ~CreateDVD_ResizeTracks();
146 class CreateDVD_Histogram : public BC_CheckBox
149 CreateDVD_Histogram(CreateDVD_GUI *gui, int x, int y);
150 ~CreateDVD_Histogram();
155 class CreateDVD_LabelChapters : public BC_CheckBox
158 CreateDVD_LabelChapters(CreateDVD_GUI *gui, int x, int y);
159 ~CreateDVD_LabelChapters();
164 class CreateDVD_WideAudio : public BC_CheckBox
167 CreateDVD_WideAudio(CreateDVD_GUI *gui, int x, int y);
168 ~CreateDVD_WideAudio();
173 class CreateDVD_WideAspect : public BC_CheckBox
176 CreateDVD_WideAspect(CreateDVD_GUI *gui, int x, int y);
177 ~CreateDVD_WideAspect();
182 class CreateDVD_UseFFMpeg : public BC_CheckBox
185 CreateDVD_UseFFMpeg(CreateDVD_GUI *gui, int x, int y);
186 ~CreateDVD_UseFFMpeg();
191 class CreateDVD_GUI : public BC_Window
194 CreateDVD_GUI(CreateDVD_Thread *thread,
195 int x, int y, int w, int h);
198 void create_objects();
199 int resize_event(int w, int h);
200 int translation_event();
203 int64_t needed_disk_space;
204 CreateDVD_Thread *thread;
206 CreateDVD_AssetTitle *asset_title;
208 CreateDVD_TmpPath *tmp_path;
209 CreateDVD_DiskSpace *disk_space;
210 CreateDVD_Deinterlace *need_deinterlace;
211 CreateDVD_InverseTelecine *need_inverse_telecine;
212 CreateDVD_Scale *need_scale;
213 CreateDVD_UseFFMpeg *need_use_ffmpeg;
214 CreateDVD_ResizeTracks *need_resize_tracks;
215 CreateDVD_Histogram *need_histogram;
216 CreateDVD_WideAudio *need_wide_audio;
217 CreateDVD_WideAspect *need_wide_aspect;
218 CreateDVD_LabelChapters *need_label_chapters;
219 int ok_x, ok_y, ok_w, ok_h;
221 int cancel_x, cancel_y, cancel_w, cancel_h;
222 CreateDVD_Cancel *cancel;