using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BizHawk.Emulation.Common
{
public class CoreComm
{
public ICoreFileProvider CoreFileProvider;
///
/// if this is set, then the cpu should dump trace info to CpuTraceStream
///
public TraceBuffer Tracer = new TraceBuffer();
///
/// for emu.on_snoop()
///
public InputCallbackSystem InputCallback = new InputCallbackSystem();
public MemoryCallbackSystem MemoryCallbackSystem = new MemoryCallbackSystem();
public double VsyncRate
{
get
{
return VsyncNum / (double)VsyncDen;
}
}
public int VsyncNum = 60;
public int VsyncDen = 1;
//a core should set these if you wish to provide rom status information yourself. otherwise it will be calculated by the frontend in a way you may not like, using RomGame-related concepts.
public string RomStatusAnnotation;
public string RomStatusDetails;
public int ScreenLogicalOffsetX, ScreenLogicalOffsetY;
public bool CpuTraceAvailable = false;
public string TraceHeader = "Instructions";
// size hint to a/v out resizer. this probably belongs in VideoProvider? but it's somewhat different than VirtualWidth...
public int NominalWidth = 640;
public int NominalHeight = 480;
public bool DriveLED = false;
public bool UsesDriveLed = false;
///
/// show a message. reasonably annoying (dialog box), shouldn't be used most of the time
///
public Action ShowMessage { get; private set; }
///
/// show a message. less annoying (OSD message). Should be used for ignorable helpful messages
///
public Action Notify { get; private set; }
public CoreComm(Action ShowMessage, Action NotifyMessage)
{
this.ShowMessage = ShowMessage;
this.Notify = NotifyMessage;
}
public Func