Exemple #1
0
        public float GetTimeUntilFinished(WingroveGroupInformation.HandleRepeatingAudio handleRepeat)
        {
            float timeRemaining =
                (m_audioClipSource.GetAudioClip().samples - m_currentPosition) /
                (float)(m_audioClipSource.GetAudioClip().frequency *GetMixPitch());

            if (m_audioClipSource.GetLooping())
            {
                switch (handleRepeat)
                {
                case WingroveGroupInformation.HandleRepeatingAudio.IgnoreRepeatingAudio:
                    timeRemaining = 0.0f;
                    break;

                case WingroveGroupInformation.HandleRepeatingAudio.ReturnFloatMax:
                case WingroveGroupInformation.HandleRepeatingAudio.ReturnNegativeOne:
                    timeRemaining = float.MaxValue;
                    break;

                case WingroveGroupInformation.HandleRepeatingAudio.GiveTimeUntilLoop:
                default:
                    break;
                }
            }
            if (m_currentState == CueState.PlayingFadeOut)
            {
                if (m_fadeSpeed != 0)
                {
                    timeRemaining = Mathf.Min(m_fadeT / m_fadeSpeed, timeRemaining);
                }
            }
            return(timeRemaining);
        }
Exemple #2
0
        public float GetTimeUntilFinished(WingroveGroupInformation.HandleRepeatingAudio handleRepeats)
        {
            float result = 0.0f;

            foreach (ActiveCue cue in m_currentActiveCues)
            {
                result = Mathf.Max(cue.GetTimeUntilFinished(handleRepeats), result);
            }
            return(result);
        }