Changeset 548

Show
Ignore:
Timestamp:
10/07/08 19:20:34 (2 months ago)
Author:
smoors
Message:

improved CC-message support. CC-messages are recognized by autosense.yay!

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/midiAutosense/gui/src/widgets/midiTable.cpp

    r461 r548  
    227227                insertNewRow(pAction->getType() , "NOTE" , note , actionParameterInteger ); 
    228228        } 
     229 
     230        for( int parameter = 0; parameter < 128; parameter++ ) 
     231        { 
     232                action * pAction = mM->getCCAction( parameter ); 
     233                QString actionParameter; 
     234                int actionParameterInteger = 0; 
     235 
     236                if( pAction->getParameterList().size() != 0 ){ 
     237                        actionParameter = pAction->getParameterList().at(0); 
     238                        actionParameterInteger = actionParameter.toInt(&ok,10); 
     239                } 
     240 
     241                if ( pAction->getType() == "NOTHING" ) continue; 
     242 
     243                insertNewRow(pAction->getType() , "CC" , parameter , actionParameterInteger ); 
     244        } 
     245 
    229246         
    230247        insertNewRow("","",0,0); 
     
    276293                                mM->registerNoteEvent( eventSpinner->cleanText().toInt() , pAction ); 
    277294                        } 
    278                 } 
    279         } 
    280 
     295                         
     296                        if( eventString.left(2) == "CC" ){ 
     297                                mM->registerCCEvent( eventSpinner->cleanText().toInt() , pAction ); 
     298                        } 
     299                } 
     300        } 
     301
  • branches/midiAutosense/libs/hydrogen/src/IO/midi_input.cpp

    r547 r548  
    139139        bool action = aH->handleAction( mM->getCCAction( msg.m_nData1 ) ); 
    140140 
     141        pEngine->lastMidiEvent = "CC"; 
     142        pEngine->lastMidiEventParameter = msg.m_nData1; 
     143         
    141144 
    142145} 
  • branches/midiAutosense/libs/hydrogen/src/action.cpp

    r426 r548  
    8282        << "MMC_RECORD_EXIT" 
    8383        << "MMC_PAUSE" 
    84         << "NOTE"; 
     84        << "NOTE" 
     85        << "CC"; 
    8586} 
    8687 
  • branches/midiAutosense/libs/hydrogen/src/midiMap.cpp

    r547 r548  
    4646 
    4747        for(int i = 0; i < 128; i++){ 
    48                 delete noteArray[i]; 
     48                delete noteArray[ i ]; 
     49                delete ccArray[ i ]; 
    4950        } 
    5051 
  • branches/midiAutosense/libs/hydrogen/src/preferences.cpp

    r426 r548  
    471471                                for ( pMidiEventNode = pMidiEventMapNode->FirstChild( "midiEvent" ); pMidiEventNode; pMidiEventNode = pMidiEventNode->NextSibling( "midiEvent" ) ) { 
    472472                                         
    473                                         if( pMidiEventNode->FirstChild()->Value() == QString("mmcEvent")){ 
     473                                        if( pMidiEventNode->FirstChild()->Value() == QString("mmcEvent") ){ 
    474474                                                QString event = pMidiEventNode->FirstChild("mmcEvent")->FirstChild()->Value(); 
    475475         
     
    482482                                                pAction->addParameter( s_param ); 
    483483                                 
    484                                                 mM->registerMMCEvent(event, pAction); 
     484                                                mM->registerMMCEvent( event, pAction ); 
    485485                                                 
    486486                                        } 
    487487 
    488488                                         
    489                                         if( pMidiEventNode->FirstChild()->Value() == QString("noteEvent")){ 
     489                                        if( pMidiEventNode->FirstChild()->Value() == QString("noteEvent") ){ 
    490490                                                QString event = pMidiEventNode->FirstChild("noteEvent")->FirstChild()->Value(); 
    491491         
     
    500500                                                pAction->addParameter( s_param ); 
    501501                                 
    502                                                 mM->registerNoteEvent(s_eventParameter.toInt(), pAction); 
     502                                                mM->registerNoteEvent( s_eventParameter.toInt(), pAction ); 
    503503                                        } 
     504                                         
     505                                        if( pMidiEventNode->FirstChild()->Value() == QString("ccEvent") ){ 
     506                                                QString event = pMidiEventNode->FirstChild("ccEvent")->FirstChild()->Value(); 
     507         
     508                                                QString s_action = pMidiEventNode->FirstChild("action")->FirstChild()->Value(); 
     509 
     510                                                QString s_param = pMidiEventNode->FirstChild("parameter")->FirstChild()->Value(); 
     511 
     512                                                QString s_eventParameter = pMidiEventNode->FirstChild("eventParameter")->FirstChild()->Value(); 
     513         
     514                                                action * pAction = new action( s_action ); 
     515 
     516                                                pAction->addParameter( s_param ); 
     517                                 
     518                                                mM->registerCCEvent( s_eventParameter.toInt(), pAction ); 
     519                                        } 
     520 
     521 
     522 
    504523                                } 
    505524                        } else { 
     
    830849                                LocalFileMng::writeXmlString( &midiEventNode, "noteEvent" , QString("NOTE") ); 
    831850                                LocalFileMng::writeXmlString( &midiEventNode, "eventParameter" , QString::number( note ) ); 
     851                                 
     852 
     853                                LocalFileMng::writeXmlString( &midiEventNode, "action" , pAction->getType() ); 
     854 
     855                                if ( pAction->getParameterList().size() != 0 ){ 
     856                                        LocalFileMng::writeXmlString( &midiEventNode, "parameter" , pAction->getParameterList().at(0) ); 
     857                                } 
     858 
     859                                midiEventMapNode.InsertEndChild(midiEventNode); 
     860                        } 
     861                } 
     862 
     863                for( int parameter=0; parameter < 128; parameter++ ){ 
     864                        action * pAction = mM->getCCAction( parameter ); 
     865                        if( pAction != NULL && pAction->getType() != "NOTHING") 
     866                        { 
     867                                TiXmlElement midiEventNode( "midiEvent" ); 
     868                                 
     869                                LocalFileMng::writeXmlString( &midiEventNode, "ccEvent" , QString("CC") ); 
     870                                LocalFileMng::writeXmlString( &midiEventNode, "eventParameter" , QString::number( parameter ) ); 
     871                                 
    832872 
    833873                                LocalFileMng::writeXmlString( &midiEventNode, "action" , pAction->getType() );