ref: 9935735b71a91afdace42a49c03a844d21a551ab
parent: 8f70a18d4fbe6c56e5efacc29eeed4b4539dd06c
author: Paul Brossier <piem@altern.org>
date: Wed Jul 12 12:26:59 EDT 2006
update fft deletion function update fft deletion function
--- a/src/fft.c
+++ b/src/fft.c
@@ -46,29 +46,12 @@
fftw_plan pfw, pbw;
};
-static aubio_fft_t * aubio_fft_alloc(uint_t size);
-static void aubio_fft_free(aubio_fft_t *s);
-
-static aubio_fft_t * aubio_fft_alloc(uint_t size) {
+aubio_fft_t * new_aubio_fft(uint_t size) {
aubio_fft_t * s = AUBIO_NEW(aubio_fft_t);
/* allocate memory */
s->in = AUBIO_ARRAY(real_t,size);
s->out = AUBIO_ARRAY(real_t,size);
s->specdata = (fft_data_t*)fftw_malloc(sizeof(fft_data_t)*size);
- return s;
-}
-
-static void aubio_fft_free(aubio_fft_t * s) {
- /* destroy data */
- fftw_destroy_plan(s->pfw);
- fftw_destroy_plan(s->pbw);
- if (s->specdata) fftw_free(s->specdata);
- if (s->out) AUBIO_FREE(s->out);
- if (s->in ) AUBIO_FREE(s->in );
-}
-
-aubio_fft_t * new_aubio_fft(uint_t size) {
- aubio_fft_t * s =(aubio_fft_t *)aubio_fft_alloc(size);
/* create plans */
s->pfw = fftw_plan_dft_r2c_1d(size, s->in, s->specdata, FFTW_ESTIMATE);
s->pbw = fftw_plan_dft_c2r_1d(size, s->specdata, s->out, FFTW_ESTIMATE);
@@ -76,8 +59,13 @@
}
void del_aubio_fft(aubio_fft_t * s) {
- aubio_fft_free(s);
- AUBIO_FREE(s);
+ /* destroy data */
+ fftw_destroy_plan(s->pfw);
+ fftw_destroy_plan(s->pbw);
+ fftw_free(s->specdata);
+ AUBIO_FREE(s->out);
+ AUBIO_FREE(s->in );
+ AUBIO_FREE(s);
}
void aubio_fft_do(const aubio_fft_t * s,
@@ -161,6 +149,6 @@
for (i=0; i < fft->channels; i++)
AUBIO_FREE(fft->spec[i]);
AUBIO_FREE(fft->spec);
- aubio_fft_free(fft->fft);
+ del_aubio_fft(fft->fft);
AUBIO_FREE(fft);
}