diff options
Diffstat (limited to 'libs/ardour/ardour/configuration.h')
-rw-r--r-- | libs/ardour/ardour/configuration.h | 253 |
1 files changed, 253 insertions, 0 deletions
diff --git a/libs/ardour/ardour/configuration.h b/libs/ardour/ardour/configuration.h new file mode 100644 index 0000000000..0c42027646 --- /dev/null +++ b/libs/ardour/ardour/configuration.h @@ -0,0 +1,253 @@ +/* + Copyright (C) 1999 Paul Davis + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + $Id$ +*/ + +#ifndef __ardour_configuration_h__ +#define __ardour_configuration_h__ + +#include <map> + +#include <sys/types.h> +#include <string> + +#include <ardour/types.h> +#include <ardour/stateful.h> + +using std::string; + +class XMLNode; + +namespace ARDOUR { + +class Configuration : public Stateful +{ + public: + Configuration(); + virtual ~Configuration(); + + struct MidiPortDescriptor { + string tag; + string device; + string type; + string mode; + + MidiPortDescriptor (const XMLNode&); + XMLNode& get_state(); + }; + + std::map<string,MidiPortDescriptor *> midi_ports; + + int load_state (); + int save_state (); + + XMLNode& option_node (const string &, const string &); + + int set_state (const XMLNode&); + XMLNode& get_state (void); + + XMLNode * get_keys() const; + void set_keys(XMLNode *); + + 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); + + string get_raid_path(); + void set_raid_path(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); + + string get_auditioner_output_left(); + void set_auditioner_output_left(string); + + string get_auditioner_output_right(); + void set_auditioner_output_right(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); + + string get_mmc_port_name(); + void set_mmc_port_name(string); + + string get_mtc_port_name(); + void set_mtc_port_name(string); + + string get_midi_port_name(); + void set_midi_port_name(string); + + bool get_use_hardware_monitoring(); + void set_use_hardware_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_no_sw_monitoring(); + void set_no_sw_monitoring(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); + + string get_user_ardour_path (); + string get_system_ardour_path (); + + gain_t get_quieten_at_speed (); + void set_quieten_at_speed (gain_t); + + private: + void set_defaults (); + string get_system_path(); + 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 + */ + + string raid_path; + bool raid_path_is_user; + string orig_raid_path; + + 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; + string auditioner_output_left; + bool auditioner_output_left_is_user; + 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; + string mtc_port_name; + bool mtc_port_name_is_user; + string mmc_port_name; + bool mmc_port_name_is_user; + 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 no_sw_monitoring; + bool no_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; + + XMLNode *key_node; + bool user_configuration; + + XMLNode& state (bool user_only); +}; + +extern Configuration *Config; +extern gain_t speed_quietning; /* see comment in configuration.cc */ + +}; /* namespace ARDOUR */ + +#endif /* __ardour_configuration_h__ */ |