示例#1
0
 public SubTitle(SubTitle sub)
 {
     this.Time         = sub.Time;
     this.Text         = sub.Text;
     this.Color        = sub.Color;
     this.WarningColor = sub.WarningColor;
     this.WarningTime  = sub.WarningTime;
 }
示例#2
0
        /// <summary>
        /// Compare the parameter time to subtitles one by one.
        /// </summary>
        /// <param name="actualTime">Stopwatch actuel timer to compare w</param>
        /// <returns>Return the nearest subtitle</returns>
        SubTitle findNearestSubtitle(TimeSpan actualTime)
        {
            SubTitle nearest = new SubTitle();

            foreach (SubTitle subTitle in subTitles)
            {
                var time   = TimeSpan.Parse(subTitle.Time);
                int result = TimeSpan.Compare(actualTime, time);
                // if actual time is greater or equal to the subtitle time, the subtitle is actually  the nearest.
                if (result == 1 || result == 0)
                {
                    nearest = subTitle;
                }
            }

            return(nearest);
        }
示例#3
0
        /// <summary>
        /// Rebuild subtitles list taking into account warning subtitles
        /// </summary>
        void buildWarningSubtitles()
        {
            List <SubTitle> newSubTitles = new List <SubTitle>();

            for (int i = 0; i < subTitles.Count; i++)
            {
                newSubTitles.Add(new SubTitle(subTitles[i]));
                if (subTitles[i].WarningTime != null && i < subTitles.Count - 1)
                {
                    var      offset  = TimeSpan.Parse(subTitles[i].WarningTime);
                    var      endTime = TimeSpan.Parse(subTitles[i + 1].Time);
                    var      calc    = endTime.Duration() - offset.Duration();
                    SubTitle warning = new SubTitle(subTitles[i]);
                    warning.Color = warning.WarningColor;
                    warning.Time  = String.Format("{0:00}:{1:00}:{2:00}", calc.Hours, calc.Minutes, calc.Seconds);
                    newSubTitles.Add(new SubTitle(warning));
                }
            }

            subTitles = new List <SubTitle>(newSubTitles);
        }