private SoundHandle InsertChannel(Channel chan)
{
var index = -1;
for (var i = 0; i != NumChannels; i++)
{
if (_channels[i] == null)
{
index = i;
break;
}
}
if (index == -1)
{
throw new InvalidOperationException("MixerImpl::out of mixer slots");
}
_channels[index] = chan;
var chanHandle = new SoundHandle
{
Value = index + _handleSeed * NumChannels
};
chan.Handle = chanHandle;
_handleSeed++;
return chanHandle;
}