[Bf-blender-cvs] [c077f5f] master: Fix T42789: support 3Dconnexion wireless devices

Mike Erwin noreply at git.blender.org
Sat Dec 6 08:49:38 CET 2014


Commit: c077f5fa0863796ce7e76772408306bcea90cde3
Author: Mike Erwin
Date:   Sat Dec 6 02:48:51 2014 -0500
Branches: master
https://developer.blender.org/rBc077f5fa0863796ce7e76772408306bcea90cde3

Fix T42789: support 3Dconnexion wireless devices

SpaceMouse Wireless
SpaceMouse Pro Wireless

Device info is from user reports. I don’t yet have the new devices, so
these are untested but likely to work :D

===================================================================

M	intern/ghost/intern/GHOST_NDOFManager.cpp
M	intern/ghost/intern/GHOST_NDOFManager.h

===================================================================

diff --git a/intern/ghost/intern/GHOST_NDOFManager.cpp b/intern/ghost/intern/GHOST_NDOFManager.cpp
index 9bd6226..86020e1 100644
--- a/intern/ghost/intern/GHOST_NDOFManager.cpp
+++ b/intern/ghost/intern/GHOST_NDOFManager.cpp
@@ -228,7 +228,7 @@ bool GHOST_NDOFManager::setDevice(unsigned short vendor_id, unsigned short produ
 	// that I don't have access to. Thanks!
 
 	switch (vendor_id) {
-		case 0x046D: // Logitech (3Dconnexion)
+		case 0x046D: // Logitech (3Dconnexion was a subsidiary)
 			switch (product_id) {
 				// -- current devices --
 				case 0xC626: // full-size SpaceNavigator
@@ -281,6 +281,29 @@ bool GHOST_NDOFManager::setDevice(unsigned short vendor_id, unsigned short produ
 					printf("ndof: unknown Logitech product %04hx\n", product_id);
 			}
 			break;
+		case 0x256F: // 3Dconnexion
+			switch (product_id) {
+				case 0xC62E: // plugged in
+				case 0xC62F: // wireless
+					puts("ndof: using SpaceMouse Wireless");
+					m_deviceType = NDOF_SpaceMouseWireless;
+					m_buttonCount = 2;
+					m_hidMap = Modern3Dx_HID_map;
+					break;
+				case 0xC631: // plugged in
+				case 0xC632: // wireless
+					puts("ndof: using SpaceMouse Pro Wireless");
+					m_deviceType = NDOF_SpaceMouseProWireless;
+					m_buttonCount = 27;
+					// ^^ actually has 15 buttons, but their HID codes range from 0 to 26
+					m_buttonMask = 0x07C0F137;
+					m_hidMap = Modern3Dx_HID_map;
+					break;
+
+				default:
+					printf("ndof: unknown 3Dconnexion product %04hx\n", product_id);
+            }
+            break;
 		default:
 			printf("ndof: unknown device %04hx:%04hx\n", vendor_id, product_id);
 	}
diff --git a/intern/ghost/intern/GHOST_NDOFManager.h b/intern/ghost/intern/GHOST_NDOFManager.h
index 0b2080e..8d6edf3 100644
--- a/intern/ghost/intern/GHOST_NDOFManager.h
+++ b/intern/ghost/intern/GHOST_NDOFManager.h
@@ -38,6 +38,8 @@ typedef enum {
 	NDOF_SpaceExplorer,
 	NDOF_SpacePilotPro,
 	NDOF_SpaceMousePro,
+	NDOF_SpaceMouseWireless,
+	NDOF_SpaceMouseProWireless,
 
 	// older devices
 	NDOF_SpacePilot,




More information about the Bf-blender-cvs mailing list