BizHawk/BizHawk.Client.EmuHawk/tools/TAStudio/PlaybackBox.cs

192 lines
4.0 KiB
C#
Raw Normal View History

using System;
using System.ComponentModel;
using System.Windows.Forms;
2014-07-17 19:00:28 +00:00
using BizHawk.Client.Common;
namespace BizHawk.Client.EmuHawk
{
public partial class PlaybackBox : UserControl
{
private bool _loading = true;
2014-07-17 19:00:28 +00:00
public TAStudio Tastudio { get; set; }
[Browsable(true)]
2017-05-24 15:49:35 +00:00
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
2014-07-27 17:49:25 +00:00
public bool TurboSeek
{
get
{
return Global.Config.TurboSeek;
}
set
{
TurboSeekCheckbox.Checked = value;
2014-07-27 17:49:25 +00:00
}
}
[Browsable(true)]
2017-05-24 15:49:35 +00:00
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public bool AutoRestore
{
get
{
return Tastudio.Settings.AutoRestoreLastPosition;
}
set
{
AutoRestoreCheckbox.Checked = value;
}
}
[Browsable(true)]
2017-05-24 15:49:35 +00:00
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
2014-10-11 19:43:05 +00:00
public bool FollowCursor
{
get
{
return Tastudio.Settings.FollowCursor;
2014-10-11 19:43:05 +00:00
}
set
{
FollowCursorCheckbox.Checked = value;
2014-10-11 19:43:05 +00:00
}
}
[Browsable(true)]
2017-05-24 15:49:35 +00:00
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public bool RecordingMode
{
get
{
return Global.MovieSession.Movie.IsRecording;
}
set
{
RecordingModeCheckbox.Checked = value;
Global.MovieSession.ReadOnly = !value;
if (RecordingModeCheckbox.Checked)
{
Global.MovieSession.Movie.SwitchToRecord();
}
else
{
Global.MovieSession.Movie.SwitchToPlay();
}
2017-05-24 15:49:35 +00:00
GlobalWin.MainForm.SetMainformMovieInfo();
}
}
2015-01-02 21:25:10 +00:00
public PlaybackBox()
{
InitializeComponent();
2015-01-02 17:28:51 +00:00
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
2015-01-02 21:25:10 +00:00
if (Global.Config != null) // For the designer
{
TurboSeekCheckbox.Checked = Global.Config.TurboSeek;
}
if (Tastudio != null) // For the designer
{
AutoRestoreCheckbox.Checked = Tastudio.Settings.AutoRestoreLastPosition;
FollowCursorCheckbox.Checked = Tastudio.Settings.FollowCursor;
RecordingModeCheckbox.Checked = RecordingMode;
2015-01-02 21:25:10 +00:00
}
2015-01-02 17:28:51 +00:00
_loading = false;
}
2014-07-17 19:00:28 +00:00
private void PreviousMarkerButton_Click(object sender, EventArgs e)
{
2014-07-17 19:00:28 +00:00
Tastudio.GoToPreviousMarker();
}
2014-07-17 19:00:28 +00:00
private void PauseButton_Click(object sender, EventArgs e)
{
Tastudio.TogglePause();
}
private void NextMarkerButton_Click(object sender, EventArgs e)
{
Tastudio.GoToNextMarker();
}
2014-07-27 17:49:25 +00:00
private void TurboSeekCheckbox_CheckedChanged(object sender, EventArgs e)
{
if (!_loading)
{
Global.Config.TurboSeek ^= true;
}
2014-07-27 17:49:25 +00:00
}
private void AutoRestoreCheckbox_CheckedChanged(object sender, EventArgs e)
{
if (!_loading)
{
Tastudio.Settings.AutoRestoreLastPosition ^= true;
}
}
2014-10-11 19:43:05 +00:00
private void FollowCursorCheckbox_CheckedChanged(object sender, EventArgs e)
{
if (!_loading)
2014-10-11 19:43:05 +00:00
{
Tastudio.Settings.FollowCursor ^= true;
if (Tastudio.Settings.FollowCursor)
2014-10-11 19:43:05 +00:00
{
Tastudio.SetVisibleIndex();
Tastudio.RefreshDialog();
}
}
}
private void RecordingModeCheckbox_MouseClick(object sender, MouseEventArgs e)
{
RecordingMode ^= true;
2017-02-19 07:30:10 +00:00
Tastudio.WasRecording = RecordingMode; // hard reset at manual click
}
private void RewindButton_MouseDown(object sender, MouseEventArgs e)
{
GlobalWin.MainForm.PressRewind = true;
}
private void RewindButton_MouseUp(object sender, MouseEventArgs e)
{
GlobalWin.MainForm.PressRewind = false;
}
private void RewindButton_MouseLeave(object sender, EventArgs e)
{
GlobalWin.MainForm.PressRewind = false;
}
private void FrameAdvanceButton_MouseDown(object sender, MouseEventArgs e)
{
GlobalWin.MainForm.HoldFrameAdvance = true;
}
private void FrameAdvanceButton_MouseLeave(object sender, EventArgs e)
{
GlobalWin.MainForm.HoldFrameAdvance = false;
}
private void FrameAdvanceButton_MouseUp(object sender, MouseEventArgs e)
{
GlobalWin.MainForm.HoldFrameAdvance = false;
}
}
}