move MovieSession from Global to GlobalWin

This commit is contained in:
adelikat 2020-06-07 13:07:09 -05:00
parent 8c5538405f
commit c4c820fad3
13 changed files with 64 additions and 64 deletions

View File

@ -2,7 +2,6 @@
{
public static class Global
{
public static IMovieSession MovieSession { get; set; }
public static InputManager InputManager { get; } = new InputManager();
}
}

View File

@ -28,7 +28,7 @@ namespace BizHawk.Client.EmuHawk
public void SetFromMnemonicStr(string inputLogEntry)
{
var controller = Global.MovieSession.GenerateMovieController();
var controller = GlobalWin.MovieSession.GenerateMovieController();
try
{
controller.SetFromMnemonic(inputLogEntry);

View File

@ -18,18 +18,18 @@ namespace BizHawk.Client.EmuHawk
private readonly Action<string> LogCallback;
public bool StartsFromSavestate() => Global.MovieSession.Movie.IsActive() && Global.MovieSession.Movie.StartsFromSavestate;
public bool StartsFromSavestate() => GlobalWin.MovieSession.Movie.IsActive() && GlobalWin.MovieSession.Movie.StartsFromSavestate;
public bool StartsFromSaveram() => Global.MovieSession.Movie.IsActive() && Global.MovieSession.Movie.StartsFromSaveRam;
public bool StartsFromSaveram() => GlobalWin.MovieSession.Movie.IsActive() && GlobalWin.MovieSession.Movie.StartsFromSaveRam;
public IDictionary<string, object> GetInput(int frame, int? controller = null)
{
if (Global.MovieSession.Movie.NotActive())
if (GlobalWin.MovieSession.Movie.NotActive())
{
LogCallback("No movie loaded");
return null;
}
var adapter = Global.MovieSession.Movie.GetInputState(frame);
var adapter = GlobalWin.MovieSession.Movie.GetInputState(frame);
if (adapter == null)
{
LogCallback("Can't get input of the last frame of the movie. Use the previous frame");
@ -41,79 +41,79 @@ namespace BizHawk.Client.EmuHawk
public string GetInputAsMnemonic(int frame)
{
if (Global.MovieSession.Movie.NotActive() || frame >= Global.MovieSession.Movie.InputLogLength)
if (GlobalWin.MovieSession.Movie.NotActive() || frame >= GlobalWin.MovieSession.Movie.InputLogLength)
{
return string.Empty;
}
var lg = Global.MovieSession.Movie.LogGeneratorInstance(
Global.MovieSession.Movie.GetInputState(frame));
var lg = GlobalWin.MovieSession.Movie.LogGeneratorInstance(
GlobalWin.MovieSession.Movie.GetInputState(frame));
return lg.GenerateLogEntry();
}
public void Save(string filename = null)
{
if (Global.MovieSession.Movie.NotActive())
if (GlobalWin.MovieSession.Movie.NotActive())
{
return;
}
if (!string.IsNullOrEmpty(filename))
{
filename += $".{Global.MovieSession.Movie.PreferredExtension}";
filename += $".{GlobalWin.MovieSession.Movie.PreferredExtension}";
if (new FileInfo(filename).Exists)
{
LogCallback($"File {filename} already exists, will not overwrite");
return;
}
Global.MovieSession.Movie.Filename = filename;
GlobalWin.MovieSession.Movie.Filename = filename;
}
Global.MovieSession.Movie.Save();
GlobalWin.MovieSession.Movie.Save();
}
public Dictionary<string, string> GetHeader()
{
var table = new Dictionary<string, string>();
if (Global.MovieSession.Movie.NotActive())
if (GlobalWin.MovieSession.Movie.NotActive())
{
return table;
}
foreach (var kvp in Global.MovieSession.Movie.HeaderEntries) table[kvp.Key] = kvp.Value;
foreach (var kvp in GlobalWin.MovieSession.Movie.HeaderEntries) table[kvp.Key] = kvp.Value;
return table;
}
public List<string> GetComments() => Global.MovieSession.Movie.Comments.ToList();
public List<string> GetComments() => GlobalWin.MovieSession.Movie.Comments.ToList();
public List<string> GetSubtitles() =>
Global.MovieSession.Movie.Subtitles
GlobalWin.MovieSession.Movie.Subtitles
.Select(s => s.ToString())
.ToList();
public string Filename() => Global.MovieSession.Movie.Filename;
public string Filename() => GlobalWin.MovieSession.Movie.Filename;
public bool GetReadOnly() => Global.MovieSession.ReadOnly;
public bool GetReadOnly() => GlobalWin.MovieSession.ReadOnly;
public ulong GetRerecordCount() => Global.MovieSession.Movie.Rerecords;
public ulong GetRerecordCount() => GlobalWin.MovieSession.Movie.Rerecords;
public bool GetRerecordCounting() => Global.MovieSession.Movie.IsCountingRerecords;
public bool GetRerecordCounting() => GlobalWin.MovieSession.Movie.IsCountingRerecords;
public bool IsLoaded() => Global.MovieSession.Movie.IsActive();
public bool IsLoaded() => GlobalWin.MovieSession.Movie.IsActive();
public int Length() => Global.MovieSession.Movie.FrameCount;
public int Length() => GlobalWin.MovieSession.Movie.FrameCount;
public string Mode() => Global.MovieSession.Movie.Mode.ToString().ToUpper();
public string Mode() => GlobalWin.MovieSession.Movie.Mode.ToString().ToUpper();
public void SetReadOnly(bool readOnly) => Global.MovieSession.ReadOnly = readOnly;
public void SetReadOnly(bool readOnly) => GlobalWin.MovieSession.ReadOnly = readOnly;
public void SetRerecordCount(ulong count) => Global.MovieSession.Movie.Rerecords = count;
public void SetRerecordCount(ulong count) => GlobalWin.MovieSession.Movie.Rerecords = count;
public void SetRerecordCounting(bool counting) => Global.MovieSession.Movie.IsCountingRerecords = counting;
public void SetRerecordCounting(bool counting) => GlobalWin.MovieSession.Movie.IsCountingRerecords = counting;
public void Stop() => Global.MovieSession.StopMovie();
public void Stop() => GlobalWin.MovieSession.StopMovie();
public double GetFps()
{
var movie = Global.MovieSession.Movie;
var movie = GlobalWin.MovieSession.Movie;
if (movie.NotActive())
{
return default;

View File

@ -67,24 +67,24 @@ namespace BizHawk.Client.EmuHawk
private string MakeFrameCounter()
{
if (Global.MovieSession.Movie.IsFinished())
if (GlobalWin.MovieSession.Movie.IsFinished())
{
var sb = new StringBuilder();
sb
.Append(GlobalWin.Emulator.Frame)
.Append('/')
.Append(Global.MovieSession.Movie.FrameCount)
.Append(GlobalWin.MovieSession.Movie.FrameCount)
.Append(" (Finished)");
return sb.ToString();
}
if (Global.MovieSession.Movie.IsPlayingOrFinished())
if (GlobalWin.MovieSession.Movie.IsPlayingOrFinished())
{
var sb = new StringBuilder();
sb
.Append(GlobalWin.Emulator.Frame)
.Append('/')
.Append(Global.MovieSession.Movie.FrameCount);
.Append(GlobalWin.MovieSession.Movie.FrameCount);
return sb.ToString();
}
@ -188,7 +188,7 @@ namespace BizHawk.Client.EmuHawk
public string InputStrMovie()
{
return MakeStringFor(Global.MovieSession.MovieController);
return MakeStringFor(GlobalWin.MovieSession.MovieController);
}
public string InputStrImmediate()
@ -198,9 +198,9 @@ namespace BizHawk.Client.EmuHawk
public string InputPrevious()
{
if (Global.MovieSession.Movie.IsPlayingOrRecording())
if (GlobalWin.MovieSession.Movie.IsPlayingOrRecording())
{
var state = Global.MovieSession.Movie.GetInputState(GlobalWin.Emulator.Frame - 1);
var state = GlobalWin.MovieSession.Movie.GetInputState(GlobalWin.Emulator.Frame - 1);
if (state != null)
{
return MakeStringFor(state);
@ -214,9 +214,9 @@ namespace BizHawk.Client.EmuHawk
{
IController m = Global.InputManager.AutofireStickyXorAdapter;
if (Global.MovieSession.Movie.IsPlayingOrRecording() && GlobalWin.Emulator.Frame > 0)
if (GlobalWin.MovieSession.Movie.IsPlayingOrRecording() && GlobalWin.Emulator.Frame > 0)
{
m = m.Or(Global.MovieSession.Movie.GetInputState(GlobalWin.Emulator.Frame - 1));
m = m.Or(GlobalWin.MovieSession.Movie.GetInputState(GlobalWin.Emulator.Frame - 1));
}
return MakeStringFor(m);
@ -229,11 +229,11 @@ namespace BizHawk.Client.EmuHawk
public string MakeIntersectImmediatePrevious()
{
if (Global.MovieSession.Movie.IsActive())
if (GlobalWin.MovieSession.Movie.IsActive())
{
var m = Global.MovieSession.Movie.IsPlayingOrRecording()
? Global.MovieSession.Movie.GetInputState(GlobalWin.Emulator.Frame - 1)
: Global.MovieSession.MovieController;
var m = GlobalWin.MovieSession.Movie.IsPlayingOrRecording()
? GlobalWin.MovieSession.Movie.GetInputState(GlobalWin.Emulator.Frame - 1)
: GlobalWin.MovieSession.MovieController;
return MakeStringFor(Global.InputManager.AutofireStickyXorAdapter.And(m));
}
@ -243,8 +243,8 @@ namespace BizHawk.Client.EmuHawk
public string MakeRerecordCount()
{
return Global.MovieSession.Movie.IsActive()
? Global.MovieSession.Movie.Rerecords.ToString()
return GlobalWin.MovieSession.Movie.IsActive()
? GlobalWin.MovieSession.Movie.Rerecords.ToString()
: "";
}
@ -272,8 +272,8 @@ namespace BizHawk.Client.EmuHawk
if (GlobalWin.Config.DisplayInput && !GlobalWin.Game.IsNullInstance())
{
if (Global.MovieSession.Movie.IsPlaying()
|| (Global.MovieSession.Movie.IsFinished() && GlobalWin.Emulator.Frame == Global.MovieSession.Movie.InputLogLength)) // Account for the last frame of the movie, the movie state is immediately "Finished" here but we still want to show the input
if (GlobalWin.MovieSession.Movie.IsPlaying()
|| (GlobalWin.MovieSession.Movie.IsFinished() && GlobalWin.Emulator.Frame == GlobalWin.MovieSession.Movie.InputLogLength)) // Account for the last frame of the movie, the movie state is immediately "Finished" here but we still want to show the input
{
var input = InputStrMovie();
var point = GetCoordinates(g, GlobalWin.Config.InputDisplay, input);
@ -320,10 +320,10 @@ namespace BizHawk.Client.EmuHawk
}
}
if (Global.MovieSession.MultiTrack.IsActive)
if (GlobalWin.MovieSession.MultiTrack.IsActive)
{
var point = GetCoordinates(g, GlobalWin.Config.MultitrackRecorder, Global.MovieSession.MultiTrack.Status);
DrawOsdMessage(g, Global.MovieSession.MultiTrack.Status, FixedMessagesColor, point.X, point.Y);
var point = GetCoordinates(g, GlobalWin.Config.MultitrackRecorder, GlobalWin.MovieSession.MultiTrack.Status);
DrawOsdMessage(g, GlobalWin.MovieSession.MultiTrack.Status, FixedMessagesColor, point.X, point.Y);
}
if (GlobalWin.Config.DisplayFps && Fps != null)
@ -368,9 +368,9 @@ namespace BizHawk.Client.EmuHawk
g.DrawString(message, MessageFont, Color.White, point.X, point.Y);
}
if (Global.MovieSession.Movie.IsActive() && GlobalWin.Config.DisplaySubtitles)
if (GlobalWin.MovieSession.Movie.IsActive() && GlobalWin.Config.DisplaySubtitles)
{
var subList = Global.MovieSession.Movie.Subtitles.GetSubtitles(GlobalWin.Emulator.Frame);
var subList = GlobalWin.MovieSession.Movie.Subtitles.GetSubtitles(GlobalWin.Emulator.Frame);
foreach (var sub in subList)
{

View File

@ -45,5 +45,6 @@ namespace BizHawk.Client.EmuHawk
public static Config Config { get; set; }
public static FirmwareManager FirmwareManager { get; set; }
public static GameInfo Game { get; set; }
public static IMovieSession MovieSession { get; set; }
}
}

View File

@ -884,8 +884,8 @@ namespace BizHawk.Client.EmuHawk
public IMovieSession MovieSession
{
get => Global. MovieSession;
private set => Global.MovieSession = value;
get => GlobalWin.MovieSession;
private set => GlobalWin.MovieSession = value;
}
private GameInfo Game

View File

@ -217,7 +217,7 @@ namespace BizHawk.Client.EmuHawk
{
GlobalWin.ExitCode = mf.ProgramRunLoop();
}
catch (Exception e) when (Global.MovieSession.Movie.IsActive() && !(Debugger.IsAttached || VersionInfo.DeveloperBuild))
catch (Exception e) when (GlobalWin.MovieSession.Movie.IsActive() && !(Debugger.IsAttached || VersionInfo.DeveloperBuild))
{
var result = MessageBox.Show(
"EmuHawk has thrown a fatal exception and is about to close.\nA movie has been detected. Would you like to try to save?\n(Note: Depending on what caused this error, this may or may not succeed)",
@ -227,7 +227,7 @@ namespace BizHawk.Client.EmuHawk
);
if (result == DialogResult.Yes)
{
Global.MovieSession.Movie.Save();
GlobalWin.MovieSession.Movie.Save();
}
}
}

View File

@ -28,7 +28,7 @@ namespace BizHawk.Client.EmuHawk
_s = s ?? new Gameboy.GambatteSettings();
_ss = ss ?? new Gameboy.GambatteSyncSettings();
propertyGrid1.SelectedObject = _ss;
propertyGrid1.Enabled = Global.MovieSession.Movie.NotActive();
propertyGrid1.Enabled = GlobalWin.MovieSession.Movie.NotActive();
checkBoxMuted.Checked = _s.Muted;
cbDisplayBG.Checked = _s.DisplayBG;
cbDisplayOBJ.Checked = _s.DisplayOBJ;
@ -43,8 +43,8 @@ namespace BizHawk.Client.EmuHawk
private void ButtonDefaults_Click(object sender, EventArgs e)
{
PutSettings(null, Global.MovieSession.Movie.IsActive() ? _ss : null);
if (Global.MovieSession.Movie.NotActive())
PutSettings(null, GlobalWin.MovieSession.Movie.IsActive() ? _ss : null);
if (GlobalWin.MovieSession.Movie.NotActive())
{
SyncSettingsChanged = true;
}

View File

@ -52,7 +52,7 @@ namespace BizHawk.Client.EmuHawk
tabControl1.TabPages.Remove(tabPage2);
}
if (Global.MovieSession.Movie.IsActive())
if (GlobalWin.MovieSession.Movie.IsActive())
{
propertyGrid2.Enabled = false; // disable changes to sync setting when movie, so as not to confuse user
}

View File

@ -24,7 +24,7 @@ namespace BizHawk.Client.EmuHawk
private void EditCommentsForm_Load(object sender, EventArgs e)
{
if (!ForceReadWrite && Global.MovieSession.ReadOnly)
if (!ForceReadWrite && GlobalWin.MovieSession.ReadOnly)
{
CommentGrid.Columns[0].ReadOnly = true;
Text = "View Comments";

View File

@ -377,7 +377,7 @@ namespace BizHawk.Client.EmuHawk
var branch = Tastudio.CurrentTasMovie.Branches.FirstOrDefault(b => b.Uuid.ToString() == branchId);
if (branch != null && frame < branch.InputLog.Count)
{
var controller = Global.MovieSession.GenerateMovieController();
var controller = GlobalWin.MovieSession.GenerateMovieController();
controller.SetFromMnemonic(branch.InputLog[frame]);
foreach (var button in controller.Definition.BoolButtons)

View File

@ -272,7 +272,7 @@ namespace BizHawk.Client.EmuHawk
private void GetPattern()
{
int index = Global.MovieSession.MovieController.Definition.BoolButtons.IndexOf(SelectedButton);
int index = GlobalWin.MovieSession.MovieController.Definition.BoolButtons.IndexOf(SelectedButton);
if (SelectedButton == "Default bool Auto-Fire")
{

View File

@ -19,7 +19,7 @@ namespace BizHawk.Client.EmuHawk
public override string ToString()
{
var lg = Global.MovieSession.Movie.LogGeneratorInstance(ControllerState);
var lg = GlobalWin.MovieSession.Movie.LogGeneratorInstance(ControllerState);
return lg.GenerateLogEntry();
}
@ -27,7 +27,7 @@ namespace BizHawk.Client.EmuHawk
{
try
{
var controller = Global.MovieSession.GenerateMovieController();
var controller = GlobalWin.MovieSession.GenerateMovieController();
controller.SetFromMnemonic(inputLogEntry);
foreach (var button in controller.Definition.BoolButtons)