More player debugging for butler video-full states.
[dcpomatic.git] / src / lib / config.h
index a162750febf9cd59a12cc02e28b075c3b8098e32..21463fdb5bc44500ca16827acbfc6f766ee06b7c 100644 (file)
@@ -79,6 +79,7 @@ public:
                INTERFACE_COMPLEXITY,
                PLAYER_CONTENT_DIRECTORY,
                PLAYER_PLAYLIST_DIRECTORY,
+               PLAYER_DEBUG_LOG,
                HISTORY,
 #ifdef DCPOMATIC_VARIANT_SWAROOP
                PLAYER_BACKGROUND_IMAGE,
@@ -484,8 +485,12 @@ public:
                return _respect_kdm_validity_periods;
        }
 
-       boost::optional<boost::filesystem::path> player_log_file () const {
-               return _player_log_file;
+       boost::optional<boost::filesystem::path> player_activity_log_file () const {
+               return _player_activity_log_file;
+       }
+
+       boost::optional<boost::filesystem::path> player_debug_log_file () const {
+               return _player_debug_log_file;
        }
 
        boost::optional<boost::filesystem::path> player_content_directory () const {
@@ -524,11 +529,11 @@ public:
        std::vector<Monitor> required_monitors () const {
                return _required_monitors;
        }
-#endif
 
-       bool allow_spl_editing () const {
-               return _allow_spl_editing;
+       boost::optional<boost::filesystem::path> player_lock_file () const {
+               return _player_lock_file;
        }
+#endif
 
        /* SET (mostly) */
 
@@ -940,18 +945,30 @@ public:
                maybe_set (_respect_kdm_validity_periods, r);
        }
 
-       void set_player_log_file (boost::filesystem::path p) {
-               maybe_set (_player_log_file, p);
+       void set_player_activity_log_file (boost::filesystem::path p) {
+               maybe_set (_player_activity_log_file, p);
        }
 
-       void unset_player_log_file () {
-               if (!_player_log_file) {
+       void unset_player_activity_log_file () {
+               if (!_player_activity_log_file) {
                        return;
                }
-               _player_log_file = boost::none;
+               _player_activity_log_file = boost::none;
                changed ();
        }
 
+       void set_player_debug_log_file (boost::filesystem::path p) {
+               maybe_set (_player_debug_log_file, p, PLAYER_DEBUG_LOG);
+       }
+
+       void unset_player_debug_log_file () {
+               if (!_player_debug_log_file) {
+                       return;
+               }
+               _player_debug_log_file = boost::none;
+               changed (PLAYER_DEBUG_LOG);
+       }
+
        void set_player_content_directory (boost::filesystem::path p) {
                maybe_set (_player_content_directory, p, PLAYER_CONTENT_DIRECTORY);
        }
@@ -1020,12 +1037,20 @@ public:
        void set_required_monitors (std::vector<Monitor> monitors) {
                maybe_set (_required_monitors, monitors);
        }
-#endif
 
-       void set_allow_spl_editing (bool s) {
-               maybe_set (_allow_spl_editing, s);
+       void set_player_lock_file (boost::filesystem::path p) {
+               maybe_set (_player_lock_file, p);
        }
 
+       void unset_player_lock_file () {
+               if (!_player_lock_file) {
+                       return;
+               }
+               _player_lock_file = boost::none;
+               changed ();
+       }
+#endif
+
        void changed (Property p = OTHER);
        boost::signals2::signal<void (Property)> Changed;
        /** Emitted if read() failed on an existing Config file.  There is nothing
@@ -1120,6 +1145,7 @@ private:
        std::string _tms_password;
        /** Our cinema sound processor */
        CinemaSoundProcessor const * _cinema_sound_processor;
+       /** The list of possible DCP frame rates that DCP-o-matic will use */
        std::list<int> _allowed_dcp_frame_rates;
        /** Allow any video frame rate for the DCP; if true, overrides _allowed_dcp_frame_rates */
        bool _allow_any_dcp_frame_rate;
@@ -1164,10 +1190,16 @@ private:
        std::string _notification_bcc;
        std::string _notification_email;
        boost::shared_ptr<const dcp::CertificateChain> _signer_chain;
+#ifdef DCPOMATIC_VARIANT_SWAROOP
+       boost::filesystem::path _signer_chain_path;
+#endif
        /** Chain used to decrypt KDMs; the leaf of this chain is the target
         *  certificate for making KDMs given to DCP-o-matic.
         */
        boost::shared_ptr<const dcp::CertificateChain> _decryption_chain;
+#ifdef DCPOMATIC_VARIANT_SWAROOP
+       boost::filesystem::path _decryption_chain_path;
+#endif
        /** true to check for updates on startup */
        bool _check_for_updates;
        bool _check_for_test_updates;
@@ -1212,7 +1244,12 @@ private:
        PlayerMode _player_mode;
        int _image_display;
        bool _respect_kdm_validity_periods;
-       boost::optional<boost::filesystem::path> _player_log_file;
+       /** Log file containing things the player does (e.g. started, stopped, loaded
+           playlist etc.)  Does not contain debugging information.
+       */
+       boost::optional<boost::filesystem::path> _player_activity_log_file;
+       /** Log file containing debug information for the player */
+       boost::optional<boost::filesystem::path> _player_debug_log_file;
        /** A directory containing DCPs whose contents are presented to the user
            in the dual-screen player mode.  DCPs on the list can be loaded
            for playback.
@@ -1229,8 +1266,9 @@ private:
        /** watermark duration in milliseconds */
        int _player_watermark_duration;
        std::vector<Monitor> _required_monitors;
+       /** a file which, if specified, must be present for the player to work */
+       boost::optional<boost::filesystem::path> _player_lock_file;
 #endif
-       bool _allow_spl_editing;
 
        static int const _current_version;