Status update, which will be important for you @rickard:

I cleaned up the BridJ interface so it is easier to read & understand. The “Pointer” interface is much easier to use if you don’t specify what kind of pointer it is (e.g. just leave “Pointer” instead of “Pointer{IVRSystem}”).

I also noticed there might be some instances where BridJ thought an argument was a Pointer, but isn’t. vRGetStringForHmdError, for example, wants just the long value – not a pointer to a long. I updated the Openvr_apiLibrary.java as seen in this commit (near the bottom):

I have a strong feeling functions like GetFloatTrackedDeviceProperty’s hmdDeviceIndex argument will work the same, which if so, still needs to be fixed.

EDIT: another quick edit, since hmdDeviceIndex seems to be an int, not a long. Still need to determine if its looking for a pointer to an int, or just the int value. It appears it wants just the int, but BridJ auto-generated a setup for a pointer to an int… have to test.