I am attempting to port a piece of software that uses SpaceMouse from Windows to Mac. I did not write the Windows code. (If it matters, it is this https://github.com/ParcelRot/SpaceNav3D and it is a plugin for Unreal Editor). I started by opening the code on Mac and compiling it. What I was surprised to discover was that the interface the Windows code used appeared to be entirely absent on mac. The Windows code used something called "siact.lib". The 3DconnexionClient.framework that the SDK installed on my computer and is described in the SDK PDF exposes a bunch of functions like "RegisterConnexionClient" whereas the Windows code is using functions with a "Si" tag like "SiGetEventWinInit".
There is not a lot of code so I can just rewrite it. However, what I would like to know is what is the Best Practice here for someone writing a piece of software that supports spacemouse on all platforms. If I write code that uses 3DconnexionClient.framework/RegisterConnexionClient will it be possible to get that code working on Windows, or will the Windows and Mac code forever just be different? Also, what does Linux use, does it use "siact" or does it use the interface of 3DconnexionClient.framework or does it have its own third thing altogether?
Questions and answers about 3Dconnexion devices on macOS.
2 posts • Page 1 of 1