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;
67 class CreateBD_OK : public BC_OKButton
70 CreateBD_OK(CreateBD_GUI *gui, int x, int y);
72 int button_press_event();
78 class CreateBD_Cancel : public BC_CancelButton
81 CreateBD_Cancel(CreateBD_GUI *gui, int x, int y);
83 int button_press_event();
89 class CreateBD_DiskSpace : public BC_Title
92 CreateBD_DiskSpace(CreateBD_GUI *gui, int x, int y);
93 ~CreateBD_DiskSpace();
94 int64_t tmp_path_space();
100 class CreateBD_TmpPath : public BC_TextBox
103 CreateBD_TmpPath(CreateBD_GUI *gui, int x, int y, int w);
111 class CreateBD_AssetTitle : public BC_TextBox
114 CreateBD_AssetTitle(CreateBD_GUI *gui, int x, int y, int w);
115 ~CreateBD_AssetTitle();
120 class CreateBD_Deinterlace : public BC_CheckBox
123 CreateBD_Deinterlace(CreateBD_GUI *gui, int x, int y);
124 ~CreateBD_Deinterlace();
130 class CreateBD_InverseTelecine : public BC_CheckBox
133 CreateBD_InverseTelecine(CreateBD_GUI *gui, int x, int y);
134 ~CreateBD_InverseTelecine();
140 class CreateBD_Scale : public BC_CheckBox
143 CreateBD_Scale(CreateBD_GUI *gui, int x, int y);
149 class CreateBD_ResizeTracks : public BC_CheckBox
152 CreateBD_ResizeTracks(CreateBD_GUI *gui, int x, int y);
153 ~CreateBD_ResizeTracks();
158 class CreateBD_Histogram : public BC_CheckBox
161 CreateBD_Histogram(CreateBD_GUI *gui, int x, int y);
162 ~CreateBD_Histogram();
167 class CreateBD_LabelChapters : public BC_CheckBox
170 CreateBD_LabelChapters(CreateBD_GUI *gui, int x, int y);
171 ~CreateBD_LabelChapters();
176 class CreateBD_WideAudio : public BC_CheckBox
179 CreateBD_WideAudio(CreateBD_GUI *gui, int x, int y);
180 ~CreateBD_WideAudio();
185 class CreateBD_WideAspect : public BC_CheckBox
188 CreateBD_WideAspect(CreateBD_GUI *gui, int x, int y);
189 ~CreateBD_WideAspect();
194 class CreateBD_GUI : public BC_Window
197 CreateBD_GUI(CreateBD_Thread *thread,
198 int x, int y, int w, int h);
201 void create_objects();
202 int resize_event(int w, int h);
203 int translation_event();
207 CreateBD_Thread *thread;
209 CreateBD_AssetTitle *asset_title;
211 CreateBD_TmpPath *tmp_path;
212 CreateBD_DiskSpace *disk_space;
213 CreateBD_Format *standard;
214 ArrayList<BC_ListBoxItem *> media_sizes;
215 CreateBD_MediaSize *media_size;
216 CreateBD_Deinterlace *need_deinterlace;
217 CreateBD_InverseTelecine *need_inverse_telecine;
218 CreateBD_Scale *need_scale;
219 CreateBD_ResizeTracks *need_resize_tracks;
220 CreateBD_Histogram *need_histogram;
221 CreateBD_WideAudio *need_wide_audio;
222 CreateBD_WideAspect *need_wide_aspect;
223 CreateBD_LabelChapters *need_label_chapters;
224 int ok_x, ok_y, ok_w, ok_h;
226 int cancel_x, cancel_y, cancel_w, cancel_h;
227 CreateBD_Cancel *cancel;
230 class CreateBD_FormatItem : public BC_MenuItem
234 CreateBD_FormatItem(CreateBD_Format *popup, int standard, const char *name);
235 ~CreateBD_FormatItem();
237 CreateBD_Format *popup;
241 class CreateBD_Format : public BC_PopupMenu
244 void create_objects();
246 CreateBD_Format(CreateBD_GUI *gui, int x, int y);
252 class CreateBD_MediaSize : public BC_PopupTextBox
255 CreateBD_MediaSize(CreateBD_GUI *gui, int x, int y);
256 ~CreateBD_MediaSize();