X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fconfiguration.cc;h=3b4ad4b45f54bdea5506a4bec9718e587d03276b;hb=069d54a008c736dc865a22dbb4cc1117f9db481e;hp=4003946576a821ff4a47f2fb31e7d70c512019ac;hpb=4c509656223d3ed1f0fab504cb483090d38972f9;p=ardour.git diff --git a/libs/ardour/configuration.cc b/libs/ardour/configuration.cc index 4003946576..3b4ad4b45f 100644 --- a/libs/ardour/configuration.cc +++ b/libs/ardour/configuration.cc @@ -207,6 +207,11 @@ Configuration::state (bool user_only) node->add_child_nocopy(option_node("disk-choice-space-threshold", string(buf))); } + if (!user_only || midi_feedback_interval_ms_is_user) { + snprintf(buf, sizeof(buf), "%" PRIu32, midi_feedback_interval_ms); + node->add_child_nocopy(option_node("midi-feedback-interval-ms", string(buf))); + } + if (!user_only || mute_affects_pre_fader_is_user) { node->add_child_nocopy(option_node("mute-affects-pre-fader", mute_affects_pre_fader?"yes":"no")); } @@ -252,8 +257,8 @@ Configuration::state (bool user_only) if (!user_only || plugins_stop_with_transport_is_user) { node->add_child_nocopy(option_node("plugins-stop-with-transport", plugins_stop_with_transport?"yes":"no")); } - if (!user_only || no_sw_monitoring_is_user) { - node->add_child_nocopy(option_node("no-sw-monitoring", no_sw_monitoring?"yes":"no")); + if (!user_only || use_sw_monitoring_is_user) { + node->add_child_nocopy(option_node("use-sw-monitoring", use_sw_monitoring?"yes":"no")); } if (!user_only || stop_recording_on_xrun_is_user) { node->add_child_nocopy(option_node("stop-recording-on-xrun", stop_recording_on_xrun?"yes":"no")); @@ -286,6 +291,14 @@ Configuration::state (bool user_only) snprintf (buf, sizeof (buf), "%f", speed_quietning); node->add_child_nocopy(option_node("quieten-at-speed", buf)); } + if (!user_only || latched_record_enable_is_user) { + node->add_child_nocopy(option_node("latched-record-enable", latched_record_enable?"yes":"no")); + } + if (!user_only || tape_dir_is_user) { + if (!tape_dir.empty()) { + node->add_child_nocopy(option_node("tape-dir", tape_dir)); + } + } /* use-vst is always per-user */ node->add_child_nocopy (option_node ("use-vst", use_vst?"yes":"no")); @@ -395,8 +408,10 @@ Configuration::set_state (const XMLNode& root) set_trace_midi_output (option_value == "yes"); } else if (option_name == "plugins-stop-with-transport") { set_plugins_stop_with_transport (option_value == "yes"); - } else if (option_name == "no-sw-monitoring") { - set_no_sw_monitoring (option_value == "yes"); + } else if (option_name == "use-sw-monitoring") { + set_use_sw_monitoring (option_value == "yes"); + } else if (option_name == "no-sw-monitoring") { /* DEPRECATED */ + set_use_sw_monitoring (option_value != "yes"); } else if (option_name == "stop-recording-on-xrun") { set_stop_recording_on_xrun (option_value == "yes"); } else if (option_name == "verify-remove-last-capture") { @@ -422,6 +437,12 @@ Configuration::set_state (const XMLNode& root) if (sscanf (option_value.c_str(), "%f", &v) == 1) { set_quieten_at_speed (v); } + } else if (option_name == "midi-feedback-interval-ms") { + set_midi_feedback_interval_ms (atoi (option_value.c_str())); + } else if (option_name == "latched-record-enable") { + set_latched_record_enable (option_value == "yes"); + } else if (option_name == "tape-dir") { + set_tape_dir (option_value); } } @@ -468,17 +489,20 @@ Configuration::set_defaults () trace_midi_input = false; trace_midi_output = false; plugins_stop_with_transport = false; - no_sw_monitoring = false; + use_sw_monitoring = true; stop_recording_on_xrun = false; verify_remove_last_capture = true; stop_at_session_end = true; - seamless_looping = false; + 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; @@ -505,7 +529,7 @@ Configuration::set_defaults () trace_midi_input_is_user = false; trace_midi_output_is_user = false; plugins_stop_with_transport_is_user = false; - no_sw_monitoring_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; @@ -514,6 +538,9 @@ Configuration::set_defaults () 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) @@ -832,6 +859,21 @@ Configuration::set_midi_port_name (string name) } } +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() { @@ -923,17 +965,17 @@ Configuration::set_plugins_stop_with_transport (bool yn) } bool -Configuration::get_no_sw_monitoring () +Configuration::get_use_sw_monitoring () { - return no_sw_monitoring; + return use_sw_monitoring; } void -Configuration::set_no_sw_monitoring (bool yn) +Configuration::set_use_sw_monitoring (bool yn) { - no_sw_monitoring = yn; + use_sw_monitoring = yn; if (user_configuration) { - no_sw_monitoring_is_user = true; + use_sw_monitoring_is_user = true; } } @@ -1103,3 +1145,30 @@ Configuration::set_quieten_at_speed (float gain_coefficient) quieten_at_speed_is_user = true; } } + +void +Configuration::set_latched_record_enable (bool yn) +{ + latched_record_enable = yn; + if (user_configuration) { + latched_record_enable_is_user = true; + } +} + +bool +Configuration::get_latched_record_enable () +{ + return latched_record_enable; +} + +string +Configuration::get_tape_dir () +{ + return tape_dir; +} + +void +Configuration::set_tape_dir (string path) +{ + tape_dir = path; +}