Instead of allocating and returning a result buffer that the user needs to free, psmove_get_device_info() now requires a user-allocated buffer as function argument. This avoids allocating the buffer each time the function is called. And this interface is more consistent with similar functions in the API.
Instead of merging extension device data into the API's button data (as previously done for the Sharp Shooter), programs can now access all relevant data via a new interface. A small test program demonstrating this for Sony's official Sharp Shooter and Racing Wheel extensions is included. Doing it this way is much more flexible than the previous approach, also allowing support for other extension devices (especially custom ones) without the need to mess around with the API's internals.
…behaviour, but best practice)