bool AlsaMidiInputThread::removeDevice(AlsaMidiInputDevice* device) { qDebug() << Q_FUNC_INFO; Q_ASSERT(device != NULL); m_mutex.lock(); uint uid = device->uid().toUInt(); if (m_devices.remove(uid) > 0) { unsubscribeDevice(device); m_changed = true; } if (m_devices.size() == 0) { m_mutex.unlock(); stop(); } else { m_mutex.unlock(); } return true; }
bool AlsaMidiInputThread::removeDevice(AlsaMidiInputDevice* device) { qDebug() << Q_FUNC_INFO; Q_ASSERT(device != NULL); bool empty = false; { QMutexLocker locker(&m_mutex); uint uid = device->uid().toUInt(); if (m_devices.remove(uid) > 0) { unsubscribeDevice(device); m_changed = true; } empty = (m_devices.size() == 0); } if (empty) stop(); return true; }
void MIDIOut::close(t_output output) { MIDIDevice* dev = device(output); if (dev != NULL) unsubscribeDevice(dev); else qDebug() << name() << "has no output number:" << output; }