diff options
Diffstat (limited to 'libs/ardour/ardour/configuration.h')
-rw-r--r-- | libs/ardour/ardour/configuration.h | 209 |
1 files changed, 23 insertions, 186 deletions
diff --git a/libs/ardour/ardour/configuration.h b/libs/ardour/ardour/configuration.h index e61fe29f31..d067bc6e61 100644 --- a/libs/ardour/ardour/configuration.h +++ b/libs/ardour/ardour/configuration.h @@ -22,12 +22,15 @@ #define __ardour_configuration_h__ #include <map> +#include <vector> #include <sys/types.h> #include <string> #include <ardour/types.h> #include <ardour/stateful.h> +#include <ardour/utils.h> +#include <ardour/configuration_variable.h> class XMLNode; @@ -54,202 +57,36 @@ class Configuration : public Stateful int load_state (); int save_state (); - XMLNode& option_node (const std::string &, const std::string &); - int set_state (const XMLNode&); XMLNode& get_state (void); - XMLNode * get_keys() const; - void set_keys(XMLNode *); - - void set_latched_record_enable (bool yn); - bool get_latched_record_enable(); - - void set_use_vst (bool yn); - bool get_use_vst(); - - bool get_trace_midi_input (); - void set_trace_midi_input (bool); - - bool get_trace_midi_output (); - void set_trace_midi_output (bool); - - std::string get_raid_path(); - void set_raid_path(std::string); - - uint32_t get_minimum_disk_io(); - void set_minimum_disk_io(uint32_t); - - float get_track_buffer(); - void set_track_buffer(float); - - bool does_hiding_groups_deactivates_groups(); - void set_hiding_groups_deactivates_groups(bool); + /* define accessor methods */ - std::string get_auditioner_output_left(); - void set_auditioner_output_left(std::string); +#undef CONFIG_VARIABLE +#undef CONFIG_VARIABLE_SPECIAL +#define CONFIG_VARIABLE(Type,var,name,value) \ + Type get_##var () const { return var.get(); } \ + void set_##var (Type val) { var.set (val); var.set_is_user (user_configuration); } +#define CONFIG_VARIABLE_SPECIAL(Type,var,name,value,mutator) \ + Type get_##var () const { return var.get(); } \ + void set_##var (Type val) { var.set (val); var.set_is_user (user_configuration); } +#include "ardour/configuration_vars.h" +#undef CONFIG_VARIABLE +#undef CONFIG_VARIABLE_SPECIAL - std::string get_auditioner_output_right(); - void set_auditioner_output_right(std::string); - - bool get_mute_affects_pre_fader(); - void set_mute_affects_pre_fader (bool); - - bool get_mute_affects_post_fader(); - void set_mute_affects_post_fader (bool); - - bool get_mute_affects_control_outs (); - void set_mute_affects_control_outs (bool); - - bool get_mute_affects_main_outs (); - void set_mute_affects_main_outs (bool); - - bool get_solo_latch (); - void set_solo_latch (bool); - - uint32_t get_disk_choice_space_threshold(); - void set_disk_choice_space_threshold (uint32_t); - - std::string get_mmc_port_name(); - void set_mmc_port_name(std::string); - - std::string get_mtc_port_name(); - void set_mtc_port_name(std::string); - - std::string get_midi_port_name(); - void set_midi_port_name(std::string); - - uint32_t get_midi_feedback_interval_ms(); - void set_midi_feedback_interval_ms (uint32_t); - - bool get_use_hardware_monitoring(); - void set_use_hardware_monitoring(bool); - - bool get_use_sw_monitoring(); - void set_use_sw_monitoring(bool); - - bool get_jack_time_master(); - void set_jack_time_master(bool); - - bool get_native_format_is_bwf(); - void set_native_format_is_bwf(bool); - - bool get_plugins_stop_with_transport(); - void set_plugins_stop_with_transport(bool); - - bool get_stop_recording_on_xrun(); - void set_stop_recording_on_xrun(bool); - - bool get_verify_remove_last_capture(); - void set_verify_remove_last_capture(bool); - - bool get_stop_at_session_end(); - void set_stop_at_session_end(bool); - - bool get_seamless_looping(); - void set_seamless_looping(bool); - - bool get_auto_xfade(); - void set_auto_xfade (bool); - - bool get_no_new_session_dialog(); - void set_no_new_session_dialog(bool); - - uint32_t get_timecode_skip_limit (); - void set_timecode_skip_limit (uint32_t); - - bool get_timecode_source_is_synced (); - void set_timecode_source_is_synced (bool); - - gain_t get_quieten_at_speed (); - void set_quieten_at_speed (gain_t); - - uint32_t get_destructive_xfade_msecs (); - void set_destructive_xfade_msecs (uint32_t, jack_nframes_t sample_rate = 0); private: - void set_defaults (); - std::string get_system_path(); - std::string get_user_path(); - /* this is subject to wordexp, so we need - to keep the original (user-entered) form - around. e.g. ~/blah-> /home/foo/blah - */ - - std::string raid_path; - bool raid_path_is_user; - std::string orig_raid_path; + /* declare variables */ - uint32_t minimum_disk_io_bytes; - bool minimum_disk_io_bytes_is_user; - float track_buffer_seconds; - bool track_buffer_seconds_is_user; - bool hiding_groups_deactivates_groups; - bool hiding_groups_deactivates_groups_is_user; - std::string auditioner_output_left; - bool auditioner_output_left_is_user; - std::string auditioner_output_right; - bool auditioner_output_right_is_user; - bool mute_affects_pre_fader; - bool mute_affects_pre_fader_is_user; - bool mute_affects_post_fader; - bool mute_affects_post_fader_is_user; - bool mute_affects_control_outs; - bool mute_affects_control_outs_is_user; - bool mute_affects_main_outs; - bool mute_affects_main_outs_is_user; - bool solo_latch; - bool solo_latch_is_user; - uint32_t disk_choice_space_threshold; - bool disk_choice_space_threshold_is_user; - std::string mtc_port_name; - bool mtc_port_name_is_user; - std::string mmc_port_name; - bool mmc_port_name_is_user; - std::string midi_port_name; - bool midi_port_name_is_user; - bool use_hardware_monitoring; - bool use_hardware_monitoring_is_user; - bool be_jack_time_master; - bool be_jack_time_master_is_user; - bool native_format_is_bwf; - bool native_format_is_bwf_is_user; - bool trace_midi_input; - bool trace_midi_input_is_user; - bool trace_midi_output; - bool trace_midi_output_is_user; - bool plugins_stop_with_transport; - bool plugins_stop_with_transport_is_user; - bool use_sw_monitoring; - bool use_sw_monitoring_is_user; - bool stop_recording_on_xrun; - bool stop_recording_on_xrun_is_user; - bool verify_remove_last_capture; - bool verify_remove_last_capture_is_user; - bool stop_at_session_end; - bool stop_at_session_end_is_user; - bool seamless_looping; - bool seamless_looping_is_user; - bool auto_xfade; - bool auto_xfade_is_user; - bool no_new_session_dialog; - bool no_new_session_dialog_is_user; - uint32_t timecode_skip_limit; - bool timecode_skip_limit_is_user; - bool timecode_source_is_synced; - bool timecode_source_is_synced_is_user; - bool use_vst; /* always per-user */ - bool quieten_at_speed; - bool quieten_at_speed_is_user; - uint32_t midi_feedback_interval_ms; - bool midi_feedback_interval_ms_is_user; - bool latched_record_enable; - bool latched_record_enable_is_user; - uint32_t destructive_xfade_msecs; - bool destructive_xfade_msecs_is_user; +#undef CONFIG_VARIABLE +#undef CONFIG_VARIABLE_SPECIAL +#define CONFIG_VARIABLE(Type,var,name,value) ConfigVariable<Type> var; +#define CONFIG_VARIABLE_SPECIAL(Type,var,name,value,mutator) ConfigVariableWithMutation<Type> var; +#include "ardour/configuration_vars.h" +#undef CONFIG_VARIABLE +#undef CONFIG_VARIABLE_SPECIAL - XMLNode *key_node; bool user_configuration; XMLNode& state (bool user_only); |