#include #ifdef QT5 #include #else #include #endif #include #include "revision_utils.hpp" #include "mainwindow.h" extern "C" { // Fortran procedures we need void four2a_ (_Complex float *, int * nfft, int * ndim, int * isign, int * iform, int len); void _gfortran_set_args(int argc, char *argv[]); void _gfortran_set_convert(int conv); void ftninit_(void); } int main(int argc, char *argv[]) { QApplication a {argc, argv}; // Initialize libgfortran: _gfortran_set_args(argc, argv); _gfortran_set_convert(0); ftninit_(); // Override programs executable basename as application name. a.setApplicationName ("QMAP"); a.setApplicationVersion ("0.2"); // switch off as we share an Info.plist file with WSJT-X a.setAttribute (Qt::AA_DontUseNativeMenuBar); MainWindow w; w.show (); QObject::connect (&a, &QApplication::lastWindowClosed, &a, &QApplication::quit); auto result = a.exec (); // clean up lazily initialized FFTW3 resources { int nfft {-1}; int ndim {1}; int isign {1}; int iform {1}; // free FFT plan resources four2a_ (nullptr, &nfft, &ndim, &isign, &iform, 0); } fftwf_forget_wisdom (); fftwf_cleanup (); return result; }