dvd/bd scaling fixes, es/de .po file updates
[goodguy/history.git] / cinelerra-5.1 / cinelerra / dvdcreate.h
1 #ifndef __DVDCREATE_H__
2 #define __DVDCREATE_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 "dvdcreate.inc"
15
16 class CreateDVD_MenuItem : public BC_MenuItem
17 {
18 public:
19         CreateDVD_MenuItem(MWindow *mwindow);
20         int handle_event();
21         MWindow *mwindow;
22 };
23
24
25 class CreateDVD_Thread : public BC_DialogThread
26 {
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;
33 public:
34         CreateDVD_Thread(MWindow *mwindow);
35         ~CreateDVD_Thread();
36         void handle_close_event(int result);
37         BC_Window* new_gui();
38         int option_presets();
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);
42         int resize_tracks();
43
44         MWindow *mwindow;
45         CreateDVD_GUI *gui;
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;
52         int use_ffmpeg, use_standard;
53
54         int64_t dvd_size;
55         int dvd_width;
56         int dvd_height;
57         double dvd_aspect_width;
58         double dvd_aspect_height;
59         double dvd_framerate;
60         int dvd_samplerate;
61         int dvd_max_bitrate;
62         double dvd_kaudio_rate;
63         int max_w, max_h;
64 };
65
66 class CreateDVD_OK : public BC_OKButton
67 {
68 public:
69         CreateDVD_OK(CreateDVD_GUI *gui, int x, int y);
70         ~CreateDVD_OK();
71         int button_press_event();
72         int keypress_event();
73
74         CreateDVD_GUI *gui;
75 };
76
77 class CreateDVD_Cancel : public BC_CancelButton
78 {
79 public:
80         CreateDVD_Cancel(CreateDVD_GUI *gui, int x, int y);
81         ~CreateDVD_Cancel();
82         int button_press_event();
83
84         CreateDVD_GUI *gui;
85 };
86
87
88 class CreateDVD_DiskSpace : public BC_Title
89 {
90 public:
91         CreateDVD_DiskSpace(CreateDVD_GUI *gui, int x, int y);
92         ~CreateDVD_DiskSpace();
93         int64_t tmp_path_space();
94         void update();
95
96         CreateDVD_GUI *gui;
97 };
98
99 class CreateDVD_TmpPath : public BC_TextBox
100 {
101 public:
102         CreateDVD_TmpPath(CreateDVD_GUI *gui, int x, int y, int w);
103         ~CreateDVD_TmpPath();
104         int handle_event();
105
106         CreateDVD_GUI *gui;
107 };
108
109
110 class CreateDVD_AssetTitle : public BC_TextBox
111 {
112 public:
113         CreateDVD_AssetTitle(CreateDVD_GUI *gui, int x, int y, int w);
114         ~CreateDVD_AssetTitle();
115
116         CreateDVD_GUI *gui;
117 };
118
119 class CreateDVD_Deinterlace : public BC_CheckBox
120 {
121 public:
122         CreateDVD_Deinterlace(CreateDVD_GUI *gui, int x, int y);
123         ~CreateDVD_Deinterlace();
124         int handle_event();
125
126         CreateDVD_GUI *gui;
127 };
128
129 class CreateDVD_InverseTelecine : public BC_CheckBox
130 {
131 public:
132         CreateDVD_InverseTelecine(CreateDVD_GUI *gui, int x, int y);
133         ~CreateDVD_InverseTelecine();
134         int handle_event();
135
136         CreateDVD_GUI *gui;
137 };
138
139 class CreateDVD_Scale : public BC_CheckBox
140 {
141 public:
142         CreateDVD_Scale(CreateDVD_GUI *gui, int x, int y);
143         ~CreateDVD_Scale();
144
145         CreateDVD_GUI *gui;
146 };
147
148 class CreateDVD_ResizeTracks : public BC_CheckBox
149 {
150 public:
151         CreateDVD_ResizeTracks(CreateDVD_GUI *gui, int x, int y);
152         ~CreateDVD_ResizeTracks();
153
154         CreateDVD_GUI *gui;
155 };
156
157 class CreateDVD_Histogram : public BC_CheckBox
158 {
159 public:
160         CreateDVD_Histogram(CreateDVD_GUI *gui, int x, int y);
161         ~CreateDVD_Histogram();
162
163         CreateDVD_GUI *gui;
164 };
165
166 class CreateDVD_LabelChapters : public BC_CheckBox
167 {
168 public:
169         CreateDVD_LabelChapters(CreateDVD_GUI *gui, int x, int y);
170         ~CreateDVD_LabelChapters();
171
172         CreateDVD_GUI *gui;
173 };
174
175 class CreateDVD_WideAudio : public BC_CheckBox
176 {
177 public:
178         CreateDVD_WideAudio(CreateDVD_GUI *gui, int x, int y);
179         ~CreateDVD_WideAudio();
180
181         CreateDVD_GUI *gui;
182 };
183
184 class CreateDVD_WideAspect : public BC_CheckBox
185 {
186 public:
187         CreateDVD_WideAspect(CreateDVD_GUI *gui, int x, int y);
188         ~CreateDVD_WideAspect();
189
190         CreateDVD_GUI *gui;
191 };
192
193 class CreateDVD_UseFFMpeg : public BC_CheckBox
194 {
195 public:
196         CreateDVD_UseFFMpeg(CreateDVD_GUI *gui, int x, int y);
197         ~CreateDVD_UseFFMpeg();
198
199         CreateDVD_GUI *gui;
200 };
201
202 class CreateDVD_GUI : public BC_Window
203 {
204 public:
205         CreateDVD_GUI(CreateDVD_Thread *thread,
206                 int x, int y, int w, int h);
207         ~CreateDVD_GUI();
208
209         void create_objects();
210         int resize_event(int w, int h);
211         int translation_event();
212         int close_event();
213         void update();
214
215         CreateDVD_Thread *thread;
216         int at_x, at_y;
217         CreateDVD_AssetTitle *asset_title;
218         int tmp_x, tmp_y;
219         CreateDVD_TmpPath *tmp_path;
220         CreateDVD_DiskSpace *disk_space;
221         CreateDVD_Format *standard;
222         ArrayList<BC_ListBoxItem *> media_sizes;
223         CreateDVD_MediaSize *media_size;
224         CreateDVD_Deinterlace *need_deinterlace;
225         CreateDVD_InverseTelecine *need_inverse_telecine;
226         CreateDVD_Scale *need_scale;
227         CreateDVD_UseFFMpeg *need_use_ffmpeg;
228         CreateDVD_ResizeTracks *need_resize_tracks;
229         CreateDVD_Histogram *need_histogram;
230         CreateDVD_WideAudio *need_wide_audio;
231         CreateDVD_WideAspect *need_wide_aspect;
232         CreateDVD_LabelChapters *need_label_chapters;
233         int ok_x, ok_y, ok_w, ok_h;
234         CreateDVD_OK *ok;
235         int cancel_x, cancel_y, cancel_w, cancel_h;
236         CreateDVD_Cancel *cancel;
237 };
238
239 class CreateDVD_FormatItem : public BC_MenuItem
240 {
241 public:
242         int handle_event();
243         CreateDVD_FormatItem(CreateDVD_Format *popup, int standard, const char *name);
244         ~CreateDVD_FormatItem();
245
246         CreateDVD_Format *popup;
247         int standard;
248 };
249
250 class CreateDVD_Format : public BC_PopupMenu
251 {
252 public:
253         void create_objects();
254         int handle_event();
255         CreateDVD_Format(CreateDVD_GUI *gui, int x, int y);
256         ~CreateDVD_Format();
257
258         CreateDVD_GUI *gui;
259 };
260
261 class CreateDVD_MediaSize : public BC_PopupTextBox
262 {
263 public:
264         CreateDVD_MediaSize(CreateDVD_GUI *gui, int x, int y);
265         ~CreateDVD_MediaSize();
266         int handle_event();
267
268         CreateDVD_GUI *gui;
269 };
270
271 #endif