From 1c47bff6553c7206ee1e0bb432c9515214d68f21 Mon Sep 17 00:00:00 2001
From: Ingo Ruhnke <grumbel@gmx.de>
Date: Fri, 28 Jan 2011 21:20:27 +0100
Subject: [PATCH] Moved device_id building into proper function

---
 src/controller_slot_config.cpp | 2 +-
 src/ui_event.cpp               | 2 +-
 src/uinput.hpp                 | 6 ++++++
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/controller_slot_config.cpp b/src/controller_slot_config.cpp
index 934b303..6c9c18c 100644
--- a/src/controller_slot_config.cpp
+++ b/src/controller_slot_config.cpp
@@ -73,7 +73,7 @@ ControllerSlotConfig::create(UInput& uinput, int slot, bool extra_devices, const
     // '- FF_CUSTOM
     
     // FIXME: this should go through the regular resolution process
-    uint32_t ff_device = (slot<<16) | opts.get_ff_device();
+    uint32_t ff_device = UInput::create_device_id(slot, opts.get_ff_device());
 
     // basic types
     uinput.add_ff(ff_device, FF_RUMBLE);
diff --git a/src/ui_event.cpp b/src/ui_event.cpp
index 74e0b9c..092089e 100644
--- a/src/ui_event.cpp
+++ b/src/ui_event.cpp
@@ -140,7 +140,7 @@ UIEvent::get_device_id() const
 {
   assert(m_device_id_resolved);
 
-  return (m_slot_id << 16) | m_device_id;
+  return UInput::create_device_id(m_slot_id, m_device_id);
 }
 
 namespace {
diff --git a/src/uinput.hpp b/src/uinput.hpp
index 4b01ac8..533fc87 100644
--- a/src/uinput.hpp
+++ b/src/uinput.hpp
@@ -30,6 +30,12 @@ struct Xbox360GuitarMsg;
   
 class UInput
 {
+public:
+  static inline uint32_t create_device_id(uint16_t slot_id, uint16_t device_id)
+  {
+    return (slot_id << 16) | device_id;
+  }
+
 private:
   typedef std::map<uint32_t, boost::shared_ptr<LinuxUinput> > UInputDevs;
   UInputDevs uinput_devs;