X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Ftools%2Fdcpomatic.cc;h=60f11752e89988687192314ec451490e0094d262;hb=c04fec82d25127fafa73c3daff87bece9aa8c8e8;hp=3275984e641d090fa82be86ee56cf34fcc46eca5;hpb=563fc75855b9649cf135cf137cc1b0c43ebc8286;p=dcpomatic.git diff --git a/src/tools/dcpomatic.cc b/src/tools/dcpomatic.cc index 3275984e6..60f11752e 100644 --- a/src/tools/dcpomatic.cc +++ b/src/tools/dcpomatic.cc @@ -45,7 +45,8 @@ #include "wx/save_template_dialog.h" #include "wx/templates_dialog.h" #include "wx/nag_dialog.h" -#include "wx/export_dialog.h" +#include "wx/export_subtitles_dialog.h" +#include "wx/export_video_file_dialog.h" #include "wx/paste_dialog.h" #include "wx/focus_manager.h" #include "wx/html_dialog.h" @@ -130,6 +131,9 @@ using boost::optional; using boost::function; using boost::is_any_of; using boost::algorithm::find; +#if BOOST_VERSION >= 106100 +using namespace boost::placeholders; +#endif using dcp::raw_convert; class FilmChangedClosingDialog : public boost::noncopyable @@ -227,7 +231,8 @@ enum { ID_jobs_make_kdms, ID_jobs_make_dkdms, ID_jobs_make_self_dkdm, - ID_jobs_export, + ID_jobs_export_video_file, + ID_jobs_export_subtitles, ID_jobs_send_dcp_to_tms, ID_jobs_show_dcp, ID_jobs_open_dcp_in_player, @@ -320,7 +325,8 @@ public: Bind (wxEVT_MENU, boost::bind (&DOMFrame::jobs_make_dkdms, this), ID_jobs_make_dkdms); Bind (wxEVT_MENU, boost::bind (&DOMFrame::jobs_make_dcp_batch, this), ID_jobs_make_dcp_batch); Bind (wxEVT_MENU, boost::bind (&DOMFrame::jobs_make_self_dkdm, this), ID_jobs_make_self_dkdm); - Bind (wxEVT_MENU, boost::bind (&DOMFrame::jobs_export, this), ID_jobs_export); + Bind (wxEVT_MENU, boost::bind (&DOMFrame::jobs_export_video_file, this), ID_jobs_export_video_file); + Bind (wxEVT_MENU, boost::bind (&DOMFrame::jobs_export_subtitles, this), ID_jobs_export_subtitles); Bind (wxEVT_MENU, boost::bind (&DOMFrame::jobs_send_dcp_to_tms, this), ID_jobs_send_dcp_to_tms); Bind (wxEVT_MENU, boost::bind (&DOMFrame::jobs_show_dcp, this), ID_jobs_show_dcp); Bind (wxEVT_MENU, boost::bind (&DOMFrame::jobs_open_dcp_in_player, this), ID_jobs_open_dcp_in_player); @@ -952,9 +958,10 @@ private: d->Destroy (); } - void jobs_export () + + void jobs_export_video_file () { - ExportDialog* d = new ExportDialog (this, _film->isdcf_name(true)); + ExportVideoFileDialog* d = new ExportVideoFileDialog (this, _film->isdcf_name(true)); if (d->ShowModal() == wxID_OK) { if (boost::filesystem::exists(d->path())) { bool ok = confirm_dialog( @@ -969,26 +976,35 @@ private: } shared_ptr job (new TranscodeJob (_film)); - if (d->format() == EXPORT_FORMAT_SUBTITLES_DCP) { - job->set_encoder ( - shared_ptr(new SubtitleEncoder(_film, job, d->path(), d->split_reels())) - ); - } else { - job->set_encoder ( - shared_ptr ( - new FFmpegEncoder (_film, job, d->path(), d->format(), d->mixdown_to_stereo(), d->split_reels(), d->split_streams(), d->x264_crf() + job->set_encoder ( + shared_ptr ( + new FFmpegEncoder (_film, job, d->path(), d->format(), d->mixdown_to_stereo(), d->split_reels(), d->split_streams(), d->x264_crf() #ifdef DCPOMATIC_VARIANT_SWAROOP - , optional(), optional() + , optional(), optional() #endif - ) ) - ); - } + ) + ); JobManager::instance()->add (job); } d->Destroy (); } + + void jobs_export_subtitles () + { + ExportSubtitlesDialog* d = new ExportSubtitlesDialog (this, _film->reels().size(), _film->interop()); + if (d->ShowModal() == wxID_OK) { + shared_ptr job (new TranscodeJob (_film)); + job->set_encoder ( + shared_ptr(new SubtitleEncoder(_film, job, d->path(), _film->isdcf_name(true), d->split_reels(), d->include_font())) + ); + JobManager::instance()->add (job); + } + d->Destroy (); + } + + void jobs_send_dcp_to_tms () { _film->send_dcp_to_tms (); @@ -1321,7 +1337,8 @@ private: add_item (jobs_menu, _("Make &DKDMs...\tCtrl-D"), ID_jobs_make_dkdms, NEEDS_FILM); add_item (jobs_menu, _("Make DKDM for DCP-o-matic..."), ID_jobs_make_self_dkdm, NEEDS_FILM | NEEDS_ENCRYPTION); jobs_menu->AppendSeparator (); - add_item (jobs_menu, _("Export...\tCtrl-E"), ID_jobs_export, NEEDS_FILM); + add_item (jobs_menu, _("Export video file...\tCtrl-E"), ID_jobs_export_video_file, NEEDS_FILM); + add_item (jobs_menu, _("Export subtitles..."), ID_jobs_export_subtitles, NEEDS_FILM); jobs_menu->AppendSeparator (); add_item (jobs_menu, _("&Send DCP to TMS"), ID_jobs_send_dcp_to_tms, NEEDS_FILM | NOT_DURING_DCP_CREATION | NEEDS_CPL);