source: python/ext/aubio-types.h @ a41b1ef

feature/autosinkfeature/cnnfeature/cnn_orgfeature/constantqfeature/crepefeature/crepe_orgfeature/pitchshiftfeature/pydocstringsfeature/timestretchfix/ffmpeg5pitchshiftsamplertimestretchyinfft+
Last change on this file since a41b1ef was c6388f4, checked in by Paul Brossier <piem@piem.org>, 9 years ago

python/{ext,lib}: prepare for double precision

  • Property mode set to 100644
File size: 1.8 KB
RevLine 
[ff74460]1#include <Python.h>
[ae6e15c]2#include <structmember.h>
[7a6521d]3
[b0fbd88]4#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
[7a6521d]5
6// define numpy unique symbols for aubio
7#define PY_ARRAY_UNIQUE_SYMBOL PYAUBIO_ARRAY_API
8#define PY_UFUNC_UNIQUE_SYMBOL PYAUBIO_UFUNC_API
9
10// only import array and ufunc from main module
11#ifndef PY_AUBIO_MODULE_MAIN
12#define NO_IMPORT_ARRAY
[ad5203c]13#endif
14#include <numpy/arrayobject.h>
15#ifndef PY_AUBIO_MODULE_UFUNC
[7a6521d]16#define NO_IMPORT_UFUNC
[ad5203c]17#else
18#include <numpy/ufuncobject.h>
[7a6521d]19#endif
20
[ad5203c]21//#include <numpy/npy_3kcompat.h>
[7a6521d]22
[a315be7]23// import aubio
[7db3477]24#define AUBIO_UNSTABLE 1
[223e2fe]25#ifdef USE_LOCAL_AUBIO
[ad5203c]26#include "aubio.h"
[41399bd]27#else
28#include "aubio/aubio.h"
29#endif
[ae6e15c]30
[96fe713]31#define Py_default_vector_length 1024
[9b23eb31]32
[2f9af5d]33#define Py_aubio_default_samplerate 44100
[352fd5f]34
[615ac7d]35#if HAVE_AUBIO_DOUBLE
[c6388f4]36#warning "double mode needs love"
[615ac7d]37#define AUBIO_NPY_SMPL NPY_DOUBLE
[c6388f4]38#define AUBIO_NPY_SMPL_STR "float64"
39#define AUBIO_NPY_SMPL_CHR "d"
[352fd5f]40#else
[615ac7d]41#define AUBIO_NPY_SMPL NPY_FLOAT
[c6388f4]42#define AUBIO_NPY_SMPL_STR "float32"
43#define AUBIO_NPY_SMPL_CHR "f"
[352fd5f]44#endif
45
[770b9e7]46// compat with Python < 2.6
47#ifndef Py_TYPE
48#define Py_TYPE(ob) (((PyObject*)(ob))->ob_type)
49#endif
50
[03c3450]51// special python type for cvec
[96fe713]52typedef struct
53{
54  PyObject_HEAD
[615ac7d]55  cvec_t * o;
56  uint_t length;
57} Py_cvec;
[9b23eb31]58extern PyTypeObject Py_cvecType;
59
[03c3450]60// defined in aubio-proxy.c
61extern PyObject *PyAubio_CFvecToArray (fvec_t * self);
[bfe8256]62extern int PyAubio_ArrayToCFvec (PyObject * self, fvec_t *out);
[03c3450]63
[bfe8256]64extern PyObject * PyAubio_CCvecToPyCvec (cvec_t * self, Py_cvec *out);
65extern int PyAubio_ArrayToCCvec (PyObject *input, cvec_t *i);
[03c3450]66
67extern PyObject *PyAubio_CFmatToArray (fmat_t * self);
[bfe8256]68extern int PyAubio_ArrayToCFmat (PyObject *input, fmat_t *out);
[03c3450]69
70// hand written wrappers
[9b23eb31]71extern PyTypeObject Py_filterType;
72
[615ac7d]73extern PyTypeObject Py_filterbankType;
[352fd5f]74
[615ac7d]75extern PyTypeObject Py_fftType;
76
77extern PyTypeObject Py_pvocType;
[03c3450]78
[d27634d]79extern PyTypeObject Py_sourceType;
80
[f1100a4]81extern PyTypeObject Py_sinkType;
Note: See TracBrowser for help on using the repository browser.