Commit Graph
14 Commits
Author SHA1 Message Date
mathieui 8201a52cec Traversal: Use a decent PRNG instead of rand()
we don’t need cryptosecure random, but having a uniform distribution is
always better.
2015-03-18 10:16:11 +01:00
mathieui 849922881d NetPlay: Select a game only if enet connected successfully 2015-03-18 10:16:11 +01:00
mathieui e0ef8fc03f NetPlay: Make the enet interrupts work
Otherwise, it would work but any async sending would be delayed by 4ms or
wait until the next packet was received.

Also increase the client timeout to 250ms, since enet_host_service is now
really interrupted.
2015-03-18 10:16:11 +01:00
mathieui 8ee402863d NetPlay: Remove RunOnThread and add SendAsync methods
Add std::unique_ptr<sf::Packet> objects to a queue instead of functions,
makes things easier to read, and avoids headaches while checking the
lifetime of the concerned objects.
2015-03-18 10:16:11 +01:00
mathieui 44d7207a1c NetPlay: add a Common/ENetUtil namespace
Move WakeupThread in it
2015-03-18 09:23:44 +01:00
mathieui 603fe25349 NetPlay: use a workaround from comex’s dc-netplay to interrupt enet 2015-03-18 09:23:44 +01:00
mathieui b9af0c4d12 GC Adapter: Do not abort if some libusb functions are not supported
Also remove a typo.
2015-03-13 18:05:09 +01:00
mathieui 88ab6352dd GC Adapter: do not proceed with the input read if the thread isn’t running
If the Init() call does not work in the fallback path, then abort.
2015-03-13 18:05:09 +01:00
mathieui 5a10be7fef GC Adapter: fix a crash on exit
s_detected is better for detecting that a thread is actually running.
Also make sure the claim_interface is always called when we detect an
adapter.
2015-03-13 18:05:09 +01:00
mathieui ebedc80545 GC Adapter: never call libusb_reset_device()
There should be no need to do this, and performing a reset breaks things
on any other software using the device (e.g. another dolphin instance).
2015-03-13 18:05:09 +01:00
mathieui ad49de7740 GC Adapter: don’t stop scanning after failing to claim an adapter
Only call Shutdown() after all devices have been tested.
2015-03-13 18:05:09 +01:00
mathieui 5f5cc963cf GC Adapter: stop searching adapters after one has been added 2015-03-13 18:05:09 +01:00
mathieui 3b0f3cb4fe Externals: Clean up some unneeded files from libusb
And add a DOLPHIN file recapitulating the changes from upstream
2015-02-12 21:58:23 +01:00
mathieui 8e556603af Fix issues with the GC adapter handling code
If we successfully detach the kernel driver from the interface, we
should continue instead of aborting the setup.

And we should not use libusb_handle_events(), as the API says it is only
for backwards compatibility. Additionally, if the adapter thread is not
active, dolphin will take 60 seconds to close because the
libusb_handle_events() timeout is hardcoded to 60 seconds. Instead, use
libusb_handle_events_timeout_completed() with a timeout of 1 second.
Also, cancel the libusb transfers before the join(), to be able to close
the usb device without libusb screaming in the background (and
potentially crashing).

And finally, split the Init() and Shutdown() functions to avoid having
to init and exit libusb every time we neeed to detect the adapter.
2015-02-05 10:03:21 +01:00