00001 #ifndef NEW_H
00002 #define NEW_H
00003
00004 #include "assets.inc"
00005 #include "edl.inc"
00006 #include "file.inc"
00007 #include "filexml.inc"
00008 #include "guicast.h"
00009 #include "defaults.inc"
00010 #include "formatpresets.h"
00011 #include "mwindow.inc"
00012 #include "thread.h"
00013
00014 class NewThread;
00015 class NewWindow;
00016 class NewPresets;
00017
00018 class New : public BC_MenuItem
00019 {
00020 public:
00021 New(MWindow *mwindow);
00022 int create_objects();
00023
00024 int handle_event();
00025 int run_script(FileXML *script);
00026 int create_new_project();
00027
00028 MWindow *mwindow;
00029 NewThread *thread;
00030 EDL *new_edl;
00031
00032 private:
00033 void create_new_edl();
00034 FileXML *script;
00035 };
00036
00037 class NewThread : public Thread
00038 {
00039 public:
00040 NewThread(MWindow *mwindow, New *new_project);
00041 ~NewThread();
00042
00043 void run();
00044
00045 int load_defaults();
00046 int save_defaults();
00047 int update_aspect();
00048 int auto_aspect;
00049 int auto_sizes;
00050 NewWindow *nwindow;
00051 MWindow *mwindow;
00052 New *new_project;
00053 Mutex *window_lock;
00054 };
00055
00056 class NewWindow : public BC_Window
00057 {
00058 public:
00059 NewWindow(MWindow *mwindow, NewThread *new_thread, int x, int y);
00060 ~NewWindow();
00061
00062 int create_objects();
00063 int update();
00064
00065 MWindow *mwindow;
00066 NewThread *new_thread;
00067 EDL *new_edl;
00068 BC_TextBox *atracks;
00069 BC_TextBox *achannels;
00070 BC_TextBox *sample_rate;
00071 BC_TextBox *vtracks;
00072 BC_TextBox *vchannels;
00073 BC_TextBox *frame_rate;
00074 BC_TextBox *aspect_w_text, *aspect_h_text;
00075 BC_TextBox *output_w_text, *output_h_text;
00076 NewPresets *format_presets;
00077 };
00078
00079 class NewPresets : public FormatPresets
00080 {
00081 public:
00082 NewPresets(MWindow *mwindow, NewWindow *gui, int x, int y);
00083 ~NewPresets();
00084 int handle_event();
00085 EDL* get_edl();
00086 };
00087
00088
00089
00090
00091 class NewATracks : public BC_TextBox
00092 {
00093 public:
00094 NewATracks(NewWindow *nwindow, char *text, int x, int y);
00095 int handle_event();
00096 NewWindow *nwindow;
00097 };
00098
00099 class NewATracksTumbler : public BC_Tumbler
00100 {
00101 public:
00102 NewATracksTumbler(NewWindow *nwindow, int x, int y);
00103 int handle_up_event();
00104 int handle_down_event();
00105 NewWindow *nwindow;
00106 };
00107
00108 class NewAChannels : public BC_TextBox
00109 {
00110 public:
00111 NewAChannels(NewWindow *nwindow, char *text, int x, int y);
00112 int handle_event();
00113 NewWindow *nwindow;
00114 };
00115
00116 class NewAChannelsTumbler : public BC_Tumbler
00117 {
00118 public:
00119 NewAChannelsTumbler(NewWindow *nwindow, int x, int y);
00120 int handle_up_event();
00121 int handle_down_event();
00122 NewWindow *nwindow;
00123 };
00124
00125 class NewSampleRate : public BC_TextBox
00126 {
00127 public:
00128 NewSampleRate(NewWindow *nwindow, char *text, int x, int y);
00129 int handle_event();
00130 NewWindow *nwindow;
00131 };
00132
00133
00134 class SampleRatePulldown : public BC_ListBox
00135 {
00136 public:
00137 SampleRatePulldown(MWindow *mwindow, BC_TextBox *output, int x, int y);
00138 int handle_event();
00139 MWindow *mwindow;
00140 BC_TextBox *output;
00141 };
00142
00143
00144
00145
00146
00147
00148
00149
00150 class NewVTracks : public BC_TextBox
00151 {
00152 public:
00153 NewVTracks(NewWindow *nwindow, char *text, int x, int y);
00154 int handle_event();
00155 NewWindow *nwindow;
00156 };
00157
00158 class NewVTracksTumbler : public BC_Tumbler
00159 {
00160 public:
00161 NewVTracksTumbler(NewWindow *nwindow, int x, int y);
00162 int handle_up_event();
00163 int handle_down_event();
00164 NewWindow *nwindow;
00165 };
00166
00167 class NewVChannels : public BC_TextBox
00168 {
00169 public:
00170 NewVChannels(NewWindow *nwindow, char *text, int x, int y);
00171 int handle_event();
00172 NewWindow *nwindow;
00173 };
00174
00175 class NewVChannelsTumbler : public BC_Tumbler
00176 {
00177 public:
00178 NewVChannelsTumbler(NewWindow *nwindow, int x, int y);
00179 int handle_up_event();
00180 int handle_down_event();
00181 NewWindow *nwindow;
00182 };
00183
00184 class NewFrameRate : public BC_TextBox
00185 {
00186 public:
00187 NewFrameRate(NewWindow *nwindow, char *text, int x, int y);
00188 int handle_event();
00189 NewWindow *nwindow;
00190 };
00191
00192 class FrameRatePulldown : public BC_ListBox
00193 {
00194 public:
00195 FrameRatePulldown(MWindow *mwindow, BC_TextBox *output, int x, int y);
00196 int handle_event();
00197 MWindow *mwindow;
00198 BC_TextBox *output;
00199 };
00200
00201 class NewTrackW : public BC_TextBox
00202 {
00203 public:
00204 NewTrackW(NewWindow *nwindow, int x, int y);
00205 int handle_event();
00206 NewWindow *nwindow;
00207 };
00208
00209 class NewTrackH : public BC_TextBox
00210 {
00211 public:
00212 NewTrackH(NewWindow *nwindow, int x, int y);
00213 int handle_event();
00214 NewWindow *nwindow;
00215 };
00216
00217 class FrameSizePulldown : public BC_ListBox
00218 {
00219 public:
00220 FrameSizePulldown(MWindow *mwindow,
00221 BC_TextBox *output_w,
00222 BC_TextBox *output_h,
00223 int x,
00224 int y);
00225 int handle_event();
00226 MWindow *mwindow;
00227 BC_TextBox *output_w;
00228 BC_TextBox *output_h;
00229 };
00230
00231 class NewOutputW : public BC_TextBox
00232 {
00233 public:
00234 NewOutputW(NewWindow *nwindow, int x, int y);
00235 int handle_event();
00236 NewWindow *nwindow;
00237 };
00238
00239 class NewOutputH : public BC_TextBox
00240 {
00241 public:
00242 NewOutputH(NewWindow *nwindow, int x, int y);
00243 int handle_event();
00244 NewWindow *nwindow;
00245 };
00246
00247 class NewAspectAuto : public BC_CheckBox
00248 {
00249 public:
00250 NewAspectAuto(NewWindow *nwindow, int x, int y);
00251 ~NewAspectAuto();
00252 int handle_event();
00253 NewWindow *nwindow;
00254 };
00255
00256 class NewAspectW : public BC_TextBox
00257 {
00258 public:
00259 NewAspectW(NewWindow *nwindow, char *text, int x, int y);
00260 int handle_event();
00261 NewWindow *nwindow;
00262 };
00263
00264 class NewAspectH : public BC_TextBox
00265 {
00266 public:
00267 NewAspectH(NewWindow *nwindow, char *text, int x, int y);
00268 int handle_event();
00269 NewWindow *nwindow;
00270 };
00271
00272 class AspectPulldown : public BC_ListBox
00273 {
00274 public:
00275 AspectPulldown(MWindow *mwindow,
00276 BC_TextBox *output_w,
00277 BC_TextBox *output_h,
00278 int x,
00279 int y);
00280 int handle_event();
00281 MWindow *mwindow;
00282 BC_TextBox *output_w;
00283 BC_TextBox *output_h;
00284 };
00285
00286 class ColormodelItem : public BC_ListBoxItem
00287 {
00288 public:
00289 ColormodelItem(char *text, int value);
00290 int value;
00291 };
00292
00293 class ColormodelPulldown : public BC_ListBox
00294 {
00295 public:
00296 ColormodelPulldown(MWindow *mwindow,
00297 BC_TextBox *output_text,
00298 int *output_value,
00299 int x,
00300 int y);
00301 int handle_event();
00302 char* colormodel_to_text();
00303 MWindow *mwindow;
00304 BC_TextBox *output_text;
00305 int *output_value;
00306 };
00307
00308 class InterlacemodeItem : public BC_ListBoxItem
00309 {
00310 public:
00311 InterlacemodeItem(char *text, int value);
00312 int value;
00313 };
00314
00315 class InterlacemodePulldown : public BC_ListBox
00316 {
00317 public:
00318 InterlacemodePulldown(MWindow *mwindow,
00319 BC_TextBox *output_text,
00320 int *output_value,
00321 ArrayList<BC_ListBoxItem*> *data,
00322 int x,
00323 int y);
00324 int handle_event();
00325 char* interlacemode_to_text();
00326 MWindow *mwindow;
00327 BC_TextBox *output_text;
00328 int *output_value;
00329 private:
00330 char string[BCTEXTLEN];
00331 };
00332
00333 class InterlacefixmethodItem : public BC_ListBoxItem
00334 {
00335 public:
00336 InterlacefixmethodItem(char *text, int value);
00337 int value;
00338 };
00339
00340 class InterlacefixmethodPulldown : public BC_ListBox
00341 {
00342 public:
00343 InterlacefixmethodPulldown(MWindow *mwindow,
00344 BC_TextBox *output_text,
00345 int *output_value,
00346 ArrayList<BC_ListBoxItem*> *data,
00347 int x,
00348 int y);
00349 int handle_event();
00350 char* interlacefixmethod_to_text();
00351 MWindow *mwindow;
00352 BC_TextBox *output_text;
00353 int *output_value;
00354 private:
00355 char string[BCTEXTLEN];
00356 };
00357
00358 class NewCloneToggle : public BC_Toggle
00359 {
00360 public:
00361 NewCloneToggle(MWindow *mwindow, NewWindow *nwindow, int x, int y);
00362 int handle_event();
00363 MWindow *mwindow;
00364 NewWindow *nwindow;
00365 };
00366
00367 #endif