X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Ffull_config_dialog.cc;h=a9618ce388d4cfbf2f490bda9a6fbf32a6122682;hb=aa8bb6ae4fe4f3bb113a5d304429937f25e30191;hp=0699bff223f4808b541c84d1e5ef59eccbc82d70;hpb=b915348a8288d68e2ff114fb3dd89ad22e699969;p=dcpomatic.git diff --git a/src/wx/full_config_dialog.cc b/src/wx/full_config_dialog.cc index 0699bff22..a9618ce38 100644 --- a/src/wx/full_config_dialog.cc +++ b/src/wx/full_config_dialog.cc @@ -55,10 +55,13 @@ #include #include #include +#include +LIBDCP_DISABLE_WARNINGS #include #include #include #include +LIBDCP_ENABLE_WARNINGS #include #include #include @@ -340,6 +343,14 @@ private: _kdm_type = new KDMChoice (_panel); table->Add (_kdm_type, 1, wxEXPAND); + add_label_to_sizer (table, _panel, _("Default KDM duration"), true, 0, wxLEFT | wxRIGHT | wxALIGN_CENTRE_VERTICAL); + _kdm_duration = new wxSpinCtrl (_panel); + _kdm_duration_unit = new wxChoice (_panel, wxID_ANY); + auto kdm_duration_sizer = new wxBoxSizer (wxHORIZONTAL); + kdm_duration_sizer->Add (_kdm_duration, 0, wxEXPAND | wxRIGHT, DCPOMATIC_SIZER_GAP); + kdm_duration_sizer->Add (_kdm_duration_unit, 0, wxEXPAND | wxRIGHT, DCPOMATIC_SIZER_GAP); + table->Add (kdm_duration_sizer, 1, wxEXPAND); + table->Add (_use_isdcf_name_by_default = new CheckBox(_panel, _("Use ISDCF name by default")), 0, wxALIGN_CENTRE_VERTICAL); _still_length->SetRange (1, 3600); @@ -348,6 +359,13 @@ private: _directory->Bind (wxEVT_DIRPICKER_CHANGED, boost::bind (&DefaultsPage::directory_changed, this)); _kdm_directory->Bind (wxEVT_DIRPICKER_CHANGED, boost::bind (&DefaultsPage::kdm_directory_changed, this)); _kdm_type->Bind (wxEVT_CHOICE, boost::bind(&DefaultsPage::kdm_type_changed, this)); + _kdm_duration_unit->Append (_("days")); + _kdm_duration_unit->Append (_("weeks")); + _kdm_duration_unit->Append (_("months")); + _kdm_duration_unit->Append (_("years")); + + _kdm_duration->Bind (wxEVT_SPINCTRL, boost::bind(&DefaultsPage::kdm_duration_changed, this)); + _kdm_duration_unit->Bind (wxEVT_CHOICE, boost::bind(&DefaultsPage::kdm_duration_changed, this)); _use_isdcf_name_by_default->Bind (wxEVT_CHECKBOX, boost::bind(&DefaultsPage::use_isdcf_name_by_default_changed, this)); @@ -433,9 +451,51 @@ private: } } + checked_set (_kdm_duration, config->default_kdm_duration().duration); + switch (config->default_kdm_duration().unit) { + case RoughDuration::Unit::DAYS: + _kdm_duration->SetRange(1, 365); + checked_set (_kdm_duration_unit, 0); + break; + case RoughDuration::Unit::WEEKS: + _kdm_duration->SetRange(1, 52); + checked_set (_kdm_duration_unit, 1); + break; + case RoughDuration::Unit::MONTHS: + _kdm_duration->SetRange(1, 12); + checked_set (_kdm_duration_unit, 2); + break; + case RoughDuration::Unit::YEARS: + _kdm_duration->SetRange(1, 40); + checked_set (_kdm_duration_unit, 3); + break; + } + setup_sensitivity (); } + void kdm_duration_changed () + { + auto config = Config::instance(); + auto duration = _kdm_duration->GetValue(); + RoughDuration::Unit unit = RoughDuration::Unit::DAYS; + switch (_kdm_duration_unit->GetSelection()) { + case 0: + unit = RoughDuration::Unit::DAYS; + break; + case 1: + unit = RoughDuration::Unit::WEEKS; + break; + case 2: + unit = RoughDuration::Unit::MONTHS; + break; + case 3: + unit = RoughDuration::Unit::YEARS; + break; + } + config->set_default_kdm_duration (RoughDuration(duration, unit)); + } + void j2k_bandwidth_changed () { Config::instance()->set_default_j2k_bandwidth (_j2k_bandwidth->GetValue() * 1000000); @@ -528,6 +588,8 @@ private: wxDirPickerCtrl* _kdm_directory; #endif KDMChoice* _kdm_type; + wxSpinCtrl* _kdm_duration; + wxChoice* _kdm_duration_unit; wxCheckBox* _use_isdcf_name_by_default; wxChoice* _container; wxChoice* _dcp_content_type; @@ -570,7 +632,9 @@ private: columns, boost::bind (&Config::servers, Config::instance()), boost::bind (&Config::set_servers, Config::instance(), _1), - boost::bind (&EncodingServersPage::server_column, this, _1) + boost::bind (&EncodingServersPage::server_column, this, _1), + false, + EditableListButton::NEW | EditableListButton::EDIT | EditableListButton::REMOVE ); _panel->GetSizer()->Add (_servers_list, 1, wxEXPAND | wxALL, _border); @@ -926,7 +990,10 @@ private: bind (&Config::set_kdm_cc, Config::instance(), _1), [] (string s, int) { return s; - }); + }, + true, + EditableListButton::NEW | EditableListButton::EDIT | EditableListButton::REMOVE + ); table->Add (_cc, 1, wxEXPAND | wxALL); add_label_to_sizer (table, _panel, _("BCC address"), true, 0, wxLEFT | wxRIGHT | wxALIGN_CENTRE_VERTICAL); @@ -1060,7 +1127,10 @@ private: bind (&Config::set_notification_cc, Config::instance(), _1), [] (string s, int) { return s; - }); + }, + true, + EditableListButton::NEW | EditableListButton::EDIT | EditableListButton::REMOVE + ); table->Add (_cc, 1, wxEXPAND | wxALL); add_label_to_sizer (table, _panel, _("BCC address"), true, 0, wxLEFT | wxRIGHT | wxALIGN_CENTRE_VERTICAL); @@ -1417,10 +1487,11 @@ private: _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); - restart = add_label_to_sizer (table, _panel, _("(restart DCP-o-matic to see all ratios)"), false); restart->SetFont (font); + + _allow_96khz_audio = new CheckBox (_panel, _("Allow creation of DCPs with 96kHz audio")); + table->Add (_allow_96khz_audio, 1, wxEXPAND | wxALL); table->AddSpacer (0); _show_experimental_audio_processors = new CheckBox (_panel, _("Show experimental audio processors")); @@ -1525,6 +1596,7 @@ private: _video_display_mode->Bind (wxEVT_CHOICE, boost::bind(&AdvancedPage::video_display_mode_changed, this)); _allow_any_dcp_frame_rate->Bind (wxEVT_CHECKBOX, boost::bind (&AdvancedPage::allow_any_dcp_frame_rate_changed, this)); _allow_any_container->Bind (wxEVT_CHECKBOX, boost::bind (&AdvancedPage::allow_any_container_changed, this)); + _allow_96khz_audio->Bind (wxEVT_CHECKBOX, boost::bind(&AdvancedPage::allow_96khz_audio_changed, this)); _show_experimental_audio_processors->Bind (wxEVT_CHECKBOX, boost::bind (&AdvancedPage::show_experimental_audio_processors_changed, this)); _only_servers_encode->Bind (wxEVT_CHECKBOX, boost::bind (&AdvancedPage::only_servers_encode_changed, this)); _frames_in_memory_multiplier->Bind (wxEVT_SPINCTRL, boost::bind(&AdvancedPage::frames_in_memory_multiplier_changed, this)); @@ -1560,6 +1632,7 @@ private: } checked_set (_allow_any_dcp_frame_rate, config->allow_any_dcp_frame_rate ()); checked_set (_allow_any_container, config->allow_any_container ()); + checked_set (_allow_96khz_audio, config->allow_96khz_audio()); checked_set (_show_experimental_audio_processors, config->show_experimental_audio_processors ()); checked_set (_only_servers_encode, config->only_servers_encode ()); checked_set (_log_general, config->log_types() & LogEntry::TYPE_GENERAL); @@ -1607,6 +1680,11 @@ private: Config::instance()->set_allow_any_container(_allow_any_container->GetValue()); } + void allow_96khz_audio_changed () + { + Config::instance()->set_allow_96hhz_audio(_allow_96khz_audio->GetValue()); + } + void show_experimental_audio_processors_changed () { Config::instance()->set_show_experimental_audio_processors(_show_experimental_audio_processors->GetValue()); @@ -1675,6 +1753,7 @@ private: wxSpinCtrl* _frames_in_memory_multiplier = nullptr; wxCheckBox* _allow_any_dcp_frame_rate = nullptr; wxCheckBox* _allow_any_container = nullptr; + wxCheckBox* _allow_96khz_audio = nullptr; wxCheckBox* _show_experimental_audio_processors = nullptr; wxCheckBox* _only_servers_encode = nullptr; NameFormatEditor* _dcp_metadata_filename_format = nullptr;