Beispiel #1
0
        public void LoadStartBoostChannel(string fileName)
        {
            StartBoostChannelHandle = ChannelFactory.Create(fileName);

            if (!StartBoostChannelHandle.Valid)
            {
                throw new Exception("Failed to load start boost channel.");
            }


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

            StartBoostChannelSyncs.Add(
                new Sync(
                    StartBoostChannelHandle,
                    BASSSync.BASS_SYNC_END,
                    (handle, channel, data, user) =>
            {
                if (BoostChannelHandle != null)
                {
                    var volume = 0.0f;
                    Bass.BASS_ChannelGetAttribute(StartBoostChannelHandle.Handle, BASSAttribute.BASS_ATTRIB_VOL, ref volume);

                    if (volume > 0.0f)
                    {
                        Bass.BASS_ChannelSetAttribute(BoostChannelHandle.Handle, BASSAttribute.BASS_ATTRIB_VOL, MaximumVolume);
                    }

                    Bass.BASS_ChannelPlay(BoostChannelHandle.Handle, true);
                }
            }
                    )
                );
        }
Beispiel #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();
        }