1 #include "aubiowraphell.h"
11 static char Py_sink_doc[] = "sink object";
14 Py_sink_new (PyTypeObject * pytype, PyObject * args, PyObject * kwds)
18 uint_t samplerate = 0;
19 static char *kwlist[] = { "uri", "samplerate", NULL };
21 if (!PyArg_ParseTupleAndKeywords (args, kwds, "|sI", kwlist,
26 self = (Py_sink *) pytype->tp_alloc (pytype, 0);
37 self->samplerate = Py_aubio_default_samplerate;
38 if ((sint_t)samplerate > 0) {
39 self->samplerate = samplerate;
40 } else if ((sint_t)samplerate < 0) {
41 PyErr_SetString (PyExc_ValueError,
42 "can not use negative value for samplerate");
46 return (PyObject *) self;
49 AUBIO_INIT(sink , self->uri, self->samplerate)
53 /* function Py_sink_do */
55 Py_sink_do(Py_sink * self, PyObject * args)
57 /* input vectors python prototypes */
58 PyObject * write_data_obj;
60 /* input vectors prototypes */
65 if (!PyArg_ParseTuple (args, "OI", &write_data_obj, &write)) {
70 /* input vectors parsing */
71 write_data = PyAubio_ArrayToCFvec (write_data_obj);
73 if (write_data == NULL) {
81 /* compute _do function */
82 aubio_sink_do (self->o, write_data, write);
87 AUBIO_MEMBERS_START(sink)
88 {"uri", T_STRING, offsetof (Py_sink, uri), READONLY, ""},
89 {"samplerate", T_INT, offsetof (Py_sink, samplerate), READONLY, ""},
90 AUBIO_MEMBERS_STOP(sink)
93 static PyMethodDef Py_sink_methods[] = {
97 AUBIO_TYPEOBJECT(sink, "aubio.sink")