Incomplete encryption of private keys.
[dcpomatic.git] / src / lib / config.h
index 23286ddb0164e62fcb8e122c6f9f36d483c72f08..0e5f9dfd17f78ffabf4910fd1a109b257888f724 100644 (file)
@@ -78,6 +78,7 @@ public:
                SOUND_OUTPUT,
                INTERFACE_COMPLEXITY,
                PLAYER_CONTENT_DIRECTORY,
+               PLAYER_PLAYLIST_DIRECTORY,
                HISTORY,
 #ifdef DCPOMATIC_VARIANT_SWAROOP
                PLAYER_BACKGROUND_IMAGE,
@@ -523,11 +524,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) */
 
@@ -964,7 +965,7 @@ public:
        }
 
        void set_player_playlist_directory (boost::filesystem::path p) {
-               maybe_set (_player_playlist_directory, p);
+               maybe_set (_player_playlist_directory, p, PLAYER_PLAYLIST_DIRECTORY);
        }
 
        void unset_player_playlist_directory () {
@@ -972,7 +973,7 @@ public:
                        return;
                }
                _player_playlist_directory = boost::none;
-               changed ();
+               changed (PLAYER_PLAYLIST_DIRECTORY);
        }
 
        void set_player_kdm_directory (boost::filesystem::path p) {
@@ -1019,11 +1020,19 @@ 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;
@@ -1228,8 +1237,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;