BizHawk/BizHawk.Client.Common/movie/bk2/Bk2Movie.ModeApi.cs

73 lines
1.3 KiB
C#
Raw Normal View History

2014-06-29 03:03:27 +00:00
using System.Linq;
2014-06-13 00:15:55 +00:00
namespace BizHawk.Client.Common
{
2014-06-29 03:03:27 +00:00
public partial class Bk2Movie
2014-06-13 00:15:55 +00:00
{
2017-05-09 18:19:55 +00:00
protected enum Moviemode
{
Inactive, Play, Record, Finished
}
2017-05-19 18:17:07 +00:00
protected Moviemode Mode { get; set; } = Moviemode.Inactive;
2014-06-13 00:15:55 +00:00
2017-05-19 18:17:07 +00:00
public bool IsActive => Mode != Moviemode.Inactive;
2014-06-13 00:15:55 +00:00
2017-05-19 18:17:07 +00:00
public bool IsPlaying => Mode == Moviemode.Play || Mode == Moviemode.Finished;
2014-06-13 00:15:55 +00:00
2017-05-19 18:17:07 +00:00
public bool IsRecording => Mode == Moviemode.Record;
2014-06-13 00:15:55 +00:00
2017-05-19 18:17:07 +00:00
public bool IsFinished => Mode == Moviemode.Finished;
2014-06-13 00:15:55 +00:00
2017-04-15 20:37:30 +00:00
public virtual void StartNewRecording()
2014-06-13 00:15:55 +00:00
{
2017-05-19 18:17:07 +00:00
Mode = Moviemode.Record;
if (Global.Config.EnableBackupMovies && MakeBackup && Log.Any())
2014-06-13 00:43:55 +00:00
{
SaveBackup();
MakeBackup = false;
2014-06-13 00:43:55 +00:00
}
2017-05-19 18:17:07 +00:00
Log.Clear();
2014-06-13 00:15:55 +00:00
}
public virtual void StartNewPlayback()
2014-06-13 00:15:55 +00:00
{
2017-05-19 18:17:07 +00:00
Mode = Moviemode.Play;
2014-06-13 00:15:55 +00:00
}
public virtual void SwitchToRecord()
2014-06-13 00:15:55 +00:00
{
2017-05-19 18:17:07 +00:00
Mode = Moviemode.Record;
2014-06-13 00:15:55 +00:00
}
public virtual void SwitchToPlay()
2014-06-13 00:15:55 +00:00
{
2017-05-19 18:17:07 +00:00
Mode = Moviemode.Play;
2014-06-13 00:15:55 +00:00
}
public virtual bool Stop(bool saveChanges = true)
2014-06-13 00:15:55 +00:00
{
bool saved = false;
2014-06-13 00:43:55 +00:00
if (saveChanges)
{
2017-05-19 18:17:07 +00:00
if (Mode == Moviemode.Record || (IsActive && Changes))
2014-06-13 00:43:55 +00:00
{
Save();
saved = true;
2014-06-13 00:43:55 +00:00
}
}
Changes = false;
2017-05-19 18:17:07 +00:00
Mode = Moviemode.Inactive;
return saved;
2014-06-13 00:15:55 +00:00
}
2014-06-14 14:04:54 +00:00
public void FinishedMode()
2014-06-14 14:04:54 +00:00
{
2017-05-19 18:17:07 +00:00
Mode = Moviemode.Finished;
2014-06-14 14:04:54 +00:00
}
2014-06-13 00:15:55 +00:00
}
}