annotate src/vamp-sdk/FFTimpl.cpp @ 493:25e023bad200

Choose another method (which should actually work) to override linkage for KissFFT
author Chris Cannam
date Sun, 05 Mar 2017 17:13:18 +0000
parents b409560a805b
children 90571dcc371a
rev   line source
Chris@449 1
Chris@449 2 // Override C linkage for KissFFT headers. So long as we have already
Chris@449 3 // included all of the other (system etc) headers KissFFT depends on,
Chris@449 4 // this should work out OK
Chris@493 5 #define KISSFFT_USE_CPP_LINKAGE 1
Chris@449 6
Chris@449 7 namespace Kiss {
Chris@449 8
Chris@449 9 #undef KISS_FFT_H
Chris@449 10 #undef KISS_FTR_H
Chris@449 11 #undef KISS_FFT__GUTS_H
Chris@449 12 #undef FIXED_POINT
Chris@449 13 #undef USE_SIMD
Chris@449 14 #undef kiss_fft_scalar
Chris@449 15
Chris@449 16 #ifdef SINGLE_PRECISION_FFT
Chris@449 17 #pragma message("Using single-precision FFTs")
Chris@449 18 typedef float kiss_fft_scalar;
Chris@449 19 #define kiss_fft_scalar float
Chris@449 20 #else
Chris@449 21 typedef double kiss_fft_scalar;
Chris@449 22 #define kiss_fft_scalar double
Chris@449 23 #endif
Chris@449 24
Chris@449 25 inline void free(void *ptr) { ::free(ptr); }
Chris@449 26 #include "ext/kiss_fft.c"
Chris@449 27 #include "ext/kiss_fftr.c"
Chris@449 28
Chris@449 29 #undef kiss_fft_scalar // leaving only the namespaced typedef
Chris@449 30
Chris@449 31 }
Chris@449 32
Chris@493 33 // Check that this worked, i.e. that we have our own suitably
Chris@493 34 // hacked KissFFT header which set this after making the
Chris@493 35 // appropriate change
Chris@493 36 #ifndef KISSFFT_USED_CPP_LINKAGE
Chris@493 37 #error "KissFFT header lacks specific linkage adjustment needed for Vamp SDK"
Chris@493 38 #endif