implemented MidiProbe-Class

This commit is contained in:
Lars Mewes 2021-10-09 18:12:46 +00:00
parent a2293a847e
commit f202d250f8

45
MidiProbe.cpp Normal file
View File

@ -0,0 +1,45 @@
#include "MidiProbe.h"
#include <QErrorMessage>
#include <string>
MidiProbe::MidiProbe()
{
midiin = new RtMidiIn();
portCount = midiin->getPortCount();
}
unsigned int MidiProbe::getPort()
{
QString selectedPort = "";
unsigned int i=0;
if(portCount==0)
{
QErrorMessage * message = new QErrorMessage();
message->setWindowTitle("Fehler!");
message->setWindowFlags(message->windowFlags()^Qt::WindowContextHelpButtonHint);
message->setModal(true);
message->showMessage("Keine MIDI-Geräte erkannt!");
}
else if(portCount == 1) //automatically select port 0 if it is the only one
{
return(0);
}
else if(portCount == 2) // let user select port
{
for(i=0; i<portCount; i++)
midiDevices.push_back(QString::fromStdString(midiin->getPortName(i)));
QInputDialog * dialog = new QInputDialog();
dialog->setWindowFlags(dialog->windowFlags()^Qt::WindowContextHelpButtonHint);
dialog->setModal(true);
selectedPort = dialog->getItem(nullptr, "Bitte ein Midi-Gerät auswählen:", "Midi-Geräte:", midiDevices, 0, true);
for(i=0; i<portCount; i++)
if(selectedPort==midiDevices.at(i)) return i;
}
return 100;
}