diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2006-09-29 13:10:46 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2006-09-29 13:10:46 +0000 |
commit | 7adf76bbe61435dcd6859895f4cadd4feb797f18 (patch) | |
tree | d4584894c5d2667b17a00b74fe5f2feeffd64153 /libs/ardour/ardour | |
parent | 93c7aeba048f19df5abee5e4325ef8b0ef62c279 (diff) |
modify design of configuration state saving to reflect discussions on IRC
git-svn-id: svn://localhost/ardour2/trunk@934 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour')
-rw-r--r-- | libs/ardour/ardour/configuration.h | 5 | ||||
-rw-r--r-- | libs/ardour/ardour/configuration_variable.h | 16 | ||||
-rw-r--r-- | libs/ardour/ardour/configuration_vars.h | 4 | ||||
-rw-r--r-- | libs/ardour/ardour/session.h | 1 |
4 files changed, 15 insertions, 11 deletions
diff --git a/libs/ardour/ardour/configuration.h b/libs/ardour/ardour/configuration.h index 0b933cc5ac..bb49b2dce4 100644 --- a/libs/ardour/ardour/configuration.h +++ b/libs/ardour/ardour/configuration.h @@ -62,7 +62,7 @@ class Configuration : public Stateful int set_state (const XMLNode&); XMLNode& get_state (void); - XMLNode& get_partial_state (ConfigVariableBase::Owner); + XMLNode& get_variables (sigc::slot<bool,ConfigVariableBase::Owner>); void set_variables (const XMLNode&, ConfigVariableBase::Owner owner); void set_current_owner (ConfigVariableBase::Owner); @@ -100,7 +100,8 @@ class Configuration : public Stateful ConfigVariableBase::Owner current_owner; XMLNode* _control_protocol_state; - XMLNode& state (ConfigVariableBase::Owner); + XMLNode& state (sigc::slot<bool,ConfigVariableBase::Owner>); + bool save_config_options_predicate (ConfigVariableBase::Owner owner); }; extern Configuration *Config; diff --git a/libs/ardour/ardour/configuration_variable.h b/libs/ardour/ardour/configuration_variable.h index 4eba3101a2..6f0a8a3571 100644 --- a/libs/ardour/ardour/configuration_variable.h +++ b/libs/ardour/ardour/configuration_variable.h @@ -11,11 +11,11 @@ namespace ARDOUR { class ConfigVariableBase { public: enum Owner { - Default, - System, - Config, - Session, - Interface + Default = 0x1, + System = 0x2, + Config = 0x4, + Session = 0x8, + Interface = 0x10 }; ConfigVariableBase (std::string str) : _name (str), _owner (Default) {} @@ -44,7 +44,7 @@ class ConfigVariable : public ConfigVariableBase return false; } value = val; - _owner = owner; + _owner = (ConfigVariableBase::Owner)(_owner |owner); return true; } @@ -85,7 +85,7 @@ class ConfigVariable : public ConfigVariableBase std::stringstream ss; ss << prop->value(); ss >> value; - _owner = owner; + _owner = (ConfigVariableBase::Owner)(_owner |owner); return true; } } @@ -113,7 +113,7 @@ class ConfigVariable : public ConfigVariableBase std::stringstream ss; ss << opt_prop->value(); ss >> value; - _owner = owner; + _owner = (ConfigVariableBase::Owner)(_owner |owner); return true; } } diff --git a/libs/ardour/ardour/configuration_vars.h b/libs/ardour/ardour/configuration_vars.h index 8cd66decb1..9cdba051fd 100644 --- a/libs/ardour/ardour/configuration_vars.h +++ b/libs/ardour/ardour/configuration_vars.h @@ -55,9 +55,11 @@ CONFIG_VARIABLE (bool, send_mmc, "send-mmc", false) CONFIG_VARIABLE (bool, mmc_control, "mmc-control", false) CONFIG_VARIABLE (bool, midi_feedback, "midi-feedback", false) CONFIG_VARIABLE (bool, midi_control, "midi-control", false) +CONFIG_VARIABLE (bool, automatic_crossfades, "automatic-crossfades", false) CONFIG_VARIABLE (bool, crossfades_active, "crossfades-active", false) +CONFIG_VARIABLE (bool, crossfades_visible, "crossfades-visible", false) CONFIG_VARIABLE (bool, seamless_loop, "seamless-loop", false) -CONFIG_VARIABLE (bool, do_not_record_plugins, "do_not_record_plugins", false) +CONFIG_VARIABLE (bool, do_not_record_plugins, "do-not-record-plugins", false) CONFIG_VARIABLE (AutoConnectOption, output_auto_connect, "output-auto-connect", AutoConnectOption (0)) CONFIG_VARIABLE (AutoConnectOption, input_auto_connect, "input-auto-connect", AutoConnectOption (0)) CONFIG_VARIABLE (EditMode, edit_mode, "edit-mode", Slide) diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h index 2ac2d3c48f..a55bc84e7e 100644 --- a/libs/ardour/ardour/session.h +++ b/libs/ardour/ardour/session.h @@ -1087,6 +1087,7 @@ class Session : public sigc::trackable, public PBD::StatefulDestructible int load_options (const XMLNode&); XMLNode& get_options () const; int load_state (string snapshot_name); + bool save_config_options_predicate (ConfigVariableBase::Owner owner) const; nframes_t _last_roll_location; nframes_t _last_record_location; |