swaroop: add name to ECinema KDMs and add DKDM wrapper for ECinema.
[dcpomatic.git] / src / lib / config.h
index 1d0501ce4d7487d1b61a9ec980f2bcd312c1d0de..e25cb06da5d4601e485e4ca32a0edac3792e2f53 100644 (file)
@@ -488,6 +488,15 @@ public:
                return _image_display;
        }
 
+       enum VideoViewType {
+               VIDEO_VIEW_SIMPLE,
+               VIDEO_VIEW_OPENGL
+       };
+
+       VideoViewType video_view_type () const {
+               return _video_view_type;
+       }
+
        bool respect_kdm_validity_periods () const {
                return _respect_kdm_validity_periods;
        }
@@ -954,6 +963,10 @@ public:
                maybe_set (_image_display, n);
        }
 
+       void set_video_view_type (VideoViewType v) {
+               maybe_set (_video_view_type, v);
+       }
+
        void set_respect_kdm_validity_periods (bool r) {
                maybe_set (_respect_kdm_validity_periods, r);
        }
@@ -1072,10 +1085,16 @@ public:
        static boost::signals2::signal<void ()> FailedToLoad;
        /** Emitted if read() issued a warning which the user might want to know about */
        static boost::signals2::signal<void (std::string)> Warning;
-       /** Emitted if there is a bad certificate in the signer chain.  Handler can call
-        *  true to ask Config to re-create the chain.
+       /** Emitted if there is a something wrong the contents of our config.  Handler can call
+        *  true to ask Config to solve the problem (by discarding and recreating the bad thing)
         */
-       static boost::signals2::signal<bool (void)> BadSignerChain;
+       enum BadReason {
+               BAD_SIGNER_UTF8_STRINGS,     ///< signer chain contains UTF-8 strings (not PRINTABLESTRING)
+               BAD_SIGNER_INCONSISTENT,     ///< signer chain is somehow inconsistent
+               BAD_DECRYPTION_INCONSISTENT, ///< KDM decryption chain is somehow inconsistent
+       };
+
+       static boost::signals2::signal<bool (BadReason)> Bad;
 
        void write () const;
        void write_config () const;
@@ -1254,6 +1273,7 @@ private:
        Interface _interface_complexity;
        PlayerMode _player_mode;
        int _image_display;
+       VideoViewType _video_view_type;
        bool _respect_kdm_validity_periods;
        /** Log file containing things the player does (e.g. started, stopped, loaded
            playlist etc.)  Does not contain debugging information.