#pragma once #include "stdafx.h" #include #include "INotificationListener.h" using std::thread; class Socket; class GameClientConnection; class ClientConnectionData; class GameClient : public INotificationListener { private: static unique_ptr Instance; unique_ptr _clientThread; atomic _stop; shared_ptr _socket; unique_ptr _connection; bool _connected = false; void PrivateConnect(shared_ptr connectionData); void Exec(); public: GameClient(); ~GameClient(); static bool Connected(); static void Connect(shared_ptr connectionData); static void Disconnect(); static void SelectController(uint8_t port); static uint8_t GetControllerPort(); static uint8_t GetAvailableControllers(); static uint8_t GetControllerState(uint8_t port); void ProcessNotification(ConsoleNotificationType type, void* parameter); };