コード例 #1
0
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;
}
コード例 #2
0
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;
}
コード例 #3
0
ファイル: midiout-unix.cpp プロジェクト: speakman/qlc
void MIDIOut::close(t_output output)
{
	MIDIDevice* dev = device(output);
	if (dev != NULL)
		unsubscribeDevice(dev);
	else
		qDebug() << name() << "has no output number:" << output;
}