+/** @class Screen
+ * @brief A representation of a Screen for KDM generation.
+ *
+ * This is the name of the screen, the certificate of its
+ * `recipient' (i.e. the mediablock) and the certificates/thumbprints
+ * of any trusted devices.
+ */
+class Screen : public KDMRecipient
+{
+public:
+ Screen (
+ std::string const & name_,
+ std::string const & notes_,
+ boost::optional<dcp::Certificate> recipient_,
+ boost::optional<std::string> recipient_file_,
+ std::vector<TrustedDevice> trusted_devices_
+ )
+ : KDMRecipient (name_, notes_, recipient_, recipient_file_)
+ , trusted_devices (trusted_devices_)
+ {}
+
+ explicit Screen (cxml::ConstNodePtr);
+
+ void as_xml (xmlpp::Element *) const override;
+ std::vector<std::string> trusted_device_thumbprints () const;
+
+ std::shared_ptr<Cinema> cinema;
+ std::vector<TrustedDevice> trusted_devices;
+};