X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fhints_dialog.cc;h=a2eefd39fc87658350e2995f207ad84daebc9519;hb=3828baf56467224f5d44049bf1e7a7ed11f43a05;hp=00024fabeecc1ba283d92bea1188a5065ef531eb;hpb=5006af143f069d10af5cd8b6b60d295de9187006;p=dcpomatic.git diff --git a/src/wx/hints_dialog.cc b/src/wx/hints_dialog.cc index 00024fabe..a2eefd39f 100644 --- a/src/wx/hints_dialog.cc +++ b/src/wx/hints_dialog.cc @@ -1,28 +1,30 @@ /* - Copyright (C) 2012-2015 Carl Hetherington + Copyright (C) 2012-2016 Carl Hetherington - 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 . */ +#include "hints_dialog.h" #include "lib/film.h" #include "lib/ratio.h" #include "lib/video_content.h" #include "lib/subtitle_content.h" #include "lib/font.h" -#include "hints_dialog.h" +#include "lib/content.h" #include #include #include @@ -77,11 +79,10 @@ HintsDialog::film_changed () bool big_font_files = false; if (film->interop ()) { BOOST_FOREACH (shared_ptr i, content) { - shared_ptr s = dynamic_pointer_cast (i); - if (s) { - BOOST_FOREACH (shared_ptr j, s->fonts ()) { - for (int i = 0; i < FontFiles::VARIANTS; ++i) { - optional const p = j->file (static_cast (i)); + if (i->subtitle) { + BOOST_FOREACH (shared_ptr j, i->subtitle->fonts ()) { + for (int k = 0; k < FontFiles::VARIANTS; ++k) { + optional const p = j->file (static_cast (k)); if (p && boost::filesystem::file_size (p.get()) >= (640 * 1024)) { big_font_files = true; } @@ -96,27 +97,17 @@ HintsDialog::film_changed () _text->WriteText (_("You have specified a font file which is larger than 640kB. This is very likely to cause problems on playback.")); } - if (film->audio_channels() % 2) { - hint = true; - _text->WriteText (_("Your DCP has an odd number of audio channels. This is very likely to cause problems on playback.")); - _text->Newline (); - } else if (film->audio_channels() < 6) { + if (film->audio_channels() < 6) { hint = true; _text->WriteText (_("Your DCP has fewer than 6 audio channels. This may cause problems on some projectors.")); _text->Newline (); - } else if (film->audio_channels() == 0) { - /* Carsten Kurz reckons having no audio can be a problem */ - hint = true; - _text->WriteText (_("Your DCP has no audio channels. This is likely to cause problems on playback.")); - _text->Newline (); } int flat_or_narrower = 0; int scope = 0; BOOST_FOREACH (shared_ptr i, content) { - shared_ptr vc = dynamic_pointer_cast (i); - if (vc) { - Ratio const * r = vc->scale().ratio (); + if (i->video) { + Ratio const * r = i->video->scale().ratio (); if (r && r->id() == "239") { ++scope; } else if (r && r->id() != "239" && r->id() != "full-frame") { @@ -170,8 +161,7 @@ HintsDialog::film_changed () int three_d = 0; BOOST_FOREACH (shared_ptr i, content) { - shared_ptr vc = dynamic_pointer_cast (i); - if (vc && vc->video_frame_type() != VIDEO_FRAME_TYPE_2D) { + if (i->video && i->video->frame_type() != VIDEO_FRAME_TYPE_2D) { ++three_d; } }