diff options
Diffstat (limited to 'src/lib/film.cc')
| -rw-r--r-- | src/lib/film.cc | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/lib/film.cc b/src/lib/film.cc index 46c27d195..d7620be8d 100644 --- a/src/lib/film.cc +++ b/src/lib/film.cc @@ -48,6 +48,7 @@ #include <boost/filesystem.hpp> #include <boost/algorithm/string.hpp> #include <boost/lexical_cast.hpp> +#include <boost/foreach.hpp> #include <unistd.h> #include <stdexcept> #include <iostream> @@ -69,6 +70,7 @@ using std::make_pair; using std::endl; using std::cout; using std::list; +using std::set; using boost::shared_ptr; using boost::weak_ptr; using boost::dynamic_pointer_cast; @@ -1142,3 +1144,28 @@ Film::should_be_enough_disk_space (double& required, double& available) const available = double (s.available) / 1073741824.0f; return (available - required) > 1; } + +string +Film::subtitle_language () const +{ + set<string> languages; + + ContentList cl = content (); + BOOST_FOREACH (shared_ptr<Content>& c, cl) { + shared_ptr<SubtitleContent> sc = dynamic_pointer_cast<SubtitleContent> (c); + if (sc) { + languages.insert (sc->subtitle_language ()); + } + } + + string all; + BOOST_FOREACH (string s, languages) { + if (!all.empty ()) { + all += "/" + s; + } else { + all += s; + } + } + + return all; +} |
