From 770ddc26dbd987262790158206d475c6e5abe3ee Mon Sep 17 00:00:00 2001 From: adelikat <adelikat@tasvideos.org> Date: Sun, 6 Apr 2014 16:49:05 +0000 Subject: [PATCH] Add some more documentation to IMovie.cs --- BizHawk.Client.Common/movie/IMovie.cs | 44 +++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/BizHawk.Client.Common/movie/IMovie.cs b/BizHawk.Client.Common/movie/IMovie.cs index e4e4836d17..b394cf754a 100644 --- a/BizHawk.Client.Common/movie/IMovie.cs +++ b/BizHawk.Client.Common/movie/IMovie.cs @@ -49,11 +49,43 @@ namespace BizHawk.Client.Common #region File Handling API + // Filename of the movie, settable by the client string Filename { get; set; } + + /// <summary> + /// Tells the movie to load the contents of Filename + /// </summary> + /// <returns>Return whether or not the file was successfully loaded</returns> bool Load(); + + /// <summary> + /// Instructs the movie to save the current contents to Filename + /// </summary> void Save(); + + /// <summary> + /// Extracts the current input log from the user. + /// This is provided as the means for putting the input log into savestates, + /// for the purpose of out of order savestate loading (known as "bullet-proof rerecording") + /// </summary> + /// <returns>returns a string represntation of the input log in its current state</returns> string GetInputLog(); + + /// <summary> + /// Compares the input log inside reader with the movie's current input to see if the reader's input belongs to the same timeline, + /// in other words, if reader's input is completely contained in the movie's input, then it is considered in the same timeline + /// </summary> + /// <param name="reader">The reader containing the contents of the input log</param> + /// <param name="errorMessage">Returns an error message, if any</param> + /// <returns>Returns whether or not the input log in reader is in the same timeline as the movie</returns> bool CheckTimeLines(TextReader reader, out string errorMessage); + + /// <summary> + /// Takes reader and extracts the input log, then replaces the movies input log with it + /// </summary> + /// <param name="reader">The reader containing the contents of the input log</param> + /// <param name="errorMessage">Returns an error message, if any</param> + /// <returns></returns> bool ExtractInputLog(TextReader reader, out string errorMessage); #endregion @@ -118,7 +150,19 @@ namespace BizHawk.Client.Common /// </summary> void RecordFrame(int frame, IController source); + /// <summary> + /// Instructs the movie to remove all input from its input log after frame, + /// AFter truncating, frame will be the last frame of input in the movie's input log + /// </summary> + /// <param name="frame">The frame at which to truncate</param> void Truncate(int frame); + + /// <summary> + /// Gets a single frame of input from the movie at the given frame + /// The input will be in the same format as represented in the input log when saved as a file + /// </summary> + /// <param name="frame">The frame of input to be retrieved</param> + /// <returns></returns> string GetInput(int frame); #endregion