void MidiInput::handleControlChangeMessage( const MidiMessage& msg ) { //INFOLOG( QString( "[handleMidiMessage] CONTROL_CHANGE Parameter: %1, Value: %2" ).arg( msg.m_nData1 ).arg( msg.m_nData2 ) ); Hydrogen *pEngine = Hydrogen::get_instance(); MidiActionManager * aH = MidiActionManager::get_instance(); MidiMap * mM = MidiMap::get_instance(); MidiAction * pAction; pAction = mM->getCCAction( msg.m_nData1 ); pAction->setParameter2( QString::number( msg.m_nData2 ) ); aH->handleAction( pAction ); pEngine->lastMidiEvent = "CC"; pEngine->lastMidiEventParameter = msg.m_nData1; }
void MidiTable::setupMidiTable() { MidiMap *mM = MidiMap::get_instance(); QStringList items; items << "" << trUtf8("Event") << trUtf8("Param.") << trUtf8("Action") << trUtf8("Param.") ; setRowCount( 0 ); setColumnCount( 5 ); verticalHeader()->hide(); setHorizontalHeaderLabels( items ); horizontalHeader()->setStretchLastSection(true); setColumnWidth( 0 , 25 ); setColumnWidth( 1 , 155 ); setColumnWidth( 2, 73 ); setColumnWidth( 3, 175 ); setColumnWidth( 4 , 73 ); bool ok; std::map< QString , MidiAction* > mmcMap = mM->getMMCMap(); std::map< QString , MidiAction* >::iterator dIter( mmcMap.begin() ); for( dIter = mmcMap.begin(); dIter != mmcMap.end(); dIter++ ) { MidiAction * pAction = dIter->second; QString actionParameter; int actionParameterInteger = 0; actionParameter = pAction->getParameter1(); actionParameterInteger = actionParameter.toInt(&ok,10); insertNewRow(pAction->getType() , dIter->first , 0 , actionParameterInteger ); } for( int note = 0; note < 128; note++ ) { MidiAction * pAction = mM->getNoteAction( note ); QString actionParameter; int actionParameterInteger = 0; actionParameter = pAction->getParameter1(); actionParameterInteger = actionParameter.toInt(&ok,10); if ( pAction->getType() == "NOTHING" ) continue; insertNewRow(pAction->getType() , "NOTE" , note , actionParameterInteger ); } for( int parameter = 0; parameter < 128; parameter++ ){ MidiAction * pAction = mM->getCCAction( parameter ); QString actionParameter; int actionParameterInteger = 0; actionParameter = pAction->getParameter1(); actionParameterInteger = actionParameter.toInt(&ok,10); if ( pAction->getType() == "NOTHING" ) continue; insertNewRow(pAction->getType() , "CC" , parameter , actionParameterInteger ); } { MidiAction * pAction = mM->getPCAction(); if ( pAction->getType() != "NOTHING" ) { QString actionParameter = pAction->getParameter1(); int actionParameterInteger = actionParameter.toInt(&ok,10); insertNewRow( pAction->getType() , "PROGRAM_CHANGE" , 0 , actionParameterInteger ); } } insertNewRow( "", "", 0, 0 ); }