Fix lots of macOS warnings by using a different boost/bind include.
[dcpomatic.git] / src / tools / dcpomatic.cc
index fe76c60436f2a50732872abc810a4a74444d5e66..d6699338828bc3eaa816dcbd657cb4ba17258d4d 100644 (file)
 #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"
-#include "wx/initial_setup_dialog.h"
 #include "wx/send_i18n_dialog.h"
 #include "wx/i18n_hook.h"
 #include "lib/film.h"
@@ -131,6 +130,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
@@ -228,7 +230,7 @@ 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,
@@ -322,7 +324,7 @@ 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);
@@ -878,7 +880,11 @@ private:
                _film->write_metadata ();
 
                if (send_to_other_tool (BATCH_JOB_PORT, &start_batch_converter, _film->directory()->string())) {
+#ifdef DCPOMATIC_OSX
+                       error_dialog (this, _("Could not start the batch converter.  You may need to download it from dcpomatic.com."));
+#else
                        error_dialog (this, _("Could not find batch converter."));
+#endif
                }
        }
 
@@ -889,7 +895,11 @@ private:
                }
 
                if (send_to_other_tool (PLAYER_PLAY_PORT, &start_player, _film->dir(_film->dcp_name(false)).string())) {
+#ifdef DCPOMATIC_OSX
+                       error_dialog (this, _("Could not start the player.  You may need to download it from dcpomatic.com."));
+#else
                        error_dialog (this, _("Could not find player."));
+#endif
                }
        }
 
@@ -955,9 +965,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(
@@ -972,21 +983,11 @@ private:
                        }
 
                        shared_ptr<TranscodeJob> job (new TranscodeJob (_film));
-                       if (d->format() == EXPORT_FORMAT_SUBTITLES_DCP) {
-                               job->set_encoder (
-                                       shared_ptr<SubtitleEncoder>(new SubtitleEncoder(_film, job, d->path(), d->split_reels()))
-                                       );
-                       } else {
-                               job->set_encoder (
-                                       shared_ptr<FFmpegEncoder> (
-                                               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<dcp::Key>(), optional<string>()
-#endif
-                                                       )
-                                               )
-                                       );
-                       }
+                       job->set_encoder (
+                               shared_ptr<FFmpegEncoder> (
+                                       new FFmpegEncoder (_film, job, d->path(), d->format(), d->mixdown_to_stereo(), d->split_reels(), d->split_streams(), d->x264_crf())
+                                       )
+                               );
                        JobManager::instance()->add (job);
                }
                d->Destroy ();
@@ -995,23 +996,11 @@ private:
 
        void jobs_export_subtitles ()
        {
-               ExportSubtitlesDialog* d = new ExportSubtitlesDialog (this, _film->isdcf_name(true));
+               ExportSubtitlesDialog* d = new ExportSubtitlesDialog (this, _film->reels().size(), _film->interop());
                if (d->ShowModal() == wxID_OK) {
-                       if (boost::filesystem::exists(d->path())) {
-                               bool ok = confirm_dialog(
-                                               this,
-                                               wxString::Format (_("File %s already exists.  Do you want to overwrite it?"), std_to_wx(d->path().string()).data())
-                                               );
-
-                               if (!ok) {
-                                       d->Destroy ();
-                                       return;
-                               }
-                       }
-
                        shared_ptr<TranscodeJob> job (new TranscodeJob (_film));
                        job->set_encoder (
-                               shared_ptr<SubtitleEncoder>(new SubtitleEncoder(_film, job, d->path(), d->split_reels()))
+                               shared_ptr<SubtitleEncoder>(new SubtitleEncoder(_film, job, d->path(), _film->isdcf_name(true), d->split_reels(), d->include_font()))
                                );
                        JobManager::instance()->add (job);
                }
@@ -1351,7 +1340,7 @@ 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 video file...\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);
@@ -1626,13 +1615,6 @@ private:
                        _frame->Maximize ();
                        close_splash ();
 
-                       if (!Config::instance()->nagged(Config::NAG_INITIAL_SETUP)) {
-                               InitialSetupDialog* d = new InitialSetupDialog ();
-                               d->ShowModal ();
-                               d->Destroy ();
-                               Config::instance()->set_nagged(Config::NAG_INITIAL_SETUP, true);
-                       }
-
                        if (running_32_on_64 ()) {
                                NagDialog::maybe_nag (
                                        _frame, Config::NAG_32_ON_64,