X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Ffull_config_dialog.cc;h=342657e29043c88a28501875ed1faf5c1cf06e32;hb=54ca5a01f0648d2a5101fab0f50b41d8c90612e4;hp=1c5a9e3f668f3cb604683f54cd916a783f31e4d0;hpb=d9e6b138e84e7a8504075b8581cca4d0fabfbc40;p=dcpomatic.git diff --git a/src/wx/full_config_dialog.cc b/src/wx/full_config_dialog.cc index 1c5a9e3f6..342657e29 100644 --- a/src/wx/full_config_dialog.cc +++ b/src/wx/full_config_dialog.cc @@ -116,8 +116,6 @@ private: table->Add (export_cinemas, wxGBPosition (r, 2)); ++r; - add_play_sound_controls (table, r); - #ifdef DCPOMATIC_HAVE_EBUR128_PATCHED_FFMPEG _analyse_ebur128 = new CheckBox (_panel, _("Find integrated loudness, true peak and loudness range when analysing audio")); table->Add (_analyse_ebur128, wxGBPosition (r, 0), wxGBSpan (1, 2)); @@ -135,12 +133,34 @@ private: add_label_to_sizer (bottom_table, _panel, _("Issuer"), true); _issuer = new wxTextCtrl (_panel, wxID_ANY); + _issuer->SetToolTip (_("This will be written to the DCP's XML files as the . If it is blank, a default value mentioning DCP-o-matic will be used.")); bottom_table->Add (_issuer, 1, wxALL | wxEXPAND); add_label_to_sizer (bottom_table, _panel, _("Creator"), true); _creator = new wxTextCtrl (_panel, wxID_ANY); + _creator->SetToolTip (_("This will be written to the DCP's XML files as the . If it is blank, a default value mentioning DCP-o-matic will be used.")); bottom_table->Add (_creator, 1, wxALL | wxEXPAND); + add_label_to_sizer (bottom_table, _panel, _("Company name"), true); + _company_name = new wxTextCtrl (_panel, wxID_ANY); + _company_name->SetToolTip (_("This will be written to the DCP's MXF files as the 'company name'. If it is blank, a default value mentioning libdcp (an internal DCP-o-matic library) will be used.")); + bottom_table->Add (_company_name, 1, wxALL | wxEXPAND); + + add_label_to_sizer (bottom_table, _panel, _("Product name"), true); + _product_name = new wxTextCtrl (_panel, wxID_ANY); + _product_name->SetToolTip (_("This will be written to the DCP's MXF files as the 'product name'. If it is blank, a default value mentioning libdcp (an internal DCP-o-matic library) will be used.")); + bottom_table->Add (_product_name, 1, wxALL | wxEXPAND); + + add_label_to_sizer (bottom_table, _panel, _("Product version"), true); + _product_version = new wxTextCtrl (_panel, wxID_ANY); + _product_version->SetToolTip (_("This will be written to the DCP's MXF files as the 'product version'. If it is blank, a default value mentioning libdcp (an internal DCP-o-matic library) will be used.")); + bottom_table->Add (_product_version, 1, wxALL | wxEXPAND); + + add_label_to_sizer (bottom_table, _panel, _("JPEG2000 comment"), true); + _j2k_comment = new wxTextCtrl (_panel, wxID_ANY); + _j2k_comment->SetToolTip (_("This will be written to the DCP's JPEG2000 data as a comment. If it is blank, a default value mentioning libdcp (an internal DCP-o-matic library) will be used.")); + bottom_table->Add (_j2k_comment, 1, wxALL | wxEXPAND); + table->Add (bottom_table, wxGBPosition (r, 0), wxGBSpan (2, 2), wxEXPAND); ++r; @@ -164,6 +184,10 @@ private: _issuer->Bind (wxEVT_TEXT, boost::bind (&FullGeneralPage::issuer_changed, this)); _creator->Bind (wxEVT_TEXT, boost::bind (&FullGeneralPage::creator_changed, this)); + _company_name->Bind (wxEVT_TEXT, boost::bind (&FullGeneralPage::company_name_changed, this)); + _product_name->Bind (wxEVT_TEXT, boost::bind (&FullGeneralPage::product_name_changed, this)); + _product_version->Bind (wxEVT_TEXT, boost::bind (&FullGeneralPage::product_version_changed, this)); + _j2k_comment->Bind (wxEVT_TEXT, boost::bind (&FullGeneralPage::j2k_comment_changed, this)); } void config_changed () @@ -186,6 +210,10 @@ private: checked_set (_automatic_audio_analysis, config->automatic_audio_analysis ()); checked_set (_issuer, config->dcp_issuer ()); checked_set (_creator, config->dcp_creator ()); + checked_set (_company_name, config->dcp_company_name ()); + checked_set (_product_name, config->dcp_product_name ()); + checked_set (_product_version, config->dcp_product_version ()); + checked_set (_j2k_comment, config->dcp_j2k_comment ()); checked_set (_config_file, config->config_file()); checked_set (_cinemas_file, config->cinemas_file()); @@ -247,6 +275,26 @@ private: Config::instance()->set_dcp_creator (wx_to_std (_creator->GetValue ())); } + void company_name_changed () + { + Config::instance()->set_dcp_company_name (wx_to_std(_company_name->GetValue())); + } + + void product_name_changed () + { + Config::instance()->set_dcp_product_name (wx_to_std(_product_name->GetValue())); + } + + void product_version_changed () + { + Config::instance()->set_dcp_product_version (wx_to_std(_product_version->GetValue())); + } + + void j2k_comment_changed () + { + Config::instance()->set_dcp_j2k_comment (wx_to_std(_j2k_comment->GetValue())); + } + void config_file_changed () { Config* config = Config::instance(); @@ -289,6 +337,10 @@ private: wxCheckBox* _automatic_audio_analysis; wxTextCtrl* _issuer; wxTextCtrl* _creator; + wxTextCtrl* _company_name; + wxTextCtrl* _product_name; + wxTextCtrl* _product_version; + wxTextCtrl* _j2k_comment; }; class DefaultsPage : public StandardPage @@ -342,10 +394,6 @@ private: _container = new wxChoice (_panel, wxID_ANY); table->Add (_container); - add_label_to_sizer (table, _panel, _("Default scale-to"), true); - _scale_to = new wxChoice (_panel, wxID_ANY); - table->Add (_scale_to); - add_label_to_sizer (table, _panel, _("Default content type"), true); _dcp_content_type = new wxChoice (_panel, wxID_ANY); table->Add (_dcp_content_type); @@ -385,9 +433,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)); @@ -402,14 +447,6 @@ private: _container->Bind (wxEVT_CHOICE, boost::bind (&DefaultsPage::container_changed, this)); - _scale_to->Append (_("Guess from content")); - - BOOST_FOREACH (Ratio const * i, Ratio::all()) { - _scale_to->Append (std_to_wx(i->image_nickname())); - } - - _scale_to->Bind (wxEVT_CHOICE, boost::bind (&DefaultsPage::scale_to_changed, this)); - BOOST_FOREACH (DCPContentType const * i, DCPContentType::all()) { _dcp_content_type->Append (std_to_wx (i->pretty_name ())); } @@ -428,8 +465,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 () @@ -443,17 +478,6 @@ private: } } - vector ratios = Ratio::all (); - for (size_t i = 0; i < ratios.size(); ++i) { - if (ratios[i] == config->default_scale_to ()) { - _scale_to->SetSelection (i + 1); - } - } - - if (!config->default_scale_to()) { - _scale_to->SetSelection (0); - } - vector const ct = DCPContentType::all (); for (size_t i = 0; i < ct.size(); ++i) { if (ct[i] == config->default_dcp_content_type ()) { @@ -469,7 +493,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 () @@ -521,17 +544,6 @@ private: Config::instance()->set_default_container (ratio[_container->GetSelection()]); } - void scale_to_changed () - { - int const s = _scale_to->GetSelection (); - if (s == 0) { - Config::instance()->set_default_scale_to (0); - } else { - vector ratio = Ratio::all (); - Config::instance()->set_default_scale_to (ratio[s - 1]); - } - } - void dcp_content_type_changed () { vector ct = DCPContentType::all (); @@ -543,11 +555,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; @@ -560,11 +567,9 @@ private: wxDirPickerCtrl* _kdm_directory; #endif wxChoice* _container; - wxChoice* _scale_to; wxChoice* _dcp_content_type; wxChoice* _dcp_audio_channels; wxChoice* _standard; - wxCheckBox* _upload_after_make_dcp; }; class EncodingServersPage : public StandardPage @@ -649,6 +654,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); @@ -676,6 +684,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)); @@ -687,6 +696,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 ()); @@ -694,6 +704,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())); @@ -719,6 +734,7 @@ private: Config::instance()->set_tms_password (_tms_password->get()); } + CheckBox* _upload; wxChoice* _tms_protocol; wxTextCtrl* _tms_ip; wxTextCtrl* _tms_path; @@ -983,145 +999,6 @@ private: wxButton* _reset_email; }; -class AccountsPage : public StandardPage -{ -public: - AccountsPage (wxSize panel_size, int border) - : StandardPage (panel_size, border) - {} - - wxString GetName () const - { - return _("Accounts"); - } - -#ifdef DCPOMATIC_OSX - wxBitmap GetLargeIcon () const - { - return wxBitmap ("accounts", wxBITMAP_TYPE_PNG_RESOURCE); - } -#endif - - void setup () - { - wxFlexGridSizer* table = new wxFlexGridSizer (2, DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP); - table->AddGrowableCol (1, 1); - _panel->GetSizer()->Add (table, 1, wxEXPAND | wxALL, _border); - - add_label_to_sizer (table, _panel, _("certificates.barco.com user name"), true); - _barco_username = new wxTextCtrl (_panel, wxID_ANY); - table->Add (_barco_username, 1, wxEXPAND | wxALL); - - add_label_to_sizer (table, _panel, _("certificates.barco.com password"), true); - _barco_password = new PasswordEntry (_panel); - table->Add (_barco_password->get_panel(), 1, wxEXPAND | wxALL); - - add_label_to_sizer (table, _panel, _("certificates.christiedigital.com user name"), true); - _christie_username = new wxTextCtrl (_panel, wxID_ANY); - table->Add (_christie_username, 1, wxEXPAND | wxALL); - - add_label_to_sizer (table, _panel, _("certificates.christiedigital.com password"), true); - _christie_password = new PasswordEntry (_panel); - table->Add (_christie_password->get_panel(), 1, wxEXPAND | wxALL); - - add_label_to_sizer (table, _panel, _("GDC user name"), true); - _gdc_username = new wxTextCtrl (_panel, wxID_ANY); - table->Add (_gdc_username, 1, wxEXPAND | wxALL); - - add_label_to_sizer (table, _panel, _("GDC password"), true); - _gdc_password = new PasswordEntry (_panel); - table->Add (_gdc_password->get_panel(), 1, wxEXPAND | wxALL); - - _barco_username->Bind (wxEVT_TEXT, boost::bind(&AccountsPage::barco_username_changed, this)); - _barco_password->Changed.connect (boost::bind(&AccountsPage::barco_password_changed, this)); - _christie_username->Bind (wxEVT_TEXT, boost::bind(&AccountsPage::christie_username_changed, this)); - _christie_password->Changed.connect (boost::bind(&AccountsPage::christie_password_changed, this)); - _gdc_username->Bind (wxEVT_TEXT, boost::bind(&AccountsPage::gdc_username_changed, this)); - _gdc_password->Changed.connect (boost::bind(&AccountsPage::gdc_password_changed, this)); - } - - void config_changed () - { - Config* config = Config::instance (); - - checked_set (_barco_username, config->barco_username().get_value_or("")); - checked_set (_barco_password, config->barco_password().get_value_or("")); - checked_set (_christie_username, config->christie_username().get_value_or("")); - checked_set (_christie_password, config->christie_password().get_value_or("")); - checked_set (_gdc_username, config->gdc_username().get_value_or("")); - checked_set (_gdc_password, config->gdc_password().get_value_or("")); - } - - void barco_username_changed () - { - wxString const s = _barco_username->GetValue(); - if (!s.IsEmpty()) { - Config::instance()->set_barco_username (wx_to_std(s)); - } else { - Config::instance()->unset_barco_username (); - } - } - - void barco_password_changed () - { - string const s = _barco_password->get(); - if (!s.empty()) { - Config::instance()->set_barco_password(s); - } else { - Config::instance()->unset_barco_password(); - } - } - - void christie_username_changed () - { - wxString const s = _christie_username->GetValue(); - if (!s.IsEmpty()) { - Config::instance()->set_christie_username (wx_to_std(s)); - } else { - Config::instance()->unset_christie_username (); - } - } - - void christie_password_changed () - { - string const s = _christie_password->get(); - if (!s.empty()) { - Config::instance()->set_christie_password(s); - } else { - Config::instance()->unset_christie_password(); - } - } - - void gdc_username_changed () - { - wxString const s = _gdc_username->GetValue(); - if (!s.IsEmpty()) { - Config::instance()->set_gdc_username (wx_to_std(s)); - } else { - Config::instance()->unset_gdc_username (); - } - } - - void gdc_password_changed () - { - string const s = _gdc_password->get(); - if (!s.empty()) { - Config::instance()->set_gdc_password(s); - } else { - Config::instance()->unset_gdc_password(); - } - } - -private: - wxTextCtrl* _barco_username; - PasswordEntry* _barco_password; - wxTextCtrl* _christie_username; - PasswordEntry* _christie_password; - wxTextCtrl* _gdc_username; - PasswordEntry* _gdc_password; -}; - - class NotificationsPage : public StandardPage { public: @@ -1374,7 +1251,7 @@ public: , _log_warning (0) , _log_error (0) , _log_timing (0) - , _log_debug_decode (0) + , _log_debug_threed (0) , _log_debug_encode (0) , _log_debug_email (0) {} @@ -1421,7 +1298,7 @@ private: table->Add (_allow_any_dcp_frame_rate, 1, wxEXPAND | wxALL); table->AddSpacer (0); - _allow_any_container = new CheckBox (_panel, _("Allow non-standard container ratios")); + _allow_any_container = new CheckBox (_panel, _("Allow full-frame and non-standard container ratios")); table->Add (_allow_any_container, 1, wxEXPAND | wxALL); table->AddSpacer (0); @@ -1487,8 +1364,8 @@ private: /// TRANSLATORS: translate the word "Timing" here; do not include the "Config|" prefix _log_timing = new CheckBox (_panel, S_("Config|Timing")); t->Add (_log_timing, 1, wxEXPAND | wxALL); - _log_debug_decode = new CheckBox (_panel, _("Debug: decode")); - t->Add (_log_debug_decode, 1, wxEXPAND | wxALL); + _log_debug_threed = new CheckBox (_panel, _("Debug: 3D")); + t->Add (_log_debug_threed, 1, wxEXPAND | wxALL); _log_debug_encode = new CheckBox (_panel, _("Debug: encode")); t->Add (_log_debug_encode, 1, wxEXPAND | wxALL); _log_debug_email = new CheckBox (_panel, _("Debug: email sending")); @@ -1518,7 +1395,7 @@ private: _log_warning->Bind (wxEVT_CHECKBOX, boost::bind (&AdvancedPage::log_changed, this)); _log_error->Bind (wxEVT_CHECKBOX, boost::bind (&AdvancedPage::log_changed, this)); _log_timing->Bind (wxEVT_CHECKBOX, boost::bind (&AdvancedPage::log_changed, this)); - _log_debug_decode->Bind (wxEVT_CHECKBOX, boost::bind (&AdvancedPage::log_changed, this)); + _log_debug_threed->Bind (wxEVT_CHECKBOX, boost::bind (&AdvancedPage::log_changed, this)); _log_debug_encode->Bind (wxEVT_CHECKBOX, boost::bind (&AdvancedPage::log_changed, this)); _log_debug_email->Bind (wxEVT_CHECKBOX, boost::bind (&AdvancedPage::log_changed, this)); #ifdef DCPOMATIC_WINDOWS @@ -1547,7 +1424,7 @@ private: checked_set (_log_warning, config->log_types() & LogEntry::TYPE_WARNING); checked_set (_log_error, config->log_types() & LogEntry::TYPE_ERROR); checked_set (_log_timing, config->log_types() & LogEntry::TYPE_TIMING); - checked_set (_log_debug_decode, config->log_types() & LogEntry::TYPE_DEBUG_DECODE); + checked_set (_log_debug_threed, config->log_types() & LogEntry::TYPE_DEBUG_THREED); checked_set (_log_debug_encode, config->log_types() & LogEntry::TYPE_DEBUG_ENCODE); checked_set (_log_debug_email, config->log_types() & LogEntry::TYPE_DEBUG_EMAIL); checked_set (_frames_in_memory_multiplier, config->frames_in_memory_multiplier()); @@ -1620,8 +1497,8 @@ private: if (_log_timing->GetValue ()) { types |= LogEntry::TYPE_TIMING; } - if (_log_debug_decode->GetValue ()) { - types |= LogEntry::TYPE_DEBUG_DECODE; + if (_log_debug_threed->GetValue ()) { + types |= LogEntry::TYPE_DEBUG_THREED; } if (_log_debug_encode->GetValue ()) { types |= LogEntry::TYPE_DEBUG_ENCODE; @@ -1652,7 +1529,7 @@ private: wxCheckBox* _log_warning; wxCheckBox* _log_error; wxCheckBox* _log_timing; - wxCheckBox* _log_debug_decode; + wxCheckBox* _log_debug_threed; wxCheckBox* _log_debug_encode; wxCheckBox* _log_debug_email; #ifdef DCPOMATIC_WINDOWS @@ -1678,13 +1555,13 @@ create_full_config_dialog () #endif e->AddPage (new FullGeneralPage (ps, border)); + e->AddPage (new SoundPage (ps, border)); e->AddPage (new DefaultsPage (ps, border)); e->AddPage (new EncodingServersPage (ps, border)); e->AddPage (new KeysPage (ps, border)); e->AddPage (new TMSPage (ps, border)); e->AddPage (new EmailPage (ps, border)); e->AddPage (new KDMEmailPage (ps, border)); - e->AddPage (new AccountsPage (ps, border)); e->AddPage (new NotificationsPage (ps, border)); e->AddPage (new CoverSheetPage (ps, border)); e->AddPage (new AdvancedPage (ps, border));