diff options
| author | Carl Hetherington <cth@carlh.net> | 2019-05-13 21:52:27 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2019-05-13 21:52:27 +0100 |
| commit | 006e38346a8bcdcc889979b7c00802d9bb8fc6f8 (patch) | |
| tree | 352caad1d2863ef4385b0d91fa7de07f52ff5e27 /src/lib/screen_kdm.h | |
| parent | 6cde6bcc0b604c1a157a4ccbdce29e91f4d45a91 (diff) | |
swaroop: allow ScreenKDM subclasses for different KDM types.
Diffstat (limited to 'src/lib/screen_kdm.h')
| -rw-r--r-- | src/lib/screen_kdm.h | 59 |
1 files changed, 55 insertions, 4 deletions
diff --git a/src/lib/screen_kdm.h b/src/lib/screen_kdm.h index 351c2f1c2..6a102557f 100644 --- a/src/lib/screen_kdm.h +++ b/src/lib/screen_kdm.h @@ -21,6 +21,9 @@ #ifndef DCPOMATIC_SCREEN_KDM_H #define DCPOMATIC_SCREEN_KDM_H +#ifdef DCPOMATIC_VARIANT_SWAROOP +#include "encrypted_ecinema_kdm.h" +#endif #include <dcp/encrypted_kdm.h> #include <dcp/name_format.h> #include <boost/shared_ptr.hpp> @@ -33,21 +36,69 @@ namespace dcpomatic { class ScreenKDM { public: - ScreenKDM (boost::shared_ptr<dcpomatic::Screen> s, dcp::EncryptedKDM k) + ScreenKDM (boost::shared_ptr<dcpomatic::Screen> s) : screen (s) - , kdm (k) {} + virtual std::string kdm_as_xml () const = 0; + virtual void kdm_as_xml (boost::filesystem::path out) const = 0; + virtual std::string kdm_id () const = 0; + static int write_files ( - std::list<ScreenKDM> screen_kdms, boost::filesystem::path directory, + std::list<boost::shared_ptr<ScreenKDM> > screen_kdms, boost::filesystem::path directory, dcp::NameFormat name_format, dcp::NameFormat::Map name_values, boost::function<bool (boost::filesystem::path)> confirm_overwrite ); boost::shared_ptr<dcpomatic::Screen> screen; +}; + +class DCPScreenKDM : public ScreenKDM +{ +public: + DCPScreenKDM (boost::shared_ptr<dcpomatic::Screen> s, dcp::EncryptedKDM k) + : ScreenKDM (s) + , kdm (k) + {} + + std::string kdm_as_xml () const { + return kdm.as_xml (); + } + + void kdm_as_xml (boost::filesystem::path out) const { + return kdm.as_xml (out); + } + + std::string kdm_id () const { + return kdm.cpl_id (); + } + dcp::EncryptedKDM kdm; }; -extern bool operator== (ScreenKDM const & a, ScreenKDM const & b); +#ifdef DCPOMATIC_VARIANT_SWAROOP +class ECinemaScreenKDM : public ScreenKDM +{ +public: + ECinemaScreenKDM (boost::shared_ptr<dcpomatic::Screen> s, EncryptedECinemaKDM k) + : ScreenKDM (s) + , kdm (k) + {} + + std::string kdm_as_xml () const { + return kdm.as_xml (); + } + + void kdm_as_xml (boost::filesystem::path out) const { + return kdm.as_xml (out); + } + + std::string kdm_id () const { + return kdm.id (); + } + + EncryptedECinemaKDM kdm; +}; +#endif #endif |
