1064 |
VoiceIterator itVoiceToBeKilled = pOtherKey->pActiveVoices->first(); |
VoiceIterator itVoiceToBeKilled = pOtherKey->pActiveVoices->first(); |
1065 |
VoiceIterator end = pOtherKey->pActiveVoices->end(); |
VoiceIterator end = pOtherKey->pActiveVoices->end(); |
1066 |
for (; itVoiceToBeKilled != end; ++itVoiceToBeKilled) { |
for (; itVoiceToBeKilled != end; ++itVoiceToBeKilled) { |
1067 |
if (itVoiceToBeKilled->Type != Voice::type_release_trigger) |
if (!(itVoiceToBeKilled->Type & Voice::type_release_trigger)) |
1068 |
itVoiceToBeKilled->Kill(itNoteOnEventOnKeyList); |
itVoiceToBeKilled->Kill(itNoteOnEventOnKeyList); |
1069 |
} |
} |
1070 |
} |
} |
1201 |
VoiceIterator itVoiceToBeKilled = pKey->pActiveVoices->first(); |
VoiceIterator itVoiceToBeKilled = pKey->pActiveVoices->first(); |
1202 |
VoiceIterator end = pKey->pActiveVoices->end(); |
VoiceIterator end = pKey->pActiveVoices->end(); |
1203 |
for (; itVoiceToBeKilled != end; ++itVoiceToBeKilled) { |
for (; itVoiceToBeKilled != end; ++itVoiceToBeKilled) { |
1204 |
if (itVoiceToBeKilled->Type != Voice::type_release_trigger) |
if (!(itVoiceToBeKilled->Type & Voice::type_release_trigger)) |
1205 |
itVoiceToBeKilled->Kill(itNoteOffEventOnKeyList); |
itVoiceToBeKilled->Kill(itNoteOffEventOnKeyList); |
1206 |
} |
} |
1207 |
} |
} |
1334 |
pKey->itSelf = pChannel->pActiveKeys->allocAppend(); |
pKey->itSelf = pChannel->pActiveKeys->allocAppend(); |
1335 |
*pKey->itSelf = itNoteOnEvent->Param.Note.Key; |
*pKey->itSelf = itNoteOnEvent->Param.Note.Key; |
1336 |
} |
} |
1337 |
if (itNewVoice->Type == Voice::type_release_trigger_required) pKey->ReleaseTrigger = true; // mark key for the need of release triggered voice(s) |
if (itNewVoice->Type & Voice::type_release_trigger_required) pKey->ReleaseTrigger = true; // mark key for the need of release triggered voice(s) |
1338 |
return 0; // success |
return 0; // success |
1339 |
} |
} |
1340 |
} |
} |