internal protected Part AllocatePart(byte pri, MidiDriver midi)
{
Part best = null;
for (var i = 0; i < _parts.Length; i++)
{
var part = _parts[i];
if (part.Player == null)
{
return part;
}
if (pri >= part.PriorityEffective)
{
pri = (byte)part.PriorityEffective;
best = part;
}
}
if (best != null)
{
best.Uninit();
ReallocateMidiChannels(midi);
}
else
{
Debug.WriteLine("Denying part request");
}
return best;
}