ref: f1100a49500036d9d901ce7869ce92f5c806dde3
parent: 9e58e78ffa2aa6c2cf653879c820919bdf28ca4b
author: Paul Brossier <piem@piem.org>
date: Thu Jan 23 17:17:18 EST 2014
ext/py-sink.c: do not generate
--- a/python/ext/aubio-types.h
+++ b/python/ext/aubio-types.h
@@ -70,3 +70,4 @@
extern PyTypeObject Py_sourceType;
+extern PyTypeObject Py_sinkType;
--- a/python/ext/aubiomodule.c
+++ b/python/ext/aubiomodule.c
@@ -199,6 +199,7 @@
|| (PyType_Ready (&Py_fftType) < 0)
|| (PyType_Ready (&Py_pvocType) < 0)
|| (PyType_Ready (&Py_sourceType) < 0)
+ || (PyType_Ready (&Py_sinkType) < 0)
// generated objects
|| (generated_types_ready() < 0 )
) {
@@ -229,6 +230,8 @@
PyModule_AddObject (m, "pvoc", (PyObject *) & Py_pvocType);
Py_INCREF (&Py_sourceType);
PyModule_AddObject (m, "source", (PyObject *) & Py_sourceType);
+ Py_INCREF (&Py_sinkType);
+ PyModule_AddObject (m, "sink", (PyObject *) & Py_sinkType);
// add generated objects
add_generated_objects(m);
--- /dev/null
+++ b/python/ext/py-sink.c
@@ -1,0 +1,97 @@
+#include "aubiowraphell.h"
+
+typedef struct
+{
+ PyObject_HEAD
+ aubio_sink_t * o;
+ char_t* uri;
+ uint_t samplerate;
+} Py_sink;
+
+static char Py_sink_doc[] = "sink object";
+
+static PyObject *
+Py_sink_new (PyTypeObject * pytype, PyObject * args, PyObject * kwds)
+{
+ Py_sink *self;
+ char_t* uri = NULL;
+ uint_t samplerate = 0;
+ static char *kwlist[] = { "uri", "samplerate", NULL };
+
+ if (!PyArg_ParseTupleAndKeywords (args, kwds, "|sI", kwlist,
+ &uri, &samplerate)) {
+ return NULL;
+ }
+
+ self = (Py_sink *) pytype->tp_alloc (pytype, 0);
+
+ if (self == NULL) {
+ return NULL;
+ }
+
+ self->uri = "none";
+ if (uri != NULL) {
+ self->uri = uri;
+ }
+
+ self->samplerate = Py_aubio_default_samplerate;
+ if ((sint_t)samplerate > 0) {
+ self->samplerate = samplerate;
+ } else if ((sint_t)samplerate < 0) {
+ PyErr_SetString (PyExc_ValueError,
+ "can not use negative value for samplerate");
+ return NULL;
+ }
+
+ return (PyObject *) self;
+}
+
+AUBIO_INIT(sink , self->uri, self->samplerate)
+
+AUBIO_DEL(sink)
+
+/* function Py_sink_do */
+static PyObject *
+Py_sink_do(Py_sink * self, PyObject * args)
+{
+ /* input vectors python prototypes */
+ PyObject * write_data_obj;
+
+ /* input vectors prototypes */
+ fvec_t* write_data;
+ uint_t write;
+
+
+ if (!PyArg_ParseTuple (args, "OI", &write_data_obj, &write)) {
+ return NULL;
+ }
+
+
+ /* input vectors parsing */
+ write_data = PyAubio_ArrayToCFvec (write_data_obj);
+
+ if (write_data == NULL) {
+ return NULL;
+ }
+
+
+
+
+
+ /* compute _do function */
+ aubio_sink_do (self->o, write_data, write);
+
+ Py_RETURN_NONE;
+}
+
+AUBIO_MEMBERS_START(sink)
+ {"uri", T_STRING, offsetof (Py_sink, uri), READONLY, ""},
+ {"samplerate", T_INT, offsetof (Py_sink, samplerate), READONLY, ""},
+AUBIO_MEMBERS_STOP(sink)
+
+
+static PyMethodDef Py_sink_methods[] = {
+ {NULL} /* sentinel */
+};
+
+AUBIO_TYPEOBJECT(sink, "aubio.sink")
--- a/python/lib/generator.py
+++ b/python/lib/generator.py
@@ -54,6 +54,7 @@
'pitchspecacf',
'pitchyin',
'pitchyinfft',
+ 'sink',
'sink_apple_audio',
'sink_sndfile',
'source',
--- a/python/setup.py
+++ b/python/setup.py
@@ -54,6 +54,7 @@
"ext/py-fft.c",
"ext/py-phasevoc.c",
"ext/py-source.c",
+ "ext/py-sink.c",
# generated files
] + generated_object_files,
include_dirs = include_dirs,