Use a LanguageTag for closed caption tracks.
[dcpomatic.git] / src / wx / dcp_panel.cc
index bed9b97a04680158954526bc9731d66e704b8eca..4e023db325972c0c21fc486dd681e76c99708c13 100644 (file)
@@ -28,7 +28,8 @@
 #include "check_box.h"
 #include "dcpomatic_button.h"
 #include "markers_dialog.h"
-#include "metadata_dialog.h"
+#include "interop_metadata_dialog.h"
+#include "smpte_metadata_dialog.h"
 #include "lib/ratio.h"
 #include "lib/config.h"
 #include "lib/dcp_content_type.h"
@@ -59,12 +60,16 @@ using std::make_pair;
 using boost::lexical_cast;
 using boost::shared_ptr;
 using boost::weak_ptr;
+#if BOOST_VERSION >= 106100
+using namespace boost::placeholders;
+#endif
 using dcp::locale_convert;
 
 DCPPanel::DCPPanel (wxNotebook* n, shared_ptr<Film> film, weak_ptr<FilmViewer> viewer)
        : _audio_dialog (0)
        , _markers_dialog (0)
-       , _metadata_dialog (0)
+       , _interop_metadata_dialog (0)
+       , _smpte_metadata_dialog (0)
        , _film (film)
        , _viewer (viewer)
        , _generally_sensitive (true)
@@ -335,13 +340,23 @@ DCPPanel::markers_clicked ()
 void
 DCPPanel::metadata_clicked ()
 {
-       if (_metadata_dialog) {
-               _metadata_dialog->Destroy ();
-               _metadata_dialog = 0;
-       }
+       if (_film->interop()) {
+               if (_interop_metadata_dialog) {
+                       _interop_metadata_dialog->Destroy ();
+                       _interop_metadata_dialog = 0;
+               }
+
+               _interop_metadata_dialog = new InteropMetadataDialog (_panel, _film);
+               _interop_metadata_dialog->Show ();
+       } else {
+               if (_smpte_metadata_dialog) {
+                       _smpte_metadata_dialog->Destroy ();
+                       _smpte_metadata_dialog = 0;
+               }
 
-       _metadata_dialog = new MetadataDialog (_panel, _film);
-       _metadata_dialog->Show ();
+               _smpte_metadata_dialog = new SMPTEMetadataDialog (_panel, _film);
+               _smpte_metadata_dialog->Show ();
+       }
 }
 
 void
@@ -539,9 +554,13 @@ DCPPanel::set_film (shared_ptr<Film> film)
                _markers_dialog->Destroy ();
                _markers_dialog = 0;
        }
-       if (_metadata_dialog) {
-               _metadata_dialog->Destroy ();
-               _metadata_dialog = 0;
+       if (_interop_metadata_dialog) {
+               _interop_metadata_dialog->Destroy ();
+               _interop_metadata_dialog = 0;
+       }
+       if (_smpte_metadata_dialog) {
+               _smpte_metadata_dialog->Destroy ();
+               _smpte_metadata_dialog = 0;
        }
 
        _film = film;