aboutsummaryrefslogtreecommitdiff
path: root/core/qmpmidioutrtmidi.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/qmpmidioutrtmidi.cpp')
-rw-r--r--core/qmpmidioutrtmidi.cpp17
1 files changed, 5 insertions, 12 deletions
diff --git a/core/qmpmidioutrtmidi.cpp b/core/qmpmidioutrtmidi.cpp
index c37fadc..fba8e03 100644
--- a/core/qmpmidioutrtmidi.cpp
+++ b/core/qmpmidioutrtmidi.cpp
@@ -312,26 +312,19 @@ void qmpMidiOutRtMidi::setInitializerFile(const char* path)
devinit=qmpDeviceInitializer::parse(path);
}
-RtMidiOut* qmpRtMidiManager::dummy=nullptr;
-void qmpRtMidiManager::createDevices()
+std::vector<std::pair<qmpMidiOutRtMidi*,std::string>> qmpRtMidiManager::devices;
+std::vector<std::pair<qmpMidiOutRtMidi*,std::string>> qmpRtMidiManager::getDevices()
{
+ if(devices.size())return devices;
+ RtMidiOut *dummy;
try{dummy=new RtMidiOut();}
catch(RtMidiError &e)
{
printf("Failed to initialize the dummy device: %s\n",e.what());
- dummy=nullptr;return;
+ return{};
}
for(unsigned i=0;i<dummy->getPortCount();++i)
devices.push_back(std::make_pair(new qmpMidiOutRtMidi(i),dummy->getPortName(i)));
-}
-void qmpRtMidiManager::deleteDevices()
-{
- for(size_t i=0;i<devices.size();++i)
- delete devices[i].first;
- devices.clear();
delete dummy;
-}
-std::vector<std::pair<qmpMidiOutRtMidi*,std::string>> qmpRtMidiManager::getDevices()
-{
return devices;
}