289c30264b962ed6872ed3d76df3f625a4ada502
[goodguy/history.git] / cinelerra-5.1 / cinelerra / bdcreate.h
1 #ifndef __BDCREATE_H__
2 #define __BDCREATE_H__
3
4 #include "arraylist.h"
5 #include "batchrender.h"
6 #include "bcwindowbase.h"
7 #include "bcbutton.h"
8 #include "bcdialog.h"
9 #include "bclistboxitem.inc"
10 #include "bcmenuitem.h"
11 #include "bctextbox.h"
12 #include "mwindow.h"
13
14 #include "bdcreate.inc"
15
16
17 class CreateBD_MenuItem : public BC_MenuItem
18 {
19 public:
20         CreateBD_MenuItem(MWindow *mwindow);
21         int handle_event();
22         MWindow *mwindow;
23 };
24
25
26 class CreateBD_Thread : public BC_DialogThread
27 {
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;
34 public:
35         CreateBD_Thread(MWindow *mwindow);
36         ~CreateBD_Thread();
37         void handle_close_event(int result);
38         BC_Window* new_gui();
39         int option_presets();
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);
43         int resize_tracks();
44
45         MWindow *mwindow;
46         CreateBD_GUI *gui;
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;
53         int use_standard;
54
55         int64_t bd_size;
56         int bd_width;
57         int bd_height;
58         double bd_aspect_width;
59         double bd_aspect_height;
60         double bd_framerate;
61         int bd_samplerate;
62         int bd_max_bitrate;
63         double bd_kaudio_rate;
64 };
65
66 class CreateBD_OK : public BC_OKButton
67 {
68 public:
69         CreateBD_OK(CreateBD_GUI *gui, int x, int y);
70         ~CreateBD_OK();
71         int button_press_event();
72         int keypress_event();
73
74         CreateBD_GUI *gui;
75 };
76
77 class CreateBD_Cancel : public BC_CancelButton
78 {
79 public:
80         CreateBD_Cancel(CreateBD_GUI *gui, int x, int y);
81         ~CreateBD_Cancel();
82         int button_press_event();
83
84         CreateBD_GUI *gui;
85 };
86
87
88 class CreateBD_DiskSpace : public BC_Title
89 {
90 public:
91         CreateBD_DiskSpace(CreateBD_GUI *gui, int x, int y);
92         ~CreateBD_DiskSpace();
93         int64_t tmp_path_space();
94         void update();
95
96         CreateBD_GUI *gui;
97 };
98
99 class CreateBD_TmpPath : public BC_TextBox
100 {
101 public:
102         CreateBD_TmpPath(CreateBD_GUI *gui, int x, int y, int w);
103         ~CreateBD_TmpPath();
104         int handle_event();
105
106         CreateBD_GUI *gui;
107 };
108
109
110 class CreateBD_AssetTitle : public BC_TextBox
111 {
112 public:
113         CreateBD_AssetTitle(CreateBD_GUI *gui, int x, int y, int w);
114         ~CreateBD_AssetTitle();
115
116         CreateBD_GUI *gui;
117 };
118
119 class CreateBD_Deinterlace : public BC_CheckBox
120 {
121 public:
122         CreateBD_Deinterlace(CreateBD_GUI *gui, int x, int y);
123         ~CreateBD_Deinterlace();
124         int handle_event();
125
126         CreateBD_GUI *gui;
127 };
128
129 class CreateBD_InverseTelecine : public BC_CheckBox
130 {
131 public:
132         CreateBD_InverseTelecine(CreateBD_GUI *gui, int x, int y);
133         ~CreateBD_InverseTelecine();
134         int handle_event();
135
136         CreateBD_GUI *gui;
137 };
138
139 class CreateBD_Scale : public BC_CheckBox
140 {
141 public:
142         CreateBD_Scale(CreateBD_GUI *gui, int x, int y);
143         ~CreateBD_Scale();
144
145         CreateBD_GUI *gui;
146 };
147
148 class CreateBD_ResizeTracks : public BC_CheckBox
149 {
150 public:
151         CreateBD_ResizeTracks(CreateBD_GUI *gui, int x, int y);
152         ~CreateBD_ResizeTracks();
153
154         CreateBD_GUI *gui;
155 };
156
157 class CreateBD_Histogram : public BC_CheckBox
158 {
159 public:
160         CreateBD_Histogram(CreateBD_GUI *gui, int x, int y);
161         ~CreateBD_Histogram();
162
163         CreateBD_GUI *gui;
164 };
165
166 class CreateBD_LabelChapters : public BC_CheckBox
167 {
168 public:
169         CreateBD_LabelChapters(CreateBD_GUI *gui, int x, int y);
170         ~CreateBD_LabelChapters();
171
172         CreateBD_GUI *gui;
173 };
174
175 class CreateBD_WideAudio : public BC_CheckBox
176 {
177 public:
178         CreateBD_WideAudio(CreateBD_GUI *gui, int x, int y);
179         ~CreateBD_WideAudio();
180
181         CreateBD_GUI *gui;
182 };
183
184 class CreateBD_WideAspect : public BC_CheckBox
185 {
186 public:
187         CreateBD_WideAspect(CreateBD_GUI *gui, int x, int y);
188         ~CreateBD_WideAspect();
189
190         CreateBD_GUI *gui;
191 };
192
193 class CreateBD_GUI : public BC_Window
194 {
195 public:
196         CreateBD_GUI(CreateBD_Thread *thread,
197                 int x, int y, int w, int h);
198         ~CreateBD_GUI();
199
200         void create_objects();
201         int resize_event(int w, int h);
202         int translation_event();
203         int close_event();
204         void update();
205
206         CreateBD_Thread *thread;
207         int at_x, at_y;
208         CreateBD_AssetTitle *asset_title;
209         int tmp_x, tmp_y;
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;
224         CreateBD_OK *ok;
225         int cancel_x, cancel_y, cancel_w, cancel_h;
226         CreateBD_Cancel *cancel;
227 };
228
229 class CreateBD_FormatItem : public BC_MenuItem
230 {
231 public:
232         int handle_event();
233         CreateBD_FormatItem(CreateBD_Format *popup, int standard, const char *name);
234         ~CreateBD_FormatItem();
235
236         CreateBD_Format *popup;
237         int standard;
238 };
239
240 class CreateBD_Format : public BC_PopupMenu
241 {
242 public:
243         void create_objects();
244         int handle_event();
245         CreateBD_Format(CreateBD_GUI *gui, int x, int y);
246         ~CreateBD_Format();
247
248         CreateBD_GUI *gui;
249 };
250
251 class CreateBD_MediaSize : public BC_PopupTextBox
252 {
253 public:
254         CreateBD_MediaSize(CreateBD_GUI *gui, int x, int y);
255         ~CreateBD_MediaSize();
256         int handle_event();
257
258         CreateBD_GUI *gui;
259 };
260
261 #endif