You code is clearly written, but it is not at all clear what else is required to run this program, and how to get to where it will run.
I downloaded the three pieces,
This comes to 745 files in 128 folders. And there is no clear description of the dependencies of the other two pieces.
The simplest would be if you could compile the other two parts (ffrw3 and librtlsdr) and include them with your program as dlls. Don't be lazy and say "Oh just download all those pieces, it is in there somewhere." Give the specific pieces needed to use the tool you wrote.
Yes, I know it is important to give credit, and to link people back to the groups. I hope they can be convinced to keep current libraries for the different platforms. Or you will while you are interested in this tool. Perhaps this is available. The projects and packages I have looked at use a scattering of conventions, and most people do not take them too seriously.
Could you include an html page in the folder that links to a current dll (or the equivalent for Linux and other environments), and gives credit to the groups by name, and by linking to their main page. If you want to do more, keep it clean and lean, but don't leave anything out.
A few minutes of your time to give the pieces for immediate execution will save hours, days or weeks.
My main point is you currently are suggesting, without saying it exactly, that everyone should deal with the source code of every one of your dependencies. I say that can be done by you keeping the executables available.
A person new to SDR can probably modify your code. They have no reason to rewrite FFT or SDR core tools. If they want to do that, they can get involved, and you will just post the version that works with what you have. It is not perfect, but I am trying to find a way to shorten the horrendous and nasty process in place now. Try to use one small useful piece from AstroPy and you have to load 2039 files, 338 folders and 134 MegaBytes of stuff.
Is any of this making sense?
I would like to write some basic tools for recording SDR data at what are intended to be permanent stations world-wide. These will record some aspects of the electromagnetic field at each location - for comparisons, correlations, and basic research. My models are the superconducting gravimeter, seismometer, magnetometer, astronomical, radio telescope, VLBI, gravitational, meteorlogical, satellite,GPS/GNSS, cosmic ray, and many many other similar global networks that record basic data intended to be available for the coming decades.
I am trying to set up a global network of three axis, high sampling rate correlating gravimeters. These are intended to scan the earth, its surface, interior and environment. But to work at the levels of sensitivity required, means finding, identifying and characterizing all the electromagnetic sources in the solar system. As a start.
Richard Collins, The Internet Foundation