diff options
Diffstat (limited to 'gtk2_ardour/engine_dialog.cc')
-rw-r--r-- | gtk2_ardour/engine_dialog.cc | 163 |
1 files changed, 13 insertions, 150 deletions
diff --git a/gtk2_ardour/engine_dialog.cc b/gtk2_ardour/engine_dialog.cc index 145b6812ec..8a6c42fd8c 100644 --- a/gtk2_ardour/engine_dialog.cc +++ b/gtk2_ardour/engine_dialog.cc @@ -239,21 +239,6 @@ EngineControl::EngineControl () midi_back_button.signal_clicked().connect (sigc::bind (sigc::mem_fun (notebook, &Gtk::Notebook::set_current_page), 0)); - pretty_name_column = midi_input_view.append_column (_("Pretty Name"), midi_port_columns.pretty_name) - 1; - use_column = midi_input_view.append_column (_("Use"), midi_port_columns.in_use) - 1; - music_column = midi_input_view.append_column (_("Use for Music"), midi_port_columns.music_data) - 1; - control_column = midi_input_view.append_column (_("Use for Control"), midi_port_columns.control_data) - 1; - selection_column = midi_input_view.append_column (_("Follow Selection"), midi_port_columns.control_data) - 1; - - midi_output_view.append_column (_("Pretty Name"), midi_port_columns.pretty_name); - midi_output_view.append_column (_("Use"), midi_port_columns.in_use); - midi_output_view.append_column (_("Use for Music"), midi_port_columns.music_data); - midi_output_view.append_column (_("Use for Control"), midi_port_columns.control_data); - midi_output_view.append_column (_("Follow Selection"), midi_port_columns.control_data); - - midi_input_view.get_selection()->set_mode (SELECTION_NONE); - midi_output_view.get_selection()->set_mode (SELECTION_NONE); - /* pack it all up */ notebook.pages().push_back (TabElem (basic_vbox, _("Audio"))); @@ -261,7 +246,7 @@ EngineControl::EngineControl () notebook.pages().push_back (TabElem (midi_vbox, _("MIDI"))); notebook.set_border_width (12); - //notebook.set_show_tabs (false); + notebook.set_show_tabs (false); notebook.show_all (); notebook.set_name ("SettingsNotebook"); @@ -792,147 +777,23 @@ EngineControl::enable_latency_tab () void EngineControl::setup_midi_tab_for_backend () { + string backend = backend_combo.get_active_text (); + Gtkmm2ext::container_clear (midi_vbox); midi_vbox.set_border_width (12); midi_device_table.set_border_width (12); + if (backend == "JACK") { + setup_midi_tab_for_jack (); + } + midi_vbox.pack_start (midi_device_table, true, true); - midi_vbox.pack_start (midi_input_view); - midi_vbox.pack_start (midi_output_view); midi_vbox.pack_start (midi_back_button, false, false); - midi_vbox.show_all (); } void -EngineControl::refill_midi_ports (bool for_input) -{ - using namespace ARDOUR; - - std::vector<string> ports; - - AudioEngine::instance()->get_ports (string(), DataType::MIDI, for_input ? IsInput : IsOutput, ports); - - Glib::RefPtr<ListStore> model = Gtk::ListStore::create (midi_port_columns); - - for (vector<string>::const_iterator s = ports.begin(); s != ports.end(); ++s) { - - if (AudioEngine::instance()->port_is_mine (*s)) { - continue; - } - - TreeModel::Row row = *(model->append()); - - string pretty = AudioEngine::instance()->get_pretty_name_by_name (*s); - row[midi_port_columns.name] = *s; - row[midi_port_columns.pretty_name] = (pretty.empty() ? *s : pretty); - row[midi_port_columns.in_use] = true; - row[midi_port_columns.music_data] = true; - row[midi_port_columns.control_data] = true; - } - - Gtk::TreeView& view (for_input ? midi_input_view : midi_output_view); - - view.set_model (model); - - CellRendererText* pretty_name_cell = dynamic_cast<CellRendererText*> (view.get_column_cell_renderer (pretty_name_column)); - pretty_name_cell->property_editable() = true; - pretty_name_cell->signal_edited().connect (sigc::bind (sigc::mem_fun (*this, &EngineControl::pretty_name_edit), &view)); - - CellRendererToggle* toggle_cell; - - toggle_cell = dynamic_cast<CellRendererToggle*> (view.get_column_cell_renderer (use_column)); - toggle_cell->signal_toggled().connect (sigc::bind (sigc::mem_fun (*this, &EngineControl::midi_use_column_toggled), &view)); - - toggle_cell = dynamic_cast<CellRendererToggle*> (view.get_column_cell_renderer (music_column)); - toggle_cell->signal_toggled().connect (sigc::bind (sigc::mem_fun (*this, &EngineControl::midi_music_column_toggled), &view)); - - toggle_cell = dynamic_cast<CellRendererToggle*> (view.get_column_cell_renderer (control_column)); - toggle_cell->signal_toggled().connect (sigc::bind (sigc::mem_fun (*this, &EngineControl::midi_control_column_toggled), &view)); - - toggle_cell = dynamic_cast<CellRendererToggle*> (view.get_column_cell_renderer (selection_column)); - toggle_cell->signal_toggled().connect (sigc::bind (sigc::mem_fun (*this, &EngineControl::midi_selection_column_toggled), &view)); -} - -void -EngineControl::midi_use_column_toggled (string const & path, TreeView* view) -{ - TreeIter iter = view->get_model()->get_iter (path); - - if (!iter) { - return; - } - - bool value ((*iter)[midi_port_columns.in_use]); - (*iter)[midi_port_columns.in_use] = !value; - -} - -void -EngineControl::midi_music_column_toggled (string const & path, TreeView* view) -{ - TreeIter iter = view->get_model()->get_iter (path); - - if (!iter) { - return; - } - - bool value ((*iter)[midi_port_columns.music_data]); - (*iter)[midi_port_columns.music_data] = !value; -} - -void -EngineControl::midi_control_column_toggled (string const & path, TreeView* view) -{ - TreeIter iter = view->get_model()->get_iter (path); - - if (!iter) { - return; - } - - bool value ((*iter)[midi_port_columns.control_data]); - (*iter)[midi_port_columns.control_data] = !value; - - if (!value) { - // ARDOUR::AudioEngine::instance()->remove_port_purpose (PortFlags (ControlData)); - } else { - // ARDOUR::AudioEngine::instance()->add_port_purpose (PortFlags (ControlData)); - } -} - -void -EngineControl::midi_selection_column_toggled (string const & path, TreeView* view) -{ - TreeIter iter = view->get_model()->get_iter (path); - - if (!iter) { - return; - } - bool value ((*iter)[midi_port_columns.selection]); - (*iter)[midi_port_columns.selection] = !value; -} - -void -EngineControl::pretty_name_edit (std::string const & path, string const & new_text, Gtk::TreeView* view) -{ - TreeIter iter = view->get_model()->get_iter (path); - - if (!iter) { - return; - } - - boost::shared_ptr<ARDOUR::AudioBackend> backend = ARDOUR::AudioEngine::instance()->current_backend(); - if (backend) { - ARDOUR::PortEngine::PortHandle ph = backend->get_port_by_name ((*iter)[midi_port_columns.name]); - if (ph) { - backend->set_port_property (ph, "http://jackaudio.org/metadata/pretty-name", new_text, ""); - (*iter)[midi_port_columns.pretty_name] = new_text; - } - } -} - -void EngineControl::update_sensitivity () { boost::shared_ptr<ARDOUR::AudioBackend> backend = ARDOUR::AudioEngine::instance()->current_backend(); @@ -1072,6 +933,11 @@ EngineControl::update_sensitivity () } void +EngineControl::setup_midi_tab_for_jack () +{ +} + +void EngineControl::midi_latency_adjustment_changed (Gtk::Adjustment *a, MidiDeviceSettings device, bool for_input) { if (for_input) { device->input_latency = a->get_value(); @@ -1654,7 +1520,7 @@ EngineControl::set_nperiods_popdown_strings () set_popdown_strings (nperiods_combo, s); if (!s.empty()) { - set_active_text_if_present (nperiods_combo, nperiods_as_string (backend->period_size())); // XXX + set_active_text_if_present (nperiods_combo, nperiods_as_string (backend->period_size())); // XXX } update_sensitivity (); @@ -3231,9 +3097,6 @@ EngineControl::engine_running () engine_status.set_markup(string_compose ("<span foreground=\"green\">%1</span>", _("Connected"))); } update_sensitivity(); - - refill_midi_ports (true); - refill_midi_ports (false); } void |