31 mInstruments = mConfig.GetInstruments();
32 mNInValues = mConfig.GetNInValues();
33 mMInstruments = mInstruments.
Size();
35 for( i = 0; i < mMInstruments; i++ )
37 mInstruments[ i ]->SetId(i);
38 mInstruments[ i ]->LinkStateOutWithInControl(
this, 0 ) ;
40 InstrStatus status = {-1,-1,i};
41 mInstrStatusList.push_back(status);
46 for ( i = 0; i < mMInstruments; i++ )
48 for ( j = 0; j < mNInValues;j++)
62 std::list<InstrStatus>::iterator it;
63 for (it=mInstrStatusList.begin();it!=mInstrStatusList.end();it++)
65 if ((*it).mId == availableInstr)
67 mInstrStatusList.erase(it);
68 InstrStatus status = { -1,-1,
int(availableInstr) };
69 mInstrStatusList.push_front(status);
77 if( mVelocity == 0.0 )
79 std::list<InstrStatus>::iterator it;
81 for (it=mInstrStatusList.begin();it!=mInstrStatusList.end();it++)
83 if ( ( (*it).mNote == mNote ) && ( (*it).mVelocity ) )
85 InstrStatus status = (*it);
87 mValuesOut[ (*it).mId * mNInValues + 1]->SendControl( mVelocity );
94 InstrStatus status = mInstrStatusList.front();
95 mInstrStatusList.pop_front();
96 status.mNote =
int(mNote);
97 status.mVelocity =
int(mVelocity);
98 mInstrStatusList.push_back(status);
100 mValuesOut[ status.mId * mNInValues + 1 ]->SendControl( mVelocity );
101 mValuesOut[ status.mId * mNInValues ]->SendControl( mNote );