BizHawk/BizHawk.Client.Common/movie/bkm/BkmMovie.ModeApi.cs

71 lines
1.3 KiB
C#
Raw Normal View History

using System.Linq;
namespace BizHawk.Client.Common
2014-06-12 23:57:23 +00:00
{
2014-06-29 03:03:27 +00:00
public partial class BkmMovie
2014-06-12 23:57:23 +00:00
{
private enum Moviemode { Inactive, Play, Record, Finished }
private Moviemode _mode = Moviemode.Inactive;
public bool IsPlaying => _mode == Moviemode.Play || _mode == Moviemode.Finished;
2014-06-12 23:57:23 +00:00
2017-04-15 20:37:30 +00:00
public bool IsRecording => _mode == Moviemode.Record;
2014-06-12 23:57:23 +00:00
2017-04-15 20:37:30 +00:00
public bool IsActive => _mode != Moviemode.Inactive;
2014-06-12 23:57:23 +00:00
2017-04-15 20:37:30 +00:00
public bool IsFinished => _mode == Moviemode.Finished;
2014-06-12 23:57:23 +00:00
2017-04-15 20:37:30 +00:00
public void StartNewRecording()
2014-06-12 23:57:23 +00:00
{
_mode = Moviemode.Record;
if (Global.Config.EnableBackupMovies && _makeBackup && _log.Any())
2014-06-12 23:57:23 +00:00
{
SaveBackup();
_makeBackup = false;
}
_log.Clear();
}
public void StartNewPlayback()
{
_mode = Moviemode.Play;
}
public void SwitchToRecord()
{
_mode = Moviemode.Record;
}
public void SwitchToPlay()
{
_mode = Moviemode.Play;
Save();
}
public bool Stop(bool saveChanges = true)
2014-06-12 23:57:23 +00:00
{
bool saved = false;
2014-06-12 23:57:23 +00:00
if (saveChanges)
{
if (_mode == Moviemode.Record || _changes)
{
Save();
saved = true;
2014-06-12 23:57:23 +00:00
}
}
_changes = false;
_mode = Moviemode.Inactive;
return saved;
2014-06-12 23:57:23 +00:00
}
public void FinishedMode()
2014-06-12 23:57:23 +00:00
{
_mode = Moviemode.Finished;
2014-06-12 23:57:23 +00:00
}
}
}