Changeset 547

Show
Ignore:
Timestamp:
10/07/08 12:45:18 (2 months ago)
Author:
smoors
Message:

added basic CC-message support

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/midiAutosense/libs/hydrogen/include/hydrogen/IO/MidiInput.h

    r127 r547  
    9494        void handleMidiMessage( const MidiMessage& msg ); 
    9595        void handleSysexMessage( const MidiMessage& msg ); 
     96        void handleControlChangeMessage( const MidiMessage& msg); 
    9697 
    9798protected: 
  • branches/midiAutosense/libs/hydrogen/include/hydrogen/midiMap.h

    r174 r547  
    3737                void registerMMCEvent( QString,action * ); 
    3838                void registerNoteEvent( int , action * ); 
     39                void registerCCEvent( int , action * ); 
    3940 
    4041                map <QString , action *> getMMCMap(); 
     
    4243                action * getMMCAction( QString ); 
    4344                action * getNoteAction( int note ); 
     45                action * getCCAction( int parameter ); 
    4446 
    4547                void setupNoteArray(); 
     
    5052 
    5153                action * noteArray[128]; 
     54                action * ccArray[128]; 
     55 
    5256                map <QString , action *> mmcMap; 
    5357}; 
  • branches/midiAutosense/libs/hydrogen/src/IO/midi_input.cpp

    r426 r547  
    7474 
    7575        case MidiMessage::CONTROL_CHANGE: 
    76                 INFOLOG( QString( "[handleMidiMessage] CONTROL_CHANGE Parameter: %1, Value: %2" ).arg( msg.m_nData1 ).arg( msg.m_nData2 ) ); 
     76                handleControlChangeMessage( msg ); 
    7777                break; 
    7878 
     
    129129} 
    130130 
    131  
     131void MidiInput::handleControlChangeMessage( const MidiMessage& msg ) 
     132
     133        INFOLOG( QString( "[handleMidiMessage] CONTROL_CHANGE Parameter: %1, Value: %2" ).arg( msg.m_nData1 ).arg( msg.m_nData2 ) ); 
     134         
     135        Hydrogen *pEngine = Hydrogen::get_instance(); 
     136        actionManager * aH = actionManager::getInstance(); 
     137        midiMap * mM = midiMap::getInstance(); 
     138 
     139        bool action = aH->handleAction( mM->getCCAction( msg.m_nData1 ) ); 
     140 
     141 
     142
    132143 
    133144void MidiInput::handleNoteOnMessage( const MidiMessage& msg ) 
  • branches/midiAutosense/libs/hydrogen/src/midiMap.cpp

    r174 r547  
    3030{ 
    3131        //constructor 
    32         for(int note = 0; note < 128; note++ ){ 
    33                 noteArray[ note ] = new action("NOTHING"); 
     32        for(int i = 0; i < 128; i++ ){ 
     33                noteArray[ i ] = new action("NOTHING"); 
     34                ccArray[ i ] = new action("NOTHING"); 
    3435        } 
    3536} 
     
    7475} 
    7576 
     77 
     78void midiMap::registerCCEvent( int parameter , action * pAction ){ 
     79        if( parameter >= 0 and parameter < 128 ) 
     80        { 
     81                delete ccArray[ parameter ]; 
     82                ccArray[ parameter ] = pAction; 
     83        } 
     84} 
     85 
    7686action * midiMap::getMMCAction( QString eventString ){ 
    7787         
     
    8999} 
    90100 
     101action * midiMap::getCCAction( int parameter ){ 
     102        return ccArray[ parameter ]; 
     103} 
     104