X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Frc_option_editor.cc;h=f9432bf88b8d45d2001221aa88ab9cfa090dc8ae;hb=157c2a866c166b94b65da442b8c54f5ffa8d6a53;hp=e35ec0026d7cd19fbbaeaf5e5c8f8b9d4d2af3f1;hpb=77cc0f7cc84df5e242898cef0abb7d633de64d8c;p=ardour.git diff --git a/gtk2_ardour/rc_option_editor.cc b/gtk2_ardour/rc_option_editor.cc index e35ec0026d..f9432bf88b 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 (); } } @@ -778,7 +801,8 @@ public: _box->pack_start (_view, false, false); - Label* label = manage (new Label (_("Double-click on a name to edit settings for an enabled protocol"))); + Label* label = manage (new Label); + label->set_markup (string_compose (X_("%1"), _("Double-click on a name to edit settings for an enabled protocol"))); _box->pack_start (*label, false, false); label->show (); @@ -1343,6 +1367,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",