some detangling of Movie.cs and Mainform references, not done but windled it down quite a bit

This commit is contained in:
adelikat 2013-10-24 01:35:08 +00:00
parent de19802d25
commit a572935991
11 changed files with 53 additions and 56 deletions

View File

@ -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);
}

View File

@ -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;

View File

@ -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)
{

View File

@ -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()
{

View File

@ -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()
{

View File

@ -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
/// <param name="truncate"></param>
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 "))
{

View File

@ -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"

View File

@ -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")
{

View File

@ -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);

View File

@ -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);
}

View File

@ -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();