void MidiPlugin::slotValueChanged(const QVariant& uid, ushort channel, uchar value) { for (int i = 0; i < m_enumerator->inputDevices().size(); i++) { MidiInputDevice* dev = m_enumerator->inputDevices().at(i); if (dev->uid() == uid) { emit valueChanged(UINT_MAX, i, channel, value); break; } } }
void MidiPlugin::openInput(quint32 input) { qDebug() << "MIDI Plugin open Input: " << input; MidiInputDevice* dev = inputDevice(input); if (dev != NULL && dev->isOpen() == false) { dev->open(); connect(dev, SIGNAL(valueChanged(QVariant,ushort,uchar)), this, SLOT(slotValueChanged(QVariant,ushort,uchar))); } }
void MidiPlugin::closeInput(quint32 input) { qDebug() << Q_FUNC_INFO; MidiInputDevice* dev = inputDevice(input); if (dev != NULL && dev->isOpen() == true) { dev->close(); disconnect(dev, SIGNAL(valueChanged(QVariant,ushort,uchar)), this, SLOT(slotValueChanged(QVariant,ushort,uchar))); } }
void MidiPlugin::slotValueChanged(const QVariant& uid, ushort channel, uchar value) { for (int i = 0; i < m_enumerator->inputDevices().size(); i++) { MidiInputDevice* dev = m_enumerator->inputDevices().at(i); if (dev->uid() == uid) { qDebug() << "MIDI device: " << i << ", channel: " << channel << ", value: " << value; emit valueChanged(i, channel, value); break; } } }
QString MidiPlugin::inputInfo(quint32 input) { qDebug() << Q_FUNC_INFO; QString str; /* str += QString("<HTML>"); str += QString("<HEAD>"); str += QString("<TITLE>%1</TITLE>").arg(name()); str += QString("</HEAD>"); str += QString("<BODY>"); */ if (input == QLCIOPlugin::invalidLine()) { str += QString("<BR><B>%1</B>").arg(tr("No input support available.")); return str; } MidiInputDevice* dev = inputDevice(input); if (dev != NULL) { QString status; str += QString("<H3>%1 %2</H3>").arg(tr("Input")).arg(inputs()[input]); str += QString("<P>"); if (dev->isOpen() == true) status = tr("Open"); else status = tr("Not Open"); str += QString("%1: %2").arg(tr("Status")).arg(status); str += QString("</P>"); } else { if (input < (quint32)inputs().length()) str += QString("<H3>%1 %2</H3>").arg(tr("Invalid Input")).arg(inputs()[input]); } str += QString("</BODY>"); str += QString("</HTML>"); return str; }