From f886b65015d75befa07e1df2cf9172189a4c9da4 Mon Sep 17 00:00:00 2001 From: "andres.delikat" Date: Mon, 4 Jul 2011 00:49:37 +0000 Subject: [PATCH] Write subtitles to movie files --- BizHawk.MultiClient/movie/Movie.cs | 5 +++++ BizHawk.MultiClient/movie/SubtitleList.cs | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/BizHawk.MultiClient/movie/Movie.cs b/BizHawk.MultiClient/movie/Movie.cs index 7c0f5cd879..b226bb6a5b 100644 --- a/BizHawk.MultiClient/movie/Movie.cs +++ b/BizHawk.MultiClient/movie/Movie.cs @@ -191,6 +191,11 @@ namespace BizHawk.MultiClient sw.WriteLine(kvp.Key + " " + kvp.Value); } + for (int x = 0; x < Subtitles.Count(); x++) + { + sw.WriteLine(Subtitles.GetSubtitleText(x)); + } + for (int x = 0; x < length; x++) { sw.WriteLine(Log.GetFrame(x)); diff --git a/BizHawk.MultiClient/movie/SubtitleList.cs b/BizHawk.MultiClient/movie/SubtitleList.cs index 570b42dd70..7af9f57a79 100644 --- a/BizHawk.MultiClient/movie/SubtitleList.cs +++ b/BizHawk.MultiClient/movie/SubtitleList.cs @@ -33,6 +33,25 @@ namespace BizHawk.MultiClient return subs[index]; } + public string GetSubtitleText(int index) + { + if (index >= subs.Count || index < 0) return ""; + + StringBuilder sb = new StringBuilder("subtitle "); + sb.Append(subs[index].Frame.ToString()); + sb.Append(" "); + sb.Append(subs[index].X.ToString()); + sb.Append(" "); + sb.Append(subs[index].Y.ToString()); + sb.Append(" "); + sb.Append(subs[index].Duration.ToString()); + sb.Append(" "); + sb.Append(subs[index].Color.ToString()); + sb.Append(" "); + sb.Append(subs[index].Message); + return sb.ToString(); + } + /// /// Manages the logic of what subtitle should be displayed on any given frame based on frame & duration ///