summaryrefslogtreecommitdiff
path: root/src/lib/film.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/film.cc')
-rw-r--r--src/lib/film.cc27
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;
+}