Exemplo n.º 1
0
        public static void Update()
        {
            if (_AllFileNames.Count > 0 && _CurrentMusicStream != -1)
            {
                float timeToPlay;
                if (_CurrentPlaylistElement.Finish == 0f) //No End-Tag defined
                {
                    timeToPlay = CSound.GetLength(_CurrentMusicStream) - CSound.GetPosition(_CurrentMusicStream);
                }
                else //End-Tag found
                {
                    timeToPlay = _CurrentPlaylistElement.Finish - CSound.GetPosition(_CurrentMusicStream);
                }

                bool finished = CSound.IsFinished(_CurrentMusicStream);
                if (_Playing && (timeToPlay <= CSettings.BackgroundMusicFadeTime || finished))
                {
                    if (_RepeatSong)
                    {
                        CSound.SetPosition(_CurrentMusicStream, 0);
                        if (_VideoEnabled && _Video != -1)
                        {
                            CVideo.VdSkip(_Video, 0f, _CurrentPlaylistElement.VideoGap);
                        }
                    }
                    else
                    {
                        Next();
                    }
                }
            }
        }
Exemplo n.º 2
0
 public static void Update()
 {
     if (_AllFileNames.Count > 0 && _CurrentMusicStream != -1)
     {
         float timeToPlay = CSound.GetLength(_CurrentMusicStream) - CSound.GetPosition(_CurrentMusicStream);
         bool  finished   = CSound.IsFinished(_CurrentMusicStream);
         if (_Playing && (timeToPlay <= CSettings.BackgroundMusicFadeTime || finished))
         {
             Next();
         }
     }
 }
Exemplo n.º 3
0
        public static void Pause()
        {
            if (!_Playing)
            {
                return;
            }

            if (_VideoEnabled && _Video != -1)
            {
                CVideo.VdPause(_Video);
                CVideo.VdSkip(_Video, CSound.GetPosition(_CurrentMusicStream) + CSettings.BackgroundMusicFadeTime, _CurrentPlaylistElement.VideoGap);
            }
            CSound.FadeAndPause(_CurrentMusicStream, 0f, CSettings.BackgroundMusicFadeTime);
            _Playing = false;
        }
Exemplo n.º 4
0
 public static STexture GetVideoTexture()
 {
     if (_Video != -1)
     {
         float vtime = 0f;
         CVideo.VdGetFrame(_Video, ref _CurrentVideoTexture, CSound.GetPosition(_CurrentMusicStream), ref vtime);
         if (_FadeTimer.ElapsedMilliseconds <= 3000L)
         {
             _CurrentVideoTexture.color.A = (_FadeTimer.ElapsedMilliseconds / 3000f);
         }
         else
         {
             _CurrentVideoTexture.color.A = 1f;
             _FadeTimer.Stop();
         }
         return(_CurrentVideoTexture);
     }
     return(new STexture(-1));
 }
Exemplo n.º 5
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);
                }
            }
        }
Exemplo n.º 6
0
 public float GetPosition(int soundStream)
 {
     return(CSound.GetPosition(soundStream));
 }