Add primitive description of what the playlist is doing. Add missing de-interleave...
[dcpomatic.git] / src / lib / playlist.cc
index 63b44f9d649f8ad59ad4d24d8355feb27802a202..6913874b905d19e8574a20a0e89a1a525e74c6c9 100644 (file)
 #include "imagemagick_content.h"
 #include "job.h"
 
+#include "i18n.h"
+
 using std::list;
 using std::cout;
 using std::vector;
 using std::min;
 using std::max;
 using std::string;
+using std::stringstream;
 using boost::shared_ptr;
 using boost::weak_ptr;
 using boost::dynamic_pointer_cast;
@@ -427,3 +430,51 @@ Playlist::has_subtitles () const
        
        return !fc->subtitle_streams().empty();
 }
+
+string
+Playlist::description () const
+{
+       stringstream s;
+
+       if (_video.empty ()) {
+               s << _("There is no video.") << "\n";
+       } else {
+               s << _("Video will come from ");
+               list<shared_ptr<const VideoContent> >::const_iterator i = _video.begin();
+               while (i != _video.end ()) {
+                       s << (*i)->file().filename().string();
+                       ++i;
+                       if (i != _video.end ()) {
+                               s << ", ";
+                       }
+               }
+               if (_video.size() > 1) {
+                       s << " " << _("in sequence.");
+               }
+               s << "\n";
+       }
+
+       if (_audio.empty ()) {
+               s << _("There is no audio.") << "\n";
+       } else {
+               if (_audio_from == AUDIO_FFMPEG) {
+                       s << _("Audio will come from the video files.") << "\n";
+               } else {
+                       s << _("Audio will come from ");
+                       list<shared_ptr<const AudioContent> >::const_iterator i = _audio.begin();
+                       while (i != _audio.end ()) {
+                               s << (*i)->file().filename().string();
+                               ++i;
+                               if (i != _audio.end ()) {
+                                       s << ", ";
+                               }
+                       }
+                       if (_audio.size() > 1) {
+                               s << _(" run simultaneously.");
+                       }
+                       s << "\n";
+               }
+       }
+                       
+       return s.str ();
+}