X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Frc_option_editor.cc;h=1bc4f0a252691dd712ddb212eaa141009db25f48;hb=5c144432adbb791ce9d2a2cbd7471da0499b6ea7;hp=ec0728b7fccb9b6c9018bf2f1f10379db5870202;hpb=6ddcd8f0b9a8c27cdc4b96966c6746a1a8c2dc15;p=ardour.git diff --git a/gtk2_ardour/rc_option_editor.cc b/gtk2_ardour/rc_option_editor.cc index ec0728b7fc..1bc4f0a252 100644 --- a/gtk2_ardour/rc_option_editor.cc +++ b/gtk2_ardour/rc_option_editor.cc @@ -12,6 +12,7 @@ #include "control_protocol/control_protocol.h" #include "gui_thread.h" +#include "midi_tracer.h" #include "rc_option_editor.h" #include "utils.h" #include "midi_port_dialog.h" @@ -65,6 +66,10 @@ public: private: + typedef std::map PortTraceMap; + PortTraceMap port_input_trace_map; + PortTraceMap port_output_trace_map; + void model_changed (TreeModel::Path const &, TreeModel::iterator const & i) { TreeModel::Row r = *i; @@ -81,14 +86,32 @@ private: } if (r[_model.trace_input] != port->input()->tracing()) { - port->input()->trace (r[_model.trace_input], &cerr, string (port->name()) + _(" input: ")); + PortTraceMap::iterator x = port_input_trace_map.find (port); + MidiTracer* mt; + + if (x == port_input_trace_map.end()) { + mt = new MidiTracer (port->name() + string (" [input]"), *port->input()); + port_input_trace_map.insert (pair (port, mt)); + } else { + mt = x->second; + } + mt->present (); } } if (port->output()) { if (r[_model.trace_output] != port->output()->tracing()) { - port->output()->trace (r[_model.trace_output], &cerr, string (port->name()) + _(" output: ")); + PortTraceMap::iterator x = port_output_trace_map.find (port); + MidiTracer* mt; + + if (x == port_output_trace_map.end()) { + mt = new MidiTracer (port->name() + string (" [output]"), *port->output()); + port_output_trace_map.insert (pair (port, mt)); + } else { + mt = x->second; + } + mt->present (); } } @@ -119,7 +142,7 @@ private: if ((*i)->input()) { r[_model.online] = !(*i)->input()->offline(); - (*i)->input()->OfflineStatusChanged.connect (port_connections, boost::bind (&MIDIPorts::port_offline_changed, this, (*i)), gui_context()); + (*i)->input()->OfflineStatusChanged.connect (port_connections, MISSING_INVALIDATOR, boost::bind (&MIDIPorts::port_offline_changed, this, (*i)), gui_context()); r[_model.trace_input] = (*i)->input()->tracing(); } @@ -700,10 +723,9 @@ public: } _db_slider = manage (new HSliderController (pix, - &_db_adjustment, - false, - 115)); - + &_db_adjustment, + 115, + false)); parameter_changed ("solo-mute-gain"); @@ -715,6 +737,7 @@ public: h->pack_start (*l, false, false); h->pack_start (*_db_slider, false, false); h->pack_start (_db_display, false, false); + h->show_all (); set_size_request_to_display_given_text (_db_display, "-99.0", 12, 12); @@ -900,8 +923,8 @@ private: RCOptionEditor::RCOptionEditor () - : OptionEditor (Config, _("Ardour Preferences")), - _rc_config (Config) + : OptionEditor (Config, string_compose (_("%1 Preferences"), PROGRAM_NAME)) + , _rc_config (Config) { /* MISC */ @@ -1055,6 +1078,14 @@ RCOptionEditor::RCOptionEditor () sigc::mem_fun (*_rc_config, &RCConfiguration::set_disable_disarm_during_roll) )); + add_option (_("Transport"), + new BoolOption ( + "quieten_at_speed", + _("12dB gain reduction during fast-forward and fast-rewind"), + sigc::mem_fun (*_rc_config, &RCConfiguration::get_quieten_at_speed), + sigc::mem_fun (*_rc_config, &RCConfiguration::set_quieten_at_speed) + )); + /* EDITOR */ add_option (_("Editor"), @@ -1129,11 +1160,18 @@ RCOptionEditor::RCOptionEditor () add_option (_("Editor"), wfsh); + add_option (_("Editor"), + new BoolOption ( + "show-waveforms-while-recording", + _("Show waveforms for audio while it is being recorded"), + sigc::mem_fun (*_rc_config, &RCConfiguration::get_show_waveforms_while_recording), + sigc::mem_fun (*_rc_config, &RCConfiguration::set_show_waveforms_while_recording) + )); + /* AUDIO */ add_option (_("Audio"), new OptionEditorHeading (_("Solo"))); - add_option (_("Audio"), new BoolOption ( "solo-control-is-listen-control", @@ -1157,10 +1195,10 @@ RCOptionEditor::RCOptionEditor () add_option (_("Audio"), new BoolOption ( - "solo-latched", - _("Latched solo"), - sigc::mem_fun (*_rc_config, &RCConfiguration::get_solo_latched), - sigc::mem_fun (*_rc_config, &RCConfiguration::set_solo_latched) + "exclusive-solo", + _("Exclusive solo"), + sigc::mem_fun (*_rc_config, &RCConfiguration::get_exclusive_solo), + sigc::mem_fun (*_rc_config, &RCConfiguration::set_exclusive_solo) )); add_option (_("Audio"), @@ -1174,13 +1212,21 @@ RCOptionEditor::RCOptionEditor () add_option (_("Audio"), new BoolOption ( "solo-mute-override", - _("Override muting"), + _("Soloing overrides muting"), sigc::mem_fun (*_rc_config, &RCConfiguration::get_solo_mute_override), sigc::mem_fun (*_rc_config, &RCConfiguration::set_solo_mute_override) )); add_option (_("Audio"), new OptionEditorHeading (_("Monitoring"))); + add_option (_("Audio"), + new BoolOption ( + "use-monitor-bus", + _("Use a monitor bus (allows AFL/PFL and more control)"), + sigc::mem_fun (*_rc_config, &RCConfiguration::get_use_monitor_bus), + sigc::mem_fun (*_rc_config, &RCConfiguration::set_use_monitor_bus) + )); + ComboOption* mm = new ComboOption ( "monitoring-model", _("Monitoring handled by"), @@ -1344,6 +1390,14 @@ RCOptionEditor::RCOptionEditor () add_option (_("MIDI control"), *i); } + add_option (_("MIDI control"), + new BoolOption ( + "send-mtc", + _("Send MIDI Time Code"), + sigc::mem_fun (*_rc_config, &RCConfiguration::get_send_mtc), + sigc::mem_fun (*_rc_config, &RCConfiguration::set_send_mtc) + )); + add_option (_("MIDI control"), new BoolOption ( "mmc-control",