From d1957e43ef4a3966e35b9f28b8faf96e925d2310 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 8 Jun 2020 18:21:37 +0200 Subject: [PATCH] Move upload-DCP-to-TMS button to preferences. --- src/lib/config.cc | 12 ++++++++---- src/lib/config.h | 10 +++++----- src/lib/film.cc | 11 ----------- src/lib/film.h | 7 ------- src/lib/transcode_job.cc | 5 +++-- src/wx/dcp_panel.cc | 22 ---------------------- src/wx/dcp_panel.h | 2 -- src/wx/full_config_dialog.cc | 23 +++++++++++------------ 8 files changed, 27 insertions(+), 65 deletions(-) diff --git a/src/lib/config.cc b/src/lib/config.cc index a138cc879..b1f2a4f18 100644 --- a/src/lib/config.cc +++ b/src/lib/config.cc @@ -104,7 +104,7 @@ Config::set_defaults () _default_j2k_bandwidth = 150000000; _default_audio_delay = 0; _default_interop = true; - _default_upload_after_make_dcp = false; + _upload_after_make_dcp = false; _mail_server = ""; _mail_port = 25; _mail_protocol = EMAIL_PROTOCOL_AUTO; @@ -317,7 +317,11 @@ try _dcp_issuer = f.string_child ("DCPIssuer"); } - _default_upload_after_make_dcp = f.optional_bool_child("DefaultUploadAfterMakeDCP").get_value_or (false); + optional up = f.optional_bool_child("UploadAfterMakeDCP"); + if (!up) { + up = f.optional_bool_child("DefaultUploadAfterMakeDCP"); + } + _upload_after_make_dcp = up.get_value_or (false); _dcp_creator = f.optional_string_child ("DCPCreator").get_value_or (""); if (version && version.get() >= 2) { @@ -725,8 +729,8 @@ Config::write_config () const root->add_child("DCPIssuer")->add_child_text (_dcp_issuer); /* [XML] DCPIssuer Creator text to write into CPL files. */ root->add_child("DCPCreator")->add_child_text (_dcp_creator); - /* [XML] DefaultUploadAfterMakeDCP 1 to default to uploading to a TMS after making a DCP, 0 to default to no upload. */ - root->add_child("DefaultUploadAfterMakeDCP")->add_child_text (_default_upload_after_make_dcp ? "1" : "0"); + /* [XML] UploadAfterMakeDCP 1 to upload to a TMS after making a DCP, 0 for no upload. */ + root->add_child("UploadAfterMakeDCP")->add_child_text (_upload_after_make_dcp ? "1" : "0"); /* [XML] ISDCFMetadata Default ISDCF metadata to use for new films; child tags are <ContentVersion>, <AudioLanguage>, <SubtitleLanguage>, <Territory>, diff --git a/src/lib/config.h b/src/lib/config.h index 23f7ce0b3..4b7488d15 100644 --- a/src/lib/config.h +++ b/src/lib/config.h @@ -214,8 +214,8 @@ public: return _default_interop; } - bool default_upload_after_make_dcp () { - return _default_upload_after_make_dcp; + bool upload_after_make_dcp () { + return _upload_after_make_dcp; } void set_default_kdm_directory (boost::filesystem::path d) { @@ -710,8 +710,8 @@ public: maybe_set (_default_interop, i); } - void set_default_upload_after_make_dcp (bool u) { - maybe_set (_default_upload_after_make_dcp, u); + void set_upload_after_make_dcp (bool u) { + maybe_set (_upload_after_make_dcp, u); } void set_mail_server (std::string s) { @@ -1236,7 +1236,7 @@ private: the home directory will be offered. */ boost::optional _default_kdm_directory; - bool _default_upload_after_make_dcp; + bool _upload_after_make_dcp; std::list > _cinemas; std::list > _dkdm_recipients; std::string _mail_server; diff --git a/src/lib/film.cc b/src/lib/film.cc index 93a22d186..c04f2996f 100644 --- a/src/lib/film.cc +++ b/src/lib/film.cc @@ -160,7 +160,6 @@ Film::Film (optional dir) , _audio_processor (0) , _reel_type (REELTYPE_SINGLE) , _reel_length (2000000000) - , _upload_after_make_dcp (Config::instance()->default_upload_after_make_dcp()) , _reencode_j2k (false) , _user_explicit_video_frame_rate (false) , _user_explicit_container (false) @@ -454,7 +453,6 @@ Film::metadata (bool with_content_paths) const } root->add_child("ReelType")->add_child_text (raw_convert (static_cast (_reel_type))); root->add_child("ReelLength")->add_child_text (raw_convert (_reel_length)); - root->add_child("UploadAfterMakeDCP")->add_child_text (_upload_after_make_dcp ? "1" : "0"); root->add_child("ReencodeJ2K")->add_child_text (_reencode_j2k ? "1" : "0"); root->add_child("UserExplicitVideoFrameRate")->add_child_text(_user_explicit_video_frame_rate ? "1" : "0"); for (map::const_iterator i = _markers.begin(); i != _markers.end(); ++i) { @@ -602,7 +600,6 @@ Film::read_metadata (optional path) _reel_type = static_cast (f.optional_number_child("ReelType").get_value_or (static_cast(REELTYPE_SINGLE))); _reel_length = f.optional_number_child("ReelLength").get_value_or (2000000000); - _upload_after_make_dcp = f.optional_bool_child("UploadAfterMakeDCP").get_value_or (false); _reencode_j2k = f.optional_bool_child("ReencodeJ2K").get_value_or(false); _user_explicit_video_frame_rate = f.optional_bool_child("UserExplicitVideoFrameRate").get_value_or(false); @@ -1084,13 +1081,6 @@ Film::set_reel_length (int64_t r) _reel_length = r; } -void -Film::set_upload_after_make_dcp (bool u) -{ - ChangeSignaller ch (this, UPLOAD_AFTER_MAKE_DCP); - _upload_after_make_dcp = u; -} - void Film::set_reencode_j2k (bool r) { @@ -1748,7 +1738,6 @@ Film::use_template (string name) _audio_processor = _template_film->_audio_processor; _reel_type = _template_film->_reel_type; _reel_length = _template_film->_reel_length; - _upload_after_make_dcp = _template_film->_upload_after_make_dcp; _isdcf_metadata = _template_film->_isdcf_metadata; } diff --git a/src/lib/film.h b/src/lib/film.h index 7f7590210..64bb159c7 100644 --- a/src/lib/film.h +++ b/src/lib/film.h @@ -224,7 +224,6 @@ public: AUDIO_PROCESSOR, REEL_TYPE, REEL_LENGTH, - UPLOAD_AFTER_MAKE_DCP, REENCODE_J2K, MARKERS, RATINGS, @@ -307,10 +306,6 @@ public: return _reel_length; } - bool upload_after_make_dcp () const { - return _upload_after_make_dcp; - } - std::string context_id () const { return _context_id; } @@ -358,7 +353,6 @@ public: void set_audio_processor (AudioProcessor const * processor); void set_reel_type (ReelType); void set_reel_length (int64_t); - void set_upload_after_make_dcp (bool); void set_reencode_j2k (bool); void set_marker (dcp::Marker type, dcpomatic::DCPTime time); void unset_marker (dcp::Marker type); @@ -450,7 +444,6 @@ private: ReelType _reel_type; /** Desired reel length in bytes, if _reel_type == REELTYPE_BY_LENGTH */ int64_t _reel_length; - bool _upload_after_make_dcp; bool _reencode_j2k; /** true if the user has ever explicitly set the video frame rate of this film */ bool _user_explicit_video_frame_rate; diff --git a/src/lib/transcode_job.cc b/src/lib/transcode_job.cc index fb586b082..6d73a3673 100644 --- a/src/lib/transcode_job.cc +++ b/src/lib/transcode_job.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2012-2019 Carl Hetherington + Copyright (C) 2012-2020 Carl Hetherington This file is part of DCP-o-matic. @@ -22,6 +22,7 @@ * @brief A job which transcodes from one format to another. */ +#include "config.h" #include "transcode_job.h" #include "dcp_encoder.h" #include "upload_job.h" @@ -101,7 +102,7 @@ TranscodeJob::run () } /* XXX: this shouldn't be here */ - if (_film->upload_after_make_dcp() && dynamic_pointer_cast(_encoder)) { + if (Config::instance()->upload_after_make_dcp() && dynamic_pointer_cast(_encoder)) { shared_ptr job (new UploadJob (_film)); JobManager::instance()->add (job); } diff --git a/src/wx/dcp_panel.cc b/src/wx/dcp_panel.cc index 4472a14bf..0841ad399 100644 --- a/src/wx/dcp_panel.cc +++ b/src/wx/dcp_panel.cc @@ -111,8 +111,6 @@ DCPPanel::DCPPanel (wxNotebook* n, shared_ptr film, weak_ptr v _standard_label = create_label (_panel, _("Standard"), true); _standard = new wxChoice (_panel, wxID_ANY); - _upload_after_make_dcp = new CheckBox (_panel, _("Upload DCP to TMS after it is made")); - _markers = new Button (_panel, _("Markers...")); _metadata = new Button (_panel, _("Metadata...")); @@ -131,7 +129,6 @@ DCPPanel::DCPPanel (wxNotebook* n, shared_ptr film, weak_ptr v _reel_type->Bind (wxEVT_CHOICE, boost::bind (&DCPPanel::reel_type_changed, this)); _reel_length->Bind (wxEVT_SPINCTRL, boost::bind (&DCPPanel::reel_length_changed, this)); _standard->Bind (wxEVT_CHOICE, boost::bind (&DCPPanel::standard_changed, this)); - _upload_after_make_dcp->Bind (wxEVT_CHECKBOX, boost::bind (&DCPPanel::upload_after_make_dcp_changed, this)); _markers->Bind (wxEVT_BUTTON, boost::bind (&DCPPanel::markers_clicked, this)); _metadata->Bind (wxEVT_BUTTON, boost::bind (&DCPPanel::metadata_clicked, this)); @@ -205,7 +202,6 @@ DCPPanel::add_to_grid () _reel_length_gb_label->Show (full); _standard_label->Show (full); _standard->Show (full); - _upload_after_make_dcp->Show (full); _markers->Show (full); _metadata->Show (full); _reencode_j2k->Show (full); @@ -229,9 +225,6 @@ DCPPanel::add_to_grid () _grid->Add (_standard, wxGBPosition (r, 1), wxDefaultSpan, wxALIGN_CENTER_VERTICAL); ++r; - _grid->Add (_upload_after_make_dcp, wxGBPosition (r, 0), wxGBSpan (1, 2)); - ++r; - wxBoxSizer* extra = new wxBoxSizer (wxHORIZONTAL); extra->Add (_markers, 1, wxRIGHT, DCPOMATIC_SIZER_X_GAP); extra->Add (_metadata, 1, wxRIGHT, DCPOMATIC_SIZER_X_GAP); @@ -327,16 +320,6 @@ DCPPanel::standard_changed () _film->set_interop (_standard->GetSelection() == 1); } -void -DCPPanel::upload_after_make_dcp_changed () -{ - if (!_film) { - return; - } - - _film->set_upload_after_make_dcp (_upload_after_make_dcp->GetValue ()); -} - void DCPPanel::markers_clicked () { @@ -466,9 +449,6 @@ DCPPanel::film_changed (int p) case Film::REEL_LENGTH: checked_set (_reel_length, _film->reel_length() / 1000000000LL); break; - case Film::UPLOAD_AFTER_MAKE_DCP: - checked_set (_upload_after_make_dcp, _film->upload_after_make_dcp ()); - break; case Film::CONTENT: setup_dcp_name (); break; @@ -589,7 +569,6 @@ DCPPanel::set_film (shared_ptr film) film_changed (Film::AUDIO_PROCESSOR); film_changed (Film::REEL_TYPE); film_changed (Film::REEL_LENGTH); - film_changed (Film::UPLOAD_AFTER_MAKE_DCP); film_changed (Film::REENCODE_J2K); set_general_sensitivity(static_cast(_film)); @@ -613,7 +592,6 @@ DCPPanel::setup_sensitivity () _encrypted->Enable (_generally_sensitive); _reel_type->Enable (_generally_sensitive && _film && !_film->references_dcp_video() && !_film->references_dcp_audio()); _reel_length->Enable (_generally_sensitive && _film && _film->reel_type() == REELTYPE_BY_LENGTH); - _upload_after_make_dcp->Enable (_generally_sensitive); _markers->Enable (_generally_sensitive && _film && !_film->interop()); _metadata->Enable (_generally_sensitive); _frame_rate_choice->Enable (_generally_sensitive && _film && !_film->references_dcp_video()); diff --git a/src/wx/dcp_panel.h b/src/wx/dcp_panel.h index 258471ffd..7a7d13897 100644 --- a/src/wx/dcp_panel.h +++ b/src/wx/dcp_panel.h @@ -77,7 +77,6 @@ private: void show_audio_clicked (); void reel_type_changed (); void reel_length_changed (); - void upload_after_make_dcp_changed (); void markers_clicked (); void metadata_clicked (); void reencode_j2k_changed (); @@ -143,7 +142,6 @@ private: wxStaticText* _reel_length_label; wxStaticText* _reel_length_gb_label; wxSpinCtrl* _reel_length; - wxCheckBox* _upload_after_make_dcp; wxButton* _markers; wxButton* _metadata; wxSizer* _audio_panel_sizer; diff --git a/src/wx/full_config_dialog.cc b/src/wx/full_config_dialog.cc index a371690bd..ab3dc0800 100644 --- a/src/wx/full_config_dialog.cc +++ b/src/wx/full_config_dialog.cc @@ -379,9 +379,6 @@ private: table->Add (_kdm_directory, 1, wxEXPAND); - _upload_after_make_dcp = new CheckBox (_panel, _("Default to enabling upload of DCP to TMS")); - table->Add (_upload_after_make_dcp, 1, wxEXPAND); - _still_length->SetRange (1, 3600); _still_length->Bind (wxEVT_SPINCTRL, boost::bind (&DefaultsPage::still_length_changed, this)); @@ -414,8 +411,6 @@ private: _standard->Append (_("SMPTE")); _standard->Append (_("Interop")); _standard->Bind (wxEVT_CHOICE, boost::bind (&DefaultsPage::standard_changed, this)); - - _upload_after_make_dcp->Bind (wxEVT_CHECKBOX, boost::bind (&DefaultsPage::upload_after_make_dcp_changed, this)); } void config_changed () @@ -444,7 +439,6 @@ private: checked_set (_dcp_audio_channels, locale_convert (config->default_dcp_audio_channels())); checked_set (_audio_delay, config->default_audio_delay ()); checked_set (_standard, config->default_interop() ? 1 : 0); - checked_set (_upload_after_make_dcp, config->default_upload_after_make_dcp()); } void j2k_bandwidth_changed () @@ -507,11 +501,6 @@ private: Config::instance()->set_default_interop (_standard->GetSelection() == 1); } - void upload_after_make_dcp_changed () - { - Config::instance()->set_default_upload_after_make_dcp (_upload_after_make_dcp->GetValue ()); - } - wxSpinCtrl* _j2k_bandwidth; wxSpinCtrl* _audio_delay; wxButton* _isdcf_metadata_button; @@ -527,7 +516,6 @@ private: wxChoice* _dcp_content_type; wxChoice* _dcp_audio_channels; wxChoice* _standard; - wxCheckBox* _upload_after_make_dcp; }; class EncodingServersPage : public StandardPage @@ -612,6 +600,9 @@ public: private: void setup () { + _upload = new CheckBox (_panel, _("Upload DCP to TMS after creation")); + _panel->GetSizer()->Add (_upload, 0, wxALL | wxEXPAND, _border); + wxFlexGridSizer* table = new wxFlexGridSizer (2, DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP); table->AddGrowableCol (1, 1); _panel->GetSizer()->Add (table, 1, wxALL | wxEXPAND, _border); @@ -639,6 +630,7 @@ private: _tms_protocol->Append (_("SCP (for AAM and Doremi)")); _tms_protocol->Append (_("FTP (for Dolby)")); + _upload->Bind (wxEVT_CHECKBOX, boost::bind(&TMSPage::upload_changed, this)); _tms_protocol->Bind (wxEVT_CHOICE, boost::bind (&TMSPage::tms_protocol_changed, this)); _tms_ip->Bind (wxEVT_TEXT, boost::bind (&TMSPage::tms_ip_changed, this)); _tms_path->Bind (wxEVT_TEXT, boost::bind (&TMSPage::tms_path_changed, this)); @@ -650,6 +642,7 @@ private: { Config* config = Config::instance (); + checked_set (_upload, config->upload_after_make_dcp()); checked_set (_tms_protocol, config->tms_protocol ()); checked_set (_tms_ip, config->tms_ip ()); checked_set (_tms_path, config->tms_path ()); @@ -657,6 +650,11 @@ private: checked_set (_tms_password, config->tms_password ()); } + void upload_changed () + { + Config::instance()->set_upload_after_make_dcp (_upload->GetValue()); + } + void tms_protocol_changed () { Config::instance()->set_tms_protocol(static_cast(_tms_protocol->GetSelection())); @@ -682,6 +680,7 @@ private: Config::instance()->set_tms_password (_tms_password->get()); } + CheckBox* _upload; wxChoice* _tms_protocol; wxTextCtrl* _tms_ip; wxTextCtrl* _tms_path; -- 2.30.2