A quick heads-up for applications developers out there: version 3.08 of the API introduced a new valid
field in the middle of the sdrplay_api_DeviceT
structure. As a result, the rspDuoSampleFreq
and dev
fields are now shifted one word further in the structure (assuming no padding), which breaks binary compatibility with earlier versions of the library.
This is unfortunate (and easy to miss unless you’re paying close attention). Of course, from an application developer’s perspective, there are a few ways around that:
. forcing the user to upgrade/downgrade to whatever API version matches the one the application was compiled with,
. having the user recompile the application (assuming it is possible, i.e. open/free software),
. maintaining two versions of the sdrplay_api_DeviceT
structure in the application, and picking the right one at runtime, based on sdrplay_api_ApiVersion()
.
This is unfortunate; IMHO the dev team would have been well advised to add the valid
field at the end of the structure (application developers would still have to check the API version before attempting to access it, but at least backward binary compatibility would have been maintained).
As it stands, version 3.08 might just as well be numbered as 4.0 (major version increment denoting a breaking change).
-
This topic was modified 1 year, 4 months ago by . Reason: formatting
-
This topic was modified 1 year, 4 months ago by . Reason: style