Config - move some movie settings to a MovieConfig object

This commit is contained in:
adelikat 2020-06-02 17:34:16 -05:00
parent a8b0d42a1a
commit a3c82c43d5
15 changed files with 48 additions and 42 deletions

View File

@ -79,8 +79,6 @@ namespace BizHawk.Client.Common
public bool AllowUdlr { get; set; }
public bool ForbidUdlr { get; set; }
public bool ShowContextMenu { get; set; } = true;
public bool EnableBackupMovies { get; set; } = true;
public bool MoviesOnDisk { get; set; }
public bool HotkeyConfigAutoTab { get; set; } = true;
public bool InputConfigAutoTab { get; set; } = true;
public bool SkipWaterboxIntegrityChecks { get; set; } = false;
@ -120,8 +118,6 @@ namespace BizHawk.Client.Common
public bool TurboSeek { get; set; }
public MovieEndAction MovieEndAction { get; set; } = MovieEndAction.Finish;
public ClientProfile SelectedProfile { get; set; } = ClientProfile.Unknown;
// N64
@ -140,6 +136,8 @@ namespace BizHawk.Client.Common
public SaveStateConfig Savestates { get; set; } = new SaveStateConfig();
public MovieConfig Movies { get; set; } = new MovieConfig();
/// <summary>
/// Use vsync when presenting all 3d accelerated windows.
/// For the main window, if VSyncThrottle = false, this will try to use vsync without throttling to it
@ -279,8 +277,6 @@ namespace BizHawk.Client.Common
public string DefaultAuthor { get; set; } = "default user";
public bool UseDefaultAuthor { get; set; } = true;
public bool DisplaySubtitles { get; set; } = true;
public bool VBAStyleMovieLoadState { get; set; }
public bool MoviePlaybackPokeMode { get; set; }
// Play Movie Dialog
public bool PlayMovieIncludeSubDir { get; set; }

View File

@ -0,0 +1,12 @@
namespace BizHawk.Client.Common
{
public class MovieConfig
{
public MovieEndAction MovieEndAction { get; set; } = MovieEndAction.Finish;
public bool EnableBackupMovies { get; set; } = true;
public bool MoviesOnDisk { get; set; }
public int MovieCompressionLevel { get; set; } = 2;
public bool VBAStyleMovieLoadState { get; set; }
public bool MoviePlaybackPokeMode { get; set; }
}
}

View File

@ -7,8 +7,6 @@
public int CompressionLevelNormal { get; set; } = DefaultCompressionLevelNormal;
public const int DefaultCompressionLevelRewind = 0; // this isn't actually used yet
public int CompressionLevelRewind { get; set; } = DefaultCompressionLevelRewind; // this isn't actually used yet
public int MovieCompressionLevel { get; set; } = 2;
public bool MakeBackups { get; set; } = true;
public bool SaveScreenshot { get; set; } = true;
public int BigScreenshotSize { get; set; } = 128 * 1024;

View File

