caption -> subtitle.
[dcpomatic.git] / src / wx / caption_panel.cc
index 5a1241c7806416b7f376f9c6a2d861b550b04371..ca341167dc857e3d35c924696533d94fdf65eea2 100644 (file)
 #include "caption_panel.h"
 #include "film_editor.h"
 #include "wx_util.h"
-#include "subtitle_view.h"
+#include "caption_view.h"
 #include "content_panel.h"
 #include "fonts_dialog.h"
-#include "subtitle_appearance_dialog.h"
+#include "caption_appearance_dialog.h"
 #include "lib/ffmpeg_content.h"
-#include "lib/plain_text_file_content.h"
+#include "lib/text_caption_file_content.h"
 #include "lib/ffmpeg_subtitle_stream.h"
-#include "lib/dcp_text_content.h"
-#include "lib/plain_text_file_decoder.h"
-#include "lib/dcp_text_decoder.h"
+#include "lib/dcp_subtitle_content.h"
+#include "lib/text_caption_file_decoder.h"
+#include "lib/dcp_subtitle_decoder.h"
 #include "lib/dcp_content.h"
-#include "lib/text_content.h"
+#include "lib/caption_content.h"
 #include "lib/decoder_factory.h"
 #include <wx/spinctrl.h>
 #include <boost/foreach.hpp>
@@ -45,7 +45,7 @@ using boost::dynamic_pointer_cast;
 
 CaptionPanel::CaptionPanel (ContentPanel* p)
        : ContentSubPanel (p, _("Captions"))
