#include "server.h"
#include "scaler.h"
#include "filter.h"
+#include "format.h"
+#include "dcp_content_type.h"
#include "sound_processor.h"
#include "i18n.h"
, _reference_scaler (Scaler::from_id (N_("bicubic")))
, _tms_path (N_("."))
, _sound_processor (SoundProcessor::from_id (N_("dolby_cp750")))
+ , _default_format (0)
+ , _default_dcp_content_type (0)
{
_allowed_dcp_frame_rates.push_back (24);
_allowed_dcp_frame_rates.push_back (25);
_sound_processor = SoundProcessor::from_id (v);
} else if (k == "language") {
_language = v;
+ } else if (k == "default_format") {
+ _default_format = Format::from_metadata (v);
+ } else if (k == "default_dcp_content_type") {
+ _default_dcp_content_type = DCPContentType::from_dci_name (v);
}
_default_dci_metadata.read (k, v);
if (_language) {
f << "language " << _language.get() << "\n";
}
+ if (_default_format) {
+ f << "default_format " << _default_format->as_metadata() << "\n";
+ }
+ if (_default_dcp_content_type) {
+ f << "default_dcp_content_type " << _default_dcp_content_type->dci_name() << "\n";
+ }
_default_dci_metadata.write (f);
}
class Scaler;
class Filter;
class SoundProcessor;
+class Format;
+class DCPContentType;
/** @class Config
* @brief A singleton class holding configuration.
return _language;
}
+ Format const * default_format () const {
+ return _default_format;
+ }
+
+ DCPContentType const * default_dcp_content_type () const {
+ return _default_dcp_content_type;
+ }
+
/** @param n New number of local encoding threads */
void set_num_local_encoding_threads (int n) {
_num_local_encoding_threads = n;
void unset_language () {
_language = boost::none;
}
+
+ void set_default_format (Format const * f) {
+ _default_format = f;
+ }
+
+ void set_default_dcp_content_type (DCPContentType const * t) {
+ _default_dcp_content_type = t;
+ }
void write () const;
/** Default DCI metadata for newly-created Films */
DCIMetadata _default_dci_metadata;
boost::optional<std::string> _language;
+ Format const * _default_format;
+ DCPContentType const * _default_dcp_content_type;
/** Singleton instance, or 0 */
static Config* _instance;
#include "lib/format.h"
#include "lib/scaler.h"
#include "lib/filter.h"
+#include "lib/dcp_content_type.h"
#include "config_dialog.h"
#include "wx_util.h"
#include "filter_dialog.h"
table->Add (_default_dci_metadata_button);
table->AddSpacer (1);
+ add_label_to_sizer (table, _misc_panel, _("Default format"));
+ _default_format = new wxChoice (_misc_panel, wxID_ANY);
+ table->Add (_default_format);
+ table->AddSpacer (1);
+
+ add_label_to_sizer (table, _misc_panel, _("Default content type"));
+ _default_dcp_content_type = new wxChoice (_misc_panel, wxID_ANY);
+ table->Add (_default_dcp_content_type);
+ table->AddSpacer (1);
+
Config* config = Config::instance ();
_set_language->SetValue (config->language ());
_default_dci_metadata_button->Connect (wxID_ANY, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler (ConfigDialog::edit_default_dci_metadata_clicked), 0, this);
+ vector<Format const *> fmt = Format::all ();
+ int n = 0;
+ for (vector<Format const *>::iterator i = fmt.begin(); i != fmt.end(); ++i) {
+ _default_format->Append (std_to_wx ((*i)->name ()));
+ if (*i == config->default_format ()) {
+ _default_format->SetSelection (n);
+ }
+ ++n;
+ }
+
+ _default_format->Connect (wxID_ANY, wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler (ConfigDialog::default_format_changed), 0, this);
+
+ vector<DCPContentType const *> const ct = DCPContentType::all ();
+ n = 0;
+ for (vector<DCPContentType const *>::const_iterator i = ct.begin(); i != ct.end(); ++i) {
+ _default_dcp_content_type->Append (std_to_wx ((*i)->pretty_name ()));
+ if (*i == config->default_dcp_content_type ()) {
+ _default_dcp_content_type->SetSelection (n);
+ }
+ ++n;
+ }
+
+ _default_dcp_content_type->Connect (wxID_ANY, wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler (ConfigDialog::default_dcp_content_type_changed), 0, this);
}
void
add_label_to_sizer (table, _ab_panel, _("Reference filters"));
wxSizer* s = new wxBoxSizer (wxHORIZONTAL);
_reference_filters = new wxStaticText (_ab_panel, wxID_ANY, wxT (""));
- s->Add (_reference_filters, 1, wxEXPAND);
+ s->Add (_reference_filters, 1, wxALIGN_CENTER_VERTICAL | wxEXPAND | wxALL, 6);
_reference_filters_button = new wxButton (_ab_panel, wxID_ANY, _("Edit..."));
s->Add (_reference_filters_button, 0);
table->Add (s, 1, wxEXPAND);
{
_language->Enable (_set_language->GetValue ());
}
+
+void
+ConfigDialog::default_format_changed (wxCommandEvent &)
+{
+ vector<Format const *> fmt = Format::all ();
+ Config::instance()->set_default_format (fmt[_default_format->GetSelection()]);
+}
+
+void
+ConfigDialog::default_dcp_content_type_changed (wxCommandEvent &)
+{
+ vector<DCPContentType const *> ct = DCPContentType::all ();
+ Config::instance()->set_default_dcp_content_type (ct[_default_dcp_content_type->GetSelection()]);
+}