class Ratio;
class Cinema;
class Film;
+class DKDMGroup;
/** @class Config
* @brief A singleton class holding configuration.
USE_ANY_SERVERS,
SERVERS,
CINEMAS,
- PREVIEW_SOUND,
- PREVIEW_SOUND_OUTPUT,
+ SOUND,
+ SOUND_OUTPUT,
OTHER
};
return _history;
}
- std::vector<dcp::EncryptedKDM> dkdms () const {
+ boost::shared_ptr<DKDMGroup> dkdms () const {
return _dkdms;
}
enum Nag {
NAG_DKDM_CONFIG,
NAG_ENCRYPTED_METADATA,
+ NAG_REMAKE_DECRYPTION_CHAIN,
NAG_COUNT
};
return _nagged[nag];
}
- bool preview_sound () const {
- return _preview_sound;
+ bool sound () const {
+ return _sound;
}
std::string cover_sheet () const {
return _cover_sheet;
}
- boost::optional<std::string> preview_sound_output () const {
- return _preview_sound_output;
+ boost::optional<std::string> sound_output () const {
+ return _sound_output;
+ }
+
+ boost::optional<boost::filesystem::path> last_player_load_directory () const {
+ return _last_player_load_directory;
+ }
+
+ enum KDMWriteType {
+ KDM_WRITE_FLAT,
+ KDM_WRITE_FOLDER,
+ KDM_WRITE_ZIP
+ };
+
+ boost::optional<KDMWriteType> last_kdm_write_type () const {
+ return _last_kdm_write_type;
+ }
+
+ int frames_in_memory_multiplier () const {
+ return _frames_in_memory_multiplier;
}
void set_master_encoding_threads (int n) {
}
#endif
- void set_dkdms (std::vector<dcp::EncryptedKDM> dkdms) {
+ void set_dkdms (boost::shared_ptr<DKDMGroup> dkdms) {
_dkdms = dkdms;
changed ();
}
maybe_set (_confirm_kdm_email, s);
}
- void set_preview_sound (bool s) {
- maybe_set (_preview_sound, s, PREVIEW_SOUND);
+ void set_sound (bool s) {
+ maybe_set (_sound, s, SOUND);
}
- void set_preview_sound_output (std::string o)
- {
- maybe_set (_preview_sound_output, o, PREVIEW_SOUND_OUTPUT);
+ void set_sound_output (std::string o) {
+ maybe_set (_sound_output, o, SOUND_OUTPUT);
}
- void unset_preview_sound_output ()
- {
- if (!_preview_sound_output) {
+ void set_last_player_load_directory (boost::filesystem::path d) {
+ maybe_set (_last_player_load_directory, d);
+ }
+
+ void set_last_kdm_write_type (KDMWriteType t) {
+ maybe_set (_last_kdm_write_type, t);
+ }
+
+ void unset_sound_output () {
+ if (!_sound_output) {
return;
}
- _preview_sound_output = boost::none;
+ _sound_output = boost::none;
changed ();
}
maybe_set (_dcp_asset_filename_format, n);
}
+ void set_frames_in_memory_multiplier (int m) {
+ maybe_set (_frames_in_memory_multiplier, m);
+ }
+
void clear_history () {
_history.clear ();
changed ();
a listener can do about it: this is just for information.
*/
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;
void write () const;
void write_config () const;
void write_cinemas () const;
+ void link (boost::filesystem::path new_file) const;
+ void copy_and_link (boost::filesystem::path new_file) const;
void save_template (boost::shared_ptr<const Film> film, std::string name) const;
bool existing_template (std::string name) const;
static void drop ();
static void restore_defaults ();
static bool have_existing (std::string);
- static boost::filesystem::path config_path ();
+ static boost::filesystem::path config_file ();
+
+ static boost::optional<boost::filesystem::path> test_path;
private:
Config ();
bool _win32_console;
#endif
std::vector<boost::filesystem::path> _history;
- std::vector<dcp::EncryptedKDM> _dkdms;
+ boost::shared_ptr<DKDMGroup> _dkdms;
boost::filesystem::path _cinemas_file;
bool _show_hints_before_make_dcp;
bool _confirm_kdm_email;
dcp::NameFormat _dcp_asset_filename_format;
bool _jump_to_selected;
bool _nagged[NAG_COUNT];
- bool _preview_sound;
- /** name of a specific sound output stream to use for preview, or empty to use the default */
- boost::optional<std::string> _preview_sound_output;
+ bool _sound;
+ /** name of a specific sound output stream to use, or empty to use the default */
+ boost::optional<std::string> _sound_output;
std::string _cover_sheet;
+ boost::optional<boost::filesystem::path> _last_player_load_directory;
+ boost::optional<KDMWriteType> _last_kdm_write_type;
+ int _frames_in_memory_multiplier;
/** Singleton instance, or 0 */
static Config* _instance;