move MovieSession from Global to GlobalWin
This commit is contained in:
parent
8c5538405f
commit
c4c820fad3
|
@ -2,7 +2,6 @@
|
|||
{
|
||||
public static class Global
|
||||
{
|
||||
public static IMovieSession MovieSession { get; set; }
|
||||
public static InputManager InputManager { get; } = new InputManager();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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; }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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")
|
||||
{
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue