59 lines
1.8 KiB
C#
59 lines
1.8 KiB
C#
![]() |
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
|
|||
|
using BizHawk.Emulation.Common;
|
|||
|
using BizHawk.Emulation.Common.IEmulatorExtensions;
|
|||
|
|
|||
|
namespace BizHawk.Client.Common
|
|||
|
{
|
|||
|
public abstract class PluginBase
|
|||
|
{
|
|||
|
[RequiredService]
|
|||
|
private IEmulator Emulator { get; set; }
|
|||
|
|
|||
|
[RequiredService]
|
|||
|
private IMemoryDomains Domains { get; set; }
|
|||
|
|
|||
|
[OptionalService]
|
|||
|
private IInputPollable InputPollableCore { get; set; }
|
|||
|
|
|||
|
[OptionalService]
|
|||
|
private IDebuggable DebuggableCore { get; set; }
|
|||
|
|
|||
|
public abstract void PreFrameCallback();
|
|||
|
public abstract void PostFrameCallback();
|
|||
|
public abstract void SaveStateCallback(string name);
|
|||
|
public abstract void LoadStateCallback(string name);
|
|||
|
public abstract void InputPollCallback();
|
|||
|
|
|||
|
protected virtual void AddReadCallback(Action cb, uint address, string domain)
|
|||
|
{
|
|||
|
if (DebuggableCore.MemoryCallbacksAvailable())
|
|||
|
{
|
|||
|
DebuggableCore.MemoryCallbacks.Add(new MemoryCallback(domain, MemoryCallbackType.Read, "Lua Hook", cb, address, null));
|
|||
|
}
|
|||
|
}
|
|||
|
protected virtual void AddWriteCallback(Action cb, uint address, string domain)
|
|||
|
{
|
|||
|
if (DebuggableCore.MemoryCallbacksAvailable())
|
|||
|
{
|
|||
|
DebuggableCore.MemoryCallbacks.Add(new MemoryCallback(domain, MemoryCallbackType.Write, "Lua Hook", cb, address, null));
|
|||
|
}
|
|||
|
}
|
|||
|
protected virtual void AddExecCallback(Action cb, uint address, string domain)
|
|||
|
{
|
|||
|
if (DebuggableCore.MemoryCallbacksAvailable() && DebuggableCore.MemoryCallbacks.ExecuteCallbacksAvailable)
|
|||
|
{
|
|||
|
DebuggableCore.MemoryCallbacks.Add(new MemoryCallback(domain, MemoryCallbackType.Execute, "Lua Hook", cb, address, null));
|
|||
|
}
|
|||
|
}
|
|||
|
protected virtual void RemoveMemoryCallback(Action cb)
|
|||
|
{
|
|||
|
if (DebuggableCore.MemoryCallbacksAvailable())
|
|||
|
{
|
|||
|
DebuggableCore.MemoryCallbacks.Remove(cb);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|