From a572935991bf4d8b369b2cbd42fcb09c69595fa2 Mon Sep 17 00:00:00 2001 From: adelikat Date: Thu, 24 Oct 2013 01:35:08 +0000 Subject: [PATCH] some detangling of Movie.cs and Mainform references, not done but windled it down quite a bit --- BizHawk.MultiClient/MainForm.MenuItems.cs | 3 +- BizHawk.MultiClient/MainForm.Movie.cs | 5 +++ BizHawk.MultiClient/MainForm.cs | 11 ++++--- BizHawk.MultiClient/movie/EditCommentsForm.cs | 2 +- .../movie/EditSubtitlesForm.cs | 3 +- BizHawk.MultiClient/movie/Movie.cs | 31 +++++++----------- BizHawk.MultiClient/movie/MovieImport.cs | 32 +++++++++---------- BizHawk.MultiClient/movie/PlayMovie.cs | 6 ++-- BizHawk.MultiClient/movie/RecordMovie.cs | 2 +- BizHawk.MultiClient/tools/StateVisualizer.cs | 2 +- BizHawk.MultiClient/tools/TAStudio.cs | 12 +++---- 11 files changed, 53 insertions(+), 56 deletions(-) diff --git a/BizHawk.MultiClient/MainForm.MenuItems.cs b/BizHawk.MultiClient/MainForm.MenuItems.cs index d40334a195..7bd96b557b 100644 --- a/BizHawk.MultiClient/MainForm.MenuItems.cs +++ b/BizHawk.MultiClient/MainForm.MenuItems.cs @@ -1044,6 +1044,7 @@ namespace BizHawk.MultiClient private void makeMovieBackupToolStripMenuItem_Click(object sender, EventArgs e) { + GlobalWinF.OSD.AddMessage("Backup movie saved."); GlobalWinF.MovieSession.Movie.WriteBackup(); } @@ -2179,7 +2180,7 @@ namespace BizHawk.MultiClient } else if (IsValidMovieExtension(ext)) { - Movie m = new Movie(filePaths[0]); + Movie m = new Movie(filePaths[0], GlobalWinF.MainForm.GetEmuVersion()); StartNewMovie(m, false); } diff --git a/BizHawk.MultiClient/MainForm.Movie.cs b/BizHawk.MultiClient/MainForm.Movie.cs index d5e9c0ae3e..77988f7361 100644 --- a/BizHawk.MultiClient/MainForm.Movie.cs +++ b/BizHawk.MultiClient/MainForm.Movie.cs @@ -46,11 +46,13 @@ namespace BizHawk.MultiClient } if (record) { + GlobalWinF.MainForm.ClearSaveRAM(); GlobalWinF.MovieSession.Movie.StartRecording(); ReadOnly = false; } else { + GlobalWinF.MainForm.ClearSaveRAM(); GlobalWinF.MovieSession.Movie.StartPlayback(); } SetMainformMovieInfo(); @@ -118,6 +120,7 @@ namespace BizHawk.MultiClient LoadStateFile(GlobalWinF.MovieSession.Movie.Filename, Path.GetFileName(GlobalWinF.MovieSession.Movie.Filename)); Global.Emulator.ResetFrameCounter(); } + GlobalWinF.MainForm.ClearSaveRAM(); GlobalWinF.MovieSession.Movie.StartPlayback(); SetMainformMovieInfo(); GlobalWinF.OSD.AddMessage("Replaying movie file in read-only mode"); @@ -416,6 +419,7 @@ namespace BizHawk.MultiClient var result = GlobalWinF.MovieSession.Movie.CheckTimeLines(reader, OnlyGUID: !ReadOnly, IgnoreGuidMismatch: false, ErrorMessage: out ErrorMSG); if (result == Movie.LoadStateResult.Pass) { + GlobalWinF.MainForm.ClearSaveRAM(); GlobalWinF.MovieSession.Movie.StartRecording(); SetMainformMovieInfo(); reader.BaseStream.Position = 0; @@ -435,6 +439,7 @@ namespace BizHawk.MultiClient var newresult = GlobalWinF.MovieSession.Movie.CheckTimeLines(reader, OnlyGUID: !ReadOnly, IgnoreGuidMismatch: true, ErrorMessage: out ErrorMSG); if (newresult == Movie.LoadStateResult.Pass) { + GlobalWinF.MainForm.ClearSaveRAM(); GlobalWinF.MovieSession.Movie.StartRecording(); SetMainformMovieInfo(); reader.BaseStream.Position = 0; diff --git a/BizHawk.MultiClient/MainForm.cs b/BizHawk.MultiClient/MainForm.cs index c1b69fcb71..fddad293ab 100644 --- a/BizHawk.MultiClient/MainForm.cs +++ b/BizHawk.MultiClient/MainForm.cs @@ -179,7 +179,8 @@ namespace BizHawk.MultiClient public MainForm(string[] args) { - GlobalWinF.MovieSession = new MovieSession { Movie = new Movie() }; + GlobalWinF.MainForm = this; + GlobalWinF.MovieSession = new MovieSession { Movie = new Movie(GlobalWinF.MainForm.GetEmuVersion()) }; MainWait = new AutoResetEvent(false); Icon = Properties.Resources.logo; InitializeComponent(); @@ -206,7 +207,7 @@ namespace BizHawk.MultiClient using (HawkFile NesCartFile = new HawkFile(Path.Combine(PathManager.GetExeDirectoryAbsolute(), "gamedb", "NesCarts.7z")).BindFirst()) return Util.ReadAllBytes(NesCartFile.GetStream()); }; - GlobalWinF.MainForm = this; + //Global.CoreComm = new CoreComm(); //SyncCoreCommInputSignals(); @@ -313,7 +314,7 @@ namespace BizHawk.MultiClient } else { - Movie m = new Movie(cmdMovie); + Movie m = new Movie(cmdMovie, GlobalWinF.MainForm.GetEmuVersion()); ReadOnly = true; // if user is dumping and didnt supply dump length, make it as long as the loaded movie if (autoDumpLength == 0) @@ -332,7 +333,7 @@ namespace BizHawk.MultiClient } else { - Movie m = new Movie(Global.Config.RecentMovies[0]); + Movie m = new Movie(Global.Config.RecentMovies[0], GlobalWinF.MainForm.GetEmuVersion()); StartNewMovie(m, false); } } @@ -765,7 +766,7 @@ namespace BizHawk.MultiClient private void LoadMoviesFromRecent(string path) { - Movie m = new Movie(path); + Movie m = new Movie(path, GetEmuVersion()); if (!m.Loaded) { diff --git a/BizHawk.MultiClient/movie/EditCommentsForm.cs b/BizHawk.MultiClient/movie/EditCommentsForm.cs index b071f5e57e..a98efdd2e4 100644 --- a/BizHawk.MultiClient/movie/EditCommentsForm.cs +++ b/BizHawk.MultiClient/movie/EditCommentsForm.cs @@ -6,7 +6,7 @@ namespace BizHawk.MultiClient public partial class EditCommentsForm : Form { public bool ReadOnly; - private Movie selectedMovie = new Movie(); + private Movie selectedMovie; public EditCommentsForm() { diff --git a/BizHawk.MultiClient/movie/EditSubtitlesForm.cs b/BizHawk.MultiClient/movie/EditSubtitlesForm.cs index 3cc761ece3..30d229a7af 100644 --- a/BizHawk.MultiClient/movie/EditSubtitlesForm.cs +++ b/BizHawk.MultiClient/movie/EditSubtitlesForm.cs @@ -10,8 +10,7 @@ namespace BizHawk.MultiClient public partial class EditSubtitlesForm : Form { public bool ReadOnly; - private Movie selectedMovie = new Movie(); - + private Movie selectedMovie; public EditSubtitlesForm() { diff --git a/BizHawk.MultiClient/movie/Movie.cs b/BizHawk.MultiClient/movie/Movie.cs index 119954b6f1..c70b34d5d9 100644 --- a/BizHawk.MultiClient/movie/Movie.cs +++ b/BizHawk.MultiClient/movie/Movie.cs @@ -10,19 +10,17 @@ namespace BizHawk.MultiClient { #region Constructors - public Movie(string filename) - : this() + public Movie(string filename, string version) + : this(version) { Rerecords = 0; Filename = filename; Loaded = filename.Length > 0; } - public Movie() + public Movie(string version) { - string version = GlobalWinF.MainForm != null ? GlobalWinF.MainForm.GetEmuVersion() : MainForm.EMUVERSION; Header = new MovieHeader(version); - Filename = String.Empty; preload_framecount = 0; StartsFromSavestate = false; @@ -237,7 +235,6 @@ namespace BizHawk.MultiClient /// public void StartRecording(bool truncate = true) { - GlobalWinF.MainForm.ClearSaveRAM(); Mode = MOVIEMODE.RECORD; if (Global.Config.EnableBackupMovies && MakeBackup && Log.Length > 0) { @@ -252,7 +249,6 @@ namespace BizHawk.MultiClient public void StartPlayback() { - GlobalWinF.MainForm.ClearSaveRAM(); Mode = MOVIEMODE.PLAY; } @@ -370,7 +366,6 @@ namespace BizHawk.MultiClient var directory_info = new FileInfo(BackupName).Directory; if (directory_info != null) Directory.CreateDirectory(directory_info.FullName); - GlobalWinF.OSD.AddMessage("Backup movie saved to " + BackupName); if (IsText) { WriteText(BackupName); @@ -516,17 +511,17 @@ namespace BizHawk.MultiClient changes = true; } - public void DeleteFrame(int frame) + public void DeleteFrame(int frame, bool isPaused) { if (frame <= StateLastIndex) { if (frame <= StateFirstIndex) { - RewindToFrame(0); + RewindToFrame(0, isPaused); } else { - RewindToFrame(frame); + RewindToFrame(frame, isPaused); } } Log.DeleteFrame(frame); @@ -567,7 +562,7 @@ namespace BizHawk.MultiClient } } - public void RewindToFrame(int frame) + public void RewindToFrame(int frame, bool isPaused) { if (Mode == MOVIEMODE.INACTIVE || Mode == MOVIEMODE.FINISHED) { @@ -578,10 +573,6 @@ namespace BizHawk.MultiClient if (frame <= Log.StateFirstIndex) { Global.Emulator.LoadStateBinary(new BinaryReader(new MemoryStream(Log.InitState))); - if (GlobalWinF.MainForm.EmulatorPaused && frame > 0) - { - GlobalWinF.MainForm.UnpauseEmulator(); - } if (MOVIEMODE.RECORD == Mode) { Mode = MOVIEMODE.PLAY; @@ -609,7 +600,7 @@ namespace BizHawk.MultiClient } else { - GlobalWinF.MainForm.UnpauseEmulator(); + GlobalWinF.MainForm.UnpauseEmulator(); /*TODO*/ } } @@ -684,7 +675,7 @@ namespace BizHawk.MultiClient { stateFrame = int.Parse(strs[1], NumberStyles.HexNumber); } - catch { GlobalWinF.OSD.AddMessage("Savestate Frame failed to parse"); } //TODO: message? + catch { } //TODO: message? } else if (line.Contains("Frame ")) { @@ -693,7 +684,7 @@ namespace BizHawk.MultiClient { stateFrame = int.Parse(strs[1]); } - catch { GlobalWinF.OSD.AddMessage("Savestate Frame failed to parse"); } //TODO: message? + catch { } //TODO: message? } if (line[0] == '|') { @@ -718,7 +709,7 @@ namespace BizHawk.MultiClient { stateFrame = int.Parse(strs[1], NumberStyles.HexNumber); } - catch { GlobalWinF.OSD.AddMessage("Savestate Frame failed to parse"); } //TODO: message? + catch { } //TODO: message? } else if (line.Contains("Frame ")) { diff --git a/BizHawk.MultiClient/movie/MovieImport.cs b/BizHawk.MultiClient/movie/MovieImport.cs index c7b32acd65..d3d2fe3ddd 100644 --- a/BizHawk.MultiClient/movie/MovieImport.cs +++ b/BizHawk.MultiClient/movie/MovieImport.cs @@ -35,9 +35,9 @@ namespace BizHawk.MultiClient // Attempt to import another type of movie file into a movie object. public static Movie ImportFile(string path, out string errorMsg, out string warningMsg) { - Movie m = new Movie(); - errorMsg = ""; - warningMsg = ""; + Movie m = new Movie(GlobalWinF.MainForm.GetEmuVersion()); + errorMsg = String.Empty; + warningMsg = String.Empty; string ext = path != null ? Path.GetExtension(path).ToUpper() : ""; try @@ -84,7 +84,7 @@ namespace BizHawk.MultiClient m = ImportZMV(path, out errorMsg, out warningMsg); break; } - if (errorMsg == "") + if (errorMsg == String.Empty) { m.Header.SetHeaderLine(MovieHeader.MOVIEVERSION, MovieHeader.MovieVersion); } @@ -290,7 +290,7 @@ namespace BizHawk.MultiClient { errorMsg = ""; warningMsg = ""; - Movie m = new Movie(path + "." + Global.Config.MovieExtension); + Movie m = new Movie(path + "." + Global.Config.MovieExtension, GlobalWinF.MainForm.GetEmuVersion()); FileInfo file = new FileInfo(path); StreamReader sr = file.OpenText(); string emulator = ""; @@ -472,7 +472,7 @@ namespace BizHawk.MultiClient { errorMsg = ""; warningMsg = ""; - Movie m = new Movie(path + "." + Global.Config.MovieExtension); + Movie m = new Movie(path + "." + Global.Config.MovieExtension, GlobalWinF.MainForm.GetEmuVersion()); FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read); BinaryReader r = new BinaryReader(fs); // 000 4-byte signature: 46 43 4D 1A "FCM\x1A" @@ -729,7 +729,7 @@ namespace BizHawk.MultiClient { errorMsg = ""; warningMsg = ""; - Movie m = new Movie(path + "." + Global.Config.MovieExtension); + Movie m = new Movie(path + "." + Global.Config.MovieExtension, GlobalWinF.MainForm.GetEmuVersion()); FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read); BinaryReader r = new BinaryReader(fs); // 000 4-byte signature: 46 4D 56 1A "FMV\x1A" @@ -872,7 +872,7 @@ namespace BizHawk.MultiClient { errorMsg = ""; warningMsg = ""; - Movie m = new Movie(path + "." + Global.Config.MovieExtension); + Movie m = new Movie(path + "." + Global.Config.MovieExtension, GlobalWinF.MainForm.GetEmuVersion()); FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read); BinaryReader r = new BinaryReader(fs); // 000 16-byte signature and format version: "Gens Movie TEST9" @@ -998,7 +998,7 @@ namespace BizHawk.MultiClient { errorMsg = ""; warningMsg = ""; - Movie m = new Movie(path + "." + Global.Config.MovieExtension); + Movie m = new Movie(path + "." + Global.Config.MovieExtension, GlobalWinF.MainForm.GetEmuVersion()); HawkFile hf = new HawkFile(path); // .LSMV movies are .zip files containing data files. if (!hf.IsArchive) @@ -1231,7 +1231,7 @@ namespace BizHawk.MultiClient { errorMsg = ""; warningMsg = ""; - Movie m = new Movie(path + "." + Global.Config.MovieExtension); + Movie m = new Movie(path + "." + Global.Config.MovieExtension, GlobalWinF.MainForm.GetEmuVersion()); FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read); BinaryReader r = new BinaryReader(fs); // 000 8-byte "MDFNMOVI" signature @@ -1355,7 +1355,7 @@ namespace BizHawk.MultiClient { errorMsg = ""; warningMsg = ""; - Movie m = new Movie(path + "." + Global.Config.MovieExtension); + Movie m = new Movie(path + "." + Global.Config.MovieExtension, GlobalWinF.MainForm.GetEmuVersion()); FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read); BinaryReader r = new BinaryReader(fs); // 0000: 4-byte signature: "MMV\0" @@ -1472,7 +1472,7 @@ namespace BizHawk.MultiClient { errorMsg = ""; warningMsg = ""; - Movie m = new Movie(path + "." + Global.Config.MovieExtension); + Movie m = new Movie(path + "." + Global.Config.MovieExtension, GlobalWinF.MainForm.GetEmuVersion()); FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read); BinaryReader r = new BinaryReader(fs); // 000 4-byte signature: 4E 53 53 1A "NSS\x1A" @@ -1702,7 +1702,7 @@ namespace BizHawk.MultiClient { errorMsg = ""; warningMsg = ""; - Movie m = new Movie(path + "." + Global.Config.MovieExtension); + Movie m = new Movie(path + "." + Global.Config.MovieExtension, GlobalWinF.MainForm.GetEmuVersion()); FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read); BinaryReader r = new BinaryReader(fs); // 000 4-byte signature: 53 4D 56 1A "SMV\x1A" @@ -1976,7 +1976,7 @@ namespace BizHawk.MultiClient { errorMsg = ""; warningMsg = ""; - Movie m = new Movie(path + "." + Global.Config.MovieExtension); + Movie m = new Movie(path + "." + Global.Config.MovieExtension, GlobalWinF.MainForm.GetEmuVersion()); FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read); BinaryReader r = new BinaryReader(fs); // 000 4-byte signature: 56 42 4D 1A "VBM\x1A" @@ -2249,7 +2249,7 @@ namespace BizHawk.MultiClient { errorMsg = ""; warningMsg = ""; - Movie m = new Movie(path + "." + Global.Config.MovieExtension); + Movie m = new Movie(path + "." + Global.Config.MovieExtension, GlobalWinF.MainForm.GetEmuVersion()); FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read); BinaryReader r = new BinaryReader(fs); // 000 12-byte signature: "VirtuaNES MV" @@ -2470,7 +2470,7 @@ namespace BizHawk.MultiClient { errorMsg = ""; warningMsg = ""; - Movie m = new Movie(path + "." + Global.Config.MovieExtension); + Movie m = new Movie(path + "." + Global.Config.MovieExtension, GlobalWinF.MainForm.GetEmuVersion()); FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read); BinaryReader r = new BinaryReader(fs); // 000 3-byte signature: 5A 4D 56 "ZMV" diff --git a/BizHawk.MultiClient/movie/PlayMovie.cs b/BizHawk.MultiClient/movie/PlayMovie.cs index aabff08a0a..acfde6c7cb 100644 --- a/BizHawk.MultiClient/movie/PlayMovie.cs +++ b/BizHawk.MultiClient/movie/PlayMovie.cs @@ -95,7 +95,7 @@ namespace BizHawk.MultiClient { if (file.Extension.ToUpper() == "STATE") { - Movie m = new Movie(file.FullName); + Movie m = new Movie(file.FullName, GlobalWinF.MainForm.GetEmuVersion()); m.LoadMovie(); //State files will have to load everything unfortunately if (m.Frames == 0) { @@ -124,7 +124,7 @@ namespace BizHawk.MultiClient int x = IsDuplicate(filename); if (x == 0) { - Movie m = new Movie(file.CanonicalFullPath); + Movie m = new Movie(file.CanonicalFullPath, GlobalWinF.MainForm.GetEmuVersion()); m.LoadMovie(); //State files will have to load everything unfortunately if (m.Frames > 0) { @@ -176,7 +176,7 @@ namespace BizHawk.MultiClient private void PreLoadMovieFile(HawkFile path, bool force) { - Movie m = new Movie(path.CanonicalFullPath); + Movie m = new Movie(path.CanonicalFullPath, GlobalWinF.MainForm.GetEmuVersion()); m.PreLoadText(); if (path.Extension == ".FM2") { diff --git a/BizHawk.MultiClient/movie/RecordMovie.cs b/BizHawk.MultiClient/movie/RecordMovie.cs index c9ad3f1ed0..c11eeacf13 100644 --- a/BizHawk.MultiClient/movie/RecordMovie.cs +++ b/BizHawk.MultiClient/movie/RecordMovie.cs @@ -58,7 +58,7 @@ namespace BizHawk.MultiClient } - MovieToRecord = new Movie(path); + MovieToRecord = new Movie(path, GlobalWinF.MainForm.GetEmuVersion()); //Header MovieToRecord.Header.SetHeaderLine(MovieHeader.AUTHOR, AuthorBox.Text); diff --git a/BizHawk.MultiClient/tools/StateVisualizer.cs b/BizHawk.MultiClient/tools/StateVisualizer.cs index bd656c453b..e9711f9ab1 100644 --- a/BizHawk.MultiClient/tools/StateVisualizer.cs +++ b/BizHawk.MultiClient/tools/StateVisualizer.cs @@ -21,7 +21,7 @@ namespace BizHawk.MultiClient string path = PathManager.SaveStatePrefix(Global.Game) + "." + name + ".State"; if (File.Exists(path)) { - Movie m = new Movie(); + Movie m = new Movie(GlobalWinF.MainForm.GetEmuVersion()); m.LoadLogFromSavestateText(path); AddLog(m.LogDump, i); } diff --git a/BizHawk.MultiClient/tools/TAStudio.cs b/BizHawk.MultiClient/tools/TAStudio.cs index 5e32a1a494..6ca17eed48 100644 --- a/BizHawk.MultiClient/tools/TAStudio.cs +++ b/BizHawk.MultiClient/tools/TAStudio.cs @@ -269,7 +269,7 @@ namespace BizHawk.MultiClient } else { - GlobalWinF.MovieSession.Movie.RewindToFrame(Global.Emulator.Frame - 1); + GlobalWinF.MovieSession.Movie.RewindToFrame(Global.Emulator.Frame - 1, GlobalWinF.MainForm.EmulatorPaused); } UpdateValues(); } @@ -427,11 +427,11 @@ namespace BizHawk.MultiClient if (TASView.selectedItem <= GlobalWinF.MovieSession.Movie.StateLastIndex) { stopOnFrame = 0; - GlobalWinF.MovieSession.Movie.RewindToFrame(TASView.selectedItem); + GlobalWinF.MovieSession.Movie.RewindToFrame(TASView.selectedItem, GlobalWinF.MainForm.EmulatorPaused); } else { - GlobalWinF.MovieSession.Movie.RewindToFrame(GlobalWinF.MovieSession.Movie.StateLastIndex); + GlobalWinF.MovieSession.Movie.RewindToFrame(GlobalWinF.MovieSession.Movie.StateLastIndex, GlobalWinF.MainForm.EmulatorPaused); stopOnFrame = TASView.selectedItem; GlobalWinF.MainForm.PressFrameAdvance = true; } @@ -480,7 +480,7 @@ namespace BizHawk.MultiClient if (e.Delta > 0) //Scroll up { - GlobalWinF.MovieSession.Movie.RewindToFrame(Global.Emulator.Frame - 1); + GlobalWinF.MovieSession.Movie.RewindToFrame(Global.Emulator.Frame - 1, GlobalWinF.MainForm.EmulatorPaused); } else if (e.Delta < 0) //Scroll down { @@ -548,7 +548,7 @@ namespace BizHawk.MultiClient ListView.SelectedIndexCollection list = TASView.SelectedIndices; foreach (object t in list) { - GlobalWinF.MovieSession.Movie.DeleteFrame(list[0]); //TODO: this doesn't allow of non-continuous deletion, instead it should iterate from last to first and remove the iterated value + GlobalWinF.MovieSession.Movie.DeleteFrame(list[0], GlobalWinF.MainForm.EmulatorPaused); //TODO: this doesn't allow of non-continuous deletion, instead it should iterate from last to first and remove the iterated value } UpdateValues(); @@ -741,7 +741,7 @@ namespace BizHawk.MultiClient { ClipboardEntry entry = new ClipboardEntry {Frame = list[i], Inputstr = GlobalWinF.MovieSession.Movie.GetInput(list[i])}; Clipboard.Add(entry); - GlobalWinF.MovieSession.Movie.DeleteFrame(list[0]); + GlobalWinF.MovieSession.Movie.DeleteFrame(list[0], GlobalWinF.MainForm.EmulatorPaused); } UpdateValues();