Mesen-SX/Core/GameClient.h

43 lines
1,020 B
C
Raw Normal View History

2019-10-20 20:05:39 -04:00
#pragma once
#include "stdafx.h"
#include <thread>
#include "INotificationListener.h"
using std::thread;
class Socket;
class GameClientConnection;
class ClientConnectionData;
class Console;
class GameClient : public INotificationListener
{
private:
static shared_ptr<GameClient> _instance;
shared_ptr<Console> _console;
unique_ptr<thread> _clientThread;
atomic<bool> _stop;
shared_ptr<GameClientConnection> _connection;
bool _connected = false;
static shared_ptr<GameClientConnection> GetConnection();
2020-12-19 23:30:09 +03:00
void PrivateConnect(ClientConnectionData& connectionData);
2019-10-20 20:05:39 -04:00
void Exec();
public:
GameClient(shared_ptr<Console> console);
virtual ~GameClient();
static bool Connected();
2020-12-19 23:30:09 +03:00
static void Connect(shared_ptr<Console> console, ClientConnectionData& connectionData);
2019-10-20 20:05:39 -04:00
static void Disconnect();
static void SelectController(uint8_t port);
static uint8_t GetControllerPort();
static uint8_t GetAvailableControllers();
void ProcessNotification(ConsoleNotificationType type, void* parameter) override;
2020-12-19 23:30:09 +03:00
};