diff data/midi/MIDIInput.cpp @ 1397:b0533d195c83

Update RtMidi build to v2.1.1
author Chris Cannam
date Sun, 05 Mar 2017 21:51:10 +0000
parents 794b64e62e58
children d2ecf0acc3e2
line wrap: on
line diff
--- a/data/midi/MIDIInput.cpp	Sun Mar 05 17:16:04 2017 +0000
+++ b/data/midi/MIDIInput.cpp	Sun Mar 05 21:51:10 2017 +0000
@@ -20,15 +20,21 @@
 #include "system/System.h"
 
 MIDIInput::MIDIInput(QString name, FrameTimer *timer) :
-    m_rtmidi(),
+    m_rtmidi(0),
     m_frameTimer(timer),
     m_buffer(1023)
 {
     try {
-        m_rtmidi = new RtMidiIn(name.toStdString());
-        m_rtmidi->setCallback(staticCallback, this);
-        m_rtmidi->openPort(0, tr("Input").toStdString());
-    } catch (RtError e) {
+        std::vector<RtMidi::Api> apis;
+        RtMidi::getCompiledApi(apis);
+        if (apis.empty()) {
+            SVDEBUG << "MIDIInput: No RtMidi APIs compiled in" << endl;
+        } else {
+            m_rtmidi = new RtMidiIn(apis[0], name.toStdString());
+            m_rtmidi->setCallback(staticCallback, this);
+            m_rtmidi->openPort(0, tr("Input").toStdString());
+        }
+    } catch (RtMidiError e) {
         e.printMessage();
         delete m_rtmidi;
         m_rtmidi = 0;