interface the MovieSettings class to be get only and pass it into movie session, this is a pattern we should use more, to better express that consuming classes do not modify settings, that's a presentation level detail
This commit is contained in:
parent
a3c82c43d5
commit
943d704ca5
|
@ -1,6 +1,16 @@
|
|||
namespace BizHawk.Client.Common
|
||||
{
|
||||
public class MovieConfig
|
||||
public interface IMovieConfig
|
||||
{
|
||||
public MovieEndAction MovieEndAction { get; }
|
||||
public bool EnableBackupMovies { get; }
|
||||
public bool MoviesOnDisk { get; }
|
||||
public int MovieCompressionLevel { get; }
|
||||
public bool VBAStyleMovieLoadState { get; }
|
||||
public bool MoviePlaybackPokeMode { get; }
|
||||
}
|
||||
|
||||
public class MovieConfig : IMovieConfig
|
||||
{
|
||||
public MovieEndAction MovieEndAction { get; set; } = MovieEndAction.Finish;
|
||||
public bool EnableBackupMovies { get; set; } = true;
|
||||
|
|
|
@ -12,6 +12,7 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public class MovieSession : IMovieSession
|
||||
{
|
||||
private readonly IMovieConfig _settings;
|
||||
private readonly Action _pauseCallback;
|
||||
private readonly Action _modeChangedCallback;
|
||||
private readonly Action<string> _messageCallback;
|
||||
|
@ -24,11 +25,13 @@ namespace BizHawk.Client.Common
|
|||
private readonly IDictionary<string, string> _preferredCores = new Dictionary<string, string>();
|
||||
|
||||
public MovieSession(
|
||||
IMovieConfig settings,
|
||||
Action<string> messageCallback,
|
||||
Action<string> popupCallback,
|
||||
Action pauseCallback,
|
||||
Action modeChangedCallback)
|
||||
{
|
||||
_settings = settings;
|
||||
_messageCallback = messageCallback;
|
||||
_popupCallback = popupCallback;
|
||||
_pauseCallback = pauseCallback
|
||||
|
@ -119,7 +122,7 @@ namespace BizHawk.Client.Common
|
|||
LatchInputToUser();
|
||||
ClearFrame();
|
||||
}
|
||||
else if (Global.Config.Movies.MoviePlaybackPokeMode)
|
||||
else if (_settings.MoviePlaybackPokeMode)
|
||||
{
|
||||
LatchInputToUser();
|
||||
var lg = Movie.LogGeneratorInstance(Global.InputManager.MovieOutputHardpoint);
|
||||
|
@ -310,7 +313,7 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
if (Movie.IsActive())
|
||||
{
|
||||
if (Global.Config.Movies.VBAStyleMovieLoadState)
|
||||
if (_settings.VBAStyleMovieLoadState)
|
||||
{
|
||||
Output("Multi-track can not be used in Full Movie Loadstates mode");
|
||||
}
|
||||
|
@ -452,7 +455,7 @@ namespace BizHawk.Client.Common
|
|||
}
|
||||
|
||||
// TODO: mainform callback to update on mode change
|
||||
switch (Global.Config.Movies.MovieEndAction)
|
||||
switch (_settings.MovieEndAction)
|
||||
{
|
||||
case MovieEndAction.Stop:
|
||||
Movie.Stop();
|
||||
|
|
|
@ -206,6 +206,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
Global.InputManager.ControllerInputCoalescer = new ControllerInputCoalescer();
|
||||
Global.FirmwareManager = new FirmwareManager();
|
||||
MovieSession = new MovieSession(
|
||||
Config.Movies,
|
||||
AddOnScreenMessage,
|
||||
ShowMessageCoreComm,
|
||||
PauseEmulator,
|
||||
|
|
Loading…
Reference in New Issue