From 373231379c5434fa3fe7ae3b8f35937a480279d0 Mon Sep 17 00:00:00 2001 From: adelikat Date: Wed, 11 Jun 2014 21:20:23 +0000 Subject: [PATCH] Movies 2.0 work - play movie dialog is now complete IMovie based and no specific implementation --- BizHawk.Client.Common/movie/bk2/Movie2.cs | 8 ++++++++ BizHawk.Client.Common/movie/bkm/Movie.cs | 8 ++++++++ .../movie/interfaces/IMovie.cs | 5 +++++ .../movie/tasproj/TasMovie.cs | 18 +++++++++++++----- BizHawk.Client.EmuHawk/movie/PlayMovie.cs | 4 +--- 5 files changed, 35 insertions(+), 8 deletions(-) diff --git a/BizHawk.Client.Common/movie/bk2/Movie2.cs b/BizHawk.Client.Common/movie/bk2/Movie2.cs index 847c58903e..1c084623c2 100644 --- a/BizHawk.Client.Common/movie/bk2/Movie2.cs +++ b/BizHawk.Client.Common/movie/bk2/Movie2.cs @@ -146,6 +146,14 @@ namespace BizHawk.Client.Common } } + public IDictionary HeaderEntries + { + get + { + throw new NotImplementedException(); + } + } + public bool IsActive { get { return _mode != Moviemode.Inactive; } diff --git a/BizHawk.Client.Common/movie/bkm/Movie.cs b/BizHawk.Client.Common/movie/bkm/Movie.cs index a9c3debb1c..2f7bf94468 100644 --- a/BizHawk.Client.Common/movie/bkm/Movie.cs +++ b/BizHawk.Client.Common/movie/bkm/Movie.cs @@ -146,6 +146,14 @@ namespace BizHawk.Client.Common } } + public IDictionary HeaderEntries + { + get + { + return Header; + } + } + public string PreferredExtension { get { return "bkm"; } } // Movies 2.0 TODO: delete me diff --git a/BizHawk.Client.Common/movie/interfaces/IMovie.cs b/BizHawk.Client.Common/movie/interfaces/IMovie.cs index 666c54274b..e66df868d9 100644 --- a/BizHawk.Client.Common/movie/interfaces/IMovie.cs +++ b/BizHawk.Client.Common/movie/interfaces/IMovie.cs @@ -66,6 +66,11 @@ namespace BizHawk.Client.Common string SystemID { get; set; } string Hash { get; set; } bool PreLoadText(HawkFile hawkFile); // Movies 2.0 TODO: find a better way to not need this + + /// + /// Returns header key value pairs stored in the movie file + /// + IDictionary HeaderEntries { get; } #endregion diff --git a/BizHawk.Client.Common/movie/tasproj/TasMovie.cs b/BizHawk.Client.Common/movie/tasproj/TasMovie.cs index 407713447a..4b23fd8688 100644 --- a/BizHawk.Client.Common/movie/tasproj/TasMovie.cs +++ b/BizHawk.Client.Common/movie/tasproj/TasMovie.cs @@ -71,11 +71,6 @@ namespace BizHawk.Client.Common #region IMovie Implementation - public bool PreLoadText(HawkFile hawkFile) - { - throw new NotImplementedException(); - } - public TasMovie(string filename, bool startsFromSavestate = false) : this(startsFromSavestate) { @@ -194,6 +189,19 @@ namespace BizHawk.Client.Common } } + public bool PreLoadText(HawkFile hawkFile) + { + throw new NotImplementedException(); + } + + public IDictionary HeaderEntries + { + get + { + return Header; + } + } + public string Filename { get; set; } public MovieHeader Header { get; private set; } diff --git a/BizHawk.Client.EmuHawk/movie/PlayMovie.cs b/BizHawk.Client.EmuHawk/movie/PlayMovie.cs index ff9a15f10b..16a96ecf88 100644 --- a/BizHawk.Client.EmuHawk/movie/PlayMovie.cs +++ b/BizHawk.Client.EmuHawk/movie/PlayMovie.cs @@ -14,7 +14,6 @@ namespace BizHawk.Client.EmuHawk { public partial class PlayMovie : Form { - // Movies 2.0 TODO: this is hopelessly Movie.cs specific, make it generic, private List _movieList = new List(); private bool _sortReverse; private string _sortedCol; @@ -446,8 +445,7 @@ namespace BizHawk.Client.EmuHawk var firstIndex = MovieView.SelectedIndices[0]; MovieView.ensureVisible(firstIndex); - // Movies 2.0 TODO - what responsibility should a mvoie implementation have here? - foreach (var kvp in (_movieList[firstIndex] as Movie).Header) + foreach (var kvp in _movieList[firstIndex].HeaderEntries) { var item = new ListViewItem(kvp.Key); item.SubItems.Add(kvp.Value);