summaryrefslogtreecommitdiff
path: root/gtk2_ardour/rc_option_editor.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2010-07-07 00:40:58 +0000
committerCarl Hetherington <carl@carlh.net>2010-07-07 00:40:58 +0000
commitea23298f10e9587eba483cb54a6f7d75ca68126a (patch)
treebdd396ac05d0be01cbbcc6447844a04814e79cbf /gtk2_ardour/rc_option_editor.cc
parent6cccf3ce7dc86998d6797f393bec5b69610fc5f3 (diff)
Setup fixed ports for MIDI control data; hence remove configuration of those ports. Move MIDI tracer to the Windows menu. Trim some unused code from the midi++ Manager.
git-svn-id: svn://localhost/ardour2/branches/3.0@7384 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/rc_option_editor.cc')
-rw-r--r--gtk2_ardour/rc_option_editor.cc257
1 files changed, 0 insertions, 257 deletions
diff --git a/gtk2_ardour/rc_option_editor.cc b/gtk2_ardour/rc_option_editor.cc
index ec3af3e745..bec67099ea 100644
--- a/gtk2_ardour/rc_option_editor.cc
+++ b/gtk2_ardour/rc_option_editor.cc
@@ -30,225 +30,6 @@ using namespace Gtkmm2ext;
using namespace PBD;
using namespace ARDOUR;
-class MIDIPorts : public OptionEditorBox
-{
-public:
- MIDIPorts (RCConfiguration* c, list<ComboOption<string>* > const & o)
- : _rc_config (c),
- _add_port_button (Stock::ADD),
- _port_combos (o)
- {
- _store = ListStore::create (_model);
- _view.set_model (_store);
- _view.append_column (_("Name"), _model.name);
- _view.get_column(0)->set_resizable (true);
- _view.get_column(0)->set_expand (true);
- _view.append_column_editable (_("Online"), _model.online);
- _view.append_column_editable (_("Trace input"), _model.trace_input);
- _view.append_column_editable (_("Trace output"), _model.trace_output);
-
- HBox* h = manage (new HBox);
- h->set_spacing (4);
- h->pack_start (_view, true, true);
-
- VBox* v = manage (new VBox);
- v->set_spacing (4);
- v->pack_start (_add_port_button, false, false);
- h->pack_start (*v, false, false);
-
- _box->pack_start (*h);
-
- ports_changed ();
-
- _store->signal_row_changed().connect (sigc::mem_fun (*this, &MIDIPorts::model_changed));
-
- _add_port_button.signal_clicked().connect (sigc::mem_fun (*this, &MIDIPorts::add_port_clicked));
- }
-
- void parameter_changed (string const &) {}
- void set_state_from_config () {}
-
-private:
-
- typedef std::map<MIDI::Port*,MidiTracer*> 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;
-
- MIDI::Port* port = r[_model.port];
- if (!port) {
- return;
- }
-
- if (port->input()) {
-
- if (r[_model.online] == port->input()->offline()) {
- port->input()->set_offline (!r[_model.online]);
- }
-
- if (r[_model.trace_input] != port->input()->tracing()) {
- 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<MIDI::Port*,MidiTracer*> (port, mt));
- } else {
- mt = x->second;
- }
- mt->present ();
- }
- }
-
- if (port->output()) {
-
- if (r[_model.trace_output] != port->output()->tracing()) {
- 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<MIDI::Port*,MidiTracer*> (port, mt));
- } else {
- mt = x->second;
- }
- mt->present ();
- }
-
- }
- }
-
- void setup_ports_combo (ComboOption<string>* c)
- {
- c->clear ();
- MIDI::Manager::PortList const & ports = MIDI::Manager::instance()->get_midi_ports ();
- for (MIDI::Manager::PortList::const_iterator i = ports.begin(); i != ports.end(); ++i) {
- c->add ((*i)->name(), (*i)->name());
- }
- }
-
- void ports_changed ()
- {
- /* XXX: why is this coming from here? */
- MIDI::Manager::PortList const & ports = MIDI::Manager::instance()->get_midi_ports ();
-
- _store->clear ();
- port_connections.drop_connections ();
-
- for (MIDI::Manager::PortList::const_iterator i = ports.begin(); i != ports.end(); ++i) {
-
- TreeModel::Row r = *_store->append ();
-
- r[_model.name] = (*i)->name();
-
- if ((*i)->input()) {
- r[_model.online] = !(*i)->input()->offline();
- (*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();
- }
-
- if ((*i)->output()) {
- r[_model.trace_output] = (*i)->output()->tracing();
- }
-
- r[_model.port] = (*i);
- }
-
- for (list<ComboOption<string>* >::iterator i = _port_combos.begin(); i != _port_combos.end(); ++i) {
- setup_ports_combo (*i);
- }
- }
-
- void port_offline_changed (MIDI::Port* p)
- {
- if (!p->input()) {
- return;
- }
-
- for (TreeModel::Children::iterator i = _store->children().begin(); i != _store->children().end(); ++i) {
- if ((*i)[_model.port] == p) {
- (*i)[_model.online] = !p->input()->offline();
- }
- }
- }
-
- void add_port_clicked ()
- {
- MidiPortDialog dialog;
-
- dialog.set_position (WIN_POS_MOUSE);
-
- dialog.show ();
-
- int const r = dialog.run ();
-
- switch (r) {
- case RESPONSE_ACCEPT:
- break;
- default:
- return;
- break;
- }
-
- Glib::ustring const mode = dialog.port_mode_combo.get_active_text ();
- string smod;
-
- if (mode == _("input")) {
- smod = X_("input");
- } else if (mode == (_("output"))) {
- smod = X_("output");
- } else {
- smod = "duplex";
- }
-
- XMLNode node (X_("MIDI-port"));
-
- node.add_property ("tag", dialog.port_name.get_text());
- node.add_property ("device", X_("ardour")); // XXX this can't be right for all types
- node.add_property ("mode", smod);
-
- if (MIDI::Manager::instance()->add_port (node) != 0) {
- cerr << " there are now " << MIDI::Manager::instance()->nports() << endl;
- ports_changed ();
- }
- }
-
- class MIDIModelColumns : public TreeModelColumnRecord
- {
- public:
- MIDIModelColumns ()
- {
- add (name);
- add (online);
- add (trace_input);
- add (trace_output);
- add (port);
- }
-
- TreeModelColumn<string> name;
- TreeModelColumn<bool> online;
- TreeModelColumn<bool> trace_input;
- TreeModelColumn<bool> trace_output;
- TreeModelColumn<MIDI::Port*> port;
- };
-
- RCConfiguration* _rc_config;
- Glib::RefPtr<ListStore> _store;
- MIDIModelColumns _model;
- TreeView _view;
- Button _add_port_button;
- ComboBoxText _mtc_combo;
- ComboBoxText _midi_clock_combo;
- ComboBoxText _mmc_combo;
- ComboBoxText _mpc_combo;
- list<ComboOption<string>* > _port_combos;
- PBD::ScopedConnectionList port_connections;
-};
-
-
class ClickOptions : public OptionEditorBox
{
public:
@@ -1429,44 +1210,6 @@ RCOptionEditor::RCOptionEditor ()
sigc::mem_fun (*_rc_config, &RCConfiguration::set_mute_affects_main_outs)
));
- /* MIDI CONTROL */
-
- list<ComboOption<string>* > midi_combos;
-
- midi_combos.push_back (new ComboOption<string> (
- "mtc-port-name",
- _("Send/Receive MTC via"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_mtc_port_name),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_mtc_port_name)
- ));
-
- midi_combos.push_back (new ComboOption<string> (
- "midi-clock-port-name",
- _("Send/Receive MIDI clock via"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_midi_clock_port_name),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_midi_clock_port_name)
- ));
-
- midi_combos.push_back (new ComboOption<string> (
- "mmc-port-name",
- _("Send/Receive MMC via"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_mmc_port_name),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_mmc_port_name)
- ));
-
- midi_combos.push_back (new ComboOption<string> (
- "midi-port-name",
- _("Send/Receive MIDI parameter control via"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_midi_port_name),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_midi_port_name)
- ));
-
- add_option (_("MIDI control"), new MIDIPorts (_rc_config, midi_combos));
-
- for (list<ComboOption<string>* >::iterator i = midi_combos.begin(); i != midi_combos.end(); ++i) {
- add_option (_("MIDI control"), *i);
- }
-
add_option (_("MIDI control"),
new BoolOption (
"send-mtc",