Пример #1
0
        public static int PlaySound(ESounds Sound)
        {
            string file = Path.Combine(Environment.CurrentDirectory, CSettings.sFolderSounds);

            switch (Sound)
            {
            case ESounds.T440:
                file = Path.Combine(file, CSettings.sSoundT440);
                break;

            default:
                break;
            }

            if (file == String.Empty)
            {
                return(-1);
            }

            int   stream = CSound.Load(file);
            float length = CSound.GetLength(stream);

            CSound.Play(stream);
            CSound.FadeAndStop(stream, 100f, length);
            return(stream);
        }
Пример #2
0
        public static void Next()
        {
            if (_AllFileNames.Count > 0)
            {
                if (_PreviousMusicIndex == _PreviousFileNames.Count - 1 || _PreviousFileNames.Count == 0) //We are not currently in the previous list
                {
                    Stop();
                    if (_NotPlayedFileNames.Count == 0)
                    {
                        _NotPlayedFileNames.AddRange(_AllFileNames);
                    }

                    _CurrentPlaylistElement = _NotPlayedFileNames[CGame.Rand.Next(_NotPlayedFileNames.Count)];
                    _NotPlayedFileNames.Remove(_CurrentPlaylistElement);

                    _PreviousFileNames.Add(_CurrentPlaylistElement);
                    _PreviousMusicIndex = _PreviousFileNames.Count - 1;
                }
                else if (_PreviousFileNames.Count > 0) //We are in the previous list
                {
                    Stop();
                    _PreviousMusicIndex++;

                    _CurrentPlaylistElement = _PreviousFileNames[_PreviousMusicIndex];
                }
                _CurrentMusicStream = CSound.Load(_CurrentPlaylistElement.MusicFilePath);
                CSound.SetStreamVolumeMax(_CurrentMusicStream, CConfig.BackgroundMusicVolume);

                //Seek to #Start-Tag, if found
                if (_CurrentPlaylistElement.Start != 0f)
                {
                    CSound.SetPosition(_CurrentMusicStream, _CurrentPlaylistElement.Start);
                }

                if (_VideoEnabled)
                {
                    LoadVideo();
                }
                CSound.SetStreamVolume(_CurrentMusicStream, 0f);
                Play();
            }
            else
            {
                Stop();
            }
        }
Пример #3
0
        public static void Previous()
        {
            if (_PreviousFileNames.Count > 0 || _PreviousMusicIndex >= 0)
            {
                float pos = CSound.GetPosition(_CurrentMusicStream);
                if (CSound.GetPosition(_CurrentMusicStream) >= 1.5f)
                {
                    CSound.SetPosition(_CurrentMusicStream, 0);
                    if (_VideoEnabled && _Video != -1)
                    {
                        CVideo.VdSkip(_Video, 0f, _CurrentPlaylistElement.VideoGap);
                    }
                }
                else
                {
                    Stop();
                    _PreviousMusicIndex--;
                    if (_PreviousMusicIndex < 0)
                    {
                        _PreviousMusicIndex = 0; //No previous songs left, so play the first
                    }
                    _CurrentPlaylistElement = _PreviousFileNames[_PreviousMusicIndex];

                    _CurrentMusicStream = CSound.Load(_CurrentPlaylistElement.MusicFilePath);
                    CSound.SetStreamVolumeMax(_CurrentMusicStream, CConfig.BackgroundMusicVolume);
                    if (_VideoEnabled)
                    {
                        LoadVideo();
                    }
                    CSound.SetStreamVolume(_CurrentMusicStream, 0f);
                    Play();
                }
            }
            else if (_CurrentMusicStream != -1)
            {
                CSound.SetPosition(_CurrentMusicStream, 0);
                if (_VideoEnabled && _Video != -1)
                {
                    CVideo.VdSkip(_Video, 0f, _CurrentPlaylistElement.VideoGap);
                }
            }
        }
Пример #4
0
        public static void Next()
        {
            if (_AllFileNames.Count > 0)
            {
                Stop();

                if (_NotPlayedFileNames.Count == 0)
                {
                    _NotPlayedFileNames.AddRange(_AllFileNames);
                }

                _CurrentMusicFilePath = _NotPlayedFileNames[CGame.Rand.Next(_NotPlayedFileNames.Count)];
                _NotPlayedFileNames.Remove(_CurrentMusicFilePath);

                _CurrentMusicStream = CSound.Load(_CurrentMusicFilePath);
                CSound.SetStreamVolume(_CurrentMusicStream, 0f);
                Play();
            }
            else
            {
                Stop();
            }
        }
Пример #5
0
 public int Load(string soundFile, bool loop = false, bool prescan = false)
 {
     return(CSound.Load(soundFile, loop, prescan));
 }