using System.Collections.Generic; using BizHawk.Emulation.Common; namespace BizHawk.Client.Common { public interface ILogEntryGenerator { /// /// Sets the controller source used to generate an input log entry /// void SetSource(IController source); /// /// Generates an input log entry for the current state of Source /// string GenerateLogEntry(); /// /// Generates a human readable key that will specify the names of the /// buttons and the order they are in. This is intended to simply be /// documentation of the meaning of the mnemonics and not to be used to /// enforce the mnemonic values /// string GenerateLogKey(); /// /// Generates a dictionary of button names to their corresponding mnemonic values /// Dictionary Map(); /// /// Generates a display friendly version of the input log entry /// string GenerateInputDisplay(); /// /// Gets a value indicating whether or not the current controller state is "empty" /// bool IsEmpty { get; } /// /// Gets an input log entry that is considered empty. (booleans will be false, floats will be 0) /// string EmptyEntry { get; } /// /// Gets a movie controller adapter in the same state as the log entry /// /// IMovieController MovieControllerAdapter { get; } } }