public void AdjustDisplayTimeUsingSeconds(double seconds, ListView.SelectedIndexCollection selectedIndexes) { for (int i = 0; i < _paragraphs.Count; i++) { if (selectedIndexes == null || selectedIndexes.Contains(i)) { double nextStartMilliseconds = _paragraphs[_paragraphs.Count - 1].EndTime.TotalMilliseconds + TimeCode.BaseUnit; if (i + 1 < _paragraphs.Count) nextStartMilliseconds = _paragraphs[i + 1].StartTime.TotalMilliseconds; double newEndMilliseconds = _paragraphs[i].EndTime.TotalMilliseconds + (seconds * TimeCode.BaseUnit); if (newEndMilliseconds > nextStartMilliseconds) newEndMilliseconds = nextStartMilliseconds - 1; if (seconds < 0) { if (_paragraphs[i].StartTime.TotalMilliseconds + 100 > newEndMilliseconds) _paragraphs[i].EndTime.TotalMilliseconds = _paragraphs[i].StartTime.TotalMilliseconds + 100; else _paragraphs[i].EndTime.TotalMilliseconds = newEndMilliseconds; } else { _paragraphs[i].EndTime.TotalMilliseconds = newEndMilliseconds; } } } }
public void RecalculateDisplayTimes(double maxCharactersPerSecond, ListView.SelectedIndexCollection selectedIndexes) { for (int i = 0; i < _paragraphs.Count; i++) { if (selectedIndexes == null || selectedIndexes.Contains(i)) { Paragraph p = _paragraphs[i]; double duration = Utilities.GetOptimalDisplayMilliseconds(p.Text); p.EndTime.TotalMilliseconds = p.StartTime.TotalMilliseconds + duration; while (Utilities.GetCharactersPerSecond(p) > maxCharactersPerSecond) { duration++; p.EndTime.TotalMilliseconds = p.StartTime.TotalMilliseconds + duration; } Paragraph next = GetParagraphOrDefault(i + 1); if (next != null && p.StartTime.TotalMilliseconds + duration + Configuration.Settings.General.MinimumMillisecondsBetweenLines > next.StartTime.TotalMilliseconds) { p.EndTime.TotalMilliseconds = next.StartTime.TotalMilliseconds - Configuration.Settings.General.MinimumMillisecondsBetweenLines; if (p.Duration.TotalMilliseconds <= 0) p.EndTime.TotalMilliseconds = p.StartTime.TotalMilliseconds + 1; } } } }
public void AdjustDisplayTimeUsingPercent(double percent, ListView.SelectedIndexCollection selectedIndexes) { for (int i = 0; i < _paragraphs.Count; i++) { if (selectedIndexes == null || selectedIndexes.Contains(i)) { double nextStartMilliseconds = _paragraphs[_paragraphs.Count - 1].EndTime.TotalMilliseconds + TimeCode.BaseUnit; if (i + 1 < _paragraphs.Count) nextStartMilliseconds = _paragraphs[i + 1].StartTime.TotalMilliseconds; double newEndMilliseconds = _paragraphs[i].EndTime.TotalMilliseconds; newEndMilliseconds = _paragraphs[i].StartTime.TotalMilliseconds + (((newEndMilliseconds - _paragraphs[i].StartTime.TotalMilliseconds) * percent) / 100); if (newEndMilliseconds > nextStartMilliseconds) newEndMilliseconds = nextStartMilliseconds - 1; _paragraphs[i].EndTime.TotalMilliseconds = newEndMilliseconds; } } }