예제 #1
0
        internal static string GetParagraph(string template, string start, string end, string text, string translation, int number, TimeCode duration, string timeCodeTemplate)
        {
            string d = duration.ToString();
            if (timeCodeTemplate == "ff" || timeCodeTemplate == "f")
                d = SubtitleFormat.MillisecondsToFrames(duration.TotalMilliseconds).ToString(CultureInfo.InvariantCulture);
            if (timeCodeTemplate == "zzz" || timeCodeTemplate == "zz" || timeCodeTemplate == "z")
                d = duration.TotalMilliseconds.ToString(CultureInfo.InvariantCulture);
            if (timeCodeTemplate == "sss" || timeCodeTemplate == "ss" || timeCodeTemplate == "s")
                d = duration.Seconds.ToString(CultureInfo.InvariantCulture);
            else if (timeCodeTemplate.EndsWith("ss.ff", StringComparison.Ordinal))
                d = string.Format("{0:00}.{1:00}", duration.Seconds, SubtitleFormat.MillisecondsToFramesMaxFrameRate(duration.Milliseconds));
            else if (timeCodeTemplate.EndsWith("ss:ff", StringComparison.Ordinal))
                d = string.Format("{0:00}:{1:00}", duration.Seconds, SubtitleFormat.MillisecondsToFramesMaxFrameRate(duration.Milliseconds));
            else if (timeCodeTemplate.EndsWith("ss,ff", StringComparison.Ordinal))
                d = string.Format("{0:00},{1:00}", duration.Seconds, SubtitleFormat.MillisecondsToFramesMaxFrameRate(duration.Milliseconds));
            else if (timeCodeTemplate.EndsWith("ss;ff", StringComparison.Ordinal))
                d = string.Format("{0:00};{1:00}", duration.Seconds, SubtitleFormat.MillisecondsToFramesMaxFrameRate(duration.Milliseconds));
            else if (timeCodeTemplate.EndsWith("ss;ff", StringComparison.Ordinal))
                d = string.Format("{0:00};{1:00}", duration.Seconds, SubtitleFormat.MillisecondsToFramesMaxFrameRate(duration.Milliseconds));
            else if (timeCodeTemplate.EndsWith("ss.zzz", StringComparison.Ordinal))
                d = string.Format("{0:00}.{1:000}", duration.Seconds, duration.Milliseconds);
            else if (timeCodeTemplate.EndsWith("ss:zzz", StringComparison.Ordinal))
                d = string.Format("{0:00}:{1:000}", duration.Seconds, duration.Milliseconds);
            else if (timeCodeTemplate.EndsWith("ss,zzz", StringComparison.Ordinal))
                d = string.Format("{0:00},{1:000}", duration.Seconds, duration.Milliseconds);
            else if (timeCodeTemplate.EndsWith("ss;zzz", StringComparison.Ordinal))
                d = string.Format("{0:00};{1:000}", duration.Seconds, duration.Milliseconds);
            else if (timeCodeTemplate.EndsWith("ss;zzz", StringComparison.Ordinal))
                d = string.Format("{0:00};{1:000}", duration.Seconds, duration.Milliseconds);
            else if (timeCodeTemplate.EndsWith("ss.zz", StringComparison.Ordinal))
                d = string.Format("{0:00}.{1:00}", duration.Seconds, Math.Round(duration.Milliseconds / 10.0));
            else if (timeCodeTemplate.EndsWith("ss:zz", StringComparison.Ordinal))
                d = string.Format("{0:00}:{1:00}", duration.Seconds, Math.Round(duration.Milliseconds / 10.0));
            else if (timeCodeTemplate.EndsWith("ss,zz", StringComparison.Ordinal))
                d = string.Format("{0:00},{1:00}", duration.Seconds, Math.Round(duration.Milliseconds / 10.0));
            else if (timeCodeTemplate.EndsWith("ss;zz", StringComparison.Ordinal))
                d = string.Format("{0:00};{1:00}", duration.Seconds, Math.Round(duration.Milliseconds / 10.0));

            string s = template;
            s = s.Replace("{{", "@@@@_@@@{");
            s = s.Replace("}}", "}@@@_@@@@");
            s = string.Format(s, start, end, text, translation, number + 1, number, d);
            s = s.Replace("@@@@_@@@", "{");
            s = s.Replace("@@@_@@@@", "}");
            return s;
        }
 /// <summary>
 /// The to time code.
 /// </summary>
 /// <param name="tc">
 /// The tc.
 /// </param>
 /// <returns>
 /// The <see cref="string"/>.
 /// </returns>
 private static string ToTimeCode(TimeCode tc)
 {
     int last = (int)(tc.Milliseconds / 10.0D + 0.5D);
     return tc.ToString().Substring(0, 8) + ":" + string.Format("{0:0#}", last);
 }
예제 #3
0
 public void SetTotalMilliseconds(double milliseconds)
 {
     if (Mode == TimeMode.HHMMSSMS)
     {
         if (milliseconds < 0)
             maskedTextBox1.Mask = "-00:00:00.000";
         else
             maskedTextBox1.Mask = "00:00:00.000";
         maskedTextBox1.Text = new TimeCode(milliseconds).ToString();
     }
     else
     {
         var tc = new TimeCode(milliseconds);
         maskedTextBox1.Text = tc.ToString().Substring(0, 9) + string.Format("{0:00}", Core.SubtitleFormats.SubtitleFormat.MillisecondsToFrames(tc.Milliseconds));
     }
 }
예제 #4
0
 public void SetTotalMilliseconds(double milliseconds)
 {
     if (UseVideoOffset)
     {
         milliseconds += Configuration.Settings.General.CurrentVideoOffsetInMs;
     }
     if (Mode == TimeMode.HHMMSSMS)
     {
         if (milliseconds < 0)
             maskedTextBox1.Mask = "-00:00:00.000";
         else
             maskedTextBox1.Mask = "00:00:00.000";
         maskedTextBox1.Text = new TimeCode(milliseconds).ToString();
     }
     else
     {
         var tc = new TimeCode(milliseconds);
         maskedTextBox1.Text = tc.ToString().Substring(0, 9) + string.Format("{0:00}", Core.SubtitleFormats.SubtitleFormat.MillisecondsToFrames(tc.Milliseconds));
     }
 }