From e4a01753518d6d88a0fd657ec76be04b06af793c Mon Sep 17 00:00:00 2001 From: YoshiRulz Date: Sat, 5 Dec 2020 05:26:41 +1000 Subject: [PATCH] Extract interface from NamedLuaFunction --- .../lua/INamedLuaFunction.cs | 17 +++++++++++++++++ src/BizHawk.Client.Common/lua/LuaLibraries.cs | 4 ++-- .../lua/NamedLuaFunction.cs | 2 +- .../tools/Lua/UnixLuaLibraries.cs | 4 ++-- .../tools/Lua/Win32LuaLibraries.cs | 6 +++--- 5 files changed, 25 insertions(+), 8 deletions(-) create mode 100644 src/BizHawk.Client.Common/lua/INamedLuaFunction.cs diff --git a/src/BizHawk.Client.Common/lua/INamedLuaFunction.cs b/src/BizHawk.Client.Common/lua/INamedLuaFunction.cs new file mode 100644 index 0000000000..618af4adfd --- /dev/null +++ b/src/BizHawk.Client.Common/lua/INamedLuaFunction.cs @@ -0,0 +1,17 @@ +using System; + +using BizHawk.Emulation.Common; + +namespace BizHawk.Client.Common +{ + public interface INamedLuaFunction + { + Action Callback { get; } + + Guid Guid { get; } + + MemoryCallbackDelegate MemCallback { get; } + + string Name { get; } + } +} diff --git a/src/BizHawk.Client.Common/lua/LuaLibraries.cs b/src/BizHawk.Client.Common/lua/LuaLibraries.cs index c19d344107..717e875f04 100644 --- a/src/BizHawk.Client.Common/lua/LuaLibraries.cs +++ b/src/BizHawk.Client.Common/lua/LuaLibraries.cs @@ -44,14 +44,14 @@ namespace BizHawk.Client.Common public abstract void CallSaveStateEvent(string name); public abstract void Close(); - public abstract NamedLuaFunction CreateAndRegisterNamedFunction(LuaFunction function, string theEvent, Action logCallback, LuaFile luaFile, string name = null); + public abstract INamedLuaFunction CreateAndRegisterNamedFunction(LuaFunction function, string theEvent, Action logCallback, LuaFile luaFile, string name = null); public abstract void EndLuaDrawing(); public abstract void ExecuteString(string command); public abstract NLuaTableHelper GetTableHelper(); - public abstract bool RemoveNamedFunctionMatching(Func predicate); + public abstract bool RemoveNamedFunctionMatching(Func predicate); public abstract void Restart(IEmulatorServiceProvider newServiceProvider); public abstract (bool WaitForFrame, bool Terminated) ResumeScript(LuaFile lf); diff --git a/src/BizHawk.Client.Common/lua/NamedLuaFunction.cs b/src/BizHawk.Client.Common/lua/NamedLuaFunction.cs index 1d0bccc32d..2b676dfaaf 100644 --- a/src/BizHawk.Client.Common/lua/NamedLuaFunction.cs +++ b/src/BizHawk.Client.Common/lua/NamedLuaFunction.cs @@ -5,7 +5,7 @@ using BizHawk.Emulation.Common; namespace BizHawk.Client.Common { - public class NamedLuaFunction + public sealed class NamedLuaFunction : INamedLuaFunction { private readonly LuaFunction _function; diff --git a/src/BizHawk.Client.EmuHawk/tools/Lua/UnixLuaLibraries.cs b/src/BizHawk.Client.EmuHawk/tools/Lua/UnixLuaLibraries.cs index eeee59ee60..4c809a95b4 100644 --- a/src/BizHawk.Client.EmuHawk/tools/Lua/UnixLuaLibraries.cs +++ b/src/BizHawk.Client.EmuHawk/tools/Lua/UnixLuaLibraries.cs @@ -33,7 +33,7 @@ namespace BizHawk.Client.EmuHawk { } - public override NamedLuaFunction CreateAndRegisterNamedFunction(LuaFunction function, string theEvent, Action logCallback, LuaFile luaFile, string name = null) => null; + public override INamedLuaFunction CreateAndRegisterNamedFunction(LuaFunction function, string theEvent, Action logCallback, LuaFile luaFile, string name = null) => null; public override void EndLuaDrawing() { @@ -48,7 +48,7 @@ namespace BizHawk.Client.EmuHawk public override LuaFunctionList RegisteredFunctions => EmptyLuaFunList; public override GuiLuaLibrary GuiLibrary => null; - public override bool RemoveNamedFunctionMatching(Func predicate) => false; + public override bool RemoveNamedFunctionMatching(Func predicate) => false; public override void Restart(IEmulatorServiceProvider newServiceProvider) { diff --git a/src/BizHawk.Client.EmuHawk/tools/Lua/Win32LuaLibraries.cs b/src/BizHawk.Client.EmuHawk/tools/Lua/Win32LuaLibraries.cs index 4f435afda6..2ca0e152fa 100644 --- a/src/BizHawk.Client.EmuHawk/tools/Lua/Win32LuaLibraries.cs +++ b/src/BizHawk.Client.EmuHawk/tools/Lua/Win32LuaLibraries.cs @@ -232,16 +232,16 @@ namespace BizHawk.Client.EmuHawk GuiLibrary.Dispose(); } - public override NamedLuaFunction CreateAndRegisterNamedFunction(LuaFunction function, string theEvent, Action logCallback, LuaFile luaFile, string name = null) + public override INamedLuaFunction CreateAndRegisterNamedFunction(LuaFunction function, string theEvent, Action logCallback, LuaFile luaFile, string name = null) { var nlf = new NamedLuaFunction(function, theEvent, logCallback, luaFile, name); RegisteredFunctions.Add(nlf); return nlf; } - public override bool RemoveNamedFunctionMatching(Func predicate) + public override bool RemoveNamedFunctionMatching(Func predicate) { - var nlf = RegisteredFunctions.FirstOrDefault(predicate); + var nlf = (NamedLuaFunction) RegisteredFunctions.FirstOrDefault(predicate); if (nlf == null) return false; RegisteredFunctions.Remove(nlf, _mainForm.Emulator); return true;