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; }
}
}