More progress on the movie class, basic movie file writing. Survives round trip testing

This commit is contained in:
andres.delikat 2011-02-25 22:26:13 +00:00
parent a5dc7e90b3
commit c59b9ff6ce
5 changed files with 53 additions and 8 deletions

View File

@ -128,6 +128,7 @@ namespace BizHawk.MultiClient
//p.ShowDialog(); //p.ShowDialog();
//Hacky testing //Hacky testing
InputLog.LoadMovie();
InputLog.WriteMovie(); InputLog.WriteMovie();
} }

View File

@ -62,39 +62,65 @@ namespace BizHawk.MultiClient
} }
private string ParseHeader(string line, string headerName)
{
string str;
int x = line.LastIndexOf(headerName) + headerName.Length;
str = line.Substring(x + 1, line.Length - x - 1);
return str;
}
private bool LoadText() private bool LoadText()
{ {
var file = new FileInfo(Filename); var file = new FileInfo(Filename);
if (file.Exists == false)
return false;
else
{
Header.Clear();
Log.Clear();
}
using (StreamReader sr = file.OpenText()) using (StreamReader sr = file.OpenText())
{ {
string str = ""; string str = "";
while ((str = sr.ReadLine()) != null) while ((str = sr.ReadLine()) != null)
{ {
if (str.Contains(MovieHeader.EMULATIONVERSION)) if (str == "")
{ {
continue;
}
else if (str.Contains(MovieHeader.EMULATIONVERSION))
{
str = ParseHeader(str, MovieHeader.EMULATIONVERSION);
Header.AddHeaderLine(MovieHeader.EMULATIONVERSION, str);
} }
else if (str.Contains(MovieHeader.MOVIEVERSION)) else if (str.Contains(MovieHeader.MOVIEVERSION))
{ {
str = ParseHeader(str, MovieHeader.MOVIEVERSION);
Header.AddHeaderLine(MovieHeader.MOVIEVERSION, str);
} }
else if (str.Contains(MovieHeader.PLATFORM)) else if (str.Contains(MovieHeader.PLATFORM))
{ {
str = ParseHeader(str, MovieHeader.PLATFORM);
Header.AddHeaderLine(MovieHeader.PLATFORM, str);
} }
else if (str.Contains(MovieHeader.GAMENAME)) else if (str.Contains(MovieHeader.GAMENAME))
{ {
str = ParseHeader(str, MovieHeader.GAMENAME);
Header.AddHeaderLine(MovieHeader.GAMENAME, str);
} }
else if (str[0] == '|') else if (str[0] == '|')
{ {
Log.AddFrame(str); //TODO: validate proper formatting
} }
else else
{ {
//Something has gone wrong here! //TODO: Something has gone wrong here!
} }
} }
} }

View File

@ -44,7 +44,9 @@ namespace BizHawk.MultiClient
/// <param name="value"></param> /// <param name="value"></param>
public void AddHeaderLine(string key, string value) //TODO: check for redundancy and return bool? public void AddHeaderLine(string key, string value) //TODO: check for redundancy and return bool?
{ {
if (!HeaderParams.TryGetValue(key, out value)) //TODO: does a failed attempt mess with value? string temp = value;
if (!HeaderParams.TryGetValue(key, out temp)) //TODO: does a failed attempt mess with value?
HeaderParams.Add(key, value); HeaderParams.Add(key, value);
} }
@ -53,6 +55,11 @@ namespace BizHawk.MultiClient
return HeaderParams.Remove(key); return HeaderParams.Remove(key);
} }
public void Clear()
{
HeaderParams.Clear();
}
public string GetHeaderLine(string key) public string GetHeaderLine(string key)
{ {
string value = ""; string value = "";

View File

@ -17,6 +17,11 @@ namespace BizHawk.MultiClient
} }
public void Clear()
{
MovieRecords.Clear();
}
public int GetMovieLength() public int GetMovieLength()
{ {
return MovieRecords.Count; return MovieRecords.Count;

View File

@ -0,0 +1,6 @@
EmulationVersion v1.0.0
MovieVersion v1.0.0
Platform PCE
GameName Bonk.pce
|........|0|