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; } } ) ); }
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(); }