Add options to how to handle the ending of movie playback, in addition to finished mode, it can now pause, stop, or switch to record. TAStudio - automatically override user's preference with switch to record (and restore their setting when disengaging tastudio
This commit is contained in:
parent
02a5337cd6
commit
b53cc908b8
|
@ -98,6 +98,8 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public enum SaveStateTypeE { Default, Binary, Text };
|
||||
|
||||
public MovieEndAction MovieEndAction = MovieEndAction.Finish;
|
||||
|
||||
// N64
|
||||
public bool N64UseCircularAnalogConstraint = true;
|
||||
|
||||
|
|
|
@ -5,6 +5,8 @@ using BizHawk.Emulation.Common;
|
|||
|
||||
namespace BizHawk.Client.Common
|
||||
{
|
||||
public enum MovieEndAction { Stop, Pause, Record, Finish }
|
||||
|
||||
public class MovieSession
|
||||
{
|
||||
private readonly MultitrackRecording _multiTrack = new MultitrackRecording();
|
||||
|
@ -23,6 +25,16 @@ namespace BizHawk.Client.Common
|
|||
public Action<string> MessageCallback { get; set; }
|
||||
public Func<string, string, bool> AskYesNoCallback { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Required
|
||||
/// </summary>
|
||||
public Action PauseCallback { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Required
|
||||
/// </summary>
|
||||
public Action ModeChangedCallback { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Simply shortens the verbosity necessary otherwise
|
||||
/// </summary>
|
||||
|
@ -103,17 +115,40 @@ namespace BizHawk.Client.Common
|
|||
/// </summary>
|
||||
public void LatchInputFromLog()
|
||||
{
|
||||
if (Global.Emulator.Frame < Movie.InputLogLength)
|
||||
if (Global.Emulator.Frame < Movie.InputLogLength - (Global.Config.MovieEndAction == MovieEndAction.Pause ? 1 : 0)) // Pause logic is a hack for now
|
||||
{
|
||||
var input = Movie.GetInputState(Global.Emulator.Frame);
|
||||
MovieControllerAdapter.LatchFromSource(input);
|
||||
}
|
||||
else
|
||||
{
|
||||
Movie.FinishedMode();
|
||||
HandlePlaybackEnd();
|
||||
}
|
||||
}
|
||||
|
||||
private void HandlePlaybackEnd()
|
||||
{
|
||||
// TODO: mainform callback to update on mode change
|
||||
switch(Global.Config.MovieEndAction)
|
||||
{
|
||||
case MovieEndAction.Stop:
|
||||
Movie.Stop();
|
||||
break;
|
||||
case MovieEndAction.Record:
|
||||
Movie.SwitchToRecord();
|
||||
break;
|
||||
case MovieEndAction.Pause:
|
||||
PauseCallback(); // TODO: one frame ago
|
||||
break;
|
||||
default:
|
||||
case MovieEndAction.Finish:
|
||||
Movie.FinishedMode();
|
||||
break;
|
||||
}
|
||||
|
||||
ModeChangedCallback();
|
||||
}
|
||||
|
||||
public bool MovieLoad()
|
||||
{
|
||||
MovieControllerAdapter = Movie.LogGeneratorInstance().MovieControllerAdapter;
|
||||
|
|
|
@ -86,6 +86,11 @@
|
|||
this.toolStripSeparator14 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.AutomaticallyBackupMoviesMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.FullMovieLoadstatesMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.MovieEndSubMenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.MovieEndFinishMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.MovieEndRecordMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.MovieEndStopMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.MovieEndPauseMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.AVSubMenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.RecordAVMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.StopAVIMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
|
@ -823,7 +828,8 @@
|
|||
this.StopMovieWithoutSavingMenuItem,
|
||||
this.toolStripSeparator14,
|
||||
this.AutomaticallyBackupMoviesMenuItem,
|
||||
this.FullMovieLoadstatesMenuItem});
|
||||
this.FullMovieLoadstatesMenuItem,
|
||||
this.MovieEndSubMenu});
|
||||
this.MovieSubMenu.Name = "MovieSubMenu";
|
||||
this.MovieSubMenu.Size = new System.Drawing.Size(152, 22);
|
||||
this.MovieSubMenu.Text = "Movie";
|
||||
|
@ -855,7 +861,7 @@
|
|||
// toolStripSeparator16
|
||||
//
|
||||
this.toolStripSeparator16.Name = "toolStripSeparator16";
|
||||
this.toolStripSeparator16.Size = new System.Drawing.Size(149, 6);
|
||||
this.toolStripSeparator16.Size = new System.Drawing.Size(57, 6);
|
||||
//
|
||||
// RecordMovieMenuItem
|
||||
//
|
||||
|
@ -932,6 +938,46 @@
|
|||
this.FullMovieLoadstatesMenuItem.Text = "Full Movie Loadstates";
|
||||
this.FullMovieLoadstatesMenuItem.Click += new System.EventHandler(this.FullMovieLoadstatesMenuItem_Click);
|
||||
//
|
||||
// MovieEndSubMenu
|
||||
//
|
||||
this.MovieEndSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.MovieEndFinishMenuItem,
|
||||
this.MovieEndRecordMenuItem,
|
||||
this.MovieEndStopMenuItem,
|
||||
this.MovieEndPauseMenuItem});
|
||||
this.MovieEndSubMenu.Name = "MovieEndSubMenu";
|
||||
this.MovieEndSubMenu.Size = new System.Drawing.Size(231, 22);
|
||||
this.MovieEndSubMenu.Text = "On Movie End";
|
||||
this.MovieEndSubMenu.DropDownOpened += new System.EventHandler(this.MovieEndSubMenu_DropDownOpened);
|
||||
//
|
||||
// MovieEndFinishMenuItem
|
||||
//
|
||||
this.MovieEndFinishMenuItem.Name = "MovieEndFinishMenuItem";
|
||||
this.MovieEndFinishMenuItem.Size = new System.Drawing.Size(170, 22);
|
||||
this.MovieEndFinishMenuItem.Text = "Switch to Finished";
|
||||
this.MovieEndFinishMenuItem.Click += new System.EventHandler(this.MovieEndFinishMenuItem_Click);
|
||||
//
|
||||
// MovieEndRecordMenuItem
|
||||
//
|
||||
this.MovieEndRecordMenuItem.Name = "MovieEndRecordMenuItem";
|
||||
this.MovieEndRecordMenuItem.Size = new System.Drawing.Size(170, 22);
|
||||
this.MovieEndRecordMenuItem.Text = "Switch To Record";
|
||||
this.MovieEndRecordMenuItem.Click += new System.EventHandler(this.MovieEndRecordMenuItem_Click);
|
||||
//
|
||||
// MovieEndStopMenuItem
|
||||
//
|
||||
this.MovieEndStopMenuItem.Name = "MovieEndStopMenuItem";
|
||||
this.MovieEndStopMenuItem.Size = new System.Drawing.Size(170, 22);
|
||||
this.MovieEndStopMenuItem.Text = "Stop";
|
||||
this.MovieEndStopMenuItem.Click += new System.EventHandler(this.MovieEndStopMenuItem_Click);
|
||||
//
|
||||
// MovieEndPauseMenuItem
|
||||
//
|
||||
this.MovieEndPauseMenuItem.Name = "MovieEndPauseMenuItem";
|
||||
this.MovieEndPauseMenuItem.Size = new System.Drawing.Size(170, 22);
|
||||
this.MovieEndPauseMenuItem.Text = "Pause";
|
||||
this.MovieEndPauseMenuItem.Click += new System.EventHandler(this.MovieEndPauseMenuItem_Click);
|
||||
//
|
||||
// AVSubMenu
|
||||
//
|
||||
this.AVSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
|
@ -1270,7 +1316,7 @@
|
|||
//
|
||||
this.ControllersMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.GameController;
|
||||
this.ControllersMenuItem.Name = "ControllersMenuItem";
|
||||
this.ControllersMenuItem.Size = new System.Drawing.Size(159, 22);
|
||||
this.ControllersMenuItem.Size = new System.Drawing.Size(169, 22);
|
||||
this.ControllersMenuItem.Text = "&Controllers...";
|
||||
this.ControllersMenuItem.Click += new System.EventHandler(this.ControllersMenuItem_Click);
|
||||
//
|
||||
|
@ -1278,7 +1324,7 @@
|
|||
//
|
||||
this.HotkeysMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.HotKeys;
|
||||
this.HotkeysMenuItem.Name = "HotkeysMenuItem";
|
||||
this.HotkeysMenuItem.Size = new System.Drawing.Size(159, 22);
|
||||
this.HotkeysMenuItem.Size = new System.Drawing.Size(169, 22);
|
||||
this.HotkeysMenuItem.Text = "&Hotkeys...";
|
||||
this.HotkeysMenuItem.Click += new System.EventHandler(this.HotkeysMenuItem_Click);
|
||||
//
|
||||
|
@ -1286,7 +1332,7 @@
|
|||
//
|
||||
this.DisplayConfigMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("DisplayConfigMenuItem.Image")));
|
||||
this.DisplayConfigMenuItem.Name = "DisplayConfigMenuItem";
|
||||
this.DisplayConfigMenuItem.Size = new System.Drawing.Size(159, 22);
|
||||
this.DisplayConfigMenuItem.Size = new System.Drawing.Size(169, 22);
|
||||
this.DisplayConfigMenuItem.Text = "Display...";
|
||||
this.DisplayConfigMenuItem.Click += new System.EventHandler(this.DisplayConfigMenuItem_Click);
|
||||
//
|
||||
|
@ -1294,7 +1340,7 @@
|
|||
//
|
||||
this.SoundMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.AudioHS;
|
||||
this.SoundMenuItem.Name = "SoundMenuItem";
|
||||
this.SoundMenuItem.Size = new System.Drawing.Size(159, 22);
|
||||
this.SoundMenuItem.Size = new System.Drawing.Size(169, 22);
|
||||
this.SoundMenuItem.Text = "&Sound...";
|
||||
this.SoundMenuItem.Click += new System.EventHandler(this.SoundMenuItem_Click);
|
||||
//
|
||||
|
@ -1302,7 +1348,7 @@
|
|||
//
|
||||
this.PathsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.CopyFolderHS;
|
||||
this.PathsMenuItem.Name = "PathsMenuItem";
|
||||
this.PathsMenuItem.Size = new System.Drawing.Size(159, 22);
|
||||
this.PathsMenuItem.Size = new System.Drawing.Size(169, 22);
|
||||
this.PathsMenuItem.Text = "Paths...";
|
||||
this.PathsMenuItem.Click += new System.EventHandler(this.PathsMenuItem_Click);
|
||||
//
|
||||
|
@ -1310,7 +1356,7 @@
|
|||
//
|
||||
this.FirmwaresMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("FirmwaresMenuItem.Image")));
|
||||
this.FirmwaresMenuItem.Name = "FirmwaresMenuItem";
|
||||
this.FirmwaresMenuItem.Size = new System.Drawing.Size(159, 22);
|
||||
this.FirmwaresMenuItem.Size = new System.Drawing.Size(169, 22);
|
||||
this.FirmwaresMenuItem.Text = "&Firmwares...";
|
||||
this.FirmwaresMenuItem.Click += new System.EventHandler(this.FirmwaresMenuItem_Click);
|
||||
//
|
||||
|
@ -1318,7 +1364,7 @@
|
|||
//
|
||||
this.MessagesMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.MessageConfig;
|
||||
this.MessagesMenuItem.Name = "MessagesMenuItem";
|
||||
this.MessagesMenuItem.Size = new System.Drawing.Size(159, 22);
|
||||
this.MessagesMenuItem.Size = new System.Drawing.Size(169, 22);
|
||||
this.MessagesMenuItem.Text = "&Messages...";
|
||||
this.MessagesMenuItem.Click += new System.EventHandler(this.MessagesMenuItem_Click);
|
||||
//
|
||||
|
@ -1326,7 +1372,7 @@
|
|||
//
|
||||
this.AutofireMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Lightning;
|
||||
this.AutofireMenuItem.Name = "AutofireMenuItem";
|
||||
this.AutofireMenuItem.Size = new System.Drawing.Size(159, 22);
|
||||
this.AutofireMenuItem.Size = new System.Drawing.Size(169, 22);
|
||||
this.AutofireMenuItem.Text = "&Autofire...";
|
||||
this.AutofireMenuItem.Click += new System.EventHandler(this.AutofireMenuItem_Click);
|
||||
//
|
||||
|
@ -1334,35 +1380,35 @@
|
|||
//
|
||||
this.RewindOptionsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Previous;
|
||||
this.RewindOptionsMenuItem.Name = "RewindOptionsMenuItem";
|
||||
this.RewindOptionsMenuItem.Size = new System.Drawing.Size(165, 22);
|
||||
this.RewindOptionsMenuItem.Size = new System.Drawing.Size(169, 22);
|
||||
this.RewindOptionsMenuItem.Text = "&Rewind && States...";
|
||||
this.RewindOptionsMenuItem.Click += new System.EventHandler(this.RewindOptionsMenuItem_Click);
|
||||
//
|
||||
// extensionsToolStripMenuItem
|
||||
//
|
||||
this.extensionsToolStripMenuItem.Name = "extensionsToolStripMenuItem";
|
||||
this.extensionsToolStripMenuItem.Size = new System.Drawing.Size(159, 22);
|
||||
this.extensionsToolStripMenuItem.Size = new System.Drawing.Size(169, 22);
|
||||
this.extensionsToolStripMenuItem.Text = "File Extensions...";
|
||||
this.extensionsToolStripMenuItem.Click += new System.EventHandler(this.FileExtensionsMenuItem_Click);
|
||||
//
|
||||
// ClientOptionsMenuItem
|
||||
//
|
||||
this.ClientOptionsMenuItem.Name = "ClientOptionsMenuItem";
|
||||
this.ClientOptionsMenuItem.Size = new System.Drawing.Size(159, 22);
|
||||
this.ClientOptionsMenuItem.Size = new System.Drawing.Size(169, 22);
|
||||
this.ClientOptionsMenuItem.Text = "&Customize...";
|
||||
this.ClientOptionsMenuItem.Click += new System.EventHandler(this.CustomizeMenuItem_Click);
|
||||
//
|
||||
// ProfilesMenuItem
|
||||
//
|
||||
this.ProfilesMenuItem.Name = "ProfilesMenuItem";
|
||||
this.ProfilesMenuItem.Size = new System.Drawing.Size(159, 22);
|
||||
this.ProfilesMenuItem.Size = new System.Drawing.Size(169, 22);
|
||||
this.ProfilesMenuItem.Text = "&Profiles...";
|
||||
this.ProfilesMenuItem.Click += new System.EventHandler(this.ProfilesMenuItem_Click);
|
||||
//
|
||||
// toolStripSeparator9
|
||||
//
|
||||
this.toolStripSeparator9.Name = "toolStripSeparator9";
|
||||
this.toolStripSeparator9.Size = new System.Drawing.Size(156, 6);
|
||||
this.toolStripSeparator9.Size = new System.Drawing.Size(166, 6);
|
||||
//
|
||||
// SpeedSkipSubMenu
|
||||
//
|
||||
|
@ -1391,7 +1437,7 @@
|
|||
this.Speed150MenuItem,
|
||||
this.Speed200MenuItem});
|
||||
this.SpeedSkipSubMenu.Name = "SpeedSkipSubMenu";
|
||||
this.SpeedSkipSubMenu.Size = new System.Drawing.Size(159, 22);
|
||||
this.SpeedSkipSubMenu.Size = new System.Drawing.Size(169, 22);
|
||||
this.SpeedSkipSubMenu.Text = "Speed/Skip";
|
||||
this.SpeedSkipSubMenu.DropDownOpened += new System.EventHandler(this.FrameSkipMenuItem_DropDownOpened);
|
||||
//
|
||||
|
@ -1557,7 +1603,7 @@
|
|||
this.InputOverHkMenuItem,
|
||||
this.HkOverInputMenuItem});
|
||||
this.KeyPrioritySubMenu.Name = "KeyPrioritySubMenu";
|
||||
this.KeyPrioritySubMenu.Size = new System.Drawing.Size(159, 22);
|
||||
this.KeyPrioritySubMenu.Size = new System.Drawing.Size(169, 22);
|
||||
this.KeyPrioritySubMenu.Text = "Key Priority";
|
||||
this.KeyPrioritySubMenu.DropDownOpened += new System.EventHandler(this.KeyPriorityMenuItem_DropDownOpened);
|
||||
//
|
||||
|
@ -1590,7 +1636,7 @@
|
|||
this.toolStripSeparator8,
|
||||
this.N64VideoPluginSettingsMenuItem});
|
||||
this.CoresSubMenu.Name = "CoresSubMenu";
|
||||
this.CoresSubMenu.Size = new System.Drawing.Size(159, 22);
|
||||
this.CoresSubMenu.Size = new System.Drawing.Size(169, 22);
|
||||
this.CoresSubMenu.Text = "Cores";
|
||||
this.CoresSubMenu.DropDownOpened += new System.EventHandler(this.CoresSubMenu_DropDownOpened);
|
||||
//
|
||||
|
@ -1624,13 +1670,13 @@
|
|||
// toolStripSeparator10
|
||||
//
|
||||
this.toolStripSeparator10.Name = "toolStripSeparator10";
|
||||
this.toolStripSeparator10.Size = new System.Drawing.Size(156, 6);
|
||||
this.toolStripSeparator10.Size = new System.Drawing.Size(166, 6);
|
||||
//
|
||||
// SaveConfigMenuItem
|
||||
//
|
||||
this.SaveConfigMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Save;
|
||||
this.SaveConfigMenuItem.Name = "SaveConfigMenuItem";
|
||||
this.SaveConfigMenuItem.Size = new System.Drawing.Size(159, 22);
|
||||
this.SaveConfigMenuItem.Size = new System.Drawing.Size(169, 22);
|
||||
this.SaveConfigMenuItem.Text = "Save Config";
|
||||
this.SaveConfigMenuItem.Click += new System.EventHandler(this.SaveConfigMenuItem_Click);
|
||||
//
|
||||
|
@ -1638,7 +1684,7 @@
|
|||
//
|
||||
this.LoadConfigMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.LoadConfig;
|
||||
this.LoadConfigMenuItem.Name = "LoadConfigMenuItem";
|
||||
this.LoadConfigMenuItem.Size = new System.Drawing.Size(159, 22);
|
||||
this.LoadConfigMenuItem.Size = new System.Drawing.Size(169, 22);
|
||||
this.LoadConfigMenuItem.Text = "Load Config";
|
||||
this.LoadConfigMenuItem.Click += new System.EventHandler(this.LoadConfigMenuItem_Click);
|
||||
//
|
||||
|
@ -3062,6 +3108,21 @@
|
|||
this.SavestateTypeContextSubMenu.Text = "Savestate Type";
|
||||
this.SavestateTypeContextSubMenu.DropDownOpened += new System.EventHandler(this.SavestateTypeContextSubMenu_DropDownOpened);
|
||||
//
|
||||
// SavestateTypeDefaultContextMenuItem
|
||||
//
|
||||
this.SavestateTypeDefaultContextMenuItem.Name = "SavestateTypeDefaultContextMenuItem";
|
||||
this.SavestateTypeDefaultContextMenuItem.Size = new System.Drawing.Size(67, 22);
|
||||
//
|
||||
// SavestateBinaryContextMenuItem
|
||||
//
|
||||
this.SavestateBinaryContextMenuItem.Name = "SavestateBinaryContextMenuItem";
|
||||
this.SavestateBinaryContextMenuItem.Size = new System.Drawing.Size(67, 22);
|
||||
//
|
||||
// SavestateTextContextMenuItem
|
||||
//
|
||||
this.SavestateTextContextMenuItem.Name = "SavestateTextContextMenuItem";
|
||||
this.SavestateTextContextMenuItem.Size = new System.Drawing.Size(67, 22);
|
||||
//
|
||||
// CoreSelectionContextSubMenu
|
||||
//
|
||||
this.CoreSelectionContextSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
|
@ -3514,6 +3575,11 @@
|
|||
private System.Windows.Forms.ToolStripMenuItem PceControllerSettingsMenuItem;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator32;
|
||||
private System.Windows.Forms.ToolStripStatusLabel ProfileFirstBootLabel;
|
||||
private System.Windows.Forms.ToolStripMenuItem MovieEndSubMenu;
|
||||
private System.Windows.Forms.ToolStripMenuItem MovieEndFinishMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem MovieEndRecordMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem MovieEndStopMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem MovieEndPauseMenuItem;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -265,6 +265,14 @@ namespace BizHawk.Client.EmuHawk
|
|||
);
|
||||
}
|
||||
|
||||
private void MovieEndSubMenu_DropDownOpened(object sender, EventArgs e)
|
||||
{
|
||||
MovieEndFinishMenuItem.Checked = Global.Config.MovieEndAction == MovieEndAction.Finish;
|
||||
MovieEndRecordMenuItem.Checked = Global.Config.MovieEndAction == MovieEndAction.Record;
|
||||
MovieEndStopMenuItem.Checked = Global.Config.MovieEndAction == MovieEndAction.Stop;
|
||||
MovieEndPauseMenuItem.Checked = Global.Config.MovieEndAction == MovieEndAction.Pause;
|
||||
}
|
||||
|
||||
private void AVSubMenu_DropDownOpened(object sender, EventArgs e)
|
||||
{
|
||||
RecordAVMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Record A/V"].Bindings;
|
||||
|
@ -497,14 +505,34 @@ namespace BizHawk.Client.EmuHawk
|
|||
Global.Config.VBAStyleMovieLoadState ^= true;
|
||||
}
|
||||
|
||||
private void MovieEndFinishMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
Global.Config.MovieEndAction = MovieEndAction.Finish;
|
||||
}
|
||||
|
||||
private void MovieEndRecordMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
Global.Config.MovieEndAction = MovieEndAction.Record;
|
||||
}
|
||||
|
||||
private void MovieEndStopMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
Global.Config.MovieEndAction = MovieEndAction.Stop;
|
||||
}
|
||||
|
||||
private void MovieEndPauseMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
Global.Config.MovieEndAction = MovieEndAction.Pause;
|
||||
}
|
||||
|
||||
private void RecordAVMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.RecordAv();
|
||||
RecordAv();
|
||||
}
|
||||
|
||||
private void StopAVMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.StopAv();
|
||||
StopAv();
|
||||
}
|
||||
|
||||
private void SynclessRecordingMenuItem_Click(object sender, EventArgs e)
|
||||
|
|
|
@ -34,7 +34,9 @@ namespace BizHawk.Client.EmuHawk
|
|||
Movie = movie,
|
||||
MovieControllerAdapter = movie.LogGeneratorInstance().MovieControllerAdapter,
|
||||
MessageCallback = GlobalWin.OSD.AddMessage,
|
||||
AskYesNoCallback = StateErrorAskUser
|
||||
AskYesNoCallback = StateErrorAskUser,
|
||||
PauseCallback = PauseEmulator,
|
||||
ModeChangedCallback = SetMainformMovieInfo
|
||||
};
|
||||
|
||||
InputManager.RewireInputChain();
|
||||
|
|
|
@ -92,7 +92,9 @@ namespace BizHawk.Client.EmuHawk
|
|||
Movie = MovieService.DefaultInstance,
|
||||
MovieControllerAdapter = MovieService.DefaultInstance.LogGeneratorInstance().MovieControllerAdapter,
|
||||
MessageCallback = GlobalWin.OSD.AddMessage,
|
||||
AskYesNoCallback = StateErrorAskUser
|
||||
AskYesNoCallback = StateErrorAskUser,
|
||||
PauseCallback = PauseEmulator,
|
||||
ModeChangedCallback = SetMainformMovieInfo
|
||||
};
|
||||
|
||||
new AutoResetEvent(false);
|
||||
|
|
|
@ -23,6 +23,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
private int _defaultHeight;
|
||||
private TasMovie _tas;
|
||||
private bool _originalRewindStatus; // The client rewind status before TAStudio was engaged (used to restore when disengaged)
|
||||
private MovieEndAction _originalEndAction; // The movie end behavior selected by the user (that is overridden by TAStudio)
|
||||
|
||||
private Dictionary<string, string> GenerateColumnNames()
|
||||
{
|
||||
|
@ -145,8 +146,10 @@ namespace BizHawk.Client.EmuHawk
|
|||
GlobalWin.MainForm.PauseEmulator();
|
||||
GlobalWin.MainForm.RelinquishControl(this);
|
||||
_originalRewindStatus = Global.Rewinder.RewindActive;
|
||||
_originalEndAction = Global.Config.MovieEndAction;
|
||||
MarkerControl.Markers = _tas.Markers;
|
||||
GlobalWin.MainForm.EnableRewind(false);
|
||||
Global.Config.MovieEndAction = MovieEndAction.Record;
|
||||
}
|
||||
|
||||
private void DisengageTastudio()
|
||||
|
@ -155,6 +158,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
Global.MovieSession.Movie = MovieService.DefaultInstance;
|
||||
GlobalWin.MainForm.TakeControl();
|
||||
GlobalWin.MainForm.EnableRewind(_originalRewindStatus);
|
||||
Global.Config.MovieEndAction = _originalEndAction;
|
||||
}
|
||||
|
||||
private void NewTasMovie()
|
||||
|
|
Loading…
Reference in New Issue