Add size and audio/subtitle languages to contact sheet.
authorCarl Hetherington <cth@carlh.net>
Thu, 8 Jun 2017 14:22:31 +0000 (15:22 +0100)
committerCarl Hetherington <cth@carlh.net>
Thu, 8 Jun 2017 14:22:31 +0000 (15:22 +0100)
ChangeLog
src/lib/config.cc
src/lib/writer.cc

index 119c6e3..25bce37 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2017-06-08  Carl Hetherington  <cth@carlh.net>
 
+       * Add size and audio/subtitle languages to cover sheet (#1081).
+
        * Updated de_DE translation from Carsten Kurz.
 
 2017-06-05  Carl Hetherington  <cth@carlh.net>
index 7b2e29f..8dd4c4e 100644 (file)
@@ -634,7 +634,10 @@ Config::set_cover_sheet_to_default ()
                "Type: $TYPE\n"
                "Format: $CONTAINER\n"
                "Audio: $AUDIO\n"
+               "Audio Language: $AUDIO_LANGUAGE\n"
+               "Subtitle Language: $SUBTITLE_LANGUAGE\n"
                "Length: $LENGTH\n"
+               "Size: $SIZE\n"
                );
 }
 
index ec4689b..ae00c01 100644 (file)
@@ -35,6 +35,7 @@
 #include "util.h"
 #include "reel_writer.h"
 #include <dcp/cpl.h>
+#include <dcp/locale_convert.h>
 #include <boost/foreach.hpp>
 #include <fstream>
 #include <cerrno>
@@ -556,6 +557,22 @@ Writer::write_cover_sheet ()
        boost::algorithm::replace_all (text, "$CPL_NAME", _film->name());
        boost::algorithm::replace_all (text, "$TYPE", _film->dcp_content_type()->pretty_name());
        boost::algorithm::replace_all (text, "$CONTAINER", _film->container()->nickname());
+       boost::algorithm::replace_all (text, "$AUDIO_LANGUAGE", _film->isdcf_metadata().audio_language);
+       boost::algorithm::replace_all (text, "$SUBTITLE_LANGUAGE", _film->isdcf_metadata().subtitle_language);
+
+       boost::uintmax_t size = 0;
+       for (
+               boost::filesystem::recursive_directory_iterator i = boost::filesystem::recursive_directory_iterator(_film->dir(_film->dcp_name()));
+               i != boost::filesystem::recursive_directory_iterator();
+               ++i) {
+               size += boost::filesystem::file_size (i->path ());
+       }
+
+       if (size > (1000000000L)) {
+               boost::algorithm::replace_all (text, "$SIZE", String::compose ("%1GB", dcp::locale_convert<string> (size / 1000000000.0, 1, true)));
+       } else {
+               boost::algorithm::replace_all (text, "$SIZE", String::compose ("%1MB", dcp::locale_convert<string> (size / 1000000.0, 1, true)));
+       }
 
        pair<int, int> ch = audio_channel_types (_film->mapped_audio_channels(), _film->audio_channels());
        string description = String::compose("%1.%2", ch.first, ch.second);