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
|
|
|
|
|
}
|
|
|
|
|
|
2014-08-23 18:02:02 +00:00
|
|
|
|
protected Moviemode _mode = Moviemode.Inactive;
|
2014-06-13 00:15:55 +00:00
|
|
|
|
|
2017-04-14 19:59:01 +00:00
|
|
|
|
public bool IsActive => _mode != Moviemode.Inactive;
|
2014-06-13 00:15:55 +00:00
|
|
|
|
|
2017-04-15 20:37:30 +00:00
|
|
|
|
public bool IsPlaying => _mode == Moviemode.Play || _mode == Moviemode.Finished;
|
2014-06-13 00:15:55 +00:00
|
|
|
|
|
2017-04-15 20:37:30 +00:00
|
|
|
|
public bool IsRecording => _mode == Moviemode.Record;
|
2014-06-13 00:15:55 +00:00
|
|
|
|
|
2017-04-15 20:37:30 +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
|
|
|
|
{
|
2014-06-13 00:43:55 +00:00
|
|
|
|
_mode = Moviemode.Record;
|
2014-11-15 21:49:58 +00:00
|
|
|
|
if (Global.Config.EnableBackupMovies && MakeBackup && _log.Any())
|
2014-06-13 00:43:55 +00:00
|
|
|
|
{
|
|
|
|
|
SaveBackup();
|
2014-11-15 21:49:58 +00:00
|
|
|
|
MakeBackup = false;
|
2014-06-13 00:43:55 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_log.Clear();
|
2014-06-13 00:15:55 +00:00
|
|
|
|
}
|
|
|
|
|
|
2014-08-23 18:02:02 +00:00
|
|
|
|
public virtual void StartNewPlayback()
|
2014-06-13 00:15:55 +00:00
|
|
|
|
{
|
2014-06-13 00:43:55 +00:00
|
|
|
|
_mode = Moviemode.Play;
|
2014-06-13 00:15:55 +00:00
|
|
|
|
}
|
|
|
|
|
|
2014-08-23 18:02:02 +00:00
|
|
|
|
public virtual void SwitchToRecord()
|
2014-06-13 00:15:55 +00:00
|
|
|
|
{
|
2014-06-13 00:43:55 +00:00
|
|
|
|
_mode = Moviemode.Record;
|
2014-06-13 00:15:55 +00:00
|
|
|
|
}
|
|
|
|
|
|
2014-08-23 18:02:02 +00:00
|
|
|
|
public virtual void SwitchToPlay()
|
2014-06-13 00:15:55 +00:00
|
|
|
|
{
|
2014-06-13 00:43:55 +00:00
|
|
|
|
_mode = Moviemode.Play;
|
2014-06-13 00:15:55 +00:00
|
|
|
|
}
|
|
|
|
|
|
2014-09-27 23:56:23 +00:00
|
|
|
|
public virtual bool Stop(bool saveChanges = true)
|
2014-06-13 00:15:55 +00:00
|
|
|
|
{
|
2014-09-27 23:44:59 +00:00
|
|
|
|
bool saved = false;
|
2014-06-13 00:43:55 +00:00
|
|
|
|
if (saveChanges)
|
|
|
|
|
{
|
2014-08-24 18:07:14 +00:00
|
|
|
|
if (_mode == Moviemode.Record || (IsActive && Changes))
|
2014-06-13 00:43:55 +00:00
|
|
|
|
{
|
|
|
|
|
Save();
|
2014-09-27 23:44:59 +00:00
|
|
|
|
saved = true;
|
2014-06-13 00:43:55 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Changes = false;
|
|
|
|
|
_mode = Moviemode.Inactive;
|
2014-09-27 23:44:59 +00:00
|
|
|
|
|
|
|
|
|
return saved;
|
2014-06-13 00:15:55 +00:00
|
|
|
|
}
|
2014-06-14 14:04:54 +00:00
|
|
|
|
|
2014-07-13 22:36:37 +00:00
|
|
|
|
public void FinishedMode()
|
2014-06-14 14:04:54 +00:00
|
|
|
|
{
|
2014-07-13 22:36:37 +00:00
|
|
|
|
_mode = Moviemode.Finished;
|
2014-06-14 14:04:54 +00:00
|
|
|
|
}
|
2014-06-13 00:15:55 +00:00
|
|
|
|
}
|
|
|
|
|
}
|