diff options
4 files changed, 68 insertions, 0 deletions
diff --git a/core/bindings/lang/csharp/NoGamepads_CharpBindings/NoGamepads_Core/Data/LoggerManagement.cs b/core/bindings/lang/csharp/NoGamepads_CharpBindings/NoGamepads_Core/Data/LoggerManagement.cs new file mode 100644 index 0000000..f1d2bd9 --- /dev/null +++ b/core/bindings/lang/csharp/NoGamepads_CharpBindings/NoGamepads_Core/Data/LoggerManagement.cs @@ -0,0 +1,11 @@ +using NoGamepads_Sharp; + +namespace NoGamepads_Core.Data; + +public static class LoggerManagement +{ + public static void EnableLogger(int level) + { + nogamepads_data.EnableLogger((byte) level); + } +}
\ No newline at end of file diff --git a/core/bindings/lang/csharp/NoGamepads_CharpBindings/NoGamepads_Core/Services/Tcp/PadTcpClient.cs b/core/bindings/lang/csharp/NoGamepads_CharpBindings/NoGamepads_Core/Services/Tcp/PadTcpClient.cs index 40c9aba..6eb81d9 100644 --- a/core/bindings/lang/csharp/NoGamepads_CharpBindings/NoGamepads_Core/Services/Tcp/PadTcpClient.cs +++ b/core/bindings/lang/csharp/NoGamepads_CharpBindings/NoGamepads_Core/Services/Tcp/PadTcpClient.cs @@ -1,6 +1,31 @@ +using NoGamepads_Core.Runtime; +using NoGamepads_Sharp; + namespace NoGamepads_Core.Services.Tcp; public class PadTcpClient { + private readonly FfiTcpClientService _serviceFfi; + + public PadTcpClient(ControllerRuntime runtime) + { + _serviceFfi = nogamepads_data.TcpClientBuild(runtime.Borrow()); + } + + public PadTcpClient SetAddressV4(int a0 = 127, int a1 = 0, int a2 = 0, int a3 = 1, int port = 5989) + { + nogamepads_data.TcpClientBindAddressV4(_serviceFfi, (byte) a0, (byte) a1, (byte) a2, (byte) a3, (byte) port); + return this; + } + public PadTcpClient SetAddressV6(string address = "::1", int port = 5989) + { + nogamepads_data.TcpClientBindAddressV6(_serviceFfi, address, (byte) port); + return this; + } + + public void Connect() + { + nogamepads_data.TcpClientConnect(_serviceFfi); + } }
\ No newline at end of file diff --git a/core/bindings/lang/csharp/NoGamepads_CharpBindings/NoGamepads_Core/Services/Tcp/PadTcpServer.cs b/core/bindings/lang/csharp/NoGamepads_CharpBindings/NoGamepads_Core/Services/Tcp/PadTcpServer.cs index bfbef46..05deda9 100644 --- a/core/bindings/lang/csharp/NoGamepads_CharpBindings/NoGamepads_Core/Services/Tcp/PadTcpServer.cs +++ b/core/bindings/lang/csharp/NoGamepads_CharpBindings/NoGamepads_Core/Services/Tcp/PadTcpServer.cs @@ -1,6 +1,31 @@ +using NoGamepads_Core.Runtime; +using NoGamepads_Sharp; + namespace NoGamepads_Core.Services.Tcp; public class PadTcpServer { + private readonly FfiTcpServerService _serviceFfi; + + public PadTcpServer(GameRuntime runtime) + { + _serviceFfi = nogamepads_data.TcpServerBuild(runtime.Borrow()); + } + + public PadTcpServer SetAddressV4(int a0 = 127, int a1 = 0, int a2 = 0, int a3 = 1, int port = 5989) + { + nogamepads_data.TcpServerBindAddressV4(_serviceFfi, (byte) a0, (byte) a1, (byte) a2, (byte) a3, (byte) port); + return this; + } + public PadTcpServer SetAddressV6(string address = "::1", int port = 5989) + { + nogamepads_data.TcpServerBindAddressV6(_serviceFfi, address, (byte) port); + return this; + } + + public void BlockOn() + { + nogamepads_data.TcpServerListeningBlockOn(_serviceFfi); + } }
\ No newline at end of file diff --git a/core/bindings/lang/csharp/NoGamepads_CharpBindings/NoGamepads_Example/Program.cs b/core/bindings/lang/csharp/NoGamepads_CharpBindings/NoGamepads_Example/Program.cs index 03569b7..48ec6f6 100644 --- a/core/bindings/lang/csharp/NoGamepads_CharpBindings/NoGamepads_Example/Program.cs +++ b/core/bindings/lang/csharp/NoGamepads_CharpBindings/NoGamepads_Example/Program.cs @@ -1,5 +1,6 @@ using NoGamepads_Core.Data; using NoGamepads_Core.Runtime; +using NoGamepads_Core.Services.Tcp; using NoGamepads_Sharp; namespace NoGamepads_Example; @@ -8,6 +9,8 @@ internal class Program { public static void Main(string[] args) { + LoggerManagement.EnableLogger(2); + Player player = new Player("CatilGrass", "123456"); player.Hue = 250; @@ -19,5 +22,9 @@ internal class Program ControllerData data = new ControllerData(player); ControllerRuntime runtime = new ControllerRuntime(data); + + new PadTcpClient(runtime) + .SetAddressV4() + .Connect(); } }
\ No newline at end of file |
