mirror of
https://github.com/SourMesen/Mesen2.git
synced 2025-04-02 10:21:44 -04:00
45 lines
1.8 KiB
C#
45 lines
1.8 KiB
C#
using Mesen.Config;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace Mesen.Interop
|
|
{
|
|
public class NetplayApi
|
|
{
|
|
private const string DllPath = EmuApi.DllName;
|
|
|
|
[DllImport(DllPath)] public static extern void StartServer(UInt16 port, [MarshalAs(UnmanagedType.LPUTF8Str)]string password);
|
|
[DllImport(DllPath)] public static extern void StopServer();
|
|
[DllImport(DllPath)] [return: MarshalAs(UnmanagedType.I1)] public static extern bool IsServerRunning();
|
|
[DllImport(DllPath)] public static extern void Connect([MarshalAs(UnmanagedType.LPUTF8Str)]string host, UInt16 port, [MarshalAs(UnmanagedType.LPUTF8Str)]string password, [MarshalAs(UnmanagedType.I1)]bool spectator);
|
|
[DllImport(DllPath)] public static extern void Disconnect();
|
|
[DllImport(DllPath)] [return: MarshalAs(UnmanagedType.I1)] public static extern bool IsConnected();
|
|
|
|
[DllImport(DllPath)] private static extern void NetPlayGetControllerList([In,Out] NetplayControllerUsageInfo[] controllers, ref Int32 length);
|
|
public static NetplayControllerUsageInfo[] NetPlayGetControllerList()
|
|
{
|
|
NetplayControllerUsageInfo[] controllers = new NetplayControllerUsageInfo[16];
|
|
int length = 16;
|
|
NetplayApi.NetPlayGetControllerList(controllers, ref length);
|
|
Array.Resize(ref controllers, length);
|
|
return controllers;
|
|
}
|
|
|
|
[DllImport(DllPath)] public static extern void NetPlaySelectController(NetplayControllerInfo controllerPort);
|
|
[DllImport(DllPath)] public static extern NetplayControllerInfo NetPlayGetControllerPort();
|
|
}
|
|
|
|
public struct NetplayControllerInfo
|
|
{
|
|
public byte Port;
|
|
public byte SubPort;
|
|
}
|
|
|
|
public struct NetplayControllerUsageInfo
|
|
{
|
|
public NetplayControllerInfo Port;
|
|
public ControllerType Type;
|
|
[MarshalAs(UnmanagedType.I1)] public bool InUse;
|
|
}
|
|
}
|