Use AsyncMIDIPort API
authorRobin Gareus <robin@gareus.org>
Fri, 18 Oct 2019 13:17:54 +0000 (15:17 +0200)
committerRobin Gareus <robin@gareus.org>
Fri, 18 Oct 2019 20:56:46 +0000 (22:56 +0200)
gtk2_ardour/port_group.cc
gtk2_ardour/virtual_keyboard_window.cc

index ca3a73643b6a30a2e80f47a5243ac60f9a2a31f2..ab7feb618539c0cc827395d32e5bcbfff5ad8f7a 100644 (file)
@@ -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<ARDOUR::Port> ap = boost::dynamic_pointer_cast<ARDOUR::Port> (session->vkbd_output_port());
                AudioEngine* ae = AudioEngine::instance();
-               if (!inputs) {
-                       boost::shared_ptr<Bundle> 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<Bundle> 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 */
index 65efd089aa20970684b987d84cf23555cbd376de..bda15edce4727e8802ba54a7f724cac31f6c6776 100644 (file)
@@ -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<ARDOUR::AsyncMIDIPort>(_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<ARDOUR::AsyncMIDIPort>(_session->vkbd_output_port())->write (ev, 3, 0);
+       _session->vkbd_output_port()->write (ev, 3, 0);
 }