_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;
_dcp_issuer = f.string_child ("DCPIssuer");
}
- _default_upload_after_make_dcp = f.optional_bool_child("DefaultUploadAfterMakeDCP").get_value_or (false);
+ optional<bool> 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) {
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 <code><ContentVersion></code>,
<code><AudioLanguage></code>, <code><SubtitleLanguage></code>, <code><Territory></code>,
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) {
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) {
the home directory will be offered.
*/
boost::optional<boost::filesystem::path> _default_kdm_directory;
- bool _default_upload_after_make_dcp;
+ bool _upload_after_make_dcp;
std::list<boost::shared_ptr<Cinema> > _cinemas;
std::list<boost::shared_ptr<DKDMRecipient> > _dkdm_recipients;
std::string _mail_server;
, _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)
}
root->add_child("ReelType")->add_child_text (raw_convert<string> (static_cast<int> (_reel_type)));
root->add_child("ReelLength")->add_child_text (raw_convert<string> (_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<dcp::Marker, DCPTime>::const_iterator i = _markers.begin(); i != _markers.end(); ++i) {
_reel_type = static_cast<ReelType> (f.optional_number_child<int>("ReelType").get_value_or (static_cast<int>(REELTYPE_SINGLE)));
_reel_length = f.optional_number_child<int64_t>("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);
_reel_length = r;
}
-void
-Film::set_upload_after_make_dcp (bool u)
-{
- ChangeSignaller<Film> ch (this, UPLOAD_AFTER_MAKE_DCP);
- _upload_after_make_dcp = u;
-}
-
void
Film::set_reencode_j2k (bool r)
{
_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;
}
AUDIO_PROCESSOR,
REEL_TYPE,
REEL_LENGTH,
- UPLOAD_AFTER_MAKE_DCP,
REENCODE_J2K,
MARKERS,
RATINGS,
return _reel_length;
}
- bool upload_after_make_dcp () const {
- return _upload_after_make_dcp;
- }
-
std::string context_id () const {
return _context_id;
}
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);
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;
/*
- Copyright (C) 2012-2019 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2012-2020 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
* @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"
}
/* XXX: this shouldn't be here */
- if (_film->upload_after_make_dcp() && dynamic_pointer_cast<DCPEncoder>(_encoder)) {
+ if (Config::instance()->upload_after_make_dcp() && dynamic_pointer_cast<DCPEncoder>(_encoder)) {
shared_ptr<Job> job (new UploadJob (_film));
JobManager::instance()->add (job);
}
_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..."));
_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));
_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);
_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);
_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 ()
{
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;
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<bool>(_film));
_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());
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 ();
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;
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));
_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 ()
checked_set (_dcp_audio_channels, locale_convert<string> (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 ()
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;
wxChoice* _dcp_content_type;
wxChoice* _dcp_audio_channels;
wxChoice* _standard;
- wxCheckBox* _upload_after_make_dcp;
};
class EncodingServersPage : public StandardPage
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);
_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));
{
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 ());
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<FileTransferProtocol>(_tms_protocol->GetSelection()));
Config::instance()->set_tms_password (_tms_password->get());
}
+ CheckBox* _upload;
wxChoice* _tms_protocol;
wxTextCtrl* _tms_ip;
wxTextCtrl* _tms_path;