BizHawk/BizHawk.Client.Common/movie/bk2/Bk2Movie.HeaderApi.cs

185 lines
3.3 KiB
C#
Raw Normal View History

2014-06-13 00:15:55 +00:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BizHawk.Client.Common
{
public partial class Bk2Movie : IMovie
{
2014-06-13 00:43:55 +00:00
private readonly Bk2Header Header = new Bk2Header();
2014-06-13 00:15:55 +00:00
public IDictionary<string, string> HeaderEntries
{
2014-06-13 00:43:55 +00:00
get { return Header; }
2014-06-13 00:15:55 +00:00
}
2014-06-13 11:30:25 +00:00
public SubtitleList Subtitles { get; private set; }
public IList<string> Comments { get; private set; }
2014-06-13 00:15:55 +00:00
public string SyncSettingsJson
{
2014-06-13 00:43:55 +00:00
get { return Header[HeaderKeys.SYNCSETTINGS]; }
set { Header[HeaderKeys.SYNCSETTINGS] = value; }
2014-06-13 00:15:55 +00:00
}
public string SavestateBinaryBase64Blob
{
get
{
2014-06-13 00:43:55 +00:00
if (Header.ContainsKey(HeaderKeys.SAVESTATEBINARYBASE64BLOB))
{
return Header[HeaderKeys.SAVESTATEBINARYBASE64BLOB];
}
return null;
2014-06-13 00:15:55 +00:00
}
set
{
2014-06-13 00:43:55 +00:00
if (value == null)
{
Header.Remove(HeaderKeys.SAVESTATEBINARYBASE64BLOB);
}
else
{
Header.Add(HeaderKeys.SAVESTATEBINARYBASE64BLOB, value);
}
2014-06-13 00:15:55 +00:00
}
}
public ulong Rerecords
{
get
{
2014-06-13 00:43:55 +00:00
if (!Header.ContainsKey(HeaderKeys.RERECORDS))
{
Header[HeaderKeys.RERECORDS] = "0";
}
return ulong.Parse(Header[HeaderKeys.RERECORDS]);
2014-06-13 00:15:55 +00:00
}
set
{
2014-06-13 00:43:55 +00:00
Header[HeaderKeys.RERECORDS] = value.ToString();
2014-06-13 00:15:55 +00:00
}
}
public bool StartsFromSavestate
{
get
{
2014-06-13 00:43:55 +00:00
if (Header.ContainsKey(HeaderKeys.STARTSFROMSAVESTATE))
{
return bool.Parse(Header[HeaderKeys.STARTSFROMSAVESTATE]);
}
return false;
2014-06-13 00:15:55 +00:00
}
set
{
2014-06-13 00:43:55 +00:00
if (value)
{
Header.Add(HeaderKeys.STARTSFROMSAVESTATE, "True");
}
else
{
Header.Remove(HeaderKeys.STARTSFROMSAVESTATE);
}
2014-06-13 00:15:55 +00:00
}
}
public string GameName
{
get
{
2014-06-13 00:43:55 +00:00
if (Header.ContainsKey(HeaderKeys.GAMENAME))
{
return Header[HeaderKeys.GAMENAME];
}
return string.Empty;
2014-06-13 00:15:55 +00:00
}
set
{
2014-06-13 00:43:55 +00:00
Header[HeaderKeys.GAMENAME] = value;
2014-06-13 00:15:55 +00:00
}
}
public string SystemID
{
get
{
2014-06-13 00:43:55 +00:00
if (Header.ContainsKey(HeaderKeys.PLATFORM))
{
return Header[HeaderKeys.PLATFORM];
}
return string.Empty;
2014-06-13 00:15:55 +00:00
}
set
{
2014-06-13 00:43:55 +00:00
Header[HeaderKeys.PLATFORM] = value;
2014-06-13 00:15:55 +00:00
}
}
public string Hash
{
2014-06-13 00:43:55 +00:00
get { return Header[HeaderKeys.SHA1]; }
set { Header[HeaderKeys.SHA1] = value; }
2014-06-13 00:15:55 +00:00
}
public string Author
{
2014-06-13 00:43:55 +00:00
get { return Header[HeaderKeys.AUTHOR]; }
set { Header[HeaderKeys.AUTHOR] = value; }
2014-06-13 00:15:55 +00:00
}
public string Core
{
2014-06-13 00:43:55 +00:00
get { return Header[HeaderKeys.CORE]; }
set { Header[HeaderKeys.CORE] = value; }
2014-06-13 00:15:55 +00:00
}
public string Platform
{
2014-06-13 00:43:55 +00:00
get { return Header[HeaderKeys.PLATFORM]; }
set { Header[HeaderKeys.PLATFORM] = value; }
2014-06-13 00:15:55 +00:00
}
public string BoardName
{
2014-06-13 00:43:55 +00:00
get { return Header[HeaderKeys.BOARDNAME]; }
set { Header[HeaderKeys.BOARDNAME] = value; }
2014-06-13 00:15:55 +00:00
}
public string EmulatorVersion
{
2014-06-13 00:43:55 +00:00
get { return Header[HeaderKeys.EMULATIONVERSION]; }
set { Header[HeaderKeys.EMULATIONVERSION] = value; }
2014-06-13 00:15:55 +00:00
}
public string FirmwareHash
{
2014-06-13 00:43:55 +00:00
get { return Header[HeaderKeys.FIRMWARESHA1]; }
set { Header[HeaderKeys.FIRMWARESHA1] = value; }
2014-06-13 00:15:55 +00:00
}
2014-06-13 11:30:25 +00:00
private string CommentsString()
{
StringBuilder sb = new StringBuilder();
foreach(var comment in Comments)
{
sb.AppendLine(comment);
}
return sb.ToString();
}
2014-06-13 00:15:55 +00:00
}
}