summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.cpp
diff options
context:
space:
mode:
authorJordan Woyak <jordan.woyak@gmail.com>2010-07-26 05:30:50 +0000
committerJordan Woyak <jordan.woyak@gmail.com>2010-07-26 05:30:50 +0000
commit5be58c6772c131cecbc1786a14f5265a9d99e159 (patch)
tree271085e1fa4144702e9403dc140fae9c8020cb03 /Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.cpp
parent0eaa7352fd26ac2bd8ee72678e38e76093e8daf2 (diff)
Gecko codes: Added parenthesis where they were needed.(thanks to glennrics and soren) Fixed a copy paste error with write & fill 8bit codes. Also forgot to remove a return false;.(some more codes should work (fixed issue 2968)) New Wiimote Plugin: Added emulated swinging.(seems to work) Changed the emulated calibration data to some nice values. ControllerInterface: moved and constified some stuff.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5980 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.cpp')
-rw-r--r--Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.cpp b/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.cpp
index 36e6bd98f8..235985704a 100644
--- a/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.cpp
+++ b/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.cpp
@@ -121,8 +121,13 @@ void ControllerInterface::SetHwnd( void* const hwnd )
//
// update input for all devices, return true if all devices returned successful
//
-bool ControllerInterface::UpdateInput()
+bool ControllerInterface::UpdateInput(const bool force)
{
+ if (force)
+ update_lock.Enter();
+ else if (false == update_lock.TryEnter())
+ return false;
+
size_t ok_count = 0;
std::vector<Device*>::const_iterator
@@ -137,6 +142,7 @@ bool ControllerInterface::UpdateInput()
//(*d)->ClearInputState();
}
+ update_lock.Leave();
return (m_devices.size() == ok_count);
}
@@ -145,8 +151,13 @@ bool ControllerInterface::UpdateInput()
//
// update output for all devices, return true if all devices returned successful
//
-bool ControllerInterface::UpdateOutput()
+bool ControllerInterface::UpdateOutput(const bool force)
{
+ if (force)
+ update_lock.Enter();
+ else if (false == update_lock.TryEnter())
+ return false;
+
size_t ok_count = 0;
std::vector<Device*>::const_iterator
@@ -155,6 +166,7 @@ bool ControllerInterface::UpdateOutput()
for (;d != e; ++d)
(*d)->UpdateOutput();
+ update_lock.Leave();
return (m_devices.size() == ok_count);
}