-       , _subtitle_view (0)
+       , _caption_view (0)
        , _fonts_dialog (0)
 {
        wxBoxSizer* reference_sizer = new wxBoxSizer (wxVERTICAL);
@@ -144,8 +144,8 @@ CaptionPanel::CaptionPanel (ContentPanel* p)
        {
                wxBoxSizer* s = new wxBoxSizer (wxHORIZONTAL);
 
-               _subtitle_view_button = new wxButton (this, wxID_ANY, _("View..."));
-               s->Add (_subtitle_view_button, 1, wxALL, DCPOMATIC_SIZER_GAP);
+               _caption_view_button = new wxButton (this, wxID_ANY, _("View..."));
+               s->Add (_caption_view_button, 1, wxALL, DCPOMATIC_SIZER_GAP);
                _fonts_dialog_button = new wxButton (this, wxID_ANY, _("Fonts..."));
                s->Add (_fonts_dialog_button, 1, wxALL, DCPOMATIC_SIZER_GAP);
                _appearance_dialog_button = new wxButton (this, wxID_ANY, _("Appearance..."));
@@ -172,7 +172,7 @@ CaptionPanel::CaptionPanel (ContentPanel* p)
        _line_spacing->Bind             (wxEVT_SPINCTRL, boost::bind (&CaptionPanel::line_spacing_changed, this));
        _language->Bind                 (wxEVT_TEXT,     boost::bind (&CaptionPanel::language_changed, this));
        _stream->Bind                   (wxEVT_CHOICE,   boost::bind (&CaptionPanel::stream_changed, this));
-       _subtitle_view_button->Bind     (wxEVT_BUTTON,   boost::bind (&CaptionPanel::subtitle_view_clicked, this));
+       _caption_view_button->Bind      (wxEVT_BUTTON,   boost::bind (&CaptionPanel::caption_view_clicked, this));
        _fonts_dialog_button->Bind      (wxEVT_BUTTON,   boost::bind (&CaptionPanel::fonts_dialog_clicked, this));
        _appearance_dialog_button->Bind (wxEVT_BUTTON,   boost::bind (&CaptionPanel::appearance_dialog_clicked, this));
 }
@@ -189,7 +189,7 @@ void
 CaptionPanel::film_content_changed (int property)
 {
        FFmpegContentList fc = _parent->selected_ffmpeg ();
-       ContentList sc = _parent->selected_subtitle ();
+       ContentList sc = _parent->selected_caption ();
 
        shared_ptr<FFmpegContent> fcs;
        if (fc.size() == 1) {
@@ -216,37 +216,39 @@ CaptionPanel::film_content_changed (int property)
                        }
                }
                setup_sensitivity ();
-       } else if (property == TextContentProperty::USE) {
-               checked_set (_use, scs ? scs->subtitle->use() : false);
+       } else if (property == CaptionContentProperty::USE) {
+               checked_set (_use, scs ? scs->caption->use() : false);
                setup_sensitivity ();
-       } else if (property == TextContentProperty::TYPE) {
+       } else if (property == CaptionContentProperty::TYPE) {
                if (scs) {
-                       switch (scs->subtitle->type()) {
-                       case TEXT_SUBTITLE:
+                       switch (scs->caption->type()) {
+                       case CAPTION_OPEN:
                                _type->SetSelection (0);
                                break;
-                       case TEXT_CLOSED_CAPTION:
+                       case CAPTION_CLOSED:
                                _type->SetSelection (1);
                                break;
+                       default:
+                               DCPOMATIC_ASSERT (false);
                        }
                } else {
                        _type->SetSelection (0);
                }
                setup_sensitivity ();
-       } else if (property == TextContentProperty::BURN) {
-               checked_set (_burn, scs ? scs->subtitle->burn() : false);
-       } else if (property == TextContentProperty::X_OFFSET) {
-               checked_set (_x_offset, scs ? lrint (scs->subtitle->x_offset() * 100) : 0);
-       } else if (property == TextContentProperty::Y_OFFSET) {
-               checked_set (_y_offset, scs ? lrint (scs->subtitle->y_offset() * 100) : 0);
-       } else if (property == TextContentProperty::X_SCALE) {
-               checked_set (_x_scale, scs ? lrint (scs->subtitle->x_scale() * 100) : 100);
-       } else if (property == TextContentProperty::Y_SCALE) {
-               checked_set (_y_scale, scs ? lrint (scs->subtitle->y_scale() * 100) : 100);
-       } else if (property == TextContentProperty::LINE_SPACING) {
-               checked_set (_line_spacing, scs ? lrint (scs->subtitle->line_spacing() * 100) : 100);
-       } else if (property == TextContentProperty::LANGUAGE) {
-               checked_set (_language, scs ? scs->subtitle->language() : "");
+       } else if (property == CaptionContentProperty::BURN) {
+               checked_set (_burn, scs ? scs->caption->burn() : false);
+       } else if (property == CaptionContentProperty::X_OFFSET) {
+               checked_set (_x_offset, scs ? lrint (scs->caption->x_offset() * 100) : 0);
+       } else if (property == CaptionContentProperty::Y_OFFSET) {
+               checked_set (_y_offset, scs ? lrint (scs->caption->y_offset() * 100) : 0);
+       } else if (property == CaptionContentProperty::X_SCALE) {
+               checked_set (_x_scale, scs ? lrint (scs->caption->x_scale() * 100) : 100);
+       } else if (property == CaptionContentProperty::Y_SCALE) {
+               checked_set (_y_scale, scs ? lrint (scs->caption->y_scale() * 100) : 100);
+       } else if (property == CaptionContentProperty::LINE_SPACING) {
+               checked_set (_line_spacing, scs ? lrint (scs->caption->line_spacing() * 100) : 100);
+       } else if (property == CaptionContentProperty::LANGUAGE) {
+               checked_set (_language, scs ? scs->caption->language() : "");
        } else if (property == DCPContentProperty::REFERENCE_SUBTITLE) {
                if (scs) {
                        shared_ptr<DCPContent> dcp = dynamic_pointer_cast<DCPContent> (scs);
@@ -264,21 +266,21 @@ CaptionPanel::film_content_changed (int property)
 void
 CaptionPanel::use_toggled ()
 {
-       BOOST_FOREACH (shared_ptr<Content> i, _parent->selected_subtitle ()) {
-               i->subtitle->set_use (_use->GetValue());
+       BOOST_FOREACH (shared_ptr<Content> i, _parent->selected_caption()) {
+               i->caption->set_use (_use->GetValue());
        }
 }
 
 void
 CaptionPanel::type_changed ()
 {
-       BOOST_FOREACH (shared_ptr<Content> i, _parent->selected_subtitle()) {
+       BOOST_FOREACH (shared_ptr<Content> i, _parent->selected_caption()) {
                switch (_type->GetSelection()) {
                case 0:
-                       i->subtitle->set_type (TEXT_SUBTITLE);
+                       i->caption->set_type (CAPTION_OPEN);
                        break;
                case 1:
-                       i->subtitle->set_type (TEXT_CLOSED_CAPTION);
+                       i->caption->set_type (CAPTION_CLOSED);
                        break;
                }
        }
@@ -287,8 +289,8 @@ CaptionPanel::type_changed ()
 void
 CaptionPanel::burn_toggled ()
 {
-       BOOST_FOREACH (shared_ptr<Content> i, _parent->selected_subtitle ()) {
-               i->subtitle->set_burn (_burn->GetValue());
+       BOOST_FOREACH (shared_ptr<Content> i, _parent->selected_caption ()) {
+               i->caption->set_burn (_burn->GetValue());
        }
 }
 
@@ -297,15 +299,15 @@ CaptionPanel::setup_sensitivity ()
 {
        int any_subs = 0;
        int ffmpeg_subs = 0;
-       ContentList sel = _parent->selected_subtitle ();
+       ContentList sel = _parent->selected_caption ();
        BOOST_FOREACH (shared_ptr<Content> i, sel) {
                /* These are the content types that could include subtitles */
                shared_ptr<const FFmpegContent> fc = boost::dynamic_pointer_cast<const FFmpegContent> (i);
-               shared_ptr<const PlainTextFileContent> sc = boost::dynamic_pointer_cast<const PlainTextFileContent> (i);
+               shared_ptr<const TextCaptionFileContent> sc = boost::dynamic_pointer_cast<const TextCaptionFileContent> (i);
                shared_ptr<const DCPContent> dc = boost::dynamic_pointer_cast<const DCPContent> (i);
-               shared_ptr<const DCPTextContent> dsc = boost::dynamic_pointer_cast<const DCPTextContent> (i);
+               shared_ptr<const DCPSubtitleContent> dsc = boost::dynamic_pointer_cast<const DCPSubtitleContent> (i);
                if (fc) {
-                       if (fc->subtitle) {
+                       if (fc->caption) {
                                ++ffmpeg_subs;
                                ++any_subs;
                        }
@@ -340,7 +342,7 @@ CaptionPanel::setup_sensitivity ()
        _line_spacing->Enable (!reference && use);
        _language->Enable (!reference && any_subs > 0 && use);
        _stream->Enable (!reference && ffmpeg_subs == 1);
-       _subtitle_view_button->Enable (!reference);
+       _caption_view_button->Enable (!reference);
        _fonts_dialog_button->Enable (!reference);
        _appearance_dialog_button->Enable (!reference && any_subs > 0 && use);
 }
@@ -370,49 +372,49 @@ CaptionPanel::stream_changed ()
 void
 CaptionPanel::x_offset_changed ()
 {
-       BOOST_FOREACH (shared_ptr<Content> i, _parent->selected_subtitle ()) {
-               i->subtitle->set_x_offset (_x_offset->GetValue() / 100.0);
+       BOOST_FOREACH (shared_ptr<Content> i, _parent->selected_caption ()) {
+               i->caption->set_x_offset (_x_offset->GetValue() / 100.0);
        }
 }
 
 void
 CaptionPanel::y_offset_changed ()
 {
-       BOOST_FOREACH (shared_ptr<Content> i, _parent->selected_subtitle ()) {
-               i->subtitle->set_y_offset (_y_offset->GetValue() / 100.0);
+       BOOST_FOREACH (shared_ptr<Content> i, _parent->selected_caption ()) {
+               i->caption->set_y_offset (_y_offset->GetValue() / 100.0);
        }
 }
 
 void
 CaptionPanel::x_scale_changed ()
 {
-       ContentList c = _parent->selected_subtitle ();
+       ContentList c = _parent->selected_caption ();
        if (c.size() == 1) {
-               c.front()->subtitle->set_x_scale (_x_scale->GetValue() / 100.0);
+               c.front()->caption->set_x_scale (_x_scale->GetValue() / 100.0);
        }
 }
 
 void
 CaptionPanel::y_scale_changed ()
 {
-       BOOST_FOREACH (shared_ptr<Content> i, _parent->selected_subtitle ()) {
-               i->subtitle->set_y_scale (_y_scale->GetValue() / 100.0);
+       BOOST_FOREACH (shared_ptr<Content> i, _parent->selected_caption ()) {
+               i->caption->set_y_scale (_y_scale->GetValue() / 100.0);
        }
 }
 
 void
 CaptionPanel::line_spacing_changed ()
 {
-       BOOST_FOREACH (shared_ptr<Content> i, _parent->selected_subtitle ()) {
-               i->subtitle->set_line_spacing (_line_spacing->GetValue() / 100.0);
+       BOOST_FOREACH (shared_ptr<Content> i, _parent->selected_caption ()) {
+               i->caption->set_line_spacing (_line_spacing->GetValue() / 100.0);
        }
 }
 
 void
 CaptionPanel::language_changed ()
 {
-       BOOST_FOREACH (shared_ptr<Content> i, _parent->selected_subtitle ()) {
-               i->subtitle->set_language (wx_to_std (_language->GetValue()));
+       BOOST_FOREACH (shared_ptr<Content> i, _parent->selected_caption ()) {
+               i->caption->set_language (wx_to_std (_language->GetValue()));
        }
 }
 
@@ -420,35 +422,35 @@ void
 CaptionPanel::content_selection_changed ()
 {
        film_content_changed (FFmpegContentProperty::SUBTITLE_STREAMS);
-       film_content_changed (TextContentProperty::USE);
-       film_content_changed (TextContentProperty::BURN);
-       film_content_changed (TextContentProperty::X_OFFSET);
-       film_content_changed (TextContentProperty::Y_OFFSET);
-       film_content_changed (TextContentProperty::X_SCALE);
-       film_content_changed (TextContentProperty::Y_SCALE);
-       film_content_changed (TextContentProperty::LINE_SPACING);
-       film_content_changed (TextContentProperty::LANGUAGE);
-       film_content_changed (TextContentProperty::FONTS);
-       film_content_changed (TextContentProperty::TYPE);
+       film_content_changed (CaptionContentProperty::USE);
+       film_content_changed (CaptionContentProperty::BURN);
+       film_content_changed (CaptionContentProperty::X_OFFSET);
+       film_content_changed (CaptionContentProperty::Y_OFFSET);
+       film_content_changed (CaptionContentProperty::X_SCALE);
+       film_content_changed (CaptionContentProperty::Y_SCALE);
+       film_content_changed (CaptionContentProperty::LINE_SPACING);
+       film_content_changed (CaptionContentProperty::LANGUAGE);
+       film_content_changed (CaptionContentProperty::FONTS);
+       film_content_changed (CaptionContentProperty::TYPE);
        film_content_changed (DCPContentProperty::REFERENCE_SUBTITLE);
 }
 
 void
-CaptionPanel::subtitle_view_clicked ()
+CaptionPanel::caption_view_clicked ()
 {
-       if (_subtitle_view) {
-               _subtitle_view->Destroy ();
-               _subtitle_view = 0;
+       if (_caption_view) {
+               _caption_view->Destroy ();
+               _caption_view = 0;
        }
 
-       ContentList c = _parent->selected_subtitle ();
+       ContentList c = _parent->selected_caption ();
        DCPOMATIC_ASSERT (c.size() == 1);
 
        shared_ptr<Decoder> decoder = decoder_factory (c.front(), _parent->film()->log(), false);
 
        if (decoder) {
-               _subtitle_view = new SubtitleView (this, _parent->film(), c.front(), decoder, _parent->film_viewer());
-               _subtitle_view->Show ();
+               _caption_view = new CaptionView (this, _parent->film(), c.front(), decoder, _parent->film_viewer());
+               _caption_view->Show ();
        }
 }
 
@@ -460,7 +462,7 @@ CaptionPanel::fonts_dialog_clicked ()
                _fonts_dialog = 0;
        }
 
-       ContentList c = _parent->selected_subtitle ();
+       ContentList c = _parent->selected_caption ();
        DCPOMATIC_ASSERT (c.size() == 1);
 
        _fonts_dialog = new FontsDialog (this, c.front ());
@@ -486,10 +488,10 @@ CaptionPanel::reference_clicked ()
 void
 CaptionPanel::appearance_dialog_clicked ()
 {
-       ContentList c = _parent->selected_subtitle ();
+       ContentList c = _parent->selected_caption ();
        DCPOMATIC_ASSERT (c.size() == 1);
 
-       SubtitleAppearanceDialog* d = new SubtitleAppearanceDialog (this, c.front());
+       CaptionAppearanceDialog* d = new CaptionAppearanceDialog (this, c.front());
        if (d->ShowModal () == wxID_OK) {
                d->apply ();
        }