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