C++11 tidying.
[dcpomatic.git] / src / lib / writer.cc
index 66239c537c9a2a1489950ed4076fe4a4a5249e79..d775fde54f21ac1ee4b2d034f926800ae66b175d 100644 (file)
 */
 
 
-#include "writer.h"
-#include "compose.hpp"
-#include "film.h"
-#include "ratio.h"
-#include "log.h"
-#include "dcpomatic_log.h"
-#include "dcp_video.h"
-#include "dcp_content_type.h"
+#include "audio_buffers.h"
 #include "audio_mapping.h"
+#include "compose.hpp"
 #include "config.h"
-#include "job.h"
 #include "cross.h"
-#include "audio_buffers.h"
-#include "version.h"
+#include "dcp_content_type.h"
+#include "dcp_video.h"
+#include "dcpomatic_log.h"
+#include "film.h"
 #include "font_data.h"
-#include "util.h"
+#include "job.h"
+#include "log.h"
+#include "ratio.h"
 #include "reel_writer.h"
 #include "text_content.h"
+#include "util.h"
+#include "version.h"
+#include "writer.h"
 #include <dcp/cpl.h>
 #include <dcp/locale_convert.h>
 #include <dcp/reel_file_asset.h>
-#include <fstream>
 #include <cerrno>
-#include <iostream>
 #include <cfloat>
+#include <fstream>
+#include <iostream>
 
 #include "i18n.h"
 
 
 using std::cout;
 using std::dynamic_pointer_cast;
-using std::list;
-using std::make_pair;
 using std::make_shared;
-using std::map;
 using std::max;
 using std::min;
-using std::pair;
 using std::shared_ptr;
 using std::string;
 using std::vector;
@@ -69,8 +65,8 @@ using boost::optional;
 #if BOOST_VERSION >= 106100
 using namespace boost::placeholders;
 #endif
-using dcp::Data;
 using dcp::ArrayData;
+using dcp::Data;
 using namespace dcpomatic;
 
 
@@ -307,12 +303,11 @@ Writer::write (shared_ptr<const AudioBuffers> audio, DCPTime const time)
                        DCPOMATIC_ASSERT ((part_frames[0] + part_frames[1]) <= audio->frames());
 
                        if (part_frames[0]) {
-                               shared_ptr<AudioBuffers> part (new AudioBuffers(audio, part_frames[0], 0));
-                               _audio_reel->write (part);
+                               _audio_reel->write (make_shared<AudioBuffers>(audio, part_frames[0], 0));
                        }
 
                        if (part_frames[1]) {
-                               audio.reset (new AudioBuffers(audio, part_frames[1], part_frames[0]));
+                               audio = make_shared<AudioBuffers>(audio, part_frames[1], part_frames[0]);
                        } else {
                                audio.reset ();
                        }
@@ -633,6 +628,9 @@ Writer::finish (boost::filesystem::path output_dcp)
        for (auto i: film()->content_versions()) {
                cv.push_back (dcp::ContentVersion(i));
        }
+       if (cv.empty()) {
+               cv = { dcp::ContentVersion("1") };
+       }
        cpl->set_content_versions (cv);
 
        cpl->set_full_content_title_text (film()->name());
@@ -721,6 +719,10 @@ Writer::write_cover_sheet (boost::filesystem::path output_dcp)
 
        auto text = Config::instance()->cover_sheet ();
        boost::algorithm::replace_all (text, "$CPL_NAME", film()->name());
+       auto cpls = film()->cpls();
+       if (!cpls.empty()) {
+               boost::algorithm::replace_all (text, "$CPL_FILENAME", cpls[0].cpl_file.filename().string());
+       }
        boost::algorithm::replace_all (text, "$TYPE", film()->dcp_content_type()->pretty_name());
        boost::algorithm::replace_all (text, "$CONTAINER", film()->container()->container_nickname());