mirror of
https://github.com/SourMesen/Mesen2.git
synced 2025-04-02 10:21:44 -04:00
56 lines
No EOL
1.9 KiB
C++
56 lines
No EOL
1.9 KiB
C++
#include "Common.h"
|
|
#include "Core/Shared/Emulator.h"
|
|
#include "Core/Shared/EmuSettings.h"
|
|
#include "Core/Netplay/ClientConnectionData.h"
|
|
#include "Core/Netplay/GameServer.h"
|
|
#include "Core/Netplay/GameClient.h"
|
|
|
|
extern unique_ptr<Emulator> _emu;
|
|
|
|
extern "C" {
|
|
DllExport void __stdcall StartServer(uint16_t port, char* password) { _emu->GetGameServer()->StartServer(port, password); }
|
|
DllExport void __stdcall StopServer() { _emu->GetGameServer()->StopServer(); }
|
|
DllExport bool __stdcall IsServerRunning() { return _emu->GetGameServer()->Started(); }
|
|
|
|
DllExport void __stdcall Connect(char* host, uint16_t port, char* password, bool spectator)
|
|
{
|
|
ClientConnectionData connectionData(host, port, password, spectator);
|
|
_emu->GetGameClient()->Connect(connectionData);
|
|
}
|
|
|
|
DllExport void __stdcall Disconnect() { _emu->GetGameClient()->Disconnect(); }
|
|
DllExport bool __stdcall IsConnected() { return _emu->GetGameClient()->Connected(); }
|
|
|
|
DllExport void __stdcall NetPlayGetControllerList(NetplayControllerUsageInfo* list, int32_t& length)
|
|
{
|
|
vector<NetplayControllerUsageInfo> controllers;
|
|
if(_emu->GetGameServer()->Started()) {
|
|
controllers = _emu->GetGameServer()->GetControllerList();
|
|
} else {
|
|
controllers = _emu->GetGameClient()->GetControllerList();
|
|
}
|
|
|
|
for(size_t i = 0; i < controllers.size() && i < length; i++) {
|
|
list[i] = controllers[i];
|
|
}
|
|
length = (int32_t)controllers.size();
|
|
}
|
|
|
|
DllExport void __stdcall NetPlaySelectController(NetplayControllerInfo controller)
|
|
{
|
|
if(_emu->GetGameServer()->Started()) {
|
|
return _emu->GetGameServer()->SetHostControllerPort(controller);
|
|
} else {
|
|
return _emu->GetGameClient()->SelectController(controller);
|
|
}
|
|
}
|
|
|
|
DllExport NetplayControllerInfo __stdcall NetPlayGetControllerPort()
|
|
{
|
|
if(_emu->GetGameServer()->Started()) {
|
|
return _emu->GetGameServer()->GetHostControllerPort();
|
|
} else {
|
|
return _emu->GetGameClient()->GetControllerPort();
|
|
}
|
|
}
|
|
} |