Ejemplo n.º 1
0
        public void LoadJumpChannel(string fileName)
        {
            JumpChannelHandle = ChannelFactory.Create(fileName, BASSFlag.BASS_MUSIC_LOOP);

            if (!JumpChannelHandle.Valid)
            {
                throw new Exception("Failed to load the jump channel.");
            }

            Bass.BASS_ChannelSetAttribute(JumpChannelHandle.Handle, BASSAttribute.BASS_ATTRIB_VOL, 0f);

            JumpChannelSyncs.Add(
                new Sync(
                    JumpChannelHandle,
                    BASSSync.BASS_SYNC_SLIDE | BASSSync.BASS_SYNC_MIXTIME,
                    (handle, channel, data, user) =>
            {
                var volume = 0.0f;
                Bass.BASS_ChannelGetAttribute(JumpChannelHandle.Handle, BASSAttribute.BASS_ATTRIB_VOL, ref volume);

                if (volume >= MaximumVolume * 0.45f)
                {
                    Console.WriteLine("Will fade next frame.");
                    _fadeJumpNextFrame = true;
                }
            }
                    )
                );
        }
Ejemplo n.º 2
0
        public void Dispose()
        {
            StartLoopChannelSyncs.ForEach(sync => sync.Dispose());
            StartBoostChannelSyncs.ForEach(sync => sync.Dispose());
            StartJumpChannelSyncs.ForEach(sync => sync.Dispose());
            StartFlightChannelSyncs.ForEach(sync => sync.Dispose());
            LoopChannelSyncs.ForEach(sync => sync.Dispose());
            JumpChannelSyncs.ForEach(sync => sync.Dispose());
            FlightChannelSyncs.ForEach(sync => sync.Dispose());

            StartLoopChannelHandle?.Dispose();
            StartBoostChannelHandle?.Dispose();
            StartJumpChannelHandle?.Dispose();
            StartFlightChannelHandle?.Dispose();
            LoopChannelHandle?.Dispose();
            JumpChannelHandle?.Dispose();
            FlightChannelHandle?.Dispose();
        }