Make DCIMetadata class and use it.
[dcpomatic.git] / src / wx / dci_name_dialog.cc
index 6927d6c9eba713dc52e2c135878c2ce81542f937..41d93576f6be5e59b4eb5609e06fe811d3c8032b 100644 (file)
@@ -59,21 +59,23 @@ DCINameDialog::DCINameDialog (wxWindow* parent, shared_ptr<Film> film)
        _package_type = new wxTextCtrl (this, wxID_ANY);
        table->Add (_package_type, 1, wxEXPAND);
 
-       _audio_language->SetValue (std_to_wx (_film->audio_language ()));
-       _subtitle_language->SetValue (std_to_wx (_film->subtitle_language ()));
-       _territory->SetValue (std_to_wx (_film->territory ()));
-       _rating->SetValue (std_to_wx (_film->rating ()));
-       _studio->SetValue (std_to_wx (_film->studio ()));
-       _facility->SetValue (std_to_wx (_film->facility ()));
-       _package_type->SetValue (std_to_wx (_film->package_type ()));
+       DCIMetadata dm = _film->dci_metadata ();
+
+       _audio_language->SetValue (std_to_wx (dm.audio_language));
+       _subtitle_language->SetValue (std_to_wx (dm.subtitle_language));
+       _territory->SetValue (std_to_wx (dm.territory));
+       _rating->SetValue (std_to_wx (dm.rating));
+       _studio->SetValue (std_to_wx (dm.studio));
+       _facility->SetValue (std_to_wx (dm.facility));
+       _package_type->SetValue (std_to_wx (dm.package_type));
        
-       _audio_language->Connect (wxID_ANY, wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler (DCINameDialog::audio_language_changed), 0, this);
-       _subtitle_language->Connect (wxID_ANY, wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler (DCINameDialog::subtitle_language_changed), 0, this);
-       _territory->Connect (wxID_ANY, wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler (DCINameDialog::territory_changed), 0, this);
-       _rating->Connect (wxID_ANY, wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler (DCINameDialog::rating_changed), 0, this);
-       _studio->Connect (wxID_ANY, wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler (DCINameDialog::studio_changed), 0, this);
-       _facility->Connect (wxID_ANY, wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler (DCINameDialog::facility_changed), 0, this);
-       _package_type->Connect (wxID_ANY, wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler (DCINameDialog::package_type_changed), 0, this);
+       _audio_language->Connect (wxID_ANY, wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler (DCINameDialog::changed), 0, this);
+       _subtitle_language->Connect (wxID_ANY, wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler (DCINameDialog::changed), 0, this);
+       _territory->Connect (wxID_ANY, wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler (DCINameDialog::changed), 0, this);
+       _rating->Connect (wxID_ANY, wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler (DCINameDialog::changed), 0, this);
+       _studio->Connect (wxID_ANY, wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler (DCINameDialog::changed), 0, this);
+       _facility->Connect (wxID_ANY, wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler (DCINameDialog::changed), 0, this);
+       _package_type->Connect (wxID_ANY, wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler (DCINameDialog::changed), 0, this);
 
        wxBoxSizer* overall_sizer = new wxBoxSizer (wxVERTICAL);
        overall_sizer->Add (table, 1, wxEXPAND | wxALL, 6);
@@ -89,43 +91,17 @@ DCINameDialog::DCINameDialog (wxWindow* parent, shared_ptr<Film> film)
 }
 
 void
-DCINameDialog::audio_language_changed (wxCommandEvent &)
+DCINameDialog::changed (wxCommandEvent &)
 {
-       _film->set_audio_language (wx_to_std (_audio_language->GetValue ()));
-}
-
-void
-DCINameDialog::subtitle_language_changed (wxCommandEvent &)
-{
-       _film->set_subtitle_language (wx_to_std (_subtitle_language->GetValue ()));
-}
-
-void
-DCINameDialog::territory_changed (wxCommandEvent &)
-{
-       _film->set_territory (wx_to_std (_territory->GetValue ()));
-}
-
-void
-DCINameDialog::rating_changed (wxCommandEvent &)
-{
-       _film->set_rating (wx_to_std (_rating->GetValue ()));
-}
+       DCIMetadata dm;
 
-void
-DCINameDialog::studio_changed (wxCommandEvent &)
-{
-       _film->set_studio (wx_to_std (_studio->GetValue ()));
-}
+       dm.audio_language = wx_to_std (_audio_language->GetValue ());
+       dm.subtitle_language = wx_to_std (_subtitle_language->GetValue ());
+       dm.territory = wx_to_std (_territory->GetValue ());
+       dm.rating = wx_to_std (_rating->GetValue ());
+       dm.studio = wx_to_std (_studio->GetValue ());
+       dm.facility = wx_to_std (_facility->GetValue ());
+       dm.package_type = wx_to_std (_package_type->GetValue ());
 
-void
-DCINameDialog::facility_changed (wxCommandEvent &)
-{
-       _film->set_facility (wx_to_std (_facility->GetValue ()));
-}
-
-void
-DCINameDialog::package_type_changed (wxCommandEvent &)
-{
-       _film->set_package_type (wx_to_std (_package_type->GetValue ()));
+       _film->set_dci_metadata (dm);
 }