コード例 #1
0
        private void UpdateFade()
        {
            switch (FadeState)
            {
            case MusicFadeStates.FadingOut:
            case MusicFadeStates.FadingIn:
                if (FadeRemaining > 0)
                {
                    FadeRemaining--;
                }
                Volume = this.FadeVolume;
                if (FadeRemaining == 0)
                {
                    if (FadeState == MusicFadeStates.FadingOut)
                    {
                        FadeState = MusicFadeStates.FadedOut;
                    }
                    else
                    {
                        FadeState = MusicFadeStates.FadedIn;
                    }
                }
                break;

            case MusicFadeStates.FadedOut:
            case MusicFadeStates.FadedIn:
                if (FadeState == MusicFadeStates.FadedOut)
                {
                    Pause();
                }

                EndFade();
                break;
            }
        }
コード例 #2
0
        public void FadeIn(int time)
        {
            // If already fading out, adjust fadeout time to keep the
            // current volume the same
            if (this.IsFadeOut)
            {
                FadeRemaining = time - ((FadeRemaining * time) / FadeTime);
            }
            else if (this.IsFadeIn)
            {
                FadeRemaining = (FadeRemaining * time) / FadeTime;
            }
            else
            {
                FadeRemaining = time;
            }
            FadeTime = time;

            FadeState = MusicFadeStates.FadingIn;
            Volume    = this.FadeVolume;
            RefreshVolume();
        }
コード例 #3
0
 private void EndFade()
 {
     FadeRemaining = 0;
     FadeState     = MusicFadeStates.None;
     Volume        = this.FadeVolume;
 }