@ -119,7 +119,7 @@ namespace BizHawk.Client.Common
LatchInputToUser();
ClearFrame();
}
else if (Global.Config.MoviePlaybackPokeMode)
else if (Global.Config.Movies.MoviePlaybackPokeMode)
{
LatchInputToUser();
var lg = Movie.LogGeneratorInstance(Global.InputManager.MovieOutputHardpoint);
@ -310,7 +310,7 @@ namespace BizHawk.Client.Common
{
if (Movie.IsActive())
{
if (Global.Config.VBAStyleMovieLoadState)
if (Global.Config.Movies.VBAStyleMovieLoadState)
{
Output("Multi-track can not be used in Full Movie Loadstates mode");
}
@ -452,7 +452,7 @@ namespace BizHawk.Client.Common
}
// TODO: mainform callback to update on mode change
switch (Global.Config.MovieEndAction)
switch (Global.Config.Movies.MovieEndAction)
{
case MovieEndAction.Stop:
Movie.Stop();

View File

@ -160,7 +160,7 @@ namespace BizHawk.Client.Common
SetCycleValues(); // We are pretending these only need to be set on save
CreateDirectoryIfNotExists(fn);
using var bs = new ZipStateSaver(fn, Global.Config.Savestates.MovieCompressionLevel);
using var bs = new ZipStateSaver(fn, Global.Config.Movies.MovieCompressionLevel);
AddLumps(bs);
if (!isBackup)

View File

@ -41,7 +41,7 @@ namespace BizHawk.Client.Common
// We are in record mode so replace the movie log with the one from the savestate
if (!Global.MovieSession.MultiTrack.IsActive) // TODO: this is run before being attached
{
if (Global.Config.EnableBackupMovies && MakeBackup && Log.Count != 0)
if (Global.Config.Movies.EnableBackupMovies && MakeBackup && Log.Count != 0)
{
SaveBackup();
MakeBackup = false;
@ -153,14 +153,14 @@ namespace BizHawk.Client.Common
if (stateFramei.StrictlyBoundedBy(0.RangeTo(Log.Count)))
{
if (!Global.Config.VBAStyleMovieLoadState)
if (!Global.Config.Movies.VBAStyleMovieLoadState)
{
Truncate(stateFramei);
}
}
else if (stateFramei > Log.Count) // Post movie savestate
{
if (!Global.Config.VBAStyleMovieLoadState)
if (!Global.Config.Movies.VBAStyleMovieLoadState)
{
Truncate(Log.Count);
}

View File

@ -9,7 +9,7 @@ namespace BizHawk.Client.Common
public virtual void StartNewRecording()
{
Mode = MovieMode.Record;
if (Global.Config.EnableBackupMovies && MakeBackup && Log.Any())
if (Global.Config.Movies.EnableBackupMovies && MakeBackup && Log.Any())
{
SaveBackup();
MakeBackup = false;

View File

@ -101,7 +101,7 @@ namespace BizHawk.Client.Common
public virtual void RecordFrame(int frame, IController source)
{
if (Global.Config.VBAStyleMovieLoadState)
if (Global.Config.Movies.VBAStyleMovieLoadState)
{
if (Emulator.Frame < Log.Count)
{

View File

@ -189,7 +189,7 @@ namespace BizHawk.Client.Common
{
_timelineBranchFrame = null;
if (Global.Config.EnableBackupMovies && MakeBackup && Log.Count != 0)
if (Global.Config.Movies.EnableBackupMovies && MakeBackup && Log.Count != 0)
{
SaveBackup();
MakeBackup = false;
@ -308,14 +308,14 @@ namespace BizHawk.Client.Common
if (stateFrameValue > 0 && stateFrameValue < Log.Count)
{
if (!Global.Config.VBAStyleMovieLoadState)
if (!Global.Config.Movies.VBAStyleMovieLoadState)
{
Truncate(stateFrameValue);
}
}
else if (stateFrameValue > Log.Count) // Post movie savestate
{
if (!Global.Config.VBAStyleMovieLoadState)
if (!Global.Config.Movies.VBAStyleMovieLoadState)
{
Truncate(Log.Count);
}

View File

@ -241,8 +241,8 @@ namespace BizHawk.Client.EmuHawk
= MovieSession.Movie.IsActive();
ReadonlyMenuItem.Checked = MovieSession.ReadOnly;
AutomaticallyBackupMoviesMenuItem.Checked = Config.EnableBackupMovies;
FullMovieLoadstatesMenuItem.Checked = Config.VBAStyleMovieLoadState;
AutomaticallyBackupMoviesMenuItem.Checked = Config.Movies.EnableBackupMovies;
FullMovieLoadstatesMenuItem.Checked = Config.Movies.VBAStyleMovieLoadState;
ReadonlyMenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Toggle read-only"].Bindings;
RecordMovieMenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Record Movie"].Bindings;
@ -272,10 +272,10 @@ namespace BizHawk.Client.EmuHawk
private void MovieEndSubMenu_DropDownOpened(object sender, EventArgs e)
{
MovieEndFinishMenuItem.Checked = Config.MovieEndAction == MovieEndAction.Finish;
MovieEndRecordMenuItem.Checked = Config.MovieEndAction == MovieEndAction.Record;
MovieEndStopMenuItem.Checked = Config.MovieEndAction == MovieEndAction.Stop;
MovieEndPauseMenuItem.Checked = Config.MovieEndAction == MovieEndAction.Pause;
MovieEndFinishMenuItem.Checked = Config.Movies.MovieEndAction == MovieEndAction.Finish;
MovieEndRecordMenuItem.Checked = Config.Movies.MovieEndAction == MovieEndAction.Record;
MovieEndStopMenuItem.Checked = Config.Movies.MovieEndAction == MovieEndAction.Stop;
MovieEndPauseMenuItem.Checked = Config.Movies.MovieEndAction == MovieEndAction.Pause;
// Arguably an IControlMainForm property should be set here, but in reality only Tastudio is ever going to interfere with this logic
MovieEndFinishMenuItem.Enabled =
@ -564,7 +564,7 @@ namespace BizHawk.Client.EmuHawk
private void StopMovieWithoutSavingMenuItem_Click(object sender, EventArgs e)
{
if (Config.EnableBackupMovies)
if (Config.Movies.EnableBackupMovies)
{
MovieSession.Movie.SaveBackup();
}
@ -574,32 +574,32 @@ namespace BizHawk.Client.EmuHawk
private void AutomaticMovieBackupMenuItem_Click(object sender, EventArgs e)
{
Config.EnableBackupMovies ^= true;
Config.Movies.EnableBackupMovies ^= true;
}
private void FullMovieLoadstatesMenuItem_Click(object sender, EventArgs e)
{
Config.VBAStyleMovieLoadState ^= true;
Config.Movies.VBAStyleMovieLoadState ^= true;
}
private void MovieEndFinishMenuItem_Click(object sender, EventArgs e)
{
Config.MovieEndAction = MovieEndAction.Finish;
Config.Movies.MovieEndAction = MovieEndAction.Finish;
}
private void MovieEndRecordMenuItem_Click(object sender, EventArgs e)
{
Config.MovieEndAction = MovieEndAction.Record;
Config.Movies.MovieEndAction = MovieEndAction.Record;
}
private void MovieEndStopMenuItem_Click(object sender, EventArgs e)
{
Config.MovieEndAction = MovieEndAction.Stop;
Config.Movies.MovieEndAction = MovieEndAction.Stop;
}
private void MovieEndPauseMenuItem_Click(object sender, EventArgs e)
{
Config.MovieEndAction = MovieEndAction.Pause;
Config.Movies.MovieEndAction = MovieEndAction.Pause;
}
private void ConfigAndRecordAVMenuItem_Click(object sender, EventArgs e)

View File

@ -2652,8 +2652,8 @@ namespace BizHawk.Client.EmuHawk
private void ToggleModePokeMode()
{
Config.MoviePlaybackPokeMode ^= true;
AddOnScreenMessage($"Movie Poke mode {(Config.MoviePlaybackPokeMode ? "enabled" : "disabled")}");
Config.Movies.MoviePlaybackPokeMode ^= true;
AddOnScreenMessage($"Movie Poke mode {(Config.Movies.MoviePlaybackPokeMode ? "enabled" : "disabled")}");
}
private void ToggleBackgroundInput()

View File

@ -120,7 +120,7 @@ namespace BizHawk.Client.EmuHawk
Global.Config.ResolveDefaults();
StringLogUtil.DefaultToDisk = Global.Config.MoviesOnDisk;
StringLogUtil.DefaultToDisk = Global.Config.Movies.MoviesOnDisk;
// super hacky! this needs to be done first. still not worth the trouble to make this system fully proper
if (Array.Exists(args, arg => arg.StartsWith("--gdi", StringComparison.InvariantCultureIgnoreCase)))

View File

@ -74,7 +74,7 @@ namespace BizHawk.Client.EmuHawk
AutosaveSaveRAMSeconds = _config.FlushSaveRamFrames / 60;
FrameAdvSkipLagCheckbox.Checked = _config.SkipLagFrame;
LuaDuringTurboCheckbox.Checked = _config.RunLuaDuringTurbo;
cbMoviesOnDisk.Checked = _config.MoviesOnDisk;
cbMoviesOnDisk.Checked = _config.Movies.MoviesOnDisk;
cbSkipWaterboxIntegrityChecks.Checked = _config.SkipWaterboxIntegrityChecks;
switch (_config.HostInputMethod)
@ -128,7 +128,7 @@ namespace BizHawk.Client.EmuHawk
_config.SkipLagFrame = FrameAdvSkipLagCheckbox.Checked;
_config.RunLuaDuringTurbo = LuaDuringTurboCheckbox.Checked;
_config.MoviesOnDisk = cbMoviesOnDisk.Checked;
_config.Movies.MoviesOnDisk = cbMoviesOnDisk.Checked;
_config.SkipWaterboxIntegrityChecks = cbSkipWaterboxIntegrityChecks.Checked;
var prevLuaEngine = _config.LuaEngine;

View File

@ -194,7 +194,7 @@ namespace BizHawk.Client.EmuHawk
if (movie.InputLogLength >= _emulator.Frame)
{
movie.SwitchToPlay();
Global.Config.MovieEndAction = MovieEndAction.Record;
Global.Config.Movies.MovieEndAction = MovieEndAction.Record;
}
}

View File

@ -276,9 +276,9 @@ namespace BizHawk.Client.EmuHawk
SetTasMovieCallbacks(CurrentTasMovie);
SetTextProperty();
MainForm.RelinquishControl(this);
_originalEndAction = Config.MovieEndAction;
_originalEndAction = Config.Movies.MovieEndAction;
MainForm.ClearRewindData();
Config.MovieEndAction = MovieEndAction.Record;
Config.Movies.MovieEndAction = MovieEndAction.Record;
MainForm.SetMainformMovieInfo();
MovieSession.ReadOnly = true;
SetSplicer();
@ -794,7 +794,7 @@ namespace BizHawk.Client.EmuHawk
MainForm.PauseOnFrame = null;
MainForm.AddOnScreenMessage("TAStudio disengaged");
MainForm.TakeBackControl();
Config.MovieEndAction = _originalEndAction;
Config.Movies.MovieEndAction = _originalEndAction;
MainForm.SetMainformMovieInfo();
}