5 #include "batchrender.h"
6 #include "bcwindowbase.h"
9 #include "bclistboxitem.inc"
10 #include "bcmenuitem.h"
11 #include "bctextbox.h"
14 #include "bdcreate.inc"
17 class CreateBD_MenuItem : public BC_MenuItem
20 CreateBD_MenuItem(MWindow *mwindow);
26 class CreateBD_Thread : public BC_DialogThread
28 static const int64_t BD_SIZE;
29 static const int BD_STREAMS, BD_WIDTH, BD_HEIGHT;
30 static const double BD_ASPECT_WIDTH, BD_ASPECT_HEIGHT;
31 static const double BD_WIDE_ASPECT_WIDTH, BD_WIDE_ASPECT_HEIGHT;
32 static const int BD_MAX_BITRATE, BD_CHANNELS, BD_WIDE_CHANNELS;
33 static const double BD_FRAMERATE, BD_SAMPLERATE, BD_KAUDIO_RATE;
35 CreateBD_Thread(MWindow *mwindow);
37 void handle_close_event(int result);
40 int create_bd_jobs(ArrayList<BatchRenderJob*> *jobs,
41 const char *tmp_path, const char *asset_title);
42 int insert_video_plugin(const char *title, KeyFrame *default_keyframe);
47 char asset_title[BCTEXTLEN];
48 char tmp_path[BCTEXTLEN];
49 int use_deinterlace, use_inverse_telecine;
50 int use_scale, use_resize_tracks;
51 int use_wide_audio, use_wide_aspect;
52 int use_histogram, use_label_chapters;
58 double bd_aspect_width;
59 double bd_aspect_height;
63 double bd_kaudio_rate;
66 class CreateBD_OK : public BC_OKButton
69 CreateBD_OK(CreateBD_GUI *gui, int x, int y);
71 int button_press_event();
77 class CreateBD_Cancel : public BC_CancelButton
80 CreateBD_Cancel(CreateBD_GUI *gui, int x, int y);
82 int button_press_event();
88 class CreateBD_DiskSpace : public BC_Title
91 CreateBD_DiskSpace(CreateBD_GUI *gui, int x, int y);
92 ~CreateBD_DiskSpace();
93 int64_t tmp_path_space();
99 class CreateBD_TmpPath : public BC_TextBox
102 CreateBD_TmpPath(CreateBD_GUI *gui, int x, int y, int w);
110 class CreateBD_AssetTitle : public BC_TextBox
113 CreateBD_AssetTitle(CreateBD_GUI *gui, int x, int y, int w);
114 ~CreateBD_AssetTitle();
119 class CreateBD_Deinterlace : public BC_CheckBox
122 CreateBD_Deinterlace(CreateBD_GUI *gui, int x, int y);
123 ~CreateBD_Deinterlace();
129 class CreateBD_InverseTelecine : public BC_CheckBox
132 CreateBD_InverseTelecine(CreateBD_GUI *gui, int x, int y);
133 ~CreateBD_InverseTelecine();
139 class CreateBD_Scale : public BC_CheckBox
142 CreateBD_Scale(CreateBD_GUI *gui, int x, int y);
148 class CreateBD_ResizeTracks : public BC_CheckBox
151 CreateBD_ResizeTracks(CreateBD_GUI *gui, int x, int y);
152 ~CreateBD_ResizeTracks();
157 class CreateBD_Histogram : public BC_CheckBox
160 CreateBD_Histogram(CreateBD_GUI *gui, int x, int y);
161 ~CreateBD_Histogram();
166 class CreateBD_LabelChapters : public BC_CheckBox
169 CreateBD_LabelChapters(CreateBD_GUI *gui, int x, int y);
170 ~CreateBD_LabelChapters();
175 class CreateBD_WideAudio : public BC_CheckBox
178 CreateBD_WideAudio(CreateBD_GUI *gui, int x, int y);
179 ~CreateBD_WideAudio();
184 class CreateBD_WideAspect : public BC_CheckBox
187 CreateBD_WideAspect(CreateBD_GUI *gui, int x, int y);
188 ~CreateBD_WideAspect();
193 class CreateBD_GUI : public BC_Window
196 CreateBD_GUI(CreateBD_Thread *thread,
197 int x, int y, int w, int h);
200 void create_objects();
201 int resize_event(int w, int h);
202 int translation_event();
206 CreateBD_Thread *thread;
208 CreateBD_AssetTitle *asset_title;
210 CreateBD_TmpPath *tmp_path;
211 CreateBD_DiskSpace *disk_space;
212 CreateBD_Format *standard;
213 ArrayList<BC_ListBoxItem *> media_sizes;
214 CreateBD_MediaSize *media_size;
215 CreateBD_Deinterlace *need_deinterlace;
216 CreateBD_InverseTelecine *need_inverse_telecine;
217 CreateBD_Scale *need_scale;
218 CreateBD_ResizeTracks *need_resize_tracks;
219 CreateBD_Histogram *need_histogram;
220 CreateBD_WideAudio *need_wide_audio;
221 CreateBD_WideAspect *need_wide_aspect;
222 CreateBD_LabelChapters *need_label_chapters;
223 int ok_x, ok_y, ok_w, ok_h;
225 int cancel_x, cancel_y, cancel_w, cancel_h;
226 CreateBD_Cancel *cancel;
229 class CreateBD_FormatItem : public BC_MenuItem
233 CreateBD_FormatItem(CreateBD_Format *popup, int standard, const char *name);
234 ~CreateBD_FormatItem();
236 CreateBD_Format *popup;
240 class CreateBD_Format : public BC_PopupMenu
243 void create_objects();
245 CreateBD_Format(CreateBD_GUI *gui, int x, int y);
251 class CreateBD_MediaSize : public BC_PopupTextBox
254 CreateBD_MediaSize(CreateBD_GUI *gui, int x, int y);
255 ~CreateBD_MediaSize();