NScumm.Core.Audio.Mixer.InsertChannel C# (CSharp) Method

InsertChannel() private method

private InsertChannel ( Channel chan ) : SoundHandle
chan Channel
return SoundHandle
        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;
        }