1 |
// qsamplerDeviceStatusForm.cpp |
// qsamplerDeviceStatusForm.cpp |
2 |
// |
// |
3 |
/**************************************************************************** |
/**************************************************************************** |
4 |
Copyright (C) 2008, Christian Schoenebeck |
Copyright (C) 2010-2020, rncbc aka Rui Nuno Capela. All rights reserved. |
5 |
Copyright (C) 2010-2013, rncbc aka Rui Nuno Capela. All rights reserved. |
Copyright (C) 2008,2019 Christian Schoenebeck |
6 |
|
|
7 |
This program is free software; you can redistribute it and/or |
This program is free software; you can redistribute it and/or |
8 |
modify it under the terms of the GNU General Public License |
modify it under the terms of the GNU General Public License |
27 |
|
|
28 |
#include <QGridLayout> |
#include <QGridLayout> |
29 |
|
|
30 |
#if QT_VERSION < 0x040500 |
#if QT_VERSION < QT_VERSION_CHECK(4, 5, 0) |
31 |
namespace Qt { |
namespace Qt { |
32 |
const WindowFlags WindowCloseButtonHint = WindowFlags(0x08000000); |
const WindowFlags WindowCloseButtonHint = WindowFlags(0x08000000); |
33 |
} |
} |
42 |
|
|
43 |
// MIDI activity pixmap common resources. |
// MIDI activity pixmap common resources. |
44 |
int MidiActivityLED::g_iMidiActivityRefCount = 0; |
int MidiActivityLED::g_iMidiActivityRefCount = 0; |
45 |
QPixmap *MidiActivityLED::g_pMidiActivityLedOn = NULL; |
QPixmap *MidiActivityLED::g_pMidiActivityLedOn = nullptr; |
46 |
QPixmap *MidiActivityLED::g_pMidiActivityLedOff = NULL; |
QPixmap *MidiActivityLED::g_pMidiActivityLedOff = nullptr; |
47 |
|
|
48 |
|
|
49 |
MidiActivityLED::MidiActivityLED ( QString sText, QWidget *pParent ) |
MidiActivityLED::MidiActivityLED ( QString sText, QWidget *pParent ) |
71 |
if (--g_iMidiActivityRefCount == 0) { |
if (--g_iMidiActivityRefCount == 0) { |
72 |
if (g_pMidiActivityLedOn) |
if (g_pMidiActivityLedOn) |
73 |
delete g_pMidiActivityLedOn; |
delete g_pMidiActivityLedOn; |
74 |
g_pMidiActivityLedOn = NULL; |
g_pMidiActivityLedOn = nullptr; |
75 |
if (g_pMidiActivityLedOff) |
if (g_pMidiActivityLedOff) |
76 |
delete g_pMidiActivityLedOff; |
delete g_pMidiActivityLedOff; |
77 |
g_pMidiActivityLedOff = NULL; |
g_pMidiActivityLedOff = nullptr; |
78 |
} |
} |
79 |
} |
} |
80 |
|
|
192 |
{ |
{ |
193 |
std::map<int, DeviceStatusForm *>::iterator iter |
std::map<int, DeviceStatusForm *>::iterator iter |
194 |
= g_instances.find(iDeviceID); |
= g_instances.find(iDeviceID); |
195 |
return ((iter != g_instances.end()) ? iter->second : NULL); |
return ((iter != g_instances.end()) ? iter->second : nullptr); |
196 |
} |
} |
197 |
|
|
198 |
|
|
221 |
= Device::getDeviceIDs(pMainForm->client(), Device::Midi); |
= Device::getDeviceIDs(pMainForm->client(), Device::Midi); |
222 |
// hide and delete status forms whose device has been destroyed |
// hide and delete status forms whose device has been destroyed |
223 |
std::map<int, DeviceStatusForm *>::iterator iter = g_instances.begin(); |
std::map<int, DeviceStatusForm *>::iterator iter = g_instances.begin(); |
224 |
for ( ; iter != g_instances.end(); ++iter) { |
while (iter != g_instances.end()) { |
225 |
if (deviceIDs.find(iter->first) == deviceIDs.end()) { |
if (deviceIDs.find(iter->first) == deviceIDs.end()) { |
226 |
iter->second->hide(); |
iter->second->hide(); |
227 |
delete iter->second; |
delete iter->second; |
228 |
g_instances.erase(iter); |
// postfix increment here to avoid iterator invalidation (crash) |
229 |
} |
g_instances.erase(iter++); |
230 |
|
} else ++iter; |
231 |
} |
} |
232 |
// create status forms for new devices |
// create status forms for new devices |
233 |
std::set<int>::iterator it = deviceIDs.begin(); |
std::set<int>::iterator it = deviceIDs.begin(); |
245 |
wflags |= Qt::Tool; |
wflags |= Qt::Tool; |
246 |
// Create the form, giving it the device id. |
// Create the form, giving it the device id. |
247 |
DeviceStatusForm *pStatusForm |
DeviceStatusForm *pStatusForm |
248 |
= new DeviceStatusForm(*it, NULL, wflags); |
= new DeviceStatusForm(*it, nullptr, wflags); |
249 |
g_instances[*it] = pStatusForm; |
g_instances[*it] = pStatusForm; |
250 |
} |
} |
251 |
} |
} |