summaryrefslogtreecommitdiffstats
path: root/matchblox/common/wiimote_utils.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'matchblox/common/wiimote_utils.cpp')
-rw-r--r--matchblox/common/wiimote_utils.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/matchblox/common/wiimote_utils.cpp b/matchblox/common/wiimote_utils.cpp
index 9098361..6d0d7a0 100644
--- a/matchblox/common/wiimote_utils.cpp
+++ b/matchblox/common/wiimote_utils.cpp
@@ -9,6 +9,7 @@
AbstractWiimote::AbstractWiimote()
+ : m_prevButtons(0)
{
m_pSensBarDotSmoother[0] = new C_Smoother<Vect3D_t>(Vect3D_t(0.0, 0.0, 0.0));
m_pSensBarDotSmoother[0]->SetExponentialMovingAverage(0.2);
@@ -28,6 +29,13 @@ void AbstractWiimote::FillWiimoteMsgPayload(input_payload_wiimote &f_payload, do
ParseWiimote(f_payload);
+ //set the bttnsDown bitmap
+ f_payload.btnsDown = (f_payload.btns ^ m_prevButtons) & ~m_prevButtons;
+ //set the bttnsUp bitmap
+ f_payload.btnsUp = (f_payload.btns ^ m_prevButtons) & m_prevButtons;
+
+ m_prevButtons = f_payload.btns;
+
f_payload.relX = f_payload.relY = f_payload.Zdist = 0.0;
f_payload.posDataValid = CalcWiimoteRelativeCursorPos(f_payload, f_dSensBarLedDist);
}