Config - move some movie settings to a MovieConfig object
This commit is contained in:
parent
a8b0d42a1a
commit
a3c82c43d5
|
@ -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; }
|
||||
|
|
|
@ -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; }
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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)))
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue