py-fft.c: use new proxy functions
authorPaul Brossier <piem@piem.org>
Fri, 25 Dec 2009 03:40:41 +0000 (04:40 +0100)
committerPaul Brossier <piem@piem.org>
Fri, 25 Dec 2009 03:40:41 +0000 (04:40 +0100)
interfaces/python/py-fft.c

index 20e8fe5717380780789e17d58942cfaf38c597c4..19d7b49b6c84d7db3c7059d3a342579251193af2 100644 (file)
@@ -49,28 +49,24 @@ static PyObject *
 Py_fft_do(PyObject * self, PyObject * args)
 {
   PyObject *input;
-  Py_fvec *vec;
-  Py_cvec *output;
+  fvec_t *vec;
+  cvec_t *output;
 
   if (!PyArg_ParseTuple (args, "O", &input)) {
     return NULL;
   }
 
-  vec = PyAubio_ArrayToFvec (input);
+  vec = PyAubio_ArrayToCFvec (input);
 
   if (vec == NULL) {
     return NULL;
   }
 
-  output = (Py_cvec*) PyObject_New (Py_cvec, &Py_cvecType);
-  output->length = ((Py_fft *) self)->win_s;
-  output->o = new_cvec(((Py_fft *) self)->win_s);
+  output = new_cvec(((Py_fft *) self)->win_s);
 
   // compute the function
-  aubio_fft_do (((Py_fft *)self)->o, vec->o, output->o);
-  Py_INCREF(output);
-  return (PyObject *)output;
-  //return (PyObject *)PyAubio_CvecToArray(output);
+  aubio_fft_do (((Py_fft *)self)->o, vec, output);
+  return (PyObject *)PyAubio_CCvecToPyCvec(output);
 }
 
 AUBIO_MEMBERS_START(fft) 
@@ -79,29 +75,27 @@ AUBIO_MEMBERS_START(fft)
 AUBIO_MEMBERS_STOP(fft)
 
 static PyObject * 
-Py_fft_rdo(PyObject * self, PyObject * args)
+Py_fft_rdo(Py_fft * self, PyObject * args)
 {
   PyObject *input;
-  Py_cvec *vec;
-  Py_fvec *output;
+  cvec_t *vec;
+  fvec_t *output;
 
   if (!PyArg_ParseTuple (args, "O", &input)) {
     return NULL;
   }
 
-  vec = PyAubio_ArrayToCvec (input);
+  vec = PyAubio_ArrayToCCvec (input);
 
   if (vec == NULL) {
     return NULL;
   }
 
-  output = (Py_fvec*) PyObject_New (Py_fvec, &Py_fvecType);
-  output->length = ((Py_fft *) self)->win_s;
-  output->o = new_fvec(output->length);
+  output = new_fvec(self->win_s);
 
   // compute the function
-  aubio_fft_rdo (((Py_fft *)self)->o, vec->o, output->o);
-  return (PyObject *)PyAubio_FvecToArray(output);
+  aubio_fft_rdo (((Py_fft *)self)->o, vec, output);
+  return (PyObject *)PyAubio_CFvecToArray(output);
 }
 
 static PyMethodDef Py_fft_methods[] = {