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

176 lines
3.1 KiB
C#

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