Attempt to tidy up internal APIs slightly.
[dcpomatic.git] / src / lib / writer.cc
index ccd6d74d1847aa3560a9fb1af04262942794fabb..88925cbbdbeb8596c1a809faf45884dad913b586 100644 (file)
@@ -79,9 +79,6 @@ Writer::Writer (shared_ptr<const Film> film, weak_ptr<Job> j)
        , _repeat_written (0)
        , _pushed_to_disk (0)
 {
-       /* Remove any old DCP */
-       boost::filesystem::remove_all (_film->dir (_film->dcp_name ()));
-
        shared_ptr<Job> job = _job.lock ();
        DCPOMATIC_ASSERT (job);
 
@@ -98,8 +95,9 @@ Writer::Writer (shared_ptr<const Film> film, weak_ptr<Job> j)
        _subtitle_reel = _reels.begin ();
 
        /* Check that the signer is OK if we need one */
-       if (_film->is_signed() && !Config::instance()->signer_chain()->valid ()) {
-               throw InvalidSignerError ();
+       string reason;
+       if (_film->is_signed() && !Config::instance()->signer_chain()->valid(&reason)) {
+               throw InvalidSignerError (reason);
        }
 }
 
@@ -513,8 +511,9 @@ Writer::finish ()
        if (_film->is_signed ()) {
                signer = Config::instance()->signer_chain ();
                /* We did check earlier, but check again here to be on the safe side */
-               if (!signer->valid ()) {
-                       throw InvalidSignerError ();
+               string reason;
+               if (!signer->valid (&reason)) {
+                       throw InvalidSignerError (reason);
                }
        }
 
@@ -543,13 +542,13 @@ Writer::can_fake_write (Frame frame) const
 }
 
 void
-Writer::write (PlayerSubtitles subs)
+Writer::write (PlayerSubtitles subs, DCPTimePeriod period)
 {
        if (subs.text.empty ()) {
                return;
        }
 
-       if (_subtitle_reel->period().to <= subs.from) {
+       if (_subtitle_reel->period().to <= period.from) {
                ++_subtitle_reel;
        }