No-op; fix GPL address and use the explicit-program-name version.
[dcpomatic.git] / src / wx / timing_panel.cc
index 18a07add48838792b4ee20679b0bbe5a73a4c404..63606f46c734ab1d939497e03e7e185d4bf0ef1c 100644 (file)
@@ -1,19 +1,20 @@
 /*
     Copyright (C) 2012-2016 Carl Hetherington <cth@carlh.net>
 
-    This program is free software; you can redistribute it and/or modify
+    This file is part of DCP-o-matic.
+
+    DCP-o-matic is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
     the Free Software Foundation; either version 2 of the License, or
     (at your option) any later version.
 
-    This program is distributed in the hope that it will be useful,
+    DCP-o-matic is distributed in the hope that it will be useful,
     but WITHOUT ANY WARRANTY; without even the implied warranty of
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
     You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+    along with DCP-o-matic.  If not, see <http://www.gnu.org/licenses/>.
 
 */
 
@@ -210,10 +211,8 @@ TimingPanel::film_content_changed (int property)
 
        } else if (
                property == ContentProperty::LENGTH ||
-               property == VideoContentProperty::VIDEO_FRAME_RATE ||
-               property == VideoContentProperty::VIDEO_FRAME_TYPE ||
-               property == AudioContentProperty::AUDIO_VIDEO_FRAME_RATE ||
-               property == SubtitleContentProperty::SUBTITLE_VIDEO_FRAME_RATE
+               property == ContentProperty::VIDEO_FRAME_RATE ||
+               property == VideoContentProperty::FRAME_TYPE
                ) {
 
                update_full_length ();
@@ -249,49 +248,38 @@ TimingPanel::film_content_changed (int property)
                property == ContentProperty::LENGTH ||
                property == ContentProperty::TRIM_START ||
                property == ContentProperty::TRIM_END ||
-               property == VideoContentProperty::VIDEO_FRAME_RATE ||
-               property == VideoContentProperty::VIDEO_FRAME_TYPE ||
-               property == AudioContentProperty::AUDIO_VIDEO_FRAME_RATE ||
-               property == SubtitleContentProperty::SUBTITLE_VIDEO_FRAME_RATE
+               property == ContentProperty::VIDEO_FRAME_RATE ||
+               property == VideoContentProperty::FRAME_TYPE
                ) {
 
                update_play_length ();
        }
 
-       if (property == VideoContentProperty::VIDEO_FRAME_RATE || property == SubtitleContentProperty::SUBTITLE_VIDEO_FRAME_RATE) {
+       if (property == ContentProperty::VIDEO_FRAME_RATE) {
                set<double> check_vc;
-               shared_ptr<const Content> vc;
+               shared_ptr<const Content> content;
                int count_ac = 0;
-               shared_ptr<const Content> ac;
                int count_sc = 0;
-               shared_ptr<const Content> sc;
                BOOST_FOREACH (shared_ptr<const Content> i, _parent->selected ()) {
-                       if (i->video) {
-                               check_vc.insert (i->video->video_frame_rate ());
-                               vc = i;
+                       if (i->video && i->video_frame_rate()) {
+                               check_vc.insert (i->video_frame_rate().get());
+                               content = i;
                        }
-                       shared_ptr<const AudioContent> at = dynamic_pointer_cast<const AudioContent> (i);
-                       if (i->audio) {
+                       if (i->audio && i->video_frame_rate()) {
                                ++count_ac;
-                               ac = at;
+                               content = i;
                        }
-                       if (i->subtitle) {
+                       if (i->subtitle && i->video_frame_rate()) {
                                ++count_sc;
-                               sc = i;
+                               content = i;
                        }
 
                }
 
-               bool const single_frame_image_content = vc && dynamic_pointer_cast<const ImageContent> (vc) && vc->number_of_paths() == 1;
+               bool const single_frame_image_content = content && dynamic_pointer_cast<const ImageContent> (content) && content->number_of_paths() == 1;
 
                if ((check_vc.size() == 1 || count_ac == 1 || count_sc == 1) && !single_frame_image_content) {
-                       if (vc) {
-                               checked_set (_video_frame_rate, raw_convert<string> (vc->video->video_frame_rate (), 5));
-                       } else if (ac) {
-                               checked_set (_video_frame_rate, raw_convert<string> (ac->audio->audio_video_frame_rate (), 5));
-                       } else if (sc) {
-                               checked_set (_video_frame_rate, raw_convert<string> (sc->subtitle_video_frame_rate (), 5));
-                       }
+                       checked_set (_video_frame_rate, raw_convert<string> (content->video_frame_rate().get(), 5));
                        _video_frame_rate->Enable (true);
                } else {
                        checked_set (_video_frame_rate, wxT (""));
@@ -328,7 +316,7 @@ TimingPanel::full_length_changed ()
                shared_ptr<ImageContent> ic = dynamic_pointer_cast<ImageContent> (i);
                if (ic && ic->still ()) {
                        int const vfr = _parent->film()->video_frame_rate ();
-                       ic->video->set_video_length (_full_length->get (vfr).frames_round (vfr));
+                       ic->video->set_length (_full_length->get (vfr).frames_round (vfr));
                }
        }
 }
@@ -402,24 +390,12 @@ TimingPanel::video_frame_rate_changed ()
 void
 TimingPanel::set_video_frame_rate ()
 {
+       double const fr = raw_convert<double> (wx_to_std (_video_frame_rate->GetValue ()));
        BOOST_FOREACH (shared_ptr<Content> i, _parent->selected ()) {
-               shared_ptr<VideoContent> vc = dynamic_pointer_cast<VideoContent> (i);
-               shared_ptr<AudioContent> ac = dynamic_pointer_cast<AudioContent> (i);
-               shared_ptr<DCPSubtitleContent> dsc = dynamic_pointer_cast<DCPSubtitleContent> (i);
-               shared_ptr<TextSubtitleContent> tsc = dynamic_pointer_cast<TextSubtitleContent> (i);
-               double const fr = raw_convert<double> (wx_to_std (_video_frame_rate->GetValue ()));
-               if (vc) {
-                       vc->set_video_frame_rate (fr);
-               } else if (ac) {
-                       /* Audio but not video, i.e. SndfileContent */
-                       ac->set_audio_video_frame_rate (fr);
-               } else if (dsc) {
-                       dsc->set_subtitle_video_frame_rate (fr);
-               } else if (tsc) {
-                       tsc->set_subtitle_video_frame_rate (fr);
-               }
-               _set_video_frame_rate->Enable (false);
+               i->set_video_frame_rate (fr);
        }
+
+       _set_video_frame_rate->Enable (false);
 }
 
 void
@@ -431,9 +407,7 @@ TimingPanel::content_selection_changed ()
        film_content_changed (ContentProperty::LENGTH);
        film_content_changed (ContentProperty::TRIM_START);
        film_content_changed (ContentProperty::TRIM_END);
-       film_content_changed (VideoContentProperty::VIDEO_FRAME_RATE);
-       film_content_changed (SubtitleContentProperty::SUBTITLE_VIDEO_FRAME_RATE);
-       film_content_changed (AudioContentProperty::AUDIO_VIDEO_FRAME_RATE);
+       film_content_changed (ContentProperty::VIDEO_FRAME_RATE);
 }
 
 void