Movie - movie SubtitleList object into the Header object
This commit is contained in:
parent
29a0fa49f8
commit
a8b355c7d2
|
@ -91,9 +91,9 @@ namespace BizHawk.Client.Common
|
||||||
|
|
||||||
string GetInput(int frame); // Should be a property of a Record object
|
string GetInput(int frame); // Should be a property of a Record object
|
||||||
|
|
||||||
MovieHeader Header { get; } // Don't expose this!!!
|
MovieHeader Header { get; } // Expose IMovieHEader instead
|
||||||
MovieLog LogDump { get; } // Don't expose this!!!
|
MovieLog LogDump { get; } // Don't expose this!!!
|
||||||
SubtitleList Subtitles { get; } // Don't expose this!!!
|
//SubtitleList Subtitles { get; } // Don't expose this!!!
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,6 @@ namespace BizHawk.Client.Common
|
||||||
public Movie(bool startsFromSavestate = false)
|
public Movie(bool startsFromSavestate = false)
|
||||||
{
|
{
|
||||||
Header = new MovieHeader();
|
Header = new MovieHeader();
|
||||||
Subtitles = new SubtitleList();
|
|
||||||
Filename = String.Empty;
|
Filename = String.Empty;
|
||||||
_preloadFramecount = 0;
|
_preloadFramecount = 0;
|
||||||
StartsFromSavestate = startsFromSavestate;
|
StartsFromSavestate = startsFromSavestate;
|
||||||
|
@ -36,8 +35,7 @@ namespace BizHawk.Client.Common
|
||||||
|
|
||||||
#region Properties
|
#region Properties
|
||||||
public MovieHeader Header { get; private set; }
|
public MovieHeader Header { get; private set; }
|
||||||
public SubtitleList Subtitles { get; private set; }
|
|
||||||
|
|
||||||
public bool MakeBackup { get; set; }
|
public bool MakeBackup { get; set; }
|
||||||
public string Filename { get; set; }
|
public string Filename { get; set; }
|
||||||
public bool IsCountingRerecords { get; set; }
|
public bool IsCountingRerecords { get; set; }
|
||||||
|
@ -293,7 +291,7 @@ namespace BizHawk.Client.Common
|
||||||
|
|
||||||
if (str.StartsWith("subtitle") || str.StartsWith("sub"))
|
if (str.StartsWith("subtitle") || str.StartsWith("sub"))
|
||||||
{
|
{
|
||||||
Subtitles.AddFromString(str);
|
Header.Subtitles.AddFromString(str);
|
||||||
}
|
}
|
||||||
else if (str[0] == '|')
|
else if (str[0] == '|')
|
||||||
{
|
{
|
||||||
|
@ -751,20 +749,17 @@ namespace BizHawk.Client.Common
|
||||||
|
|
||||||
private void WriteText(Stream stream)
|
private void WriteText(Stream stream)
|
||||||
{
|
{
|
||||||
using (StreamWriter sw = new StreamWriter(stream))
|
using (var sw = new StreamWriter(stream))
|
||||||
{
|
{
|
||||||
sw.Write(Header.ToString());
|
sw.Write(Header.ToString());
|
||||||
|
|
||||||
//TODO: clean this up
|
// TODO: clean this up
|
||||||
if (_loopOffset.HasValue)
|
if (_loopOffset.HasValue)
|
||||||
{
|
{
|
||||||
sw.WriteLine("LoopOffset " + _loopOffset.ToString());
|
sw.WriteLine("LoopOffset " + _loopOffset.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var subtitle in Subtitles)
|
sw.Write(Header.Subtitles.ToString());
|
||||||
{
|
|
||||||
sw.WriteLine(subtitle.ToString());
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i < _log.Length; i++)
|
for (int i = 0; i < _log.Length; i++)
|
||||||
{
|
{
|
||||||
|
@ -836,7 +831,7 @@ namespace BizHawk.Client.Common
|
||||||
}
|
}
|
||||||
else if (str.StartsWith("subtitle") || str.StartsWith("sub"))
|
else if (str.StartsWith("subtitle") || str.StartsWith("sub"))
|
||||||
{
|
{
|
||||||
Subtitles.AddFromString(str);
|
Header.Subtitles.AddFromString(str);
|
||||||
}
|
}
|
||||||
else if (Header.AddHeaderFromLine(str))
|
else if (Header.AddHeaderFromLine(str))
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
using System.Collections.Generic;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
|
@ -18,6 +19,10 @@ namespace BizHawk.Client.Common
|
||||||
|
|
||||||
public Dictionary<string, string> BoardProperties = new Dictionary<string, string>();
|
public Dictionary<string, string> BoardProperties = new Dictionary<string, string>();
|
||||||
|
|
||||||
|
public SubtitleList Subtitles { get; private set; }
|
||||||
|
|
||||||
|
#region Header Constants
|
||||||
|
|
||||||
public const string EMULATIONVERSION = "emuVersion";
|
public const string EMULATIONVERSION = "emuVersion";
|
||||||
public const string MOVIEVERSION = "MovieVersion";
|
public const string MOVIEVERSION = "MovieVersion";
|
||||||
public const string PLATFORM = "Platform";
|
public const string PLATFORM = "Platform";
|
||||||
|
@ -46,21 +51,23 @@ namespace BizHawk.Client.Common
|
||||||
//Board properties
|
//Board properties
|
||||||
public const string BOARDPROPERTIES = "BoardProperty";
|
public const string BOARDPROPERTIES = "BoardProperty";
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
public static string MovieVersion = "BizHawk v0.0.1";
|
public static string MovieVersion = "BizHawk v0.0.1";
|
||||||
|
|
||||||
public static string MakeGUID()
|
public static string MakeGUID()
|
||||||
{
|
{
|
||||||
return System.Guid.NewGuid().ToString();
|
return Guid.NewGuid().ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
public MovieHeader() //All required fields will be set to default values
|
public MovieHeader() //All required fields will be set to default values
|
||||||
{
|
{
|
||||||
|
Subtitles = new SubtitleList();
|
||||||
HeaderParams.Add(EMULATIONVERSION, VersionInfo.GetEmuVersion());
|
HeaderParams.Add(EMULATIONVERSION, VersionInfo.GetEmuVersion());
|
||||||
HeaderParams.Add(MOVIEVERSION, MovieVersion);
|
HeaderParams.Add(MOVIEVERSION, MovieVersion);
|
||||||
HeaderParams.Add(PLATFORM, "");
|
HeaderParams.Add(PLATFORM, String.Empty);
|
||||||
HeaderParams.Add(GAMENAME, "");
|
HeaderParams.Add(GAMENAME, String.Empty);
|
||||||
HeaderParams.Add(AUTHOR, "");
|
HeaderParams.Add(AUTHOR, String.Empty);
|
||||||
HeaderParams.Add(RERECORDS, "0");
|
HeaderParams.Add(RERECORDS, "0");
|
||||||
HeaderParams.Add(GUID, MakeGUID());
|
HeaderParams.Add(GUID, MakeGUID());
|
||||||
}
|
}
|
||||||
|
|
|
@ -279,7 +279,7 @@ namespace BizHawk.Client.Common
|
||||||
length = line.Substring(first + 1, second - first - 1);
|
length = line.Substring(first + 1, second - first - 1);
|
||||||
}
|
}
|
||||||
string message = line.Substring(second + 1).Trim();
|
string message = line.Substring(second + 1).Trim();
|
||||||
m.Subtitles.AddFromString("subtitle " + frame + " 0 0 " + length + " FFFFFFFF " + message);
|
m.Header.Subtitles.AddFromString("subtitle " + frame + " 0 0 " + length + " FFFFFFFF " + message);
|
||||||
}
|
}
|
||||||
return m;
|
return m;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
namespace BizHawk.Client.Common
|
namespace BizHawk.Client.Common
|
||||||
{
|
{
|
||||||
|
@ -12,6 +13,13 @@ namespace BizHawk.Client.Common
|
||||||
return this.Where(t => frame >= t.Frame && frame <= t.Frame + t.Duration);
|
return this.Where(t => frame >= t.Frame && frame <= t.Frame + t.Duration);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
var sb = new StringBuilder();
|
||||||
|
ForEach(subtitle => sb.AppendLine(subtitle.ToString()));
|
||||||
|
return sb.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
public bool AddFromString(string subtitleStr)
|
public bool AddFromString(string subtitleStr)
|
||||||
{
|
{
|
||||||
if (!String.IsNullOrWhiteSpace(subtitleStr))
|
if (!String.IsNullOrWhiteSpace(subtitleStr))
|
||||||
|
|
|
@ -628,7 +628,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
if (Global.MovieSession.Movie.IsActive && Global.Config.DisplaySubtitles)
|
if (Global.MovieSession.Movie.IsActive && Global.Config.DisplaySubtitles)
|
||||||
{
|
{
|
||||||
var subList = Global.MovieSession.Movie.Subtitles.GetSubtitles(Global.Emulator.Frame).ToList();
|
var subList = Global.MovieSession.Movie.Header.Subtitles.GetSubtitles(Global.Emulator.Frame).ToList();
|
||||||
|
|
||||||
for (int i = 0; i < subList.Count; i++)
|
for (int i = 0; i < subList.Count; i++)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1850,14 +1850,15 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
private void AddSubtitleContextMenuItem_Click(object sender, EventArgs e)
|
private void AddSubtitleContextMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
//TODO: rethink this?
|
||||||
var subForm = new SubtitleMaker();
|
var subForm = new SubtitleMaker();
|
||||||
subForm.DisableFrame();
|
subForm.DisableFrame();
|
||||||
|
|
||||||
int index = -1;
|
int index = -1;
|
||||||
var sub = new Subtitle();
|
var sub = new Subtitle();
|
||||||
for (int x = 0; x < Global.MovieSession.Movie.Subtitles.Count; x++)
|
for (int x = 0; x < Global.MovieSession.Movie.Header.Subtitles.Count; x++)
|
||||||
{
|
{
|
||||||
sub = Global.MovieSession.Movie.Subtitles[x];
|
sub = Global.MovieSession.Movie.Header.Subtitles[x];
|
||||||
if (Global.Emulator.Frame == sub.Frame)
|
if (Global.Emulator.Frame == sub.Frame)
|
||||||
{
|
{
|
||||||
index = x;
|
index = x;
|
||||||
|
@ -1876,10 +1877,10 @@ namespace BizHawk.Client.EmuHawk
|
||||||
{
|
{
|
||||||
if (index >= 0)
|
if (index >= 0)
|
||||||
{
|
{
|
||||||
Global.MovieSession.Movie.Subtitles.RemoveAt(index);
|
Global.MovieSession.Movie.Header.Subtitles.RemoveAt(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
Global.MovieSession.Movie.Subtitles.Add(subForm.Sub);
|
Global.MovieSession.Movie.Header.Subtitles.Add(subForm.Sub);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,30 +51,30 @@ namespace BizHawk.Client.EmuHawk
|
||||||
{
|
{
|
||||||
if (!ReadOnly)
|
if (!ReadOnly)
|
||||||
{
|
{
|
||||||
_selectedMovie.Subtitles.Clear();
|
_selectedMovie.Header.Subtitles.Clear();
|
||||||
for (int x = 0; x < SubGrid.Rows.Count - 1; x++)
|
for (int i = 0; i < SubGrid.Rows.Count - 1; i++)
|
||||||
{
|
{
|
||||||
var s = new Subtitle();
|
var s = new Subtitle();
|
||||||
|
|
||||||
var c = SubGrid.Rows[x].Cells[0];
|
var c = SubGrid.Rows[i].Cells[0];
|
||||||
try { s.Frame = int.Parse(c.Value.ToString()); }
|
try { s.Frame = int.Parse(c.Value.ToString()); }
|
||||||
catch { ShowError(x, 0); return; }
|
catch { ShowError(i, 0); return; }
|
||||||
c = SubGrid.Rows[x].Cells[1];
|
c = SubGrid.Rows[i].Cells[1];
|
||||||
try { s.X = int.Parse(c.Value.ToString()); }
|
try { s.X = int.Parse(c.Value.ToString()); }
|
||||||
catch { ShowError(x, 1); return; }
|
catch { ShowError(i, 1); return; }
|
||||||
c = SubGrid.Rows[x].Cells[2];
|
c = SubGrid.Rows[i].Cells[2];
|
||||||
try { s.Y = int.Parse(c.Value.ToString()); }
|
try { s.Y = int.Parse(c.Value.ToString()); }
|
||||||
catch { ShowError(x, 2); return; }
|
catch { ShowError(i, 2); return; }
|
||||||
c = SubGrid.Rows[x].Cells[3];
|
c = SubGrid.Rows[i].Cells[3];
|
||||||
try { s.Duration = int.Parse(c.Value.ToString()); }
|
try { s.Duration = int.Parse(c.Value.ToString()); }
|
||||||
catch { ShowError(x, 3); return; }
|
catch { ShowError(i, 3); return; }
|
||||||
c = SubGrid.Rows[x].Cells[4];
|
c = SubGrid.Rows[i].Cells[4];
|
||||||
try { s.Color = uint.Parse(c.Value.ToString(), NumberStyles.HexNumber); }
|
try { s.Color = uint.Parse(c.Value.ToString(), NumberStyles.HexNumber); }
|
||||||
catch { ShowError(x, 4); return; }
|
catch { ShowError(i, 4); return; }
|
||||||
try { c = SubGrid.Rows[x].Cells[5]; }
|
try { c = SubGrid.Rows[i].Cells[5]; }
|
||||||
catch { ShowError(x, 5); return; }
|
catch { ShowError(i, 5); return; }
|
||||||
s.Message = c.Value.ToString();
|
s.Message = c.Value.ToString();
|
||||||
_selectedMovie.Subtitles.Add(s);
|
_selectedMovie.Header.Subtitles.Add(s);
|
||||||
}
|
}
|
||||||
_selectedMovie.Save();
|
_selectedMovie.Save();
|
||||||
}
|
}
|
||||||
|
@ -85,7 +85,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
{
|
{
|
||||||
_selectedMovie = m;
|
_selectedMovie = m;
|
||||||
var subs = new SubtitleList();
|
var subs = new SubtitleList();
|
||||||
subs.AddRange(m.Subtitles);
|
subs.AddRange(m.Header.Subtitles);
|
||||||
|
|
||||||
for (int x = 0; x < subs.Count; x++)
|
for (int x = 0; x < subs.Count; x++)
|
||||||
{
|
{
|
||||||
|
@ -150,7 +150,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
c = SubGrid.Rows[index].Cells[5];
|
c = SubGrid.Rows[index].Cells[5];
|
||||||
try { s.Message = c.Value.ToString(); }
|
try { s.Message = c.Value.ToString(); }
|
||||||
catch { }
|
catch { }
|
||||||
_selectedMovie.Subtitles.Add(s);
|
_selectedMovie.Header.Subtitles.Add(s);
|
||||||
|
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
|
@ -382,7 +382,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
DetailsView.Items.Add(FramesItem);
|
DetailsView.Items.Add(FramesItem);
|
||||||
|
|
||||||
CommentsBtn.Enabled = _movieList[firstIndex].Header.Comments.Any();
|
CommentsBtn.Enabled = _movieList[firstIndex].Header.Comments.Any();
|
||||||
SubtitlesBtn.Enabled = _movieList[firstIndex].Subtitles.Any();
|
SubtitlesBtn.Enabled = _movieList[firstIndex].Header.Subtitles.Any();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void button1_Click(object sender, EventArgs e)
|
private void button1_Click(object sender, EventArgs e)
|
||||||
|
|
Loading…
Reference in New Issue