Some more movie 2.0 progress
This commit is contained in:
parent
a682c667dd
commit
5d31fb2b3c
|
@ -148,6 +148,7 @@
|
|||
<Compile Include="movie\MnemonicGenerators\NesMnemonicGenerator.cs" />
|
||||
<Compile Include="movie\MnemonicsGenerator.cs" />
|
||||
<Compile Include="movie\MovieImport.cs" />
|
||||
<Compile Include="movie\MovieLoader.cs" />
|
||||
<Compile Include="movie\MovieMnemonics.cs" />
|
||||
<Compile Include="movie\MovieSession.cs" />
|
||||
<Compile Include="movie\MultitrackRecording.cs" />
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace BizHawk.Client.Common
|
||||
{
|
||||
public static class MovieLoader
|
||||
{
|
||||
public static IMovie Load(string path)
|
||||
{
|
||||
// TODO: open the file and determine the format, and instantiate the appropriate implementation
|
||||
// Currently we just assume it is a bkm implementation
|
||||
return new Movie(path);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -128,6 +128,19 @@ namespace BizHawk.Client.Common
|
|||
}
|
||||
}
|
||||
|
||||
public string Hash
|
||||
{
|
||||
get
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsActive
|
||||
{
|
||||
get { return _mode != Moviemode.Inactive; }
|
||||
|
|
|
@ -47,12 +47,12 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public SubtitleList Subtitles
|
||||
{
|
||||
get { return (Header as MovieHeader).Subtitles; }
|
||||
get { return Header.Subtitles; }
|
||||
}
|
||||
|
||||
public IList<string> Comments
|
||||
{
|
||||
get { return (Header as MovieHeader).Comments; }
|
||||
get { return Header.Comments; }
|
||||
}
|
||||
|
||||
public string SyncSettingsJson
|
||||
|
@ -72,12 +72,12 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
get
|
||||
{
|
||||
return (Header as MovieHeader).SavestateBinaryBase64Blob;
|
||||
return Header.SavestateBinaryBase64Blob;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
(Header as MovieHeader).SavestateBinaryBase64Blob = value;
|
||||
Header.SavestateBinaryBase64Blob = value;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -85,12 +85,12 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
get
|
||||
{
|
||||
return (Header as MovieHeader).Rerecords;
|
||||
return Header.Rerecords;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
(Header as MovieHeader).Rerecords = value;
|
||||
Header.Rerecords = value;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -98,12 +98,12 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
get
|
||||
{
|
||||
return (Header as MovieHeader).StartsFromSavestate;
|
||||
return Header.StartsFromSavestate;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
(Header as MovieHeader).StartsFromSavestate = value;
|
||||
Header.StartsFromSavestate = value;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -111,12 +111,12 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
get
|
||||
{
|
||||
return (Header as MovieHeader).GameName;
|
||||
return Header.GameName;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
(Header as MovieHeader).GameName = value;
|
||||
Header.GameName = value;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -124,12 +124,25 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
get
|
||||
{
|
||||
return (Header as MovieHeader).SystemID;
|
||||
return Header.SystemID;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
(Header as MovieHeader).SystemID = value;
|
||||
Header.SystemID = value;
|
||||
}
|
||||
}
|
||||
|
||||
public string Hash
|
||||
{
|
||||
get
|
||||
{
|
||||
return Header[HeaderKeys.SHA1];
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
Header[HeaderKeys.SHA1] = value;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -420,8 +433,11 @@ namespace BizHawk.Client.Common
|
|||
line = sbLine.ToString();
|
||||
|
||||
if (string.IsNullOrWhiteSpace(line) || Header.ParseLineFromFile(line))
|
||||
{
|
||||
continue;
|
||||
(Header as MovieHeader).Comments.Add(line);
|
||||
}
|
||||
|
||||
Header.Comments.Add(line);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -475,7 +491,7 @@ namespace BizHawk.Client.Common
|
|||
}
|
||||
else
|
||||
{
|
||||
(Header as MovieHeader).Comments.Add(line);
|
||||
Header.Comments.Add(line);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -63,7 +63,7 @@ namespace BizHawk.Client.Common
|
|||
bool StartsFromSavestate { get; set; }
|
||||
string GameName { get; set; }
|
||||
string SystemID { get; set; }
|
||||
|
||||
string Hash { get; set; }
|
||||
#endregion
|
||||
|
||||
#region File Handling API
|
||||
|
|
|
@ -88,12 +88,12 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public SubtitleList Subtitles
|
||||
{
|
||||
get { return (Header as MovieHeader).Subtitles; }
|
||||
get { return Header.Subtitles; }
|
||||
}
|
||||
|
||||
public IList<string> Comments
|
||||
{
|
||||
get { return (Header as MovieHeader).Comments; }
|
||||
get { return Header.Comments; }
|
||||
}
|
||||
|
||||
public string SyncSettingsJson
|
||||
|
@ -113,12 +113,12 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
get
|
||||
{
|
||||
return (Header as MovieHeader).SavestateBinaryBase64Blob;
|
||||
return Header.SavestateBinaryBase64Blob;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
(Header as MovieHeader).SavestateBinaryBase64Blob = value;
|
||||
Header.SavestateBinaryBase64Blob = value;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -126,12 +126,12 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
get
|
||||
{
|
||||
return (Header as MovieHeader).Rerecords;
|
||||
return Header.Rerecords;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
(Header as MovieHeader).Rerecords = value;
|
||||
Header.Rerecords = value;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -139,12 +139,12 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
get
|
||||
{
|
||||
return (Header as MovieHeader).StartsFromSavestate;
|
||||
return Header.StartsFromSavestate;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
(Header as MovieHeader).StartsFromSavestate = value;
|
||||
Header.StartsFromSavestate = value;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -152,12 +152,12 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
get
|
||||
{
|
||||
return (Header as MovieHeader).GameName;
|
||||
return Header.GameName;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
(Header as MovieHeader).GameName = value;
|
||||
Header.GameName = value;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -165,12 +165,25 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
get
|
||||
{
|
||||
return (Header as MovieHeader).SystemID;
|
||||
return Header.SystemID;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
(Header as MovieHeader).SystemID = value;
|
||||
Header.SystemID = value;
|
||||
}
|
||||
}
|
||||
|
||||
public string Hash
|
||||
{
|
||||
get
|
||||
{
|
||||
return Header[HeaderKeys.SHA1];
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
Header[HeaderKeys.SHA1] = value;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -401,7 +414,7 @@ namespace BizHawk.Client.Common
|
|||
string line;
|
||||
while ((line = tr.ReadLine()) != null)
|
||||
if (!Header.ParseLineFromFile(line))
|
||||
(Header as MovieHeader).Comments.Add(line);
|
||||
Header.Comments.Add(line);
|
||||
});
|
||||
bl.GetLump(BinaryStateLump.Input, true,
|
||||
delegate(TextReader tr)
|
||||
|
|
|
@ -145,16 +145,17 @@ namespace BizHawk.Client.EmuHawk
|
|||
return null;
|
||||
}
|
||||
|
||||
private Movie PreLoadMovieFile(HawkFile hf, bool force)
|
||||
private IMovie PreLoadMovieFile(HawkFile hf, bool force)
|
||||
{
|
||||
var movie = new Movie(hf.CanonicalFullPath);
|
||||
// Movies 2.0 TODO: don't cast and find a way to load this stuff with only IMovie!
|
||||
var movie = (MovieLoader.Load(hf.CanonicalFullPath) as Movie);
|
||||
|
||||
try
|
||||
{
|
||||
movie.PreLoadText(hf);
|
||||
|
||||
// Don't do this from browse
|
||||
if (movie.Header[HeaderKeys.SHA1] == Global.Game.Hash ||
|
||||
if (movie.Hash == Global.Game.Hash ||
|
||||
Global.Config.PlayMovie_MatchHash == false || force)
|
||||
{
|
||||
return movie;
|
||||
|
|
Loading…
Reference in New Issue