summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2018-03-27 23:28:27 +0100
committerCarl Hetherington <cth@carlh.net>2018-03-27 23:28:27 +0100
commit47c34c6c7c82396b62e101283cb25b8726dbaefd (patch)
tree2a4117899fcaddc7d5b9aae89315cecd145174c8 /src
parent05502433d24e916bd99db3bac26b4903f961da06 (diff)
why_not in can_reference can just be a string rather than a list of strings.
Diffstat (limited to 'src')
-rw-r--r--src/lib/dcp_content.cc26
-rw-r--r--src/lib/dcp_content.h10
-rw-r--r--src/wx/audio_panel.cc2
-rw-r--r--src/wx/content_sub_panel.cc7
-rw-r--r--src/wx/content_sub_panel.h2
-rw-r--r--src/wx/subtitle_panel.cc2
-rw-r--r--src/wx/video_panel.cc2
7 files changed, 24 insertions, 27 deletions
diff --git a/src/lib/dcp_content.cc b/src/lib/dcp_content.cc
index ad489917d..c4f73e2b2 100644
--- a/src/lib/dcp_content.cc
+++ b/src/lib/dcp_content.cc
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2014-2016 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2014-2018 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
@@ -429,22 +429,22 @@ DCPContent::reel_split_points () const
}
bool
-DCPContent::can_reference (function<shared_ptr<ContentPart> (shared_ptr<const Content>)> part, string overlapping, list<string>& why_not) const
+DCPContent::can_reference (function<shared_ptr<ContentPart> (shared_ptr<const Content>)> part, string overlapping, string& why_not) const
{
/* We must be using the same standard as the film */
if (_standard) {
if (_standard.get() == dcp::INTEROP && !film()->interop()) {
- why_not.push_back (_("The film is set to SMPTE and this DCP is Interop."));
+ why_not = _("The film is set to SMPTE and this DCP is Interop.");
return false;
} else if (_standard.get() == dcp::SMPTE && film()->interop()) {
- why_not.push_back (_("The film is set to Interop and this DCP is SMPTE."));
+ why_not = _("The film is set to Interop and this DCP is SMPTE.");
return false;
}
}
/* And the same frame rate */
if (!video_frame_rate() || (lrint(video_frame_rate().get()) != film()->video_frame_rate())) {
- why_not.push_back (_("The film has a different frame rate to this DCP."));
+ why_not = _("The film has a different frame rate to this DCP.");
return false;
}
@@ -466,14 +466,14 @@ DCPContent::can_reference (function<shared_ptr<ContentPart> (shared_ptr<const Co
*/
BOOST_FOREACH (DCPTimePeriod i, reel_list) {
if (find (fr.begin(), fr.end(), i) == fr.end ()) {
- why_not.push_back (_("The reel lengths in the film differ from those in the DCP; set the reel mode to 'split by video content'."));
+ why_not = _("The reel lengths in the film differ from those in the DCP; set the reel mode to 'split by video content'.");
return false;
}
}
ContentList a = overlaps (film()->content(), part, position(), end());
if (a.size() != 1 || a.front().get() != this) {
- why_not.push_back (overlapping);
+ why_not = overlapping;
return false;
}
@@ -481,10 +481,10 @@ DCPContent::can_reference (function<shared_ptr<ContentPart> (shared_ptr<const Co
}
bool
-DCPContent::can_reference_video (list<string>& why_not) const
+DCPContent::can_reference_video (string& why_not) const
{
if (film()->frame_size() != video->size()) {
- why_not.push_back (_("The video frame size in the film differs from that in the DCP."));
+ why_not = _("The video frame size in the film differs from that in the DCP.");
return false;
}
@@ -492,7 +492,7 @@ DCPContent::can_reference_video (list<string>& why_not) const
}
bool
-DCPContent::can_reference_audio (list<string>& why_not) const
+DCPContent::can_reference_audio (string& why_not) const
{
shared_ptr<DCPDecoder> decoder;
try {
@@ -507,7 +507,7 @@ DCPContent::can_reference_audio (list<string>& why_not) const
BOOST_FOREACH (shared_ptr<dcp::Reel> i, decoder->reels()) {
if (!i->main_sound()) {
- why_not.push_back (_("The DCP does not have sound in all reels."));
+ why_not = _("The DCP does not have sound in all reels.");
return false;
}
}
@@ -516,7 +516,7 @@ DCPContent::can_reference_audio (list<string>& why_not) const
}
bool
-DCPContent::can_reference_subtitle (list<string>& why_not) const
+DCPContent::can_reference_subtitle (string& why_not) const
{
shared_ptr<DCPDecoder> decoder;
try {
@@ -531,7 +531,7 @@ DCPContent::can_reference_subtitle (list<string>& why_not) const
BOOST_FOREACH (shared_ptr<dcp::Reel> i, decoder->reels()) {
if (!i->main_subtitle()) {
- why_not.push_back (_("The DCP does not have subtitles in all reels."));
+ why_not = _("The DCP does not have subtitles in all reels.");
return false;
}
}
diff --git a/src/lib/dcp_content.h b/src/lib/dcp_content.h
index 892b6aa73..371ec7fff 100644
--- a/src/lib/dcp_content.h
+++ b/src/lib/dcp_content.h
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2014-2016 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2014-2018 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
@@ -97,7 +97,7 @@ public:
return _reference_video;
}
- bool can_reference_video (std::list<std::string> &) const;
+ bool can_reference_video (std::string &) const;
void set_reference_audio (bool r);
@@ -106,7 +106,7 @@ public:
return _reference_audio;
}
- bool can_reference_audio (std::list<std::string> &) const;
+ bool can_reference_audio (std::string &) const;
void set_reference_subtitle (bool r);
@@ -115,7 +115,7 @@ public:
return _reference_subtitle;
}
- bool can_reference_subtitle (std::list<std::string> &) const;
+ bool can_reference_subtitle (std::string &) const;
void set_cpl (std::string id);
@@ -139,7 +139,7 @@ private:
bool can_reference (
boost::function <boost::shared_ptr<ContentPart> (boost::shared_ptr<const Content>)>,
std::string overlapping,
- std::list<std::string>& why_not
+ std::string& why_not
) const;
std::string _name;
diff --git a/src/wx/audio_panel.cc b/src/wx/audio_panel.cc
index fd63abf6c..14d8db07e 100644
--- a/src/wx/audio_panel.cc
+++ b/src/wx/audio_panel.cc
@@ -267,7 +267,7 @@ AudioPanel::setup_sensitivity ()
dcp = dynamic_pointer_cast<DCPContent> (sel.front ());
}
- list<string> why_not;
+ string why_not;
bool const can_reference = dcp && dcp->can_reference_audio (why_not);
setup_refer_button (_reference, dcp, can_reference, why_not);
diff --git a/src/wx/content_sub_panel.cc b/src/wx/content_sub_panel.cc
index e0e0cd12b..92eb5a32f 100644
--- a/src/wx/content_sub_panel.cc
+++ b/src/wx/content_sub_panel.cc
@@ -42,7 +42,7 @@ ContentSubPanel::ContentSubPanel (ContentPanel* p, wxString name)
}
void
-ContentSubPanel::setup_refer_button (wxCheckBox* button, shared_ptr<DCPContent> dcp, bool can_reference, list<string> why_not) const
+ContentSubPanel::setup_refer_button (wxCheckBox* button, shared_ptr<DCPContent> dcp, bool can_reference, string why_not) const
{
button->Enable (can_reference);
@@ -50,10 +50,7 @@ ContentSubPanel::setup_refer_button (wxCheckBox* button, shared_ptr<DCPContent>
if (!dcp) {
s = _("No DCP selected.");
} else if (!can_reference) {
- s = _("Cannot reference this DCP. ");
- BOOST_FOREACH (string i, why_not) {
- s += std_to_wx(i) + wxT(" ");
- }
+ s = _("Cannot reference this DCP. ") + std_to_wx(why_not);
}
button->SetToolTip (s);
diff --git a/src/wx/content_sub_panel.h b/src/wx/content_sub_panel.h
index 44d5ee1a5..fb22b3a22 100644
--- a/src/wx/content_sub_panel.h
+++ b/src/wx/content_sub_panel.h
@@ -42,7 +42,7 @@ public:
protected:
- void setup_refer_button (wxCheckBox* button, boost::shared_ptr<DCPContent> dcp, bool can_reference, std::list<std::string> why_not) const;
+ void setup_refer_button (wxCheckBox* button, boost::shared_ptr<DCPContent> dcp, bool can_reference, std::string why_not) const;
ContentPanel* _parent;
wxSizer* _sizer;
diff --git a/src/wx/subtitle_panel.cc b/src/wx/subtitle_panel.cc
index 0b94b335f..5bba1ec2c 100644
--- a/src/wx/subtitle_panel.cc
+++ b/src/wx/subtitle_panel.cc
@@ -275,7 +275,7 @@ SubtitlePanel::setup_sensitivity ()
dcp = dynamic_pointer_cast<DCPContent> (sel.front ());
}
- list<string> why_not;
+ string why_not;
bool const can_reference = dcp && dcp->can_reference_subtitle (why_not);
setup_refer_button (_reference, dcp, can_reference, why_not);
diff --git a/src/wx/video_panel.cc b/src/wx/video_panel.cc
index 294dd00e1..5fbe518c4 100644
--- a/src/wx/video_panel.cc
+++ b/src/wx/video_panel.cc
@@ -462,7 +462,7 @@ VideoPanel::setup_sensitivity ()
dcp = dynamic_pointer_cast<DCPContent> (sel.front ());
}
- list<string> why_not;
+ string why_not;
bool const can_reference = dcp && dcp->can_reference_video (why_not);
setup_refer_button (_reference, dcp, can_reference, why_not);