1
0
mirror of https://github.com/solemnwarning/directplay-lite synced 2024-12-30 16:45:37 +01:00

45 Commits

Author SHA1 Message Date
Daniel Collins
2d5651350c Fix a few compiler warnings. 2023-12-11 22:45:20 +00:00
Daniel Collins
c8fe35b819 Replace build.bat with VS projects and fix some compile errors. 2023-12-11 22:37:46 +00:00
Daniel Collins
7170581117 Added email address to copyright notices.
Why didn't I do this initially? Its a mystery.
2019-03-17 14:42:02 +00:00
Daniel Collins
3c44ccf06e Added GPL license and headers to sources. 2019-03-17 13:56:19 +00:00
Daniel Collins
e1b51c22b1 IDirectPlay8Peer: Allow non-host peers to create groups. 2018-11-12 21:16:07 +00:00
Daniel Collins
7c75bf7f9b IDirectPlay8Peer: Implement SendTo() on groups. 2018-11-11 14:44:10 +00:00
Daniel Collins
6df47cee60 Handle group cleanups for session end etc 2018-11-10 21:34:31 +00:00
Daniel Collins
e8e35c1c45 IDirectPlay8Peer: Added more group tests based on reference behaviour. 2018-11-09 15:24:22 +00:00
Daniel Collins
7cfb9b3a5a Extended IDirectPlay8Peer group tests.
- IDirectPlay8Peer::DestroyGroup()

- IDirectPlay8Peer::RemovePlayerFromGroup()

- IDirectPlay8Peer::GetGroupInfo()

- IDirectPlay8Peer::GetGroupContext()
2018-11-08 01:07:48 +00:00
Daniel Collins
3b1e6d8b5e Send guaranteed messages in soak/performance test. 2018-11-07 09:04:41 +00:00
Daniel Collins
a7a6a4a0da Implement tests for CreateGroup() and AddPlayerToGroup()
They pass against DirectX, if not my code yet.
2018-11-06 23:53:33 +00:00
Daniel Collins
21c5340793 Run client soak test in phases 2018-11-01 09:07:41 +00:00
Daniel Collins
5c44ce26e0 Send messages and track statistics in soak test. 2018-10-31 23:31:25 +00:00
Daniel Collins
685a6c27cf Initial implementation of soak test client side. 2018-10-28 15:47:47 +00:00
Daniel Collins
988ea0c3b6 Initial implementation of soak testing framework 2018-10-28 14:00:20 +00:00
Daniel Collins
5ccf66fceb Implement cancelling of queued asynchronous sends. 2018-10-16 23:25:08 +01:00
Daniel Collins
b74b018ff2 Implement IDirectPlay8Peer::TerminateSession() 2018-10-15 13:29:07 +01:00
Daniel Collins
b44689b38f Implement IDirectPlay8Peer::DestroyPeer() 2018-10-14 17:41:57 +01:00
Daniel Collins
7723fc04e3 Implement player enumeration in IDirectPlay8Peer::EnumPlayersAndGroups() 2018-10-14 13:42:07 +01:00
Daniel Collins
c88355efb9 DirectPlay8Peer: Support cancelling in-progress connections. 2018-10-14 11:18:56 +01:00
Daniel Collins
1b16624577 Handle IDirectPlay8Peer::Close() being called by the host. 2018-10-12 10:14:20 +01:00
Daniel Collins
e7f5d0f68d Proper implementation of IDirectPlay8Peer::Close() 2018-10-11 12:26:20 +01:00
Daniel Collins
818adcbba1 Connect non-host peers in sessions together. 2018-10-05 19:26:05 +01:00
Daniel Collins
a91ded1268 Allow connecting to "IPX" addresses. 2018-10-03 23:28:47 +01:00
Daniel Collins
b1289366be Address handling improvements.
- IDirectPlay8Peer::EnumHosts() requires a device address to specify
  the service provider to emulate.

- IDirectPlay8Peer::EnumHosts() allows overriding the address/port
  that discovery messages are sent to.

