r827: Fix a crash when no audio output device can be opened.
[cinelerra_cv.git] / cinelerra / new.h
blob4bea1389c24d708c7a20af62e7442aad6a4e1527
1 #ifndef NEW_H
2 #define NEW_H
4 #include "assets.inc"
5 #include "edl.inc"
6 #include "file.inc"
7 #include "filexml.inc"
8 #include "guicast.h"
9 #include "defaults.inc"
10 #include "formatpresets.h"
11 #include "mwindow.inc"
12 #include "thread.h"
14 class NewThread;
15 class NewWindow;
16 class NewPresets;
18 class New : public BC_MenuItem
20 public:
21 New(MWindow *mwindow);
22 int create_objects();
24 int handle_event();
25 int run_script(FileXML *script);
26 int create_new_project();
28 MWindow *mwindow;
29 NewThread *thread;
30 EDL *new_edl;
32 private:
33 void create_new_edl();
34 FileXML *script;
37 class NewThread : public Thread
39 public:
40 NewThread(MWindow *mwindow, New *new_project);
41 ~NewThread();
43 void run();
45 int load_defaults();
46 int save_defaults();
47 int update_aspect();
48 int auto_aspect;
49 int auto_sizes;
50 NewWindow *nwindow;
51 MWindow *mwindow;
52 New *new_project;
53 Mutex *window_lock;
56 class NewWindow : public BC_Window
58 public:
59 NewWindow(MWindow *mwindow, NewThread *new_thread, int x, int y);
60 ~NewWindow();
62 int create_objects();
63 int update();
65 MWindow *mwindow;
66 NewThread *new_thread;
67 EDL *new_edl;
68 BC_TextBox *atracks;
69 BC_TextBox *achannels;
70 BC_TextBox *sample_rate;
71 BC_TextBox *vtracks;
72 BC_TextBox *vchannels;
73 BC_TextBox *frame_rate;
74 BC_TextBox *aspect_w_text, *aspect_h_text;
75 BC_TextBox *output_w_text, *output_h_text;
76 NewPresets *format_presets;
79 class NewPresets : public FormatPresets
81 public:
82 NewPresets(MWindow *mwindow, NewWindow *gui, int x, int y);
83 ~NewPresets();
84 int handle_event();
85 EDL* get_edl();
91 class NewATracks : public BC_TextBox
93 public:
94 NewATracks(NewWindow *nwindow, char *text, int x, int y);
95 int handle_event();
96 NewWindow *nwindow;
99 class NewATracksTumbler : public BC_Tumbler
101 public:
102 NewATracksTumbler(NewWindow *nwindow, int x, int y);
103 int handle_up_event();
104 int handle_down_event();
105 NewWindow *nwindow;
108 class NewAChannels : public BC_TextBox
110 public:
111 NewAChannels(NewWindow *nwindow, char *text, int x, int y);
112 int handle_event();
113 NewWindow *nwindow;
116 class NewAChannelsTumbler : public BC_Tumbler
118 public:
119 NewAChannelsTumbler(NewWindow *nwindow, int x, int y);
120 int handle_up_event();
121 int handle_down_event();
122 NewWindow *nwindow;
125 class NewSampleRate : public BC_TextBox
127 public:
128 NewSampleRate(NewWindow *nwindow, char *text, int x, int y);
129 int handle_event();
130 NewWindow *nwindow;
134 class SampleRatePulldown : public BC_ListBox
136 public:
137 SampleRatePulldown(MWindow *mwindow, BC_TextBox *output, int x, int y);
138 int handle_event();
139 MWindow *mwindow;
140 BC_TextBox *output;
150 class NewVTracks : public BC_TextBox
152 public:
153 NewVTracks(NewWindow *nwindow, char *text, int x, int y);
154 int handle_event();
155 NewWindow *nwindow;
158 class NewVTracksTumbler : public BC_Tumbler
160 public:
161 NewVTracksTumbler(NewWindow *nwindow, int x, int y);
162 int handle_up_event();
163 int handle_down_event();
164 NewWindow *nwindow;
167 class NewVChannels : public BC_TextBox
169 public:
170 NewVChannels(NewWindow *nwindow, char *text, int x, int y);
171 int handle_event();
172 NewWindow *nwindow;
175 class NewVChannelsTumbler : public BC_Tumbler
177 public:
178 NewVChannelsTumbler(NewWindow *nwindow, int x, int y);
179 int handle_up_event();
180 int handle_down_event();
181 NewWindow *nwindow;
184 class NewFrameRate : public BC_TextBox
186 public:
187 NewFrameRate(NewWindow *nwindow, char *text, int x, int y);
188 int handle_event();
189 NewWindow *nwindow;
192 class FrameRatePulldown : public BC_ListBox
194 public:
195 FrameRatePulldown(MWindow *mwindow, BC_TextBox *output, int x, int y);
196 int handle_event();
197 MWindow *mwindow;
198 BC_TextBox *output;
201 class NewTrackW : public BC_TextBox
203 public:
204 NewTrackW(NewWindow *nwindow, int x, int y);
205 int handle_event();
206 NewWindow *nwindow;
209 class NewTrackH : public BC_TextBox
211 public:
212 NewTrackH(NewWindow *nwindow, int x, int y);
213 int handle_event();
214 NewWindow *nwindow;
217 class FrameSizePulldown : public BC_ListBox
219 public:
220 FrameSizePulldown(MWindow *mwindow,
221 BC_TextBox *output_w,
222 BC_TextBox *output_h,
223 int x,
224 int y);
225 int handle_event();
226 MWindow *mwindow;
227 BC_TextBox *output_w;
228 BC_TextBox *output_h;
231 class NewOutputW : public BC_TextBox
233 public:
234 NewOutputW(NewWindow *nwindow, int x, int y);
235 int handle_event();
236 NewWindow *nwindow;
239 class NewOutputH : public BC_TextBox
241 public:
242 NewOutputH(NewWindow *nwindow, int x, int y);
243 int handle_event();
244 NewWindow *nwindow;
247 class NewAspectAuto : public BC_CheckBox
249 public:
250 NewAspectAuto(NewWindow *nwindow, int x, int y);
251 ~NewAspectAuto();
252 int handle_event();
253 NewWindow *nwindow;
256 class NewAspectW : public BC_TextBox
258 public:
259 NewAspectW(NewWindow *nwindow, char *text, int x, int y);
260 int handle_event();
261 NewWindow *nwindow;
264 class NewAspectH : public BC_TextBox
266 public:
267 NewAspectH(NewWindow *nwindow, char *text, int x, int y);
268 int handle_event();
269 NewWindow *nwindow;
272 class AspectPulldown : public BC_ListBox
274 public:
275 AspectPulldown(MWindow *mwindow,
276 BC_TextBox *output_w,
277 BC_TextBox *output_h,
278 int x,
279 int y);
280 int handle_event();
281 MWindow *mwindow;
282 BC_TextBox *output_w;
283 BC_TextBox *output_h;
286 class ColormodelItem : public BC_ListBoxItem
288 public:
289 ColormodelItem(char *text, int value);
290 int value;
293 class ColormodelPulldown : public BC_ListBox
295 public:
296 ColormodelPulldown(MWindow *mwindow,
297 BC_TextBox *output_text,
298 int *output_value,
299 int x,
300 int y);
301 int handle_event();
302 char* colormodel_to_text();
303 MWindow *mwindow;
304 BC_TextBox *output_text;
305 int *output_value;
308 class InterlacemodeItem : public BC_ListBoxItem
310 public:
311 InterlacemodeItem(char *text, int value);
312 int value;
315 class InterlacemodePulldown : public BC_ListBox
317 public:
318 InterlacemodePulldown(MWindow *mwindow,
319 BC_TextBox *output_text,
320 int *output_value,
321 ArrayList<BC_ListBoxItem*> *data,
322 int x,
323 int y);
324 int handle_event();
325 char* interlacemode_to_text();
326 MWindow *mwindow;
327 BC_TextBox *output_text;
328 int *output_value;
329 private:
330 char string[BCTEXTLEN];
333 class InterlacefixmethodItem : public BC_ListBoxItem
335 public:
336 InterlacefixmethodItem(char *text, int value);
337 int value;
340 class InterlacefixmethodPulldown : public BC_ListBox
342 public:
343 InterlacefixmethodPulldown(MWindow *mwindow,
344 BC_TextBox *output_text,
345 int *output_value,
346 ArrayList<BC_ListBoxItem*> *data,
347 int x,
348 int y);
349 int handle_event();
350 char* interlacefixmethod_to_text();
351 MWindow *mwindow;
352 BC_TextBox *output_text;
353 int *output_value;
354 private:
355 char string[BCTEXTLEN];
358 class NewCloneToggle : public BC_Toggle
360 public:
361 NewCloneToggle(MWindow *mwindow, NewWindow *nwindow, int x, int y);
362 int handle_event();
363 MWindow *mwindow;
364 NewWindow *nwindow;
367 #endif