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();
            }
        }
        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);
                }
            }
        }
Exemple #3
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();
            }
        }
Exemple #4
0
 public void SetStreamVolume(int soundStream, int volume)
 {
     CSound.SetStreamVolume(soundStream, volume);
 }
Exemple #5
0
 public static void ApplyVolume()
 {
     CSound.SetStreamVolume(_CurrentMusicStream, CConfig.BackgroundMusicVolume);
 }