NScumm.Core.Audio.PCSpeakerDriver.SetupEffects C# (CSharp) Method

SetupEffects() private method

private SetupEffects ( MidiChannelPcSpk chan, EffectEnvelope env, EffectDefinition def, byte flags, byte data, int offset ) : void
chan MidiChannelPcSpk
env NScumm.Core.Audio.SoftSynth.EffectEnvelope
def EffectDefinition
flags byte
data byte
offset int
return void
        void SetupEffects(MidiChannelPcSpk chan, EffectEnvelope env, EffectDefinition def, byte flags, byte[] data, int offset)
        {
            def.phase = 0;
            def.useModWheel = (byte)(flags & 0x40);
            env.loop = (byte)(flags & 0x20);
            def.type = (short)(flags & 0x1F);

            env.modWheelSensitivity = 31;
            if (def.useModWheel != 0)
                env.modWheelState = (byte)(MidiChannelPcSpk.ModWheel >> 2);
            else
                env.modWheelState = 31;

            switch (def.type)
            {
                case 0:
                    env.maxLevel = 767;
                    env.startLevel = 383;
                    break;

                case 1:
                    env.maxLevel = 31;
                    env.startLevel = 15;
                    break;

                case 2:
                    env.maxLevel = 63;
                    env.startLevel = chan._out.unkB;
                    break;

                case 3:
                    env.maxLevel = 63;
                    env.startLevel = chan._out.unkC;
                    break;

                case 4:
                    env.maxLevel = 3;
                    env.startLevel = chan._instrument[4];
                    break;

                case 5:
                    env.maxLevel = 62;
                    env.startLevel = 31;
                    env.modWheelState = 0;
                    break;

                case 6:
                    env.maxLevel = 31;
                    env.startLevel = 0;
                    env.modWheelSensitivity = 0;
                    break;
            }

            StartEffect(env, data, offset);
        }