implemented MidiProbe-Class
This commit is contained in:
parent
a2293a847e
commit
f202d250f8
45
MidiProbe.cpp
Normal file
45
MidiProbe.cpp
Normal 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user