- }
-
- DiskStream::set_disk_io_chunk_frames (minimum_disk_io_bytes / sizeof (Sample));
-
- return 0;
-}
-
-void
-Configuration::set_defaults ()
-{
- raid_path = "";
- orig_raid_path = raid_path;
-
- mtc_port_name = N_("default");
- mmc_port_name = N_("default");
- midi_port_name = N_("default");
-#ifdef __APPLE__
- auditioner_output_left = N_("coreaudio:Built-in Audio:in1");
- auditioner_output_right = N_("coreaudio:Built-in Audio:in2");
-#else
- auditioner_output_left = N_("alsa_pcm:playback_1");
- auditioner_output_right = N_("alsa_pcm:playback_2");
-#endif
- minimum_disk_io_bytes = 1024 * 256;
- track_buffer_seconds = 5.0;
- hiding_groups_deactivates_groups = true;
- mute_affects_pre_fader = 1;
- mute_affects_post_fader = 1;
- mute_affects_control_outs = 1;
- mute_affects_main_outs = 1;
- solo_latch = 1;
- use_hardware_monitoring = true;
- be_jack_time_master = true;
- native_format_is_bwf = true;
- trace_midi_input = false;
- trace_midi_output = false;
- plugins_stop_with_transport = false;
- use_sw_monitoring = true;
- stop_recording_on_xrun = false;
- verify_remove_last_capture = true;
- stop_at_session_end = true;
- seamless_looping = true;
- auto_xfade = true;
- no_new_session_dialog = false;
- timecode_source_is_synced = true;
- use_vst = true; /* if we build with VST_SUPPORT, otherwise no effect */
- quieten_at_speed = true;
- tape_dir = "";
-
- midi_feedback_interval_ms = 100;
-
- // this is about 5 minutes at 48kHz, 4 bytes/sample
- disk_choice_space_threshold = 57600000;
-
- /* at this point, no variables from from the user */
-
- raid_path_is_user = false;
- minimum_disk_io_bytes_is_user = false;
- track_buffer_seconds_is_user = false;
- hiding_groups_deactivates_groups_is_user = false;
- auditioner_output_left_is_user = false;
- auditioner_output_right_is_user = false;
- mute_affects_pre_fader_is_user = false;
- mute_affects_post_fader_is_user = false;
- mute_affects_control_outs_is_user = false;
- mute_affects_main_outs_is_user = false;
- solo_latch_is_user = false;
- disk_choice_space_threshold_is_user = false;
- mtc_port_name_is_user = false;
- mmc_port_name_is_user = false;
- midi_port_name_is_user = false;
- use_hardware_monitoring_is_user = false;
- be_jack_time_master_is_user = false;
- native_format_is_bwf_is_user = false;
- trace_midi_input_is_user = false;
- trace_midi_output_is_user = false;
- plugins_stop_with_transport_is_user = false;
- use_sw_monitoring_is_user = false;
- stop_recording_on_xrun_is_user = false;
- verify_remove_last_capture_is_user = false;
- stop_at_session_end_is_user = false;
- seamless_looping_is_user = false;
- auto_xfade_is_user = false;
- no_new_session_dialog_is_user = false;
- timecode_source_is_synced_is_user = false;
- quieten_at_speed_is_user = false;
- midi_feedback_interval_ms_is_user = false;
- latched_record_enable_is_user = false;
- tape_dir_is_user = false;
-}
-
-Configuration::MidiPortDescriptor::MidiPortDescriptor (const XMLNode& node)
-{
- const XMLProperty *prop;
- bool have_tag = false;
- bool have_device = false;
- bool have_type = false;
- bool have_mode = false;
-
- if ((prop = node.property ("tag")) != 0) {
- tag = prop->value();
- have_tag = true;
- }
-
- if ((prop = node.property ("device")) != 0) {
- device = prop->value();
- have_device = true;
- }
-
- if ((prop = node.property ("type")) != 0) {
- type = prop->value();
- have_type = true;
- }
-
- if ((prop = node.property ("mode")) != 0) {
- mode = prop->value();
- have_mode = true;
- }
-
- if (!have_tag || !have_device || !have_type || !have_mode) {
- throw failed_constructor();
- }
-}
-
-XMLNode&
-Configuration::MidiPortDescriptor::get_state()
-{
- XMLNode* root = new XMLNode("MIDI-port");
-
- root->add_property("tag", tag);
- root->add_property("device", device);
- root->add_property("type", type);
- root->add_property("mode", mode);
-
- return *root;
-}
-
-XMLNode&
-Configuration::option_node(const string & name, const string & value)
-{
- XMLNode* root = new XMLNode("Option");
-
- root->add_property("name", name);
- root->add_property("value", value);
-
- return *root;
-}
-
-string
-Configuration::get_raid_path()
-{
- return raid_path;
-}
-
-void
-Configuration::set_raid_path(string path)
-{
-#ifdef HAVE_WORDEXP
- /* Handle tilde and environment variable expansion in session path */
- wordexp_t expansion;
- switch (wordexp (path.c_str(), &expansion, WRDE_NOCMD|WRDE_UNDEF)) {
- case 0:
- break;
- default:
- error << _("illegal or badly-formed string used for RAID path") << endmsg;
- return;
- }
-
- if (expansion.we_wordc > 1) {
- error << _("RAID search path is ambiguous") << endmsg;
- return;
- }
-
- raid_path = expansion.we_wordv[0];
- orig_raid_path = path;
- wordfree (&expansion);
-#else
- raid_path = orig_raid_path = path;
-#endif
-
- if (user_configuration) {
- raid_path_is_user = true;
- }
-}
-
-uint32_t
-Configuration::get_minimum_disk_io()
-{
- return minimum_disk_io_bytes;
-}
-
-void
-Configuration::set_minimum_disk_io(uint32_t min)
-{
- minimum_disk_io_bytes = min;
- if (user_configuration) {
- minimum_disk_io_bytes_is_user = true;
- }
-}
-
-float
-Configuration::get_track_buffer()
-{
- return track_buffer_seconds;
-}
-
-void
-Configuration::set_track_buffer(float buffer)
-{
- track_buffer_seconds = buffer;
- if (user_configuration) {
- track_buffer_seconds_is_user = true;
- }
-}
-
-bool
-Configuration::does_hiding_groups_deactivates_groups()
-{
- return hiding_groups_deactivates_groups;
-}
-
-void
-Configuration::set_hiding_groups_deactivates_groups(bool hiding)
-{
- hiding_groups_deactivates_groups = hiding;
- if (user_configuration) {
- hiding_groups_deactivates_groups_is_user = true;
- }
-}
-
-string
-Configuration::get_auditioner_output_left ()
-{
- return auditioner_output_left;
-}
-
-void
-Configuration::set_auditioner_output_left (string str)
-{
- auditioner_output_left = str;
- if (user_configuration) {
- auditioner_output_left_is_user = true;
- }
-}
-
-string
-Configuration::get_auditioner_output_right ()
-{
- return auditioner_output_right;
-}
-
-void
-Configuration::set_auditioner_output_right (string str)
-{
- auditioner_output_right = str;
- if (user_configuration) {
- auditioner_output_right_is_user = true;
- }
-}
-
-bool
-Configuration::get_mute_affects_pre_fader()
-{
- return mute_affects_pre_fader;
-}
-
-void
-Configuration::set_mute_affects_pre_fader (bool affects)
-{
- mute_affects_pre_fader = affects;
- if (user_configuration) {
- mute_affects_pre_fader_is_user = true;
- }
-}
-
-bool
-Configuration::get_mute_affects_post_fader()
-{
- return mute_affects_post_fader;
-}
-
-void
-Configuration::set_mute_affects_post_fader (bool affects)
-{
- mute_affects_post_fader = affects;
- if (user_configuration) {
- mute_affects_post_fader_is_user = true;
- }
-}
-
-bool
-Configuration::get_mute_affects_control_outs()
-{
- return mute_affects_control_outs;
-}
-
-void
-Configuration::set_mute_affects_control_outs (bool affects)
-{
- mute_affects_control_outs = affects;
- if (user_configuration) {
- mute_affects_control_outs_is_user = true;
- }
-}
-
-bool
-Configuration::get_mute_affects_main_outs()
-{
- return mute_affects_main_outs;
-}
-
-void
-Configuration::set_mute_affects_main_outs (bool affects)
-{
- mute_affects_main_outs = affects;
- if (user_configuration) {
- mute_affects_main_outs_is_user = true;
- }
-}
-
-bool
-Configuration::get_solo_latch()
-{
- return solo_latch;
-}
-
-void
-Configuration::set_solo_latch (bool latch)
-{
- solo_latch = latch;
- if (user_configuration) {
- solo_latch_is_user = true;
- }
-}
-
-XMLNode *
-Configuration::get_keys () const
-{
- return key_node;
-}
-
-void
-Configuration::set_keys (XMLNode* keys)
-{
- key_node = keys;
-}
-
-uint32_t
-Configuration::get_disk_choice_space_threshold ()
-{
- return disk_choice_space_threshold;
-}
-
-void
-Configuration::set_disk_choice_space_threshold (uint32_t val)
-{
- disk_choice_space_threshold = val;
- if (user_configuration) {
- disk_choice_space_threshold_is_user = true;
- }
-}
-
-string
-Configuration::get_mmc_port_name ()
-{
- return mmc_port_name;
-}
-
-void
-Configuration::set_mmc_port_name (string name)
-{
- mmc_port_name = name;
- if (user_configuration) {
- mmc_port_name_is_user = true;
- }
-}
-
-string
-Configuration::get_mtc_port_name ()
-{
- return mtc_port_name;
-}
-
-void
-Configuration::set_mtc_port_name (string name)
-{
- mtc_port_name = name;
- if (user_configuration) {
- mtc_port_name_is_user = true;
- }
-}
-
-string
-Configuration::get_midi_port_name ()
-{
- return midi_port_name;
-}
-
-void
-Configuration::set_midi_port_name (string name)
-{
- midi_port_name = name;
- if (user_configuration) {
- midi_port_name_is_user = true;
- }
-}
-
-uint32_t
-Configuration::get_midi_feedback_interval_ms ()
-{
- return midi_feedback_interval_ms;
-}
-
-void
-Configuration::set_midi_feedback_interval_ms (uint32_t val)
-{
- midi_feedback_interval_ms = val;
- if (user_configuration) {
- midi_feedback_interval_ms_is_user = true;
- }
-}
-
-bool
-Configuration::get_use_hardware_monitoring()
-{
- return use_hardware_monitoring;
-}
-
-void
-Configuration::set_use_hardware_monitoring(bool yn)
-{
- use_hardware_monitoring = yn;
- if (user_configuration) {
- use_hardware_monitoring_is_user = true;
- }
-}
-
-bool
-Configuration::get_jack_time_master()
-{
- return be_jack_time_master;
-}
-
-void
-Configuration::set_jack_time_master(bool yn)
-{
- be_jack_time_master = yn;
- if (user_configuration) {
- be_jack_time_master_is_user = true;
- }
-}
-
-bool
-Configuration::get_native_format_is_bwf()
-{
- return native_format_is_bwf;
-}
-
-void
-Configuration::set_native_format_is_bwf(bool yn)
-{
- native_format_is_bwf = yn;
- if (user_configuration) {
- native_format_is_bwf_is_user = true;
- }
-}
-
-bool
-Configuration::get_trace_midi_input ()
-{
- return trace_midi_input;
-}
-
-void
-Configuration::set_trace_midi_input (bool yn)
-{
- trace_midi_input = yn;
- if (user_configuration) {
- trace_midi_input_is_user = true;
- }
-}
-
-bool
-Configuration::get_trace_midi_output ()
-{
- return trace_midi_output;
-}
-
-void
-Configuration::set_trace_midi_output (bool yn)
-{
- trace_midi_output = yn;
- if (user_configuration) {
- trace_midi_output_is_user = true;
- }
-}
-
-bool
-Configuration::get_plugins_stop_with_transport ()
-{
- return plugins_stop_with_transport;
-}
-
-void
-Configuration::set_plugins_stop_with_transport (bool yn)
-{
- plugins_stop_with_transport = yn;
- if (user_configuration) {
- plugins_stop_with_transport_is_user = true;
- }
-}
-
-bool
-Configuration::get_use_sw_monitoring ()
-{
- return use_sw_monitoring;
-}
-
-void
-Configuration::set_use_sw_monitoring (bool yn)
-{
- use_sw_monitoring = yn;
- if (user_configuration) {
- use_sw_monitoring_is_user = true;
- }
-}
-
-bool
-Configuration::get_stop_recording_on_xrun ()
-{
- return stop_recording_on_xrun;
-}
-
-void
-Configuration::set_stop_recording_on_xrun (bool yn)
-{
- stop_recording_on_xrun = yn;
- if (user_configuration) {
- stop_recording_on_xrun_is_user = true;
- }
-}
-
-bool
-Configuration::get_verify_remove_last_capture ()
-{
- return verify_remove_last_capture;
-}
-
-void
-Configuration::set_verify_remove_last_capture (bool yn)
-{
- verify_remove_last_capture = yn;
- if (user_configuration) {
- verify_remove_last_capture_is_user = true;
- }
-}
-
-bool
-Configuration::get_stop_at_session_end ()
-{
- return stop_at_session_end;
-}
-
-void
-Configuration::set_stop_at_session_end (bool yn)
-{
- stop_at_session_end = yn;
- if (user_configuration) {
- stop_at_session_end_is_user = true;
- }
-}