- void fill_writer_info (ASDCP::WriterInfo* w) const;
-
- /** Signal to emit to report progress */
- sigc::signal1<void, float>* _progress;
- /** Frames per second */
- int _fps;
- /** Length in frames */
- int _length;
+ void fill_writer_info (ASDCP::WriterInfo* w, std::string uuid, bool interop, MXFMetadata const & metadata);
+
+ void add_typed_key_id (xmlpp::Element *) const;
+
+ bool encrypted () const {
+ return !_key_id.empty ();
+ }
+
+ void set_key_id (std::string i) {
+ _key_id = i;
+ }
+
+ std::string key_id () const {
+ return _key_id;
+ }
+
+ void set_key (Key);
+
+ boost::optional<Key> key () const {
+ return _key;
+ }
+
+protected:
+ virtual std::string key_type () const = 0;
+ virtual std::string cpl_node_name () const = 0;
+ virtual std::pair<std::string, std::string> cpl_node_attribute (bool) const {
+ return std::make_pair ("", "");
+ }
+
+ /** Signal to emit to report progress, or 0 */
+ boost::signals2::signal<void (float)>* _progress;
+ ASDCP::AESEncContext* _encryption_context;
+ ASDCP::AESDecContext* _decryption_context;
+ std::string _key_id;
+ boost::optional<Key> _key;