BizHawk/BizHawk.Client.Common/movie/interfaces/IMovieSession.cs

43 lines
1.2 KiB
C#

using System.IO;
using BizHawk.Emulation.Common;
namespace BizHawk.Client.Common
{
public interface IMovieSession
{
IMovie Movie { get; set; }
IMovie QueuedMovie { get; }
IMovieController MovieControllerAdapter { get; }
IMovieController MovieControllerInstance();
MultitrackRecorder MultiTrack { get; }
IController PreviousFrame { get; }
IController CurrentInput { get; }
bool ReadOnly { get; set; }
bool MovieIsQueued { get; }
bool? PreviousNES_InQuickNES { get; set; }
bool? PreviousSNES_InSnes9x { get; set; }
bool? PreviousGBA_UsemGBA { get; set; }
void HandleMovieOnFrameLoop();
void HandleMovieAfterFrameLoop();
void HandleMovieSaveState(TextWriter writer);
bool HandleMovieLoadState(string path);
// To function as a MovieSession, you must have hacky LoadState steps, non-hacky steps just won't do
bool HandleMovieLoadState_HackyStep1(TextReader reader);
bool HandleMovieLoadState_HackyStep2(TextReader reader);
ILogEntryGenerator LogGeneratorInstance();
void QueueNewMovie(IMovie movie, bool record, IEmulator emulator);
void RunQueuedMovie(bool recordMode);
void ToggleMultitrack();
void StopMovie(bool saveChanges = true);
}
}