dolphin/Source
Soren Jorvang 012939d127 After removing the input queueing in IOdarwin.mm I was still seeing
the occasional HLE wiimote disconnection, although nowhere it was at     
near the level before both the recent wiiuse integration and adding 
the queue in the first place.

The callback-based bluetooth input method on OS X really requires     
that packets be accepted immediately and the 1ms polling done by the 
wiimote worker threads isn't quite good enough.

So just play along with the native OS X model and send the packet up
our stack directly from the callback. With our current API, this is  
kind of a layering violation, but it seems less messy than either
putting back internal queueing in IOdarwin.mm or adding the platform
support for higher-frequency polling than what usleep(3) offers.

Perhaps we should just change our own API to a callback model. While
this makes no real difference right now, it would make it a fair bit
cleaner to accept new wiimotes at any time instead of having to click
Refresh, although with the recent realmote changes, that feature can
probably just be hacked in by looping around FindWiimotes().
 
For other platforms having problems with HLE disconnections caused by
dropped bluetooth packets, as a first stop I would suggest trying to    
do more than just one wiimote->Read() per iteration in the thread.
 
This change also conveniently sidesteps another new IOdarwin.mm bug 
where the discovery and I/O code would clash during a refresh because     
they use the same default CFRunLoop, so if we switch back to using a
run loop for I/O, must remember to create a separate one.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6743 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-05 01:45:36 +00:00
..
Core After removing the input queueing in IOdarwin.mm I was still seeing 2011-01-05 01:45:36 +00:00
DSPSpy Second attempt at issue 3458. Fixes issue 3458. 2010-12-04 03:50:55 +00:00
DSPTool Build but don't install the dsptool/tester/MemcardManager tools 2010-07-22 03:38:32 +00:00
Plugins Look for the DSP ROM files in Sys/GC as before before trying User/GC 2011-01-04 13:59:44 +00:00
PluginSpecs - I've implemented cache of interrupt states for PEFINISH and PETOKEN 2010-12-13 07:56:54 +00:00
TestSuite Add Turntable.cpp to SCons build. 2010-10-03 08:20:24 +00:00
UnitTests Core/DSPCore: Changed g_dsp._r back to g_dsp.r. Removed the check*Exclude 2010-12-29 20:20:52 +00:00
CMakeLists.txt Add an experimental CMake build system as a possible replacement for SCons. Only tested on Linux, should work on OS X and Windows in the future as well though. 2010-11-01 15:47:02 +00:00
Dolphin.sln Removed left-overs from wiiuse, should fix the problems when building on windows. 2010-12-31 12:21:28 +00:00