add bluray support, add dialog close fixes, scale fix
[goodguy/history.git] / cinelerra-5.0 / cinelerra / dvdcreate.h
diff --git a/cinelerra-5.0/cinelerra/dvdcreate.h b/cinelerra-5.0/cinelerra/dvdcreate.h
new file mode 100644 (file)
index 0000000..a0d331f
--- /dev/null
@@ -0,0 +1,225 @@
+#ifndef __DVDCREATE_H__
+#define __DVDCREATE_H__
+
+#include "arraylist.h"
+#include "batchrender.h"
+#include "bcwindowbase.h"
+#include "bcbutton.h"
+#include "bcdialog.h"
+#include "bcmenuitem.h"
+#include "bctextbox.h"
+#include "mwindow.h"
+
+#include "dvdcreate.inc"
+
+
+class CreateDVD_MenuItem : public BC_MenuItem
+{
+public:
+       CreateDVD_MenuItem(MWindow *mwindow);
+       int handle_event();
+       MWindow *mwindow;
+};
+
+
+class CreateDVD_Thread : public BC_DialogThread
+{
+       static const int64_t DVD_SIZE;
+       static const int DVD_STREAMS, DVD_WIDTH, DVD_HEIGHT;
+       static const double DVD_ASPECT_WIDTH, DVD_ASPECT_HEIGHT;
+       static const double DVD_WIDE_ASPECT_WIDTH, DVD_WIDE_ASPECT_HEIGHT;
+       static const int DVD_MAX_BITRATE, DVD_CHANNELS, DVD_WIDE_CHANNELS;
+       static const double DVD_FRAMERATE, DVD_SAMPLERATE, DVD_KAUDIO_RATE;
+public:
+       CreateDVD_Thread(MWindow *mwindow);
+       ~CreateDVD_Thread();
+       void handle_close_event(int result);
+       BC_Window* new_gui();
+       int option_presets();
+       int create_dvd_jobs(ArrayList<BatchRenderJob*> *jobs,
+               const char *tmp_path, const char *asset_title);
+       int insert_video_plugin(const char *title, KeyFrame *default_keyframe);
+       int resize_tracks();
+
+       MWindow *mwindow;
+       CreateDVD_GUI *gui;
+       char asset_title[BCTEXTLEN];
+       char tmp_path[BCTEXTLEN];
+       int use_deinterlace, use_inverse_telecine;
+       int use_scale, use_resize_tracks;
+       int use_wide_audio, use_wide_aspect;
+       int use_histogram, use_label_chapters;
+       int use_ffmpeg;
+};
+
+class CreateDVD_OK : public BC_OKButton
+{
+public:
+       CreateDVD_OK(CreateDVD_GUI *gui, int x, int y);
+       ~CreateDVD_OK();
+       int button_press_event();
+       int keypress_event();
+
+       CreateDVD_GUI *gui;
+};
+
+class CreateDVD_Cancel : public BC_CancelButton
+{
+public:
+       CreateDVD_Cancel(CreateDVD_GUI *gui, int x, int y);
+       ~CreateDVD_Cancel();
+       int button_press_event();
+
+       CreateDVD_GUI *gui;
+};
+
+
+class CreateDVD_DiskSpace : public BC_Title
+{
+public:
+       CreateDVD_DiskSpace(CreateDVD_GUI *gui, int x, int y);
+       ~CreateDVD_DiskSpace();
+       int64_t tmp_path_space();
+       void update();
+
+       CreateDVD_GUI *gui;
+};
+
+class CreateDVD_TmpPath : public BC_TextBox
+{
+public:
+       CreateDVD_TmpPath(CreateDVD_GUI *gui, int x, int y, int w);
+       ~CreateDVD_TmpPath();
+       int handle_event();
+
+       CreateDVD_GUI *gui;
+};
+
+
+class CreateDVD_AssetTitle : public BC_TextBox
+{
+public:
+       CreateDVD_AssetTitle(CreateDVD_GUI *gui, int x, int y, int w);
+       ~CreateDVD_AssetTitle();
+
+       CreateDVD_GUI *gui;
+};
+
+class CreateDVD_Deinterlace : public BC_CheckBox
+{
+public:
+       CreateDVD_Deinterlace(CreateDVD_GUI *gui, int x, int y);
+       ~CreateDVD_Deinterlace();
+       int handle_event();
+
+       CreateDVD_GUI *gui;
+};
+
+class CreateDVD_InverseTelecine : public BC_CheckBox
+{
+public:
+       CreateDVD_InverseTelecine(CreateDVD_GUI *gui, int x, int y);
+       ~CreateDVD_InverseTelecine();
+       int handle_event();
+
+       CreateDVD_GUI *gui;
+};
+
+class CreateDVD_Scale : public BC_CheckBox
+{
+public:
+       CreateDVD_Scale(CreateDVD_GUI *gui, int x, int y);
+       ~CreateDVD_Scale();
+
+       CreateDVD_GUI *gui;
+};
+
+class CreateDVD_ResizeTracks : public BC_CheckBox
+{
+public:
+       CreateDVD_ResizeTracks(CreateDVD_GUI *gui, int x, int y);
+       ~CreateDVD_ResizeTracks();
+
+       CreateDVD_GUI *gui;
+};
+
+class CreateDVD_Histogram : public BC_CheckBox
+{
+public:
+       CreateDVD_Histogram(CreateDVD_GUI *gui, int x, int y);
+       ~CreateDVD_Histogram();
+
+       CreateDVD_GUI *gui;
+};
+
+class CreateDVD_LabelChapters : public BC_CheckBox
+{
+public:
+       CreateDVD_LabelChapters(CreateDVD_GUI *gui, int x, int y);
+       ~CreateDVD_LabelChapters();
+
+       CreateDVD_GUI *gui;
+};
+
+class CreateDVD_WideAudio : public BC_CheckBox
+{
+public:
+       CreateDVD_WideAudio(CreateDVD_GUI *gui, int x, int y);
+       ~CreateDVD_WideAudio();
+
+       CreateDVD_GUI *gui;
+};
+
+class CreateDVD_WideAspect : public BC_CheckBox
+{
+public:
+       CreateDVD_WideAspect(CreateDVD_GUI *gui, int x, int y);
+       ~CreateDVD_WideAspect();
+
+       CreateDVD_GUI *gui;
+};
+
+class CreateDVD_UseFFMpeg : public BC_CheckBox
+{
+public:
+       CreateDVD_UseFFMpeg(CreateDVD_GUI *gui, int x, int y);
+       ~CreateDVD_UseFFMpeg();
+
+       CreateDVD_GUI *gui;
+};
+
+class CreateDVD_GUI : public BC_Window
+{
+public:
+       CreateDVD_GUI(CreateDVD_Thread *thread,
+               int x, int y, int w, int h);
+       ~CreateDVD_GUI();
+
+       void create_objects();
+       int resize_event(int w, int h);
+       int translation_event();
+       int close_event();
+
+       int64_t needed_disk_space;
+       CreateDVD_Thread *thread;
+       int at_x, at_y;
+       CreateDVD_AssetTitle *asset_title;
+       int tmp_x, tmp_y;
+       CreateDVD_TmpPath *tmp_path;
+       CreateDVD_DiskSpace *disk_space;
+       CreateDVD_Deinterlace *need_deinterlace;
+       CreateDVD_InverseTelecine *need_inverse_telecine;
+       CreateDVD_Scale *need_scale;
+       CreateDVD_UseFFMpeg *need_use_ffmpeg;
+       CreateDVD_ResizeTracks *need_resize_tracks;
+       CreateDVD_Histogram *need_histogram;
+       CreateDVD_WideAudio *need_wide_audio;
+       CreateDVD_WideAspect *need_wide_aspect;
+       CreateDVD_LabelChapters *need_label_chapters;
+       int ok_x, ok_y, ok_w, ok_h;
+       CreateDVD_OK *ok;
+       int cancel_x, cancel_y, cancel_w, cancel_h;
+       CreateDVD_Cancel *cancel;
+};
+
+#endif