summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2011-07-20 12:01:55 -0700
committerJosh Blum <josh@joshknows.com>2011-07-20 12:01:55 -0700
commit1c25b884b67449de3f8ff6d4c2a2e8c83ae1f74f (patch)
treee521e5d68f8147baa64be84f2bdf3c8ca88f8e42
parent72d080886d544b3ac974ed31e9fa526b4fb3036e (diff)
core: hack needed for gri wisdom on windows because you cant pass file descriptors across library boundaries
-rw-r--r--gnuradio-core/src/lib/general/gri_fft.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/gnuradio-core/src/lib/general/gri_fft.cc b/gnuradio-core/src/lib/general/gri_fft.cc
index f20b15ca0a..0df1af25d6 100644
--- a/gnuradio-core/src/lib/general/gri_fft.cc
+++ b/gnuradio-core/src/lib/general/gri_fft.cc
@@ -23,6 +23,19 @@
#include <gri_fft.h>
#include <gr_sys_paths.h>
#include <fftw3.h>
+
+#ifdef _MSC_VER //http://www.fftw.org/install/windows.html#DLLwisdom
+static void my_fftw_write_char(char c, void *f) { fputc(c, (FILE *) f); }
+#define fftw_export_wisdom_to_file(f) fftw_export_wisdom(my_fftw_write_char, (void*) (f))
+#define fftwf_export_wisdom_to_file(f) fftwf_export_wisdom(my_fftw_write_char, (void*) (f))
+#define fftwl_export_wisdom_to_file(f) fftwl_export_wisdom(my_fftw_write_char, (void*) (f))
+
+static int my_fftw_read_char(void *f) { return fgetc((FILE *) f); }
+#define fftw_import_wisdom_from_file(f) fftw_import_wisdom(my_fftw_read_char, (void*) (f))
+#define fftwf_import_wisdom_from_file(f) fftwf_import_wisdom(my_fftw_read_char, (void*) (f))
+#define fftwl_import_wisdom_from_file(f) fftwl_import_wisdom(my_fftw_read_char, (void*) (f))
+#endif //_MSC_VER
+
#include <gr_complex.h>
#include <stdlib.h>
#include <string.h>