using System; namespace BizHawk.Emulation.Common { /// /// This object facilitates communications between client and core /// The primary use is to provide a client => core communication, such as providing client-side callbacks for a core to use /// Any communications that can be described as purely a Core -> Client system, should be provided as an instead /// It is important that by design this class stay immutable /// public class CoreComm { public CoreComm( Action showMessage, Action notifyMessage, ICoreFileProvider coreFileProvider) { ShowMessage = showMessage; Notify = notifyMessage; CoreFileProvider = coreFileProvider; } public ICoreFileProvider CoreFileProvider { get; } /// /// Gets a message to show. reasonably annoying (dialog box), shouldn't be used most of the time /// public Action ShowMessage { get; } /// /// Gets a message to show. less annoying (OSD message). Should be used for ignorable helpful messages /// public Action Notify { get; } } }