diff --git a/Core/GameConnection.h b/Core/GameConnection.h new file mode 100644 index 00000000..7d8c920e --- /dev/null +++ b/Core/GameConnection.h @@ -0,0 +1,34 @@ +#pragma once +#include "stdafx.h" +#include "NetMessage.h" +#include "../Utilities/Socket.h" +#include "../Utilities/SimpleLock.h" + +class GameConnection +{ +protected: + shared_ptr _socket; + char _readBuffer[0x40000]; + char _messageBuffer[0x40000]; + int _readPosition = 0; + SimpleLock _socketLock; + +private: + void ReadSocket(); + + bool ExtractMessage(char *buffer, uint32_t &messageLength); + NetMessage* ReadMessage(); + + virtual void ProcessMessage(NetMessage* message) = 0; + +protected: + void SendNetMessage(NetMessage &message); + +public: + GameConnection(shared_ptr socket); + + bool ConnectionError(); + + void ProcessMessages(); + +}; \ No newline at end of file diff --git a/Core/VirtualController.h b/Core/VirtualController.h new file mode 100644 index 00000000..a0f9473d --- /dev/null +++ b/Core/VirtualController.h @@ -0,0 +1,24 @@ +#pragma once + +#include "stdafx.h" +#include "IControlDevice.h" +#include "../Utilities/SimpleLock.h" + +class VirtualController : public IControlDevice +{ + list _inputData; + bool _paused = false; + atomic _queueSize; + atomic _waiting; + atomic _shutdown; + SimpleLock _writeLock; + uint8_t _port; + uint32_t _minimumBuffer = 3; + +public: + VirtualController(uint8_t port); + ~VirtualController(); + + ButtonState GetButtonState(); + void PushState(uint8_t state); +}; diff --git a/GUI/GUI.vcxproj b/GUI/GUI.vcxproj index 2f79ac97..4be9f312 100644 --- a/GUI/GUI.vcxproj +++ b/GUI/GUI.vcxproj @@ -119,7 +119,6 @@ - diff --git a/GUI/GUI.vcxproj.filters b/GUI/GUI.vcxproj.filters index 256caa1c..b54f6f9c 100644 --- a/GUI/GUI.vcxproj.filters +++ b/GUI/GUI.vcxproj.filters @@ -21,9 +21,6 @@ Header Files - - Header Files - Header Files diff --git a/GUI/stdafx.h b/GUI/stdafx.h index fd6c683c..0bc490a2 100644 --- a/GUI/stdafx.h +++ b/GUI/stdafx.h @@ -5,7 +5,7 @@ #pragma once -#include "targetver.h" +#include #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers // Windows Header Files: diff --git a/Utilities/stdafx.h b/Utilities/stdafx.h index 126ee7ce..9b00d683 100644 --- a/Utilities/stdafx.h +++ b/Utilities/stdafx.h @@ -1,6 +1,6 @@ #pragma once -#include "targetver.h" +#include #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers #include diff --git a/Utilities/targetver.h b/Utilities/targetver.h deleted file mode 100644 index 87c0086d..00000000 --- a/Utilities/targetver.h +++ /dev/null @@ -1,8 +0,0 @@ -#pragma once - -// Including SDKDDKVer.h defines the highest available Windows platform. - -// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and -// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. - -#include