From 0804ad2165651dd45997885320eba79050d91cfc Mon Sep 17 00:00:00 2001
From: Ingo Ruhnke <grumbel@gmx.de>
Date: Tue, 24 May 2011 14:14:32 +0200
Subject: [PATCH] Reenabled rumble-test, but there is currently a huge delay,
 to do controller messages getting queed up

---
 src/uinput_message_processor.cpp | 14 ++++++++++++--
 src/uinput_message_processor.hpp |  1 +
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/src/uinput_message_processor.cpp b/src/uinput_message_processor.cpp
index 6f2ea91..d9ec3b7 100644
--- a/src/uinput_message_processor.cpp
+++ b/src/uinput_message_processor.cpp
@@ -22,13 +22,14 @@
 #include "uinput.hpp"
 
 UInputMessageProcessor::UInputMessageProcessor(UInput& uinput, 
-                                                 ControllerSlotConfigPtr config, 
-                                                 const Options& opts) :
+                                               ControllerSlotConfigPtr config, 
+                                               const Options& opts) :
   m_uinput(uinput),
   m_config(config),
   m_oldmsg(),
   m_config_toggle_button(opts.config_toggle_button),
   m_rumble_gain(opts.rumble_gain),
+  m_rumble_test(opts.rumble),
   m_rumble_callback()
 {
   memset(&m_oldmsg, 0, sizeof(m_oldmsg));
@@ -45,6 +46,14 @@ UInputMessageProcessor::send(const XboxGenericMsg& msg_in, int msec_delta)
   {
     XboxGenericMsg msg = msg_in; 
 
+    if (m_rumble_test)
+    {
+      log_debug("rumble: " << get_axis(msg, XBOX_AXIS_LT) << " " << get_axis(msg, XBOX_AXIS_RT));
+
+      set_rumble(get_axis(msg, XBOX_AXIS_LT), 
+                 get_axis(msg, XBOX_AXIS_RT));
+    }
+
     // handling switching of configurations
     if (m_config_toggle_button != XBOX_BTN_UNKNOWN)
     {
@@ -108,6 +117,7 @@ UInputMessageProcessor::set_config(int num)
 void
 UInputMessageProcessor::set_ff_callback(const boost::function<void (uint8_t, uint8_t)>& callback)
 {
+  m_rumble_callback = callback;
   m_config->set_ff_callback(callback);
 }
 
diff --git a/src/uinput_message_processor.hpp b/src/uinput_message_processor.hpp
index 26324b0..613c3cf 100644
--- a/src/uinput_message_processor.hpp
+++ b/src/uinput_message_processor.hpp
@@ -36,6 +36,7 @@ private:
   XboxButton m_config_toggle_button;
 
   int m_rumble_gain;
+  bool m_rumble_test;
   boost::function<void (uint8_t, uint8_t)> m_rumble_callback;
 
 public: