diff --git a/gtk2_ardour/port_group.cc b/gtk2_ardour/port_group.cc index ca3a73643b..ab7feb6185 100644 --- a/gtk2_ardour/port_group.cc +++ b/gtk2_ardour/port_group.cc @@ -26,6 +26,7 @@ #include "midi++/mmc.h" +#include "ardour/async_midi_port.h" #include "ardour/audioengine.h" #include "ardour/auditioner.h" #include "ardour/bundle.h" @@ -490,15 +491,12 @@ PortGroupList::gather (ARDOUR::Session* session, ARDOUR::DataType type, bool inp } /* virtual keyboard */ - if ((type == DataType::MIDI || type == DataType::NIL)) { + if (!inputs && (type == DataType::MIDI || type == DataType::NIL)) { + boost::shared_ptr ap = boost::dynamic_pointer_cast (session->vkbd_output_port()); AudioEngine* ae = AudioEngine::instance(); - if (!inputs) { - boost::shared_ptr vm (new Bundle (_("Virtual MIDI"), inputs)); - vm->add_channel ( - _("Virtual Keyboard"), DataType::MIDI, ae->make_port_name_non_relative (session->vkbd_output_port()->name()) - ); - program->add_bundle (vm); - } + boost::shared_ptr vm (new Bundle (_("Virtual MIDI"), inputs)); + vm->add_channel (_("Virtual Keyboard"), DataType::MIDI, ae->make_port_name_non_relative (ap->name())); + program->add_bundle (vm); } /* our sync ports */ diff --git a/gtk2_ardour/virtual_keyboard_window.cc b/gtk2_ardour/virtual_keyboard_window.cc index 65efd089aa..bda15edce4 100644 --- a/gtk2_ardour/virtual_keyboard_window.cc +++ b/gtk2_ardour/virtual_keyboard_window.cc @@ -92,7 +92,7 @@ VirtualKeyboardWindow::note_on_event_handler (int note) ev[0] = (MIDI_CMD_NOTE_ON | channel); ev[1] = note; ev[2] = _piano_velocity.get_value_as_int (); - boost::dynamic_pointer_cast(_session->vkbd_output_port())->write (ev, 3, 0); + _session->vkbd_output_port()->write (ev, 3, 0); } void @@ -107,5 +107,5 @@ VirtualKeyboardWindow::note_off_event_handler (int note) ev[0] = (MIDI_CMD_NOTE_OFF | channel); ev[1] = note; ev[2] = 0; - boost::dynamic_pointer_cast(_session->vkbd_output_port())->write (ev, 3, 0); + _session->vkbd_output_port()->write (ev, 3, 0); }