- IDirectPlay8Peer::Host() requires at least one address. Addresses
  with different service providers are not supported yet.

- Implement IDirectPlay8Peer::GetPeerAddress() method.

- Populate pAddressSender in DPNMSG_ENUM_HOSTS_QUERY message.

- Popupate pAddressPlayer in DPNMSG_INDICATE_CONNECT message.

- Base host addresses created by IDirectPlay8Peer on service provider
  of device address given to Host() method.
2018-10-03 21:21:56 +01:00
Daniel Collins
8b70fea3bc Finish implementation of (Get|Set)ApplicationDesc() 2018-10-01 23:03:33 +01:00
Daniel Collins
2b1a0fb687 Exchange peer information between host/peer. 2018-09-27 22:56:36 +01:00
Daniel Collins
ca6184b1c9 DirectPlay8Address: Convert ANSI strings to Unicode. 2018-09-27 22:05:38 +01:00
Daniel Collins
f19678217f SendTo() support for DPNID_ALL_PLAYERS_GROUP, DPNSEND_NOLOOPBACK. 2018-09-24 21:43:25 +01:00
Daniel Collins
45b4fd19bd Basic message sending. 2018-09-21 01:03:49 +01:00
Daniel Collins
e8fdf2ecb1 Simple SendTo tests 2018-09-20 22:51:54 +01:00
Daniel Collins
25341f2488 Milestone: Connect a single peer! 2018-09-20 00:58:41 +01:00
Daniel Collins
98b37cf76c WIP: DirectPlay8Peer::Connect() tests
Currently being developed against real DirectPlay to be a baseline.
2018-09-17 23:18:49 +01:00
Daniel Collins
da3cd1a55f Use HandleHandlingPool to run DirectPlay8Peer worker threads. 2018-09-15 23:24:54 +01:00
Daniel Collins
f06f219d61 Implement HandleHandlingPool class.
This will run all the main I/O threads in DirectPlay8Peer, only
the host enumeration will be outside of it at this time.
2018-09-15 21:38:01 +01:00
Daniel Collins
26c038a24d Build with Visual Studio toolchain rather than GCC.
I want C++17 features :(
2018-09-13 01:42:31 +01:00
Daniel Collins
1dd9e45145 Improve DirectPlay8Peer object management in tests. 2018-09-13 01:40:47 +01:00
Daniel Collins
c63945facd Initial prototype of network I/O and session enumeration.
The threading model used for processing messages here will need
redesigning; we can't allow the application to block the event loop
when processing a message in case it calls something which won't
return until a message is processed.

Final model will probably use a pool of workers which will handle I/O
one-at-a-time, blocking and allowing other threads to deal with the
I/O when in the application message callback.
2018-09-11 22:09:27 +01:00
Daniel Collins
286c86ea46 Implement serialising of GUIDs in packets. 2018-09-11 21:53:27 +01:00
Daniel Collins
971119edae Implement low-level packet (de)serialisation code.
The protocol is going to use TLV messages, containing zero or more
fields represented using the same TLV header. Functions for
(de)serialising DirectPlay message structures will be built on top of
these classes.
2018-09-02 13:02:20 +01:00
Daniel Collins
c865ecb1f7 Disable IDirectPlay8Address::GetURLX() tests.
Not implementing these methods yet.
2018-09-02 13:01:02 +01:00
Daniel Collins
d2092b8641 Added tests for DirectPlay8Address::GetURL[AW]() and component ordering. 2018-08-29 00:25:25 +01:00
Daniel Collins
5550c78658 More DirectPlay8Address tests, "fix" GetUserData() behaviour 2018-08-28 23:20:29 +01:00
Daniel Collins
45a9f1b268 More DirectPlay8Address tests, fixed ANSI string components. 2018-08-28 22:34:56 +01:00
Daniel Collins
1564ddf309 Initial DirectPlay8Address unit tests and fixes. 2018-08-28 16:09:13 +01:00