Add debug option to log SMTP session transcripts.
[dcpomatic.git] / src / lib / send_kdm_email_job.cc
index de03222725074b9a6a9fdfa670a463de0f88f396..7eff1b719bf5eadc74c7967aa86ffd561b239f36 100644 (file)
@@ -20,7 +20,8 @@
 #include "send_kdm_email_job.h"
 #include "compose.hpp"
 #include "film.h"
-#include "kdm.h"
+#include "cinema_kdms.h"
+#include <list>
 
 #include "i18n.h"
 
@@ -28,20 +29,22 @@ using std::string;
 using std::list;
 using boost::shared_ptr;
 
+/** @param log Log to write to, or 0 */
 SendKDMEmailJob::SendKDMEmailJob (
-       shared_ptr<const Film> f,
-       list<shared_ptr<Screen> > screens,
-       boost::filesystem::path dcp,
+       string film_name,
+       string cpl_name,
        boost::posix_time::ptime from,
        boost::posix_time::ptime to,
-       dcp::Formulation formulation
+       list<CinemaKDMs> cinema_kdms,
+       shared_ptr<Log> log
        )
-       : Job (f)
-       , _screens (screens)
-       , _dcp (dcp)
+       : Job (shared_ptr<Film>())
+       , _film_name (film_name)
+       , _cpl_name (cpl_name)
        , _from (from)
        , _to (to)
-       , _formulation (formulation)
+       , _cinema_kdms (cinema_kdms)
+       , _log (log)
 {
 
 }
@@ -49,7 +52,11 @@ SendKDMEmailJob::SendKDMEmailJob (
 string
 SendKDMEmailJob::name () const
 {
-       return String::compose (_("Email KDMs for %1"), _film->name());
+       if (_film_name.empty ()) {
+               return _("Email KDMs");
+       }
+
+       return String::compose (_("Email KDMs for %1"), _film_name);
 }
 
 string
@@ -61,17 +68,8 @@ SendKDMEmailJob::json_name () const
 void
 SendKDMEmailJob::run ()
 {
-       try {
-               
-               set_progress_unknown ();
-               email_kdms (_film, _screens, _dcp, _from, _to, _formulation);
-               set_progress (1);
-               set_state (FINISHED_OK);
-               
-       } catch (std::exception& e) {
-
-               set_progress (1);
-               set_state (FINISHED_ERROR);
-               throw;
-       }
+       set_progress_unknown ();
+       CinemaKDMs::email (_film_name, _cpl_name, _cinema_kdms, _from, _to, shared_from_this(), _log);
+       set_progress (1);
+       set_state (FINISHED_OK);
 }